/* ==========================================================================
   Scroll reveal animations (global utilities)
   ========================================================================= */

:root {
    --reveal-ease: cubic-bezier(0.2, 0.8, 0.2, 1);
}

/* Base state */
.reveal {
    opacity: 0;
    transform: translateY(18px);
    transition:
        opacity 600ms var(--reveal-ease),
        transform 700ms var(--reveal-ease);
}

.reveal--up { transform: translateY(18px); }
.reveal--down { transform: translateY(-18px); }
.reveal--left { transform: translateX(-18px); }
.reveal--right { transform: translateX(18px); }
.reveal--scale { transform: scale(0.98); }

/* Visible */
.reveal.is-visible {
    opacity: 1;
    transform: none;
}

/* Stagger support */
.reveal[data-delay] {
    transition-delay: var(--delay, 0ms);
}

@media (prefers-reduced-motion: reduce) {
    .reveal {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
    }
}

