@keyframes mascotFloat{0%,100%{transform:translate3d(0,0,0) rotate(0deg)}50%{transform:translate3d(0,-10px,0) rotate(-1deg)}}
@keyframes mascotSoft{0%,100%{transform:translate3d(0,0,0)}50%{transform:translate3d(0,-6px,0)}}
@keyframes goldPulse{0%,100%{filter:drop-shadow(0 16px 30px rgba(0,0,0,.24)) drop-shadow(0 0 0 rgba(213,181,107,0))}50%{filter:drop-shadow(0 18px 34px rgba(0,0,0,.28)) drop-shadow(0 0 24px rgba(213,181,107,.18))}}
@keyframes eyePulse{0%,100%{filter:drop-shadow(0 18px 34px rgba(0,0,0,.26)) drop-shadow(0 0 0 rgba(255,40,40,0))}50%{filter:drop-shadow(0 18px 34px rgba(0,0,0,.28)) drop-shadow(0 0 24px rgba(255,40,40,.2))}}
@keyframes forgePulse{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-5px) scale(1.012)}}
@keyframes orbitA{to{transform:rotate(360deg)}}@keyframes orbitB{to{transform:rotate(-360deg)}}@keyframes glowPulse{0%,100%{box-shadow:0 0 30px rgba(213,181,107,.16)}50%{box-shadow:0 0 60px rgba(213,181,107,.34)}}
@keyframes glitchIn{0%{transform:translateX(0);filter:none}20%{transform:translateX(2px);filter:contrast(1.2)}40%{transform:translateX(-2px)}60%{transform:translateX(1px)}100%{transform:none;filter:none}}
.mascot-float{animation:mascotFloat 5.2s ease-in-out infinite}.mascot-soft-float{animation:mascotSoft 6.4s ease-in-out infinite}.mascot-black-pulse,.prestige-glow{animation:goldPulse 5s ease-in-out infinite}.world-eye-pulse{animation:eyePulse 4s ease-in-out infinite}.forge-pulse{animation:forgePulse 5.4s ease-in-out infinite}.glitch-text{animation:glitchIn .65s ease both}.object-ring.ring-a{animation:orbitA 16s linear infinite}.object-ring.ring-b{animation:orbitB 22s linear infinite}.object-orb{animation:glowPulse 4.8s ease-in-out infinite}
.is-revealing{opacity:0;transform:translateY(12px);filter:blur(5px);transition:opacity .36s ease var(--reveal-delay,0ms),transform .36s ease var(--reveal-delay,0ms),filter .36s ease var(--reveal-delay,0ms)}.is-revealing.is-visible{opacity:1;transform:translateY(0);filter:blur(0)}
.card,.btn,.menu-grid button,.tab,.object-card{transition:transform .22s ease,border-color .22s ease,background .22s ease,box-shadow .22s ease,opacity .22s ease}.object-card:hover,.menu-grid button:hover{transform:translateY(-3px);border-color:#4c4027;box-shadow:0 28px 80px rgba(0,0,0,.34),0 0 0 1px rgba(213,181,107,.05)}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition:none!important;scroll-behavior:auto!important}}

@keyframes menuDrop{from{opacity:0;transform:translateY(-8px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
.nav-menu-dialog[open] .nav-menu-box{animation:menuDrop .2s cubic-bezier(.2,.8,.2,1) both}
