/* ==========================================================================
   ANIMATIONS & MICRO-INTERACTIONS
   ========================================================================== */

/* Keyframes */
@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes fadeUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes pulseCopper {
    0% { box-shadow: 0 0 0 0 rgba(184, 115, 51, 0.4); }
    70% { box-shadow: 0 0 0 15px rgba(184, 115, 51, 0); }
    100% { box-shadow: 0 0 0 0 rgba(184, 115, 51, 0); }
}

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

/* Scroll Reveal Classes */
.reveal {
    opacity: 0;
    transform: translateY(40px);
    transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1), transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
    will-change: opacity, transform;
}

.reveal.active {
    opacity: 1;
    transform: translateY(0);
}

.reveal-delay-1 { transition-delay: 0.15s; }
.reveal-delay-2 { transition-delay: 0.3s; }
.reveal-delay-3 { transition-delay: 0.45s; }
.reveal-delay-4 { transition-delay: 0.6s; }

/* Micro-interactions */
.hover-scale {
    transition: transform var(--transition-smooth);
}

.hover-scale:hover {
    transform: scale(1.03);
}

.hover-glow:hover {
    animation: pulseCopper 1.5s infinite;
}

/* Image Zoom on Card Hover */
.img-zoom-container {
    overflow: hidden;
}

.img-zoom-container img {
    transition: transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}

.card:hover .img-zoom-container img {
    transform: scale(1.08);
}
