/* Public pages have a reading surface, separate from the dense viewer shell.
   Scope tokens to these bodies so instrument and QC pages keep their theme. */
body.home-page, body.live-page {
  --bg: #f2f7f7;
  --bg-soft: #ffffff;
  --panel: #ffffff;
  --panel-alt: #f2f7f7;
  --panel-sunken: #edf4f4;
  --ink: #233d42;
  --ink-strong: #15383e;
  --mid: #4d646a;
  --dim: #586e73;
  --faint: #63787d;
  --line: #d4e2e3;
  --line-soft: #e4eded;
  --line-strong: #a7bfc2;
  --chart-dim: #586e73;
  --chart-grid: #e4eded;
  --chart-ink: #4d646a;
}
.public-nav { display: flex; align-items: center; gap: 28px; }
.public-nav > a { color: var(--ink-strong); text-decoration: none; font-size: 0.9rem; }
.public-nav > .home-signin { color: white; }
.home-page :focus-visible, .live-page :focus-visible {
  outline: 3px solid var(--accent); outline-offset: 4px;
}
.home-page a, .live-page a { text-underline-offset: 4px; }
@media (prefers-reduced-motion: reduce) {
  .home-page *, .live-page * { animation: none !important; scroll-behavior: auto !important; }
}

/* Shared, outlined two-line brand lockup for the public page headers. */
.home-brand .viewer-wordmark { display: block; width: 174px; height: auto; }
@media (max-width: 480px) { .home-brand .viewer-wordmark { width: 150px; } }
