@font-face{font-family:Manrope;src:url('assets/manrope-regular.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:Manrope;src:url('assets/manrope-bold.ttf') format('truetype');font-weight:600 800;font-display:swap}
/* Light-only palette. Text tokens exceed 7:1 on every page surface. */
:root{color-scheme:light;--paper:#f2f4ee;--ink:#19251f;--muted:#38483e;--line:#bec9bf;--control:#55685a;--green:#215039;--mint:#c5ebd4;--panel:#e8eee5;--art:#d8efdf;--ease:cubic-bezier(.22,1,.36,1)}
:root[data-paper=white]{--paper:#fff;--panel:#f4f6f3;--mint:#e0f0e4;--art:#e0f0e4}
:root[data-paper=cream]{--paper:#fff9e9;--panel:#f5efdf;--mint:#e7eed5;--art:#e7eed5}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:2rem}body{margin:0;background:var(--paper);color:var(--ink);font-family:Manrope,Arial,sans-serif;font-size:1.125rem;line-height:1.75;-webkit-font-smoothing:antialiased}h1,h2,h3,p{margin:0}h1,h2,h3{line-height:1.15;font-weight:700;letter-spacing:-.04em;overflow-wrap:break-word}h1{font-size:clamp(3rem,7.1vw,6rem)}h2{font-size:clamp(2.2rem,4.4vw,4rem)}h3{font-size:1.5rem}p{max-width:65ch}p+p{margin-top:1.5em}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}a,button,summary{touch-action:manipulation;-webkit-tap-highlight-color:transparent}button,summary{cursor:pointer}button{border:0}button:active{transform:scale(.98)}img{display:block;max-width:100%;height:auto}em{font-style:normal;color:var(--green)}.muted{color:var(--muted)}a,button,summary,input,select,textarea{scroll-margin:2rem}a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--ink);outline-offset:5px;box-shadow:0 0 0 5px var(--paper)}[hidden]{display:none!important}.section-shell{max-width:1600px;padding-inline:clamp(1.5rem,4.5vw,5rem);margin-inline:auto}.eyebrow{font-size:1rem;font-weight:600;line-height:1.5;letter-spacing:.025em}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip-link{position:fixed;top:-8rem;left:1rem;padding:1rem;background:var(--ink);color:var(--paper);z-index:40}.skip-link:focus{top:1rem}.line{display:block}.line>span{display:block}
.site-header{min-height:96px;padding:1rem clamp(1.5rem,4.5vw,5rem);display:flex;align-items:center;justify-content:space-between;gap:1.5rem;max-width:1600px;margin:auto;border-bottom:1px solid var(--line);position:relative;z-index:10}.brand{display:flex;align-items:center;min-width:44px;min-height:44px;flex-shrink:0}.brand img{width:142px;height:auto}.desktop-nav{display:flex;gap:1.5rem;align-items:center;font-size:1rem;font-weight:600}.desktop-nav a,.footer-main nav a{display:flex;align-items:center;min-height:44px;min-width:44px}.desktop-nav a:hover,.footer-main nav a:hover{text-decoration:underline;text-underline-offset:.3em}.header-actions{display:flex;align-items:center;gap:1rem}.button,.reading-button{display:inline-flex;align-items:center;justify-content:center;gap:1rem;min-height:48px;min-width:48px;border-radius:100px;padding:.7rem 1.4rem;font-size:1rem;font-weight:600;text-align:center;line-height:1.5;transition:background .2s,transform .2s}.button{background:var(--ink);color:var(--paper)}.button:hover{background:var(--green)}.button span{font-size:1.5rem}.reading-button{border:1px solid var(--control);background:transparent;border-radius:4px;padding:.65rem .85rem}.reading-button:hover{background:var(--panel)}.button-small{padding:.65rem 1.2rem}.menu-toggle{display:none;width:48px;height:48px;border:1px solid var(--control);background:var(--paper);border-radius:4px;flex-direction:column;align-items:center;justify-content:center;gap:7px;flex-shrink:0}.menu-toggle span{height:2px;width:22px;background:var(--ink)}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(4.5px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-4.5px) rotate(-45deg)}.mobile-menu{position:relative;z-index:20;background:var(--paper);padding:1.5rem;border-bottom:1px solid var(--control)}.mobile-menu a{display:flex;justify-content:space-between;gap:1rem;padding:.75rem;min-height:48px;font-size:1.3rem}.mobile-menu a:hover{background:var(--panel)}
.hero{display:grid;grid-template-columns:1.45fr 1fr;gap:2rem;align-items:center;padding-block:4rem 5rem}.hero .eyebrow{margin-bottom:2rem;color:var(--muted)}.hero-copy{position:relative;z-index:2;min-width:0}.hero-bottom{display:flex;align-items:center;gap:2.5rem;margin-top:2.5rem}.hero-bottom p{font-size:1.125rem;color:var(--muted)}.round-link{display:flex;align-items:center;gap:1rem;min-height:54px;font-size:1rem;font-weight:600;line-height:1.5;flex-shrink:0}.circle-arrow{width:54px;height:54px;border:1px solid var(--ink);border-radius:50%;display:grid;place-items:center;font-size:1.75rem;transition:background .3s}.round-link:hover .circle-arrow{background:var(--mint)}.hero-visual{position:relative;aspect-ratio:1;max-width:460px;width:100%;justify-self:end;isolation:isolate}.focus-window{position:absolute;inset:4%;border-radius:50%;overflow:hidden}.focus-window img{width:100%;height:100%;object-fit:cover;transform:scale(1.05);transition:transform 1s var(--ease)}.hero-visual[data-perspective="1"] img{transform:scale(1.55) rotate(-15deg)}.hero-visual[data-perspective="2"] img{transform:scale(1.2) rotate(20deg)}.focus-orbit{position:absolute;inset:0;border:1px solid var(--line);border-radius:50%}.focus-orbit span{position:absolute;top:15%;right:13%;width:18px;height:18px;background:var(--green);border-radius:50%;box-shadow:0 0 0 6px var(--paper)}.focus-control{position:absolute;bottom:-.5rem;left:50%;transform:translateX(-50%);background:var(--paper);border:1px solid var(--control);border-radius:100px;min-height:48px;padding:.65rem 1rem;font-size:1rem;line-height:1.5;display:flex;align-items:center;gap:.5rem;white-space:nowrap}.focus-control:active{transform:translateX(-50%)}.focus-control:hover{background:var(--mint)}.focus-control span{font-size:1.5rem}
.manifesto{padding-bottom:6rem}.section-kicker{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding-block:1.4rem;border-block:1px solid var(--line);font-size:1rem;color:var(--muted)}.asterisk{font-size:2rem;color:var(--green);line-height:1}.manifesto-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:6rem;padding-top:4.5rem;align-items:start}.manifesto-copy>p:first-child{font-size:1.5rem;line-height:1.6;letter-spacing:-.015em}.secondary-copy{color:var(--muted);margin-top:1.5em}.text-link{display:inline-flex;align-items:center;gap:1rem;min-height:44px;min-width:44px;font-size:1rem;font-weight:600;text-decoration:underline;text-underline-offset:.4em;line-height:1.5;padding-block:.5rem}.text-link:hover{text-decoration-thickness:2px}.text-link span{font-size:1.4rem;flex-shrink:0}.manifesto-copy .text-link{margin-top:1.5rem}.team-facts{display:flex;align-items:center;justify-content:space-between;gap:2rem;margin-top:4rem;padding-top:2rem;border-top:1px solid var(--line)}.team-facts>div{display:flex;align-items:center;gap:1.5rem}.team-facts strong{font-size:4.5rem;line-height:1;font-weight:400;letter-spacing:-.04em}.team-facts span{font-size:1rem;line-height:1.5}.team-facts>p{color:var(--muted)}
.expertise{padding-block:5rem 6rem;background:var(--panel)}.section-heading .eyebrow{margin-bottom:1.5rem}.expertise-layout{display:grid;grid-template-columns:1fr 1.15fr;gap:7%;margin-top:3.5rem;align-items:start}.service-art{position:sticky;top:2rem;min-height:520px;background:var(--art);color:#203f2d;padding:2rem;overflow:hidden;border-radius:4px;isolation:isolate}.art-words{font-size:clamp(3rem,6.8vw,6rem);line-height:1;letter-spacing:-.04em;font-weight:700;position:relative;z-index:1}.art-words>span{display:block}.art-period{color:#203f2d}.service-art-note{position:absolute;bottom:1.5rem;left:2rem;right:2rem;font-size:1rem;background:var(--art);z-index:2;padding-top:.5rem}.orbital-art{position:absolute;width:310px;height:310px;right:-20px;bottom:50px;transform:rotate(-35deg);transition:transform .8s var(--ease)}.orbital-art span{position:absolute;inset:0;border:23px solid #396d4b;border-radius:50%}.orbital-art span:nth-child(2){transform:scaleX(.75)}.orbital-art span:nth-child(3){transform:scaleX(.5)}.orbital-art span:nth-child(4){transform:scaleX(.25)}.service-art[data-mode=create] .orbital-art{transform:rotate(40deg)}.service-art[data-mode=build] .orbital-art{transform:rotate(90deg)}.service-art[data-mode=grow] .orbital-art{transform:rotate(150deg)}.service{border-bottom:1px solid var(--control)}.service:first-child{border-top:1px solid var(--control)}summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.5rem .25rem;font-size:clamp(1.4rem,2.1vw,1.8rem);font-weight:600;letter-spacing:-.025em;line-height:1.5}summary::-webkit-details-marker{display:none}.service-plus{font-size:1.75rem;font-weight:400;transition:transform .3s}.service[open] .service-plus{transform:rotate(45deg)}.service-body{padding:0 .25rem 1.5rem}.service-body p{color:var(--muted);font-size:1.125rem;max-width:50ch}.service-body ul{padding-left:1.3rem;margin:1.5em 0;font-size:1rem}.service-body li{margin-top:.5em}.service-body .text-link{font-size:1rem}
.work{padding-block:6rem}.work-intro{margin-top:1.8rem;color:var(--muted);max-width:55ch}.project-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:3rem;margin-top:3rem;align-items:start}.project:nth-child(2){padding-top:6rem}.project-preview{border:1px solid var(--control);border-radius:4px;overflow:hidden;display:flex;flex-direction:column;background:#e7eee4;color:#19251f}.preview-brand{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.3rem 1.7rem;border-bottom:1px solid #91a18d;font-size:1.125rem;font-weight:700;line-height:1.5}.preview-brand span{font-size:1rem;font-weight:400}.preview-copy{padding:2.2rem 1.7rem}.preview-title{font-size:clamp(2rem,3.7vw,3.4rem);line-height:1.1;font-weight:700;letter-spacing:-.04em}.preview-copy>p+p{font-size:1rem;margin-top:1.5em}.project-preview>img{width:100%;aspect-ratio:1.75;object-fit:cover;object-position:50% 45%}.dandy-preview{background:#f4ecd9;color:#29251e}.dandy-preview .preview-brand{border-color:#ac9f86;letter-spacing:.01em}.dandy-preview>img{object-position:center 55%}.project-caption{padding-top:1.5rem}.project-caption h3{font-size:1.6rem}.project-caption p{font-size:1rem;margin-top:.8rem;color:var(--muted)}.project-caption .text-link{margin-top:1rem}.portfolio-note{font-size:1rem;color:var(--muted);margin-top:2.5rem;max-width:60ch}.marquee{overflow:hidden;background:var(--mint);padding-block:2rem}.marquee-track{width:max-content;display:flex}.marquee-track>span{white-space:nowrap;font-size:clamp(2.8rem,5.5vw,5rem);line-height:1.3;letter-spacing:-.035em}.marquee b{font-weight:400;color:var(--green);font-size:.8em;margin-inline:2rem}
.approach{padding-block:6rem}.approach-intro>p{margin-top:1.5em;color:var(--muted)}.process-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:3.5rem;margin-top:4rem}.process-symbol{display:block;font-size:3rem;line-height:1;color:var(--green);margin-bottom:1.8rem}.process-step h3{font-size:1.5rem;line-height:1.4}.process-step p{font-size:1.125rem;line-height:1.75;color:var(--muted);margin-top:1.5em}.partnership{margin-top:4rem;padding-block:2rem;border-block:1px solid var(--line);display:grid;grid-template-columns:.8fr 1fr auto 1.1fr;align-items:center;gap:2rem}.partnership-label,.partnership-or{font-size:1rem;color:var(--muted)}.partnership h3{font-size:1.3rem}.partnership p{font-size:1rem;color:var(--muted);margin-top:1em}
.contact{background:var(--mint);padding-block:5rem}.contact .eyebrow{margin-bottom:2rem}.contact-main{display:flex;align-items:center;justify-content:space-between;gap:2rem}.contact h2{font-size:clamp(2.5rem,6.5vw,6rem)}.contact-arrow{display:grid;place-items:center;width:clamp(80px,12vw,170px);aspect-ratio:1;border:1px solid var(--ink);border-radius:50%;font-size:clamp(3rem,7vw,6rem);flex-shrink:0}.contact-arrow:hover{background:var(--paper)}.contact-bottom{margin-top:3rem;padding-top:2rem;border-top:1px solid var(--control);display:grid;grid-template-columns:1fr 1fr;gap:2rem}.contact-bottom p{font-size:1.125rem}.contact-bottom p+p{margin:0}.brief-form{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin-top:2.5rem;max-width:1000px}.form-wide{grid-column:1/-1}.form-field label{display:block;font-size:1.125rem;font-weight:600;margin-bottom:.65rem;line-height:1.5}.field-help{font-size:1rem;line-height:1.7;margin-bottom:1rem}.form-field input,.form-field select,.form-field textarea{width:100%;padding:.85rem 1rem;background:var(--paper);border:2px solid var(--control);border-radius:4px;font-size:1.125rem;line-height:1.7;min-height:48px}.form-field textarea{resize:vertical;min-height:9rem}.form-field select{padding-right:2rem}.field-error{font-size:1rem;color:#672219;font-weight:600;margin-top:1rem}.form-field [aria-invalid=true]{border-color:#672219}.form-actions{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap}.form-actions p{font-size:1rem}.site-footer{padding-block:3rem 1.5rem}.footer-main{display:flex;justify-content:space-between;align-items:flex-start;gap:2rem;flex-wrap:wrap}.footer-main nav{display:grid;gap:.5rem;font-size:1rem}.back-top{display:flex;align-items:center;gap:1rem;min-height:48px;font-size:1rem}.footer-bottom{margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:2rem;flex-wrap:wrap;font-size:1rem}.footer-bottom a{min-height:44px;display:flex;align-items:center;text-decoration:underline;text-underline-offset:.3em}
.reading-dialog{padding:2rem;border:2px solid var(--control);border-radius:6px;max-width:640px;width:calc(100% - 2rem);max-height:calc(100dvh - 2rem);overflow:auto;background:var(--paper);color:var(--ink)}.reading-dialog::backdrop{background:#14261dcc}.dialog-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.dialog-heading h2{font-size:2rem;line-height:1.25}.dialog-close{flex-shrink:0;min-width:48px;min-height:48px;background:var(--paper);border:1px solid var(--control);border-radius:4px;font-size:2rem;line-height:1}.reading-dialog>p{margin-top:1.5em;font-size:1.125rem}.reading-dialog .form-field{margin-top:1.5rem}.checkbox-label{display:flex;align-items:center;gap:1rem;margin-block:1.5rem;min-height:48px;font-size:1.125rem;cursor:pointer}.checkbox-label input{width:26px;height:26px;accent-color:var(--ink)}.reading-done{margin-top:.5rem}.case-study{padding-block:2.5rem 5rem}.case-study nav{display:flex;gap:1rem;flex-wrap:wrap;align-items:center;font-size:1rem;margin-bottom:3rem}.case-study nav a{min-height:44px;display:flex;align-items:center;text-decoration:underline;text-underline-offset:.3em}.case-study h1{font-size:clamp(2.8rem,6vw,5rem);max-width:100%}.case-lead{font-size:1.6rem;margin-top:1.5rem}.case-disclosure{font-size:1rem;color:var(--muted);margin-block:1.5rem 3rem}.case-study>.project-preview{max-width:1000px;margin:auto}.case-study .preview-copy{padding:3.5rem}.case-study .preview-title{font-size:clamp(2.5rem,5.5vw,5rem)}.case-study .preview-brand{padding:1.5rem 3.5rem}.case-study .project-preview>img{aspect-ratio:2}.case-notes{max-width:65ch;margin-top:4rem}.case-notes h2{font-size:2.2rem}.case-notes li{margin-top:1.5em}.case-notes .button{margin-top:2rem}.document-page{max-width:900px;margin:auto;padding:3rem 1.5rem 5rem}.document-page h1{font-size:3rem}.document-page h2{font-size:2rem;margin-top:3rem;margin-bottom:1.5rem}.document-page p{margin-top:1.5em}.document-page a{text-decoration:underline;text-underline-offset:.3em;display:inline-flex;min-height:44px;align-items:center}.document-page li{margin-block:1em}
@media(prefers-reduced-motion:no-preference){html:not(.reduce-motion) .hero-copy{animation:enter .7s var(--ease) both}html:not(.reduce-motion) .hero-visual{animation:enter .9s var(--ease) both}html:not(.reduce-motion) .focus-orbit{animation:orbit 32s linear infinite}html:not(.reduce-motion) .marquee-track{animation:marquee 32s linear infinite}html:not(.reduce-motion) .service[open] .service-body{animation:enter .35s var(--ease)}.js-reveals:not(.reduce-motion) .reveal{transform:translateY(20px);transition:transform .7s var(--ease)}.js-reveals:not(.reduce-motion) .reveal.visible{transform:none}}
@keyframes enter{from{transform:translateY(20px)}to{transform:none}}@keyframes orbit{to{transform:rotate(360deg)}}@keyframes marquee{to{transform:translateX(-50%)}}
.reduce-motion{scroll-behavior:auto}.reduce-motion *,.reduce-motion *:before,.reduce-motion *:after{animation:none!important;transition:none!important}.reduce-motion .reveal{transform:none!important}.reduce-motion .marquee-track{width:auto;display:block;padding-inline:1.5rem}.reduce-motion .marquee-track>span:first-child{white-space:normal}.reduce-motion .marquee-track>span:nth-child(2){display:none}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.reveal{transform:none!important}.marquee-track{width:auto;display:block;padding-inline:1.5rem}.marquee-track>span:first-child{white-space:normal}.marquee-track>span:nth-child(2){display:none}}
@media(max-width:1200px){.desktop-nav{gap:1rem}.site-header{gap:1rem}.header-actions{gap:.6rem}.reading-button{padding:.6rem}.button-small{padding:.6rem 1rem}.brand img{width:125px}.hero-bottom{flex-wrap:wrap;gap:1.5rem}.manifesto-grid{gap:3rem}.team-facts>p{display:none}.service-art{min-height:500px}.art-words{font-size:4.5rem}.project-grid{gap:2rem}.process-grid{gap:2rem}.partnership{grid-template-columns:1fr auto 1fr}.partnership-label{grid-column:1/-1}}
@media(max-width:1050px){.desktop-nav{display:none}.menu-toggle{display:flex}.hero{grid-template-columns:1.2fr 1fr;gap:1.5rem}.hero h1{font-size:clamp(3rem,6.5vw,4.8rem)}.manifesto-grid{gap:2rem}.expertise-layout{gap:2rem;grid-template-columns:.9fr 1.1fr}.orbital-art{right:-70px}.team-facts{flex-wrap:wrap}}
@media(max-width:760px){.hero,.manifesto-grid,.expertise-layout,.project-grid,.process-grid,.brief-form,.contact-bottom{grid-template-columns:1fr}.hero{padding-top:2.5rem;padding-bottom:3rem;gap:3rem}.hero h1{font-size:clamp(2.8rem,10.2vw,4.7rem)}.hero-bottom{display:block;margin-top:1.5rem}.hero-bottom .round-link{margin-top:1.5rem}.hero-bottom p{font-size:1.125rem}.hero-visual{max-width:370px;justify-self:center}.hero .eyebrow{margin-bottom:1.5rem}.manifesto{padding-bottom:4rem}.manifesto-grid{padding-top:3rem;gap:2rem}.team-facts{gap:1.5rem}.expertise,.work,.approach{padding-block:4rem}.service-art{position:relative;top:auto;min-height:400px}.art-words{font-size:4rem}.orbital-art{width:260px;height:260px;right:0;bottom:45px}.project:nth-child(2){padding-top:0}.project-grid{gap:3rem}.preview-title{font-size:2.6rem}.project-preview>img{aspect-ratio:1.5}.process-grid{gap:2.5rem;margin-top:2.5rem}.process-step{border-top:1px solid var(--line);padding-top:1.5rem}.process-symbol{margin-bottom:1rem}.process-step p{margin-top:1em}.partnership{grid-template-columns:1fr;gap:1.5rem}.partnership-or{display:none}.contact{padding-block:3rem}.contact h2{font-size:clamp(2.3rem,8vw,3.8rem)}.contact-arrow{width:65px;font-size:2.8rem}.contact-main{gap:1rem}.contact-bottom{gap:1.5rem}.contact .eyebrow{max-width:30ch}.footer-main{display:grid;grid-template-columns:1fr 1fr}.footer-main>.brand{grid-column:1/-1}.footer-main .reading-button{align-self:start}.back-top{grid-column:1/-1}.footer-bottom{display:block}.footer-bottom a{margin-top:1.5rem}.case-study .preview-copy,.case-study .preview-brand{padding:1.5rem}.case-study .project-preview>img{aspect-ratio:1.5}.case-notes h2{font-size:1.8rem}}
@media(max-width:520px){.section-shell{padding-inline:1.25rem}.site-header{padding:1rem 1.25rem;gap:.5rem;flex-wrap:wrap}.header-actions{margin-left:auto;gap:.75rem}.header-actions>.button{display:none}.brand img{width:112px}.header-actions .reading-button{font-size:1rem;max-width:110px;padding:.5rem;line-height:1.4}.hero .eyebrow{font-size:1rem}.hero h1{font-size:clamp(2.5rem,10.1vw,3.2rem)}h2{font-size:2.2rem}.hero-visual{max-width:310px}.focus-control{font-size:1rem;padding:.6rem .8rem;white-space:normal;width:max-content;max-width:100%;text-align:left}.section-kicker{align-items:flex-start;gap:1rem}.section-kicker .asterisk{flex-shrink:0}.team-facts{display:block}.team-facts .text-link{margin-top:1.5rem}.service-art{min-height:380px;padding:1.5rem}.art-words{font-size:3.8rem}.service-art-note{left:1.5rem;right:1.5rem}.preview-brand{padding:1rem;flex-wrap:wrap}.preview-copy{padding:1.5rem}.preview-title{font-size:2.3rem}.dandy-preview .preview-brand span{display:block}.contact-main{display:block}.contact-arrow{margin-top:1.5rem}.brief-form{gap:1.5rem}.form-actions{display:block}.form-actions p{margin-top:1.5rem}.reading-dialog{padding:1.25rem}.dialog-heading h2{font-size:1.7rem}.case-study h1{font-size:2.5rem}.case-study>.project-preview .preview-title{font-size:2.2rem}.case-study nav{gap:.5rem;margin-bottom:2rem}.site-header>.text-link{order:3;width:100%}}
/* Enlarged reading modes reflow deliberately instead of shrinking text to fit. */
:root[data-large-text] .desktop-nav{display:none}:root[data-large-text] .menu-toggle{display:flex}:root[data-large-text] .hero,:root[data-large-text] .manifesto-grid,:root[data-large-text] .expertise-layout,:root[data-large-text] .project-grid,:root[data-large-text] .process-grid,:root[data-large-text] .brief-form,:root[data-large-text] .contact-bottom,:root[data-large-text] .partnership{grid-template-columns:1fr}:root[data-large-text] .site-header{flex-wrap:wrap}:root[data-large-text] .header-actions{flex-wrap:wrap}:root[data-large-text] .project:nth-child(2){padding-top:0}:root[data-large-text] .hero-visual{justify-self:center}:root[data-large-text] .service-art{position:relative;min-height:20rem}:root[data-large-text] .contact-main,:root[data-large-text] .hero-bottom,:root[data-large-text] .team-facts{display:block}:root[data-large-text] .round-link,:root[data-large-text] .contact-arrow{margin-top:1.5rem}:root[data-large-text] .partnership-or{display:none}:root[data-large-text] .footer-main{display:flex;flex-wrap:wrap}:root[data-large-text] .preview-brand{flex-wrap:wrap}:root[data-large-text] .header-actions>.button{display:none}
/* Keep long words and enlarged text inside their columns, including 320px layouts. */
body{overflow-wrap:anywhere}.hero>*,.manifesto-grid>*,.expertise-layout>*,.project-grid>*,.process-grid>*,.brief-form>*,.contact-bottom>*,.partnership>*,summary>*,.preview-brand>*{min-width:0}.text-link,.round-link{max-width:100%}.team-facts>div{flex-wrap:wrap}.header-actions{min-width:0}.preview-title{overflow-wrap:anywhere}
:root[data-large-text] .header-actions .reading-button{max-width:100%;flex:1;min-width:0}:root[data-large-text] .header-actions{width:100%}:root[data-large-text] .team-facts>div{gap:1rem}:root[data-large-text] .service-art-note{position:relative;bottom:auto;left:auto;right:auto;margin-top:2rem}:root[data-large-text] .footer-main>*{max-width:100%}
.dialog-heading>h2{min-width:0}.dialog-heading h2{overflow-wrap:anywhere}.reading-dialog .form-field select{min-width:0;max-width:100%}.reading-dialog{padding:clamp(1rem,4vw,2rem)}
@media(max-width:520px){.dialog-heading{flex-direction:column;gap:.75rem}.dialog-close{align-self:flex-end;order:-1}.dialog-heading h2{width:100%}.checkbox-label{align-items:flex-start}.checkbox-label input{flex-shrink:0}}

/* Native selects, with a deliberately inset chevron. */
.select-wrap{position:relative;min-width:0}.form-field .select-wrap select{appearance:none;-webkit-appearance:none;padding-inline:1rem 3.5rem;cursor:pointer}.select-chevron{position:absolute;right:1.25rem;top:50%;width:.65rem;height:.65rem;border-right:2px solid var(--ink);border-bottom:2px solid var(--ink);transform:translateY(-70%) rotate(45deg);pointer-events:none}
@media(forced-colors:active){.form-field .select-wrap select{appearance:auto;padding-right:1rem}.select-chevron{display:none}}
/* The customer journey: three disciplines come into a shared focus. */
.connected{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:5%;padding-block:7rem;overflow:clip}.connected>*{min-width:0}.connected-copy>.eyebrow{margin-bottom:1.5rem}.connected-copy>p:not(.eyebrow){margin-top:2rem}.connected-note{color:var(--muted);font-size:1rem}.journey-list{padding:0;margin:2rem 0 0;list-style:none;display:flex;flex-wrap:wrap;gap:.75rem 1.5rem;font-size:1rem;font-weight:600}.journey-list li{padding-bottom:.5rem;border-bottom:2px solid var(--green)}.focus-assembly{position:relative;aspect-ratio:1;max-width:600px;width:100%;isolation:isolate}.assembly-ring{position:absolute;inset:15%;border:clamp(20px,3vw,44px) solid #608c72;border-radius:50%;background:transparent}.ring-creative{inset:22%;border-color:#99bea6}.ring-technology{inset:29%;border-color:#c5ebd4}.assembly-center{position:absolute;inset:37% 20%;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.2;z-index:3}.assembly-center>span{font-size:1rem}.assembly-center strong{font-size:clamp(2.5rem,4.5vw,4.8rem);letter-spacing:-.04em}.assembly-label{position:absolute;z-index:4;padding:.55rem .9rem;border:1px solid var(--control);background:var(--paper);font-size:1rem;font-weight:600}.label-strategy{top:8%;left:6%}.label-creative{top:32%;right:0}.label-technology{bottom:15%;left:6%}.assembly-caption{position:absolute;bottom:0;width:100%;text-align:center;font-size:1rem;color:var(--muted)}
.systems{padding-block:5rem;background:var(--panel)}.systems-heading{display:flex;justify-content:space-between;gap:3rem;align-items:flex-end;margin-bottom:3rem}.systems-heading p{max-width:22ch;color:var(--muted)}.story-detail{border-top:1px solid var(--control)}.story-detail:last-child{border-bottom:1px solid var(--control)}.story-detail summary{padding-block:1.6rem}.story-detail summary>span:last-child{flex-shrink:0;font-weight:400;transition:transform .25s}.story-detail[open] summary>span:last-child{transform:rotate(45deg)}.detail-content{padding:.5rem .25rem 2rem}.detail-content>p{max-width:65ch}.capability-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem 2rem;padding-left:1.25rem;margin:2rem 0 0;font-size:1rem}.ecosystem{margin-top:3rem}.network-list{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem 2rem;padding:0;margin:2rem 0 0;font-size:1rem}.network-list li{padding-block:.65rem;border-bottom:1px solid var(--line)}
.company{padding-block:6rem}.company-intro{display:grid;grid-template-columns:1.15fr 1fr;gap:6%;align-items:start}.company-intro>*{min-width:0}.company-intro p+p{margin-top:1.5em}.company-intro .text-link{margin-top:1.5rem}.values-list{list-style:none;display:flex;flex-wrap:wrap;gap:1rem 2rem;padding:2rem 0;margin:3rem 0;border-top:1px solid var(--line);font-size:1.125rem;font-weight:600}.values-list li{display:flex;align-items:center;gap:.6rem}.values-list li:before{content:'';width:.45rem;height:.45rem;border-radius:50%;background:var(--green);flex-shrink:0}.office-address{font-style:normal;font-size:1rem;display:flex;flex-direction:column;gap:1rem;max-width:28ch}.office-address strong{font-weight:600}.focus-halo{position:absolute;inset:8%;border:1px solid var(--control);border-radius:50%;transform:rotate(-18deg) scaleX(1.22)}
/* Scroll motion is enabled only after the controller is ready. */
.motion-ready .reveal,.motion-ready .reveal.visible{transform:none;transition:none}.motion-ready .hero-copy,.motion-ready .hero-visual,.motion-ready .service[open] .service-body{animation:none!important}.motion-ready .focus-orbit,.motion-ready .marquee-track{animation-play-state:paused!important}.motion-ready .motion-in-view .focus-orbit,.motion-ready .marquee.motion-in-view .marquee-track{animation-play-state:running!important}.page-hidden .focus-orbit,.page-hidden .marquee-track{animation-play-state:paused!important}.motion-ready:not(.reduce-motion) .focus-window{translate:0 var(--hero-drift,0px);rotate:var(--hero-turn,0deg)}.motion-ready:not(.reduce-motion) .focus-halo{transform:rotate(var(--halo-turn,-18deg)) scaleX(1.22)}.motion-ready:not(.reduce-motion) .ring-strategy{transform:translateX(var(--ring-x,-18%)) rotate(var(--ring-turn,-25deg)) scaleX(.82)}.motion-ready:not(.reduce-motion) .ring-creative{transform:translateX(calc(var(--ring-x,-18%) * -1)) rotate(calc(var(--ring-turn,-25deg) * -1)) scaleX(.9)}.motion-ready:not(.reduce-motion) .ring-technology{transform:rotate(var(--ring-turn,-25deg))}.motion-ready:not(.reduce-motion) .project-preview>img{scale:1.09;translate:0 var(--image-drift,0px)}.project-preview>img{transform-origin:center}.project-preview{isolation:isolate}.preview-copy,.preview-brand{position:relative;z-index:1;background:inherit}.button:hover>span,.text-link:hover>span,.round-link:hover .circle-arrow{translate:3px -3px}.button>span,.text-link>span,.circle-arrow{transition:translate .25s var(--ease)}
@media(max-width:760px){.connected,.company-intro{grid-template-columns:1fr;gap:3rem}.connected,.company{padding-block:4rem}.focus-assembly{max-width:440px;margin:auto}.systems{padding-block:4rem}.systems-heading{display:block}.systems-heading p{margin-top:1.5rem;max-width:100%}.capability-list,.network-list{grid-template-columns:repeat(2,minmax(0,1fr))}.footer-main .office-address{grid-column:1/-1}.assembly-ring{border-width:24px}.assembly-center strong{font-size:3rem}.values-list{gap:1rem 1.5rem}}
@media(max-width:420px){.capability-list,.network-list{grid-template-columns:1fr}.assembly-label{padding:.4rem .6rem}.assembly-center strong{font-size:2.5rem}.assembly-center>span{font-size:1rem}.focus-assembly{margin-block:1rem}.assembly-caption{position:relative;display:block;padding-top:105%}.label-creative{right:0;top:27%}.label-strategy{left:0}.label-technology{left:0;bottom:15%}}
:root[data-large-text] .connected,:root[data-large-text] .company-intro{grid-template-columns:1fr}:root[data-large-text] .systems-heading{display:block}:root[data-large-text] .systems-heading p{margin-top:1.5rem}:root[data-large-text] .capability-list,:root[data-large-text] .network-list{grid-template-columns:1fr}:root[data-large-text] .focus-assembly{display:none}
@media(prefers-reduced-motion:reduce){.focus-window,.focus-halo,.assembly-ring,.project-preview>img{translate:none!important;rotate:none!important}.project-preview>img{scale:1!important}}
.reduce-motion .project-preview>img{scale:1}.reduce-motion .button:hover>span,.reduce-motion .text-link:hover>span,.reduce-motion .round-link:hover .circle-arrow{translate:none}
@view-transition{navigation:auto}::view-transition-old(root){animation:page-out .18s ease-in both}::view-transition-new(root){animation:page-in .35s var(--ease) both}@keyframes page-out{to{opacity:0;transform:translateY(-8px)}}@keyframes page-in{from{opacity:0;transform:translateY(14px)}}.reduce-motion::view-transition-old(root),.reduce-motion::view-transition-new(root){animation:none}@media(prefers-reduced-motion:reduce){::view-transition-old(root),::view-transition-new(root){animation:none}}

.motion-ready.page-hidden .motion-in-view .focus-orbit,.motion-ready.page-hidden .marquee.motion-in-view .marquee-track{animation-play-state:paused!important}
.hero{overflow:clip}
