:root{--paper:#eeece5;--soft:#bfc6bc;--char:#121b17;--ink:#202d25;--g:clamp(22px,5.2vw,96px);--ease:cubic-bezier(.22,1,.36,1)}
*{box-sizing:border-box}html{scroll-behavior:auto}body{margin:0;background:var(--char);color:var(--paper);font:400 14px/1.6 'DM Sans',Arial,sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden}body.menu-open{overflow:hidden}button{font:inherit;color:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:2px solid #d8e0d0;outline-offset:5px}.skip-link{position:fixed;z-index:1000;top:-100px;left:10px;padding:12px 15px;color:#111;background:white}.skip-link:focus{top:10px}
.site-header{position:fixed;z-index:110;left:0;right:0;top:0;display:flex;align-items:flex-start;justify-content:space-between;padding:clamp(22px,3vw,38px) var(--g);gap:24px;pointer-events:none}.site-header>*{pointer-events:auto}.wordmark{font-size:clamp(13px,1.2vw,19px);font-weight:600;letter-spacing:-.035em;line-height:1.1}.wordmark small{display:block;font-size:8px;font-weight:400;letter-spacing:.15em;margin-top:11px;line-height:1.5;color:#dee3d9}.nav-actions{display:flex;align-items:center;gap:clamp(18px,3vw,50px);padding-top:5px}.availability{font-size:9px;font-weight:600;letter-spacing:.12em}.availability i{display:inline-block;width:6px;height:6px;border-radius:50%;background:#b4d1a5;margin-left:8px}.nav-actions button{border:0;background:none;font-size:10px;letter-spacing:.13em;text-transform:uppercase;display:flex;align-items:center;gap:12px;padding:0}.hamburger{display:flex;flex-direction:column;gap:7px;align-items:end;width:23px}.hamburger i{height:1px;background:currentColor;width:100%}.hamburger i:last-child{width:60%}
.story{height:720svh}.stage{height:100svh;min-height:550px;position:sticky;top:0;isolation:isolate;overflow:hidden;background:var(--char)}.hero{position:absolute;inset:0;z-index:1;overflow:hidden;background:#344a3e}.hero-photo{position:absolute;inset:-5%;width:110%;height:110%;object-fit:cover;object-position:54% 50%;will-change:transform;filter:contrast(1.035)}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,#0a130ec7,#10191429 80%),linear-gradient(0deg,#0a120ebe,transparent 48%,#06100c38)}.hero-content{position:absolute;left:var(--g);right:var(--g);bottom:clamp(135px,19vh,245px);z-index:2;max-width:1150px;will-change:transform,opacity}.micro-label{text-transform:uppercase;letter-spacing:.18em;font-size:10px;font-weight:600}.hero-content h1{font-size:clamp(75px,10vw,170px);letter-spacing:-.085em;line-height:.9;font-weight:500;margin:31px 0 20px}.hero-content h1 .line{display:block;overflow:hidden;padding:0 .06em .13em 0;margin-bottom:-.13em}.hero-content h1 .line span{display:block;will-change:transform}.hero-content p{max-width:440px;color:#e2e6dd;font-size:clamp(13px,1.1vw,18px);line-height:1.75}.hero-link{display:inline-flex;align-items:center;gap:65px;border-bottom:1px solid #f0eee7c0;font-size:11px;letter-spacing:.12em;padding:17px 0;margin-top:17px;font-weight:600}.hero-link span{font-size:18px}.hero-side{position:absolute;right:var(--g);top:47%;writing-mode:vertical-rl;font-size:9px;letter-spacing:.16em;font-weight:600;z-index:3}.hero-index{position:absolute;right:var(--g);bottom:106px;font-size:10px;letter-spacing:.16em;z-index:3}
.chapters{position:absolute;inset:0;pointer-events:none}.chapter{position:absolute;inset:0;overflow:hidden;background:#17221b;clip-path:inset(0 100% 0 0);will-change:clip-path}.panel-copy{position:absolute;inset:0 62% 0 0;z-index:2;background:#17211b;display:flex;flex-direction:column;justify-content:center;padding:clamp(120px,19vh,250px) 25px 80px var(--g);will-change:transform,opacity}.panel-copy .num{font-size:10px;font-weight:600;letter-spacing:.2em;color:#c6d0c3;margin-bottom:clamp(35px,11vh,120px)}.panel-copy h2{font-size:clamp(30px,3.1vw,52px);font-weight:500;letter-spacing:-.068em;line-height:1.05;margin:0 0 24px;max-width:360px}.panel-copy .category{font-size:10px;letter-spacing:.17em;text-transform:uppercase;color:#b4c5b9}.panel-copy p{font-size:12px;line-height:1.75;color:#aabbb0;max-width:280px;margin:24px 0}.panel-copy .project-cta{margin-top:10px;border:0;border-bottom:1px solid #b0c4b2;padding:0 0 10px;text-align:left;background:transparent;font-size:10px;letter-spacing:.13em;align-self:flex-start;max-width:190px;opacity:.75;cursor:default}
.panel-image{position:absolute;left:38%;top:0;width:62%;height:100%;overflow:hidden;z-index:3;background:#6c8170;will-change:left,width,height,top}.panel-image img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.10);will-change:transform}.panel-image:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#0b1510a6,transparent 47%),linear-gradient(90deg,#0c171226,transparent 58%);pointer-events:none}
.full-title{position:absolute;left:var(--g);right:var(--g);bottom:clamp(134px,18vh,235px);z-index:5;opacity:0;pointer-events:none;will-change:opacity,transform}.full-title .eyebrow{font-size:10px;font-weight:600;letter-spacing:.17em;margin-bottom:28px}.full-title h3{font-size:clamp(70px,9vw,150px);font-weight:500;letter-spacing:-.08em;line-height:.9;margin:0}.full-title .line{display:block;overflow:hidden;padding-right:.07em;padding-bottom:.11em;margin-bottom:-.11em}.full-title .line span{display:block;will-change:transform}.full-title p{font-size:clamp(13px,1.15vw,17px);color:#e0e5dc;margin-top:30px}
.ending{position:absolute;inset:0;z-index:8;clip-path:inset(0 100% 0 0);background:radial-gradient(ellipse at 70% 24%,#5c7564,#203328 60%,#101c16 96%);display:flex;align-items:center;padding:110px var(--g)}.ending-content{max-width:1200px}.ending .eyebrow{font-size:10px;letter-spacing:.19em}.ending h2{font-size:clamp(65px,9vw,145px);line-height:.91;font-weight:500;letter-spacing:-.08em;margin:36px 0}.ending p{font-size:clamp(13px,1.2vw,18px);max-width:530px;color:#dae5d8}.ending .note{display:block;font-size:9px;letter-spacing:.15em;color:#c5d8c6;margin-top:35px}.ending-index{position:absolute;bottom:110px;right:var(--g);font-size:10px;letter-spacing:.15em}
.hud{position:absolute;z-index:36;bottom:27px;left:var(--g);right:var(--g);display:flex;justify-content:space-between;gap:25px;align-items:center;pointer-events:none}.hud-hint{display:flex;gap:13px;align-items:center;font-size:10px;letter-spacing:.16em}.hud-hint i{width:40px;height:1px;background:#dbe5d9}.hud-controls{display:flex;align-items:center;gap:15px;pointer-events:auto}.progress{position:absolute;z-index:40;height:3px;left:0;right:0;bottom:0;background:#ffffff38}.progress span{display:block;background:#d5ded0;height:100%;transform-origin:left;transform:scaleX(0)}
.below{background:var(--paper);color:var(--ink);padding:clamp(90px,11vw,170px) var(--g) 45px}.micro-label.dark{color:#4e6755}.below-head{display:grid;grid-template-columns:1.2fr .7fr;gap:60px;align-items:end;padding-bottom:100px}.below-head h2{font-size:clamp(60px,7vw,124px);font-weight:500;letter-spacing:-.08em;line-height:.98;margin:25px 0 0}.below-head p{color:#627566;max-width:400px;font-size:clamp(13px,1.2vw,18px)}.service-list{margin-bottom:115px}.service-row{padding:25px 0;border-top:1px solid #9eada0;display:grid;grid-template-columns:80px 1fr auto;gap:20px;align-items:center}.service-row:last-child{border-bottom:1px solid #9eada0}.service-row .num{font-size:11px;color:#738678}.service-row .name{font-size:clamp(25px,3.5vw,55px);letter-spacing:-.056em}.service-row .arr{font-size:20px}.below-bottom{border-top:1px solid #afbbb0;padding-top:24px;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:10px;letter-spacing:.09em;color:#526956}.below-bottom a{text-decoration:underline;text-underline-offset:5px}
.menu{position:fixed;inset:0;z-index:190;background:#111d17;display:flex;flex-direction:column;justify-content:center;padding:100px var(--g) 45px;visibility:hidden;opacity:0;pointer-events:none;transition:visibility .3s,opacity .3s}.menu.open{visibility:visible;opacity:1;pointer-events:auto}.menu-close{position:absolute;top:29px;right:var(--g);border:0;background:none;font-size:11px;letter-spacing:.16em}.menu nav{display:flex;flex-direction:column;align-items:flex-start}.menu nav button,.menu nav a{font-size:clamp(64px,10vw,154px);font-weight:500;letter-spacing:-.078em;line-height:1.04;border:0;background:none;padding:0;text-align:left}.menu nav button:hover,.menu nav a:hover{color:#acbfae}.menu>div:last-child{margin-top:60px;font-size:10px;letter-spacing:.16em;color:#92a995}
@media(max-width:850px){.availability{display:none}.below-head{grid-template-columns:1fr;gap:25px}.panel-copy{inset:0 59% 0 0}.panel-image{left:41%;width:59%}.panel-copy h2{font-size:clamp(28px,4.1vw,40px)}}
@media(max-width:600px){:root{--g:23px}.site-header{padding-top:23px}.wordmark{font-size:11px}.wordmark small{font-size:7px}.hero-content{bottom:24vh}.hero-content h1{font-size:clamp(54px,13vw,82px);margin:26px 0 10px}.hero-content p{font-size:12px;max-width:300px}.hero-link{font-size:9px;margin-top:10px;gap:35px}.hero-side{display:none}.hero-index{bottom:100px}.panel-copy{inset:0 0 61% 0;justify-content:flex-end;padding:80px var(--g) 16px}.panel-copy .num{position:absolute;top:100px;left:var(--g);margin:0}.panel-copy h2{font-size:clamp(31px,7.5vw,44px);margin:0 0 8px}.panel-copy .category{font-size:9px}.panel-copy p,.panel-copy .project-cta{display:none}.panel-image{left:0;top:39%;width:100%;height:61%}.full-title{bottom:22vh}.full-title h3{font-size:clamp(54px,12.8vw,88px)}.hud{bottom:20px}.hud-hint{font-size:8px;gap:7px}.hud-hint i{width:24px}.hud-controls{gap:7px}.hud-controls span{min-width:44px;font-size:9px}.ending h2{font-size:clamp(61px,13vw,93px)}.below{padding-top:90px}.below-head{padding-bottom:56px}.below-head h2{font-size:clamp(54px,12.5vw,85px)}.service-row{grid-template-columns:30px 1fr auto}.service-row .name{font-size:clamp(21px,6vw,35px)}.service-list{margin-bottom:80px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.story{height:auto!important}.stage{height:auto;min-height:0;position:relative;overflow:visible}.hero,.chapter,.ending{position:relative;min-height:100svh;clip-path:none!important}.hero-content{opacity:1!important;transform:none!important}.hero-photo{transform:none!important}.panel-copy{opacity:1!important;transform:none!important}.panel-image{left:38%!important;top:0!important;width:62%!important;height:100%!important}.panel-image img{transform:none!important}.full-title,.hud,.progress{display:none}.ending{display:flex}*,*:before,*:after{transition:none!important;animation:none!important}}

/* Functional project viewer and Hero CTA */
.hero-link{background:transparent;border:0;border-bottom:1px solid #f0eee7c0;color:inherit;cursor:pointer}
.hero-link:hover{gap:78px}
.project-cta{cursor:pointer!important;color:inherit}
.project-cta:hover{opacity:1!important}
.project-detail{position:fixed;z-index:210;inset:0;background:#131c17;color:#f0eee8;visibility:hidden;opacity:0;pointer-events:none;transition:opacity .32s,visibility .32s;overflow:auto}
.project-detail.open{visibility:visible;opacity:1;pointer-events:auto}
.detail-close{position:fixed;right:var(--g);top:24px;z-index:220;background:#0d150fbf;border:1px solid #ffffff69;padding:13px 19px;font-size:10px;letter-spacing:.15em}
.detail-picture{height:78svh;min-height:340px;position:relative;overflow:hidden;background:#475b4c}
.detail-picture img{height:100%;width:100%;object-fit:cover}
.detail-picture:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#131c17bb,transparent 45%);pointer-events:none}
.detail-copy{padding:60px var(--g) 95px}
.detail-copy>span{font-size:11px;letter-spacing:.17em;color:#c0cdbf}
.detail-copy h2{font-size:clamp(48px,7vw,105px);line-height:.97;font-weight:500;letter-spacing:-.07em;max-width:950px;margin:22px 0}
.detail-copy p{max-width:520px;line-height:1.7;color:#acbfae}
.detail-copy button{background:none;border:0;border-bottom:1px solid #bcc9bb;padding:14px 0;margin-top:20px;font-size:10px;letter-spacing:.15em}
body.detail-open{overflow:hidden}
@media(max-width:600px){.detail-picture{height:65svh}.detail-copy{padding-top:35px}.detail-copy h2{font-size:clamp(43px,11vw,68px)}}


/* V37 — compact dash-only navigation. Story scroll and transitions unchanged. */
.hud-controls .slide-indicators{
 display:flex;align-items:center;justify-content:center;gap:3px;
 flex:0 0 auto;min-width:0;
}
.hud-controls .slide-indicator{
 position:relative;display:inline-flex;align-items:center;justify-content:center;
 flex:0 0 28px;width:28px;height:44px;padding:0;
 border:0;border-radius:0;background:transparent;box-shadow:none;
 color:inherit;cursor:pointer;appearance:none;
}
.hud-controls .slide-indicator::before{
 content:"";display:block;width:18px;height:3px;border-radius:3px;
 background:#eef3e9;opacity:.35;
 box-shadow:0 1px 5px rgba(7,16,10,.45);
 transition:width .32s ease,opacity .32s ease,background-color .32s ease;
}
.hud-controls .slide-indicator[aria-current="step"]::before{
 width:25px;background:#fff;opacity:1;
}
.hud-controls .slide-indicator:hover,
.hud-controls .slide-indicator:focus-visible{background:transparent;color:inherit}
.hud-controls .slide-indicator:hover::before,
.hud-controls .slide-indicator:focus-visible::before{opacity:.85}
.hud-controls .slide-indicator[aria-current="step"]:hover::before,
.hud-controls .slide-indicator[aria-current="step"]:focus-visible::before{opacity:1}
.hud-controls .slide-indicator:focus-visible{outline:2px solid #f5f8ee;outline-offset:0;border-radius:3px}
@media(max-width:600px){
 .hud{gap:8px}
 .hud-controls{gap:4px}
 .hud-controls .slide-indicators{gap:2px}
 .hud-controls .slide-indicator{flex-basis:23px;width:23px;height:44px}
 .hud-controls .slide-indicator::before{width:15px}
 .hud-controls .slide-indicator[aria-current="step"]::before{width:21px}
}
@media(max-width:360px){
 .hud-hint{font-size:7px;letter-spacing:.1em}
 .hud-hint i{width:16px}
 .hud-controls{gap:2px}
 .hud-controls .slide-indicators{gap:0}
 .hud-controls .slide-indicator{flex-basis:20px;width:20px}
 .hud-controls .slide-indicator::before{width:13px}
 .hud-controls .slide-indicator[aria-current="step"]::before{width:18px}
}
@media(prefers-reduced-motion:reduce){
 .hud-controls .slide-indicator::before{transition:none}
}


/* V38 — one editorial slide label for all five stops, aligned over dash navigation.
   Keeps V37 dash sizing, hit targets and cinematic scroll untouched. */
.hud-controls{position:relative}
.hud-controls .slide-step-label{
 position:absolute;
 right:0;
 bottom:calc(100% + 12px);
 display:block;
 min-width:0;
 white-space:nowrap;
 text-align:right;
 color:#f2f4ed;
 font-size:10px;
 line-height:1.35;
 font-weight:600;
 letter-spacing:.15em;
 text-transform:uppercase;
 pointer-events:none;
 text-shadow:0 1px 8px rgba(8,18,12,.4);
}
@media(max-width:600px){
 .hud-controls .slide-step-label{min-width:0;font-size:9px;letter-spacing:.13em}
}
