/* ============================================================
   EternalCurrent.Online — Animations
   css/animations.css — keyframes and animation utilities
   ============================================================ */

/* ── KEYFRAMES ── */
@keyframes shimmer {
  0%   { background-position: 100% 50%; }
  100% { background-position: -100% 50%; }
}

@keyframes spin {
  to { transform: rotate(360deg); }
}

@keyframes fadeIn {
  from { opacity: 0; transform: translateY(6px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes fadeInFast {
  from { opacity: 0; }
  to   { opacity: 1; }
}

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

@keyframes pulseGlow {
  0%, 100% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--color-accent-c) 30%, transparent); }
  50%       { box-shadow: 0 0 0 8px transparent; }
}

@keyframes arcDraw {
  from { stroke-dashoffset: 150.8; }
}

/* ── ANIMATION UTILITY CLASSES ── */
.anim-fade-in       { animation: fadeIn     var(--transition-base) ease both; }
.anim-fade-in-fast  { animation: fadeInFast var(--transition-fast)  ease both; }
.anim-slide-up      { animation: slideUp    300ms ease both; }
.anim-spin          { animation: spin       0.7s linear infinite; }

/* Stagger children */
.stagger > * { animation: fadeIn var(--transition-base) ease both; }
.stagger > *:nth-child(1) { animation-delay: 0ms; }
.stagger > *:nth-child(2) { animation-delay: 60ms; }
.stagger > *:nth-child(3) { animation-delay: 120ms; }
.stagger > *:nth-child(4) { animation-delay: 180ms; }
.stagger > *:nth-child(5) { animation-delay: 240ms; }

/* ── REDUCE MOTION ── */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}
