/* Scroll fade-in, one effect on every page (the original live-site effect: a short fade and a 24px rise).
   Content is only hidden while the script is running AND has marked the page ready, so if the script
   fails or never loads, everything stays visible. Visitors who ask for reduced motion never get the effect. */
.reveal {
    transition: opacity 0.7s ease, transform 0.7s ease;
}

html.reveal-ready .reveal:not(.active) {
    opacity: 0;
    transform: translateY(24px);
}

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