/* Native scroll choreography. Content is visible before JavaScript and on failure. */
.scroll-story .work .poster img{transform:translateY(var(--image-drift,0px)) scale(1.12);transition:filter .4s}
.scroll-story .film:hover .poster img{transform:translateY(var(--image-drift,0px)) scale(1.12)}
.scroll-emphasis{position:relative;display:inline-block;white-space:normal}
.scroll-emphasis:after{content:'';position:absolute;left:0;right:0;bottom:-.09em;height:2px;background:var(--accent);transform:scaleX(1);transform-origin:left;opacity:.7}
.scroll-story .scroll-emphasis:after{transform:scaleX(var(--emphasis-progress,0))}
/* The image opens within the existing card; the copy and button are never masked. */
.scroll-story .launch-visual{clip-path:ellipse(14% 10% at 44% 52%)}
@media(prefers-reduced-motion:reduce){.scroll-story .work .poster img,.scroll-story .film:hover .poster img{transform:none}.scroll-story .launch-visual{clip-path:none!important}.scroll-story .scroll-emphasis:after{transform:none}}
