/**
 * Le Tour de Moi - Animation System
 * Technical foundation for reveal animations.
 */

.reveal {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.8s cubic-bezier(0.22, 1, 0.36, 1), transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
    will-change: opacity, transform;
}

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

.reveal--soft {
    transform: translateY(14px);
    transition-duration: 0.6s;
}

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

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

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

.reveal--left.is-visible,
.reveal--right.is-visible {
    transform: translateX(0);
}

.reveal--scale.is-visible {
    transform: scale(1);
}

.reveal-delay-1 { transition-delay: 0.1s; }
.reveal-delay-2 { transition-delay: 0.2s; }
.reveal-delay-3 { transition-delay: 0.3s; }
.reveal-delay-4 { transition-delay: 0.4s; }
.reveal-delay-5 { transition-delay: 0.5s; }
.reveal-delay-6 { transition-delay: 0.6s; }

@media (prefers-reduced-motion: reduce) {
    .reveal, .reveal--soft, .reveal--left, .reveal--right, .reveal--scale {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
    }
}