/* Section backgrounds stay still. Cards reveal as complete visual units. */
#main.motion-ready [data-reveal]:not([data-reveal-card]) > *,
#main.motion-ready [data-reveal-card] {
    opacity: 1;
    translate: 0 0;
    transition: opacity var(--reveal-opacity-duration, 620ms) ease var(--reveal-delay, 0ms),
                translate var(--reveal-translate-duration, 720ms) cubic-bezier(.22, 1, .36, 1) var(--reveal-delay, 0ms),
                transform 200ms ease, box-shadow 200ms ease, border-color 200ms ease;
}
#main.motion-ready [data-reveal-card] {
    --reveal-opacity-duration: 500ms;
    --reveal-translate-duration: 580ms;
}
@media (prefers-reduced-motion: no-preference) {
    html.has-reveal-js #main [data-reveal]:not([data-reveal-card]):not(.is-revealed) > *,
    html.has-reveal-js #main [data-reveal-card]:not(.is-revealed) { opacity: 0; translate: 0 16px; }
}

.hero-slide.is-leaving { z-index: 1; opacity: 1; visibility: visible; }
.hero-slide.is-active.is-entering { z-index: 2; opacity: 1; transition: visibility 0s; animation: hero-curtain 1100ms cubic-bezier(.76, 0, .2, 1) both; }
.hero-slide.is-active.is-entering .hero-background { animation: hero-image-settle 1350ms cubic-bezier(.22, 1, .36, 1) both; }
.hero-slide.is-active.is-entering .hero-art { animation: hero-art-arrive 1050ms cubic-bezier(.22, 1, .36, 1) 120ms both; }
.hero-slide.is-active.is-entering .hero-copy > * { animation: hero-copy-arrive 700ms cubic-bezier(.22, 1, .36, 1) both; }
.hero-slide.is-active.is-entering .hero-copy > :nth-child(2) { animation-delay: 120ms; }
.hero-slide.is-active.is-entering .hero-copy > :nth-child(3) { animation-delay: 210ms; }

@keyframes hero-curtain {
    from { clip-path: inset(0 0 0 100%); }
    to { clip-path: inset(0); }
}
@keyframes hero-image-settle {
    from { scale: 1.08; }
    to { scale: 1; }
}
@keyframes hero-art-arrive {
    from { opacity: .3; translate: 45px 12px; scale: .96; }
    to { opacity: 1; translate: 0 0; scale: 1; }
}
@keyframes hero-copy-arrive {
    from { opacity: 0; translate: 0 18px; }
    to { opacity: 1; translate: 0 0; }
}

@media (prefers-reduced-motion: reduce) {
    .hero-slide.is-active.is-entering,
    .hero-slide.is-active.is-entering .hero-background,
    .hero-slide.is-active.is-entering .hero-art,
    .hero-slide.is-active.is-entering .hero-copy > * { animation: none; }
    #main.motion-ready [data-reveal]:not([data-reveal-card]) > *,
    #main.motion-ready [data-reveal-card] { opacity: 1; translate: none; transition: none; }
}
