/* Motion direction: a cinematic opening, then a clear editorial reading pace. */
:root{--motion-ui:180ms;--motion-reveal:750ms}
html{scroll-behavior:auto}
.header{transition:box-shadow var(--motion-ui) ease}
.header.is-compact{box-shadow:0 1px 0 #102a4315,0 8px 30px #071b3010}
.brand-home{transform-origin:left center;transition:transform 250ms var(--reveal-ease)}
.header.is-compact .brand-home{transform:scale(.94)}
.header nav>a:not(.button){position:relative;text-decoration:none}
.header nav>a:not(.button)::after{content:'';height:1px;background:currentColor;position:absolute;bottom:-6px;left:0;right:0;transform:scaleX(0);transform-origin:left;transition:transform var(--motion-ui) var(--reveal-ease)}
.hero-scene{position:relative;min-height:135svh}
.hero{position:sticky;top:108px;min-height:calc(100svh - 108px);height:calc(100svh - 108px);padding:clamp(48px,7vh,100px) 0 110px;display:flex;align-items:center;overflow:hidden;background:#081d30}
.hero-photo,.hero-film{z-index:0;pointer-events:none}
.hero-film{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:1;opacity:0;transition:opacity 1200ms var(--reveal-ease)}
.hero.film-ready .hero-film{opacity:1}
.hero.film-ready .hero-photo{opacity:0}
.hero-shade{z-index:1;pointer-events:none;background:linear-gradient(90deg,rgba(7,21,36,.88),rgba(7,21,36,.58) 48%,rgba(7,21,36,.16)),linear-gradient(0deg,rgba(7,21,36,.72),transparent 45%)}
.hero-copy{z-index:2;width:calc(100% - 96px);pointer-events:auto}
.hero h1{font-size:clamp(46px,5.7vw,88px);line-height:1.03;letter-spacing:-.045em;max-width:16ch}
.headline-line{display:block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}
.headline-line>span{display:block}
.hero .headline-line.amber{color:var(--amber)}
.hero-bottom{margin-top:32px;display:flex;justify-content:space-between;gap:48px;max-width:none;align-items:end}
.hero .lead{max-width:46ch;margin:0;font-size:17px;line-height:1.6}
.hero .text-link{flex-shrink:0;padding-bottom:8px}
.hero-controls,.photo-credit,.hero-scroll{z-index:3}
.hero-controls{bottom:36px;right:48px;display:flex;align-items:center;gap:20px}
.hero-controls button{min-height:44px;padding:10px 16px;border:1px solid #ffffff66;background:#071b3026;border-radius:4px;color:white;font-size:12px;transition:background var(--motion-ui) ease}
.film-label{font-size:10px;letter-spacing:.14em;color:#d8e3ec}
#film-toggle{display:none}
.photo-credit{bottom:14px;left:48px;font-size:9px;opacity:.7;max-width:65ch}
.hero-scroll{position:absolute;bottom:48px;left:48px;display:flex;gap:18px;align-items:center;font-size:11px;text-transform:uppercase;letter-spacing:.12em;text-decoration:none}
.scroll-track{width:70px;height:1px;background:#ffffff40;overflow:hidden}
.scroll-track i{display:block;width:100%;height:100%;background:var(--amber);transform-origin:left;transform:scaleX(.15)}
.manifesto{position:relative;z-index:4;background:var(--warm);color:var(--navy);padding-block:clamp(88px,11vw,168px)}
.manifesto h2{max-width:20ch;letter-spacing:-.045em;line-height:1.09}
.manifesto .eyebrow{color:var(--secondary)}
.manifesto .large-arrow{color:var(--amber)}
.manifesto-bottom{margin-top:48px}
.line-reveal{display:block;overflow:hidden;padding-bottom:.1em;margin-bottom:-.1em}
.line-reveal>span{display:block;transition:transform var(--motion-reveal) var(--reveal-ease),opacity var(--motion-reveal) var(--reveal-ease);transition-delay:var(--line-delay,0ms)}
.line-pending .line-reveal>span{transform:translateY(108%);opacity:0}
.journey li:nth-child(2){transition-delay:60ms}.journey li:nth-child(3){transition-delay:120ms}
.service-visual{top:145px;max-height:650px;height:60vh}
.service-progress{position:absolute;inset:auto 0 -60px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.service-progress a{position:relative;padding:14px 0 18px;text-decoration:none;font-size:11px;letter-spacing:.025em;color:#abbac8;min-height:48px}
.service-progress a>span{font-size:10px;margin-right:6px;opacity:.7}
.service-progress a::after,.service-progress i{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:#ffffff30}
.service-progress i{background:var(--amber);z-index:1;transform:scaleX(0);transform-origin:left}
.service-progress a[aria-current="step"]{color:var(--amber)}
.service-chapters article{opacity:.45;transition:opacity 400ms var(--reveal-ease);scroll-margin-top:120px}
.service-chapters article.is-active{opacity:1}
.service-chapters h3{letter-spacing:-.03em}
.editorial-image{isolation:isolate}
.canvas-panels img{transition:transform 750ms var(--reveal-ease)}
.button span,.text-link span,.footer a span{display:inline-block;transition:transform var(--motion-ui) var(--reveal-ease)}
@media(hover:hover) and (pointer:fine){
 .header nav>a:not(.button):hover::after,.header nav>a:not(.button):focus-visible::after{transform:scaleX(1)}
 .button:hover span,.text-link:hover span,.footer a:hover span{transform:translate(3px,-3px)}
 .hero-controls button:hover{background:#ffffff20}
 .canvas-panels article:hover img{transform:scale(1.025)}
}
@media(max-width:1199px){.hero-copy{width:calc(100% - 64px)}.hero-scroll,.photo-credit{left:32px}.hero-controls{right:32px}.hero h1{font-size:clamp(44px,6vw,70px)}}
@media(max-width:900px){.hero{top:96px;height:calc(100svh - 96px);min-height:640px}.hero-bottom{align-items:flex-start;gap:20px}.hero .lead{max-width:42ch}.service-progress{gap:8px}}
@media(max-width:767px){
 .hero-scene{min-height:0}.hero{position:relative;top:auto;height:auto;min-height:calc(100svh - 96px);padding:58px 0 150px}
 .hero-copy{width:calc(100% - 32px)}.hero h1{font-size:clamp(36px,9.4vw,64px);max-width:18ch}
 .hero .lead{font-size:16px;max-width:33ch}.hero-bottom{display:flex;flex-direction:column;margin-top:30px;gap:24px}.hero .text-link{margin-top:0}
 .hero-controls{bottom:49px;right:16px;left:16px;gap:12px}.hero-scroll,.film-label{display:none}.photo-credit{left:16px;bottom:14px;font-size:8px;max-width:90%}
 #film-toggle{display:inline-flex}.hero-shade{background:linear-gradient(90deg,#071b30dc,#071b3070),linear-gradient(0deg,#071b30c9,transparent)}
 .manifesto{padding-block:80px}.manifesto h2{font-size:38px}.manifesto-bottom{margin-top:32px}
 .service-progress{display:none}.service-chapters article{opacity:1;scroll-margin-top:112px}.service-visual{display:none}
}
@media(max-height:700px) and (min-width:768px){.hero{min-height:600px}.hero-scene{min-height:820px}.hero h1{font-size:52px}.hero-bottom{margin-top:24px}}
body.motion-paused .hero-copy,body.motion-paused .hero-film,body.motion-paused .hero-photo{transform:none!important}
body.motion-paused .hero-copy{opacity:1!important}
body.motion-paused .line-reveal>span{transform:none;opacity:1;transition:none}
body.motion-paused .service-chapters article{opacity:1}
@media(prefers-reduced-motion:reduce){
 .hero-scene{min-height:0}.hero{position:relative;top:0}.hero-copy,.hero-photo,.hero-film{transform:none!important}.hero-copy{opacity:1!important}
 .line-reveal>span{transform:none!important;opacity:1!important}.service-chapters article{opacity:1}.brand-home{transform:none!important}
}
/* Preserve the white/amber headline hierarchy through the legacy span rules. */
.hero h1 .headline-line,.hero h1 .headline-line>span{color:var(--warm)}
.hero h1 .headline-line.amber>span{color:var(--amber)}
@media(min-width:901px) and (min-height:701px){.hero{height:calc(100svh - 152px);min-height:calc(100svh - 152px)}}
.hero-shade{background:linear-gradient(90deg,rgba(7,21,36,.93),rgba(7,21,36,.62) 48%,rgba(7,21,36,.16)),linear-gradient(0deg,rgba(7,21,36,.72),transparent 45%)}
.brand-home{mix-blend-mode:multiply}
@media(max-width:900px){
 .header nav.open{transition:opacity 180ms var(--reveal-ease),transform 180ms var(--reveal-ease)}
 @starting-style{.header nav.open{opacity:0;transform:translateY(-8px)}}
}

/* Stable video plane avoids scroll-time resampling shimmer. */
.hero-film{transform:translateZ(0);backface-visibility:hidden}

/* Complete scroll composition: isolated media zoom and a rising editorial section. */
.hero-media{position:absolute;inset:0;z-index:0;overflow:hidden;transform:translateZ(0);backface-visibility:hidden;transform-origin:center}
.hero-film{transform:translateZ(0)}
.hero-scene{min-height:145svh;margin-bottom:-80px}
.manifesto{box-shadow:0 -18px 50px #071b300d}
@media(min-width:901px){
 .header{transition:transform 250ms var(--reveal-ease),box-shadow 180ms ease}
 .header.is-compact{transform:translateY(-12px)}
 .hero{top:96px}
}
.service-chapters article{opacity:.58}
.service-chapters article.is-active{opacity:1}
.service-chapters h3{max-width:20ch}
.service-chapters p{max-width:34ch}
.service-photo{transition:opacity 750ms var(--reveal-ease)}
.gallery-progress{display:none}
.gallery-viewport{min-width:0}

/* Only roomy desktop viewports receive the pinned horizontal sequence. */
.canvas.is-scroll-gallery{padding:0;overflow:visible;position:relative}
.is-scroll-gallery .gallery-stage{position:sticky;top:96px;height:calc(100svh - 96px);padding:32px 0 22px;display:flex;flex-direction:column;overflow:hidden}
.is-scroll-gallery .canvas-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:48px;flex-shrink:0}
.is-scroll-gallery .canvas-heading .eyebrow{margin:0 0 7px}
.is-scroll-gallery .canvas-heading h2{font-size:clamp(34px,3.3vw,52px);line-height:1.06;max-width:21ch}
.is-scroll-gallery .gallery-controls{margin-top:20px;margin-bottom:16px;flex-shrink:0}
.is-scroll-gallery .gallery-controls button{height:40px;width:40px;font-size:20px}
.is-scroll-gallery .gallery-viewport{flex:1;min-height:0;overflow:hidden}
.is-scroll-gallery .canvas-panels{height:100%;overflow:visible;scroll-snap-type:none;padding-bottom:0;will-change:transform}
.is-scroll-gallery .canvas-panels article{flex:0 0 78%;display:grid;grid-template-rows:minmax(0,1fr) auto;gap:0;min-width:0}
.is-scroll-gallery .editorial-image{height:100%;min-height:0}
.is-scroll-gallery .canvas-panels img{height:100%;min-height:0;transform:scale(1.05);transition:none;will-change:transform}
.is-scroll-gallery .caption{padding-top:16px;padding-right:24px}
.is-scroll-gallery .caption h3{font-size:26px;line-height:1.14;margin-bottom:8px}
.is-scroll-gallery .caption p{margin:0 0 8px;font-size:14px}
.is-scroll-gallery .caption>span{font-size:10px}
.is-scroll-gallery .gallery-progress{display:flex;align-items:center;gap:16px;padding-top:18px;font-size:10px;letter-spacing:.08em;flex-shrink:0}
.gallery-progress-track{height:2px;background:#ffffff30;flex:1;overflow:hidden}
.gallery-progress-track i{display:block;height:100%;background:var(--amber);transform:scaleX(0);transform-origin:left}
.gallery-controls button:disabled{opacity:.3;cursor:default}
.header nav>a:not(.button):hover{text-decoration:none}
.header nav>a:not(.button):focus-visible::after{transform:scaleX(1)}
@media(max-width:767px){
 .hero-scene{min-height:0;margin-bottom:0}
 .hero-media{transform:none!important}
 .service-chapters article{opacity:1}
 .canvas{padding-block:80px}
 .canvas-panels article{flex-basis:90%}
 .caption p{max-width:32ch}
}
body.motion-paused .hero-media{transform:none!important}
body.motion-paused .service-chapters article{opacity:1}
@media(prefers-reduced-motion:reduce){
 .hero-scene{min-height:0;margin-bottom:0}
 .hero-media,.header.is-compact{transform:none!important}
 .service-chapters article{opacity:1}
}
@media(min-width:901px) and (min-height:701px){
 .hero{height:calc(100svh - 96px);min-height:calc(100svh - 96px)}
 .hero-controls{bottom:80px}.hero-scroll{bottom:92px}.photo-credit{bottom:58px}
}
@media(min-width:768px){.service-chapters article{min-height:78vh;scroll-margin-top:0}}
@media(max-width:900px){
 .header nav{display:flex;position:absolute;top:100%;left:0;right:0;width:100%;flex-direction:column;align-items:stretch;gap:4px;padding:12px 24px 24px;background:var(--warm);box-shadow:0 18px 24px #071b3018;visibility:hidden;opacity:0;pointer-events:none;transform:translateY(-8px);transition:opacity 180ms var(--reveal-ease),transform 180ms var(--reveal-ease),visibility 0s 180ms}
 .header nav.open{visibility:visible;opacity:1;pointer-events:auto;transform:translateY(0);transition-delay:0s}
 .header nav>a{font-size:18px;padding:12px}
 .header nav>a:not(.button)::after{left:12px;right:12px;bottom:6px}
}
@media(prefers-reduced-motion:reduce){.header nav{transition:none!important}}
