@font-face{font-family:Switzer;src:url('/fonts/switzer-400.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Switzer;src:url('/fonts/switzer-500.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:Switzer;src:url('/fonts/switzer-600.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:Switzer;src:url('/fonts/switzer-700.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap}
:root{--paper:#eeefec;--ink:#202420;--muted:#60655e;--line:#ced1ca;--accent:#3c4738;--surface:#e3e6df;--on-ink:#eeefec;--gutter:clamp(22px,3vw,72px);--serif:Switzer,Arial,sans-serif;--sans:Switzer,Arial,sans-serif;--ease-out:cubic-bezier(.22,1,.36,1);color-scheme:light}
:root[data-theme=dark]{--paper:#1c201c;--ink:#e7eae3;--muted:#b7bdb2;--line:#41483e;--accent:#c3d0bb;--surface:#272d26;--on-ink:#1c201c;color-scheme:dark}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#1c201c;--ink:#e7eae3;--muted:#b7bdb2;--line:#41483e;--accent:#c3d0bb;--surface:#272d26;--on-ink:#1c201c;color-scheme:dark}}
html{scroll-padding-top:30px}body{font-family:var(--sans);font-size:17px;line-height:1.5;letter-spacing:-.018em;background:var(--paper);color:var(--ink)}h1,h2,h3{font-family:var(--sans)}.display{font-family:var(--sans);font-size:clamp(46px,6.5vw,104px);font-weight:500;line-height:.98;letter-spacing:-.068em}.display em{font-style:normal;color:inherit}.eyebrow{font-size:12px;letter-spacing:.04em;line-height:1.5;text-transform:none}.section{padding:120px var(--gutter)}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:6px}.text-link{font-size:15px;letter-spacing:-.02em;padding:12px 0;border-bottom-color:var(--line);gap:32px}.text-link span{transition:transform .25s var(--ease-out);font-size:24px}.button{border-radius:0;transition:background .2s,color .2s,transform .2s}.button.dark{background:var(--ink);color:var(--on-ink)}.button.dark:hover{background:var(--accent)}.button.light{background:#eeefec;color:#202420}.button:active{transform:scale(.98)}
/* Layers: navigation 50, native dialogs top layer; scenes only use local stacking. */
.header{height:80px;border:0;background:var(--paper);color:var(--ink)}.header-overlay{position:absolute;background:transparent;color:var(--ink)}.brand-logo{width:143px;height:auto;mix-blend-mode:multiply}.desktop-nav{gap:40px;font-size:14px}.nav-contact{margin-left:60px}.nav-contact span{margin-left:30px}.menu-open .brand-logo{filter:brightness(0) invert(1);mix-blend-mode:normal}.menu-open .header{background:#202420;color:#eeefec}.mobile-menu{background:#202420;color:#eeefec}.mobile-menu nav{font-family:var(--sans);font-weight:500;letter-spacing:-.05em;font-size:45px}.theme-toggle{border:0;padding:8px 0;background:none;color:inherit;font-size:inherit}
:root[data-theme=dark] .brand-logo{filter:invert(1);mix-blend-mode:screen}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .brand-logo{filter:invert(1);mix-blend-mode:screen}}
/* A typographic masthead opens onto the real workshop. */
.hero{height:100svh;min-height:700px;max-height:1250px;padding:94px var(--gutter) 24px;background:var(--paper);color:var(--ink);display:flex;flex-direction:column;gap:26px;overflow:hidden}.hero-masthead{flex-shrink:0}.hero-wordmark{display:flex;justify-content:space-between;align-items:center;font-family:var(--sans);font-weight:600;font-size:clamp(100px,22.8vw,380px);line-height:.75;letter-spacing:-.065em;margin:0 0 0 -.025em;padding:0 .04em .06em 0;text-align:left;animation:none}.hero-wordmark span{display:inline-block;animation:brand-arrival 1.2s var(--ease-out) both;animation-delay:calc(var(--letter)*45ms)}.hero-media{position:relative;flex:1;min-height:300px;overflow:hidden;background:#51584f;color:#eeefec;isolation:isolate}.hero-photo,.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 55%;animation:none}.hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,#19211708 10%,#19211728 45%,#11180de0 100%);z-index:1}.hero-main{position:absolute;inset:auto 34px 88px;z-index:2;margin:0;padding:0;display:flex;align-items:flex-end;justify-content:space-between;gap:40px}.hero h1{font-family:var(--sans);font-size:clamp(28px,3.7vw,58px);font-weight:400;line-height:1.05;letter-spacing:-.045em;animation:none;max-width:750px}.hero-project-link{display:flex;align-items:center;gap:30px;flex-shrink:0;font-size:15px}.hero-link-arrow{display:grid;place-items:center;width:80px;height:80px;border:1px solid #eeefec88;border-radius:50%;font-size:38px;transition:background .25s,color .25s,transform .4s var(--ease-out)}.hero-project-link:hover .hero-link-arrow{background:#eeefec;color:#202420;transform:rotate(45deg)}.hero-film-controls{position:absolute;z-index:2;bottom:24px;left:34px;right:34px;border-top:1px solid #eeefec55;padding-top:10px;gap:18px}.hero-film-controls button{color:#eeefec;min-height:36px;font-size:12px;letter-spacing:.015em}.hero-motion{margin-left:auto;padding-left:20px!important}.hero-film-controls .film-duration{margin-left:8px;opacity:.7}.hero-film-controls button:focus-visible,.hero-project-link:focus-visible{outline-color:#eeefec}
@keyframes brand-arrival{from{opacity:0;transform:translateY(35%)}to{opacity:1;transform:none}}
/* Clear editorial rhythm, followed by an asymmetric project index. */
.intro{padding-top:150px;padding-bottom:150px}.intro-label{font-size:13px;line-height:1.55;margin-bottom:48px;color:var(--muted)}.intro-grid{grid-template-columns:1.65fr 1fr;gap:10vw;align-items:end}.intro .display{font-size:clamp(48px,6.7vw,106px);font-weight:500}.intro-copy{padding:0;max-width:360px}.intro-copy>p:first-child{font-size:23px;line-height:1.35;letter-spacing:-.04em}.intro-copy p{font-size:16px;color:var(--muted)}.intro-copy .text-link{margin-top:8px}.work-section{border-top:0;padding-top:0;padding-bottom:150px}.work-section .section-heading{margin-bottom:68px;align-items:end}.section-heading .display{font-size:clamp(48px,6.4vw,100px);font-weight:500}.home-grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:110px 28px;align-items:start}.home-grid .project-card:nth-child(1){grid-column:1/8;padding:0}.home-grid .project-card:nth-child(2){grid-column:9/13;padding-top:220px}.home-grid .project-card:nth-child(3){grid-column:1/5;padding:0}.home-grid .project-card:nth-child(4){grid-column:6/13;padding-top:140px}.home-grid .project-card:nth-child(1) .project-image,.home-grid .project-card:nth-child(4) .project-image{aspect-ratio:6/5}.home-grid .project-card:nth-child(2) .project-image,.home-grid .project-card:nth-child(3) .project-image{aspect-ratio:3/4}.project-image{background:var(--surface)}.project-meta{padding-top:17px}.project-meta h3{font-weight:500;font-size:25px;letter-spacing:-.04em}.project-meta p{font-size:12px;margin-top:6px}.project-index{display:none}.image-action{border-radius:50%;height:54px;width:54px;right:24px;bottom:24px;background:var(--paper);color:var(--ink)}.project-image img{transition:transform .85s var(--ease-out)}.project-card a:hover .project-image img{transform:scale(1.045)}
/* Linear by default. GSAP enhances this to a single pinned cinematic stage. */
.atelier-story{position:relative;background:var(--paper);color:var(--ink);padding:20px var(--gutter) 100px}.atelier-stage{position:relative}.atelier-opening{margin-bottom:50px}.atelier-opening h2{font-size:clamp(70px,13vw,210px);font-weight:500;letter-spacing:-.07em;line-height:.86}.atelier-opening h2 span{display:block}.atelier-opening p{margin-top:30px;font-size:14px}.atelier-scenes{display:grid;gap:70px}.atelier-scene{position:relative}.atelier-image img{width:100%;max-height:80svh;object-fit:cover}.atelier-copy{padding-top:24px}.atelier-copy h3{font-size:clamp(42px,6vw,88px);font-weight:500;letter-spacing:-.065em;line-height:1;margin-bottom:18px}.atelier-copy p{max-width:360px;color:var(--muted);font-size:16px}.atelier-copy .text-link{margin-top:20px}.atelier-navigation,.atelier-shade{display:none}.atelier-story.is-cinematic{padding:0}.is-cinematic .atelier-stage{height:100svh;min-height:600px;overflow:hidden;isolation:isolate}.is-cinematic .atelier-opening{position:absolute;inset:0;margin:0;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:0}.is-cinematic .atelier-opening h2{font-size:clamp(100px,18vw,300px);line-height:.86;text-align:center;letter-spacing:-.065em}.is-cinematic .atelier-opening h2 span:last-child{padding-left:28vw;margin-top:18vh}.is-cinematic .atelier-opening h2 span:first-child{padding-right:8vw}.is-cinematic .atelier-opening p{position:absolute;bottom:40px;left:var(--gutter);margin:0}.is-cinematic .atelier-scenes{position:absolute;inset:0;display:block}.is-cinematic .atelier-scene{position:absolute;inset:0;overflow:hidden}.is-cinematic .atelier-image{position:absolute;inset:0}.is-cinematic .atelier-image img{width:100%;height:100%;max-height:none;object-fit:cover;object-position:center 55%;will-change:transform}.is-cinematic .atelier-scene:first-child .atelier-image img{object-position:center 37%}.is-cinematic .atelier-shade{display:block;position:absolute;inset:0;background:linear-gradient(180deg,#161e1220 35%,#0a1008d6 100%)}.is-cinematic .atelier-copy{position:absolute;bottom:100px;left:var(--gutter);right:var(--gutter);color:#eeefec;padding:0;display:grid;grid-template-columns:1.5fr 1fr;align-items:end;gap:12vw}.is-cinematic .atelier-copy h3{font-size:clamp(90px,12vw,195px);letter-spacing:-.075em;line-height:.85;margin:0}.is-cinematic .atelier-copy p{color:#eeefec;font-size:18px;line-height:1.5;max-width:360px}.is-cinematic .atelier-copy .text-link{border-color:#eeefec77;font-size:14px;color:#eeefec}.is-cinematic .atelier-copy a:focus-visible{outline-color:#eeefec}.is-cinematic .atelier-navigation{position:absolute;display:flex;bottom:30px;left:var(--gutter);right:var(--gutter);gap:36px;color:#eeefec;z-index:4;font-size:12px;border-top:1px solid #eeefec44;padding-top:15px}.atelier-navigation span{opacity:.45;transition:opacity .2s}.atelier-navigation span.is-active{opacity:1}
/* True optical reveal: both photos keep the exact same frame. */
.transformation{display:grid;grid-template-columns:4fr 7fr;gap:8vw;align-items:center;padding-top:150px;padding-bottom:150px;background:var(--paper);border:0}.transformation-heading .eyebrow{margin-bottom:30px;color:var(--muted)}.transformation-heading .display{font-size:clamp(46px,5.2vw,86px);line-height:1;letter-spacing:-.065em}.transformation-heading>p:not(.eyebrow){margin:30px 0 32px;font-size:16px;line-height:1.55;color:var(--muted)}.transformation-heading .text-link{font-size:14px}.transformation-visual{min-width:0}.comparison{--split:50%}.comparison-stage{height:auto;min-height:0;max-height:none;aspect-ratio:4/5;position:relative;display:block;overflow:hidden;background:var(--surface);isolation:isolate;touch-action:pan-y;cursor:ew-resize}.comparison-pane{position:absolute;inset:0;height:100%;width:100%;margin:0;overflow:hidden}.comparison-pane img{width:100%;height:100%;object-fit:cover;object-position:center;user-select:none;-webkit-user-drag:none;pointer-events:none}.comparison-after{z-index:0;width:100%}.comparison-before{z-index:1;width:100%;clip-path:inset(0 calc(100% - var(--split)) 0 0)}.comparison-labels{position:absolute;top:0;left:0;right:0;padding:24px;display:flex;justify-content:space-between;z-index:2;color:#fff;font-size:13px;pointer-events:none;background:linear-gradient(#10181070,transparent)}.comparison-labels span{transition:opacity .15s}.comparison-divider,.comparison.is-interactive .comparison-divider,.comparison.is-endpoint .comparison-divider{display:flex;position:absolute;top:0;bottom:0;left:var(--split);width:58px;margin-left:-29px;align-items:center;justify-content:center;z-index:3;pointer-events:none;transition:none}.comparison-divider:before{width:1px;background:#fff;box-shadow:0 0 8px #1113}.comparison-divider>span{width:58px;height:58px;border:1px solid #ffffffd9;background:#f1f2ee22;backdrop-filter:blur(12px);color:white;border-radius:50%;display:flex;align-items:center;justify-content:center;gap:4px;box-shadow:none}.comparison-divider i{height:13px;width:1px;background:#fff;display:block}.comparison-divider i:nth-child(2){height:21px}.comparison-input-label{position:absolute;inset:0;z-index:4;pointer-events:none;display:block}.comparison-input-label input{position:absolute;inset:0;opacity:0;pointer-events:none;width:100%;height:100%;min-height:0;margin:0;padding:0}.comparison:focus-within .comparison-divider>span{outline:2px solid white;outline-offset:5px}.comparison:has(input:focus-visible) .comparison-stage{outline:2px solid var(--ink);outline-offset:5px}.comparison-tools{padding:15px 0 0;border:0;gap:12px;display:flex;align-items:center;justify-content:space-between}.comparison-tools p{font-size:12px;color:var(--muted)}.comparison-presets{display:flex;gap:16px}.comparison-presets button{background:none!important;color:var(--muted)!important;padding:8px 0;border:0;border-bottom:1px solid transparent;font-size:12px;border-radius:0;min-width:32px}.comparison-presets button[aria-pressed=true]{color:var(--ink)!important;border-bottom-color:var(--ink)}.comparison-caption{display:block;font-size:11px!important;line-height:1.5;color:var(--muted);padding:12px 0 0;max-width:450px}.comparison.is-dragging .comparison-divider>span{background:#f1f2ee55}.comparison.is-endpoint .comparison-divider{opacity:.7}
/* The team and the close stay in the same material and type system. */
.craft-section{background:var(--paper);color:var(--ink);grid-template-columns:1.2fr 1fr;gap:9vw;padding:0 var(--gutter) 100px}.craft-image{min-height:0;aspect-ratio:5/6}.craft-copy{padding:50px 0;max-width:490px}.craft-copy .display{font-family:var(--sans);font-size:clamp(46px,5.3vw,86px);font-weight:500;line-height:1;letter-spacing:-.065em;margin-bottom:36px}.craft-copy>p:not(.eyebrow){color:var(--muted);font-size:17px;max-width:360px}.craft-copy .text-link{margin-top:36px}.before-section{padding-top:75px;padding-bottom:125px}.before-grid{gap:12vw;align-items:end}.before-grid .display{font-size:clamp(46px,5.5vw,86px);font-weight:500;line-height:1}.before-grid p{font-size:16px}.footer{background:var(--surface);color:var(--ink);padding-top:95px;padding-bottom:24px}.footer-top{align-items:end;padding-bottom:115px}.footer-invite{display:flex;align-items:center;gap:7vw;font-family:var(--sans);font-size:clamp(64px,10vw,165px);font-weight:500;line-height:.95;letter-spacing:-.07em}.footer-invite>span{font-family:inherit;font-size:inherit;margin:0}.footer-invite .footer-arrow{font-size:1.1em;transition:transform .5s var(--ease-out);font-weight:400}.footer-invite:hover .footer-arrow{transform:translate(12px,-12px)}.footer-contact{font-size:16px;line-height:1.5;gap:10px;margin:0 0 5px}.footer-contact span{color:var(--muted);font-size:13px}.footer-wordmark{font-family:var(--sans);font-weight:600;font-size:22vw;line-height:.8;letter-spacing:-.07em;margin-left:-.025em;padding-bottom:45px;text-align:center;color:var(--ink)}.footer-bottom{color:var(--muted);border-color:var(--line);font-size:12px}.footer-bottom a:hover{color:var(--ink)}
/* Typography and surfaces carry through all existing routes. */
.page-intro{padding-top:75px;padding-bottom:85px}.page-intro-grid h1{font-size:clamp(50px,7vw,114px);font-weight:500}.page-intro-grid>p{font-size:16px}.project-heading h1{font-size:clamp(56px,8vw,140px);font-weight:500}.project-heading{padding-top:38px;padding-bottom:55px}.project-subheading{font-size:20px}.project-cover{max-height:1000px}.project-story{gap:12vw}.story-intro{font-size:clamp(26px,2.5vw,42px);font-weight:400;line-height:1.3;letter-spacing:-.04em}.story-block h3{font-weight:500;letter-spacing:-.03em}.story-block p{font-size:17px}.project-gallery{gap:65px 32px}.project-gallery figcaption{font-size:12px}.gallery-open>span{border-radius:50%;background:var(--paper);color:var(--ink)}.filter-buttons button{font-size:15px}.filter-bar{border-top:0}.portfolio-grid{gap:65px 32px}.method{background:var(--surface)}.method-number{font-family:var(--sans);font-weight:500;color:var(--muted);letter-spacing:-.06em}.method-grid h3,.trade-list h3{font-weight:500;letter-spacing:-.025em}.trade-list p{font-size:16px}.contact-aside h1{font-size:clamp(50px,5.3vw,86px);font-weight:500}.contact-details a{font-size:17px}input,select,textarea{color:var(--ink);border-color:var(--line);accent-color:var(--ink)}input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}.checkbox-grid input{accent-color:var(--ink)}#form-result pre{background:var(--surface)}.lightbox,.film-dialog{background:#202420;color:#eeefec}.film-dialog p{color:#d0d5cb}.about-image>p{background:var(--paper);color:var(--ink)}
@media(hover:none){.image-action{opacity:1;transform:none}.project-card a:hover .project-image img{transform:none}.hero-project-link:hover .hero-link-arrow{transform:none}.text-link:hover span{transform:none}}
@media(max-width:1100px){.desktop-nav{gap:24px}.nav-contact{margin-left:20px}.hero{min-height:700px}.hero-main{inset:auto 26px 83px}.hero-project-link{gap:18px}.hero-link-arrow{width:64px;height:64px;font-size:32px}.hero-film-controls{left:26px;right:26px}.intro-grid{gap:7vw}.home-grid{gap:80px 24px}.home-grid .project-card:nth-child(2){padding-top:155px}.is-cinematic .atelier-copy{gap:7vw;grid-template-columns:1.2fr 1fr}.is-cinematic .atelier-copy p{font-size:16px}.transformation{gap:6vw}.comparison-tools{align-items:start;flex-direction:column;gap:2px}.comparison-presets{gap:20px}.craft-section{gap:6vw}.footer-invite{font-size:10vw}}
@media(max-width:767px){.section{padding:80px var(--gutter)}.header{height:72px}.header-overlay{height:72px}.desktop-nav{display:none}.menu-toggle{display:block}.brand-logo{width:127px}.hero{padding:92px var(--gutter) 20px;min-height:690px;max-height:1000px;height:100svh;gap:22px}.hero-wordmark{font-size:21.5vw;line-height:.8;padding-bottom:.04em}.hero-media{min-height:430px}.hero-main{inset:auto 20px 138px;display:block}.hero h1{font-size:clamp(28px,7.2vw,43px);line-height:1.1;letter-spacing:-.045em}.hero-project-link{position:absolute;bottom:-72px;left:0;right:0;justify-content:space-between;font-size:13px}.hero-link-arrow{width:48px;height:48px;font-size:26px}.hero-film-controls{bottom:18px;left:20px;right:20px;padding-top:8px;gap:12px}.hero-film-controls button{font-size:11px}.hero-film-controls .film-duration{display:none}.hero-motion{font-size:11px;min-width:40px}.hero-photo,.hero-video{object-position:45% center}.hero-shade{background:linear-gradient(180deg,#19211705 10%,#19211722 32%,#11180de0 95%)}.intro{padding-top:95px;padding-bottom:90px}.intro-label{font-size:12px;margin-bottom:35px}.intro-grid{grid-template-columns:1fr;gap:40px}.intro .display{font-size:clamp(44px,10.4vw,70px);line-height:1.03}.intro-copy{margin-left:14%;max-width:none}.intro-copy>p:first-child{font-size:21px}.intro-copy p{font-size:16px}.work-section{padding-top:0;padding-bottom:80px}.section-heading .display{font-size:clamp(48px,11vw,70px);line-height:1}.work-section .section-heading{margin-bottom:35px}.section-heading .text-link{margin-top:22px}.home-grid{grid-template-columns:1fr;gap:45px}.home-grid .project-card:nth-child(n){grid-column:1;padding:0}.home-grid .project-card:nth-child(n) .project-image{aspect-ratio:5/6}.project-meta h3{font-size:23px}.project-meta p{font-size:12px}.image-action{width:46px;height:46px;bottom:17px;right:17px}.atelier-story{padding:30px var(--gutter) 35px}.atelier-opening h2{font-size:clamp(70px,19vw,130px)}.atelier-opening p{font-size:12px;margin-top:25px}.atelier-scenes{gap:50px}.atelier-image img{max-height:none;aspect-ratio:4/5;object-fit:cover}.atelier-copy{padding-top:24px}.atelier-copy h3{font-size:54px;margin-bottom:15px}.atelier-copy p{font-size:16px;max-width:none}.atelier-copy .text-link{font-size:14px}.transformation{grid-template-columns:1fr;gap:35px;padding-top:70px;padding-bottom:80px}.transformation-heading .eyebrow{font-size:12px;margin-bottom:20px}.transformation-heading .display{font-size:clamp(47px,12vw,75px)}.transformation-heading>p:not(.eyebrow){font-size:16px;margin:25px 0 20px}.comparison-stage{height:auto;max-height:none;aspect-ratio:3/4}.comparison-labels{padding:17px;font-size:12px}.comparison-divider>span{width:52px;height:52px}.comparison-divider{width:52px;margin-left:-26px}.comparison-tools{flex-direction:column;align-items:stretch;gap:7px;padding-top:15px}.comparison-tools p{font-size:12px}.comparison-presets{justify-content:flex-start;gap:25px;flex:none}.comparison-presets button{font-size:13px;min-height:40px;padding:8px 0}.comparison-caption{font-size:11px!important;padding-top:15px}.craft-section{grid-template-columns:1fr;gap:35px;padding:0 var(--gutter) 60px}.craft-image{aspect-ratio:5/6;height:auto}.craft-copy{padding:0;margin-left:12%;max-width:none}.craft-copy .display{font-size:clamp(46px,11vw,72px);margin-bottom:25px}.craft-copy>p:not(.eyebrow){font-size:16px}.craft-copy .text-link{margin-top:25px}.before-section{padding-top:35px;padding-bottom:80px}.before-grid{grid-template-columns:1fr;gap:25px}.before-grid .display{font-size:48px}.before-grid>div{margin-left:12%}.before-grid p{font-size:16px;margin-bottom:18px}.footer{padding-top:65px}.footer-top{display:block;padding-bottom:65px}.footer-invite{font-size:clamp(62px,16vw,115px);gap:0;justify-content:space-between}.footer-invite .footer-arrow{font-size:1em;margin:0}.footer-contact{margin-top:45px;font-size:15px}.footer-wordmark{font-size:21vw;line-height:.8;padding-bottom:32px}.footer-bottom{font-size:11px;gap:18px 23px}.footer-bottom .theme-toggle{padding:0}.page-intro{padding-top:55px;padding-bottom:45px}.page-intro-grid h1{font-size:clamp(46px,11vw,70px);line-height:1.04}.project-heading h1{font-size:clamp(48px,12vw,80px);line-height:1;overflow-wrap:normal}.project-heading{padding-top:30px;padding-bottom:40px}.project-story{gap:40px}.project-gallery{padding-top:0;gap:40px}.project-subheading{font-size:17px}.more-projects .display{font-size:44px}.contact-layout{padding-top:50px}.contact-aside h1{font-size:55px}.method-grid{gap:30px 25px}.method-number{font-size:52px}.trades .display{font-size:50px}.trades{gap:30px}.portfolio-section{padding-top:0}.portfolio-grid{gap:42px}.filter-buttons button{font-size:13px}.filter-buttons{gap:18px}.filter-bar{margin-bottom:32px}.display{font-size:48px;line-height:1.03}.contact-photo{margin-top:35px}.contact-details a{font-size:16px}}
@media(prefers-reduced-motion:reduce){.hero-wordmark span{animation:none}.hero-video{display:none}.hero-video.user-playing{display:block}.atelier-image img{transform:none!important}.js-ready .reveal{opacity:1;transform:none}html{scroll-behavior:auto}}

::selection{background:var(--accent);color:var(--on-ink)}
/* Content from the Drive: photographed trades and the people behind the work. */
.about-anchors{display:flex;flex-wrap:wrap;gap:14px 30px;margin-top:48px;font-size:13px}.about-anchors a{border-bottom:1px solid var(--line);padding:8px 0}.about-anchors a:hover{border-color:var(--ink)}
.editorial-split{display:grid;grid-template-columns:1.2fr 1fr;gap:10vw}.editorial-split .display{font-size:clamp(40px,4.9vw,78px);margin-top:25px}.editorial-body{max-width:640px}.editorial-body p{font-size:17px;line-height:1.65;color:var(--muted);margin-bottom:22px}.editorial-body .lead{font-size:clamp(22px,2.2vw,32px);line-height:1.35;color:var(--ink);letter-spacing:-.035em}.editorial-body .eyebrow{font-size:12px;color:var(--ink)}
.before-purchase{display:grid;grid-template-columns:1.1fr 1fr;gap:12vw;background:var(--surface)}.purchase-intro .display{font-size:clamp(45px,5.5vw,88px);margin:25px 0 30px}.purchase-intro>p:not(.eyebrow){max-width:490px;color:var(--muted);font-size:17px}.purchase-intro .text-link{margin-top:22px}.purchase-steps{list-style:none;margin:0;padding:0;counter-reset:purchase}.purchase-steps li{counter-increment:purchase;border-top:1px solid var(--line);padding:24px 0 30px 45px;position:relative}.purchase-steps li:before{content:'0' counter(purchase);position:absolute;left:0;top:29px;font-size:12px;color:var(--muted)}.purchase-steps h3{font-weight:500;font-size:26px;letter-spacing:-.045em;margin-bottom:14px}.purchase-steps p{color:var(--muted);font-size:16px;line-height:1.6}
.illustrated-trades .section-heading{align-items:end;gap:8vw}.section-description{max-width:350px;font-size:16px;color:var(--muted)}.illustrated-trades .display{font-size:clamp(46px,5.8vw,90px)}.trade-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:45px 28px;align-items:start}.trade-card{min-width:0;border-bottom:1px solid var(--line);padding-bottom:15px}.trade-card summary{display:block;list-style:none;cursor:pointer}.trade-card summary::-webkit-details-marker{display:none}.trade-card summary:focus-visible{outline:2px solid var(--ink);outline-offset:6px}.trade-card-image{display:block;overflow:hidden;aspect-ratio:5/4;background:var(--surface)}.trade-card-image img{width:100%;height:100%;object-fit:cover;transition:transform .65s var(--ease-out)}.trade-card summary:hover img{transform:scale(1.035)}.trade-card-title{display:flex;gap:15px;justify-content:space-between;align-items:center;padding:18px 0 0;font-size:clamp(19px,1.8vw,28px);font-weight:500;letter-spacing:-.045em}.trade-expand{font-size:28px;line-height:1;font-weight:400;transition:transform .2s}.trade-card[open] .trade-expand{transform:rotate(45deg)}.trade-card-content{padding-top:20px}.trade-card-content p{font-size:15px;color:var(--muted);line-height:1.65}.trade-card-content .text-link{font-size:13px;margin-top:15px}
.detail-section{display:grid;grid-template-columns:1.05fr 1fr;gap:10vw;align-items:center;padding-top:20px}.detail-image img{width:100%;aspect-ratio:4/5;object-fit:cover}.detail-image>p,.team-section figcaption{font-size:12px;color:var(--muted);margin-top:12px}.detail-section .display{font-size:clamp(45px,5.1vw,80px);margin:25px 0 35px}
.team-section{display:grid;grid-template-columns:1.1fr 1fr;gap:10vw;align-items:center;background:var(--surface)}.team-copy .display{font-size:clamp(44px,5.1vw,80px);margin:25px 0 35px}.team-copy>p:not(.eyebrow){color:var(--muted);font-size:17px;line-height:1.65;margin-bottom:22px;max-width:540px}.team-copy button{background:none;color:var(--ink);border:0;border-bottom:1px solid var(--line)}.team-section figure{margin:0}.team-section figure img{width:100%;aspect-ratio:4/5;object-fit:cover}
.commitments-section .display{font-size:clamp(44px,6vw,96px);margin-top:25px}.commitments-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:45px;margin-top:65px}.commitments-grid article{border-top:1px solid var(--line);padding-top:24px}.commitments-grid h3{font-size:27px;font-weight:500;line-height:1.2;letter-spacing:-.04em;margin-bottom:20px}.commitments-grid p{font-size:16px;line-height:1.7;color:var(--muted)}
.references-section{display:grid;grid-template-columns:1.15fr 1fr;gap:12vw;border-top:1px solid var(--line)}.references-heading .display{font-size:clamp(46px,5.5vw,88px);margin-top:25px}.references-heading .text-link{margin-top:25px}.references-list{list-style:none;padding:0;margin:0}.references-list li{font-size:clamp(22px,2.4vw,36px);line-height:1.2;font-weight:500;letter-spacing:-.045em;padding:18px 0;border-bottom:1px solid var(--line)}.references-list li:first-child{padding-top:0}.about-projects{padding-top:30px}.about-projects .project-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}.about-projects .project-image{aspect-ratio:4/5}.about-projects .project-meta h3{font-size:25px}.about-projects .project-index{display:none}
@media(max-width:1000px){.trade-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.editorial-split,.before-purchase,.detail-section,.team-section,.references-section{gap:6vw}.commitments-grid{gap:25px}.commitments-grid h3{font-size:23px}.about-projects .project-meta h3{font-size:21px}}
@media(max-width:767px){.about-anchors{margin-top:30px;gap:7px 24px;font-size:12px}.editorial-split,.before-purchase,.detail-section,.team-section,.references-section{grid-template-columns:1fr;gap:35px}.editorial-split .display,.purchase-intro .display,.detail-section .display,.team-copy .display{font-size:44px}.editorial-body p,.team-copy>p:not(.eyebrow){font-size:16px}.illustrated-trades .section-heading{display:block}.section-description{margin-top:25px;max-width:none}.trade-cards{grid-template-columns:1fr;gap:18px}.trade-card summary{display:grid;grid-template-columns:100px 1fr;align-items:center;gap:20px}.trade-card-image{aspect-ratio:1}.trade-card-title{padding:0;font-size:23px;letter-spacing:-.04em}.trade-card-content{padding-top:20px}.trade-card-content p{font-size:16px}.detail-section{padding-top:0}.detail-image img{aspect-ratio:5/4}.team-section figure{grid-row:1}.team-section figure img{aspect-ratio:5/6}.commitments-section .display{font-size:40px;line-height:1.1}.commitments-grid{grid-template-columns:1fr;gap:30px;margin-top:35px}.commitments-grid h3{font-size:26px;margin-bottom:15px}.references-heading .display{font-size:48px}.references-list li{font-size:26px;padding:17px 0}.about-projects .project-grid{grid-template-columns:1fr;gap:40px}.about-projects .project-meta h3{font-size:24px}.about-projects .project-image{aspect-ratio:5/6}}
@media(prefers-reduced-motion:reduce){.trade-card-image img,.trade-expand{transition:none}.trade-card summary:hover img{transform:none}}

/* A project may arrive before its photographs or written presentation. */
.project-placeholder{height:100%;min-height:100%;display:flex;flex-direction:column;justify-content:space-between;padding:clamp(24px,3vw,48px);background:var(--surface);color:var(--ink)}
.placeholder-title{font-size:clamp(34px,4.5vw,70px);font-weight:500;line-height:1;letter-spacing:-.055em;overflow-wrap:anywhere;max-width:12ch}
.placeholder-note,.project-media-note,.project-pending-copy{font-size:14px;color:var(--muted)}
.project-placeholder .placeholder-note{border-top:1px solid var(--line);padding-top:18px}
.project-heading-text-only{background:var(--surface);padding-bottom:70px}
.project-media-note{margin-top:38px}
.project-story-pending{padding-top:75px;padding-bottom:75px}
.project-pending-copy{margin-top:20px}
@media(max-width:700px){.project-placeholder{padding:28px}.placeholder-title{font-size:44px}.project-heading-text-only{padding-bottom:45px}.project-story-pending{padding-top:45px;padding-bottom:45px}}

/* Final editorial pass: let the photography breathe, shorten the scroll. */
.display{text-wrap:balance;letter-spacing:-.06em}
.hero{height:100svh;min-height:690px;max-height:1200px;gap:20px;padding-bottom:20px}
.hero-media{min-height:280px}
.hero-photo,.hero-video{object-position:50% 50%}
.hero-caption{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-shrink:0;min-height:38px}
.hero-caption h1{font-size:clamp(16px,1.5vw,23px);font-weight:400;line-height:1.3;letter-spacing:-.03em;margin:0;max-width:none}
.hero-caption .hero-film-controls{position:static;border:0;padding:0;gap:20px;flex-shrink:0;color:var(--ink)}
.hero-caption .hero-film-controls button{color:var(--ink);font-size:12px;min-height:36px}
.hero-caption .hero-motion{border-left-color:var(--line)!important}
.hero-caption-link{font-size:13px;display:flex;align-items:center;gap:20px;white-space:nowrap}
.hero-caption-link span{font-size:22px;transition:transform .2s var(--ease-out)}
.hero-caption .hero-film-controls button:focus-visible{outline-color:var(--ink)}
.home .intro{padding-top:90px;padding-bottom:85px}
.home .intro-label{margin-bottom:28px}
.home .intro .display{font-size:clamp(46px,5.8vw,90px)}
.home .work-section{padding-bottom:90px}
.home .work-section .section-heading{margin-bottom:42px}
.home-grid{gap:55px 28px}
.home-grid .project-card:nth-child(2){padding-top:100px}
.home-grid .project-card:nth-child(4){padding-top:65px}
.home .transformation{padding-top:90px;padding-bottom:90px;gap:7vw;grid-template-columns:1fr 1.25fr}
.home .comparison-stage{max-height:650px;aspect-ratio:5/6}
.home .craft-section{padding-bottom:60px;gap:7vw;align-items:center}
.home .craft-image{aspect-ratio:1;max-height:610px}
.home .craft-copy{padding:20px 0}
.home .before-section{padding-top:45px;padding-bottom:85px}
.footer{padding-top:65px}.footer-top{padding-bottom:70px}.footer-invite{font-size:clamp(60px,8vw,125px)}
.section-heading .display{font-size:clamp(44px,5.5vw,84px)}
.portfolio-intro{padding-top:45px;padding-bottom:38px}
.portfolio-intro .eyebrow{margin-bottom:20px}
.portfolio-intro .page-intro-grid h1{font-size:clamp(48px,5.5vw,82px)}
.portfolio-section .filter-bar{margin-bottom:28px}
.is-cinematic .atelier-scene{background:#202420}
.is-cinematic .atelier-image{left:38%}
.is-cinematic .atelier-image img,.is-cinematic .atelier-scene:first-child .atelier-image img{object-position:center 48%}
.is-cinematic .atelier-shade{display:none}
.is-cinematic .atelier-copy{inset:0 auto 0 var(--gutter);width:calc(38% - var(--gutter) * 2);display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:28px}
.is-cinematic .atelier-copy h3{font-size:clamp(50px,5.8vw,92px);letter-spacing:-.055em;line-height:1}
.is-cinematic .atelier-copy p{font-size:16px;line-height:1.55;color:#d5d9d2;max-width:310px}
.is-cinematic .atelier-copy .text-link{font-size:13px;margin-top:25px}
.is-cinematic .atelier-navigation{right:65%;gap:22px;border:0;font-size:11px}
.references-section{display:block;padding-top:60px;padding-bottom:85px}
.references-heading{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:32px}
.references-heading .eyebrow{display:none}.references-heading .display{font-size:clamp(40px,4.2vw,66px);line-height:1.02;margin:0}
.references-heading .text-link{margin:0;flex-shrink:0}
.references-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 50px}
.references-list li{display:flex;align-items:center;gap:28px;padding:22px 0;min-height:112px;font-size:20px;letter-spacing:-.025em;border-color:var(--line)}
.partner-logo{width:120px;height:68px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:#fff;padding:8px}
.partner-logo img{width:100%;height:100%;object-fit:contain}
.partner-logo img.logo-white{filter:brightness(0)}
.references-list li:last-child{border-bottom:1px solid var(--line)}
.project-image img{transition:transform .55s var(--ease-out)}
@media(hover:hover) and (pointer:fine){.hero-caption-link:hover span{transform:translate(3px,-3px)}.text-link:hover>span{transform:translate(3px,-3px)}.references-list li:hover .partner-logo{box-shadow:0 0 0 1px var(--line)}}
@media(min-width:768px) and (max-width:1050px){.hero-caption{gap:18px;flex-wrap:wrap}.hero-caption h1{flex:1}.hero-caption-link{display:none}}
@media(max-width:900px){.atelier-story{padding-bottom:55px}.atelier-opening{margin-bottom:30px}.atelier-opening h2{font-size:clamp(64px,12vw,115px);line-height:.95}.atelier-opening h2 span{display:inline}.atelier-opening h2 span+span:before{content:' '}.atelier-opening p{margin-top:18px}.atelier-scenes{gap:38px}.atelier-scene{display:grid;grid-template-columns:1fr 1fr;gap:25px;align-items:center}.atelier-image img{aspect-ratio:4/5;max-height:560px;object-fit:cover}.atelier-copy{padding:0}.atelier-copy h3{font-size:46px}.atelier-copy p{font-size:15px}.references-list{gap:0 24px}.references-list li{gap:20px;font-size:18px}.partner-logo{width:95px;height:62px}}
@media(max-width:700px){
 .hero{height:auto;min-height:0;max-height:none;padding-top:93px;padding-bottom:0;gap:20px}
 .hero-media{flex:none;min-height:0;height:clamp(300px,55svh,510px)}
 .hero-caption{display:grid;grid-template-columns:1fr auto;gap:8px 14px}
 .hero-caption h1{grid-column:1/-1;font-size:18px;max-width:100%;line-height:1.4}
 .hero-caption .hero-film-controls{gap:15px}.hero-caption-link{font-size:12px;gap:8px}.hero-caption .hero-film-controls button{font-size:11px}
 .home .intro{padding-top:65px;padding-bottom:60px}.home .intro-label{margin-bottom:24px}.home .intro .display{font-size:46px}
 .home .work-section{padding-bottom:60px}.home .work-section .section-heading{margin-bottom:28px}
 .home-grid{gap:35px}.home-grid .project-card:nth-child(n){padding-top:0}
 .home .transformation{padding-top:60px;padding-bottom:60px;grid-template-columns:1fr;gap:30px}.home .comparison-stage{max-height:none;aspect-ratio:4/5}
 .home .craft-section{gap:28px;padding-bottom:45px}.home .craft-image{aspect-ratio:5/4}.home .craft-copy{padding:0}
 .home .before-section{padding-top:25px;padding-bottom:60px}
 .atelier-scene{grid-template-columns:1fr;gap:20px}.atelier-image img{aspect-ratio:4/5;max-height:none}.atelier-copy h3{font-size:42px;margin-bottom:14px}.atelier-copy p{max-width:100%}.atelier-scenes{gap:40px}
 .references-section{padding-top:35px;padding-bottom:60px}.references-heading{display:block;margin-bottom:24px}.references-heading .display{font-size:42px}.references-heading .text-link{margin-top:18px}.references-list{grid-template-columns:1fr}.references-list li{padding:16px 0;min-height:86px;gap:23px;font-size:19px}.partner-logo{width:100px;height:57px}
 .portfolio-intro{padding-top:28px;padding-bottom:26px}.portfolio-intro .page-intro-grid{gap:20px}.portfolio-intro .page-intro-grid h1{font-size:46px}.portfolio-intro .page-intro-grid>p{font-size:14px;line-height:1.5}.portfolio-section .filter-bar{margin-bottom:24px}.filter-buttons{gap:16px}
 .footer{padding-top:50px}.footer-top{padding-bottom:55px}.footer-invite{font-size:clamp(60px,15vw,90px)}
}
@media(prefers-reduced-motion:reduce){.project-image img,.text-link span,.hero-caption-link span{transition:none}}
@media(min-width:701px){.hero{height:auto;min-height:0;max-height:none}.hero-media{flex:none;min-height:0;height:auto;aspect-ratio:16/8.5}.hero-wordmark{font-size:clamp(100px,21vw,360px)}}
.partner-logo{background:transparent;padding:9px 4px}.partner-logo img{mix-blend-mode:multiply}
:root[data-theme=dark] .partner-logo{background:#fff;padding:9px}
:root[data-theme=dark] .partner-logo img{mix-blend-mode:normal}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .partner-logo{background:#fff;padding:9px}:root:not([data-theme=light]) .partner-logo img{mix-blend-mode:normal}}
.portfolio-section{padding-top:0}

/* Film-first arrival: the image is immediate; navigation and caption frame it. */
.home .header-overlay{height:96px;color:#fff;background:linear-gradient(180deg,#11180ea6 0%,#11180e38 70%,transparent 100%)}
.home .header-overlay .brand-logo{width:136px;filter:brightness(0) invert(1);mix-blend-mode:normal}
.home .header-overlay a:focus-visible,.home .header-overlay button:focus-visible{outline-color:#fff}
.home.menu-open .header-overlay{background:#202420}
.hero.hero-film-first{height:auto;min-height:0;max-height:none;padding:0;gap:0;overflow:visible}
.hero-film-first .hero-media{height:calc(100svh - 84px);min-height:400px;max-height:980px;aspect-ratio:auto;flex:none;background:#32392f}
.hero-film-surface{position:absolute;inset:0}
.hero-film-first .hero-photo,.hero-film-first .hero-video{object-position:50% 50%}
.hero-film-first .hero-caption{height:84px;padding:0 var(--gutter);gap:24px;border-bottom:1px solid var(--line);flex-wrap:nowrap}
.hero-film-first .hero-caption h1{font-size:clamp(16px,1.5vw,22px);letter-spacing:-.035em;flex:initial}
.hero-discover{display:flex;align-items:center;gap:25px;font-size:12px;white-space:nowrap;min-height:44px}
.hero-discover span{font-size:21px;transition:transform 220ms var(--ease-out)}
.hero-film-first .hero-film-controls button:active{transform:scale(.97)}
@media(hover:hover) and (pointer:fine){.hero-discover:hover span{transform:translateY(4px)}}
@media(min-width:701px) and (max-width:1000px){.hero-film-first .hero-caption{gap:18px}.hero-film-first .hero-caption h1{max-width:250px}.hero-film-first .hero-film-controls{gap:14px}.hero-discover{gap:14px}}
@media(max-width:700px){
 .home .header-overlay{height:84px}
 .home .header-overlay .brand-logo{width:126px}
 .hero-film-first .hero-media{height:calc(100svh - 128px);min-height:380px;max-height:780px}
 .hero-film-first .hero-caption{height:128px;display:grid;grid-template-columns:1fr auto;align-content:center;gap:9px 14px;padding:15px var(--gutter)}
 .hero-film-first .hero-caption h1{font-size:18px;max-width:none;grid-column:1/-1}
 .hero-film-first .hero-film-controls{gap:14px}
 .hero-discover{font-size:11px;gap:12px}
}
@media(prefers-reduced-motion:no-preference){
 .hero-film-first .hero-media{animation:film-frame-arrival 1s var(--ease-out) both}
 .hero-film-surface{animation:film-surface-arrival 1.4s var(--ease-out) both}
 .home .header-overlay .brand,.home .header-overlay .desktop-nav,.home .header-overlay .menu-toggle{animation:film-detail-arrival .7s .12s var(--ease-out) both}
 .hero-film-first .hero-caption>*{animation:film-detail-arrival .7s .25s var(--ease-out) both}
 .hero-film-first .hero-caption>:nth-child(2){animation-delay:.32s}
 .hero-film-first .hero-caption>:nth-child(3){animation-delay:.39s}
}
@keyframes film-frame-arrival{from{clip-path:inset(10px 10px 10px 10px)}to{clip-path:inset(0px 0px 0px 0px)}}
@keyframes film-surface-arrival{from{transform:scale(1.025)}to{transform:scale(1)}}
@keyframes film-detail-arrival{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.hero-discover span{transition:none}}

/* Signature, film reveal, then a measured move into the navigation. */
.home .header-overlay .brand{animation:none}
.arrival-curtain{display:none;position:fixed;inset:0;background:#eeefec;z-index:55;pointer-events:none}
.logo-arriving .arrival-curtain{display:block}
.arrival-signature{--arrival-width:clamp(320px,52vw,720px);display:none;position:absolute;left:50%;top:calc(50svh - var(--arrival-width) * 221 / 1360);width:var(--arrival-width);margin-left:calc(var(--arrival-width) / -2);z-index:60;pointer-events:none;transform-origin:0 0}
.arrival-signature img{width:100%;height:auto}
.arrival-logo-white{position:absolute;inset:0;filter:brightness(0) invert(1);opacity:0}
.logo-arriving .arrival-signature{display:block}
.logo-arriving .home .header-overlay .brand-logo{opacity:0}
@media(max-width:700px){.arrival-signature{--arrival-width:min(82vw,360px)}}
@media(prefers-reduced-motion:reduce){.arrival-signature,.arrival-curtain{display:none!important}.logo-arriving .home .header-overlay .brand-logo{opacity:1}}

/* Fine, monochrome vector icons: identical on iOS, Android and desktop. */
.ui-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;vertical-align:middle;line-height:1}
.line-icon{display:block;width:1em;height:1em;flex-shrink:0}
.footer-arrow{display:inline-flex;align-items:center;justify-content:center}
.back-link{display:inline-flex;align-items:center;gap:10px}
.footer-bottom a[href="#top"]{display:inline-flex;align-items:center;gap:8px}
.image-action .line-icon{width:23px;height:23px}
.film-close .ui-icon,.lightbox-close .ui-icon{margin-left:7px}

/* Team portraits: keep faces in frame when the photo is cropped. */
.craft-image img{object-position:50% 8%}
