@keyframes slideInUp{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(60px)}to{opacity:1;transform:translate(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInScale{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes correctPulse{0%{transform:scale(1)}30%{transform:scale(1.04)}60%{transform:scale(.98)}to{transform:scale(1)}}@keyframes wrongShake{0%,to{transform:translate(0)}15%{transform:translate(-8px)}30%{transform:translate(8px)}45%{transform:translate(-6px)}60%{transform:translate(6px)}75%{transform:translate(-3px)}90%{transform:translate(3px)}}@keyframes countdownBar{0%{width:100%}to{width:0%}}@keyframes comboPop{0%{opacity:0;transform:scale(.3)rotate(-10deg)}50%{opacity:1;transform:scale(1.2)rotate(3deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes scoreFloat{0%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(-60px)scale(1.3)}}@keyframes floorSlideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes heartBeat{0%,to{transform:scale(1)}25%{transform:scale(1.3)}50%{transform:scale(.9)}75%{transform:scale(1.15)}}@keyframes confettiFall{0%{opacity:1;transform:translateY(-100vh)rotate(0)}to{opacity:0;transform:translateY(100vh)rotate(720deg)}}@keyframes shineSweep{0%{left:-100%}to{left:200%}}@keyframes bounceIn{0%{opacity:0;transform:scale(.3)}50%{transform:scale(1.08)}70%{transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes trophyFloat{0%,to{transform:translateY(0)rotate(0)}25%{transform:translateY(-8px)rotate(-2deg)}75%{transform:translateY(-4px)rotate(2deg)}}@keyframes glowPulse{0%,to{box-shadow:0 0 20px #8b1c1c33}50%{box-shadow:0 0 40px #8b1c1c66,0 0 60px #8b1c1c1a}}@keyframes buttonPress{0%{transform:scale(1)}50%{transform:scale(.95)}to{transform:scale(1)}}.game-slide-up{animation:.5s cubic-bezier(.16,1,.3,1) forwards slideInUp}.game-slide-right{animation:.4s cubic-bezier(.16,1,.3,1) forwards slideInRight}.game-fade-in{animation:.4s ease-out forwards fadeIn}.game-fade-in-scale{animation:.5s cubic-bezier(.16,1,.3,1) forwards fadeInScale}.game-correct{animation:.5s ease-out correctPulse}.game-wrong{animation:.5s ease-out wrongShake}.game-combo-pop{animation:.4s cubic-bezier(.34,1.56,.64,1) forwards comboPop}.game-score-float{animation:1s ease-out forwards scoreFloat}.game-floor-transition{animation:.6s cubic-bezier(.16,1,.3,1) forwards floorSlideUp}.game-heart-beat{animation:.6s ease-in-out heartBeat}.game-bounce-in{animation:.6s cubic-bezier(.34,1.56,.64,1) forwards bounceIn}.game-trophy-float{animation:3s ease-in-out infinite trophyFloat}.game-glow-pulse{animation:2s ease-in-out infinite glowPulse}.game-button-press:active{animation:.15s ease-out buttonPress}.game-countdown-bar{animation:countdownBar var(--countdown-duration,20s) linear forwards}.game-confetti{width:10px;height:10px;animation:confettiFall var(--fall-duration,3s) linear forwards;animation-delay:var(--fall-delay,0s);z-index:100;pointer-events:none;border-radius:2px;position:fixed;top:0}.game-shine{position:relative;overflow:hidden}.game-shine:after{content:"";background:linear-gradient(90deg,#0000,#ffffff4d,#0000);width:50%;height:100%;animation:2s ease-in-out 1s infinite shineSweep;position:absolute;top:0;left:-100%}.game-stagger>*{opacity:0;animation:.4s cubic-bezier(.16,1,.3,1) forwards slideInUp}.game-stagger>:first-child{animation-delay:50ms}.game-stagger>:nth-child(2){animation-delay:.1s}.game-stagger>:nth-child(3){animation-delay:.15s}.game-stagger>:nth-child(4){animation-delay:.2s}.timer-safe{background:linear-gradient(90deg,#22c55e,#16a34a)}.timer-warning{background:linear-gradient(90deg,#f59e0b,#d97706)}.timer-danger{background:linear-gradient(90deg,#ef4444,#dc2626);animation:.5s ease-in-out infinite glowPulse}
