.workspace-loader {
  --loader-bg: #0c0b12; --loader-ink: #f4f1fa; --loader-muted: #b0a7c0; --loader-accent: #bd9aef;
  position: relative; isolation: isolate; display: grid; place-items: center; min-height: 300px; height: 100%; width: 100%;
  overflow: auto; padding: 32px 24px; box-sizing: border-box; background: var(--loader-bg); color: var(--loader-ink);
  font-family: "SF Pro Display", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;
}
.workspace-loader::before {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: radial-gradient(ellipse 42% 34% at 50% 42%, #564bbe42, transparent 72%), url("./workspace-loading-haze.webp") center / cover no-repeat; opacity: .82;
  animation: workspace-haze 6s ease-in-out infinite alternate;
}
.workspace-loader *, .workspace-loader *::before, .workspace-loader *::after { box-sizing: border-box; }
.workspace-loader-stage { width: min(560px, 100%); text-align: center; animation: workspace-loader-enter 220ms ease-out both; }
.workspace-loader-kind { display: block; margin-bottom: 22px; color: var(--loader-muted); font-size: 12px; font-weight: 500; letter-spacing: .12em; }
.workspace-loader-orbit { position: relative; display: grid; place-items: center; width: 164px; height: 164px; margin: 0 auto 30px; }
.workspace-loader-ring { position: absolute; inset: -8px; z-index: 1; pointer-events: none; }
.workspace-loader .workspace-loader-ring svg { width: 100%; height: 100%; overflow: visible; background: transparent !important; border: 0 !important; box-shadow: none !important; }
.workspace-loader-ring .spin { transform-origin: 88px 88px; animation: workspace-loader-spin 14s linear infinite; }
.workspace-loader-ring .spin.rev { animation-duration: 22s; animation-direction: reverse; }
.workspace-loader-ring .prog { transform: rotate(-90deg); transform-origin: 88px 88px; filter: drop-shadow(0 0 6px rgba(120,120,255,.9)); animation: workspace-loader-arc 6s ease-in-out infinite; }
.workspace-loader-orbit::after { content: ""; position: absolute; inset: -36px; pointer-events: none; background: radial-gradient(circle, #6560eb30 12%, #5448b92e 29%, #425fd514 47%, transparent 68%); }
.workspace-loader .workspace-loader-orbit img { position: relative; z-index: 2; width: 88px; height: 88px; object-fit: contain; background: transparent !important; border: 0 !important; box-shadow: none !important; }
.workspace-loader .workspace-loader-title { margin: 0; padding: 0; background: none; color: var(--loader-ink); font-size: clamp(23px, 3.2vw, 34px); line-height: 1.35; letter-spacing: .035em; font-weight: 650; overflow-wrap: anywhere; }
.workspace-loader-detail { margin: 12px auto 0; color: var(--loader-muted); font-size: 13px; line-height: 1.7; max-width: 460px; overflow-wrap: anywhere; }
.workspace-loader-track { position: relative; overflow: hidden; width: min(240px, 72%); height: 2px; margin: 28px auto 0; border-radius: 2px; background: #b4aaff20; }
.workspace-loader-track::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, #934bff, #638bff, #91e1ff); box-shadow: 0 0 12px #638bff80; transform: scaleX(.3); animation: workspace-loader-scan 1.7s ease-in-out infinite; }
.workspace-loader-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 24px; }
.workspace-loader-actions > button, .workspace-loader-actions > a { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-height: 40px; padding: 9px 16px; border: 1px solid #bd9aef40; border-radius: 9px; background: transparent; color: var(--loader-ink); font: inherit; font-size: 13px; text-decoration: none; cursor: pointer; }
.workspace-loader-actions > :first-child { background: var(--loader-accent); border-color: transparent; color: #21152e; font-weight: 600; }
.workspace-loader-actions > :hover { opacity: .85; }
.workspace-loader-actions > :focus-visible { outline: 2px solid var(--loader-accent); outline-offset: 4px; }
.workspace-loader.is-idle .workspace-loader-ring { opacity: .45; }
.workspace-loader.is-idle .workspace-loader-ring :is(.spin,.prog) { animation: none; }
.workspace-loader.is-idle .workspace-loader-stage { animation: none; }
.workspace-loader.is-idle .workspace-loader-track { display: none; }
.workspace-loader.is-idle::before { animation: none; }
.workspace-loader.is-fullscreen { position: fixed; inset: 0; height: auto; min-height: 0; z-index: 9999; }
#starmoe-startup-shell.workspace-loader { z-index: 2147483600; transition: opacity 180ms ease-out; }
#starmoe-startup-shell.is-ready { opacity: 0; pointer-events: none; }
html:not([data-online-session-boot="pending"]) #starmoe-session-loader { display: none; }
html[data-online-session-boot="pending"] body::before { display: none !important; }
@keyframes workspace-loader-spin { to { transform: rotate(360deg); } }
/* Unknown-duration waiting: grow from the source's fixed top anchor, then fade
   and reset. This does not produce a fake percentage or finish the loader. */
@keyframes workspace-loader-arc { 0% { stroke-dashoffset: 439.8px; opacity: 0; } 6% { opacity: 1; } 80% { stroke-dashoffset: 0; opacity: 1; } 94%,100% { stroke-dashoffset: 0; opacity: 0; } }
@keyframes workspace-loader-scan { from { transform: translateX(-90%) scaleX(.3); } to { transform: translateX(90%) scaleX(.3); } }
@keyframes workspace-haze { from { opacity: .64; } to { opacity: .9; } }
@keyframes workspace-loader-enter { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: none; } }
@media (max-width: 480px) { .workspace-loader { padding: 24px 18px; } .workspace-loader-orbit { width: 136px; height: 136px; margin-bottom: 24px; } .workspace-loader .workspace-loader-orbit img { width: 72px; height: 72px; } .workspace-loader-kind { margin-bottom: 18px; } }
@media (prefers-reduced-motion: reduce) { .workspace-loader::before, .workspace-loader-stage, .workspace-loader-ring :is(.spin,.prog), .workspace-loader-track::after { animation: none; } #starmoe-startup-shell.workspace-loader { transition: none; } }
