/* A quiet sphere of light; status stays still while its surface breathes. */
.loading-orb{position:relative;isolation:isolate;display:flex;flex-direction:column;align-items:center;justify-content:center;width:var(--loading-size,240px);height:var(--loading-size,240px);flex:none;border-radius:50%;padding:30px;text-align:center;color:#edfaff;background:radial-gradient(circle at 32% 24%,#90dbef2b,transparent 43%),radial-gradient(circle at 50% 57%,#112b3bf5 15%,#0b1d2df5 65%,#83d7ed65 98%);border:1px solid #b4efff9c;box-shadow:inset 0 0 24px #b2edff26,inset -12px -18px 32px #010b2294,0 0 24px 12px rgb(255 216 60 / 38%),0 0 48px 18px rgb(255 204 40 / 22%);}
.loading-orb::before,.loading-orb::after{content:"";position:absolute;inset:-1px;border-radius:50%;pointer-events:none;z-index:-1}
.loading-orb::before{box-shadow:0 0 30px #c1f2ff38,inset 0 0 22px #a4e6ff30;animation:orb-loading-breathe 3.2s ease-in-out infinite}
.loading-orb::after{inset:8px;border:1px solid #c3edff16;border-top-color:#d9f7ff59;transform:rotate(-28deg)}
.loading-orb .loading-wordmark{font-size:10px;letter-spacing:.28em;color:#b4d8e8;margin:0 0 13px;padding-left:.28em;font-weight:500}
.loading-orb .loading-status{font-size:17px;font-weight:500;line-height:1.4;max-width:100%;overflow-wrap:anywhere;text-wrap:balance;text-shadow:0 1px 9px #010a15;margin:0}
.loading-orb .loading-detail{font-size:11px;line-height:1.5;color:#bdd9e7;margin:11px 0 0;font-variant-numeric:tabular-nums}
#progress{--loading-size:clamp(200px,30svh,250px);position:absolute;left:50%;top:calc(50% + var(--toolbar)/2);transform:translate(-50%,-50%);z-index:16;display:block;width:var(--loading-size);height:var(--loading-size);max-width:none;padding:0;margin:0;border:0;background:none;white-space:normal;pointer-events:none;opacity:1;transition:opacity .65s ease,filter .65s ease}
#progress .loading-orb{pointer-events:auto}
#progress #phase{font-size:17px;font-weight:500}
#progress #elapsed{color:#bdd9e7}
#progress #cancel{background:transparent;border:0;border-bottom:1px solid #acd6e64d;border-radius:0;color:#b9d5e2;font-size:11px;min-height:36px;padding:8px 5px 5px;margin-top:8px}
#progress #cancel:hover{color:#fff;border-color:#dcf8ff}
#progress.loading-complete{opacity:0;filter:blur(4px);pointer-events:none}
#progress.loading-complete .loading-orb{pointer-events:none}
@keyframes orb-loading-breathe{0%,100%{opacity:.45;transform:scale(.99)}50%{opacity:1;transform:scale(1.025)}}
/* Still sky stops decorative motion, but the completion fade remains useful. */
body.still #progress,body.still #startup{transition:opacity .65s ease,filter .65s ease!important}
@media(max-width:700px){#progress{--loading-size:210px}#progress #phase{font-size:16px}}
@media(max-height:500px){#progress{--loading-size:180px}.loading-orb{padding:21px}.loading-orb .loading-wordmark{margin-bottom:7px}#progress #phase{font-size:14px}.loading-orb .loading-detail{margin-top:7px}#progress #cancel{margin-top:3px}}
@media(prefers-reduced-motion:reduce){.loading-orb::before{animation:none}#progress,#startup,body.still #progress,body.still #startup{transition:none!important}}

/* The diffuse yellow halo belongs to the sphere, with no separate backing disc. */
