/* ========================================
   Scroll-triggered animations
   ======================================== */

@media (prefers-reduced-motion: no-preference) {
  [data-animate] {
    opacity: 0;
    transform: translateY(20px);
    transition:
      opacity var(--transition-slow),
      transform var(--transition-slow);
  }

  [data-animate][data-delay="1"] { transition-delay: 150ms; }
  [data-animate][data-delay="2"] { transition-delay: 300ms; }
  [data-animate][data-delay="3"] { transition-delay: 450ms; }
  [data-animate][data-delay="4"] { transition-delay: 600ms; }

  [data-animate].visible {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (prefers-reduced-motion: reduce) {
  [data-animate] {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

/* ========================================
   Hero ambient animation
   ======================================== */

@keyframes heroPulse {
  0% { opacity: 0.06; }
  100% { opacity: 0.12; }
}

@media (prefers-reduced-motion: reduce) {
  .hero-bg-grid {
    animation: none !important;
    opacity: 0.08;
  }
}
