html,body{margin:0;background:#0b1117;color:#e8f0f2}
body.startup-pending{overflow:hidden}
.startup-pending #root{visibility:hidden}
#startup{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;padding:24px;box-sizing:border-box;background:radial-gradient(ellipse at 35% 35%,#14302c 0,transparent 60%),#0b1117;font-family:system-ui,sans-serif;transition:opacity .28s ease}
#startup[hidden]{display:none}
#startup.leaving{opacity:0;pointer-events:none}
/* Anchor the loading line at the viewport midpoint, with the logo above it. */
.startup-brand{position:absolute;top:calc(50% - 1.5px);left:0;right:0;height:3px;margin:auto;width:min(390px,78vw);text-align:center;animation:startup-enter .8s ease both}
.startup-brand img{position:absolute;bottom:23px;display:block;width:100%;height:auto}
.startup-track{height:3px;width:58%;margin:0 auto;overflow:hidden;border-radius:4px;background:#203333}
.startup-line{height:100%;width:100%;background:linear-gradient(90deg,#63dabc,#ffca45);transform:scaleX(.04);transform-origin:left;animation:startup-grow 18s cubic-bezier(.1,.65,.2,1) forwards;transition:transform .22s ease}
#startup.ready .startup-line{animation:none;transform:scaleX(1)}
.startup-recovery{margin:28px auto 0;max-width:340px;font-size:14px;line-height:1.6;color:#bdcdcf}
.startup-recovery[hidden]{display:none}
.startup-recovery button{margin:8px 4px 0;border:1px solid #63dabc;border-radius:12px;padding:12px 22px;font:600 14px system-ui;background:#8bdcbe;color:#102822;cursor:pointer}
.startup-recovery button:focus-visible{outline:3px solid #ffca45;outline-offset:4px}
.startup-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@keyframes startup-enter{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@keyframes startup-grow{from{transform:scaleX(.04)}to{transform:scaleX(.92)}}
@media(prefers-reduced-motion:reduce){.startup-brand,.startup-line{animation:none}.startup-line{transform:scaleX(.6)}#startup{transition:none}}
