/* Progressive enhancement: unobserved content is always visible. Only an
   actual intersection starts a bounded animation; no preparatory hidden state. */
.scroll-reveal[data-reveal] {
    --scroll-reveal-delay: 0ms;
    opacity: 1;
    transform: none;
    clip-path: none;
    animation: none;
}
.scroll-reveals-enabled main { overflow-x: clip; }
.scroll-reveal[data-reveal-step="1"] { --scroll-reveal-delay: 60ms; }
.scroll-reveal[data-reveal-step="2"] { --scroll-reveal-delay: 120ms; }
.scroll-reveal[data-reveal-step="3"] { --scroll-reveal-delay: 180ms; }
.scroll-reveal[data-reveal-step="4"] { --scroll-reveal-delay: 240ms; }
.scroll-reveal[data-reveal-step="5"] { --scroll-reveal-delay: 300ms; }
.scroll-reveal[data-reveal-step="6"] { --scroll-reveal-delay: 360ms; }
.scroll-reveal[data-reveal-step="7"] { --scroll-reveal-delay: 420ms; }
.scroll-reveal[data-reveal-step="8"] { --scroll-reveal-delay: 480ms; }
.scroll-reveal[data-reveal-step="9"] { --scroll-reveal-delay: 540ms; }

.scroll-reveal[data-reveal].is-reveal-running {
    animation: scroll-reveal-up 820ms cubic-bezier(.22, .75, .25, 1) both;
    animation-delay: var(--scroll-reveal-delay);
}
.scroll-reveal[data-reveal="left"].is-reveal-running { animation-name: scroll-reveal-left; }
.scroll-reveal[data-reveal="right"].is-reveal-running { animation-name: scroll-reveal-right; }
.scroll-reveal[data-reveal="process"].is-reveal-running {
    animation-name: scroll-reveal-process;
    animation-duration: 900ms;
}
.scroll-reveal:focus-within {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
    clip-path: none !important;
}

@keyframes scroll-reveal-up {
    from { opacity: 0; transform: translate3d(0, 36px, 0); }
    to { opacity: 1; transform: none; }
}
@keyframes scroll-reveal-left {
    from { opacity: 0; transform: translate3d(-48px, 8px, 0); }
    to { opacity: 1; transform: none; }
}
@keyframes scroll-reveal-right {
    from { opacity: 0; transform: translate3d(48px, 8px, 0); }
    to { opacity: 1; transform: none; }
}
@keyframes scroll-reveal-process {
    from { opacity: .15; clip-path: inset(0 96% 0 0); transform: translate3d(-30px, 0, 0); }
    to { opacity: 1; clip-path: inset(0); transform: none; }
}

@media (prefers-reduced-motion: reduce) {
    .scroll-reveal[data-reveal],
    .scroll-reveal[data-reveal].is-reveal-running {
        animation: none !important;
        opacity: 1 !important;
        transform: none !important;
        clip-path: none !important;
    }
}
@media print {
    .scroll-reveal[data-reveal] { animation: none !important; opacity: 1 !important; transform: none !important; clip-path: none !important; }
}
