/* animations.css — shared keyframes for UI motion. */

@keyframes screen-in {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes spin {
  to { transform: rotate(360deg); }
}

@keyframes pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.45; }
}

@keyframes trick-in {
  from { opacity: 0; transform: scale(0.6) translateY(10px); }
  to { opacity: 1; transform: scale(1) translateY(0); }
}

@keyframes vignette-flash {
  0% { opacity: 0; }
  15% { opacity: 1; }
  100% { opacity: 0; }
}

@keyframes medal-pop {
  0% { transform: scale(0) rotate(-30deg); }
  60% { transform: scale(1.25) rotate(8deg); }
  100% { transform: scale(1) rotate(0); }
}

@keyframes menu-item-in {
  from { opacity: 0; transform: translateY(16px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes ride-glow {
  0%, 100% { box-shadow: 0 4px 14px rgba(0, 0, 0, 0.35), 0 0 18px rgba(55, 182, 255, 0.35); }
  50% { box-shadow: 0 4px 14px rgba(0, 0, 0, 0.35), 0 0 34px rgba(55, 182, 255, 0.7); }
}

@keyframes lightning-flash {
  0% { opacity: 0; }
  8% { opacity: 1; }
  22% { opacity: 0.15; }
  32% { opacity: 0.65; }
  100% { opacity: 0; }
}

@keyframes countdown-pop {
  0% { transform: scale(2.2); opacity: 0; }
  35% { transform: scale(1); opacity: 1; }
  85% { transform: scale(1); opacity: 1; }
  100% { transform: scale(0.9); opacity: 0.2; }
}

.hud-countdown.pop { animation: countdown-pop 0.95s ease; }

/* Respect users who prefer reduced motion. */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

@keyframes fade-in-up {
  from { opacity: 0; transform: translateY(14px); }
  to { opacity: 1; transform: translateY(0); }
}
