#story [hidden]{display:none!important;}
#story .story-journey-controls{display:flex;flex-wrap:wrap;gap:16px;align-items:center;margin:22px 0 0;}
#story .story-skip{padding:8px 0;background:none;border:0;border-bottom:1px solid #6b99b6;color:#c6dfef;font-size:12px;line-height:1.6;cursor:pointer;}
#story .story-reveal{animation:story-reveal-in .65s ease both;}
#story[data-journey-state="complete"] .story-journey-controls{display:none;}
#story .story-map-link{display:flex;width:max-content;max-width:100%;margin-top:20px;font-size:13px;}
/* A single fixed media slot avoids zooming or layout shifts between poster and video. */
#story .story-narrator{height:min(65dvh,610px);margin-top:0;transition:none;}
#story .story-narrator>.story-standing,#story .story-narrator video,#story .story-study-still{position:absolute;inset:0;display:block;height:100%;width:auto;max-width:100%;margin:auto;object-fit:contain;border:0;filter:none;transform:none;mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent),linear-gradient(transparent,#000 7%,#000 94%,transparent);mask-composite:intersect;-webkit-mask-composite:source-in;}
.city-camera-stage{position:absolute;inset:0;transform:none;transition:none;}
.city-camera-end{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:3;pointer-events:none;}
.cinematic-city #story-city-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:4;pointer-events:none;transition:none!important;}
#chapter-next[data-story-action="start"]{border-color:#85cee4;background:linear-gradient(120deg,#173c55e8,#0b1d30ee);}
#chapter-next[data-story-action="start"] strong{font-size:clamp(15px,1.5vw,21px);}
#chapter-next[data-story-action="busy"]{cursor:progress;}
@keyframes story-reveal-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@media(max-width:760px){#story .story-narrator{height:390px;width:min(100%,325px);margin:10px auto 0;}#story .story-map-link{margin-bottom:12px;}}
@media(prefers-reduced-motion:reduce){#story .story-reveal{animation:none!important;}}

/* The cinematic endpoint belongs only to the story; other chapters keep their looping city. */
body:not([data-scene="story"]) .cinematic-city #story-city-video,body:not([data-scene="story"]) .cinematic-city .city-camera-end{opacity:0!important;}
/* Give the city descent a clear stage while the character is moving. */
body[data-scene="story"] .cyber-world:after{transition:opacity .7s ease;}
body[data-scene="story"]:has(#story[data-journey-state="playing"]) .cyber-world:after,
body[data-scene="story"]:has(#story[data-journey-state="buffering"]) .cyber-world:after{opacity:.26;}
#story .story-copy>:not(.story-journey-controls){transition:opacity .55s ease;}
#story[data-journey-state="playing"] .story-copy>:not(.story-journey-controls),
#story[data-journey-state="buffering"] .story-copy>:not(.story-journey-controls){opacity:0!important;pointer-events:none;}
#story[data-journey-state="complete"] .story-copy>:not(.story-journey-controls){opacity:1;transition-duration:.85s;}

body[data-scene="story"] .cinematic-city #story-city-video{filter:contrast(1.06) saturate(1.05);}
@media(prefers-reduced-motion:reduce){body[data-scene="story"] .cyber-world:after,#story .story-copy{transition:none;}}
