/* Parallax and Reveal Animations */

.reveal-element {
    opacity: 0;
    transform: translateY(60px) scale(0.97);
    filter: blur(8px);
    transition: opacity 1.2s cubic-bezier(0.16, 1, 0.3, 1), 
                transform 1.2s cubic-bezier(0.16, 1, 0.3, 1),
                filter 1s cubic-bezier(0.16, 1, 0.3, 1);
    will-change: opacity, transform, filter;
}

.reveal-element.revealed {
    opacity: 1;
    transform: translateY(0) scale(1);
    filter: blur(0);
}

/* Stagger delays for children if needed */
.reveal-delay-100 { transition-delay: 100ms; }
.reveal-delay-200 { transition-delay: 200ms; }
.reveal-delay-300 { transition-delay: 300ms; }
.reveal-delay-400 { transition-delay: 400ms; }
.reveal-delay-500 { transition-delay: 500ms; }

/* Parallax Elements */
.parallax-bg {
    /* Scale slightly larger so background translation doesn't show edges */
    will-change: transform;
    transform: scale(1.15); /* default scale to prevent edge cutting during parallax */
}

.parallax-fg {
    will-change: transform;
}
