/* Only observed content opts into viewport fades; reduced motion stays visible. */
.cg-reveal-observed {
    opacity: 1;
    translate: 0 0;
}
@media (prefers-reduced-motion: no-preference) {
    .cg-reveal-observed {
        transition: opacity 650ms ease, translate 650ms ease;
    }
    .cg-reveal-observed:not(.cg-reveal-visible) {
        opacity: 0;
        translate: 0 24px;
    }
    .cg-reveal-observed.leftRev:not(.cg-reveal-visible),
    .cg-reveal-observed.leftRollRev:not(.cg-reveal-visible) {
        translate: -24px 0;
    }
    .cg-reveal-observed.rightRev:not(.cg-reveal-visible),
    .cg-reveal-observed.rightRollRev:not(.cg-reveal-visible) {
        translate: 24px 0;
    }
    .cg-reveal-observed:focus-within {
        opacity: 1;
        translate: 0 0;
    }
}
@media (prefers-reduced-motion: reduce) {
    .cg-reveal-observed { transition: none; }
}
