/* Base styles for elements to be revealed */
.scroll-reveal {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
    will-change: opacity, transform;
}

/* Style when element is revealed */
.scroll-reveal.revealed {
    opacity: 1;
    transform: translateY(0);
}

/* Different animation types */
.scroll-reveal.fade-in {
    opacity: 0;
    transform: none;
}

.scroll-reveal.fade-in.revealed {
    opacity: 1;
}

.scroll-reveal.slide-left {
    transform: translateX(-30px);
}

.scroll-reveal.slide-right {
    transform: translateX(30px);
}

.scroll-reveal.slide-left.revealed,
.scroll-reveal.slide-right.revealed {
    transform: translateX(0);
}

.scroll-reveal.zoom-in {
    transform: scale(0.9);
}

.scroll-reveal.zoom-in.revealed {
    transform: scale(1);
}

/* Delay classes for staggered animations */
.scroll-reveal.delay-1 {
    transition-delay: 0.1s;
}

.scroll-reveal.delay-2 {
    transition-delay: 0.2s;
}

.scroll-reveal.delay-3 {
    transition-delay: 0.3s;
}

.scroll-reveal.delay-4 {
    transition-delay: 0.4s;
}

.scroll-reveal.delay-5 {
    transition-delay: 0.5s;
}
