@font-face{font-family:Forum;src:url('assets/forum.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:Inter;src:url('assets/inter.ttf') format('truetype');font-weight:100 900;font-display:swap}

:root{--ink:#25211c;--orange:#eb4f00;--brown:#665946;--stone:#d2cfc5;--paper:#f0eee9;--ease:cubic-bezier(.22,1,.36,1);--gutter:7.5vw;--line:#66594638;--motion:1}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:96px;scrollbar-gutter:stable}
body{margin:0;background:var(--paper);color:var(--ink);font:400 16px/1.7 Inter,Arial,sans-serif}
body:has(dialog[open]){overflow:hidden}
a{color:inherit;text-decoration:none}
button,input,select{font:inherit}
button,summary{cursor:pointer}
button{color:inherit}
button,a,summary{-webkit-tap-highlight-color:transparent}
img{display:block;max-width:100%;object-fit:cover}
h1,h2,h3,p{margin:0}
h1,h2,h3{font-family:Forum,Georgia,serif;font-weight:400}
h1,h2{letter-spacing:-.035em}
h2{font-size:clamp(48px,5.5vw,88px);line-height:1.02}
h3{line-height:1.13}
em{font-style:normal;color:var(--orange)}
::selection{background:var(--orange);color:var(--paper)}
:focus-visible{outline:2px solid var(--orange);outline-offset:6px}
button:disabled{cursor:default}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.skip{position:fixed;top:-100px;left:20px;z-index:1000;padding:12px 20px;background:var(--paper)}
.skip:focus{top:16px}
.reading-progress{position:fixed;inset:0 0 auto;height:2px;z-index:100;pointer-events:none}
.reading-progress span{display:block;width:100%;height:100%;background:var(--orange);transform:scaleX(var(--reading,0));transform-origin:left}
.eyebrow,.section-label{font-size:12px;font-weight:500;letter-spacing:.13em}
.section{padding:120px var(--gutter)}
.section-label{position:relative;display:flex;justify-content:space-between;align-items:center;padding-top:20px;margin-bottom:70px;color:var(--brown)}
.section-label:before{content:'';position:absolute;top:0;left:0;width:100%;height:1px;background:currentColor;opacity:.3;transform-origin:left;transform:scaleX(1)}
.section-label.in-view:before{animation:line-in 1.2s var(--ease) both}
.cross{font:300 25px/1 Inter,sans-serif}
.line-mask{display:block;overflow:clip;padding:.1em 0 .16em;margin:-.1em 0 -.16em}
.line-inner{display:block}
.hero h1,h2:has(.line-mask){display:flex;flex-direction:column}
.section-heading{display:flex;justify-content:space-between;align-items:end;gap:60px;margin-bottom:56px}
.section-heading>p{max-width:300px;color:var(--stone);font-size:14px}

/* Navigation floats above the photograph, then becomes a compact architectural rail. */
.site-header{position:fixed;inset:0 0 auto;z-index:50;height:106px;padding:0 4.5vw;display:flex;align-items:center;justify-content:space-between;gap:30px;color:var(--paper);border-bottom:1px solid #f0eee925;transition:height .45s var(--ease),background .35s,border-color .35s;isolation:isolate}
.site-header.scrolled,.site-header.menu-open{height:78px;background:#25211cf5;border-color:#f0eee924;backdrop-filter:blur(12px)}
.logo{width:220px;height:auto}
.site-header nav{display:flex;gap:28px;font-size:13px}
.site-header nav a{position:relative;padding:8px 0}
.site-header nav a:after{content:'';position:absolute;left:0;bottom:0;height:1px;width:100%;transform:scaleX(0);transform-origin:right;background:var(--orange);transition:transform .4s var(--ease)}
.site-header nav a:is(:hover,:focus-visible,[aria-current]){color:var(--paper)}
.site-header nav a:is(:hover,:focus-visible,[aria-current]):after{transform:scaleX(1);transform-origin:left}
.header-cta{display:inline-flex;align-items:center;gap:25px;font-size:13px;border-bottom:1px solid #f0eee963;padding:9px 0}
.header-cta span{color:var(--orange);font-size:23px;transition:transform .4s var(--ease)}
.header-cta:hover span{transform:translate(4px,-4px)}
.menu,.mobile-contact{display:none}

/* Hero: independent aperture, image-change, scroll and text layers. */
.hero-scene{position:relative;background:var(--ink);height:148svh;min-height:1060px}
.hero{height:100svh;min-height:720px;position:sticky;top:0;overflow:clip;isolation:isolate;color:var(--paper);background:var(--ink);transform:scale(var(--hero-scale,1));transform-origin:50% 42%;will-change:transform}
.hero-photo{position:absolute;inset:0;z-index:-3;overflow:hidden}
.hero-parallax{position:absolute;inset:-70px -20px;transform:translate3d(0,var(--hero-photo-y,0px),0)}
.hero-entry,.hero-slide{position:absolute;inset:0}
.hero-slide{opacity:0;visibility:hidden;transition:opacity 1.45s var(--ease),visibility 1.45s}
.hero-slide.is-active{opacity:1;visibility:visible}
.hero-slide img{width:100%;height:100%;object-position:center 55%;transform:scale(1.07)}
.hero-photo:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#25211ccf, #25211c48 57%,#25211c12),linear-gradient(0deg,#25211cdb,transparent 65%,#25211c30);pointer-events:none}
.hero-lines{position:absolute;inset:135px 4.5vw 112px;border:1px solid #f0eee927;border-top:0;border-bottom:0;pointer-events:none;z-index:-1}
.hero-lines:after{content:'+';position:absolute;right:-5px;top:33%;font:300 22px Inter;color:#f0eee998}
.hero-content{position:absolute;left:var(--gutter);right:var(--gutter);top:50%;transform:translate3d(0,calc(-43% + var(--hero-copy-y,0px)),0);opacity:var(--hero-copy-opacity,1)}
.hero-content>.eyebrow{color:var(--stone);margin:0 0 30px}
.hero h1{font-size:clamp(106px,12.7vw,205px);line-height:.94;letter-spacing:-.05em;width:max-content;max-width:100%}
.hero h1 em{color:var(--paper)}
.hero-period{color:var(--orange)}
.hero-bottom{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-top:40px;max-width:1030px}
.hero-bottom p{font-size:15px;line-height:1.75;color:#f0eee9dc}
.button{display:inline-flex;align-items:center;justify-content:space-between;gap:30px;padding:18px 24px;border:1px solid transparent;font-size:14px;line-height:1.5;position:relative;overflow:hidden;isolation:isolate;transition:color .35s,background .35s,border-color .35s;min-height:58px}
.button:before{content:'';position:absolute;inset:-1px;z-index:-1;background:var(--ink);transform:translateY(103%);transition:transform .5s var(--ease)}
.button:hover:before,.button:focus-visible:before{transform:translateY(0)}
.orange{background:var(--orange);color:var(--paper)}
.button span{display:inline-block;font-size:24px;line-height:1;transition:transform .4s var(--ease)}
.button:is(:hover,:focus-visible) span{transform:translate(4px,-4px)}
.hero .button{background:var(--paper);color:var(--ink);border:0}
.hero .button:before{background:var(--orange)}
.hero .button:is(:hover,:focus-visible){color:var(--paper)}
.hero-foot{position:absolute;bottom:30px;left:4.5vw;right:4.5vw;display:flex;align-items:center;justify-content:space-between;gap:30px;border-top:1px solid #f0eee93b;padding-top:24px;font-size:10px;letter-spacing:.12em}
.hero-credit{margin-left:auto;text-align:right;font-size:11px}
.hero-credit small{display:block;margin-top:3px;font-size:10px;color:#f0eee9a9;letter-spacing:.02em}
.scroll-cue{display:inline-flex;align-items:center;gap:14px;font-size:10px}
.scroll-track{width:1px;height:37px;background:#f0eee944;position:relative;overflow:hidden}
.scroll-track:after{content:'';position:absolute;inset:0;background:var(--orange);transform:translateY(-100%);animation:scroll-cue 2.7s var(--ease) infinite}
.hero-pagination{display:flex;gap:16px}
.hero-pagination button{position:relative;border:0;background:none;color:#f0eee998;padding:8px 0 13px;min-width:28px;font-size:12px}
.hero-pagination button:before,.hero-pagination button:after{content:'';height:1px;position:absolute;bottom:0;left:0;width:100%;background:#f0eee951}
.hero-pagination button:after{background:var(--orange);transform:scaleX(0);transform-origin:left}
.hero-pagination button.is-active{color:var(--paper)}
.hero-pagination button.is-active:after{transform:scaleX(1)}
.hero-playing .hero-pagination button.is-active:after{animation:line-in 8s linear both}
.hero-ready .hero-photo{animation:hero-aperture 1.85s var(--ease) both}
.hero-ready .hero-entry{animation:hero-accommodate 2.2s var(--ease) both}
.hero-ready .hero-content>.eyebrow{animation:rise-in .85s var(--ease) .2s backwards}
.hero-ready h1 .line-inner{animation:title-in 1.15s var(--ease) .33s backwards}
.hero-ready h1 .line-mask+ .line-mask .line-inner{animation-delay:.47s}
.hero-ready .hero-bottom p{animation:rise-in .95s var(--ease) .65s backwards}
.hero-ready .hero-bottom .button{animation:rise-in .95s var(--ease) .78s backwards}
.hero-ready .hero-foot{animation:rise-in .95s var(--ease) .9s backwards}
@keyframes hero-aperture{from{clip-path:inset(7% 5% 7% 5%)}to{clip-path:inset(0)}}
@keyframes hero-accommodate{from{transform:scale(1.16)}to{transform:scale(1)}}
@keyframes title-in{from{transform:translate3d(0,110%,0) rotate(2deg);opacity:.2}to{transform:translate3d(0,0,0) rotate(0);opacity:1}}
@keyframes rise-in{from{opacity:0;transform:translate3d(0,28px,0)}to{opacity:1;transform:translate3d(0,0,0)}}
@keyframes line-in{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes scroll-cue{0%{transform:translateY(-105%)}55%,100%{transform:translateY(105%)}}

/* The first surface physically covers the pinned hero. */
.intro{position:relative;z-index:3;margin-top:-48svh;background:var(--paper);box-shadow:0 -20px 80px #0002}
.intro-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:9%;align-items:center}
.intro h2{font-size:clamp(48px,5.15vw,82px)}
.intro-copy{max-width:470px;margin-top:36px}
.intro-copy p{color:var(--brown);margin-bottom:22px}
.text-link{display:inline-flex;align-items:center;gap:35px;border-bottom:1px solid var(--line);padding-bottom:12px;margin-top:12px;font-size:14px;position:relative}
.text-link:after{content:'';position:absolute;bottom:-1px;left:0;width:100%;height:1px;background:var(--orange);transform:scaleX(0);transform-origin:right;transition:transform .5s var(--ease)}
.text-link:hover:after{transform:scaleX(1);transform-origin:left}
.text-link span{color:var(--orange);transition:transform .4s var(--ease)}
.text-link:hover span{transform:translate(4px,-4px)}
.intro-visual{position:relative;padding:0 25px 75px 0}
.intro-image{height:540px;position:relative;overflow:hidden;background:var(--stone)}
[data-parallax]{transform:translate3d(0,var(--parallax-y,0px),0)}
.intro-image img,.partner-image img{position:absolute;inset:-80px 0;width:100%;max-width:none;height:calc(100% + 160px)}
.years{position:absolute;left:-50px;bottom:0;right:60px;display:flex;align-items:center;gap:22px;background:var(--ink);padding:30px 34px;color:var(--paper)}
.years strong{font:400 120px/.85 Forum,serif;letter-spacing:-.065em}
.years>div{border-left:1px solid #f0eee938;padding-left:22px}
.years>div>span{display:block;font-size:30px;line-height:1.2;letter-spacing:.1em}
.years p{font-size:10px;line-height:1.7;letter-spacing:.08em;margin-top:5px;color:var(--stone)}
.measure,.founder-measure{position:absolute;right:0;top:20px;writing-mode:vertical-rl;font-size:9px;letter-spacing:.15em}

/* Alternating formats make the portfolio an editorial sequence, not a tile wall. */
.works{background:var(--ink);color:var(--paper);position:relative;z-index:4}
.works .section-label,.process .section-label,.testimonials .section-label{color:var(--stone)}
.filters{display:flex;flex-wrap:wrap;gap:12px 30px;border-bottom:1px solid #f0eee935;margin-bottom:50px}
.filters button,.process-switch button{position:relative;background:none;border:0;padding:13px 0 18px;color:#d2cfc5bd;font-size:13px;transition:color .3s}
.filters button:after,.process-switch button:after{content:'';position:absolute;bottom:-1px;left:0;width:100%;height:2px;background:var(--orange);transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease)}
.filters button:is(.active,:hover,:focus-visible),.process-switch button:is(.active,:hover,:focus-visible){color:var(--paper)}
.filters button:is(.active,:hover,:focus-visible):after,.process-switch button:is(.active,:hover,:focus-visible):after{transform:scaleX(1)}
sup{color:var(--orange);font-size:10px;margin-left:5px}
.projects{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:72px 40px;align-items:start}
.project{grid-column:span 6;min-width:0;padding:0;border:0;background:none;color:inherit;text-align:left;position:relative}
.project:first-child{grid-column:1/-1}
.project:nth-child(4n+2){grid-column:span 5}
.project:nth-child(4n+3){grid-column:span 7;margin-top:105px}
.project:nth-child(4n+4){grid-column:span 7}
.project:nth-child(4n+5):not(:first-child){grid-column:span 5;margin-top:105px}
.project-image{position:relative;overflow:hidden;aspect-ratio:1.2;background:#342e26}
.project:first-child .project-image{aspect-ratio:2.08}
.project:nth-child(4n+2) .project-image,.project:nth-child(4n+5):not(:first-child) .project-image{aspect-ratio:.92}
.project-image:after{content:'';position:absolute;inset:45% 0 0;pointer-events:none;background:linear-gradient(transparent,#19161158);transition:opacity .5s;opacity:.55}
.project-camera{position:absolute;inset:0;transform:translate3d(0,var(--project-y,0px),0) scale(1.1)}
.project-camera img{width:100%;height:100%;transition:transform 1.1s var(--ease);transform:scale(1)}
.project:is(:hover,:focus-visible) .project-camera img{transform:scale(1.07)}
.project-open{position:absolute;right:22px;bottom:22px;z-index:2;display:grid;place-items:center;width:58px;height:58px;border-radius:50%;border:1px solid #f0eee99c;color:var(--paper);background:#25211c19;backdrop-filter:blur(4px);font-size:27px;transition:background .4s,border-color .4s,transform .55s var(--ease)}
.project:is(:hover,:focus-visible) .project-open{transform:rotate(45deg);background:var(--orange);border-color:var(--orange)}
.project-meta{display:flex;justify-content:space-between;gap:20px;padding:23px 0;border-bottom:1px solid #f0eee931}
.project-meta h3{font-size:clamp(28px,2.65vw,42px);transition:color .35s,transform .5s var(--ease)}
.project:first-child .project-meta h3{font-size:clamp(36px,3.8vw,58px)}
.project:is(:hover,:focus-visible) h3{color:var(--orange);transform:translateX(6px)}
.project-meta p{font-size:11px;letter-spacing:.04em;color:#d2cfc5be;margin-top:12px}
.project-num{font:400 24px/1.2 Forum,serif;color:var(--stone)}
.project-note{font-size:12px;color:#d2cfc5b8;border-top:0;margin-top:45px;max-width:600px}

/* A full-bleed architectural interlude, with a framed image expanding on scroll. */
.partner{position:relative;background:var(--ink);color:var(--paper);min-height:130svh}
.partner-scene{position:sticky;top:0;min-height:100svh;display:flex;align-items:center;isolation:isolate;overflow:hidden}
.partner-image{position:absolute;inset:0 0 0 43%;z-index:-2;overflow:hidden;clip-path:inset(var(--partner-inset,5%));background:var(--brown)}
.partner-image img{object-position:center 50%}
.partner-image:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#25211cf2 0,#25211ca8 17%,#25211c24 48%,transparent 72%),linear-gradient(0deg,#25211c50,transparent 45%)}
.partner-content{position:absolute;left:0;top:50%;z-index:1;width:58%;padding:80px var(--gutter);transform:translate3d(0,calc(-50% + var(--partner-copy-y,0px)),0)}
.partner .eyebrow{color:var(--stone)}
.partner h2{font-size:clamp(52px,5.3vw,86px);line-height:.98;margin:35px 0}
.partner h2 em{color:var(--paper)}
.partner-content>p:not(.eyebrow){max-width:520px;color:#f0eee9c9;margin-bottom:20px}
.partner .button{margin-top:17px}
.partner-coordinate{position:absolute;right:4.5vw;bottom:40px;writing-mode:vertical-rl;font-size:10px;letter-spacing:.15em;color:var(--stone)}

/* Services and timeline. */
.services{position:relative;z-index:2;background:var(--paper)}
.services-grid{display:grid;grid-template-columns:1fr 1.18fr;gap:10%}
.services h2,.faq h2{font-size:clamp(44px,4.8vw,77px)}
.services-grid>div:first-child{align-self:start;position:sticky;top:120px}
.services-grid>div>p{margin-top:30px;color:var(--brown)}
.technical{width:200px;margin:50px 0 0 24px;transform:translateY(var(--technical-y,0px))}
.technical svg{width:100%;stroke:var(--brown);stroke-width:.7}
.technical svg path+path{stroke:var(--orange);opacity:.45}
.service-list details{position:relative;border-top:1px solid var(--line);padding:26px 0}
.service-list details:last-child{border-bottom:1px solid var(--line)}
.service-list summary{display:flex;align-items:center;gap:22px;list-style:none}
.service-list summary::-webkit-details-marker{display:none}
.service-list summary>span{font-size:11px;color:var(--brown)}
.service-list h3{font-size:clamp(27px,2.65vw,40px);flex:1;transition:color .3s,transform .4s var(--ease)}
.service-list summary:hover h3{transform:translateX(5px);color:var(--orange)}
.service-list b{display:grid;place-items:center;width:36px;height:36px;font-size:24px;font-weight:300;color:var(--orange);transition:transform .45s var(--ease);flex-shrink:0}
.service-list details[open] b{transform:rotate(45deg)}
.service-list details[open] h3{color:var(--orange)}
.service-list details p{margin:22px 40px 0 37px;color:var(--brown);font-size:15px;line-height:1.8}
.process{background:var(--ink);color:var(--paper)}
.process-layout{display:grid;grid-template-columns:1fr 1fr;gap:12%}
.process-intro{position:sticky;top:130px;align-self:start}
.process .section-heading{display:block;margin:0}
.process h2{font-size:clamp(48px,5.2vw,83px)}
.process .section-heading p{margin-top:30px}
.process-switch{display:flex;gap:28px;margin-top:35px;border-bottom:1px solid #f0eee930}
.steps{position:relative;min-height:890px;padding-left:40px}
.steps:before,.steps:after{content:'';position:absolute;top:0;bottom:0;left:0;width:1px;background:#f0eee92b;transform-origin:top}
.steps:after{background:var(--orange);transform:scaleY(var(--process-progress,0))}
.step{position:relative;display:grid;grid-template-columns:65px 1fr;gap:12px 24px;padding:30px 0 45px;border-bottom:1px solid #f0eee92b}
.step:first-child{padding-top:0}
.step:before{content:'';position:absolute;left:-44px;top:38px;width:9px;height:9px;border:1px solid var(--brown);border-radius:50%;background:var(--ink);transition:background .4s,border-color .4s}
.step:first-child:before{top:12px}
.step.is-current:before,.step.is-passed:before{background:var(--orange);border-color:var(--orange)}
.step-number{font:400 65px/1 Forum,serif;color:var(--brown);transition:color .55s}
.step.is-current .step-number,.step.is-passed .step-number{color:var(--orange)}
.step h3{font-size:32px;align-self:center}
.step p{grid-column:2;font-size:14px;color:var(--stone);margin-bottom:0}
.step:last-child{border-bottom:0}

/* Portrait and an accessible, manually controlled editorial quote rail. */
.founder{background:var(--paper)}
.founder-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:12%;align-items:center}
.founder-portrait{position:relative;padding-right:28px}
.founder-photo{aspect-ratio:4/5;overflow:hidden;position:relative;background:var(--brown)}
.founder-photo img{position:absolute;inset:-35px 0;width:100%;height:calc(100% + 70px);object-position:center 36%}
.founder-copy h2{font-size:clamp(50px,5.2vw,84px);margin:28px 0 32px}
.founder-copy>p{max-width:550px;color:var(--brown);margin-bottom:20px}
.founder-copy .eyebrow{font-size:12px}
.placeholder-note{border-left:2px solid var(--orange);padding-left:15px;font-size:12px;line-height:1.7}
.testimonials{background:var(--ink);color:var(--paper);overflow:hidden}
.testimonials .section-heading{margin-bottom:32px}
.testimonial-controls{display:flex;align-items:center;justify-content:space-between;margin-bottom:30px}
.testimonial-count{font-size:12px;color:var(--stone);letter-spacing:.1em}
.testimonial-controls>div{display:flex;gap:10px}
.testimonial-controls button{width:49px;height:49px;border:1px solid #f0eee93d;border-radius:50%;background:none;color:var(--paper);font-size:21px;transition:background .3s,border-color .3s}
.testimonial-controls button:hover:enabled{background:var(--orange);border-color:var(--orange)}
.testimonial-controls button:disabled{opacity:.3}
.testimonial-grid{display:flex;gap:50px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;scroll-behavior:smooth}
.testimonial-grid::-webkit-scrollbar{display:none}
.testimonial-card{position:relative;flex:0 0 100%;scroll-snap-align:start;padding:50px 0 25px 100px;border-top:1px solid #f0eee939;display:grid;grid-template-columns:1fr;min-height:370px}
.quote-mark{position:absolute;top:65px;left:0;font:120px/.7 Forum,serif;color:var(--orange)}
.testimonial-card>p{font:400 clamp(30px,3.5vw,54px)/1.16 Forum,serif;letter-spacing:-.01em;max-width:1050px;color:var(--stone)}
.testimonial-card footer{display:flex;flex-wrap:wrap;align-items:center;gap:18px;padding-top:28px;font-size:13px}
.testimonial-card footer strong{font-weight:500}
.testimonial-card footer span{font-size:12px;color:#d2cfc5a8}
.testimonial-note{font-size:10px;color:#d2cfc590;letter-spacing:.1em;margin-top:30px}

/* Last surfaces remain quiet; movement is in the details, not the colour. */
.faq{background:var(--stone)}
.faq .service-list h3{font-size:30px}
.faq .service-list details p{margin-left:0}
.contact{background:var(--paper);position:relative}
.contact-heading{display:flex;align-items:center;justify-content:space-between;gap:30px;margin-bottom:70px}
.contact h2{font-size:clamp(58px,7vw,112px);line-height:1.02}
.contact h2 em{color:var(--brown)}
.contact-arrow{flex-shrink:0;width:110px;height:110px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line);font-size:56px;color:var(--orange);transition:background .5s,color .5s,transform .6s var(--ease)}
.contact-arrow:hover{background:var(--ink);color:var(--paper);transform:rotate(45deg)}
.contact-brief{border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1.2fr;gap:10%;padding:45px 0 60px}
.contact-brief h3{font-size:38px;line-height:1.12;margin-bottom:20px}
.contact-brief>div>p{font-size:15px;max-width:320px;color:var(--brown)}
#project-brief{display:grid;grid-template-columns:1fr 1fr;gap:22px}
#project-brief label{display:grid;gap:8px;font-size:13px}
#project-brief input,#project-brief select{width:100%;min-width:0;border:0;border-bottom:1px solid #66594680;border-radius:0;background:transparent;color:var(--ink);padding:14px 0;font:14px Inter,sans-serif;transition:border-color .3s,background .3s}
#project-brief input:focus,#project-brief select:focus{outline:none;border-bottom:2px solid var(--orange);background:#d2cfc527}
.brief-wide{grid-column:1/-1}
#project-brief .button{border:0;margin-top:8px}
.brief-note{font-size:12px;color:var(--brown)}
.contact-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:35px;border-top:1px solid var(--line);padding-top:35px;font-size:14px}
.contact-grid .eyebrow{display:block;margin-bottom:16px;font-size:11px;color:var(--brown)}
.contact-grid a{display:block;margin-bottom:8px;transition:color .3s}
.contact-grid a:hover{color:var(--orange)}
.social-links{margin-top:25px}
.social-links .instagram-link{display:inline-flex;align-items:center;gap:10px;font-size:13px}
.instagram-link svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.5;transition:transform .35s var(--ease)}
.instagram-link:hover svg{transform:translateY(-3px) rotate(-7deg)}
.instagram-link .ig-dot{fill:currentColor;stroke:none}
.site-footer{background:var(--ink);color:var(--stone);padding:80px var(--gutter) 38px;display:grid;grid-template-columns:1fr 1fr 1fr;gap:60px 30px;align-items:center;font-size:12px}
.site-footer>a:first-child{grid-column:1/-1}
.site-footer .logo{width:clamp(150px,14vw,235px);margin:auto;opacity:.78}
.site-footer>span{font-size:10px;letter-spacing:.12em}
.site-footer p{text-align:center}
.site-footer>a:last-child{text-align:right}
.site-footer>a:last-child:hover{color:var(--orange)}
.whatsapp-float{position:fixed;right:25px;bottom:calc(103px + env(safe-area-inset-bottom));z-index:45;display:flex;align-items:center;gap:14px}
.whatsapp-icon{display:grid;place-items:center;width:54px;height:54px;background:#218943;color:white;border-radius:50%;border:1px solid #ffffff65;box-shadow:0 5px 25px #25211c25;transition:transform .4s var(--ease),background .3s}
.whatsapp-icon svg{width:28px;height:28px}
.whatsapp-label{position:relative;background:var(--paper);color:var(--ink);border:1px solid #66594620;border-radius:16px 16px 4px 16px;box-shadow:0 6px 28px #25211c20;padding:12px 17px;font-size:12px;line-height:1.4;transition:transform .4s var(--ease)}
.whatsapp-label:after{content:'';position:absolute;right:-5px;bottom:12px;width:9px;height:9px;background:var(--paper);transform:rotate(45deg);border-right:1px solid #66594620;border-top:1px solid #66594620}
.whatsapp-label strong{font-weight:600}
.whatsapp-float:hover .whatsapp-icon{transform:scale(1.08);background:#166f34}
.whatsapp-float:hover .whatsapp-label{transform:translateX(-4px)}
.motion-toggle{position:fixed;left:22px;bottom:22px;z-index:44;display:flex;align-items:center;gap:8px;padding:9px 12px;background:#25211ce8;color:var(--paper);border:1px solid #d2cfc539;border-radius:30px;font:12px Inter,sans-serif;box-shadow:0 2px 20px #0001}
.motion-toggle span{max-width:0;overflow:hidden;white-space:nowrap;opacity:0;transition:max-width .4s var(--ease),opacity .3s}
.motion-toggle:hover span,.motion-toggle:focus-visible span{max-width:145px;opacity:1}
.motion-toggle[hidden]{display:none}

/* Gallery is a spatial continuation of the selected work. */
dialog{border:1px solid #f0eee92a;background:var(--ink);color:var(--paper);width:min(1440px,96vw);height:min(900px,92svh);max-width:none;max-height:94svh;padding:0;overflow:auto;overscroll-behavior:contain}
dialog::backdrop{background:#110f0de0;backdrop-filter:blur(10px);animation:backdrop-in .45s ease}
dialog.closing::backdrop{opacity:0;transition:opacity .25s}
@keyframes backdrop-in{from{opacity:0}to{opacity:1}}
.close-dialog{position:sticky;top:18px;float:right;margin:18px 18px -64px 0;z-index:5;width:46px;height:46px;border-radius:50%;border:1px solid #f0eee95c;background:var(--ink);color:var(--paper);font:300 28px/1 Inter;transition:background .3s,transform .4s}
.close-dialog:hover{background:var(--orange);transform:rotate(90deg)}
.case-layout{display:grid;grid-template-columns:1.5fr 1fr;min-height:100%}
.gallery{padding:24px;min-width:0;display:flex;flex-direction:column;justify-content:center;background:#1d1916}
.gallery-stage{position:relative;width:100%;height:65svh;max-height:690px;display:grid;place-items:center;overflow:hidden;touch-action:pan-y}
.gallery-stage img{width:100%;height:100%;object-fit:contain;min-height:0}
.gallery-controls{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:16px 0;font-size:12px}
.gallery-controls button{border:0;border-bottom:1px solid #f0eee950;color:var(--paper);background:none;padding:9px 0;transition:color .3s}
.gallery-controls button:hover:enabled{color:var(--orange)}
.gallery-controls button:disabled{opacity:.3}
.gallery-thumbs{display:flex;gap:10px;overflow:auto;scrollbar-width:thin;padding:5px 0}
.gallery-thumbs button{padding:0;border:1px solid transparent;background:none;flex:0 0 60px;opacity:.5;transition:opacity .3s,border-color .3s}
.gallery-thumbs button[aria-pressed=true]{border-color:var(--orange);opacity:1}
.gallery-thumbs button:hover{opacity:1}
.gallery-thumbs img{width:100%;height:46px;object-fit:cover}
.detail-head{padding:75px 38px 40px;align-self:center}
.detail-head .eyebrow{color:var(--stone);font-size:10px}
.detail-head h2{font-size:clamp(40px,4vw,60px);margin:24px 0}
.case-summary{font-size:14px;color:var(--stone);line-height:1.8}
.case-facts{margin:28px 0;display:grid;grid-template-columns:1fr 1fr;gap:20px}
.case-facts>div{border-top:1px solid #f0eee931;padding-top:10px}
.case-facts dt{font-size:10px;letter-spacing:.08em;color:#d2cfc599;margin-bottom:5px}
.case-facts dd{margin:0;font-size:12px;line-height:1.6}
.case-facts a{border-bottom:1px solid var(--brown)}
.case-facts a:hover{color:var(--orange)}
.detail-cta{font-size:12px;width:100%;padding:16px 18px;background:var(--orange);color:var(--paper)}
.gallery-flight{position:fixed;z-index:10;pointer-events:none;margin:0;overflow:hidden;background:var(--ink);transform-origin:0 0}
.gallery-flight img{width:100%;height:100%;object-fit:cover}

/* Responsive composition, not simply a scaled desktop. */
@media(min-width:1700px){:root{--gutter:max(8%,calc((100vw - 1450px)/2))}}
@media(max-width:1100px){:root{--gutter:6vw}.site-header{padding:0 4vw;gap:20px}.site-header nav{gap:17px;font-size:12px}.logo{width:185px}.header-cta{gap:12px;font-size:12px}.section{padding-top:95px;padding-bottom:95px}.intro-grid{gap:6%}.intro-image{height:470px}.years{left:-15px;right:35px;padding:26px}.partner-content{max-width:850px}.process-layout{gap:7%}.step{grid-template-columns:50px 1fr;gap:12px 18px}.step-number{font-size:54px}.step h3{font-size:29px}.founder-grid{gap:8%}.contact-grid{grid-template-columns:1fr 1fr}.contact-grid>p{grid-column:1/-1}.case-layout{grid-template-columns:1.1fr 1fr}.detail-head{padding:72px 27px 35px}.gallery{padding:18px}.hero-credit small{max-width:280px}}
@media(max-width:900px){
:root{--gutter:7vw}html{scroll-padding-top:84px}body{font-size:15px}.section{padding:74px var(--gutter)}h2{font-size:clamp(42px,10.8vw,66px);line-height:1.04}.section-label{font-size:10px;margin-bottom:44px;letter-spacing:.09em}.section-heading{display:block;margin-bottom:36px}.section-heading>p{font-size:13px;margin-top:24px}.line-mask{padding-bottom:.19em;margin-bottom:-.19em}
.site-header,.site-header.scrolled,.site-header.menu-open{height:78px;padding:0 6%;gap:15px}.logo{width:166px}.header-cta{margin-left:auto;font-size:11px;gap:8px}.menu{display:flex;width:32px;height:42px;padding:3px;flex-shrink:0;background:none;border:0;flex-direction:column;gap:6px;justify-content:center}.menu span{width:25px;height:1px;background:var(--paper);transition:transform .35s var(--ease)}.menu[aria-expanded=true] span:first-child{transform:translateY(3.5px) rotate(45deg)}.menu[aria-expanded=true] span:last-child{transform:translateY(-3.5px) rotate(-45deg)}
.site-header nav{display:flex;position:absolute;inset:77px 0 auto;padding:35px 7% 45px;background:var(--ink);border-top:1px solid #f0eee933;flex-direction:column;gap:18px;font:38px/1.2 Forum,serif;visibility:hidden;opacity:0;transform:translateY(-15px);transition:transform .5s var(--ease),opacity .35s,visibility .35s}.site-header nav.open{visibility:visible;opacity:1;transform:none}.site-header nav a{width:fit-content}.mobile-contact{display:block}
.hero-scene{height:122svh;min-height:830px}.hero{min-height:690px;height:100svh}.hero-photo img{object-position:57% center}.hero-photo:after{background:linear-gradient(90deg,#25211ce0,#25211c70),linear-gradient(0deg,#25211cdb,transparent 65%)}.hero-parallax{inset:-45px -10px}.hero-lines{inset:105px 4vw 130px}.hero-content{top:49%;transform:translate3d(0,calc(-42% + var(--hero-copy-y,0px)),0)}.hero-content>.eyebrow{font-size:9px;letter-spacing:.1em;max-width:250px;line-height:1.9;margin-bottom:25px}.hero h1{font-size:clamp(77px,19.8vw,136px);line-height:.97}.hero-bottom{display:block;margin-top:30px}.hero-bottom p{font-size:13px;line-height:1.8;margin-bottom:25px}.hero-bottom .button{font-size:12px;padding:16px 20px;min-height:54px}.hero-foot{bottom:25px;left:7%;right:7%;padding-top:18px;gap:18px;flex-wrap:wrap}.hero-credit{order:3;text-align:left;margin:0;font-size:9px;flex-basis:100%;display:none}.scroll-cue{font-size:8px;gap:10px}.scroll-track{height:28px}.hero-pagination{margin-left:auto;gap:12px}.hero-pagination button{font-size:11px;min-width:25px}
.intro{margin-top:-22svh}.intro-grid{grid-template-columns:1fr;gap:44px}.intro h2{font-size:clamp(44px,10.7vw,70px)}.intro-copy{margin-top:28px;max-width:none}.intro-visual{padding:0 17px 75px 0;margin-left:12px}.intro-image{height:450px}.intro-image img,.partner-image img{inset:-45px 0;height:calc(100% + 90px)}.years{left:-12px;right:32px;padding:25px;gap:20px}.years strong{font-size:102px}.years>div{padding-left:20px}.years>div>span{font-size:25px}.measure{right:-5px;font-size:8px}
.filters{gap:3px 19px;margin-bottom:33px}.filters button{font-size:12px;padding:10px 0 13px}.projects{display:block}.project,.project:nth-child(n){width:100%;margin:0 0 35px}.project-image,.project:first-child .project-image,.project:nth-child(n) .project-image{aspect-ratio:1.14}.project-meta{padding:18px 0}.project-meta h3,.project:first-child .project-meta h3{font-size:31px}.project-meta p{font-size:10px;margin-top:9px}.project-num{font-size:21px}.project-open{width:45px;height:45px;right:16px;bottom:16px;font-size:22px}.project-note{font-size:11px;margin-top:8px}
.partner{min-height:110svh}.partner-scene{min-height:100svh}.partner-content{position:relative;left:auto;top:auto;width:100%;padding:80px var(--gutter);transform:translate3d(0,var(--partner-copy-y,0px),0)}.partner h2{font-size:clamp(46px,11.3vw,74px);margin:28px 0}.partner .eyebrow{font-size:10px}.partner-content>p:not(.eyebrow){font-size:14px;max-width:450px}.partner .button{font-size:12px;gap:20px;padding:16px 18px}.partner-coordinate{display:none}.partner-image{inset:0}.partner-image img{object-position:56% center}.partner-image:after{background:linear-gradient(90deg,#25211ce8,#25211ca8 65%,#25211c68)}
.services-grid{grid-template-columns:1fr;gap:35px}.services-grid>div:first-child{position:static}.services h2,.faq h2{font-size:clamp(42px,10.4vw,64px)}.technical{width:110px;margin:25px 0 0}.services-grid>div>p{margin-top:24px;font-size:14px}.service-list details{padding:22px 0}.service-list summary{gap:15px}.service-list h3{font-size:29px}.service-list details p{font-size:14px;margin-left:29px;margin-right:12px}.service-list b{width:28px}
.process-layout{grid-template-columns:1fr;gap:40px}.process-intro{position:static}.process h2{font-size:clamp(45px,11vw,66px)}.process-switch{margin-top:25px}.steps{min-height:760px;padding-left:30px}.step{grid-template-columns:50px 1fr;padding:28px 0 35px;gap:12px 20px}.step:before{left:-34px}.step h3{font-size:30px}.step p{font-size:14px}.step-number{font-size:55px}
.founder-grid{grid-template-columns:1fr;gap:40px}.founder-portrait{margin-right:7%;padding-right:23px}.founder-copy h2{font-size:clamp(46px,11.6vw,70px);margin:24px 0 28px}.founder-photo img{inset:-24px 0;height:calc(100% + 48px)}.founder-measure{font-size:8px}.founder-copy .eyebrow{font-size:11px}
.testimonial-card{padding:35px 0 20px 38px;min-height:355px}.quote-mark{font-size:64px;top:45px}.testimonial-card>p{font-size:clamp(29px,7.2vw,43px);line-height:1.2}.testimonial-card footer{gap:5px;flex-direction:column;align-items:start;padding-top:28px}.testimonial-note{font-size:9px;line-height:1.7;margin-top:15px}
.faq .service-list h3{font-size:27px}.contact-heading{display:block;padding-bottom:65px;position:relative;margin-bottom:36px}.contact h2{font-size:clamp(39px,10.3vw,72px)}.contact-arrow{position:absolute;bottom:0;right:0;width:50px;height:50px;font-size:30px}.contact-brief{grid-template-columns:1fr;gap:30px;padding:35px 0 40px}.contact-brief h3{font-size:34px}.contact-brief br{display:none}#project-brief{grid-template-columns:1fr;gap:19px}.brief-wide{grid-column:auto}.contact-grid{grid-template-columns:1fr;font-size:13px;gap:30px;padding-bottom:25px}.contact-grid>p{grid-column:auto}.site-footer{padding:50px var(--gutter) 90px;grid-template-columns:1fr 1fr;gap:35px 15px}.site-footer .logo{width:155px}.site-footer>span{display:none}.site-footer p{text-align:left;font-size:11px}.site-footer>a:last-child{font-size:11px}
.whatsapp-float{right:16px;bottom:calc(103px + env(safe-area-inset-bottom))}.whatsapp-icon{width:47px;height:47px}.whatsapp-icon svg{width:25px;height:25px}.whatsapp-label{display:none}.whatsapp-float:focus-visible .whatsapp-label{display:block;font-size:11px;padding:10px 13px}.motion-toggle{left:15px;bottom:18px;padding:9px 10px;font-size:11px}.motion-toggle span{display:none}
dialog{width:100%;height:100svh;max-height:100svh;max-width:100%;border:0;margin:0}.case-layout{display:flex;flex-direction:column}.gallery{padding:70px 15px 25px;order:0}.gallery-stage{height:43svh;min-height:230px;max-height:360px}.detail-head{padding:32px 25px 50px;order:1}.detail-head h2{font-size:43px}.case-summary{font-size:14px}.case-facts dd{font-size:13px}.case-facts dt{font-size:10px}.close-dialog{top:14px;margin-right:15px}.detail-cta{font-size:13px}.gallery-controls{font-size:12px}
}
@media(max-width:500px){.header-cta{display:none}.menu{margin-left:auto}}
@media(max-width:380px){.hero h1{font-size:20vw}.hero-content>.eyebrow{margin-bottom:22px}.hero-bottom p{font-size:12px}.years{padding:23px 20px;gap:14px}.years strong{font-size:93px}.years>div{padding-left:16px}.years>div>span{font-size:23px}.intro-image{height:390px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}[data-parallax],.project-camera,.hero,.hero-entry,.hero-content,.partner-content{transform:none!important}.hero-content{transform:translateY(-43%)!important}.hero-scene{height:100svh;min-height:720px}.intro{margin-top:0}.partner{min-height:0}.partner-scene{position:relative}.partner-image{clip-path:none}.hero-slide{visibility:hidden}.hero-slide.is-active{visibility:visible}.motion-toggle{display:none}.testimonial-grid{scroll-behavior:auto}}
.motion-paused *,.motion-paused *:before,.motion-paused *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
.motion-paused .hero,.motion-paused .hero-entry,.motion-paused [data-parallax],.motion-paused .project-camera,.motion-paused .partner-content{transform:none!important}
.motion-paused .hero-content{opacity:1;transform:translateY(-43%)}
.motion-paused .partner-image{clip-path:none}
