/* Image-led transitions and editorial movement. Scrolling stays native. */
html{scrollbar-gutter:stable}body.overlay-open{overflow:hidden}
.reading-progress{position:fixed;top:0;left:0;width:100%;height:2px;z-index:40;background:#b8c7ad;transform:scaleX(0);transform-origin:left;pointer-events:none}
.hero-image{bottom:-90px}.hero-image:after{z-index:4;pointer-events:none}.hero-image>img{position:relative;object-position:55% 65%}
.hero h1{font-size:clamp(88px,10vw,155px);letter-spacing:-.07em;line-height:1.08}.hero-content{padding-top:40px}.hero-bottom-copy{margin-top:24px}
.hero-scenes{position:absolute;right:6%;bottom:105px;display:flex;gap:24px;z-index:5}
.hero-scene{position:relative;color:#fff;background:transparent;border:0;border-top:1px solid #ffffff4d;padding:15px 8px 8px 0;min-width:110px;text-align:left;font-size:13px;transition:color .25s}
.hero-scene:before{content:'';position:absolute;top:-1px;left:0;width:100%;height:2px;background:#dce8d4;transform:scaleX(0);transform-origin:left;transition:transform .7s var(--ease-out)}
.hero-scene.active:before{transform:scaleX(1)}.hero-scene span{font-size:10px;color:#becbb4;margin-right:12px}.hero-scene.active{color:#dce8d4}
.motion-image-ghost{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;min-height:0!important;z-index:2;object-fit:cover;pointer-events:none}
.intro{padding-bottom:85px}.intro h2{font-size:clamp(38px,4.7vw,72px)}.intro h2 .muted{color:#9ba994}.intro-bottom p{font-size:17px}
.type-ribbon{overflow:hidden;padding:24px 0 50px;user-select:none;border-bottom:1px solid #ffffff1a}
.type-track{white-space:nowrap;width:max-content;font-size:clamp(90px,12vw,200px);line-height:1.05;font-weight:400;letter-spacing:-.055em;color:#dce2d5}
.type-track span{display:inline-block;color:#8b9b80;margin:0 .14em;font-size:.7em;vertical-align:12%}
.portfolio{position:relative}.portfolio .section-heading h2{max-width:800px}.project-image:after{content:'';position:absolute;inset:0;border:1px solid #ffffff20;pointer-events:none}.project-mark{transition:transform .4s var(--ease-out)}
.project-image img{transition:transform 1.1s var(--ease-out),filter .5s}
.gallery-cursor{position:fixed;top:-44px;left:-44px;width:88px;height:88px;border-radius:50%;background:#e4eadd;color:#1d281b;z-index:25;pointer-events:none;display:flex;flex-direction:column;align-items:center;justify-content:center;opacity:0;transition:opacity .2s;font-size:11px;line-height:1.4;box-shadow:0 0 0 8px #e4eadd15}
.gallery-cursor b{font-size:20px;font-weight:400}.gallery-cursor.is-visible{opacity:1}
.services{overflow:hidden}.services .section-heading h2{font-size:clamp(36px,4.65vw,70px)}.service-visual{position:sticky;top:35px}.service-visual>span{z-index:5}
.service-body,.faq details>p{overflow:hidden}.process-step h3{max-width:470px}.process-index{overflow:hidden}
.statement{height:760px}.statement>img{height:115%;top:-7.5%}.statement h2{max-width:1150px}.statement-content{max-width:100%}
.faq h2{line-height:1.2}.contact-copy>p{font-size:16px}.contact .section-label{font-size:11px}
/* Native dialog supplies focus containment. Visually this is a new full-screen scene. */
.project-dialog.scene{position:fixed;inset:0;margin:0;width:100%;max-width:none;height:100dvh;max-height:none;border:0;background:#1d261e;padding:0;overflow:auto;color:#e5ebdd;overscroll-behavior:contain}
.project-dialog.scene[open]{display:grid;grid-template-columns:59% 41%;animation:none}
.project-dialog.scene::backdrop{background:#101610;backdrop-filter:none}
.scene-top{position:absolute;left:0;right:0;top:0;z-index:6;padding:26px 35px;display:flex;align-items:center;justify-content:space-between;pointer-events:none}
.scene-top>span{font-size:11px;letter-spacing:.2em;color:#fff;text-shadow:0 1px 10px #000}
.scene .dialog-close{position:static;display:flex;align-items:center;gap:22px;width:auto;height:45px;padding:0 16px;font-size:12px;border:1px solid #ffffff40;pointer-events:auto;background:#1d261ed9;transition:background .2s}
.dialog-close span,.brief-close span{font-size:25px;font-weight:400}
.scene .dialog-gallery{height:100dvh;min-height:600px;position:sticky;top:0;display:block;overflow:hidden;background:#0e150f}
.scene .dialog-gallery>img{width:100%;height:100%;min-height:0;object-fit:cover;object-position:center 65%;display:block}.scene .dialog-gallery>img.image-contained{object-fit:contain}
.scene-photo-tools{position:absolute;z-index:4;bottom:26px;left:30px;right:30px;display:flex;justify-content:space-between;align-items:center;gap:20px}
.scene-photo-tools>button{border:1px solid #ffffff70;background:#132017b3;backdrop-filter:blur(14px);font-size:12px;padding:13px 18px;color:#fff}
.scene .gallery-navigation{background:#132017b3;backdrop-filter:blur(14px);padding:0;border:1px solid #ffffff70;gap:20px;color:#fff}.scene .gallery-navigation button{border:0;font-size:12px;padding:13px 18px}.scene .gallery-navigation[hidden]{display:none}
.scene .dialog-copy{padding:100px 11% 40px;align-self:center;width:100%;min-width:0}
.scene-position{display:flex;align-items:baseline;gap:20px;margin-bottom:36px;border-bottom:1px solid #ffffff25;padding-bottom:22px}
.scene-position>span:first-child{font-size:clamp(55px,7vw,110px);line-height:1;letter-spacing:-.08em;color:#9cad8d}.scene-position>span:last-child{font-size:12px;color:#a8b99d}
.scene .dialog-copy .eyebrow{font-size:10px;letter-spacing:.16em}.scene .dialog-copy h2{font-size:clamp(34px,4.2vw,66px);font-weight:400;letter-spacing:-.065em;line-height:1.08;margin:23px 0}
.scene .dialog-copy>p{font-size:16px;line-height:1.85;color:#bdc9b4;max-width:460px}.scene .materials{margin-top:26px;gap:6px}.scene .materials span{font-size:11px;padding:7px 11px}
.scene .dialog-copy .dialog-source{font-size:11px;margin:23px 0;color:#9caa93;line-height:1.7}.scene .dialog-copy .button{width:100%;padding:17px 20px;font-size:13px;min-height:54px;justify-content:center}
.scene-nav{margin-top:42px;padding-top:20px;border-top:1px solid #ffffff25;display:flex;justify-content:space-between;align-items:center;gap:15px}.scene-nav>span{font-size:9px;letter-spacing:.15em;color:#a9b69f}.scene-nav>div{display:flex;gap:8px}
.scene-nav button{border:1px solid #ffffff30;background:none;min-width:42px;height:42px;color:#bdc9b4;font-size:12px;transition:background .2s,color .2s}.scene-nav button[aria-pressed=true]{background:#d7e2ca;border-color:#d7e2ca;color:#202d18}.scene-status:empty{display:none}
/* Consultation shares the page form; fields and drafts survive closing. */
.brief-dialog{position:fixed;inset:0 0 0 auto;margin:0;width:min(650px,100%);height:100dvh;max-width:100%;max-height:none;padding:30px 55px 50px;border:0;border-left:1px solid #ffffff30;background:#202b21;color:#e9eee4;overflow:auto;overscroll-behavior:contain}
.brief-dialog::backdrop{background:#0b120edb;backdrop-filter:blur(8px)}
.brief-dialog-top{display:flex;justify-content:space-between;align-items:center;gap:15px}.brief-dialog-top>span{font-size:10px;letter-spacing:.15em}.brief-close{display:flex;gap:20px;align-items:center;min-height:44px;background:none;border:0;color:inherit;font-size:12px}
#brief-dialog-title{font-size:58px;line-height:1.1;font-weight:400;letter-spacing:-.06em;margin:48px 0 25px}.brief-dialog-intro{font-size:15px;color:#b6c6ac;max-width:430px;margin:0 0 38px;line-height:1.8}
.brief-dialog .brief{padding-top:0;border:0}.brief-dialog .brief-heading{display:none}.brief-dialog .input-label{font-size:14px}.brief-dialog .service-options span{font-size:13px}.brief-dialog .text-input{font-size:16px}.brief-dialog .brief-submit{margin-top:5px}.brief-dialog .form-note{font-size:12px}
@media(hover:hover) and (pointer:fine){.js-motion .project-image{cursor:none}.js-motion .project-image .project-open{display:none}.project:hover .project-image img{transform:scale(1.06)}.project:hover .project-mark{transform:rotate(90deg)}.scene-nav button:hover{background:#d7e2ca;color:#202d18}.scene .dialog-close:hover{background:#40513a}.hero-scene:hover:before{transform:scaleX(1)}.button{transition:transform .25s var(--ease-out),background .2s,color .2s}}
@media(max-width:1100px){.hero-scenes{right:5%;gap:15px}.hero-scene{min-width:92px;font-size:12px}.hero-scene span{margin-right:8px}.project-dialog.scene[open]{grid-template-columns:55% 45%}.scene .dialog-copy{padding:95px 9% 30px}.scene .dialog-copy h2{font-size:40px}.scene-position{margin-bottom:25px}.scene-position>span:first-child{font-size:66px}.scene .dialog-copy>p{font-size:15px}.scene-nav{display:block;margin-top:28px}.scene-nav>div{margin-top:12px}.scene-photo-tools{left:20px;right:20px;gap:8px;flex-wrap:wrap}.scene .gallery-navigation{gap:8px}.scene-photo-tools>button{padding:12px}}
@media(max-width:767px){
 .hero{min-height:800px}.hero h1{font-size:clamp(56px,15.5vw,104px);line-height:1.1}.hero-content{padding-top:80px}.hero-scenes{left:6%;right:6%;bottom:95px;gap:16px}.hero-scene{flex:1;min-width:0;font-size:12px;padding-top:11px}.hero-scene span{font-size:9px}.hero-bottom-copy{margin-top:28px}.hero-bottom-copy p{font-size:15px;max-width:310px}
 .intro{padding-bottom:45px}.intro h2{font-size:clamp(32px,8vw,56px)}.intro-bottom p{font-size:16px}.type-ribbon{padding:20px 0 35px}.type-track{font-size:100px}.services .section-heading h2{font-size:clamp(31px,7.7vw,54px)}.statement{height:560px}.statement h2{font-size:clamp(34px,8.7vw,58px)}
 .project-dialog.scene[open]{display:block}.scene-top{position:fixed;padding:15px 18px}.scene-top>span{font-size:9px}.scene .dialog-close{height:42px;font-size:11px;padding:0 11px;gap:13px}
 .scene .dialog-gallery{height:59svh;min-height:360px;max-height:650px;position:relative}.scene .dialog-gallery>img{height:100%;object-position:center 67%}.scene .dialog-copy{padding:36px 7% 40px}.scene-position{position:absolute;right:7%;margin:0;border:0;padding:0;gap:10px}.scene-position>span:first-child{font-size:42px;opacity:.7}.scene-position>span:last-child{font-size:10px}
 .scene .dialog-copy>.eyebrow{display:block;padding-right:100px;min-height:40px;max-width:100%;font-size:9px}.scene .dialog-copy h2{font-size:42px;margin:18px 0}.scene .dialog-copy>p{font-size:16px}.scene .materials{margin-top:23px}
 .scene-photo-tools{bottom:20px;left:20px;right:20px}.scene-photo-tools>button,.scene .gallery-navigation button{font-size:11px;padding:12px}.scene .gallery-navigation{font-size:11px}.scene-nav{display:flex;margin-top:32px}.scene-nav>div{margin:0;gap:5px}.scene-nav button{min-width:38px;height:42px}
 .brief-dialog{padding:20px 7% 40px}.brief-dialog-top>span{font-size:9px}#brief-dialog-title{font-size:48px;margin-top:35px}.brief-dialog-intro{font-size:15px;margin-bottom:30px}.brief-dialog .service-options{gap:6px}.brief-dialog .service-options span{font-size:12px;padding:10px 12px}.gallery-cursor{display:none}
}
@media(max-width:375px){.hero h1{font-size:15.5vw}.hero-scenes{gap:9px}.hero-scene{font-size:11px}.scene .dialog-copy h2{font-size:37px}.scene-nav{display:block}.scene-nav>div{margin-top:12px}#brief-dialog-title{font-size:42px}.brief-dialog .service-options span{font-size:11px;padding:10px}}
@media(prefers-reduced-motion:reduce){.hero-image,.hero h1,.type-track,.statement>img{transform:none!important}.hero-image{bottom:0}.gallery-cursor{display:none}.project-image{cursor:pointer!important}.project-image .project-open{display:flex!important}.reading-progress{display:none}.motion-image-ghost{display:none}.scene,.brief-dialog{animation:none!important}}
.scene-top{position:fixed}
