/* =========================================================
   Clout Cat — animations.css
   ========================================================= */

/* Marquee scroll (N cards + N clones, translate -50%) */
@keyframes marquee-scroll {
  from { transform: translate3d(0, 0, 0); }
  to   { transform: translate3d(-50%, 0, 0); }
}

/* Reveal on scroll */
.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 700ms var(--ease-out),
              transform 700ms var(--ease-out);
}
.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}
.reveal[data-delay="1"] { transition-delay: 80ms; }
.reveal[data-delay="2"] { transition-delay: 160ms; }
.reveal[data-delay="3"] { transition-delay: 240ms; }
.reveal[data-delay="4"] { transition-delay: 320ms; }

/* Hero cycling word fade */
.hero__title-cycle .cycle-word {
  display: inline-block;
  opacity: 0;
  filter: blur(8px);
  transform: translateY(-12px);
  animation: cycle-in 320ms var(--ease-out) forwards;
}
.hero__title-cycle .cycle-word.is-leaving {
  animation: cycle-out 260ms var(--ease-in-out) forwards;
}
@keyframes cycle-in {
  from { opacity: 0; filter: blur(8px); transform: translateY(-12px); }
  to   { opacity: 1; filter: blur(0);   transform: translateY(0); }
}
@keyframes cycle-out {
  from { opacity: 1; filter: blur(0);   transform: translateY(0); }
  to   { opacity: 0; filter: blur(8px); transform: translateY(12px); }
}

/* Subtle pulse on accent dots */
@keyframes accent-pulse {
  0%, 100% { box-shadow: 0 0 0 0 var(--accent-glow); }
  50%      { box-shadow: 0 0 0 8px transparent; }
}

@media (prefers-reduced-motion: reduce) {
  .reveal { opacity: 1; transform: none; transition: none; }
  .marquee__track { animation: none; }
  .hero__title-cycle .cycle-word { animation: none; opacity: 1; filter: none; transform: none; }
  *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}
