/* ── Block entrance animations ───────────────────────────────── */

/* Hidden until JS activates */
[data-gt-anim] {
    opacity: 0;
}

/* ── Fade In ──────────────────────────────────────────────────── */
[data-gt-anim="fade-in"] {
    transition: opacity 0.65s ease;
}
[data-gt-anim="fade-in"].is-visible {
    opacity: 1;
}

/* ── Slide Up ─────────────────────────────────────────────────── */
[data-gt-anim="slide-up"] {
    transform: translateY(36px);
    transition: opacity 0.6s ease, transform 0.6s ease;
}
[data-gt-anim="slide-up"].is-visible {
    opacity: 1;
    transform: translateY(0);
}

/* ── Swing In ─────────────────────────────────────────────────── */
@keyframes gt-swing-in {
    0%   { opacity: 0; transform: perspective(600px) rotateX(-70deg); }
    55%  { opacity: 1; transform: perspective(600px) rotateX(12deg); }
    75%  {             transform: perspective(600px) rotateX(-6deg); }
    100% {             transform: perspective(600px) rotateX(0deg); }
}

[data-gt-anim="swing-in"] {
    transform-origin: top center;
}
[data-gt-anim="swing-in"].is-visible {
    animation: gt-swing-in 0.75s cubic-bezier(0.23, 1, 0.32, 1) forwards;
}

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce) {
    [data-gt-anim] {
        opacity: 1 !important;
        transform: none !important;
        animation: none !important;
        transition: none !important;
    }
}
