/* Motion - shared scroll-reveal utility, additive only (no collisions with
   typography.css's !important rules). Applied via a plain [data-reveal]
   attribute on section/card-level containers. */

[data-reveal] {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

[data-reveal].is-visible {
    opacity: 1;
    transform: none;
}

@media (prefers-reduced-motion: reduce) {
    [data-reveal] {
        opacity: 1;
        transform: none;
        transition: none;
    }
}
