@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Space+Grotesk:wght@500;700&family=JetBrains+Mono:wght@400&display=swap');

        /* Scope Calculator Dual-Theme Support */
        .calc-card {
            background-color: #ffffff;
            border-color: #e2e8f0;
        }
        html.dark .calc-card {
            background-color: #090d12 !important;
            border-color: rgba(255, 255, 255, 0.1) !important;
        }
        .calc-summary-card {
            background-color: #ffffff;
        }
        html.dark .calc-summary-card {
            background-color: #0c1017 !important;
        }
        .calc-tier-btn:not(.active),
        .calc-addon-item:not(.border-emerald-500\/40),
        .calc-care-btn:not(.active) {
            background-color: rgba(248, 250, 252, 0.7);
        }
        html.dark .calc-tier-btn:not(.active),
        html.dark .calc-addon-item:not(.border-emerald-500\/40),
        html.dark .calc-care-btn:not(.active) {
            background-color: rgba(255, 255, 255, 0.04) !important;
        }

        .calc-addon-item {
            transition: transform 0.2s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease;
        }
        .calc-addon-item:hover {
            transform: translateY(-1px);
        }

        /* Smooth theme switching transitions */
        body, header, section, div, p, h1, h2, h3, h4, span, a, input, textarea, button {
            transition: background-color 0.4s ease, border-color 0.4s ease, color 0.4s ease, box-shadow 0.4s ease;
        }

        :root { --cursor-x: 0px; --cursor-y: 0px; }

        html { overflow-x: visible; }
        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; }
        .lenis.lenis-scrolling iframe { pointer-events: none; }

        .modal-content { will-change: transform, opacity; backface-visibility: hidden; }
        html.lenis-stopped { overflow: hidden; }

        body { font-family: 'Inter', sans-serif; overflow-x: clip; overflow-y: visible; }
        h1, h2, h3, .display-font { font-family: 'Space Grotesk', sans-serif; }
        .font-mono { font-family: 'JetBrains Mono', monospace; }

        .hide-scrollbar::-webkit-scrollbar { display: none; }
        .hide-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }

        .orbit-container { perspective: 1000px; transform-style: preserve-3d; }
        .orbit-ring-1 { animation: rotate-3d-1 20s linear infinite; transform-origin: center; }
        @keyframes rotate-3d-1 { 0% { transform: rotateX(70deg) rotateZ(0deg); } 100% { transform: rotateX(70deg) rotateZ(360deg); } }
        .orbit-ring-2 { animation: rotate-3d-2 15s linear infinite; transform-origin: center; }
        @keyframes rotate-3d-2 { 0% { transform: rotateX(-60deg) rotateY(20deg) rotateZ(0deg); } 100% { transform: rotateX(-60deg) rotateY(20deg) rotateZ(-360deg); } }

        .btn-cosmic {
            background: rgba(15, 23, 42, 0.03); backdrop-filter: blur(10px); border: 1px solid rgba(15, 23, 42, 0.1);
            position: relative; overflow: hidden; transition: all 0.4s ease;
            color: #0f172a;
        }
        .dark .btn-cosmic {
            background: rgba(255, 255, 255, 0.03); border: 1px solid rgba(255, 255, 255, 0.1);
            color: #e2e8f0;
        }
        .btn-cosmic::before {
            content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%;
            background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent); transition: 0.5s;
        }
        .btn-cosmic:hover { border-color: rgba(34, 211, 238, 0.5); transform: translateY(-2px); }
        .dark .btn-cosmic:hover { color: white; }
        .btn-cosmic:hover::before { left: 100%; }

        .btn-glass-cta {
            background: linear-gradient(180deg, rgba(15, 23, 42, 0.04) 0%, rgba(15, 23, 42, 0.01) 100%);
            backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
            border: 1px solid rgba(15, 23, 42, 0.1); color: #0f172a;
            box-shadow: inset 0 1px 0 0 rgba(255, 255, 255, 0.6), 0 4px 20px rgba(0, 0, 0, 0.03);
            position: relative; overflow: hidden; transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
        }
        .dark .btn-glass-cta {
            background: linear-gradient(180deg, rgba(255, 255, 255, 0.1) 0%, rgba(255, 255, 255, 0.05) 100%);
            border: 1px solid rgba(255, 255, 255, 0.15); color: white;
            box-shadow: inset 0 1px 0 0 rgba(255, 255, 255, 0.2), 0 4px 20px rgba(0, 0, 0, 0.5);
        }
        .btn-glass-cta:hover {
            background: linear-gradient(180deg, rgba(15, 23, 42, 0.08) 0%, rgba(15, 23, 42, 0.03) 100%);
            border-color: rgba(15, 23, 42, 0.25); transform: translateY(-2px);
            box-shadow: inset 0 1px 0 0 rgba(255, 255, 255, 0.6), 0 0 30px rgba(34, 211, 238, 0.15), 0 0 10px rgba(34, 211, 238, 0.05);
        }
        .dark .btn-glass-cta:hover {
            background: linear-gradient(180deg, rgba(255, 255, 255, 0.15) 0%, rgba(255, 255, 255, 0.08) 100%);
            border-color: rgba(255, 255, 255, 0.4);
            box-shadow: inset 0 1px 0 0 rgba(255, 255, 255, 0.5), 0 0 30px rgba(34, 211, 238, 0.4), 0 0 10px rgba(34, 211, 238, 0.2);
        }
        .btn-glass-cta::after {
            content: ''; position: absolute; top: 0; left: -100%; width: 50%; height: 100%;
            background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
            transform: skewX(-20deg); transition: 0.5s;
        }
        .btn-glass-cta:hover::after { left: 150%; transition: 0.7s ease-in-out; }

        .bg-grid {
            background-size: 40px 40px;
            background-image: linear-gradient(to right, rgba(15, 23, 42, 0.04) 1px, transparent 1px),
                              linear-gradient(to bottom, rgba(15, 23, 42, 0.04) 1px, transparent 1px);
            mask-image: linear-gradient(to bottom, transparent 0%, black 20%, black 50%, transparent 100%);
            -webkit-mask-image: linear-gradient(to bottom, transparent 0%, black 20%, black 50%, transparent 100%);
        }
        .dark .bg-grid {
            background-image: linear-gradient(to right, rgba(255, 255, 255, 0.03) 1px, transparent 1px),
                              linear-gradient(to bottom, rgba(255, 255, 255, 0.03) 1px, transparent 1px);
        }

        .spotlight-card::before {
            content: ""; position: absolute; top: 0; left: 0; right: 0; bottom: 0; border-radius: inherit; padding: 1.5px;
            background: radial-gradient(600px circle at var(--mouse-x) var(--mouse-y), var(--spotlight-color, rgba(15, 23, 42, 0.15)), transparent 40%);
            -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
            -webkit-mask-composite: xor; mask-composite: exclude; pointer-events: none; opacity: 0; transition: opacity 0.3s;
        }
        .dark .spotlight-card::before {
            background: radial-gradient(600px circle at var(--mouse-x) var(--mouse-y), var(--spotlight-color, rgba(255, 255, 255, 0.3)), transparent 40%);
        }
        .spotlight-card:hover::before { opacity: 1; }

        @keyframes fade-up { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
        .animate-fade-up { animation: fade-up 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards; opacity: 0; }
        .delay-100 { animation-delay: 0.1s; } .delay-200 { animation-delay: 0.2s; } .delay-300 { animation-delay: 0.3s; }
        @keyframes marquee { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }
        .animate-marquee { animation: marquee 40s linear infinite; width: max-content; }

        #mobile-menu { transition-timing-function: cubic-bezier(0.16, 1, 0.3, 1); }
        .mobile-link { font-family: 'Space Grotesk', sans-serif; }
        .hero-text-shadow { text-shadow: 0 4px 20px rgba(0,0,0,0.8); }

        /* COUNT-UP */
        @keyframes count-up { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
        .count-animate { animation: count-up 0.6s ease forwards; }

        /* WHY IT MATTERS TABLE ROWS */
        .compare-row-item { transition: background 0.2s; }
        .compare-row-item:hover { background: rgba(255,255,255,0.03); }

@media (max-width: 1024px) {
    .spotlight-card::before {
        opacity: 0.7;
        animation: spotlight-breathe 4s ease-in-out infinite alternate;
    }
    #cards-container > div:nth-child(1) { --mouse-x: 0%; --mouse-y: 0%; }
    #cards-container > div:nth-child(2) { --mouse-x: 0%; --mouse-y: 100%; }
    #cards-container > div:nth-child(3) { --mouse-x: 100%; --mouse-y: 50%; }
    #pricing-container > div:nth-child(1) { --mouse-x: 100%; --mouse-y: 0%; }
    #pricing-container > div:nth-child(2) { --mouse-x: 50%; --mouse-y: 100%; }
    #pricing-container > div:nth-child(3) { --mouse-x: 0%; --mouse-y: 0%; }
}

@keyframes spotlight-breathe {
    from { opacity: 0.4; filter: blur(2px); }
    to { opacity: 0.8; filter: blur(0px); }
}

/* SCREEN LOADER OVERLAY */
#loader-overlay.finished {
    display: none !important;
    opacity: 0;
    pointer-events: none;
}

.wave-lip {
    filter: drop-shadow(0 0 6px #22d3ee) drop-shadow(0 0 16px rgba(6, 182, 212, 0.7));
    will-change: transform;
}

/* Local Hub Page Specific Styling */
.hub-card {
    background-color: #ffffff;
    border: 1px solid #e2e8f0;
    transition: all 0.3s ease;
}
html.dark .hub-card {
    background-color: rgba(255, 255, 255, 0.03) !important;
    border-color: rgba(255, 255, 255, 0.08) !important;
}
html.dark .hub-card:hover {
    background-color: rgba(255, 255, 255, 0.05) !important;
    border-color: rgba(34, 211, 238, 0.35) !important;
    box-shadow: 0 10px 30px -10px rgba(0, 0, 0, 0.5), 0 0 20px rgba(34, 211, 238, 0.1);
}

.hub-search-terminal {
    background-color: #ffffff;
    border: 1px solid #e2e8f0;
}
html.dark .hub-search-terminal {
    background-color: #05070a !important;
    border-color: rgba(255, 255, 255, 0.1) !important;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.7), inset 0 1px 0 rgba(255, 255, 255, 0.05);
}

.hub-search-input {
    background-color: #f8fafc;
    border: 1px solid #e2e8f0;
    color: #0f172a;
}
html.dark .hub-search-input {
    background-color: rgba(255, 255, 255, 0.04) !important;
    border-color: rgba(255, 255, 255, 0.1) !important;
    color: #e2e8f0 !important;
}


