/* =====================================================================
   BELSense startup splash
   Shows the animated mark, then fades smoothly into the chat.
   ===================================================================== */
.bel-splash {
    position: fixed; inset: 0; z-index: 999999;
    display: flex; align-items: center; justify-content: center;
    background:
        radial-gradient(1200px 600px at 50% -10%, #eaf2ff 0%, transparent 60%),
        linear-gradient(160deg, #f7faff 0%, #eef4ff 100%);
    opacity: 1; transition: opacity .55s ease, visibility .55s ease;
    font-family: "Questrial", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}
.bel-splash.bel-hide { opacity: 0; visibility: hidden; pointer-events: none; }

.bel-splash-inner {
    display: flex; flex-direction: column; align-items: center;
    animation: belSplashRise .6s cubic-bezier(.2,.7,.2,1) both;
}
@keyframes belSplashRise {
    from { opacity: 0; transform: translateY(10px) scale(.98); }
    to   { opacity: 1; transform: none; }
}

.bel-splash-mark {
    filter: drop-shadow(0 16px 34px rgba(27,110,243,.32));
    animation: belMarkFloat 3s ease-in-out infinite;
}
@keyframes belMarkFloat {
    0%,100% { transform: translateY(0); }
    50%     { transform: translateY(-6px); }
}

/* solar core pulse */
.bel-core { transform-origin: 48px 66px; animation: belCorePulse 1.8s ease-in-out infinite; }
@keyframes belCorePulse {
    0%,100% { transform: scale(1);   opacity: 1; }
    50%     { transform: scale(1.12); opacity: .85; }
}

/* sensing waves ripple outward in sequence */
.bel-wave { opacity: 0; animation: belWave 1.8s ease-out infinite; }
.bel-wave-1 { animation-delay: 0s;   }
.bel-wave-2 { animation-delay: .25s; }
.bel-wave-3 { animation-delay: .5s;  }
@keyframes belWave {
    0%   { opacity: 0;   }
    30%  { opacity: 1;   }
    100% { opacity: .15; }
}

.bel-splash-word {
    margin-top: 22px; font-size: 30px; letter-spacing: .5px; color: #1b6ef3;
}
.bel-splash-word b { color: #12233f; font-weight: 700; }
.bel-splash-tag {
    margin-top: 4px; font-size: 12px; letter-spacing: 3.5px;
    text-transform: uppercase; color: #7a8699;
}

/* loading bar */
.bel-splash-bar {
    margin-top: 26px; width: 160px; height: 4px; border-radius: 4px;
    background: rgba(27,110,243,.15); overflow: hidden;
}
.bel-splash-bar span {
    display: block; height: 100%; width: 40%; border-radius: 4px;
    background: linear-gradient(90deg, #1b6ef3, #4a90ff);
    animation: belBar 1.15s ease-in-out infinite;
}
@keyframes belBar {
    0%   { transform: translateX(-120%); }
    60%  { transform: translateX(160%);  }
    100% { transform: translateX(160%);  }
}

@media (prefers-reduced-motion: reduce) {
    .bel-splash-mark, .bel-core, .bel-wave, .bel-splash-bar span, .bel-splash-inner {
        animation: none !important;
    }
    .bel-wave { opacity: .9; }
}