/* Animaciones extra llamativas para secciones y tarjetas */

.bounce-in {
    opacity: 0;
    transform: scale(0.95) translateY(60px);
    transition: opacity 0.7s cubic-bezier(.77,0,.18,1), transform 0.7s cubic-bezier(.77,0,.18,1);
}
.bounce-in.in-view {
    opacity: 1;
    transform: scale(1.05) translateY(-10px);
    animation: bounceEffect 0.7s cubic-bezier(.77,0,.18,1);
}

@keyframes bounceEffect {
    0% { transform: scale(0.95) translateY(60px); }
    60% { transform: scale(1.08) translateY(-20px); }
    80% { transform: scale(0.98) translateY(0px); }
    100% { transform: scale(1.05) translateY(-10px); }
}

.zoom-in {
    opacity: 0;
    transform: scale(0.8);
    transition: opacity 0.7s cubic-bezier(.77,0,.18,1), transform 0.7s cubic-bezier(.77,0,.18,1);
}
.zoom-in.in-view {
    opacity: 1;
    transform: scale(1);
    animation: zoomEffect 0.7s cubic-bezier(.77,0,.18,1);
}

@keyframes zoomEffect {
    0% { transform: scale(0.8); }
    60% { transform: scale(1.1); }
    80% { transform: scale(0.95); }
    100% { transform: scale(1); }
}

.glow-in {
    opacity: 0;
    filter: blur(8px) brightness(1.2);
    transition: opacity 0.7s cubic-bezier(.77,0,.18,1), filter 0.7s cubic-bezier(.77,0,.18,1);
}
.glow-in.in-view {
    opacity: 1;
    filter: blur(0) brightness(1);
    animation: glowEffect 1s ease;
}

@keyframes glowEffect {
    0% { filter: blur(8px) brightness(1.2); }
    60% { filter: blur(2px) brightness(1.1); }
    100% { filter: blur(0) brightness(1); }
}
