:root { --startup-bg: #f5f7f6; --startup-panel: #ffffff; --startup-panel-border: #d8dfdc; --startup-text: #18201f; --startup-muted: #53625e; --startup-shadow: rgba(24, 32, 31, 0.14); --spinner-track: #d8dfdc; --spinner-primary: #16875f; --spinner-accent: #c48a2a; --error-text: #9d241b; color: var(--startup-text); background: var(--startup-bg); color-scheme: light dark; font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-synthesis: none; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } @media (prefers-color-scheme: dark) { :root { --startup-bg: #0f1413; --startup-panel: #151c1a; --startup-panel-border: #27322e; --startup-text: #edf5f2; --startup-muted: #9ca8a4; --startup-shadow: rgba(0, 0, 0, 0.36); --spinner-track: #27322e; --spinner-primary: #2aa876; --spinner-accent: #d6a348; --error-text: #ffb4ab; } } * { box-sizing: border-box; } body { background: var(--startup-bg); margin: 0; min-width: 320px; min-height: 100vh; } .startup-shell { align-items: center; background: var(--startup-bg); display: flex; min-height: 100vh; padding: 32px; } .startup-panel { align-items: center; display: flex; justify-content: center; margin: 0 auto; min-height: 88px; min-width: 88px; } .status-spinner { animation: startup-spin 960ms linear infinite; background: linear-gradient(var(--startup-bg), var(--startup-bg)) padding-box, conic-gradient( from 0deg, var(--spinner-primary), var(--spinner-accent), var(--spinner-track), var(--spinner-primary) ) border-box; border: 4px solid transparent; border-radius: 999px; height: 52px; width: 52px; } .startup-copy { border: 0; clip: rect(0 0 0 0); display: block; height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; white-space: nowrap; width: 1px; } .startup-shell.is-failed .startup-panel { background: var(--startup-panel); border: 1px solid var(--startup-panel-border); border-radius: 8px; box-shadow: 0 24px 70px var(--startup-shadow); display: grid; gap: 20px; grid-template-columns: 56px minmax(0, 1fr); max-width: 560px; min-height: 168px; padding: 28px; width: min(100%, 560px); } .startup-shell.is-failed .status-spinner { animation: none; background: linear-gradient(var(--startup-panel), var(--startup-panel)) padding-box, conic-gradient(from 90deg, var(--error-text), var(--spinner-accent), var(--error-text)) border-box; height: 44px; width: 44px; } .startup-shell.is-failed .startup-copy { clip: auto; height: auto; margin: 0; min-width: 0; overflow: visible; position: static; white-space: normal; width: auto; } .eyebrow { color: var(--startup-muted); font-size: 0.78rem; font-weight: 700; letter-spacing: 0; line-height: 1.4; margin: 0 0 6px; text-transform: uppercase; } h1 { color: var(--startup-text); font-size: 1.55rem; line-height: 1.2; margin: 0; overflow-wrap: anywhere; } #status-detail { color: var(--startup-muted); font-size: 0.96rem; line-height: 1.55; margin: 10px 0 0; overflow-wrap: anywhere; } .startup-shell.is-failed h1 { color: var(--error-text); } @keyframes startup-spin { to { transform: rotate(360deg); } } @media (prefers-reduced-motion: reduce) { .status-spinner { animation: none; } } @media (max-width: 520px) { .startup-shell { align-items: stretch; padding: 16px; } .startup-shell.is-failed .startup-panel { align-content: center; grid-template-columns: 1fr; justify-items: start; min-height: 100%; padding: 22px; } }