/* Animaciones de Scroll */
.animate-on-scroll {
    transition: all 0.8s ease;
}

.hidden {
    opacity: 0;
    transform: translateY(30px);
    will-change: transform, opacity;
}

.visible {
    opacity: 1;
    transform: translateY(0);
}

.fade-in-up {
    transform: translateY(40px);
    opacity: 0;
}

.fade-in-up.visible {
    transform: translateY(0);
    opacity: 1;
}

.fade-in {
    opacity: 0;
}

.fade-in.visible {
    opacity: 1;
}

.slide-in-left {
    transform: translateX(-100px);
    opacity: 0;
}

.slide-in-left.visible {
    transform: translateX(0);
    opacity: 1;
}

.slide-in-right {
    transform: translateX(100px);
    opacity: 0;
}

.slide-in-right.visible {
    transform: translateX(0);
    opacity: 1;
}

.zoom-in {
    transform: scale(0.8);
    opacity: 0;
}

.zoom-in.visible {
    transform: scale(1);
    opacity: 1;
}