/* =========================================
   ANIMATION SYSTEM
   ========================================= */

/* Keyframes */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(40px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes fadeInLeft {
    from {
        opacity: 0;
        transform: translateX(-40px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes fadeInRight {
    from {
        opacity: 0;
        transform: translateX(40px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes float {
    0% {
        transform: translateY(0px);
    }
    50% {
        transform: translateY(-15px);
    }
    100% {
        transform: translateY(0px);
    }
}

@keyframes glowPulse {
    0% {
        box-shadow: 0 0 20px rgba(212, 175, 55, 0.1), inset 0 0 10px rgba(0, 0, 0, 0.5);
    }
    50% {
        box-shadow: 0 0 40px rgba(212, 175, 55, 0.3), inset 0 0 20px rgba(0, 0, 0, 0.6);
    }
    100% {
        box-shadow: 0 0 20px rgba(212, 175, 55, 0.1), inset 0 0 10px rgba(0, 0, 0, 0.5);
    }
}

@keyframes pulseOpacity {
    0% { opacity: 0.6; }
    50% { opacity: 1; }
    100% { opacity: 0.6; }
}

/* Animation Classes */
.fade-in-up {
    animation: fadeInUp 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.fade-in-left {
    animation: fadeInLeft 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.fade-in-right {
    animation: fadeInRight 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

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

.animate-glow {
    animation: glowPulse 4s ease-in-out infinite;
}

.pulse {
    animation: pulseOpacity 2s infinite;
}