/* Hallmark · macrostructure: ruled narrative · tone: warm, approachable · anchor hue: violet · source copy: V2 */
.hero-home{padding-block:var(--space-2xl) var(--space-3xl);position:relative}.hero-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-xl)}.hero-copy{position:relative;z-index:2}.hero-intro{max-width:38rem;margin-top:var(--space-xl);font-size:1.25rem;color:var(--color-muted)}.hero-actions{display:flex;flex-wrap:wrap;gap:var(--space-md);margin-block:var(--space-xl)}.hero-proof{display:flex;flex-wrap:wrap;gap:var(--space-xl);margin-top:var(--space-xl)}.hero-proof>div{display:flex;align-items:flex-start;gap:var(--space-sm);max-width:10rem;font-size:var(--text-small);line-height:1.5}.hero-proof strong{color:var(--color-amber);font-size:var(--text-small)}.hero-proof span{color:var(--color-quiet)}.hero-noise{display:none}.hero-art{height:24rem;position:relative;isolation:isolate;min-width:0}.hero-art canvas{position:absolute;inset:0;width:100%;height:100%}.hero-art.is-rendered .art-fallback{display:none}.art-labels{position:absolute;inset:0;pointer-events:none}.art-label{position:absolute;top:0;left:0;display:flex;align-items:baseline;gap:.5rem;font-size:var(--text-small);color:var(--color-muted);white-space:nowrap;opacity:0}.art-label b{font-weight:400;font-size:.6875rem;color:var(--color-quiet)}.art-label.is-current,.art-label.is-hover{color:var(--color-ink)}.art-label.is-current b{color:var(--color-amber)}.art-controls{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm)}.art-workflows{display:flex;flex-wrap:wrap}.art-workflows button{position:relative;min-height:2.75rem;padding:0 .5rem;border:0;background:none;color:var(--color-quiet);font-size:var(--text-small);font-weight:400}.art-workflows button:hover,.art-workflows button[aria-pressed=true]{color:var(--color-ink)}.art-workflows button[aria-pressed=true]:before,.art-workflows button[aria-pressed=true]:after{content:'';position:absolute;left:.5rem;right:.5rem;bottom:.55rem;height:1px;background:var(--color-rule)}.art-workflows button[aria-pressed=true]:after{background:var(--color-amber);transform:scaleX(var(--progress,1));transform-origin:left}.hero-art:not(.is-playing) .art-workflows button:after{transform:none}.motion-control{flex:none;border:1px solid var(--color-rule);background:var(--color-paper);color:var(--color-muted);width:2.75rem;height:2.75rem;border-radius:50%;font-size:1rem}.motion-control:hover{color:var(--color-ink);border-color:var(--color-muted)}.signal-strip{border-block:1px solid var(--color-rule);padding-block:var(--space-lg);margin-inline:var(--page-gutter)}.signal-track{display:flex;flex-wrap:wrap;gap:var(--space-sm) var(--space-lg);justify-content:center;font-size:var(--text-small);font-weight:400;color:var(--color-quiet);align-items:center}.signal-track i{width:3px;height:3px;background:var(--color-amber);border-radius:50%}.section{padding-block:var(--space-3xl)}.split-intro,.story-grid{display:grid;gap:var(--space-lg)}.split-intro h2{max-width:60rem}.lead{font-size:1.25rem;color:var(--color-muted);margin-top:var(--space-lg)}.lifecycle{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-xl);margin-top:var(--space-2xl)}.lifecycle-item{border-top:1px solid var(--color-rule);padding-top:var(--space-lg)}.lifecycle-item>span{color:var(--color-amber);font-size:var(--text-small);font-weight:400}.lifecycle-item b{display:block;font-size:var(--text-subheading);margin-block:var(--space-md)}.lifecycle-item p{font-size:1rem;color:var(--color-muted)}.lifecycle-arrow{display:none}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--space-2xl);margin-bottom:var(--space-2xl)}.section-heading>div{max-width:48rem}.section-heading>p{max-width:25rem;color:var(--color-muted)}.capability-grid,.solution-teasers,.values-grid,.mission-grid,.engagement-grid,.faq-grid{display:flex;flex-direction:column}.capability-card,.teaser,.value-card,.engagement-grid>article,.faq-grid>article{border-top:1px solid var(--color-rule);padding-block:var(--space-xl);display:grid;grid-template-columns:3rem minmax(0,1fr) minmax(0,1fr) auto;gap:var(--space-lg);align-items:baseline}.capability-card .card-top{display:flex;gap:var(--space-sm);align-items:center}.card-top>span,.teaser>span,.value-card>span,.engagement-grid>article>span{color:var(--color-amber);font-size:var(--text-small);font-weight:400}.card-top i{display:none}.capability-card p,.teaser p,.value-card p,.engagement-grid p,.faq-grid p{color:var(--color-muted);font-size:1rem}.capability-card a,.teaser a,.text-arrow{font-weight:400;font-size:var(--text-label);color:var(--color-muted);line-height:1.6}.text-arrow{display:block;margin-top:var(--space-lg)}.capability-card a:hover,.teaser a:hover,.text-arrow:hover{color:var(--color-amber)}.solution-teasers{margin-top:var(--space-2xl)}.page-hero{padding-block:var(--space-3xl);position:relative}.page-hero>.container{position:relative;z-index:1}.page-hero .art-fallback,.legal-page>.art-fallback{left:auto;right:var(--page-gutter);width:45%;opacity:.15;z-index:0}.page-hero p{max-width:45rem;color:var(--color-muted);margin-top:var(--space-xl)}.detail-grid{display:grid;grid-template-columns:8rem minmax(0,1fr);gap:var(--space-2xl);border-top:1px solid var(--color-rule);padding-top:var(--space-2xl)}.detail-index{display:flex;gap:var(--space-lg);align-items:flex-start;color:var(--color-amber);font-size:var(--text-label);font-weight:400}.detail-index i{font-style:normal;font-size:var(--text-subheading)}.detail-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2xl);margin-top:var(--space-xl)}.detail-columns h3{font-size:1.25rem;margin-bottom:var(--space-md)}.detail-columns ul{list-style:none;padding:0;margin:0}.detail-columns li{border-top:1px solid var(--color-rule);padding-block:var(--space-sm);font-size:1rem;color:var(--color-muted);line-height:1.6}.detail-columns li:before{content:'↗';color:var(--color-amber);margin-right:var(--space-sm)}.engagement{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:var(--space-2xl)}.engagement-grid>article{grid-template-columns:2rem minmax(0,1fr)}.engagement-grid p{grid-column:2}.solution-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-2xl);align-items:center;border-top:1px solid var(--color-rule);padding-top:var(--space-2xl)}.solution-detail-grid.reverse>.solution-copy{order:2}.solution-copy>.odoo-intro{color:var(--color-muted);margin-top:var(--space-lg)}.solution-tags,.security-rings{display:flex;flex-wrap:wrap;gap:var(--space-sm) var(--space-lg);margin-top:var(--space-xl);font-size:var(--text-label);font-weight:400;color:var(--color-muted)}.solution-tags span,.security-rings span{border-bottom:1px solid var(--color-rule);padding-block:var(--space-sm)}.security-rings span:before{content:'◦';margin-right:var(--space-sm);color:var(--color-amber)}.knowledge-flow{display:grid;grid-template-columns:minmax(0,1fr) 1.5rem minmax(0,1.1fr) 1.5rem minmax(0,1fr);gap:var(--space-xs);align-items:center}.flow-source,.flow-output{display:flex;flex-direction:column;gap:var(--space-md);text-align:center;font-size:var(--text-small);font-weight:400}.flow-source span,.flow-output span{border-bottom:1px solid var(--color-rule);padding-block:var(--space-xs)}.flow-source b,.flow-output b{color:var(--color-quiet);font-size:.7rem}.knowledge-flow .flow-line{display:flex;gap:3px}.knowledge-flow .flow-line i{width:3px;height:3px;background:var(--color-amber);border-radius:50%}.flow-core{border:1px solid var(--color-rule);border-radius:50%;aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-xs)}.flow-core strong{font-size:var(--text-subheading)}.flow-core small{font-size:.6rem;text-align:center;line-height:1.5;color:var(--color-muted)}.before-after{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:var(--space-lg);align-items:center;margin-top:var(--space-xl)}.before-after>div{border-top:1px solid var(--color-rule);padding-top:var(--space-lg)}.before-after small{color:var(--color-amber);font-size:var(--text-small);font-weight:400}.before-after p{font-size:1rem;color:var(--color-muted);margin-top:var(--space-sm)}.before-after>span{color:var(--color-amber)}.workflow-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-lg);align-self:start;padding-top:var(--space-xl)}.board-column>b{font-size:var(--text-label);display:block;color:var(--color-amber);padding-bottom:var(--space-md)}.board-column>span{display:block;border-top:1px solid var(--color-rule);padding-block:var(--space-lg);font-size:var(--text-small);font-weight:400;line-height:1.6;color:var(--color-muted)}.board-column .priority:before{content:'•';color:var(--color-amber);margin-right:var(--space-xs)}.maturity-header{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--space-lg);padding-block:var(--space-lg);border-top:1px solid var(--color-rule)}.maturity-header b{font-size:var(--text-label)}.maturity-header>span{font-size:var(--text-small);color:var(--color-amber);font-weight:400}.maturity-row{display:grid;grid-template-columns:2rem minmax(0,1fr) auto;gap:var(--space-sm);align-items:center;padding-block:var(--space-xl);border-top:1px solid var(--color-rule)}.maturity-row>span{color:var(--color-amber);font-size:var(--text-small);font-weight:400}.maturity-row small{display:block;color:var(--color-muted);font-size:var(--text-small);margin-top:var(--space-sm)}.maturity-row i{font-style:normal;color:var(--color-teal)}.story-copy p{margin-top:var(--space-lg);color:var(--color-muted)}.mission-card{border-top:1px solid var(--color-rule);padding-block:var(--space-xl);display:grid;grid-template-columns:8rem minmax(0,1fr);gap:var(--space-xl)}.mission-card>span{font-size:var(--text-label);font-weight:400;color:var(--color-amber)}.value-card{grid-template-columns:3rem minmax(0,1fr) minmax(0,1fr)}.company-map{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-2xl)}.company-map p{margin-top:var(--space-lg);color:var(--color-muted)}.map-grid{display:flex;flex-direction:column}.map-grid>span{font-size:1rem;padding-block:var(--space-md);border-top:1px solid var(--color-rule);color:var(--color-quiet)}.map-grid>.primary{color:var(--color-ink);font-weight:400}.map-grid>.primary:before{content:'•';color:var(--color-amber);margin-right:var(--space-sm)}.faq-grid>article{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.legal-page{padding-block:var(--space-3xl);position:relative}.legal-page>.container{position:relative;z-index:1}.legal-page h2{font-size:var(--text-subheading);margin-top:var(--space-2xl)}.legal-page p{color:var(--color-muted);margin-top:var(--space-lg)}.legal-updated{padding-block:var(--space-lg);border-block:1px solid var(--color-rule);font-size:1rem}.legal-page a{text-decoration:underline;text-decoration-color:var(--color-amber);text-underline-offset:.3rem}.back-link{padding-top:var(--space-xl);font-size:var(--text-label);font-weight:400;color:var(--color-quiet)}.reveal{opacity:1}.has-motion .reveal{opacity:0;transform:translateY(12px);transition:opacity .6s var(--ease-out),transform .6s var(--ease-out)}.has-motion .reveal.visible{opacity:1;transform:none}
@media(min-width:64rem){.hero-grid{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)}.hero-home{padding-top:var(--space-3xl)}.hero-home h1{font-size:min(var(--text-display),5.1rem)}.hero-art{height:36rem}.hero-copy{align-self:center}.split-intro{max-width:75rem}.story-grid{max-width:75rem}}
@media(max-width:63.99rem){.hero-art{height:30rem}.section-heading{display:block}.section-heading>p{margin-top:var(--space-lg);max-width:40rem}.capability-card,.teaser{grid-template-columns:2rem minmax(0,1fr)}.capability-card p,.teaser p,.capability-card a,.teaser a{grid-column:2}.solution-detail-grid,.company-map,.engagement{grid-template-columns:minmax(0,1fr);gap:var(--space-2xl)}.solution-detail-grid.reverse>.solution-copy{order:initial}.detail-grid{grid-template-columns:3rem minmax(0,1fr);gap:var(--space-lg)}.detail-index{flex-direction:column}.lifecycle{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:47.99rem){.hero-art{height:24rem}.section{padding-block:var(--space-2xl)}.page-hero{padding-block:var(--space-2xl)}.detail-grid{grid-template-columns:minmax(0,1fr)}.detail-index{flex-direction:row}.detail-columns{grid-template-columns:minmax(0,1fr)}.value-card{grid-template-columns:2rem minmax(0,1fr)}.value-card p{grid-column:2}.faq-grid>article,.mission-card{grid-template-columns:minmax(0,1fr)}.lifecycle{grid-template-columns:minmax(0,1fr)}.signal-track{justify-content:flex-start}.signal-track i{display:none}.workflow-board{gap:var(--space-sm)}.before-after{gap:var(--space-sm)}.legal-page{padding-block:var(--space-2xl)}.legal-page>.art-fallback{width:70%;height:18rem}.knowledge-flow{gap:3px;grid-template-columns:minmax(0,1fr) .75rem minmax(0,1.1fr) .75rem minmax(0,1fr)}.knowledge-flow .flow-line{gap:2px}.flow-core small{font-size:.5rem}}
@media(prefers-reduced-motion:reduce){.has-motion .reveal{opacity:1;transform:none;transition:none}}
@media(min-width:64rem){.hero-home h1{font-size:clamp(2.5rem,5vw,5.1rem)}}
.legal-page>.art-fallback{height:25rem}

/* Homepage now opens with copy; particle storytelling begins in the transformation section. */
.home-page .hero-grid--text{grid-template-columns:minmax(0,1fr)}
.hero-grid--text .hero-copy{max-width:58rem}
.home-page .hero-grid--text .hero-copy{max-width:58rem}
/* How we work: six stages, 3×2 on desktop with a track that draws in per row; vertical below 64rem. */
.how-num{color:var(--color-amber);font-size:var(--text-small);font-weight:400;font-variant-numeric:tabular-nums}
.how-outcome span{display:block;margin-bottom:var(--space-xs);font-size:var(--text-small);color:var(--color-quiet)}
.how-note{margin-top:var(--space-2xl);color:var(--color-quiet);font-size:var(--text-label)}
.how-note:before{content:'';display:inline-block;width:1.5rem;height:1px;margin-right:var(--space-sm);vertical-align:middle;background:var(--color-amber)}

/* Talk to us: one focused form with labels beside fields, contact details alongside. */
.talk-page{padding-block:var(--space-2xl) var(--space-3xl)}
.talk-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:var(--space-3xl);align-items:start}
.talk-intro h1{font-size:var(--text-heading);line-height:1.05}
.talk-intro p{max-width:38rem;margin-top:var(--space-lg);color:var(--color-muted)}
.talk-form{position:relative;display:flex;flex-direction:column;gap:var(--space-md);margin-top:var(--space-2xl)}
.talk-row{display:grid;grid-template-columns:11rem minmax(0,1fr);gap:var(--space-lg);align-items:start}
.talk-row>label{padding-top:.7rem;font-size:var(--text-label);font-weight:400;line-height:1.5}
.talk-row abbr{text-decoration:none;color:var(--color-amber)}
.talk-form select{appearance:none;padding-right:2.5rem;background-image:linear-gradient(45deg,transparent 50%,var(--color-muted) 50%),linear-gradient(135deg,var(--color-muted) 50%,transparent 50%);background-position:calc(100% - 1.2rem) 50%,calc(100% - .9rem) 50%;background-size:.3rem .3rem;background-repeat:no-repeat}
.talk-form input:focus,.talk-form select:focus,.talk-form textarea:focus{border-color:var(--color-ink)}
.talk-form [aria-invalid=true]{border-color:var(--color-error)}
.talk-trap{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.talk-status{margin-top:var(--space-md);font-size:var(--text-label);font-weight:400;line-height:1.5}
.talk-status:empty{display:none}
.talk-status.is-pending{color:var(--color-muted)}
.talk-status.is-success{color:var(--color-success)}
.talk-status.is-error{color:var(--color-error)}
.talk-status a{text-decoration:underline;text-underline-offset:.2em}
#sent,#send-failed{display:none}
#sent:target,#send-failed:target{display:block}
.talk-submit{margin-top:var(--space-sm)}
.talk-submit .form-note{margin-block:var(--space-md) 0;max-width:30rem}
.talk-aside{display:flex;flex-direction:column;gap:var(--space-xl);padding-top:calc(var(--text-heading) * 1.05 + var(--space-xl))}
.talk-detail{border-top:1px solid var(--color-rule);padding-top:var(--space-lg)}
.talk-detail h2{font-size:var(--text-label);font-weight:500;letter-spacing:0;line-height:1.5;margin-bottom:var(--space-sm)}
.talk-detail p{font-size:1rem;color:var(--color-muted)}
.talk-detail a{font-size:1rem;color:var(--color-lilac);overflow-wrap:anywhere}
.talk-detail a:hover{color:var(--color-amber)}
@media(max-width:63.99rem){.talk-grid{grid-template-columns:minmax(0,1fr);gap:var(--space-2xl)}.talk-aside{padding-top:0}}
@media(max-width:47.99rem){.talk-row{grid-template-columns:minmax(0,1fr);gap:var(--space-xs)}.talk-row>label{padding-top:0}.talk-submit>span{display:none}}
