/* Animations */

@keyframes fadeIn {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

@keyframes fadeOut {
    from {
        opacity: 1;
    }

    to {
        opacity: 0;
    }
}

@keyframes slideUp {
    from {
        transform: translateY(20px);
        opacity: 0;
    }

    to {
        transform: translateY(0);
        opacity: 1;
    }
}

@keyframes zoomInEffect {
    from {
        transform: scale(1);
    }

    to {
        transform: scale(1.1);
    }
}

/* Utilities */
.fade-in {
    animation: fadeIn 2s ease-in forwards;
}

.fade-out {
    animation: fadeOut 1s ease-out forwards;
}

.slide-up {
    animation: slideUp 1s ease-out forwards;
}

.fade-in-up {
    opacity: 0;
    transform: translateY(20px);
    transition: all 1s ease-out;
}

.fade-in-up.active {
    opacity: 1;
    transform: translateY(0);
}

/* Scroll Reveal Base */
.scroll-reveal {
    opacity: 0;
    transform: translateY(40px);
    transition: all 0.8s cubic-bezier(0.5, 0, 0, 1);
}

.scroll-reveal.active {
    opacity: 1;
    transform: translateY(0);
}

.delay-1s {
    animation-delay: 1s;
}

.delay-2s {
    animation-delay: 2s;
}

.delay-3s {
    animation-delay: 3s;
}