/* Hide the browser's tap flash without changing keyboard focus indicators. */
* { -webkit-tap-highlight-color: transparent; }

#loading-overlay { position: fixed; inset: 0; z-index: 10000; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 22px; background: #101115; color: #fff; pointer-events: auto; opacity: 1; visibility: visible; transition: opacity 280ms ease, visibility 280ms ease; }
#loading-overlay.is-hidden { opacity: 0; visibility: hidden; pointer-events: none; }
.loading-overlay-lottie { position: relative; width: min(190px, 34vw); height: min(200px, 36vw); flex: none; }
.loading-robot-fallback { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; filter: drop-shadow(0 12px 30px rgba(87, 138, 255, .3)); animation: loading-robot-float 2.3s ease-in-out infinite; }
.loading-robot-animation { position: absolute; inset: 0; opacity: 0; transition: opacity 180ms ease; }
.loading-robot-animation svg { width: 100% !important; height: 100% !important; }
.loading-overlay-lottie.is-animated .loading-robot-animation { opacity: 1; }
.loading-overlay-lottie.is-animated .loading-robot-fallback { opacity: 0; }
.loading-progress { position: relative; width: min(360px, 76vw); height: 8px; overflow: hidden; border: 1px solid rgba(139, 162, 255, .42); border-radius: 999px; background: rgba(63, 70, 115, .34); box-shadow: inset 0 0 8px rgba(0, 0, 0, .42), 0 0 18px rgba(65, 105, 255, .12); }
.loading-progress-bar { width: 0; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #586cff 0%, #68c8ff 55%, #b9e9ff 100%); box-shadow: 0 0 12px rgba(85, 154, 255, .9), 0 0 22px rgba(88, 108, 255, .55); transition: width 160ms cubic-bezier(.22, .8, .32, 1); }
.loading-percent { min-width: 5ch; display: flex; align-items: center; justify-content: center; color: rgba(235, 242, 255, .92); font: 600 23px/1.2 ui-monospace, SFMono-Regular, Consolas, monospace; font-variant-numeric: tabular-nums; letter-spacing: .08em; }
.loading-percent-value { display: inline-block; }
.loading-skip { margin-top: 2px; padding: 8px 15px; border: 1px solid rgba(139, 162, 255, .5); border-radius: 999px; background: rgba(39, 48, 84, .65); color: #e8efff; font: 13px/1.4 system-ui, sans-serif; cursor: pointer; }
.loading-skip[hidden] { display: none; }
.loading-skip:hover { background: rgba(68, 82, 137, .75); }
@keyframes loading-robot-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }
@media (prefers-reduced-motion: reduce) { .loading-robot-fallback { animation: none; } #loading-overlay, .loading-robot-animation { transition: none; } }
