/* Lighter manga, with motion confined to decorative layers. */
.cover-hero{background:#fff6bf}.comic-backdrop{opacity:.34}.backdrop-panel{filter:saturate(.65)}.backdrop-panel:after{background:#fff6cc66;mix-blend-mode:normal}
.cover-art img{animation:hero-float 5.5s ease-in-out infinite;transform-origin:50% 70%}.comic-backdrop{animation:comic-drift 18s ease-in-out infinite alternate}.cover-hero .pop-cta{position:relative;overflow:hidden}.cover-hero .pop-cta:after{content:'';position:absolute;inset:-80% auto -80% -60%;width:25%;background:linear-gradient(90deg,transparent,#fff7,transparent);transform:rotate(22deg);animation:button-glint 6s ease-in-out infinite;pointer-events:none}
.page-progress{position:fixed;top:0;left:0;right:0;height:5px;z-index:1000;pointer-events:none;background:linear-gradient(90deg,#0758ea,#ff4488,#ffdb00);transform:scaleX(var(--page-progress,0));transform-origin:left}
.course-card,.rank-stop,.cast-grid article{transition:transform .23s ease,box-shadow .23s ease}.course-card:active,.rank-stop:active{transform:translateY(3px) scale(.985)}.course-card b{display:inline-block;transition:translate .2s}.course-card:hover b,.course-card:focus-visible b{translate:6px 0}
.is-entering{animation:panel-reveal .65s cubic-bezier(.2,.7,.2,1) both;animation-delay:var(--enter-delay,0ms)}
@media(hover:hover) and (pointer:fine){.course-card:hover,.rank-stop:hover{transform:translateY(-7px) rotate(-1deg);box-shadow:8px 11px 0 #171717}.cast-grid article:hover{transform:translateY(-6px) rotate(1deg)}.cast-grid article img{transition:transform .3s}.cast-grid article:hover img{transform:rotate(-4deg) scale(1.04)}}
@keyframes hero-float{0%,100%{transform:translateY(0) rotate(-.35deg)}50%{transform:translateY(-9px) rotate(.35deg)}}
@keyframes comic-drift{from{translate:-5px -6px}to{translate:5px 6px}}
@keyframes button-glint{0%,65%{left:-60%}85%,100%{left:140%}}
@keyframes panel-reveal{from{opacity:0;translate:0 26px;scale:.97}to{opacity:1;translate:0 0;scale:1}}
body.motion-paused *,body.motion-paused *:before,body.motion-paused *:after{animation-play-state:paused!important;transition:none!important}.motion-paused .is-entering{animation:none!important;opacity:1;translate:none;scale:1}
@media(max-width:600px){.comic-backdrop{opacity:.28}.cover-art img{animation-duration:6.5s}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*:before,*:after{animation:none!important;transition:none!important}.is-entering{opacity:1;translate:none;scale:1}}
