/* =========================================
   SMOOTH ENGINE — Lenis + GSAP Overrides
   Page Loader · Enter Sequence · ScrollTrigger
   ========================================= */

/* ── PAGE LOADER ── */
.page-loader {
    position: fixed;
    inset: 0;
    z-index: 99999;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 18px;
    pointer-events: all;
}

.page-loader .loader-logo {
    height: 52px;
    opacity: 0;
    transform: scale(0.85);
}

.page-loader .loader-bar-track {
    width: 120px;
    height: 3px;
    background: rgba(0, 119, 182, 0.08);
    border-radius: 3px;
    overflow: hidden;
    opacity: 0;
}

.page-loader .loader-bar-fill {
    height: 100%;
    width: 0%;
    background: linear-gradient(90deg, #0077b6, #00b4d8);
    border-radius: 3px;
    transition: width 0.3s ease;
}

/* ── GSAP OVERRIDES ── */

/* Disable CSS-based anim-up — GSAP handles hero entrance */
.gsap-ready .anim-up {
    animation: none !important;
    opacity: 0;
    transform: translateY(32px);
}

/* Disable CSS-based fade-in-scroll — GSAP ScrollTrigger handles it */
.gsap-ready .fade-in-scroll,
.gsap-ready .rv {
    opacity: 0;
    transform: translateY(40px);
    transition: none !important;
}

/* After GSAP reveals — ensure visible state sticks */
.gsap-ready .fade-in-scroll.gsap-revealed,
.gsap-ready .rv.gsap-revealed {
    opacity: 1;
    transform: none;
}

/* ── NAVBAR ENTRANCE ── */
.gsap-ready .navbar {
    opacity: 0;
}
.gsap-ready .navbar.nav-entered {
    opacity: 1;
}

/* ── GLOBAL TICKER ENTRANCE ── */
.gsap-ready .global-ticker {
    opacity: 0;
    transform: translateY(-100%);
}

/* ── HERO SCROLL INDICATOR ── */
.gsap-ready .hero-scroll {
    opacity: 0;
}

/* ── SMOOTH SCROLL — disable native ── */
html.lenis, html.lenis body {
    scroll-behavior: auto !important;
    height: auto;
}

.lenis.lenis-smooth {
    scroll-behavior: auto !important;
}

.lenis.lenis-smooth [data-lenis-prevent] {
    overscroll-behavior: contain;
}

.lenis.lenis-stopped {
    overflow: hidden;
}

/* ── SECTION REVEAL CLIP ── */
.section-reveal {
    clip-path: inset(0 0 100% 0);
}

/* ── MAGNETIC BUTTON ── */
.magnetic-wrap {
    display: inline-block;
    position: relative;
}

/* ── PARALLAX HERO DEPTH ── */
.gsap-ready .hero-video-wrap {
    will-change: transform;
}

.gsap-ready .hero-particles {
    will-change: transform;
}

/* ── GPU HINTS for animated elements ── */
.gsap-ready .fade-in-scroll,
.gsap-ready .rv,
.gsap-ready .anim-up {
    will-change: transform, opacity;
    backface-visibility: hidden;
}

/* ── CUSTOM CURSOR ── */
.cursor-dot {
    position: fixed;
    top: 0;
    left: 0;
    width: 8px;
    height: 8px;
    background: #0077b6;
    border-radius: 50%;
    pointer-events: none;
    z-index: 99990;
    mix-blend-mode: difference;
    transition: width 0.3s cubic-bezier(.16,1,.3,1),
                height 0.3s cubic-bezier(.16,1,.3,1),
                background 0.3s ease;
    transform: translate(-50%, -50%);
    opacity: 0;
}

.cursor-ring {
    position: fixed;
    top: 0;
    left: 0;
    width: 36px;
    height: 36px;
    border: 1.5px solid rgba(0, 119, 182, 0.35);
    border-radius: 50%;
    pointer-events: none;
    z-index: 99989;
    transform: translate(-50%, -50%);
    transition: width 0.35s cubic-bezier(.16,1,.3,1),
                height 0.35s cubic-bezier(.16,1,.3,1),
                border-color 0.3s ease,
                background 0.3s ease;
    opacity: 0;
}

/* Cursor hover states */
.cursor-hover .cursor-dot {
    width: 4px;
    height: 4px;
    background: #00b4d8;
}

.cursor-hover .cursor-ring {
    width: 56px;
    height: 56px;
    border-color: rgba(0, 180, 216, 0.5);
    background: rgba(0, 180, 216, 0.04);
}

/* Hide custom cursor on touch devices */
@media (hover: none), (pointer: coarse) {
    .cursor-dot, .cursor-ring { display: none !important; }
}

/* ── 3D CARD TILT ── */
.gsap-ready .svc-card {
    transform-style: preserve-3d;
    perspective: 800px;
}

.svc-card-inner-content {
    transform-style: preserve-3d;
}

/* ── SCALE REVEAL ── */
.gsap-ready .hero-img-frame,
.gsap-ready .market-edu-card {
    overflow: hidden;
}

/* ── HORIZONTAL SCROLL WRAPPER ── */
@media (min-width: 1024px) {
    .gsap-ready .marches-edu-grid {
        display: flex !important;
        flex-wrap: nowrap !important;
        gap: 24px;
        overflow: visible;
    }
    .gsap-ready .marches-edu-grid .market-edu-card {
        min-width: 380px;
        flex-shrink: 0;
    }
}

/* ── COUNTER ANIMATION ── */
.hero-pillar strong[data-count] {
    display: inline-block;
    min-width: 1.5ch;
}

/* ── REDUCED MOTION — skip loader, skip GSAP animations ── */
@media (prefers-reduced-motion: reduce) {
    .page-loader {
        display: none !important;
    }
    .cursor-dot, .cursor-ring {
        display: none !important;
    }
    .gsap-ready .anim-up,
    .gsap-ready .fade-in-scroll,
    .gsap-ready .rv,
    .gsap-ready .navbar,
    .gsap-ready .global-ticker,
    .gsap-ready .hero-scroll {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
    }
}
