/**
 * Static critical CSS (public/). Not processed by Vite's CSS pipeline in production
 * (copied as-is). In dev, vite plugin `serveCriticalCss` serves it as text/css.
 *
 * Every page HTML: <link rel="stylesheet" href="/critical.css" />
 * Every page entry: markAppReady() when header + main content are ready.
 */

html,
body {
  margin: 0;
  background: #000;
  color: #f8fafc;
}

.sr-only:not(:focus):not(:focus-within) {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}

/* Hide shell until markAppReady() — no FOUC of unstyled header/nav */
html:not(.app-ready) body > header,
html:not(.app-ready) [data-app-content] {
  opacity: 0;
}
