/* =====================================================================
   NOVA SPORTS — animations.css
   Keyframe animations. Sequenced/looping motion is driven by GSAP in
   assets/js/animations.js; this file holds the CSS-native pieces
   (floating particles) and the reduced-motion fallbacks.
   ===================================================================== */

/* Floating particle drift (reveal) */
@keyframes nv-float {
  0%   { transform: translate3d(0, 0, 0) scale(1);                              opacity: 0; }
  15%  { opacity: var(--p-op, 0.8); }
  85%  { opacity: var(--p-op, 0.8); }
  100% { transform: translate3d(var(--p-dx, 20px), var(--p-dy, -60px), 0) scale(1.15); opacity: 0; }
}
.nv-particle {
  animation: nv-float var(--p-dur, 9s) ease-in-out var(--p-delay, 0s) infinite;
}

/* Hover micro-transition for footer social icons is defined inline in
   style.css via the .ic transition property. */

/* =====================================================================
   Reduced motion — respect the user's OS preference.
   All GSAP timelines are skipped in JS; here we make sure nothing is
   left mid-animation and the reveal is not shown at all.
   ===================================================================== */
@media (prefers-reduced-motion: reduce) {
  .nv-particle { display: none; }

  /* Loader resting state */
  .loader-fill { width: 38%; opacity: 1; }
  .loader-ball { left: 36%; }

  /* Reveal is hidden immediately by JS; ensure no animation flashes */
  .reveal { display: none; }

  /* Hero content is visible with no entrance transform */
  .reveal-item, .player { opacity: 1 !important; transform: none !important; }
}
