html[data-authe-startup] {--startup-background:hsl(0 0% 100%);--startup-foreground:hsl(240 10% 3.9%);--startup-muted:hsl(240 3.8% 42%);--startup-primary:hsl(38 92% 27%);--startup-primary-foreground:hsl(0 0% 100%);--startup-font:"Inter Variable", "Inter", system-ui, sans-serif;--startup-radius:var(--radius,0.5rem);}
html.dark[data-authe-startup] {--startup-background:hsl(240 10% 3.9%);--startup-foreground:hsl(0 0% 98%);--startup-muted:hsl(240 5% 64.9%);--startup-primary:hsl(38 92% 50%);--startup-primary-foreground:hsl(240 10% 12%);--startup-font:"Inter Variable", "Inter", system-ui, sans-serif;--startup-radius:var(--radius,0.5rem);}
/* Scoped, critical CSS: no font, image, React or application stylesheet request. */
html[data-authe-startup] { color-scheme: light; background: var(--startup-background); }
html[data-authe-startup].dark { color-scheme: dark; }
html[data-authe-startup] body { margin: 0; background: var(--startup-background); }
[data-authe-startup-screen] {
  box-sizing: border-box; min-height: 100svh; width: 100%; padding: 1.5rem;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 1rem; text-align: center; overflow-wrap: anywhere;
  background: var(--startup-background); color: var(--startup-foreground);
  font-family: var(--startup-font, system-ui, sans-serif); font-size: 0.875rem; line-height: 1.5;
}
[data-authe-startup-screen] [hidden] { display: none !important; }
[data-authe-startup-screen] p { margin: 0; max-width: 28rem; }
[data-authe-startup-spinner] { visibility: hidden; line-height: 0; }
[data-authe-startup-screen][data-visible] [data-authe-startup-spinner] { visibility: visible; }
[data-authe-startup-screen] .authe-spinner {
  width: 2rem; height: 2rem; color: var(--startup-primary);
  animation-name: authe-startup-spin; animation-timing-function: linear; animation-iteration-count: infinite;
}
@keyframes authe-startup-spin { to { transform: rotate(360deg); } }
[data-authe-startup-screen] .authe-startup-sr {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0;
}
[data-authe-startup-detail] { color: var(--startup-muted); }
[data-authe-startup-screen] button {
  box-sizing: border-box; min-height: 2.25rem; max-width: 100%; padding: 0.375rem 1rem;
  border: 1px solid transparent; border-radius: var(--startup-radius);
  background: var(--startup-primary); color: var(--startup-primary-foreground);
  font: inherit; font-weight: 500; cursor: pointer; overflow-wrap: anywhere;
}
[data-authe-startup-screen] button:focus-visible { outline: 2px solid var(--startup-primary); outline-offset: 3px; }
[data-authe-startup-screen] button:disabled { opacity: 0.5; cursor: wait; }
/* Shared by the app stylesheet and the dependency-free startup document. */
.authe-spinner {
  animation-duration: var(--loading-spin-duration, 1s);
  stroke-width: var(--loading-spinner-stroke-width, 2);
}
.authe-spinner-track { opacity: var(--loading-spinner-track-opacity, 0.18); }
@media (prefers-reduced-motion: reduce) {
  .authe-spinner { animation: none !important; }
}
