/* ==========================================================================
   SCROLL REVEAL (js/reveal.js)
   Hidden state exists ONLY when the script ran AND motion is allowed, so the
   page is fail-open for no-JS and reduced-motion visitors. Revealed state
   lands on transform: none so sticky descendants are never affected once the
   entrance completes.
   ========================================================================== */
@media (prefers-reduced-motion: no-preference) {
    html.reveal-ready [data-reveal] {
        opacity: 0;
        transform: translateY(14px);
    }

    html.reveal-ready [data-reveal].is-revealed {
        opacity: 1;
        transform: none;
        transition:
            opacity 0.5s ease,
            transform 0.55s cubic-bezier(0.22, 1, 0.36, 1);
        transition-delay: calc(var(--reveal-index, 0) * 80ms);
    }
}
