/* ═══════════════════════════════════════
   BASE
═══════════════════════════════════════ */
body {
    background-color: #000;
    color: #fff;
    margin: 0;
    font-family: 'Montserrat', sans-serif;
    letter-spacing: -0.05em;
    overflow-x: hidden;
}

/* ═══════════════════════════════════════
   SCROLLBAR
═══════════════════════════════════════ */
.hide-scrollbar::-webkit-scrollbar { display: none; }
.hide-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }

/* ═══════════════════════════════════════
   LENIS SMOOTH SCROLL
═══════════════════════════════════════ */
html.lenis,
html.lenis body      { height: auto; }
.lenis.lenis-smooth  { scroll-behavior: auto !important; }
.lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; }
.lenis.lenis-stopped { overflow: hidden; }

/* ═══════════════════════════════════════
   KEYFRAMES
═══════════════════════════════════════ */
@keyframes infinite-scroll {
    from { transform: translateX(0); }
    to   { transform: translateX(-100%); }
}

@keyframes sun-pulse {
    0%, 100% { box-shadow: 0 0 15px rgba(37,99,235,0.4);  transform: scale(1); }
    50%       { box-shadow: 0 0 30px rgba(37,99,235,0.8);  transform: scale(1.03); }
}

@keyframes btn-pulse {
    0%, 100% {
        box-shadow:
            inset 0 1px 0 rgba(147,197,253,0.2),
            0 0 18px rgba(59,130,246,0.2),
            0 0 50px rgba(37,99,235,0.08);
        border-color: rgba(147,197,253,0.3);
        background: linear-gradient(160deg, rgba(96,165,250,0.18) 0%, rgba(37,99,235,0.08) 40%, rgba(59,130,246,0.16) 100%);
    }
    50% {
        box-shadow:
            inset 0 1px 0 rgba(147,197,253,0.4),
            0 0 40px rgba(59,130,246,0.55),
            0 0 100px rgba(37,99,235,0.28);
        border-color: rgba(147,197,253,0.65);
        background: linear-gradient(160deg, rgba(96,165,250,0.38) 0%, rgba(37,99,235,0.22) 40%, rgba(59,130,246,0.34) 100%);
    }
}

@keyframes heroFadeIn {
    from { opacity: 0; filter: blur(20px); transform: translateY(20px); }
    to   { opacity: 1; filter: blur(0px);  transform: translateY(0); }
}

/* ═══════════════════════════════════════
   UTILITY
═══════════════════════════════════════ */
.montserrat {
    font-family: 'Montserrat', sans-serif;
    font-weight: 700;
    letter-spacing: -0.04em;
}

/* ═══════════════════════════════════════
   HERO ENTRANCE — desktop
═══════════════════════════════════════ */
.hero-title {
    opacity: 0;
    animation: heroFadeIn 1.4s cubic-bezier(0.16, 1, 0.3, 1) 0.3s forwards;
}
.hero-desc {
    opacity: 0;
    animation: heroFadeIn 1.3s cubic-bezier(0.16, 1, 0.3, 1) 1.2s forwards;
}
.hero-cta {
    opacity: 0;
    animation: heroFadeIn 1.2s cubic-bezier(0.16, 1, 0.3, 1) 2.1s forwards;
}
.hero-nav {
    opacity: 0;
    animation: heroFadeIn 1.0s cubic-bezier(0.16, 1, 0.3, 1) 2.1s forwards;
}

/* ═══════════════════════════════════════
   HERO ENTRANCE — mobile (faster)
═══════════════════════════════════════ */
@media (max-width: 768px) {
    .hero-title { animation-duration: 1.0s; animation-delay: 0.2s; }
    .hero-desc  { animation-duration: 0.9s; animation-delay: 0.85s; }
    .hero-cta   { animation-duration: 0.9s; animation-delay: 1.55s; }
    .hero-nav   { animation-duration: 0.8s; animation-delay: 1.55s; }
    .hero-cta button {
        padding: 14px 48px !important;
        font-size: 0.875rem !important;
    }
}

/* ═══════════════════════════════════════
   SCROLL REVEAL
═══════════════════════════════════════ */
.blur-reveal {
    opacity: 0;
    filter: blur(20px);
    transform: translateY(24px);
    transition:
        opacity   1.2s cubic-bezier(0.16, 1, 0.3, 1),
        filter    1.2s cubic-bezier(0.16, 1, 0.3, 1),
        transform 1.2s cubic-bezier(0.16, 1, 0.3, 1);
    will-change: opacity, filter, transform;
}
.blur-reveal.is-visible {
    opacity: 1;
    filter: blur(0px);
    transform: translateY(0);
}
