/* Cinematic motion, progressively enhanced: content is always readable. */
.main-page{animation:page-arrival .55s ease both}
@keyframes page-arrival{from{opacity:.25}to{opacity:1}}
.hero:before{animation:doom-atmosphere 14s ease-in-out infinite alternate!important;pointer-events:none}
@keyframes doom-atmosphere{from{opacity:.35;transform:scale(1) translateX(-3%)}to{opacity:1;transform:scale(1.18) translateX(3%)}}
.hero h1 strong{animation:title-breathe 5s ease-in-out infinite alternate}
@keyframes title-breathe{from{filter:drop-shadow(0 0 0 #d8ff6200)}to{filter:drop-shadow(0 0 17px #d8ff6240)}}
.hero-label{animation:label-float 5s ease-in-out infinite}
@keyframes label-float{0%,100%{translate:0 0}50%{translate:0 -5px}}
.hero-bottom{overflow:hidden}.hero-bottom .wrap{overflow:visible;animation:ticker-drift 18s ease-in-out infinite alternate;will-change:transform}
@keyframes ticker-drift{from{transform:translateX(2%)}to{transform:translateX(-12%)}}
.hero-bottom:hover .wrap{animation-play-state:paused}
.brandmark{transition:transform .35s cubic-bezier(.2,.8,.2,1),filter .35s}.brand:hover .brandmark{transform:rotate(-7deg) scale(1.1);filter:drop-shadow(0 0 8px #ed1d2e88)}
.btn,.filter,.nav-btn,.tiny-link,.footer-links a{transition:transform .25s,background .25s,color .25s,box-shadow .25s}
.btn:active,.filter:active,.nav-btn:active{transform:scale(.95)}
.nav-btn:hover{transform:translateY(-3px)}.tiny-link:hover,.footer-links a:hover{transform:translateX(4px)}
.intel-card,.theory-card,.cast-member,.photo-card,.video-card{transition:translate .35s,box-shadow .35s,border-color .35s;}
@media(hover:hover){.intel-card:hover,.theory-card:hover,.photo-card:hover,.video-card:hover{translate:0 -7px;box-shadow:0 15px 36px #0008;border-color:#d8ff62}.cast-member:hover{translate:5px 0;border-color:#ed1d2e}.photo-open img,.video-card img{transition:transform .65s cubic-bezier(.2,.75,.2,1)}.photo-open:hover img,.video-card:hover img{transform:scale(1.055)}}
.search{transition:border-color .25s,box-shadow .25s}.search:focus{border-color:#d8ff62;box-shadow:0 0 0 3px #d8ff6222}
.timeline li:before{animation:timeline-signal 3s ease-in-out infinite alternate}@keyframes timeline-signal{to{box-shadow:0 0 12px #ed1d2e88}}
.photo-viewer[open],.modal.open{animation:viewer-enter .3s ease-out}@keyframes viewer-enter{from{opacity:0;scale:.97}to{opacity:1;scale:1}}
#motionToggle{position:fixed;bottom:18px;left:16px;z-index:91;border:1px solid #ffffff55;background:#090c11e8;color:#ddd;padding:10px 12px;font-size:10px;text-transform:uppercase;letter-spacing:.06em;border-radius:3px;cursor:pointer;backdrop-filter:blur(8px)}
#motionToggle:focus-visible{outline:3px solid #d8ff62;outline-offset:3px}
.motion-off *,.motion-off *:before,.motion-off *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(max-width:600px){#motionToggle{font-size:9px;left:10px;padding:9px 8px}.doom-audio .btn{font-size:9px;padding:10px;right:10px;max-width:62vw}.hero-bottom .wrap{animation-duration:14s}}
