/**
 * Premium Scroll Animations - Base Styles
 * 
 * Provides smooth, restrained scroll-triggered animations with:
 * - Alternating slide directions
 * - Subtle blur effects
 * - Reduced motion support
 * - No layout shift
 */

/* Ensure elements with animations don't cause layout shift */
[data-animate] {
    will-change: transform, opacity, filter;
}

/* Smooth transitions for animated elements */
[data-animate="slide-in"] {
    transition-property: opacity, transform, filter;
    transition-timing-function: cubic-bezier(0.16, 1, 0.3, 1);
}

/* Reduced Motion Support - Disable all animations */
@media (prefers-reduced-motion: reduce) {
    [data-animate] {
        opacity: 1 !important;
        transform: none !important;
        filter: none !important;
        transition: none !important;
    }
}

/* Utility class for instant visibility (fallback) */
.animate-visible {
    opacity: 1;
    transform: translateX(0);
    filter: blur(0);
}

/* Optional: Add a subtle fade-in for elements without scroll animation */
.fade-in {
    animation: fadeIn 0.6s ease-out forwards;
}

@keyframes fadeIn {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

/* Performance optimization */
@media (prefers-reduced-motion: no-preference) {
    [data-animate] {
        /* Enable GPU acceleration for smoother animations */
        transform: translateZ(0);
        backface-visibility: hidden;
    }
}