@keyframes glowPulse {
  0% { filter: brightness(1); }
  50% { filter: brightness(1.15) drop-shadow(0 0 20px rgba(108, 92, 231, 0.5)); }
  100% { filter: brightness(1); }
}

@keyframes screenShake {
  0%, 100% { transform: translate(0, 0); }
  10% { transform: translate(-3px, -2px); }
  20% { transform: translate(4px, 1px); }
  30% { transform: translate(-2px, 3px); }
  40% { transform: translate(3px, -2px); }
  50% { transform: translate(-4px, 1px); }
  60% { transform: translate(2px, -3px); }
  70% { transform: translate(-1px, 2px); }
  80% { transform: translate(3px, -1px); }
  90% { transform: translate(-2px, 2px); }
}

@keyframes perfectPop {
  0% { transform: translate(-50%, -50%) scale(0.3); opacity: 0; }
  30% { transform: translate(-50%, -50%) scale(1.2); opacity: 1; }
  60% { transform: translate(-50%, -60%) scale(1); opacity: 1; }
  100% { transform: translate(-50%, -80%) scale(0.8); opacity: 0; }
}

@keyframes wrongFlash {
  0% { background-color: var(--bg); }
  30% { background-color: rgba(255, 82, 82, 0.15); }
  100% { background-color: var(--bg); }
}

@keyframes vignetteIn {
  0% { opacity: 0; }
  100% { opacity: 1; }
}

@keyframes timerPulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(1.1); }
}

@keyframes scoreFly {
  0% { transform: translateY(0); opacity: 1; }
  100% { transform: translateY(-40px); opacity: 0; }
}

@keyframes roundClearFlash {
  0% { filter: brightness(1); }
  40% { filter: brightness(1.3); }
  100% { filter: brightness(1); }
}

@keyframes fadeIn {
  0% { opacity: 0; transform: translateY(10px); }
  100% { opacity: 1; transform: translateY(0); }
}

@keyframes slideUp {
  0% { opacity: 0; transform: translateY(20px); }
  100% { opacity: 1; transform: translateY(0); }
}

@keyframes pulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.05); }
}
