/* Preload overlay */
#preload-overlay { position:fixed!important; inset:0!important; width:100vw; height:100vh; z-index:99999; background:linear-gradient(135deg,#1d1f23,#14161a 55%,#101114); display:flex!important; justify-content:center!important; align-items:center!important; font-family:sans-serif; color:#e9f2ff; -webkit-font-smoothing:antialiased; }
#preload-overlay.hidden { display:none!important; opacity:0!important; visibility:hidden!important; }
#preload-overlay .preload-box { width:410px; max-width:92%; background:#262a30; border:1px solid #39424d; border-radius:18px; padding:28px 30px 26px; box-shadow:0 14px 42px -8px rgba(0,0,0,.55),0 2px 6px rgba(0,0,0,.35); display:flex; flex-direction:column; gap:18px; position:relative; box-sizing:border-box; overflow:hidden; }
#preload-overlay .preload-box::before { content:""; position:absolute; inset:0; background: radial-gradient(circle at 15% 20%,rgba(90,160,255,.16),transparent 60%), radial-gradient(circle at 85% 70%,rgba(0,200,255,.13),transparent 65%); pointer-events:none; }
.preload-header { display:flex; gap:16px; align-items:flex-start; }
.preload-title-wrap { flex:1; min-width:0; }
.preload-title { margin:0 0 4px; font-size:1.3em; letter-spacing:.6px; font-weight:700; color:#f4f9ff; text-shadow:0 1px 2px rgba(0,0,0,.6); }
.preload-sub { margin:0; font-size:.78em; line-height:1.45; color:#c5d4e5; letter-spacing:.2px; opacity:.95; }
.bar-outer { width:100%; height:18px; background:#3a3f46; border-radius:12px; overflow:hidden; position:relative; border:1px solid #4d5660; }
.bar-inner { height:100%; width:0%; background:linear-gradient(90deg,#6da7ff,#5edbff 55%,#64fff6); background-size:200% 100%; animation:barFlow 3.2s linear infinite; border-radius:12px; box-shadow:0 0 0 1px rgba(255,255,255,.15) inset,0 2px 6px -2px rgba(0,0,0,.6); transition:width .35s cubic-bezier(.4,.7,.4,1); }
@keyframes barFlow { 0% {background-position:0 0;} 100% {background-position:-200% 0;} }
.preload-stats { display:flex; justify-content:space-between; font-size:.78em; font-weight:600; letter-spacing:.3px; color:#d0dde9; text-shadow:0 1px 1px rgba(0,0,0,.35); margin-top:-4px; }
.preload-stats .phase { text-align:right; max-width:60%; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.spinner { width:50px; height:50px; border-radius:50%; position:relative; background:conic-gradient(from 0deg,#86cfff,#5edbff 120deg,rgba(255,255,255,0) 175deg 360deg); animation:spin 1.0s linear infinite; flex-shrink:0; box-shadow:0 0 0 3px rgba(255,255,255,0.05),0 4px 10px -2px rgba(0,0,0,.55),inset 0 0 8px rgba(255,255,255,.08); }
.spinner::after { content:""; position:absolute; inset:7px; background:#262a30; border-radius:50%; box-shadow:0 0 0 1px #39424d; }
@keyframes spin { to { transform:rotate(360deg); } }
@supports not (background: conic-gradient(red, blue)) { .spinner { background:none; border:5px solid #2f3a44; border-top-color:#6fe9ff; animation:spin .9s linear infinite; } .spinner::after { display:none; } }
@media (max-width:580px) { #preload-overlay .preload-box { width:94%; padding:24px 22px 22px; } .preload-title { font-size:1.15em; } .spinner { width:42px; height:42px; } }
