/* assets/css/animations.css - Efectos de movimiento, rebotes y dinamismo */

@keyframes floatSlow {
    0%, 100% {
        transform: translateY(0px) rotate(0deg);
    }
    50% {
        transform: translateY(-16px) rotate(3deg);
    }
}

@keyframes floatReverse {
    0%, 100% {
        transform: translateY(0px) rotate(0deg);
    }
    50% {
        transform: translateY(14px) rotate(-4deg);
    }
}

@keyframes bounceSlow {
    0%, 100% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-8px);
    }
}

@keyframes pulseGlow {
    0%, 100% {
        box-shadow: 0 0 0 0 rgba(230, 92, 0, 0.4);
        transform: scale(1);
    }
    50% {
        box-shadow: 0 0 25px 8px rgba(230, 92, 0, 0.2);
        transform: scale(1.02);
    }
}

@keyframes heartbeat {
    0%, 100% {
        transform: scale(1);
    }
    15% {
        transform: scale(1.25);
    }
    30% {
        transform: scale(1.05);
    }
    45% {
        transform: scale(1.2);
    }
}

@keyframes wiggle {
    0%, 100% { transform: rotate(0deg); }
    25% { transform: rotate(-6deg); }
    75% { transform: rotate(6deg); }
}

@keyframes claySpin {
    0% {
        transform: rotate(0deg) scale(1);
    }
    50% {
        transform: rotate(180deg) scale(1.08);
    }
    100% {
        transform: rotate(360deg) scale(1);
    }
}

@keyframes rainbowShift {
    0% { filter: hue-rotate(0deg); }
    100% { filter: hue-rotate(360deg); }
}

@keyframes waveMotion {
    0% {
        transform: translateX(0) translateZ(0) scaleY(1);
    }
    50% {
        transform: translateX(-25%) translateZ(0) scaleY(1.15);
    }
    100% {
        transform: translateX(-50%) translateZ(0) scaleY(1);
    }
}

@keyframes shineEffect {
    0% {
        left: -100%;
    }
    100% {
        left: 150%;
    }
}

/* Clases utilitarias de animación */
.anim-float {
    animation: floatSlow 4s ease-in-out infinite;
}

.anim-float-rev {
    animation: floatReverse 5s ease-in-out infinite;
}

.anim-bounce {
    animation: bounceSlow 2s ease-in-out infinite;
}

.anim-pulse {
    animation: pulseGlow 2.5s infinite;
}

.anim-heart {
    animation: heartbeat 1.8s infinite;
    display: inline-block;
}

.anim-wiggle-hover:hover {
    animation: wiggle 0.4s ease-in-out;
}

/* Confeti container */
#confetti-canvas {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    pointer-events: none;
    z-index: 99999;
}

/* Revelación al hacer scroll */
.reveal-on-scroll {
    opacity: 0;
    transform: translateY(35px);
    transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1), transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}

.reveal-on-scroll.is-revealed {
    opacity: 1;
    transform: translateY(0);
}
