/* ==========================================================================
   Animations
   ========================================================================== */

@keyframes spin{to{transform:rotate(360deg);}}
@keyframes fadeUp{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:translateY(0);}}
@keyframes toastIn{from{opacity:0;transform:translateX(30px);}to{opacity:1;transform:translateX(0);}}
@keyframes floatY{0%,100%{transform:translateY(0);}50%{transform:translateY(-14px);}}
@keyframes pulseGlow{0%,100%{opacity:.35;}50%{opacity:.6;}}
@keyframes popIn{0%{transform:scale(0);opacity:0;}70%{transform:scale(1.1);}100%{transform:scale(1);opacity:1;}}
@keyframes shimmer{0%{background-position:-200% 0;}100%{background-position:200% 0;}}

.hero-float-card.fc1{animation:floatY 4.5s ease-in-out infinite;}
.hero-float-card.fc2{animation:floatY 5.5s ease-in-out infinite 1s;}
.hero-blob{animation:pulseGlow 6s ease-in-out infinite;}

/* Scroll reveal */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s cubic-bezier(.4,0,.2,1),transform .7s cubic-bezier(.4,0,.2,1);}
.reveal.in-view{opacity:1;transform:translateY(0);}
.reveal-stagger.in-view > *{animation:fadeUp .6s ease both;}
.reveal-stagger.in-view > *:nth-child(1){animation-delay:.05s;}
.reveal-stagger.in-view > *:nth-child(2){animation-delay:.12s;}
.reveal-stagger.in-view > *:nth-child(3){animation-delay:.19s;}
.reveal-stagger.in-view > *:nth-child(4){animation-delay:.26s;}
.reveal-stagger.in-view > *:nth-child(5){animation-delay:.33s;}
.reveal-stagger.in-view > *:nth-child(6){animation-delay:.4s;}
.reveal-stagger.in-view > *:nth-child(7){animation-delay:.47s;}
.reveal-stagger.in-view > *:nth-child(8){animation-delay:.54s;}

/* Wheel spinning state */
#wheelCanvas.spinning{cursor:progress;}

.winner-emoji.pop{animation:popIn .5s cubic-bezier(.34,1.56,.64,1);}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
    scroll-behavior:auto !important;
  }
}
