/* ============================================================
   ANIMATIONS — base visible state + reduced-motion overrides
   IMPORTANT: [data-reveal] / [data-reveal-stagger] elements are
   fully visible by default in CSS. JS (scroll-animations.js)
   animates FROM this visible state — it never hides content
   that JS then fails to reveal (progressive enhancement).
   ============================================================ */

[data-reveal],
[data-reveal-stagger] {
  opacity: 1;
  transform: none;
}

/* Preloader never blocks content if JS fails to run */
#preloader {
  animation: none;
}
@media (prefers-reduced-motion: no-preference) {
  #preloader { transition: opacity 0.4s ease; }
}

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

  #preloader { display: none !important; }
  .scroll-cue-mouse span { animation: none !important; }
  /* scroll-hero reduced-motion handled in sections.css */
}
