/* Small, local first-paint styles: no remote fonts or inline CSP exceptions. */
html{background:#09090b;color-scheme:dark}
body{margin:0;background:#09090b}
.app-startup{position:fixed;inset:0;z-index:40;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 24px calc(32px + env(safe-area-inset-bottom));background:radial-gradient(ellipse at 50% 30%,#231015 0%,#09090b 62%);color:#f8f7fa;text-align:center;font:400 14px/1.6 system-ui,sans-serif;opacity:1;transition:opacity 180ms ease-out}
.app-startup[hidden]{display:none}
.startup-brand{font:800 64px/.95 Arial,system-ui,sans-serif;letter-spacing:-4px;color:#f43143;margin:0 0 36px}
.startup-brand span{display:block;margin-top:18px;padding-left:10px;font:500 12px/1.5 system-ui,sans-serif;letter-spacing:11px;color:#d5bac2}
.startup-dots{display:flex;gap:7px;align-items:center;height:8px}
.startup-dots span{width:5px;height:5px;border-radius:50%;background:#f43143;opacity:.4;animation:startup-pulse .9s ease-in-out 4}
.startup-dots span:nth-child(2){animation-delay:.12s}.startup-dots span:nth-child(3){animation-delay:.24s}
.app-startup #startup-message{max-width:32ch;margin:18px 0 0;color:#a5a4ad;font-size:14px;line-height:1.6}
.startup-foot{position:absolute;bottom:calc(28px + env(safe-area-inset-bottom));font-size:12px;color:#a5a4ad}
#startup-recovery{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;max-width:100%;margin-top:24px}
#startup-recovery[hidden],.startup-inline-recovery[hidden]{display:none}
/* A CSS fallback still offers recovery when JavaScript fails to download. */
.startup-fallback{position:absolute;bottom:calc(76px + env(safe-area-inset-bottom));max-width:100%;padding:0 24px;visibility:hidden;animation:startup-fallback 0s 6s forwards}
.startup-fallback a{display:inline-block;min-height:44px;padding:10px 14px;color:#a5a4ad;text-decoration:underline;text-underline-offset:3px}
.startup-fallback a:focus-visible{outline:2px solid #f43143;outline-offset:2px}
.app-startup:has(#startup-recovery:not([hidden])) .startup-fallback{display:none}
.startup-no-script{max-width:34ch;color:#a5a4ad}
html[data-startup="loading"] [data-startup-shell]{visibility:hidden}
html:is([data-startup="content"],[data-startup="ready"]) .app-startup{opacity:0;pointer-events:none}
html[data-startup="failed"] .startup-dots{visibility:hidden}
.startup-reveal{animation:startup-reveal 180ms ease-out both}
.startup-inline-status{margin:0 0 var(--space-6);color:var(--muted);font-size:var(--font-small);line-height:1.6}
.startup-heading{width:100%}
.skeleton-block{display:block;background:var(--line);border-radius:4px}
.skeleton-eyebrow{width:140px;max-width:50%;height:12px}
.skeleton-title{width:340px;max-width:88%;height:42px;margin:16px 0 12px}
.skeleton-greeting{width:220px;max-width:68%;height:24px}
.startup-skeleton-tabs{display:flex;flex-wrap:wrap;gap:8px;padding:8px;margin:32px 0 24px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius)}
.startup-skeleton-tabs span{flex:1 1 15%;height:48px;border-radius:var(--radius-control);background:var(--line)}
.skeleton-card-title{height:28px;width:78%;margin:24px 0}
.skeleton-price{height:42px;width:52%;margin:16px 0 24px}
.skeleton-row{height:24px;width:100%;margin:24px 0}
.startup-inline-recovery{margin-top:24px}
@keyframes startup-pulse{0%,100%{opacity:.3}50%{opacity:1}}
@keyframes startup-reveal{from{opacity:0}to{opacity:1}}
@keyframes startup-fallback{to{visibility:visible}}
@media(max-width:760px){.startup-skeleton-tabs span{flex-basis:28%}.startup-skeleton-card{min-height:200px}}
@media(prefers-reduced-motion:reduce){.app-startup{transition:none}.startup-dots span,.startup-reveal{animation:none}.startup-fallback{animation:none;visibility:visible}}

.startup-error-actions{justify-content:center}
