/* ============================================================
   ROKDA7 — animations.css
   All keyframes + scroll-reveal classes + stagger delays
   ============================================================ */

/* ---------- Keyframes ---------- */
@keyframes floatArena    { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-12px)} }
@keyframes neonFlicker   { 0%,90%,100%{opacity:1} 91%,95%{opacity:.7} 93%{opacity:.9} }
@keyframes ticker        { from{transform:translateX(0)} to{transform:translateX(-50%)} }
@keyframes pulseRed      { 0%,100%{box-shadow:0 0 16px rgba(232,0,29,.3)} 50%{box-shadow:0 0 40px rgba(232,0,29,.75)} }
@keyframes expandRing    { 0%{opacity:.6;transform:scale(.8)} 100%{opacity:0;transform:scale(2.4)} }
@keyframes floatY        { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-10px)} }
@keyframes slideInUp     { from{opacity:0;transform:translateY(32px)} to{opacity:1;transform:translateY(0)} }
@keyframes slideInRight  { from{opacity:0;transform:translateX(32px)} to{opacity:1;transform:translateX(0)} }
@keyframes shimmer       { 0%{background-position:-200% 0} 100%{background-position:200% 0} }
@keyframes borderScan    { 0%{background-position:0%} 100%{background-position:200%} }
@keyframes countUp       { from{opacity:0} to{opacity:1} }
@keyframes fanOpen       { from{transform:rotate(0) translateX(0)} to{transform:rotate(var(--fan-angle)) translateX(var(--fan-x))} }
@keyframes blink         { 0%,100%{opacity:1} 50%{opacity:0} }
@keyframes particleDrift { 0%{transform:translate(0,0)} 100%{transform:translate(var(--dx),var(--dy))} }
@keyframes podiumRise    { from{transform:scaleY(0);transform-origin:bottom} to{transform:scaleY(1)} }
@keyframes spinArc       { from{transform:rotate(0)} to{transform:rotate(360deg)} }
@keyframes shake         { 0%,100%{transform:translateX(0)} 20%,60%{transform:translateX(-8px)} 40%,80%{transform:translateX(8px)} }
@keyframes scrollScan    { from{background-position:0 0} to{background-position:0 40px} }
@keyframes glowPulseText { 0%,100%{text-shadow:0 0 10px rgba(232,0,29,.6),0 0 30px rgba(232,0,29,.35)} 50%{text-shadow:0 0 18px rgba(232,0,29,.9),0 0 52px rgba(232,0,29,.55)} }

/* ---------- Utility animation hooks ---------- */
.anim-float      { animation: floatArena 6s ease-in-out infinite; }
.anim-flicker    { animation: neonFlicker 4s linear infinite; }
.anim-pulse-red  { animation: pulseRed 2.4s ease-in-out infinite; }
.anim-glow-text  { animation: glowPulseText 3s ease-in-out infinite; }
.anim-blink      { animation: blink 1.1s step-end infinite; }

/* ---------- Live dot ---------- */
.live-dot{ position:relative; display:inline-block; width:8px; height:8px; border-radius:50%; background:var(--red-hot); }
.live-dot::after{ content:""; position:absolute; inset:0; border-radius:50%; background:var(--red-hot);
  animation:expandRing 1.8s ease-out infinite; transform-origin:center; }

/* ---------- Staggered hero game tiles ---------- */
.game-tile:nth-child(1){ animation-delay:.05s; }
.game-tile:nth-child(2){ animation-delay:.15s; }
.game-tile:nth-child(3){ animation-delay:.25s; }
.game-tile:nth-child(4){ animation-delay:.35s; }
.game-tile:nth-child(5){ animation-delay:.45s; }
.game-tile:nth-child(6){ animation-delay:.55s; }

/* ---------- Shimmer gold text ---------- */
.shimmer-text{
  background:linear-gradient(90deg,var(--gold-muted),var(--gold-accent),#fff,var(--gold-accent),var(--gold-muted));
  background-size:200% auto; -webkit-background-clip:text; background-clip:text; color:transparent;
  animation:shimmer 4s linear infinite;
}

/* ---------- Scroll reveal ---------- */
.reveal{ opacity:0; transform:translateY(28px); transition:opacity .55s ease, transform .55s ease; }
.reveal.revealed{ opacity:1; transform:translateY(0); }
.reveal-left{ opacity:0; transform:translateX(-28px); transition:opacity .55s ease, transform .55s ease; }
.reveal-left.revealed{ opacity:1; transform:translateX(0); }
.reveal-right{ opacity:0; transform:translateX(28px); transition:opacity .55s ease, transform .55s ease; }
.reveal-right.revealed{ opacity:1; transform:translateX(0); }
.reveal-scale{ opacity:0; transform:scale(.94); transition:opacity .55s ease, transform .55s ease; }
.reveal-scale.revealed{ opacity:1; transform:scale(1); }

/* ---------- Stagger delays ---------- */
.stagger > *:nth-child(1){ transition-delay:0s; }
.stagger > *:nth-child(2){ transition-delay:.1s; }
.stagger > *:nth-child(3){ transition-delay:.2s; }
.stagger > *:nth-child(4){ transition-delay:.3s; }
.stagger > *:nth-child(5){ transition-delay:.4s; }
.stagger > *:nth-child(6){ transition-delay:.5s; }
.stagger > *:nth-child(7){ transition-delay:.6s; }
.stagger > *:nth-child(8){ transition-delay:.7s; }

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{ animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; scroll-behavior:auto !important; }
  .reveal,.reveal-left,.reveal-right,.reveal-scale{ opacity:1 !important; transform:none !important; }
}
