/* Fade-in on-scroll animations (lightweight) */
/* Respect user motion preferences */
@media (prefers-reduced-motion: reduce) {
  .animate-on-scroll {
    transition: none !important;
    transform: none !important;
    opacity: 1 !important;
  }
}

.animate-on-scroll {
  opacity: 0;
  transform: translateY(12px);
  transition: opacity 500ms var(--default-transition-timing-function, ease), transform 500ms var(--default-transition-timing-function, ease);
  will-change: opacity, transform;
}

/* In-view state: visible */
.animate-on-scroll.in-view {
  opacity: 1;
  transform: none;
}

/* Optional small utility to stagger items using data-delay in ms */
.animate-on-scroll[data-delay] {
  transition-delay: calc(var(--delay, 0ms));
}
.animate-on-scroll[data-delay="100"] { transition-delay: 100ms; }
.animate-on-scroll[data-delay="150"] { transition-delay: 150ms; }
.animate-on-scroll[data-delay="200"] { transition-delay: 200ms; }
.animate-on-scroll[data-delay="250"] { transition-delay: 250ms; }
.animate-on-scroll[data-delay="300"] { transition-delay: 300ms; }
