/* CHANGED: replaces metal segments; no new layer participates in page layout. */
body.line-ready{position:relative;isolation:isolate;background:linear-gradient(180deg,var(--story-top),var(--story-bottom))}
.line-background{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;contain:strict}
.line-grid{position:absolute;inset:0;width:100%;height:100%;opacity:var(--dot-opacity)}
.line-ambient{position:absolute;top:0;left:0;border-radius:50%;background:radial-gradient(circle,#ff6b2b 0%,#ff6b2b66 25%,transparent 68%);opacity:var(--glow-opacity);will-change:transform}
.line-headline-glow{position:absolute;width:70vw;height:700px;top:30px;left:-18vw;background:radial-gradient(ellipse,#ff6b2b,transparent 65%);opacity:var(--headline-glow-opacity);pointer-events:none;z-index:0}
.line-grain{position:fixed;inset:0;pointer-events:none;z-index:21;opacity:var(--grain-opacity);background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath filter='url(%23noise)' opacity='.65' d='M0 0h160v160H0z'/%3E%3C/svg%3E");background-size:160px 160px}
.line-svg{position:absolute;top:0;left:0;z-index:1;pointer-events:none;overflow:hidden}
.line-stroke{fill:none;stroke:var(--thread-color);stroke-width:var(--thread-width);stroke-linecap:round;stroke-linejoin:round;opacity:.94}
.line-underlay{fill:none;stroke:#211a17;stroke-width:3.4;opacity:.6;stroke-linecap:round;stroke-linejoin:round}
.line-tip{fill:var(--thread-color);filter:drop-shadow(0 0 5px #ff6b2ba6)}
.line-arrow{fill:none;stroke:var(--thread-color);stroke-width:var(--thread-width);stroke-linecap:round;stroke-linejoin:miter}
.line-node-ring{fill:#191a1c;stroke:var(--thread-color);stroke-width:1;opacity:.65}
.line-node-fill{fill:var(--thread-color);opacity:0}
.line-ready .story-poster,.line-ready .story-canvas,.line-ready .story-line-fallback{display:none}
.story-line-fallback{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.line-ready .story-stage{background:transparent;z-index:2}
.line-ready .story-copy,.line-ready .section>*,.line-ready .principles>*,.line-ready .contact-inner,.line-ready footer>*{position:relative;z-index:3}
.line-ready .story-bottom,.line-ready .visual-meta{z-index:3}
.line-ready .section,.line-ready .contact-section{position:relative}
.line-ready .process li{position:relative}
.line-step-border{position:absolute;inset:-8px -12px;pointer-events:none;border:1px solid var(--orange);opacity:0;box-shadow:0 0 14px #ff6b2b1a;z-index:-1;will-change:opacity}
.line-cta-glow{position:absolute;inset:-5px;border:1px solid #ffdfcd;box-shadow:0 0 28px 5px #ffb08b60;opacity:0;pointer-events:none;will-change:opacity,transform}
#contact .button-dark{position:relative}
.line-ready .chapter-progress span{position:relative;background:#48494b}
.line-dash-fill{position:absolute;inset:0;background:var(--orange);transform:scaleX(0);transform-origin:left;will-change:transform}
.line-divider{position:absolute!important;left:var(--gutter);right:var(--gutter);top:22px;display:flex;align-items:center;gap:18px;pointer-events:none;color:#a7a9ac80;font:10px/1.4 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.13em}
.line-divider:after{content:'';height:1px;flex:1;background:currentColor;opacity:.2}
.contact-section .line-divider{color:#3c291b85}
html.lenis{scroll-behavior:auto!important}
@media(max-width:767px){.line-divider{top:15px;font-size:9px}.line-step-border{inset:-6px}.line-headline-glow{width:100vw;left:-30vw}.line-svg{z-index:1}}
@media(prefers-reduced-motion:reduce){.line-ambient,.line-cta-glow{display:none}.line-stroke,.line-grid{transition:none!important;animation:none!important}}

/* CHANGED: compact hero spacing; tall windows retain all chapters in natural flow. */
.story-stage{min-height:0}
.story.enhanced .story-stage{height:var(--hero-stage-height, min(720px, calc(100svh - 100px)))}
.story:not(.enhanced) .story-inner{align-items:start;padding-top:48px;padding-bottom:84px}
.story:not(.enhanced) .visual-stage{align-self:start;position:sticky;top:148px}
@media(min-width:1600px){.story-stage{min-height:0}}
@media(max-width:760px){.story.enhanced .story-stage{height:var(--hero-stage-height, calc(100svh - 80px))}.story:not(.enhanced) .visual-stage{position:relative;top:auto}}

/* Mobile composition shares the 760px layout/media breakpoint. */
html{scroll-padding-top:calc(var(--header-height,100px) + 8px)}
.story{padding-top:var(--header-height,100px)}
.story.enhanced .story-stage{top:var(--header-height,100px)}
.motion-static .story-stage{min-height:0;height:auto}
.motion-static .story-bottom{display:flex;position:static;margin:0 var(--gutter) 24px}
.motion-static .chapter-progress,.motion-static .scroll-hint{display:none}
@media(max-width:760px){
 :root{--header-height:calc(68px + env(safe-area-inset-top));--gutter:max(20px,env(safe-area-inset-left),env(safe-area-inset-right))}
 .header{height:calc(68px + env(safe-area-inset-top));padding-top:env(safe-area-inset-top);padding-left:var(--gutter);padding-right:var(--gutter)}
 .brand-logo{width:44px;height:44px}.brand{gap:9px}.wordmark{font-size:1.25rem}.wordmark small{font-size:.54rem}
 .menu-toggle{min-width:76px;justify-content:end}
 .header nav{top:100%;max-height:calc(100dvh - var(--header-height));overflow-y:auto;padding-bottom:max(24px,env(safe-area-inset-bottom))}
 .header nav>a{min-height:48px}.header nav .button{width:100%}
 .story-stage{justify-content:start;min-height:0}
 .story-inner,.story.enhanced .story-inner,.story:not(.enhanced) .story-inner{padding:28px var(--gutter) 72px;gap:12px}
 .hero-eyebrow{font-size:.65rem!important;margin-bottom:18px!important;letter-spacing:.1em}
 .chapter h1,.chapter h2{font-size:clamp(2.15rem,8.6vw,3.6rem)}
 .hero-body{font-size:1rem;line-height:1.55}.hero-actions{gap:8px}.hero-actions .button{min-height:52px}
 .visual-stage{height:180px;max-height:none;aspect-ratio:auto}
 .visual-meta{display:none}.story-bottom{bottom:16px;font-size:.7rem}.scroll-hint{display:block;max-width:95px;font-size:.6rem;line-height:1.5}.chapter-progress{display:none}
 .story:not(.enhanced) .story-bottom{display:flex;position:static;margin:0 var(--gutter) 24px}
 .story:not(.enhanced) .story-inner{padding-bottom:20px}
 .story:not(.enhanced) .visual-stage{grid-row:2}
 .story-line-fallback{max-width:310px;left:50%;transform:translateX(-50%)}
 .section-heading h2,.approach h2,.questions h2{font-size:clamp(2rem,8vw,2.5rem)}
 .service{padding:24px 20px}.service h3{font-size:1.55rem}.service-top{gap:12px}
 .contact-section h2{font-size:clamp(2.25rem,9vw,3.8rem)}
 .contact-bottom .button{width:100%;gap:16px;line-height:1.4}.contact-note{font-size:.8rem}
 .process li{grid-template-columns:28px minmax(0,1fr);gap:14px}
 .principles span{min-width:0}.story-copy,.section-heading>div,.service,.process li>div{min-width:0}
}

@media(max-width:760px){
 html:not(.js) .header{position:relative;height:auto;min-height:68px;flex-wrap:wrap;padding-top:12px}
 html:not(.js) .header nav{position:static;display:flex;width:100%;max-height:none;padding:12px 0 16px}
 html:not(.js) .menu-toggle{display:none}html:not(.js) .story{padding-top:0}
}

/* Locked hero composition: no sticky translation, no scroll spacer. */
.story.reference{height:auto!important}
.story.reference .story-stage{position:relative;top:auto;height:auto;min-height:720px;justify-content:center}
.story.reference .story-inner{align-items:center;padding-top:60px;padding-bottom:88px}
.story.reference .story-copy{display:grid}
.story.reference .chapter[hidden]{display:none!important}
.story.reference .chapter.active{grid-row:2;grid-column:1;margin:0;opacity:1;visibility:visible}
.story.reference .hero-actions{grid-row:3}.story.reference .hero-note{grid-row:4}
.story.reference .visual-stage{position:relative;top:auto;align-self:center;overflow:hidden}
.story.reference .story-bottom{display:flex;position:absolute;bottom:24px;left:var(--gutter);right:var(--gutter);margin:0}
.hero-knot{position:absolute;inset:0;width:100%;height:100%;overflow:hidden;pointer-events:none;contain:paint}
body.line-ready{background:linear-gradient(180deg,#191716,#141a20)}
body.line-ready:before{content:'';position:fixed;inset:0;pointer-events:none;z-index:0;background-image:radial-gradient(circle,#d5d8dc17 .7px,transparent .9px);background-size:28px 28px}
body.line-ready .story.reference{background:radial-gradient(ellipse at 20% 50%,#ff6b2b06,transparent 65%)}
@media(max-width:760px){
 .story.reference .story-stage{min-height:0}
 .story.reference .story-inner{padding:28px var(--gutter) 68px;gap:12px}
 .story.reference .visual-stage{grid-row:2;height:180px;aspect-ratio:auto}
 .story.reference .story-bottom{bottom:16px}
 .hero-knot .line-tip,.line-svg .line-tip{filter:none}
 .line-step-border{box-shadow:none;inset:0}
 .header{backdrop-filter:none;background:#17181b}
 body.line-ready:before{background-size:44px 44px}
 .line-cta-glow{box-shadow:none}
}
@media(max-height:690px) and (min-width:761px){.story.reference .story-stage{min-height:560px}.story.reference .story-inner{padding-top:36px;padding-bottom:76px}}

/* Headline travel holds the complete page composition, with the knot inside the hero. */
.story-track{position:relative;overflow-anchor:none}
.story-flow{position:sticky;top:0;display:flow-root;isolation:isolate}
.story.cycling .chapter{grid-column:1;grid-row:2;margin:0;opacity:0;visibility:hidden;pointer-events:none}
.story.cycling .chapter.active{opacity:1;visibility:visible;pointer-events:auto}
.story.cycling .story-copy{align-self:center}
/* The orange section needs a dark, legible continuation into its black booking button. */
.line-underlay{stroke:#211a17;stroke-width:3.4;opacity:1}
