:root {
    --te-anim-gold-glow: rgba(240, 180, 41, 0.4);
    --te-anim-border-glow: rgba(240, 180, 41, 0.22);
    --te-anim-soft-glow: rgba(255, 210, 116, 0.18);
    --te-anim-lift-distance: 40px;
}

body.te-anim-ready {
    overflow-x: clip;
}

html,
body,
body.te-anim-ready,
body.te-anim-ready a,
body.te-anim-ready button,
body.te-anim-ready input,
body.te-anim-ready select,
body.te-anim-ready textarea,
body.te-anim-ready .btn,
body.te-anim-ready .btn-elite,
body.te-anim-ready div {
    cursor: url('../img/cursor.png'), auto !important;
}

body.te-anim-ready a:hover,
body.te-anim-ready button:hover,
body.te-anim-ready .btn:hover,
body.te-anim-ready .btn-elite:hover,
body.te-anim-ready .nav a:hover,
body.te-anim-ready .site-nav-links a:hover,
body.te-anim-ready .intro-quick-links a:hover {
    cursor: url('../img/cursor.png'), pointer !important;
}

body.te-anim-ready .render-left,
body.te-anim-ready .render-right {
    will-change: transform, opacity, filter;
    animation: te-anim-character-glow 3s ease-in-out infinite alternate;
}

body.te-anim-ready .render-left {
    transform-origin: bottom center;
}

body.te-anim-ready .render-right {
    transform-origin: bottom center;
}

body.te-anim-ready .site-nav-links a,
body.te-anim-ready .intro-quick-links a,
body.te-anim-ready .nav a,
body.te-anim-ready .hero-subnav a,
body.te-anim-ready .anchor-nav a,
body.te-anim-ready .cta-strip a,
body.te-anim-ready .btn,
body.te-anim-ready .btn-primary,
body.te-anim-ready .btn-secondary {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    transition: box-shadow 0.25s ease, border-color 0.25s ease, transform 0.25s ease, background-color 0.25s ease;
}

body.te-anim-ready .site-nav-links a::before,
body.te-anim-ready .intro-quick-links a::before,
body.te-anim-ready .nav a::before,
body.te-anim-ready .hero-subnav a::before,
body.te-anim-ready .anchor-nav a::before,
body.te-anim-ready .cta-strip a::before,
body.te-anim-ready .btn::before,
body.te-anim-ready .btn-primary::before,
body.te-anim-ready .btn-secondary::before {
    content: "";
    position: absolute;
    inset: -1px;
    z-index: -1;
    opacity: 0;
    pointer-events: none;
    background: radial-gradient(circle at var(--te-anim-mouse-x, 50%) var(--te-anim-mouse-y, 50%), rgba(255, 226, 151, 0.32), rgba(240, 180, 41, 0.14) 28%, rgba(240, 180, 41, 0) 62%);
    transition: opacity 0.25s ease;
}

body.te-anim-ready .site-nav-links a:hover,
body.te-anim-ready .intro-quick-links a:hover,
body.te-anim-ready .nav a:hover,
body.te-anim-ready .hero-subnav a:hover,
body.te-anim-ready .anchor-nav a:hover,
body.te-anim-ready .cta-strip a:hover,
body.te-anim-ready .btn:hover,
body.te-anim-ready .btn-primary:hover,
body.te-anim-ready .btn-secondary:hover {
    transform: translateY(-2px);
}

body.te-anim-ready .site-nav-links a:hover::before,
body.te-anim-ready .intro-quick-links a:hover::before,
body.te-anim-ready .nav a:hover::before,
body.te-anim-ready .hero-subnav a:hover::before,
body.te-anim-ready .anchor-nav a:hover::before,
body.te-anim-ready .cta-strip a:hover::before,
body.te-anim-ready .btn:hover::before,
body.te-anim-ready .btn-primary:hover::before,
body.te-anim-ready .btn-secondary:hover::before {
    opacity: 1;
}

body.te-anim-ready .btn-enter:hover,
body.te-anim-ready .btn-elite:hover,
body.te-anim-ready .btn-primary:hover,
body.te-anim-ready .cta-strip a:hover,
body.te-anim-ready .hero-subnav a:hover,
body.te-anim-ready .nav a.active:hover {
    box-shadow: 0 0 20px var(--te-anim-gold-glow);
}

body.te-anim-ready .site-nav-links a:hover,
body.te-anim-ready .intro-quick-links a:hover,
body.te-anim-ready .nav a:hover,
body.te-anim-ready .anchor-nav a:hover,
body.te-anim-ready .btn-secondary:hover,
body.te-anim-ready .btn-sec:hover,
body.te-anim-ready .btn-forum:hover {
    border-color: rgba(240, 180, 41, 0.75);
    box-shadow: 0 0 0 1px var(--te-anim-border-glow), 0 0 18px rgba(240, 180, 41, 0.14);
}

body.te-anim-ready .stat-card,
body.te-anim-ready .home-story-card,
body.te-anim-ready .promise-card,
body.te-anim-ready .section-card,
body.te-anim-ready .card,
body.te-anim-ready .timeline-card,
body.te-anim-ready .info-card,
body.te-anim-ready .cta-card,
body.te-anim-ready .trust-card,
body.te-anim-ready .download-box,
body.te-anim-ready .sys-req-box,
body.te-anim-ready .register-card,
body.te-anim-ready .message,
body.te-anim-ready .trust-grid article,
body.te-anim-ready .notice,
body.te-anim-ready .rule-card,
body.te-anim-ready .ladder,
body.te-anim-ready .closing,
body.te-anim-ready .feature-box,
body.te-anim-ready .visit-counter,
body.te-anim-ready .intro-signal-card,
body.te-anim-ready .hero-panel,
body.te-anim-ready .hero-copy,
body.te-anim-ready .page-hero,
body.te-anim-ready .card-visual,
body.te-anim-ready .card-form {
    will-change: transform, opacity;
    backface-visibility: hidden;
}

.te-anim-title {
    will-change: transform, opacity, letter-spacing;
}

@keyframes te-anim-character-glow {
    0% {
        filter: drop-shadow(0 18px 26px rgba(0, 0, 0, 0.55)) drop-shadow(0 0 8px rgba(240, 180, 41, 0.16));
    }
    100% {
        filter: drop-shadow(0 22px 34px rgba(0, 0, 0, 0.72)) drop-shadow(0 0 20px rgba(240, 180, 41, 0.32));
    }
}

@media (prefers-reduced-motion: reduce) {
    body.te-anim-ready .render-left,
    body.te-anim-ready .render-right {
        animation: none;
    }

    body.te-anim-ready .site-nav-links a,
    body.te-anim-ready .intro-quick-links a,
    body.te-anim-ready .nav a,
    body.te-anim-ready .hero-subnav a,
    body.te-anim-ready .anchor-nav a,
    body.te-anim-ready .cta-strip a,
    body.te-anim-ready .btn,
    body.te-anim-ready .btn-primary,
    body.te-anim-ready .btn-secondary {
        transition: none;
    }
}
