/* Scroll-reveal — visible by default for crawlers/no-JS; hidden only when JS opts in (html.js-animations-enabled) */
:root {
    --reveal-distance: 28px;
    --reveal-duration: 900ms;
    --reveal-ease: cubic-bezier(0.22, 1, 0.36, 1);
}

.reveal,
.reveal-left,
.reveal-right,
.reveal-zoom,
.reveal-soft {
    opacity: 1;
    transform: none;
    filter: none;
    -webkit-filter: none;
    transition: opacity var(--reveal-duration) var(--reveal-ease), transform var(--reveal-duration) var(--reveal-ease), filter var(--reveal-duration) var(--reveal-ease);
    will-change: opacity, transform, filter;
}

html.js-animations-enabled .reveal:not(.is-visible) {
    opacity: 0;
    transform: translateY(var(--reveal-distance));
    filter: blur(6px);
    -webkit-filter: blur(6px);
}

.reveal.is-visible {
    opacity: 1;
    transform: translateY(0);
    filter: blur(0px);
    -webkit-filter: blur(0px);
}

.reveal[data-delay="1"],
.reveal-left[data-delay="1"],
.reveal-right[data-delay="1"],
.reveal-zoom[data-delay="1"],
.reveal-soft[data-delay="1"] {
    transition-delay: 120ms;
}

.reveal[data-delay="2"],
.reveal-left[data-delay="2"],
.reveal-right[data-delay="2"],
.reveal-zoom[data-delay="2"],
.reveal-soft[data-delay="2"] {
    transition-delay: 240ms;
}

.reveal[data-delay="3"],
.reveal-left[data-delay="3"],
.reveal-right[data-delay="3"],
.reveal-zoom[data-delay="3"],
.reveal-soft[data-delay="3"] {
    transition-delay: 360ms;
}

.reveal[data-delay="4"],
.reveal-left[data-delay="4"],
.reveal-right[data-delay="4"],
.reveal-zoom[data-delay="4"],
.reveal-soft[data-delay="4"] {
    transition-delay: 480ms;
}

.reveal[data-delay="5"],
.reveal-left[data-delay="5"],
.reveal-right[data-delay="5"],
.reveal-zoom[data-delay="5"],
.reveal-soft[data-delay="5"] {
    transition-delay: 580ms;
}

.reveal[data-delay="6"],
.reveal-left[data-delay="6"],
.reveal-right[data-delay="6"],
.reveal-zoom[data-delay="6"],
.reveal-soft[data-delay="6"] {
    transition-delay: 680ms;
}

html.js-animations-enabled .reveal-left:not(.is-visible) {
    opacity: 0;
    transform: translateX(calc(var(--reveal-distance) * -1));
    filter: blur(6px);
    -webkit-filter: blur(6px);
}

html.js-animations-enabled .reveal-right:not(.is-visible) {
    opacity: 0;
    transform: translateX(var(--reveal-distance));
    filter: blur(6px);
    -webkit-filter: blur(6px);
}

/* “Central” wide-card variants — rotate with layout 2 / 3 */
html.js-animations-enabled .reveal-zoom:not(.is-visible) {
    opacity: 0;
    transform: scale(0.93) translateY(18px);
    filter: blur(6px);
    -webkit-filter: blur(6px);
}

html.js-animations-enabled .reveal-soft:not(.is-visible) {
    opacity: 0;
    transform: translateY(calc(var(--reveal-distance) * 0.42));
    filter: blur(4px);
    -webkit-filter: blur(4px);
}

.reveal.is-visible,
.reveal-left.is-visible,
.reveal-right.is-visible {
    opacity: 1;
    transform: translate(0, 0);
    filter: blur(0px);
    -webkit-filter: blur(0px);
}

.reveal-zoom.is-visible {
    opacity: 1;
    transform: scale(1) translateY(0);
    filter: blur(0px);
    -webkit-filter: blur(0px);
}

.reveal-soft.is-visible {
    opacity: 1;
    transform: translateY(0);
    filter: blur(0px);
    -webkit-filter: blur(0px);
}

.reveal-left,
.reveal-right {
    transform: translateX(20px);
}

.reveal-left {
    transform: translateX(-20px);
}

@media (prefers-reduced-motion: reduce) {
    .reveal,
    .reveal-left,
    .reveal-right,
    .reveal-zoom,
    .reveal-soft {
        transition: none !important;
        opacity: 1 !important;
        transform: none !important;
        filter: none !important;
    }
}
