/* Extraído de index.html (bloque de estilo #3) */
        @keyframes spl-spin  { to { transform: rotate(360deg);  } }
        @keyframes spl-spin2 { to { transform: rotate(-360deg); } }
        @keyframes spl-pulse-glow {
            0%,100% { opacity:.35; transform:scale(1);    }
            50%      { opacity:.75; transform:scale(1.07); }
        }
        @keyframes spl-bar-sweep {
            0%   { transform:translateX(-100%); width:30%; }
            50%  {                               width:55%; }
            100% { transform:translateX(340%);  width:30%; }
        }
        @keyframes spl-shimmer {
            0%   { background-position:-220% center; }
            100% { background-position: 220% center; }
        }
        @keyframes spl-dot-pulse {
            0%,80%,100% { transform:scale(.55); opacity:.35; }
            40%          { transform:scale(1);   opacity:1;   }
        }
        @keyframes spl-fade-up {
            from { opacity:0; transform:translateY(14px); }
            to   { opacity:1; transform:translateY(0);    }
        }

        /* ── Root container ── */
        #startup-indicator {
            position: fixed;
            inset: 0;
            background: radial-gradient(ellipse at 38% 62%, #1e1b4b 0%, #0f172a 52%, #020617 100%);
            z-index: 99999;
            display: flex;
            align-items: center;
            justify-content: center;
            font-family: 'Inter','SF Pro Display',-apple-system,sans-serif;
            overflow: hidden;
            transition: opacity .75s cubic-bezier(.4,0,.2,1);
        }
        #startup-indicator.fade-out {
            opacity: 0;
            pointer-events: none;
        }
        #startup-indicator.fade-out .spl-card {
            transform: scale(1.05) translateY(-10px);
            filter: blur(10px);
        }

        /* ── Particle canvas ── */
        #splash-canvas {
            position: absolute;
            inset: 0;
            width: 100%;
            height: 100%;
            pointer-events: none;
            z-index: 1;
        }

        /* ── Center card ── */
        .spl-card {
            position: relative;
            z-index: 10;
            display: flex;
            flex-direction: column;
            align-items: center;
            transition: transform .75s cubic-bezier(.4,0,.2,1), filter .75s ease;
        }

        /* ── Logo + rings ── */
        .spl-logo-wrap {
            position: relative;
            margin-bottom: 26px;
            cursor: pointer;
            animation: spl-fade-up .6s .05s both;
        }
        .spl-ring-outer {
            position: absolute;
            inset: -24px;
            border-radius: 30px;
            border: 1.5px solid rgba(99,102,241,.22);
            animation: spl-pulse-glow 3.2s ease-in-out infinite;
        }
        .spl-ring-spin {
            position: absolute;
            inset: -14px;
            border-radius: 24px;
            border: 2px solid transparent;
            border-top-color: rgba(99,102,241,.8);
            border-right-color: rgba(56,189,248,.3);
            animation: spl-spin 2.2s linear infinite;
        }
        .spl-ring-spin2 {
            position: absolute;
            inset: -6px;
            border-radius: 20px;
            border: 1.5px solid transparent;
            border-bottom-color: rgba(56,189,248,.6);
            border-left-color: rgba(139,92,246,.25);
            animation: spl-spin2 3.5s linear infinite;
        }
        #splash-logo-img {
            display: block;
            max-width: 210px;
            max-height: 115px;
            width: auto;
            height: auto;
            min-width: 80px;
            border-radius: 20px;
            position: relative;
            z-index: 2;
            object-fit: contain;
            filter: drop-shadow(0 8px 28px rgba(99,102,241,.35));
        }

        /* ── Brand text ── */
        .spl-brand {
            font-size: .6rem;
            font-weight: 800;
            letter-spacing: 5px;
            text-transform: uppercase;
            background: linear-gradient(90deg,
                rgba(255,255,255,.3) 0%,
                rgba(255,255,255,.92) 45%,
                rgba(255,255,255,.3) 90%);
            background-size: 220% auto;
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            background-clip: text;
            animation: spl-shimmer 3.2s linear infinite, spl-fade-up .6s .25s both;
            margin-bottom: 7px;
        }
        .spl-tagline {
            font-size: .68rem;
            font-weight: 500;
            color: rgba(148,163,184,.65);
            letter-spacing: 2.8px;
            text-transform: uppercase;
            margin-bottom: 30px;
            animation: spl-fade-up .6s .4s both;
        }

        /* ── Loader bar + dots ── */
        .spl-loader-wrap {
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 10px;
            animation: spl-fade-up .6s .6s both;
        }
        .spl-track {
            width: 150px;
            height: 2px;
            background: rgba(255,255,255,.07);
            border-radius: 99px;
            overflow: hidden;
        }
        .spl-bar {
            height: 100%;
            width: 40%;
            background: linear-gradient(90deg, #6366f1, #38bdf8);
            border-radius: 99px;
            animation: spl-bar-sweep 1.7s ease-in-out infinite;
            box-shadow: 0 0 10px rgba(99,102,241,.7);
        }
        .spl-dots {
            display: flex;
            gap: 5px;
            align-items: center;
        }
        .spl-dot {
            width: 4px;
            height: 4px;
            border-radius: 50%;
            background: rgba(99,102,241,.9);
            animation: spl-dot-pulse 1.4s ease-in-out infinite;
        }
        .spl-dot:nth-child(1) { animation-delay: 0s;    }
        .spl-dot:nth-child(2) { animation-delay: .18s;  }
        .spl-dot:nth-child(3) { animation-delay: .36s;  }
        #splash-status-text {
            font-size: .58rem;
            font-weight: 700;
            letter-spacing: 2.8px;
            text-transform: uppercase;
            color: rgba(148,163,184,.5);
        }
