/* Scroll reveal */
[data-reveal] {
    opacity: 0;
    transform: translateY(28px);
    transition: opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1),
                transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}
[data-reveal="fade"] { transform: none; }
[data-reveal="down"] { transform: translateY(-28px); }
[data-reveal="left"] { transform: translateX(-36px); }
[data-reveal="right"] { transform: translateX(36px); }
[data-reveal="scale"] { transform: scale(0.92); }
[data-reveal="zoom"] { transform: scale(1.05); }
[data-reveal].is-visible {
    opacity: 1;
    transform: translate(0) scale(1);
}

.sr-stagger-1 { transition-delay: 80ms; }
.sr-stagger-2 { transition-delay: 160ms; }
.sr-stagger-3 { transition-delay: 240ms; }
.sr-stagger-4 { transition-delay: 320ms; }
.sr-stagger-5 { transition-delay: 400ms; }
.sr-stagger-6 { transition-delay: 480ms; }

/* Page load animations */
@keyframes sr-fade-in-down {
    from { opacity: 0; transform: translateY(-20px); }
    to { opacity: 1; transform: translateY(0); }
}
@keyframes sr-fade-in-up {
    from { opacity: 0; transform: translateY(24px); }
    to { opacity: 1; transform: translateY(0); }
}
@keyframes sr-fade-in {
    from { opacity: 0; }
    to { opacity: 1; }
}
@keyframes sr-fade-in-left {
    from { opacity: 0; transform: translateX(-24px); }
    to { opacity: 1; transform: translateX(0); }
}
@keyframes sr-fade-in-right {
    from { opacity: 0; transform: translateX(24px); }
    to { opacity: 1; transform: translateX(0); }
}
@keyframes sr-scale-in {
    from { opacity: 0; transform: scale(0.94); }
    to { opacity: 1; transform: scale(1); }
}

.sr-load-down { animation: sr-fade-in-down 0.75s cubic-bezier(0.22, 1, 0.36, 1) both; }
.sr-load-up { animation: sr-fade-in-up 0.75s cubic-bezier(0.22, 1, 0.36, 1) both; }
.sr-load-fade { animation: sr-fade-in 0.75s cubic-bezier(0.22, 1, 0.36, 1) both; }
.sr-load-left { animation: sr-fade-in-left 0.75s cubic-bezier(0.22, 1, 0.36, 1) both; }
.sr-load-right { animation: sr-fade-in-right 0.75s cubic-bezier(0.22, 1, 0.36, 1) both; }
.sr-load-scale { animation: sr-scale-in 0.8s cubic-bezier(0.22, 1, 0.36, 1) both; }

.sr-delay-1 { animation-delay: 100ms; }
.sr-delay-2 { animation-delay: 200ms; }
.sr-delay-3 { animation-delay: 300ms; }
.sr-delay-4 { animation-delay: 400ms; }
.sr-delay-5 { animation-delay: 500ms; }

@media (prefers-reduced-motion: reduce) {
    [data-reveal],
    [data-reveal].is-visible {
        opacity: 1;
        transform: none;
        transition: none;
    }
    .sr-load-down,
    .sr-load-up,
    .sr-load-fade,
    .sr-load-left,
    .sr-load-right,
    .sr-load-scale {
        animation: none !important;
        opacity: 1 !important;
        transform: none !important;
    }
}
