/**
 * animations.css — Scroll animation states
 *
 * Pre-animation: sections start hidden (opacity:0, shifted down 30px).
 * GSAP ScrollTrigger animates them to visible on scroll.
 *
 * Safety layers:
 * - prefers-reduced-motion: instantly visible, no animation (D-11)
 * - no-js class: visible if JavaScript fails to load (CDN failure fallback)
 */

/* Pre-animation state: hidden until GSAP reveals (D-09) */
.animate-on-scroll {
  opacity: 0;
  transform: translateY(30px);
}

/* Reduced motion: show everything immediately (D-11) */
@media (prefers-reduced-motion: reduce) {
  .animate-on-scroll {
    opacity: 1 !important;
    transform: none !important;
  }
}

/* No-JS fallback: show everything if GSAP/JS fails to load */
.no-js .animate-on-scroll {
  opacity: 1;
  transform: none;
}
