/* ==========================================================================
   ANIMATIONS
   ========================================================================== */

/* Fade In Up */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.fade-in-up {
    animation: fadeInUp 0.8s cubic-bezier(0.4, 0, 0.2, 1) forwards;
    opacity: 0;
}

.delay-100 { animation-delay: 100ms; }
.delay-200 { animation-delay: 200ms; }
.delay-300 { animation-delay: 300ms; }

/* Gentle Pulse Glow */
@keyframes pulseGlow {
    0% { box-shadow: 0 0 15px rgba(239, 68, 68, 0.3); }
    50% { box-shadow: 0 0 25px rgba(249, 115, 22, 0.6); }
    100% { box-shadow: 0 0 15px rgba(239, 68, 68, 0.3); }
}

.pulse-glow {
    animation: pulseGlow 3s infinite alternate;
}

/* Gradient Shift for Backgrounds */
@keyframes gradientShift {
    0% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}

.gradient-bg {
    background-size: 200% 200%;
    animation: gradientShift 10s ease infinite;
}

/* Floating Elements */
@keyframes float {
    0% { transform: translateY(0px); }
    50% { transform: translateY(-10px); }
    100% { transform: translateY(0px); }
}

.float-anim {
    animation: float 6s ease-in-out infinite;
}