/* NOVA Motion System 12.5.86 */
:root{--nova-motion-fast:180ms;--nova-motion:360ms;--nova-motion-slow:560ms;--nova-ease:cubic-bezier(.22,1,.36,1);--nova-red:#f20d3d}
html{scroll-behavior:smooth} body{transition:background-color .35s ease}
@keyframes novaPageIn{0%{opacity:0;transform:translate3d(0,18px,0) scale(.992);filter:blur(7px)}55%{filter:blur(0)}100%{opacity:1;transform:none;filter:none}}
@keyframes novaPageOut{to{opacity:0;transform:translate3d(0,-10px,0) scale(.994);filter:blur(5px)}}
@keyframes novaCardIn{0%{opacity:0;transform:translate3d(0,26px,0) scale(.95)}100%{opacity:1;transform:none}}
@keyframes novaGlow{0%,100%{box-shadow:0 0 0 rgba(242,13,61,0)}50%{box-shadow:0 0 30px rgba(242,13,61,.22)}}
body.nova-motion-ready main,body.nova-motion-ready [role="main"]{animation:novaPageIn var(--nova-motion-slow) var(--nova-ease) both}
body.nova-page-leaving main,body.nova-page-leaving [role="main"]{animation:novaPageOut 180ms ease both!important;pointer-events:none}
/* Stagger content cards */
.nova-motion-item{opacity:0;animation:novaCardIn 520ms var(--nova-ease) forwards;animation-delay:calc(var(--nova-i,0) * 32ms)}
/* Cinematic hover */
a[href],button,.card,.movie-card,.media-card,.content-card,[data-movie-id],[data-series-id]{transition:transform var(--nova-motion-fast) var(--nova-ease),box-shadow var(--nova-motion) ease,border-color var(--nova-motion-fast) ease,opacity var(--nova-motion-fast) ease,filter var(--nova-motion-fast) ease}
.movie-card:hover,.media-card:hover,.content-card:hover,[data-movie-id]:hover,[data-series-id]:hover{transform:translateY(-5px) scale(1.025);filter:brightness(1.06);z-index:5}
button:active,a.nova-motion-click:active{transform:scale(.965)}
/* Sidebar/nav active feedback */
nav a,.sidebar a,.side-nav a{position:relative}
nav a::after,.sidebar a::after,.side-nav a::after{content:"";position:absolute;left:20%;right:20%;bottom:-5px;height:2px;border-radius:99px;background:var(--nova-red);transform:scaleX(0);opacity:0;transition:transform .28s var(--nova-ease),opacity .2s}
nav a:hover::after,.sidebar a:hover::after,.side-nav a:hover::after,nav a.active::after{transform:scaleX(1);opacity:1}
/* View Transitions */
::view-transition-old(root){animation:180ms ease both novaPageOut}
::view-transition-new(root){animation:460ms var(--nova-ease) both novaPageIn}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}.nova-motion-item{opacity:1!important}}

/* Scroll reveals and tactile feedback shared by every NOVA page. */
.nova-section-reveal{opacity:0;transform:translate3d(0,28px,0);filter:blur(4px);transition:opacity .72s var(--nova-ease),transform .72s var(--nova-ease),filter .62s ease}
.nova-section-reveal.nova-section-visible{opacity:1;transform:none;filter:none}
.nova-click-pulse{position:relative;overflow:hidden!important}.nova-click-pulse::before{content:"";position:absolute;z-index:0;left:var(--nova-click-x,50%);top:var(--nova-click-y,50%);width:10px;height:10px;border-radius:50%;background:color-mix(in srgb,var(--nova-red,#e50935) 42%,white);opacity:0;pointer-events:none;transform:translate(-50%,-50%) scale(0)}.nova-click-pulse.nova-click-active::before{animation:nova-click-wave .58s ease-out}.nova-click-pulse>*{position:relative;z-index:1}
@keyframes nova-click-wave{0%{opacity:.38;transform:translate(-50%,-50%) scale(0)}100%{opacity:0;transform:translate(-50%,-50%) scale(28)}}
@media(prefers-reduced-motion:reduce){.nova-section-reveal{opacity:1!important;transform:none!important;filter:none!important}.nova-click-pulse::before{display:none!important}}
