/* Only the hero visual and its text transition differ from combined V2. */
.hero-sticky{position:sticky;top:0;height:100svh;display:block;overflow:hidden}
.hero-art{position:absolute;inset:0;width:100%;height:100%;min-width:0;min-height:0;margin:0;aspect-ratio:auto;background:linear-gradient(140deg,#fff,rgba(236,230,249,var(--point-tint,0)))}
.hero-art>svg,.hero-glow{display:none}
.points-fixed-map{position:fixed;z-index:18;pointer-events:none}
.points-fixed-map svg{display:block;width:100%;height:100%;overflow:visible}
.hero-next-copy{position:fixed;left:0;top:50vh;width:100%;z-index:20;transform:translateY(-50%) scale(.96);opacity:0;pointer-events:none;transform-origin:50% 50%}
.hero-next-copy .hero-stack{gap:20px}
.hero-next-copy h2{font-weight:500;line-height:1.4}
.hero-next-copy .eyebrow{color:#6753dd}
.hero-copy .reveal{transform:none;transition:opacity 1.1s ease}
.preview-heading .reveal{transform:none;filter:blur(10px);transition:opacity 1.2s ease,filter 1.2s ease}
.preview-heading .reveal.visible{transform:none;filter:blur(0)}
@media(max-width:760px){.hero-next-copy .hero-stack{text-align:center;gap:14px}}
@media(prefers-reduced-motion:reduce){.points-fixed-map,.hero-next-copy{display:none}.hero-copy,.preview-heading .reveal{filter:none!important}}
/* One pinned scene: assembly, copy reveal, frame reveal, then solution stages. */
.points-pinned .hero-sticky{isolation:isolate}
.points-pinned .hero-copy{position:absolute;top:50%;z-index:20}
.points-pinned .hero-next-copy{position:absolute;top:var(--copy-center,50%);z-index:20}
.points-pinned .points-fixed-map{position:absolute;z-index:18}
.points-pinned .hero-next-copy{transform-origin:left center}
.points-pinned .combined-story{position:absolute;inset:0;padding:0;margin:0;background:transparent;z-index:19}
.points-pinned .map-flow::before,.points-pinned .preview-heading{display:none}
.points-pinned .story-grid{position:absolute;inset:0;display:grid;padding-top:var(--visual-top,100px);pointer-events:none}
.points-pinned .story-visual{position:relative;top:0;padding-bottom:0}
.points-pinned .story-map{background:rgba(251,250,255,var(--bridge,0));border-color:rgba(221,216,232,var(--bridge,0));box-shadow:0 30px 60px rgba(43,36,82,calc(var(--bridge,0)*.04))}
.points-pinned .story-map-svg,.points-pinned .map-heading,.points-pinned .story-state,.points-pinned .stage-rail,.points-pinned .map-footnote{opacity:var(--bridge,0)}
.points-pinned .story-steps{position:relative}
.points-pinned .story-step{position:absolute;top:calc(var(--details-top,480px) - var(--visual-top,100px));left:0;width:100%;height:auto;min-height:0;padding:0;display:block}
.points-pinned .story-step .step-inner{opacity:0;transform:none;filter:blur(12px);transition:opacity .4s ease,filter .4s ease;border-color:#6753dd}
.points-pinned .story-step.active .step-inner{opacity:var(--bridge,0);filter:blur(var(--bridge-blur,12px));transform:none}
.points-pinned .mobile-story-copy{display:none}
@media(max-width:1279px) and (min-width:761px){.points-pinned .hero-next-copy .hero-stack{width:calc(100% - var(--bridge,0)*54%);margin:0;text-align:center}.points-pinned .hero-next-copy h2{font-size:calc(34px - var(--bridge,0)*8px);word-break:keep-all}}
@media(max-width:760px){
 .points-pinned .hero-next-copy{transform-origin:center center}
 .points-pinned .story-grid{display:block;padding-top:0}
 .points-pinned .story-visual{position:absolute;top:var(--visual-top,90px);left:16px;width:calc(100% - 32px)}
 .points-pinned .story-state,.points-pinned .map-footnote{display:none}
 .points-pinned .stage-rail{position:absolute;bottom:8px;left:16px;right:16px;padding:0}
 .points-pinned .story-steps{position:absolute;top:0;left:16px;width:calc(100% - 32px)}
 .points-pinned .story-step{top:var(--details-top,500px)}
 .points-pinned .story-step .step-inner{position:static;width:auto;height:auto;margin:0;padding-left:18px;overflow:visible;clip:auto;white-space:normal;border-left:2px solid #6753dd}
 .points-pinned .step-number{margin-bottom:12px}
 .points-pinned .story-step p{margin-top:12px}
}

/* The detailed floor plan is built during the first progress rail. */
.map-finished{opacity:0}
