/* Progressive enhancement: content stays visible without JavaScript. */
.reading-progress{position:fixed;inset:0 0 auto;height:3px;background:linear-gradient(90deg,#c91068,#ff88c1);transform:scaleX(0);transform-origin:left;z-index:40;pointer-events:none}
header{transition:box-shadow .3s ease,background .3s ease}
header.is-scrolled{box-shadow:0 8px 30px #2415200d;background:#faf8f5fc}
.hero-art{isolation:isolate}
.hero-art:before{content:"";position:absolute;inset:-24px;border-radius:40%;background:radial-gradient(ellipse,#e9268926,transparent 68%);z-index:-1;pointer-events:none}
.btn{position:relative;overflow:hidden;transition:transform .25s ease,box-shadow .25s ease,background .25s ease}
.btn:after{content:"";position:absolute;inset:-70% auto -70% -70%;width:35%;background:linear-gradient(90deg,transparent,#fff5,transparent);transform:rotate(25deg);pointer-events:none}
.card{transition:transform .35s ease,box-shadow .35s ease,border-color .35s ease}
.card img{transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.poster-grid img{transition:transform .35s ease,box-shadow .35s ease}
.nav nav a{position:relative}
.nav nav a:after{content:"";position:absolute;bottom:-5px;left:0;right:0;height:2px;background:#c91068;transform:scaleX(0);transform-origin:left;transition:transform .25s ease}
@media(hover:hover) and (pointer:fine){
 .card:hover{transform:translateY(-7px);box-shadow:0 18px 45px #37222b12;border-color:#d8b8c8}
 .card:hover img{transform:scale(1.025)}
 .btn:hover{box-shadow:0 10px 24px #b50e5c26}
 .btn:hover:after{animation:button-shine .65s ease-out}
 .poster-grid a:hover img{transform:translateY(-6px) rotate(-1deg);box-shadow:0 16px 30px #37222b20}
 .nav nav a:hover:after,.nav nav a:focus-visible:after{transform:scaleX(1)}
}
@keyframes button-shine{to{left:140%}}
@media(prefers-reduced-motion:reduce){
 *,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
 .card:hover,.card:hover img,.poster-grid a:hover img,.btn:hover{transform:none!important}
 .reading-progress{display:none}
}
/* Keep the decorative glow inside narrow mobile viewports. */
@media(max-width:640px){.hero-art:before{inset:-10px}}
