/* The existing green, gold and editorial typography, with a shorter request-led journey. */
[hidden]{display:none!important}
html{scroll-behavior:smooth}
body{--scroll-progress:0%;overflow-x:hidden}
body::before{content:"";position:fixed;z-index:100;inset:0 0 auto 0;height:3px;width:var(--scroll-progress);background:var(--gold);transform-origin:left;pointer-events:none;box-shadow:0 0 18px rgba(214,183,121,.5)}
.header{transition:background .35s ease,box-shadow .35s ease,transform .35s ease}.header.is-scrolled{background:rgba(248,247,243,.93);box-shadow:0 8px 30px rgba(16,45,37,.08);backdrop-filter:blur(14px)}
.hero,.collection-hero,.request-intro{position:relative;isolation:isolate}.hero::after,.collection-hero::after,.request-intro::after{content:"";position:absolute;z-index:-1;inset:0;background:radial-gradient(circle at 78% 20%,rgba(214,183,121,.14),transparent 32%),radial-gradient(circle at 18% 90%,rgba(255,255,255,.06),transparent 26%);pointer-events:none}
.hero-copy>*{animation:rise-in .8s cubic-bezier(.2,.7,.2,1) both}.hero-copy .hero-description{animation-delay:.08s}.hero-copy .button{animation-delay:.14s}.hero-copy .quiet-link{animation-delay:.2s}.hero-copy .hero-foot{animation-delay:.28s}.hero-image{animation:hero-image-in 1.1s cubic-bezier(.2,.7,.2,1) both}.hero-image img{will-change:transform;animation:hero-breathe 12s ease-in-out infinite alternate}
.button{position:relative;overflow:hidden;transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s ease,background .25s ease}.button::after{content:"";position:absolute;inset:-80% auto -80% -35%;width:22%;background:rgba(255,255,255,.34);transform:translateX(-180%) rotate(18deg);transition:transform .7s ease}.button:hover{transform:translateY(-3px);box-shadow:0 12px 26px rgba(16,45,37,.18)}.button:hover::after{transform:translateX(700%) rotate(18deg)}.button span{transition:transform .35s ease}.button:hover span{transform:translateX(4px)}
.quiet-link{transition:color .25s ease,border-color .25s ease}.quiet-link:hover{color:var(--gold);border-color:var(--gold)}
.category-strip a{position:relative;transition:background .3s ease,color .3s ease}.category-strip a::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:2px;background:var(--gold);transition:right .45s cubic-bezier(.2,.7,.2,1)}.category-strip a:hover{background:#f0f0e8}.category-strip a:hover::after{right:0}.category-strip a:first-child::after{left:0}
.studio-card,.gallery-card,.process-grid li{transition:transform .45s cubic-bezier(.2,.7,.2,1),opacity .6s ease}.studio-card:hover{transform:translateY(-8px)}.studio-card figure::after{content:"";position:absolute;inset:0;border:1px solid rgba(255,255,255,.35);opacity:0;transform:scale(.96);transition:opacity .45s ease,transform .45s ease;pointer-events:none}.studio-card:hover figure::after{opacity:1;transform:scale(1)}.studio-card img{transition:transform .75s cubic-bezier(.2,.7,.2,1),filter .75s ease}.studio-card:hover img{filter:saturate(1.08) contrast(1.03)}
.process-grid li{position:relative}.process-grid li::after{content:"";position:absolute;left:0;top:-2px;width:0;height:3px;background:var(--gold);transition:width .6s cubic-bezier(.2,.7,.2,1)}.process-grid li:hover{transform:translateY(-6px)}.process-grid li:hover::after{width:100%}
.gallery-open{transition:box-shadow .45s ease,transform .45s cubic-bezier(.2,.7,.2,1)}.gallery-open:hover{box-shadow:0 18px 45px rgba(16,45,37,.18);transform:translateY(-5px)}.gallery-open>img{transition:transform .9s cubic-bezier(.2,.7,.2,1),filter .7s ease}.gallery-open:hover>img{filter:saturate(1.08) contrast(1.04)}.concept-label,.enlarge-mark{transition:transform .35s ease,background .35s ease}.gallery-open:hover .concept-label{transform:translateY(-4px)}.gallery-open:hover .enlarge-mark{transform:rotate(8deg) scale(1.08);background:var(--gold)}
.collection-project,.gallery-project{position:relative;overflow:hidden}.gallery-project::after{content:"↗";position:absolute;right:5%;bottom:-.2em;font-family:var(--serif);font-size:clamp(120px,18vw,280px);line-height:1;color:rgba(23,60,49,.08);pointer-events:none;transition:transform .7s ease}.gallery-project:hover::after{transform:translate(-16px,-12px) rotate(-8deg)}
.request-intro h1 em{display:inline-block;animation:gold-breathe 5s ease-in-out infinite alternate}.request-panel{animation:panel-in .8s .12s cubic-bezier(.2,.7,.2,1) both}.form-progress li{transition:color .3s ease,border-color .3s ease}.form-progress [aria-current]{animation:progress-pulse 2.8s ease-in-out infinite}.request-panel input,.request-panel textarea,.request-panel select{transition:border-color .25s ease,box-shadow .25s ease,transform .25s ease}.request-panel input:focus,.request-panel textarea:focus,.request-panel select:focus{transform:translateY(-1px);box-shadow:0 7px 18px rgba(16,45,37,.08)}
.reveal{opacity:0;transform:translateY(30px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}.reveal.is-visible{opacity:1;transform:none}.reveal-delay-1{transition-delay:.08s}.reveal-delay-2{transition-delay:.16s}.reveal-delay-3{transition-delay:.24s}
@keyframes rise-in{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes hero-image-in{from{opacity:0;clip-path:inset(0 0 0 12%)}to{opacity:1;clip-path:inset(0)}}@keyframes hero-breathe{from{transform:scale(1.015) translate3d(0,0,0)}to{transform:scale(1.045) translate3d(-.8%,.7%,0)}}@keyframes gold-breathe{from{color:var(--gold)}to{color:#ead3a3}}@keyframes panel-in{from{opacity:0;transform:translateX(24px)}to{opacity:1;transform:none}}@keyframes progress-pulse{0%,100%{box-shadow:0 2px 0 transparent}50%{box-shadow:0 2px 0 rgba(214,183,121,.35)}}
.header{height:94px}.header nav{gap:30px}.header .nav-cta{background:var(--green);color:var(--paper);border:0;padding:12px 18px}.header .nav-cta:hover{background:var(--deep)}
.home-hero{min-height:0;grid-template-columns:48% 52%}.home-hero .hero-copy{padding:52px 11.45% 38px}.home-hero h1{font-size:clamp(58px,5.8vw,86px)}.home-hero .hero-description{max-width:460px;font-size:17px;margin-bottom:26px}.home-hero .hero-foot{font-size:12px;padding-top:30px}.quiet-link{font-size:14px;margin-top:18px;border-bottom:1px solid #8b9d91;color:#e0e7df}.home-hero .hero-image{background:#686c6d;display:flex;align-items:center}.home-hero .hero-image img{height:auto;max-height:610px;object-fit:contain;object-position:center;padding:22px 12px 52px}.home-hero .hero-image figcaption{font-size:12px;letter-spacing:.08em;padding:30px 24px 18px;flex-wrap:wrap;gap:5px 20px}.home-hero .hero-image figcaption span:last-child{letter-spacing:0}
.category-strip a{padding-top:19px;padding-bottom:19px}.section.selected-work{padding-top:64px;padding-bottom:64px}.selected-work .section-heading{margin-bottom:30px;gap:40px}.selected-work h2{font-size:clamp(40px,4vw,58px)}.selected-work .section-heading>p{font-size:16px;max-width:440px}.studio-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}.studio-card figure{position:relative;aspect-ratio:1.25;overflow:hidden;background:#ddd}.studio-card img{height:100%;object-fit:cover;transition:transform .4s}.studio-card:hover img{transform:scale(1.025)}.studio-card figcaption{position:absolute;bottom:12px;left:12px;padding:4px 8px;color:white;background:rgba(16,45,37,.88);font-size:11px;letter-spacing:.05em}.studio-card>div{padding-top:19px}.studio-card h3{font-family:var(--serif);font-size:30px;margin-bottom:8px;letter-spacing:-.01em}.studio-card p{font-size:14px;color:var(--muted);display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:12px}.studio-card p span{color:var(--ink)}
.compact-process{padding-top:58px;padding-bottom:46px;background:var(--green);color:var(--paper)}.compact-process .eyebrow{color:var(--gold)}.compact-process h2{font-size:clamp(40px,4vw,58px)}.compact-process em{color:var(--gold)}.process-grid{list-style:none;padding:0;margin:36px 0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:30px}.process-grid li{border-top:1px solid #698073;padding-top:17px}.process-grid li>span{font-family:var(--serif);font-size:30px;color:var(--gold)}.process-grid h3{font-size:20px;margin:12px 0}.process-grid p{color:#d0ddd4;font-size:15px;max-width:280px}.process-action{border-top:1px solid #698073;padding-top:28px;display:flex;justify-content:space-between;align-items:center;gap:20px}.process-action p{color:#d0ddd4;font-size:17px}.process-action strong{color:var(--paper);font-weight:500}.button{border:0;cursor:pointer;text-align:center;justify-content:center}.button:disabled{cursor:not-allowed;opacity:.6}
.collection-summary .button{margin-top:24px}.collection-intro{padding-top:28px;padding-bottom:40px}.collection-intro h1{font-size:clamp(48px,5vw,74px)}.gallery-heading>p{font-size:16px}.gallery-card figcaption p{font-size:14px}.gallery-open{aspect-ratio:1.15;background:#666b6c}.gallery-open>img{object-fit:contain}.single-study{max-width:1000px;margin:auto;grid-template-columns:1fr}.single-study .gallery-open{aspect-ratio:1.36;background:#101414}.gallery-section{padding-top:54px;padding-bottom:60px}.gallery-project{padding-top:44px;padding-bottom:44px}.gallery-project h2{font-size:48px}.viewer-caption .eyebrow{font-size:12px}.viewer-caption #viewer-detail{font-size:14px}.viewer-close{min-height:44px}.collection-switcher{font-size:15px}.gallery-open:focus-visible{outline-offset:5px}
.request-layout{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);min-height:calc(100vh - 220px)}.request-intro{padding:32px 12% 60px;background:var(--green);color:var(--paper)}.request-intro .back-link{color:#d0ddd4;display:inline-block;margin-bottom:40px;font-size:14px}.request-intro .eyebrow{color:var(--gold)}.request-intro h1{font-size:clamp(52px,5vw,74px)}.request-intro>p:not(.eyebrow){max-width:390px;color:#d0ddd4}.request-promise{display:flex;flex-direction:column;margin-top:38px;border-top:1px solid #698073;padding-top:18px;gap:12px;color:var(--gold);font-size:12px;letter-spacing:.08em}.request-panel{padding:38px clamp(24px,5vw,80px) 55px;min-width:0}.form-progress{list-style:none;display:flex;padding:0;margin:0 0 28px;gap:18px;justify-content:space-between;font-size:14px;color:var(--muted);border-bottom:1px solid var(--line)}.form-progress li{padding-bottom:12px}.form-progress [aria-current]{color:var(--green);border-bottom:3px solid var(--gold);font-weight:700}.preview-notice{font-size:14px;background:#eeeee6;border-left:3px solid #a68a50;padding:12px 16px;margin-bottom:28px;color:#4a544b}.request-panel fieldset{border:0;margin:0;padding:0;min-width:0}.request-panel legend{font-family:var(--serif);font-size:42px;line-height:1.15;padding:0;margin-bottom:14px}.step-help{color:var(--muted);margin-bottom:23px;font-size:16px}.request-panel label{display:block;font-size:14px;font-weight:600;margin:20px 0 8px}.request-panel label span{font-weight:400;color:var(--muted)}.request-panel input,.request-panel textarea,.request-panel select{font:inherit;font-size:16px;line-height:1.5;color:var(--ink);background:#fff;border:1px solid #a4b0a6;border-radius:0;padding:12px 14px;width:100%;max-width:100%;min-width:0;min-height:48px}.request-panel textarea{resize:vertical}.request-panel input:focus-visible,.request-panel textarea:focus-visible,.request-panel select:focus-visible{outline:2px solid #997323;outline-offset:2px}.request-panel ::placeholder{color:#667368;opacity:1}.field-help{font-size:14px;color:var(--muted);margin-top:8px}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.form-actions{display:flex;justify-content:space-between;gap:20px;margin-top:30px;align-items:center}.form-actions .button{margin-left:auto}.back-button{border:0;background:none;font:inherit;font-size:14px;color:var(--ink);padding:12px 0;cursor:pointer}.request-panel h2{font-size:42px;margin-bottom:14px}#brief-review{margin:0 0 24px}#brief-review div{padding:12px 0;border-bottom:1px solid var(--line)}#brief-review dt{font-size:13px;color:var(--muted);margin-bottom:4px}#brief-review dd{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;font-size:16px}.delivery-note{padding:18px;background:#eeeee6;margin-bottom:22px;font-size:15px}.delivery-note strong{font-weight:600}.delivery-note p{margin-top:7px}#download-status{font-size:14px;color:var(--muted);margin-top:15px}
@media(min-width:1600px){.home-hero .hero-copy{padding-left:max(11.45%,calc((100vw - 1500px)/2));padding-top:64px}.home-hero .hero-image img{max-height:660px}}
@media(max-width:980px){.header{height:90px}.header nav{top:90px}.header .nav-cta{align-self:flex-start}.home-hero .hero-copy{padding:40px 9% 32px}.home-hero h1{font-size:60px}.home-hero .hero-description{font-size:16px}.home-hero .hero-image img{padding-left:4px;padding-right:4px}.studio-card h3{font-size:26px}.process-grid{grid-template-columns:repeat(2,1fr);gap:25px}.request-layout{grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr)}.request-intro{padding-left:9%;padding-right:9%}.request-intro h1{font-size:52px}.request-panel{padding-left:28px;padding-right:28px}.form-progress{gap:12px;font-size:13px}}
@media(max-width:760px){.home-hero .hero-copy{padding:38px 6% 30px}.home-hero h1{font-size:clamp(52px,12vw,72px);margin-bottom:22px}.home-hero .hero-description{max-width:530px}.home-hero .hero-image{height:auto;min-height:0}.home-hero .hero-image img{height:auto;max-height:400px;padding:16px 10px 46px}.home-hero .hero-image figcaption{font-size:11px;padding:25px 6% 13px}.home-hero .hero-foot{margin-top:0;padding-top:23px;font-size:11px}.category-strip{grid-template-columns:1fr}.category-strip a,.category-strip a:first-child{padding:12px 0}.category-strip span{font-size:15px}.section.selected-work{padding:42px 6%}.selected-work .section-heading{gap:18px;margin-bottom:26px}.selected-work h2{font-size:42px}.studio-grid{grid-template-columns:1fr;gap:30px}.studio-card figure{aspect-ratio:1.5}.studio-card h3{font-size:30px}.studio-card>div{padding-top:14px}.compact-process{padding:42px 6%}.compact-process h2{font-size:42px}.process-grid{gap:25px 22px;margin:28px 0}.process-grid h3{font-size:18px}.process-grid p{font-size:14px}.process-action{align-items:flex-start;flex-direction:column}.request-layout{grid-template-columns:1fr}.request-intro{padding:22px 6% 30px}.request-intro .back-link{margin-bottom:24px}.request-intro h1{font-size:46px;margin-bottom:18px}.request-intro h1 br{display:none}.request-intro h1 br::after{content:' '}.request-intro h1 em{display:block}.request-intro>p:not(.eyebrow){max-width:530px}.request-promise{display:none}.request-panel{padding:28px 6% 42px}.form-progress{font-size:12px;gap:8px}.preview-notice{font-size:13px}.request-panel legend,.request-panel h2{font-size:38px}.field-grid{gap:0 14px}.form-actions{gap:14px}.form-actions .button{gap:15px;padding:13px 16px}.gallery-section{padding:38px 6%}.gallery-open{aspect-ratio:1.1}.gallery-project h2{font-size:42px}.collection-intro{padding-top:22px;padding-bottom:30px}.collection-intro h1{font-size:48px}.gallery-project .button{margin-top:22px}footer{padding:30px 6%;gap:16px}footer>p,footer>span{font-size:13px}}
@media(max-width:380px){.field-grid{grid-template-columns:1fr}.process-grid{grid-template-columns:1fr}.form-progress span{display:block}.home-hero h1{font-size:50px}.request-intro h1{font-size:40px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-copy>*,.hero-image,.request-panel,.request-intro h1 em{animation:none!important}.hero-image img{animation:none!important}.reveal{opacity:1;transform:none;transition:none}.button,.studio-card,.gallery-open,.process-grid li{transition:none}.button::after{display:none}}

/* Full-scale motion layer: the page should feel like one continuous piece. */
.has-js .hero-copy{animation:hero-copy-in 1.15s cubic-bezier(.16,1,.3,1) both}
.has-js .hero-image{animation:hero-image-in 1.35s .08s cubic-bezier(.16,1,.3,1) both}
.has-js .category-strip{animation:strip-in .9s .42s cubic-bezier(.16,1,.3,1) both}
.hero-image{overflow:hidden}.hero-image::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.12) 49%,transparent 62%);transform:translateX(-120%);animation:light-sweep 2.2s 1s ease-out forwards;pointer-events:none}
.hero-image img{animation:hero-breathe 12s ease-in-out infinite alternate,hero-image-scale 1.6s .15s cubic-bezier(.16,1,.3,1) both}
.reveal{opacity:0;transform:translateY(60px) scale(.965);filter:blur(7px);clip-path:inset(0 0 12% 0);transition:opacity 1s cubic-bezier(.16,1,.3,1),transform 1s cubic-bezier(.16,1,.3,1),filter 1s ease,clip-path 1s cubic-bezier(.16,1,.3,1)}
.reveal.is-visible{opacity:1;transform:none;filter:none;clip-path:inset(0)}
.studio-card.reveal.is-visible:nth-child(1){transition-delay:.04s}.studio-card.reveal.is-visible:nth-child(2){transition-delay:.14s}.studio-card.reveal.is-visible:nth-child(3){transition-delay:.24s}
.process-grid li.reveal.is-visible:nth-child(1){transition-delay:.04s}.process-grid li.reveal.is-visible:nth-child(2){transition-delay:.16s}.process-grid li.reveal.is-visible:nth-child(3){transition-delay:.28s}.process-grid li.reveal.is-visible:nth-child(4){transition-delay:.4s}
.selected-work{position:relative;overflow:hidden}.compact-process{position:relative;overflow:hidden}.compact-process>*{position:relative;z-index:1}
.category-strip a{transition:transform .6s cubic-bezier(.16,1,.3,1),background .4s ease,color .4s ease}.category-strip a:hover{transform:translateX(8px)}
.studio-card img,.gallery-open>img{transform:scale(1.01);animation:image-settle 1.4s .2s cubic-bezier(.16,1,.3,1) both}
.request-intro{overflow:hidden}.request-intro>*{position:relative;z-index:1}
.has-js .section-heading h2,.has-js .process-heading h2,.has-js .gallery-heading h1{overflow:hidden}.has-js .section-heading h2 em,.has-js .process-heading h2 em,.has-js .gallery-heading h1 em{display:inline-block;animation:text-glide 1s .2s cubic-bezier(.16,1,.3,1) both}
.has-js .studio-card figure,.has-js .gallery-open{overflow:hidden}.has-js .studio-card img,.has-js .gallery-open>img{clip-path:inset(0 0 100% 0);animation:image-reveal 1.1s .15s cubic-bezier(.77,0,.18,1) forwards}.has-js .studio-card:nth-child(2) img{animation-delay:.25s}.has-js .studio-card:nth-child(3) img{animation-delay:.35s}
.studio-card,.gallery-open{transform-style:preserve-3d;perspective:1200px;will-change:transform}.studio-card img,.gallery-open>img{transform-style:preserve-3d;will-change:transform}.image-viewer .viewer-image{transform-style:preserve-3d;will-change:transform;transition:transform .35s cubic-bezier(.16,1,.3,1),filter .35s ease}.image-viewer .viewer-image:hover{filter:saturate(1.08) contrast(1.04)}
.hero-foot{animation:tracking-in 1.2s .55s cubic-bezier(.16,1,.3,1) both}.hero-image figcaption{animation:caption-rise 1s .78s cubic-bezier(.16,1,.3,1) both}.category-strip a span{display:inline-block}.category-strip a:hover span{animation:label-nudge .5s cubic-bezier(.16,1,.3,1)}
@keyframes hero-copy-in{from{opacity:0;transform:translate3d(-42px,0,0);filter:blur(8px)}to{opacity:1;transform:none;filter:none}}
@keyframes hero-image-scale{from{opacity:.2;transform:scale(1.15)}to{opacity:1;transform:scale(1.015)}}
@keyframes strip-in{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
@keyframes frame-in{to{opacity:1;transform:scale(1)}}
@keyframes light-sweep{to{transform:translateX(120%)}}
@keyframes image-settle{from{opacity:.25;transform:scale(1.09)}to{opacity:1;transform:scale(1.01)}}
@keyframes text-glide{from{opacity:0;transform:translateY(105%) skewY(4deg)}to{opacity:1;transform:none}}
@keyframes image-reveal{from{opacity:.45;clip-path:inset(0 0 100% 0);transform:scale(1.08)}to{opacity:1;clip-path:inset(0);transform:scale(1.01)}}
@keyframes tracking-in{from{opacity:0;letter-spacing:.28em;transform:translateY(10px)}to{opacity:1;letter-spacing:.08em;transform:none}}
@keyframes caption-rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes label-nudge{50%{transform:translateX(7px)}100%{transform:none}}
@media(prefers-reduced-motion:reduce){.has-js .hero-copy,.has-js .hero-image,.has-js .category-strip,.hero-image::after,.hero-image img,.studio-card img,.gallery-open>img,.has-js .section-heading h2 em,.has-js .process-heading h2 em,.has-js .gallery-heading h1 em,.hero-foot,.hero-image figcaption{animation:none!important}.reveal{filter:none;clip-path:none}.studio-card,.gallery-open,.image-viewer .viewer-image{transform:none!important}}
