/* Screen Transitions */
@keyframes fadeInUp { from{opacity:0;transform:translateY(20px)} to{opacity:1;transform:translateY(0)} }
@keyframes fadeOutDown { from{opacity:1;transform:translateY(0)} to{opacity:0;transform:translateY(20px)} }
@keyframes stageIntroIn { 0%{opacity:0;transform:scale(1.5)} 60%{opacity:1;transform:scale(0.95)} 100%{opacity:1;transform:scale(1)} }
@keyframes modalIn { from{opacity:0;transform:scale(0.9)} to{opacity:1;transform:scale(1)} }

/* Title */
@keyframes moleFloat { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-10px)} }
@keyframes buttonGlow { 0%,100%{box-shadow:0 0 5px rgba(0,255,136,0.2)} 50%{box-shadow:0 0 20px rgba(0,255,136,0.4), 0 0 40px rgba(0,255,136,0.1)} }

/* Enemy */
@keyframes enemyPopUp { 0%{transform:scale(0) translateY(30%);opacity:0} 70%{transform:scale(1.15) translateY(-5%);opacity:1} 100%{transform:scale(1) translateY(0);opacity:1} }
@keyframes enemyPopDown { 0%{transform:scale(1) translateY(0);opacity:1} 100%{transform:scale(0.5) translateY(40%);opacity:0} }
@keyframes enemyHit { 0%{transform:scale(1);opacity:1} 30%{transform:scale(1.3) rotate(15deg);opacity:0.8} 100%{transform:scale(0) rotate(30deg);opacity:0} }

/* Enemy Types */
@keyframes goldenShimmer { 0%,100%{filter:drop-shadow(0 0 4px rgba(255,215,0,0.3)) brightness(1)} 50%{filter:drop-shadow(0 0 12px rgba(255,215,0,0.6)) brightness(1.2)} }
@keyframes healPulse { 0%,100%{filter:drop-shadow(0 0 4px rgba(0,255,136,0.2))} 50%{filter:drop-shadow(0 0 10px rgba(0,255,136,0.5))} }
@keyframes shadowFlicker { 0%,100%{opacity:0.3} 30%{opacity:0.15} 50%{opacity:0.4} 80%{opacity:0.2} }
@keyframes magnetPulse { 0%{transform:scale(1);opacity:0.3} 50%{transform:scale(1.3);opacity:0.1} 100%{transform:scale(1);opacity:0.3} }
@keyframes crackShake { 0%,100%{transform:rotate(0)} 25%{transform:rotate(3deg)} 75%{transform:rotate(-3deg)} }
@keyframes warningBlink { 0%,100%{opacity:1} 50%{opacity:0} }
@keyframes frozenSpin { from{transform:rotate(0deg)} to{transform:rotate(360deg)} }

/* Hit Effects */
@keyframes hitFlash { 0%{opacity:1;transform:scale(0.5)} 50%{opacity:0.8;transform:scale(1.2)} 100%{opacity:0;transform:scale(1.5)} }

/* Screen Effects */
@keyframes screenFlash { 0%{opacity:1} 100%{opacity:0} }
@keyframes shakeLight { 0%,100%{transform:translate(0)} 20%{transform:translate(-2px,1px)} 40%{transform:translate(2px,-1px)} 60%{transform:translate(-1px,2px)} 80%{transform:translate(1px,-1px)} }
@keyframes shakeHeavy { 0%,100%{transform:translate(0)} 10%{transform:translate(-6px,3px)} 20%{transform:translate(5px,-4px)} 30%{transform:translate(-4px,5px)} 40%{transform:translate(6px,-2px)} 50%{transform:translate(-3px,4px)} 60%{transform:translate(4px,-3px)} 70%{transform:translate(-5px,2px)} 80%{transform:translate(3px,-4px)} 90%{transform:translate(-2px,3px)} }
@keyframes borderPulse { 0%,100%{opacity:0.4} 50%{opacity:1} }

/* HUD */
@keyframes timerHit { 0%{transform:scale(1);filter:brightness(1)} 20%{transform:scale(1.2);filter:brightness(1.5) drop-shadow(0 0 8px var(--neon-red))} 50%{transform:scale(0.95)} 100%{transform:scale(1);filter:brightness(1)} }
@keyframes timerGain { 0%{transform:scale(1);filter:brightness(1)} 20%{transform:scale(1.2);filter:brightness(1.5) drop-shadow(0 0 8px var(--neon-green))} 50%{transform:scale(0.95)} 100%{transform:scale(1);filter:brightness(1)} }
@keyframes timerBlink { 0%,100%{opacity:1} 50%{opacity:0.3} }
@keyframes bossBreathe { 0%,100%{transform:scale(1)} 50%{transform:scale(1.05)} }
@keyframes bossHurt { 0%{transform:scale(1)} 30%{transform:scale(0.85) rotate(-5deg)} 60%{transform:scale(1.1) rotate(3deg)} 100%{transform:scale(1) rotate(0)} }
@keyframes bossPanic { 0%,100%{transform:translateX(0)} 25%{transform:translateX(-3px) rotate(-2deg)} 75%{transform:translateX(3px) rotate(2deg)} }

/* Floating Text */
@keyframes floatUp { 0%{opacity:1;transform:translateY(0) scale(0.5)} 20%{opacity:1;transform:translateY(-10px) scale(1.2)} 100%{opacity:0;transform:translateY(-60px) scale(0.8)} }

/* Results */
@keyframes gradeReveal { 0%{transform:scale(0) rotate(-20deg);opacity:0} 60%{transform:scale(1.2) rotate(5deg);opacity:1} 100%{transform:scale(1) rotate(0);opacity:1} }
@keyframes unlockReveal { 0%{opacity:0;transform:translateY(10px)} 100%{opacity:1;transform:translateY(0)} }

/* Tutorial */
@keyframes tutorialBounce { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-8px)} }

/* Combo Pop */
@keyframes comboPop { 0%{transform:scale(1)} 50%{transform:scale(1.4)} 100%{transform:scale(1)} }

/* Particles */
@keyframes particleBurst { 0%{transform:translate(0,0) scale(1);opacity:1} 100%{transform:translate(var(--px,20px),var(--py,-30px)) scale(0);opacity:0} }
.particle { position:absolute; width:6px; height:6px; border-radius:50%; pointer-events:none; z-index:15; animation:particleBurst 0.4s ease-out forwards; }
