.reveal {
    opacity: 0;
    transform: translateY(40px);
    transition:
        opacity .8s .5s ease,
        transform .8s .5s ease;
}

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

/* Variantes */
.reveal--fade {
    transform: none;
}

.reveal--zoom {
    transform: scale(0.98);
}

.reveal--left {
    transform: translateX(-14px);
}

.reveal--right {
    transform: translateX(14px);
}

/* Accessibilité */
@media (prefers-reduced-motion: reduce) {
    .reveal {
        transition: none !important;
        transform: none !important;
        opacity: 1 !important;
    }
}