/* A short veil connects ordinary full-page navigation without replacing PHP routes. */
.page-transition{position:fixed;inset:0;z-index:400;display:grid;place-items:center;background:radial-gradient(ellipse at 50% 45%,rgba(139,107,228,.13),transparent 48%),var(--bg);opacity:0;visibility:hidden;pointer-events:none}
.page-transition-symbol{position:relative;display:grid;place-items:center;width:88px;height:88px;color:var(--accent)}
.page-transition-symbol:before{content:'';position:absolute;inset:0;border:1px solid rgba(170,140,255,.2);border-radius:50%;box-shadow:0 0 42px rgba(139,107,228,.1)}
.page-transition-symbol svg{width:40px;height:40px;filter:drop-shadow(0 0 12px rgba(170,140,255,.35))}
body:is([data-page=item],[data-page=watch]):not(.page-leaving)>.page-transition{animation:page-reveal .42s ease-out backwards}
body:is([data-page=item],[data-page=watch]) .breadcrumbs{animation:content-arrive .4s ease-out backwards}
body[data-page=item] :is(.detail-hero,.episode-section,.synopsis-section){animation:content-arrive .46s cubic-bezier(.2,.7,.2,1) backwards}
body[data-page=item] .episode-section{animation-delay:.06s}
body[data-page=watch] :is(.player-shell,.watch-toolbar,.episode-panel){animation:content-arrive .42s cubic-bezier(.2,.7,.2,1) backwards}
body[data-page=watch] .episode-panel{animation-delay:.06s}
.page-leaving>.page-transition{visibility:visible;pointer-events:auto;animation:page-cover .18s ease-in forwards}
.page-leaving .page-transition-symbol{animation:transition-pulse 1.2s ease-in-out infinite}
.navigation-active{filter:brightness(1.08)}
@keyframes page-cover{from{opacity:0}to{opacity:1}}
@keyframes page-reveal{from{opacity:1;visibility:visible}to{opacity:0;visibility:hidden}}
@keyframes content-arrive{from{opacity:.25;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes transition-pulse{50%{opacity:.6;transform:scale(.94)}}
@media(prefers-reduced-motion:reduce){.page-transition{display:none!important}.navigation-active{filter:none}body[data-page] :is(.breadcrumbs,.detail-hero,.episode-section,.synopsis-section,.player-shell,.watch-toolbar,.episode-panel){animation:none!important}}
