/* ==============================================
   ANIMATIONS & TRANSITIONS
   ============================================== */

/* ── Scroll-triggered Animations ─────────────── */
[data-animate] {
    opacity: 0;
    transition:
        opacity var(--transition-slow),
        transform var(--transition-slow);
}
[data-animate="fadeIn"] {
    transform: scale(0.97);
}
[data-animate="slideUp"] {
    transform: translateY(28px);
}
[data-animate="slideLeft"] {
    transform: translateX(-28px);
}
[data-animate="slideRight"] {
    transform: translateX(28px);
}
[data-animate].is-visible {
    opacity: 1;
    transform: none;
}

/* Stagger delay helpers */
[data-delay="1"] { transition-delay: 80ms; }
[data-delay="2"] { transition-delay: 160ms; }
[data-delay="3"] { transition-delay: 240ms; }
[data-delay="4"] { transition-delay: 320ms; }
[data-delay="5"] { transition-delay: 400ms; }
[data-delay="6"] { transition-delay: 480ms; }

/* ── Keyframes ────────────────────────────────── */
@keyframes fadeInDown {
    from { opacity: 0; transform: translateY(-12px); }
    to   { opacity: 1; transform: translateY(0); }
}
@keyframes pulse-ring {
    0%   { box-shadow: 0 0 0 0 rgba(196, 154, 42, 0.3); }
    70%  { box-shadow: 0 0 0 12px rgba(196, 154, 42, 0); }
    100% { box-shadow: 0 0 0 0 rgba(196, 154, 42, 0); }
}

/* ── Respect reduced motion ───────────────────── */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        transition-duration: 0.01ms !important;
    }
    [data-animate] {
        opacity: 1;
        transform: none;
    }
}
