@font-face{font-family:Inter;src:url('/assets/inter.woff2') format('woff2');font-weight:100 900;font-display:swap}
:root{--paper:#f7f6f2;--ink:#142536;--olive:#526675;--line:#cbd3d7;--muted:#526675;--white:#ffffff;--accent:#ff713b;--accent-hover:#ff925f;--accent-text:#142536;--surface:#e6edf0;--surface-deep:#d5e0e5;--gap:clamp(22px,4.5vw,80px)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:120px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,Arial,sans-serif;font-size:16px;line-height:1.6}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--olive);outline-offset:6px}button{cursor:pointer}img{max-width:100%;display:block}h1,h2,h3,p{margin:0}h1,h2,h3{line-height:1.06;font-weight:550;letter-spacing:-.055em}h1{font-size:clamp(3.2rem,7.8vw,8.1rem)}h2{font-size:clamp(2.4rem,4.8vw,4.7rem)}h3{font-size:1.6rem;letter-spacing:-.035em}.wrap{width:calc(100% - 2*var(--gap));max-width:1440px;margin-inline:auto}.muted{color:var(--olive)}.kicker{font-size:.75rem;font-weight:550;letter-spacing:.13em;text-transform:uppercase;line-height:1.5}.section{padding-block:clamp(80px,10vw,150px)}.text-link{display:inline-flex;gap:1.8rem;align-items:center;padding-block:12px;border-bottom:1px solid currentColor;font-size:.9rem;font-weight:550}.text-link span{transition:transform .2s}.text-link:hover span{transform:translate(3px,-3px)}.button{min-height:55px;padding:16px 24px;display:inline-flex;align-items:center;justify-content:space-between;gap:30px;border:1px solid var(--ink);background:var(--ink);color:var(--white);font-size:.88rem;line-height:1.45;font-weight:550;border-radius:4px;transition:background .2s,transform .2s}.button:hover{background:#414139;transform:translateY(-2px)}.button span{font-size:1.25rem}.skip{position:fixed;top:-100px;left:20px;z-index:99;background:var(--ink);color:white;padding:15px}.skip:focus{top:10px}.wordmark{display:block;width:100%;height:auto;overflow:visible}.site-header{position:sticky;top:0;z-index:30;background:rgba(239,238,232,.95);backdrop-filter:blur(15px)}.header-inner{height:100px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:30px}.logo{width:115px;flex-shrink:0}.site-header nav{display:flex;gap:34px;align-items:center;font-size:.88rem}.site-header nav>a:not(.button){position:relative;padding-block:12px}.site-header nav>a[aria-current=page]:after{content:'';position:absolute;bottom:2px;left:0;width:100%;height:1px;background:var(--ink)}.nav-button{min-height:44px;padding:11px 17px;gap:22px}.menu-toggle{border:0;background:transparent;padding:10px;font-weight:550}.menu-toggle:not([hidden]){display:none}
.hero{padding-top:55px;padding-bottom:60px}.hero-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:55px}.edition{font-size:.78rem;color:var(--muted)}.hero h1{font-size:clamp(4rem,9.1vw,9rem);line-height:1.02;letter-spacing:-.067em}.hero-bottom{display:flex;justify-content:space-between;align-items:flex-end;margin-top:42px;gap:30px}.hero-bottom>p{font-size:clamp(1.1rem,1.65vw,1.55rem);line-height:1.5;letter-spacing:-.025em}.hero-bottom>div{display:flex;flex-direction:column;align-items:flex-start;gap:9px}.hero-bottom .text-link{font-size:.8rem;border:0}.brand-stage{margin:0 18px;background:#6b6b5e;color:#fafaf8;padding:26px calc(var(--gap) - 18px);border-radius:7px;position:relative;overflow:hidden}.brand-stage:before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 35% 25%,#8b8b7999,transparent 65%);pointer-events:none}.brand-top,.brand-bottom{position:relative;display:flex;justify-content:space-between;gap:20px}.brand-top{font-size:.65rem;letter-spacing:.15em}.brand-mark{position:relative;margin:50px auto 44px;width:72%;max-width:1000px}.brand-bottom{font-size:clamp(.9rem,1.6vw,1.5rem);letter-spacing:.12em}.brand-note{font-size:.75rem;letter-spacing:0;align-self:end}.section-heading{margin-bottom:55px}.section-heading .kicker{margin-bottom:27px}.split{display:flex;justify-content:space-between;gap:40px;align-items:end}.service-row{display:grid;grid-template-columns:55px 1fr .7fr 30px;align-items:center;gap:22px;padding:33px 0;border-top:1px solid var(--line);transition:padding .25s,background .25s}.service-row:last-child{border-bottom:1px solid var(--line)}.service-row:hover{padding-inline:14px;background:#e7e6df}.index{font-size:.75rem;color:var(--muted)}.service-summary{font-size:.9rem;color:var(--muted)}.service-row>span:last-child{font-size:1.8rem}.work-section{background:#e1dfd6}.project-image{background:#d2c9b9;padding:clamp(22px,6vw,85px) clamp(22px,8vw,115px) 0;aspect-ratio:1.95;overflow:hidden;position:relative;border-radius:5px}.project-image img{width:100%;box-shadow:0 0 50px #372f2529;transition:transform .7s}.project:hover .project-image img{transform:translateY(-8px)}.round-link{position:absolute;bottom:25px;right:25px;background:var(--white);width:58px;height:58px;border-radius:50%;display:grid;place-items:center;font-size:1.5rem}.project-caption{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:22px}.project-caption h3{font-size:1.25rem}.project-caption>span{font-size:.8rem;color:var(--muted)}.statement>.kicker{margin-bottom:32px}.statement h2{font-size:clamp(2.5rem,5.7vw,5.6rem)}.statement-bottom{margin-top:40px;display:flex;justify-content:space-between;align-items:end;gap:50px}.statement-bottom>p{max-width:520px;color:var(--muted)}.cta{padding-block:70px 80px;border-top:1px solid var(--line)}.cta-row{display:flex;justify-content:space-between;align-items:center;gap:35px;margin:25px 0}.cta>p:last-child{color:var(--muted);font-size:.9rem}.site-footer{padding:45px 0 25px;background:var(--ink);color:var(--paper);overflow:hidden}.footer-top{display:flex;justify-content:space-between;align-items:center;gap:20px}.footer-top>p{font-size:1.2rem}.footer-mark{margin:55px 0 45px;max-width:920px}.footer-bottom{border-top:1px solid #4c4c45;padding-top:24px;display:flex;justify-content:space-between;gap:25px;font-size:.75rem;color:#c2c1b7}.footer-bottom nav{display:flex;gap:22px}
.page-intro{padding-top:80px;padding-bottom:65px}.page-intro .kicker{margin-bottom:38px}.intro-copy{font-size:clamp(1.08rem,1.8vw,1.4rem);line-height:1.55;color:var(--muted);max-width:670px}.page-intro .intro-copy{margin-top:32px}.chips{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:65px}.chips a{border:1px solid var(--line);border-radius:99px;padding:10px 18px;font-size:.85rem}.chips a:hover{background:var(--ink);color:var(--white)}.service-detail{display:grid;grid-template-columns:1fr 2fr;gap:45px;border-top:1px solid var(--line);padding:75px 0}.service-number{font-size:clamp(5rem,12vw,11rem);line-height:.9;letter-spacing:-.06em;color:#bab9ac}.service-detail h2{margin:20px 0 24px;max-width:650px}.feature-list{list-style:none;margin:30px 0;padding:0;display:flex;gap:14px;flex-wrap:wrap}.feature-list li{font-size:.83rem;border-bottom:1px solid var(--line);padding-bottom:8px}.dark{background:var(--ink);color:var(--paper)}.dark .kicker{color:#bebeb2}.dark h2{margin-top:25px}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:40px;margin-top:65px}.steps article{border-top:1px solid #55554c;padding-top:20px}.steps .index{color:#adad9d}.steps h3{margin:28px 0 18px}.steps p{font-size:.94rem;color:#bdbdb1}.faq{max-width:960px}.faq h2{margin:20px 0 45px}.faq details{border-top:1px solid var(--line)}.faq details:last-child{border-bottom:1px solid var(--line)}.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:25px;font-size:1.1rem;padding:25px 0}.faq summary::-webkit-details-marker{display:none}.faq summary>span{font-size:1.6rem;line-height:1}.faq details[open] summary>span{transform:rotate(45deg)}.faq details p{padding:0 40px 25px 0;max-width:750px;color:var(--muted)}.portfolio{padding-bottom:100px}.project-context{display:grid;grid-template-columns:1fr 1fr;gap:40px;padding-top:60px}.project-context>p:last-child{color:var(--muted)}.case{padding-bottom:100px}.case-image{width:100%;border:1px solid var(--line)}.case-details{display:grid;grid-template-columns:1fr 2fr;gap:50px;padding:60px 0}.case-details h2{margin:18px 0 25px}.case-details p+p{margin-top:15px}.case-details p:not(.kicker){max-width:690px}.about-band{padding:70px 0}.about-band .wrap{display:flex;align-items:end;justify-content:space-between;gap:60px}.about-logo{max-width:620px;width:60%}.about-band p{letter-spacing:.13em;font-size:1rem}.about-grid{display:grid;grid-template-columns:1fr 2fr;gap:50px}.about-grid .intro-copy{margin:30px 0 20px}.values{margin-top:55px}.values article{border-top:1px solid var(--line);padding:25px 0;display:grid;grid-template-columns:40px 1fr;gap:20px}.values h3{margin-bottom:10px}.values p{color:var(--muted)}.inquiry{display:grid;grid-template-columns:1fr 1.8fr;gap:80px;padding-bottom:120px}.inquiry aside{padding-top:30px;border-top:1px solid var(--line)}.email-link{display:inline-block;font-size:clamp(1rem,1.7vw,1.5rem);letter-spacing:-.035em;margin:20px 0}.inquiry aside>p:not(.kicker){color:var(--muted);font-size:.95rem}.inquiry-note{margin-top:60px}.inquiry-note p{margin-top:12px;font-size:.95rem}.form-caption{display:flex;justify-content:space-between;gap:20px;margin-bottom:30px}.form-caption span,.note{font-size:.8rem;color:var(--muted);line-height:1.6}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px}.form-grid label{display:flex;flex-direction:column;gap:10px;font-size:.83rem}.form-grid label>span{display:contents;color:var(--muted)}.full{grid-column:1/-1}input,select,textarea{border:1px solid var(--line);border-radius:3px;background:var(--white);padding:14px;width:100%;color:var(--ink);min-width:0;font-size:1rem}input:focus,select:focus,textarea:focus{outline:2px solid var(--olive);outline-offset:2px}textarea{min-height:160px;resize:vertical}form>.note{margin:25px 0}#form-status{margin-top:20px;padding:18px;background:#dfdfd3;font-size:.9rem}.error-action{padding-bottom:90px}
@media(min-width:1800px){.brand-stage{max-width:1550px;margin-inline:auto}}
@media(max-width:1000px){.site-header nav{gap:20px}.hero-top{margin-bottom:40px}.service-row{grid-template-columns:35px 1fr 25px}.service-summary{display:none}.steps{grid-template-columns:1fr 1fr}.inquiry{gap:40px;grid-template-columns:1fr 1.5fr}.footer-bottom>span:last-child{display:none}.about-band p{max-width:180px}}
@media(max-width:700px){html{scroll-padding-top:95px}.header-inner{min-height:80px;height:auto;flex-wrap:wrap;padding-block:19px;gap:15px}.logo{width:96px}.site-header nav{width:100%;flex-wrap:wrap;gap:14px}.js .menu-toggle:not([hidden]){display:flex;align-items:center;gap:12px}.js .site-header nav{display:none}.js .site-header nav.open{display:flex;flex-direction:column;align-items:stretch;padding:10px 0 15px}.site-header nav>a{padding:10px 0}.site-header nav>.button{padding:13px 18px}.site-header nav>a[aria-current=page]:after{width:30px}.hero{padding-top:32px;padding-bottom:38px}.hero-top{margin-bottom:35px}.edition{display:none}.hero h1{font-size:clamp(3rem,11.4vw,5rem);letter-spacing:-.065em}.hero-bottom{display:block;margin-top:25px}.hero-bottom>div{margin-top:25px}.hero-bottom .button{width:100%}.hero-bottom .text-link{align-self:center}.brand-stage{margin-inline:10px;padding:20px}.brand-top{font-size:.6rem;gap:10px}.brand-mark{width:94%;margin:45px auto 35px}.brand-bottom{font-size:.8rem;letter-spacing:.07em}.brand-note{display:none}.section-heading{margin-bottom:35px}.split{display:block}.split>.text-link{margin-top:20px}.service-row{gap:12px;padding-block:26px;grid-template-columns:25px 1fr 20px}.service-row h3{font-size:1.24rem}.service-row>span:last-child{font-size:1.4rem}.project-image{aspect-ratio:1.2;padding:25px 18px 0}.project-image img{width:100%;height:auto}.round-link{width:42px;height:42px;bottom:14px;right:14px}.project-caption{display:block}.project-caption>span{display:block;margin-top:8px}.statement-bottom,.cta-row{display:block}.statement-bottom .text-link{margin-top:20px}.cta .button{margin-top:28px}.cta{padding-block:55px}.footer-top{align-items:flex-start;flex-direction:column;gap:10px}.footer-mark{margin:45px 0 30px}.footer-bottom{flex-direction:column;gap:16px}.footer-bottom nav{flex-wrap:wrap;gap:18px}.page-intro{padding-top:45px;padding-bottom:45px}.page-intro .kicker{margin-bottom:25px}.page-intro h1{font-size:clamp(2.7rem,10.7vw,4.6rem)}.chips{margin-bottom:35px}.chips a{font-size:.77rem}.service-detail{grid-template-columns:1fr;gap:25px;padding-block:45px}.service-number{font-size:4rem}.service-detail h2{font-size:2.4rem}.steps{gap:30px 20px}.steps h3{font-size:1.4rem}.steps p{font-size:.86rem}.project-context,.case-details,.about-grid,.inquiry{grid-template-columns:1fr;gap:30px}.about-band{padding:45px 0}.about-band .wrap{display:block}.about-logo{width:90%}.about-band p{max-width:none;margin-top:25px;font-size:.8rem}.inquiry{padding-bottom:70px}.inquiry aside{padding-bottom:20px}.inquiry-note{margin-top:25px}.form-caption{display:block}.form-caption span{display:block;margin-top:5px}.form-grid{gap:20px;grid-template-columns:1fr}.full{grid-column:auto}.form-grid input,.form-grid select{font-size:16px}form .button{width:100%;gap:12px}.faq summary{font-size:1rem}}
/* Brand graphics share the logo's geometry and the existing colour tokens. */
.hero{position:relative}.hero h1{position:relative;z-index:1;font-size:clamp(3.5rem,7.3vw,7.2rem)}
.digital-graphic{width:34%;position:absolute;right:0;top:85px;pointer-events:none}.digital-graphic svg{width:100%;display:block}.graphic-label{display:block;text-align:center;font-size:.65rem;letter-spacing:.16em;color:var(--olive);margin-top:-12px}.hero .hero-bottom{position:relative;z-index:2;margin-top:100px}
.service-detail{grid-template-columns:1fr 1.25fr;align-items:center;gap:clamp(40px,7vw,100px)}
.service-art{position:relative;align-self:center}.art-index{position:absolute;z-index:1;top:18px;left:20px;font-size:.65rem;letter-spacing:.15em;color:var(--olive)}.service-graphic{display:block;width:100%;height:auto}.graphic-layer,.graphic-accent,.graphic-window{transform-box:fill-box;transform-origin:center}.service-detail:nth-child(even) .service-art{order:2}.service-detail:nth-child(even)>div:last-child{order:1}
.graphic-ready .graphic-layer{animation:graphic-rise 1s cubic-bezier(.22,1,.36,1) both}.graphic-ready .graphic-accent{animation:graphic-rise 1s .18s cubic-bezier(.22,1,.36,1) both}.graphic-ready .graphic-window{animation:graphic-expand 1.4s cubic-bezier(.22,1,.36,1) both}.graphic-ready .graphic-window-a{--gx:90px;--gy:65px;animation-delay:.1s}.graphic-ready .graphic-window-b{--gx:-100px;--gy:80px;animation-delay:.2s}.graphic-ready .graphic-window-c{--gx:-90px;--gy:-70px;animation-delay:.3s}.graphic-ready .graphic-window-d{--gx:90px;--gy:-70px;animation-delay:.4s}.graphic-ready .graphic-dot{animation:graphic-dot 1.2s ease-out both;transform-box:fill-box;transform-origin:center}.graphic-ready .graphic-route{stroke-dasharray:600;animation:graphic-connect 1.7s ease both}
@media(prefers-reduced-motion:no-preference){.js-ready .digital-graphic:not(.graphic-ready) .graphic-window,.js-ready .digital-graphic:not(.graphic-ready) .graphic-dot,.js-ready .service-art:not(.graphic-ready) .graphic-layer,.js-ready .service-art:not(.graphic-ready) .graphic-accent{opacity:0}.js-ready .digital-graphic:not(.graphic-ready) .graphic-route{stroke-dasharray:600;stroke-dashoffset:600}}
@keyframes graphic-rise{from{opacity:0;transform:translateY(24px) rotate(-3deg)}to{opacity:1;transform:translateY(0) rotate(0)}}
@keyframes graphic-expand{from{opacity:0;transform:translate(var(--gx),var(--gy)) scale(.45)}to{opacity:1;transform:translate(0,0) scale(1)}}
@keyframes graphic-dot{from{opacity:0;transform:scale(.2)}50%{opacity:1;transform:scale(1.15)}to{opacity:1;transform:scale(1)}}
@keyframes graphic-connect{from{stroke-dashoffset:600}to{stroke-dashoffset:0}}
.project-image{padding:0;aspect-ratio:auto;background:#d4d2c6}.project-devices{position:relative;aspect-ratio:1.7;overflow:hidden;background:radial-gradient(ellipse at 30% 40%,#ecebe3,#d4d2c6 75%)}.desktop-preview{position:absolute;width:78%;top:9%;left:5%;border:1px solid #b3b2a7;border-radius:7px;overflow:hidden;box-shadow:0 18px 35px #1a1a1a21;background:#f7f3ec;transform:rotate(-2deg)}.preview-toolbar{height:28px;display:flex;align-items:center;gap:5px;padding:0 10px;background:#fafaf8}.preview-toolbar>span{width:5px;height:5px;border-radius:50%;background:#bcbcaf}.preview-toolbar small{font-size:8px;letter-spacing:.1em;margin-left:10px;color:#6b6b5e}.desktop-preview img{width:100%;height:auto}.phone-preview{position:absolute;top:24%;right:6%;width:22%;aspect-ratio:.49;max-height:72%;border:5px solid #242420;border-radius:24px;background:#f5efe5;overflow:hidden;box-shadow:0 14px 25px #1a1a1a38;transform:rotate(4deg)}.phone-speaker{position:absolute;top:0;left:32%;width:36%;height:11px;background:#242420;border-radius:0 0 10px 10px;z-index:2}.phone-content{padding:23px 12px 12px;color:#352a23;line-height:1.3}.phone-nav{display:flex;justify-content:space-between;font-family:Georgia,serif;font-size:clamp(13px,2vw,27px);border-bottom:1px solid #d8cdbd;padding-bottom:10px}.phone-nav>span{font-family:Arial;font-size:12px}.phone-eyebrow{font-size:clamp(5px,.65vw,8px);letter-spacing:.08em;margin:15px 0 10px}.phone-title{font-family:Georgia,serif;font-size:clamp(15px,2.8vw,36px);line-height:1.05;letter-spacing:-.04em}.phone-photo{position:relative;overflow:hidden;aspect-ratio:1.15;margin-top:15px}.phone-photo img{position:absolute;width:200%;max-width:none;height:auto;bottom:0;left:-50%}.phone-copy{font-size:clamp(6px,.85vw,11px);margin-top:10px}.device-note{position:absolute;bottom:3%;left:5%;font-size:.6rem;letter-spacing:.13em;color:#55554c}.case-showcase{border-radius:6px;overflow:hidden}.project .round-link{z-index:3}.motion-enabled .project-image .project-devices img,.motion-enabled .project:hover .project-image .project-devices img{transform:none;box-shadow:none}.project .desktop-preview,.project .phone-preview{transition:transform .6s cubic-bezier(.22,1,.36,1)}.project:hover .desktop-preview{transform:rotate(0) translateY(-4px)}.project:hover .phone-preview{transform:rotate(1deg) translateY(-8px)}
@media(max-width:1000px){.digital-graphic{top:125px;width:35%}.hero h1{font-size:7.3vw}.service-detail{gap:35px}.service-detail h2{font-size:2.6rem}}
@media(max-width:700px){.hero h1{font-size:clamp(3rem,11.4vw,5rem)}.digital-graphic{position:relative;inset:auto;width:100%;margin-top:24px}.graphic-label{font-size:.6rem}.hero .hero-bottom{margin-top:27px}.service-detail{grid-template-columns:1fr;gap:30px}.service-detail:nth-child(even) .service-art,.service-detail:nth-child(even)>div:last-child{order:initial}.service-art{max-width:480px;width:100%;margin-inline:auto}.project-devices{aspect-ratio:1.2}.desktop-preview{width:88%;left:4%;top:8%;transform:rotate(-2deg)}.phone-preview{width:31%;top:28%;right:5%;max-height:68%;border-width:3px;border-radius:14px}.phone-content{padding:15px 6px 6px}.phone-speaker{height:7px}.phone-nav{padding-bottom:5px;font-size:15px}.phone-eyebrow{margin:8px 0 5px;font-size:5px}.phone-title{font-size:17px}.phone-photo{margin-top:8px}.phone-copy{font-size:6px;margin-top:6px}.preview-toolbar{height:17px}.preview-toolbar small{font-size:6px}.device-note{font-size:.5rem;bottom:3%}.project .round-link{bottom:12%;right:6px;width:30px;height:30px;font-size:1rem}}
.phone-photo img{width:260%;left:-80%}
/* Intro layers never capture clicks and are always removed after the flight. */
.intro-veil{position:fixed;inset:0;z-index:90;background:var(--paper);pointer-events:none}
.intro-logo{position:fixed;z-index:91;transform-origin:top left;pointer-events:none;color:var(--ink);will-change:transform,opacity}
.intro-running .site-header .logo .wordmark{visibility:hidden}
.motion-enabled .brand-mark{transform:translate(var(--pointer-x,0),var(--pointer-y,0));transition:transform .6s cubic-bezier(.22,1,.36,1)}
.motion-enabled .project-image img{transform:translate(var(--pointer-x,0),var(--pointer-y,0)) scale(1.015);transition:transform .7s cubic-bezier(.22,1,.36,1)}
.motion-enabled .project:hover .project-image img{transform:translate(var(--pointer-x,0),calc(var(--pointer-y,0px) - 5px)) scale(1.045)}
.motion-enabled .button{position:relative;overflow:hidden;transition:background .3s,transform .3s,box-shadow .3s}
.motion-enabled .button:hover{box-shadow:0 7px 18px #1a1a1a17}
.motion-enabled .button>span{transition:transform .3s cubic-bezier(.22,1,.36,1)}
.motion-enabled .button:hover>span{transform:translate(3px,-3px)}
.motion-enabled .service-row>span:last-child{transition:transform .35s}
.motion-enabled .service-row:hover>span:last-child{transform:rotate(45deg)}
.motion-enabled .round-link{transition:transform .4s,background .4s}
.motion-enabled .project:hover .round-link{transform:rotate(45deg);background:var(--paper)}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}.intro-veil,.intro-logo{display:none}.intro-running .site-header .logo .wordmark{visibility:visible}}

/* Shared navy/orange palette. Demo screenshots retain their own identity. */
::selection{background:var(--accent);color:var(--ink)}
.site-header{background:rgba(247,246,242,.96)}
.wordmark circle:last-child{fill:var(--accent)}
.menu-toggle{color:var(--ink)}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus,select:focus,textarea:focus{outline-color:var(--accent-text)}
.button,.site-header .nav-button{background:var(--accent);border-color:var(--accent);color:var(--ink)}
.button:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:var(--ink)}
.hero h1 .muted,.page-intro h1 .muted{color:var(--accent-text)}
.hero-top .kicker:before,.section-heading .kicker:before,.page-intro>.kicker:before,.statement>.kicker:before,.cta>.kicker:before{content:'';display:inline-block;width:.62em;height:.62em;margin-right:.72em;background:var(--accent);vertical-align:.04em;transform:rotate(12deg)}
.site-header nav>a[aria-current=page]:after{background:var(--accent-text)}
.brand-stage{background:var(--ink);color:var(--paper)}
.brand-stage:before{background:radial-gradient(ellipse at 35% 25%,#304c62,transparent 70%)}
.brand-stage .brand-mark,.about-logo{color:var(--accent)}
.brand-stage:after{content:'';position:absolute;right:5%;top:11%;width:clamp(45px,6vw,90px);height:clamp(12px,1.5vw,22px);background:var(--accent);transform:rotate(-9deg)}
.brand-stage .brand-top,.brand-stage .brand-mark,.brand-stage .brand-bottom{z-index:1}
.service-row:hover{background:var(--surface)}
.service-row:hover .index,.service-row:hover>span:last-child,.text-link:hover,.email-link:hover,.contact-links a:hover{color:var(--accent-text)}
.chips a:hover{background:var(--ink);border-color:var(--ink);color:var(--white)}
.work-section,.project-image{background:var(--surface)}
.project-devices{background:radial-gradient(ellipse at 30% 40%,#f4f7f8,var(--surface-deep) 75%)}
.device-note{color:var(--muted)}
.round-link{background:var(--accent);color:var(--ink)}
.motion-enabled .project:hover .round-link{background:var(--accent-hover)}
.dark .kicker,.steps .index{color:var(--accent-hover)}
.steps p,.footer-bottom{color:#c4d0d8}
.steps article,.footer-bottom{border-color:#425363}
.inquiry aside{border-top:3px solid var(--accent)}
input,select,textarea{border-color:#a8b6bf}
input::placeholder,textarea::placeholder{color:#637480;opacity:1}
#form-status{background:var(--surface)}
.site-footer{border-top:6px solid var(--accent)}
.site-footer .text-link:hover,.site-footer a:focus-visible{color:var(--accent-hover)}
.site-footer a:focus-visible,.dark a:focus-visible{outline-color:var(--accent-hover)}
/* Recolour existing vector primitives without changing their geometry or animation. */
:is(.digital-graphic,.service-graphic) [fill="#1a1a1a"]{fill:var(--ink)}
:is(.digital-graphic,.service-graphic) [stroke="#1a1a1a"]{stroke:var(--ink)}
:is(.digital-graphic,.service-graphic) [fill="#6b6b5e"]{fill:var(--accent)}
:is(.digital-graphic,.service-graphic) [stroke="#6b6b5e"]{stroke:var(--ink)}
:is(.digital-graphic,.service-graphic) [fill="#fafaf8"]{fill:var(--white)}
:is(.digital-graphic,.service-graphic) [fill="#e4e3db"],:is(.digital-graphic,.service-graphic) [fill="#d8d8cb"],:is(.digital-graphic,.service-graphic) [fill="#d3d2c6"],:is(.digital-graphic,.service-graphic) [fill="#d9d7c9"]{fill:var(--surface)}
:is(.digital-graphic,.service-graphic) [stroke="#c4c3b7"],:is(.digital-graphic,.service-graphic) [stroke="#cfcec4"],:is(.digital-graphic,.service-graphic) [stroke="#bdbdaf"]{stroke:var(--line)}
.digital-graphic .graphic-window-b>rect:first-child{fill:var(--ink)}
.digital-graphic .graphic-window-b>path{fill:var(--accent)}
.digital-graphic .graphic-window-d>rect{fill:var(--accent);stroke:var(--accent)}
.digital-graphic .graphic-dot{fill:var(--ink)}
:is(.digital-graphic,.service-graphic) [fill="#deded3"],:is(.digital-graphic,.service-graphic) [fill="#e9e8e0"],:is(.digital-graphic,.service-graphic) [fill="#efeee8"]{fill:var(--surface)}
:is(.digital-graphic,.service-graphic) [fill="#aaa996"],:is(.digital-graphic,.service-graphic) [fill="#b8b7aa"],:is(.digital-graphic,.service-graphic) [fill="#bdbdad"],:is(.digital-graphic,.service-graphic) [fill="#c0bfb2"]{fill:#91a5b3}
:is(.digital-graphic,.service-graphic) [stroke="#aaa99d"],:is(.digital-graphic,.service-graphic) [stroke="#b5b4a5"],:is(.digital-graphic,.service-graphic) [stroke="#b8b7aa"],:is(.digital-graphic,.service-graphic) [stroke="#c0bfb2"]{stroke:#91a5b3}
@media(max-width:700px){.brand-stage:after{right:8%;top:12%;width:44px;height:11px}}
.contact-links{display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin:20px 0}.contact-links a{font-size:clamp(1rem,1.7vw,1.5rem);letter-spacing:-.035em;border-bottom:1px solid transparent}.contact-links a:hover{border-bottom-color:currentColor}
/* Personal, on-site introduction with supplied photography. */
.field-story{background:var(--ink);color:var(--paper)}
.field-story-intro{display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(30px,5vw,80px);align-items:start;margin-bottom:45px}
.field-story .kicker{color:var(--accent-hover);margin-bottom:25px}
.field-story h2{font-size:clamp(2.2rem,4.2vw,4.1rem);line-height:1.12}
.field-story-copy p{color:#d3dde4;max-width:590px}
.field-story-copy p+p{margin-top:16px}
.field-story .text-link{margin-top:18px;color:var(--accent-hover)}
.field-story a:focus-visible{outline-color:var(--accent-hover)}
.field-story-photos{display:grid;grid-template-columns:1.75fr .85fr .85fr;gap:18px;align-items:stretch}
.field-story-photos figure{margin:0;position:relative;overflow:hidden;border-radius:5px;min-width:0;height:clamp(280px,31vw,445px)}
.field-story-photos img{width:100%;height:100%;object-fit:cover}
.field-photo-main img{object-position:35% 50%}
.field-photo-portrait img{object-position:50% 35%}
.field-photo-bar img{object-position:45% 40%}
.field-story figcaption{position:absolute;bottom:16px;left:16px;right:16px;width:fit-content;max-width:calc(100% - 32px);background:var(--paper);color:var(--ink);padding:9px 13px;font-size:.875rem;line-height:1.4;border-left:3px solid var(--accent)}
.field-story-caption{font-size:.875rem;color:#c4d0d8;margin-top:20px;max-width:720px}
@media(max-width:1000px){.field-story-intro{grid-template-columns:1fr}.field-story-copy p{max-width:720px}}
@media(max-width:700px){.field-story-photos{grid-template-columns:1fr 1fr;gap:12px}.field-story-photos .field-photo-main{grid-column:1/-1;height:auto;aspect-ratio:3/2}.field-story-photos figure{height:auto;aspect-ratio:3/4}.field-story-intro{margin-bottom:30px}.field-story figcaption{left:10px;bottom:10px;font-size:.8rem;padding:6px 10px}}

/* Wasserfall 2.0: real client case, composed from approved project photography. */
.project-grid{display:grid;grid-template-columns:1.35fr .85fr;gap:clamp(30px,4vw,70px);align-items:start}.project-grid .project-lino{margin-top:clamp(70px,9vw,140px)}.waterfall-visual{position:relative;display:grid;grid-template-columns:1.15fr .85fr;grid-template-rows:1fr 1fr;gap:10px;aspect-ratio:1.7;background:#102131;padding:clamp(12px,2.3vw,32px);overflow:hidden}.waterfall-photo{overflow:hidden;min-width:0}.waterfall-photo-main{grid-row:1/3}.waterfall-photo img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.22,1,.36,1)}.waterfall-photo-main img{object-position:center 42%}.waterfall-photo-food img{object-position:center 69%}.waterfall-photo-bar img{object-position:center 34%}.waterfall-title{position:absolute;left:clamp(24px,5vw,74px);bottom:clamp(20px,4vw,58px);color:#fff;text-shadow:0 2px 24px #0009}.waterfall-title small{display:block;font-size:clamp(.55rem,.75vw,.78rem);letter-spacing:.16em;margin-bottom:10px}.waterfall-title strong{display:block;font-size:clamp(2.4rem,6vw,6.7rem);line-height:.78;letter-spacing:-.075em}.waterfall-status{position:absolute;top:clamp(20px,3vw,42px);right:clamp(20px,3vw,42px);padding:9px 13px;background:var(--accent);color:#142536;border-radius:99px;font-size:.62rem;font-weight:750;letter-spacing:.12em}.project-waterfall:hover .waterfall-photo img{transform:scale(1.035)}.portfolio .project-grid .project-image{border-radius:5px}.waterfall-case .case-showcase{background:#102131}.waterfall-case .waterfall-visual{aspect-ratio:2.05}.external-project-link{margin-top:24px}.case-services{list-style:none;padding:0;margin:32px 0 0;display:flex;flex-wrap:wrap;gap:10px}.case-services li{border:1px solid var(--line);border-radius:99px;padding:8px 13px;font-size:.78rem}.project-waterfall .round-link{background:var(--accent);color:var(--ink)}
@media(max-width:900px){.project-grid{grid-template-columns:1fr}.project-grid .project-lino{margin-top:10px}}
@media(max-width:700px){.waterfall-visual,.waterfall-case .waterfall-visual{aspect-ratio:1.05;grid-template-columns:1.2fr .8fr;padding:10px;gap:7px}.waterfall-title{left:21px;bottom:23px}.waterfall-title strong{font-size:3.3rem}.waterfall-title small{font-size:.48rem}.waterfall-status{top:18px;right:18px;font-size:.5rem;padding:7px 9px}.waterfall-case .case-showcase{border-radius:4px}.external-project-link{margin-top:18px}}

/* Legal pages */
.legal-page{max-width:980px;padding-bottom:120px}.legal-page article{display:grid;grid-template-columns:minmax(220px,.7fr) 1.3fr;gap:25px 55px;padding:38px 0;border-top:1px solid var(--line)}.legal-page article:last-of-type{border-bottom:1px solid var(--line)}.legal-page h2{font-size:clamp(1.4rem,2.4vw,2rem);letter-spacing:-.035em}.legal-page article>div{color:var(--muted)}.legal-page article>div p+*{margin-top:16px}.legal-page address{font-style:normal}.legal-page a{text-decoration:underline;text-underline-offset:4px}.legal-page .legal-notice{padding:16px;border-left:3px solid var(--accent);background:var(--white);color:var(--ink)}.legal-updated{margin-top:24px;font-size:.8rem;color:var(--muted)}
@media(max-width:700px){.legal-page{padding-bottom:70px}.legal-page article{grid-template-columns:1fr;gap:16px;padding:30px 0}.legal-page article>div{grid-column:1}.footer-bottom nav{row-gap:10px}}
