.animate-on-scroll {
    opacity: 0;
    transition-duration: 0.8s;
    transition-timing-function: cubic-bezier(0.16, 1, 0.3, 1);
    will-change: opacity, transform;
}

/* Fade Up */
.fade-up {
    transform: translateY(30px);
}
.fade-up.is-visible {
    opacity: 1;
    transform: translateY(0);
}

/* Fade In */
.fade-in {
    transform: scale(0.95);
}
.fade-in.is-visible {
    opacity: 1;
    transform: scale(1);
}

/* Staggering Delays */
.delay-100 { transition-delay: 100ms; }
.delay-200 { transition-delay: 200ms; }
.delay-300 { transition-delay: 300ms; }
.delay-400 { transition-delay: 400ms; }
.delay-500 { transition-delay: 500ms; }
