/* ═══════════════════════════════════════════════════
           LOADING SCREEN
        ═══════════════════════════════════════════════════ */
        #site-loader {
            position: fixed;
            inset: 0;
            z-index: 9999;
            background: #000a1a;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            transition: opacity 0.6s ease, visibility 0.6s ease;
        }

        #site-loader.fade-out {
            opacity: 0;
            visibility: hidden;
            pointer-events: none;
        }

        /* Central icon */
        .sl-hub {
            position: relative;
            width: 88px;
            height: 88px;
            display: flex;
            align-items: center;
            justify-content: center;
        }

        .sl-cap-icon {
            position: relative;
            z-index: 10;
            width: 76px;
            height: 76px;
            border-radius: 50%;
            background: rgba(0, 10, 26, 0.9);
            border: 2px solid rgba(59, 130, 246, 0.3);
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 2rem;
            color: #60a5fa;
            box-shadow: 0 0 0 0 rgba(59, 130, 246, 0.4);
            animation: sl-pulse 2s ease-in-out infinite;
        }

        @keyframes sl-pulse {
            0%, 100% { box-shadow: 0 0 0 0 rgba(59, 130, 246, 0.4), 0 0 30px rgba(59, 130, 246, 0.15); }
            50%       { box-shadow: 0 0 0 14px rgba(59, 130, 246, 0), 0 0 50px rgba(59, 130, 246, 0.3); }
        }

        /* Orbiting symbols — uses rotate→translate→counter-rotate trick */
        .sl-sym {
            position: absolute;
            top: 50%;
            left: 50%;
            /* visually centered on the hub */
            margin-top: -0.7em;
            margin-left: -0.35em;
            font-size: 0.95rem;
            font-weight: 700;
            font-family: 'Courier New', monospace;
            line-height: 1;
            user-select: none;
            pointer-events: none;
        }

        /* ── Orbit track 1 — inner, fast (radius 72px) ── */
        @keyframes sl-orb-72 {
            from { transform: rotate(var(--s,0deg))   translateX(72px)  rotate(calc(-1*(var(--s,0deg)))); }
            to   { transform: rotate(calc(var(--s,0deg)+360deg)) translateX(72px)  rotate(calc(-1*(var(--s,0deg)+360deg))); }
        }
        .sl-r72 { animation: sl-orb-72 4s linear infinite; color: #60a5fa; }

        /* ── Orbit track 2 — mid (radius 116px) ── */
        @keyframes sl-orb-116 {
            from { transform: rotate(var(--s,0deg))   translateX(116px) rotate(calc(-1*(var(--s,0deg)))); }
            to   { transform: rotate(calc(var(--s,0deg)+360deg)) translateX(116px) rotate(calc(-1*(var(--s,0deg)+360deg))); }
        }
        .sl-r116 { animation: sl-orb-116 7s linear infinite; color: #34d399; }

        /* ── Orbit track 3 — outer, slow (radius 162px) ── */
        @keyframes sl-orb-162 {
            from { transform: rotate(var(--s,0deg))   translateX(162px) rotate(calc(-1*(var(--s,0deg)))); }
            to   { transform: rotate(calc(var(--s,0deg)+360deg)) translateX(162px) rotate(calc(-1*(var(--s,0deg)+360deg))); }
        }
        .sl-r162 { animation: sl-orb-162 11s linear infinite; color: #a78bfa; }

        /* Faint orbit track rings */
        .sl-track {
            position: absolute;
            top: 50%; left: 50%;
            border-radius: 50%;
            border: 1px solid rgba(255,255,255,0.05);
            transform: translate(-50%, -50%);
            pointer-events: none;
        }

        /* Brand label */
        .sl-brand {
            margin-top: 2.5rem;
            font-family: 'Inter', sans-serif;
            font-weight: 800;
            font-size: 1.3rem;
            letter-spacing: -0.01em;
            color: #f1f5f9;
        }

        .sl-brand span { color: #06b6d4; }

        .sl-tagline {
            margin-top: 0.35rem;
            font-size: 0.72rem;
            color: #334155;
            text-transform: uppercase;
            letter-spacing: 0.18em;
            font-weight: 600;
        }

        /* Loading dots */
        .sl-dots {
            display: flex;
            gap: 6px;
            margin-top: 2rem;
        }

        .sl-dots span {
            width: 6px; height: 6px;
            border-radius: 50%;
            background: #1e3a5f;
            animation: sl-dot-bounce 1.2s ease-in-out infinite;
        }

        .sl-dots span:nth-child(2) { animation-delay: 0.2s; }
        .sl-dots span:nth-child(3) { animation-delay: 0.4s; }

        @keyframes sl-dot-bounce {
            0%, 80%, 100% { transform: scale(1);   background: #1e3a5f; }
            40%            { transform: scale(1.6); background: #3b82f6; }
        }
