/* ==========================================================================
   CSS ANIMATIONS & KEYFRAMES
   ========================================================================== */

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

.animate-fade-in-up {
    animation: fadeInUp 0.8s cubic-bezier(0.25, 1, 0.5, 1) forwards;
}

/* Floating Elements (Subtle parallax-like bounce) */
@keyframes float {
    0% {
        transform: translateY(0px) rotate(0deg);
    }
    50% {
        transform: translateY(-15px) rotate(3deg);
    }
    100% {
        transform: translateY(0px) rotate(0deg);
    }
}

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

/* Slow Rotator */
@keyframes spinSlow {
    from {
        transform: rotate(0deg);
    }
    to {
        transform: rotate(360deg);
    }
}

.animate-spin-slow {
    animation: spinSlow 20s linear infinite;
}

/* Gold Glow Pulse */
@keyframes glowPulse {
    0%, 100% {
        box-shadow: 0 0 10px rgba(212, 163, 115, 0.1);
    }
    50% {
        box-shadow: 0 0 25px rgba(212, 163, 115, 0.4);
    }
}

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

/* Slide in from left */
@keyframes slideInLeft {
    from {
        opacity: 0;
        transform: translateX(-50px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

.animate-slide-left {
    animation: slideInLeft 0.8s cubic-bezier(0.25, 1, 0.5, 1) forwards;
}

/* Card hover reveal */
.hover-reveal-parent {
    position: relative;
    overflow: hidden;
}
.hover-reveal-child {
    position: absolute;
    inset: 0;
    background-color: rgba(14,14,14,0.85);
    display: flex;
    justify-content: center;
    align-items: center;
    transform: translateY(101%);
    transition: var(--transition-smooth);
}
.hover-reveal-parent:hover .hover-reveal-child {
    transform: translateY(0);
}
