@media (prefers-reduced-motion: no-preference) {
    [data-gjr-reveal] {
        opacity: 0;
        transform: translateY(22px);
        transition: opacity 700ms ease, transform 700ms ease;
    }

    [data-gjr-reveal].is-visible {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Mobile first-screen fix:
   The first series cards must already be visible on initial paint.
   This avoids Safari showing an empty strip until the first scroll
   triggers IntersectionObserver. */
@media (max-width: 767px) and (prefers-reduced-motion: no-preference) {
    .gjr-series-worlds[data-gjr-reveal],
    .gjr-series-worlds [data-gjr-reveal],
    .gjr-books-series[data-gjr-reveal],
    .gjr-books-series [data-gjr-reveal] {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
    }
}
