/* THE SITE DESIGN CONTRACT for the Broadcast kit (docs/SITE-DESIGN-CONTRACT.md, phase A 2026-10-03): the contract's
   names pointed at Broadcast's own tokens. A colour theme (theme.css: signal, arctic, neon) overrides Broadcast's
   tokens on :root, and the bridge resolves against them, so a shared add-on wears whichever theme the site picked.
   Broadcast is square and dark everywhere: no radii, one scheme. Add-ons never read Broadcast's own names. */
:root {
  --site-font-display: var(--f-head); --site-font-body: var(--f-text); --site-font-mono: var(--f-data);
  --site-display-weight: 900; --site-display-track: -0.005em; --site-display-case: uppercase;
  --site-fs-xs: .75rem; --site-fs-sm: .875rem; --site-fs: 1.0625rem; --site-fs-lead: 1.25rem; --site-fs-h3: 1.75rem; --site-fs-h2: clamp(2.5rem, 6vw, 5rem);
  --site-lh: 1.6; --site-lh-tight: .9;
  --site-r-sm: 0px; --site-r: 0px; --site-r-lg: 0px; --site-r-btn: 0px; --site-r-field: 0px; --site-border: 1px;
  --site-sp: 1; --site-gut: var(--g); --site-max: var(--max); --site-field-h: 56px;
  --site-shadow-1: none; --site-shadow-2: 0 30px 60px -30px rgba(0, 0, 0, .8); --site-blur: 0px;
  --site-dur-fast: 160ms; --site-dur: 350ms; --site-ease: cubic-bezier(.2, .8, .2, 1);

  --site-bg: var(--bk); --site-surface: var(--bk2); --site-surface-2: var(--bk3);
  --site-text: var(--bone); --site-text-2: var(--steel); --site-text-3: var(--mute);
  --site-line: var(--line); --site-line-soft: var(--edge);
  --site-accent: var(--sig-fill); --site-on-accent: #ffffff; --site-accent-ink: var(--sig);
  --site-btn: var(--sig-fill); --site-on-btn: #ffffff;
  --site-ok: var(--grn); --site-on-ok: var(--bk); --site-warn: var(--yel); --site-on-warn: var(--bk); --site-bad: #ff5a4f; --site-on-bad: var(--bk);
  --site-focus: var(--yel); --site-scrim: rgba(0, 0, 0, .72); --site-rating: var(--yel);
}

/* the contract's top slot (an offers bar fixed above everything): the fixed menu moves down by its height */
.nav { top: var(--site-top, 0px); }
