/* v4.8: tighter foreground composition; finite entrances + native scroll scrubbing. */
.cover-pop48{position:absolute;inset:0;z-index:12;pointer-events:none;overflow:hidden}
.cover-pop48>*{position:absolute;transform-origin:center}
.cover-burst48{right:7%;bottom:130px;width:132px;height:124px;overflow:visible}
.cover-star48{width:44px;height:44px;left:3%;bottom:82px;overflow:visible}
.cover-star48.star-b48{left:auto;right:2%;bottom:68px;width:36px;height:36px}
.cover-dots48{position:absolute;left:0;right:0;bottom:46px;height:205px;z-index:6;pointer-events:none;background-image:radial-gradient(#fffbea 1.5px,transparent 2px);background-size:11px 11px;clip-path:polygon(0 7%,13% 15%,10% 89%,0 100%,0 7%,100% 0,100% 100%,86% 90%,88% 10%,100% 0);opacity:.48}
.cover-v4 .hero-description{padding:6px 11px 7px;background:var(--cream);border:3px solid var(--ink);border-radius:15px 15px 15px 3px;box-shadow:4px 4px 0 var(--pink);line-height:1.5;isolation:isolate}
.cover-v4 .hero-description b{background:none;box-shadow:none;padding:0}
.cover-pop48 .burst-face48{transform-box:fill-box;transform-origin:center}
.cover-v4 .hero-art{perspective:900px}
.cover-title .cover-line44,.cover-title strong{transform-origin:50% 70%}
/* Old repeating heartbeat is replaced by actual scroll progress. */
.story .story-hook .hook-heart,.story .story-hook .hook-arrow,
.notice-clue .notice-question,.notice-clue .notice-idea,
.section-bridge b,.episode-sticker{animation:none!important}
.story .section-heading>div,.story .section-heading>.section-intro{position:relative;z-index:3}
.story .section-heading .story-hook{z-index:1}
.cover-pop48 svg,.story-hook g,.notice-clue g{backface-visibility:hidden}
.cover-scroll46{--cover-band48:clamp(0px,calc(100svh - var(--cover-height46)),100px)}
.cover-scroll46.scroll-enabled46{height:calc(var(--cover-height46) + var(--cover-band48) + var(--scroll-range46))}
.cover-scroll46.scroll-enabled46 .cover-sticky48{position:sticky;top:0}
.cover-scroll46.scroll-enabled46 .cover-sticky48 .hero.cover-v4{position:relative;top:auto}
.cover-progress48{position:relative;height:var(--cover-band48);display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 5%;overflow:hidden;isolation:isolate;border-bottom:3px solid var(--ink);background:var(--pink);color:var(--ink);font:900 12px var(--pop-font)}
.cover-progress48:before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(-35deg,transparent 0 22px,#fffbea44 22px 27px);z-index:-1}
.cover-progress48 i{position:absolute;inset:0;background:var(--yellow);transform:scaleX(var(--scroll-progress46,0));transform-origin:left;z-index:-2}
.cover-progress48 b{padding:5px 9px;background:var(--ink);color:var(--cream);white-space:nowrap;font-size:13px;border-radius:4px}
.cover-scroll46:not(.scroll-enabled46) .cover-progress48{display:none}
.hero-fx-wipe{z-index:1}.hero-fx-rays{z-index:0}
.motion-on .fx-cover-live .hero-fx-wipe i{animation-duration:1.12s}
.motion-on .fx-cover-live .hero-fx-wipe b{animation-duration:1.23s;animation-delay:.1s}
.motion-on .fx-cover-live .hero-fx-rays{animation-duration:1.4s}
@keyframes castFlight48{0%{transform:perspective(850px) translate3d(var(--flight-x48,-48px),62px,-100px) rotateY(var(--flight-turn48,-62deg)) rotateZ(-13deg)}64%{transform:perspective(850px) translate3d(0,-8px,0) rotateY(8deg) rotateZ(3deg)}82%{transform:perspective(850px) translate3d(0,3px,0) rotateY(-3deg) rotateZ(-2deg)}100%{transform:rotate(var(--card-rest,var(--tilt)))}}
.cast-card:nth-child(even){--flight-x48:48px;--flight-turn48:62deg}
.motion-on .cast-card.is-entering{animation:castFlight48 .94s calc(var(--order)*.075s) cubic-bezier(.2,.8,.2,1) both}
@media(max-width:700px){
 .cover-scroll46{--cover-height46:clamp(708px,calc(100svh - 92px),800px)}
 .cover-scroll46 .cover-foreground{height:268px}
 .cover-scroll46 .hero-description{left:17px;bottom:134px;font-size:10px;padding:5px 8px 6px;border-width:2px;max-width:155px;line-height:1.45}
 .cover-scroll46 .hero-description b{font-size:12px}
 .cover-burst48{width:91px;height:85px;right:8px;bottom:133px}
 .cover-star48{left:5px;bottom:78px;width:33px;height:33px}
 .cover-star48.star-b48{right:5px;bottom:63px;width:28px;height:28px}
 .cover-dots48{height:190px}
}
@media(min-width:701px){.cover-burst48{right:6%;bottom:100px}.cover-star48{left:24%;bottom:65px}.cover-star48.star-b48{right:24%;bottom:55px}.cover-v4 .hero-description{bottom:110px}}
html:not(.motion-on) .cover-pop48 *,html.paused .cover-pop48 *,html:not(.motion-on) .cast-card{animation:none!important;transition:none!important}
@media(prefers-reduced-motion:reduce){.cover-pop48 *, .cast-card,.story-hook *, .notice-clue *, .episode-sticker{animation:none!important;transition:none!important}}
