/* ── site-tokens.css — the public pages' one token file (UP1, v17.17.76) ──
   Loaded FIRST by every public page: landing, cold-audit, cold-audit-start, cold-audit-thanks, privacy,
   terms (docs/claude/ui-polish.md §1). Tokens only: colour, type, radius, shadow, easing, duration.
   Values byte-match landing.css / cold-audit.css as of v17.17.75 (and tokens.css [data-theme="light"]).
   The shell keeps its own src/public/css/tokens.css until UP2. The questions page cannot load this
   file (its CSP allows inline styles only) and carries an inline copy in src/cold-audit/questions.js.
   Light only (UP1 R6): the public pages are paper with dark stage sections, always. The stage set below
   is part of that one theme, not a dark mode; the dark block arrives with UP2. */

/* ── the brand faces: self-hosted latin subsets (OFL-1.1), swapped in. The report documents load the same
   files through src/cold-audit/render/fonts.js; never rename or replace a file under /fonts. ── */
@font-face{font-family:"Space Grotesk";font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/space-grotesk-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Space Grotesk";font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/space-grotesk-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Space Grotesk";font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/space-grotesk-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/inter-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/inter-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/inter-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"JetBrains Mono";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/jetbrains-mono-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"JetBrains Mono";font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/jetbrains-mono-latin-500-normal.woff2) format("woff2")}

/* ── the paper set: the page, and any .paper island inside a stage ── */
:root,.paper{
  --bg:#fbfaf7;--bg2:#f4f1ea;--surface:#efebe0;--surface2:#e7e2d4;--card:#ffffff;
  --border:rgba(27,26,23,.10);--border2:rgba(27,26,23,.17);
  --text:#1b1a17;--text2:#56544d;--muted:#67655d;--muted2:#b5b1a4;
  --accent:#10b3cc;--accent-2:#0a7f93;--accent-bright:#38d6ea;--accent-ink:#086e7e;
  --accent-wash:rgba(16,179,204,.10);--accent-dim:rgba(16,179,204,.20);--accent-glow:rgba(16,179,204,.40);
  --on-accent:#04323a;--mark-frame:#10b3cc;--mark-spine:#082f3c;--brand-ink:#1b1a17;--brand-accent:#0a7f93;
  --green:#047857;--amber:#a16207;--red:#be123c;--focus:#0a7f93;
  --ev-measured:#04566a;--ev-measured-bg:#e6f6f9;--ev-measured-line:rgba(10,127,147,.22);
  --ev-observed:#5a4a10;--ev-observed-bg:#faf3e0;--ev-observed-line:rgba(161,98,7,.22);
  --ev-inferred:#5b1a3a;--ev-inferred-bg:#fce8ee;--ev-inferred-line:rgba(190,18,60,.18);
  --ev-estimate:#3a3a3a;--ev-estimate-bg:#eeece5;--ev-estimate-line:rgba(27,26,23,.10);
  --ev-reported:#0f4d3a;--ev-reported-bg:#e3f3ec;--ev-reported-line:rgba(4,120,87,.22);
  --shadow:0 1px 2px rgba(27,26,23,.04),0 10px 34px -16px rgba(27,26,23,.18);
  --shadow-lg:0 34px 70px -34px rgba(16,179,204,.32),0 14px 34px -18px rgba(27,26,23,.16);
  --shadow-accent:inset 0 1px 0 rgba(255,255,255,.4),0 10px 24px -12px rgba(16,179,204,.7);
  --shadow-accent-hover:inset 0 1px 0 rgba(255,255,255,.5),0 16px 30px -12px rgba(16,179,204,.8);
  color-scheme:light;
}

:root{
  /* the stage set: theme-invariant, read through the .stage remap below */
  --stage-bg:#141d30;--stage-bg2:#1a2439;--stage-surface:#182136;--stage-surface2:#1e2942;--stage-card:#1a2438;
  --stage-border:rgba(232,244,247,.10);--stage-border2:rgba(232,244,247,.16);
  --stage-text:#dbe7f5;--stage-text2:#8da4c4;--stage-muted:#8590a5;--stage-muted2:#1a2a3a;
  --stage-accent:#00e5ff;--stage-accent-2:#18b8d8;--stage-accent-wash:rgba(0,229,255,.08);--stage-accent-dim:#0a3a47;
  --stage-accent-glow:rgba(0,229,255,.45);--stage-on-accent:#04121a;--stage-mark-spine:#d8e7f5;--stage-brand-ink:#eaf3fb;
  --stage-green:#00ff9c;--stage-amber:#ffb830;--stage-red:#ff4d6d;
  --stage-shadow:0 8px 24px rgba(0,0,0,.45);
  --stage-shadow-accent:inset 0 1px 0 rgba(255,255,255,.25),0 10px 26px -12px rgba(0,229,255,.55);
  --stage-shadow-accent-hover:inset 0 1px 0 rgba(255,255,255,.3),0 16px 34px -12px rgba(0,229,255,.65);
  --shadow-nav:0 8px 26px -18px rgba(27,26,23,.55);
  /* glass bars over the paper, and over a stage */
  --nav-bg:rgba(251,250,247,.84);--nav-bg-scrolled:rgba(251,250,247,.94);--nav-bg-legal:rgba(251,250,247,.9);
  --stage-glass:rgba(10,17,32,.66);--stage-rule:rgba(232,244,247,.08);--stage-nav-ink:#a9bdd6;--stage-nav-ink-hover:#ffffff;
  /* lines */
  --link-line:rgba(16,179,204,.5);--accent-line:rgba(16,179,204,.45);--note-line:rgba(16,179,204,.6);
  /* the evidence chips on a stage (read through the .stage remap) */
  --stage-ev-measured:#7fe7f7;--stage-ev-measured-bg:rgba(0,229,255,.10);--stage-ev-measured-line:rgba(0,229,255,.28);
  --stage-ev-observed:#ffd27a;--stage-ev-observed-bg:rgba(255,184,48,.10);--stage-ev-observed-line:rgba(255,184,48,.28);
  --stage-ev-inferred:#ff9db1;--stage-ev-inferred-bg:rgba(255,77,109,.10);--stage-ev-inferred-line:rgba(255,77,109,.28);
  --stage-ev-estimate:#c3cdda;--stage-ev-estimate-bg:rgba(232,244,247,.06);--stage-ev-estimate-line:rgba(232,244,247,.16);
  --stage-ev-reported:#6ff5bf;--stage-ev-reported-bg:rgba(0,255,156,.08);--stage-ev-reported-line:rgba(0,255,156,.26);
  /* the stage art: hero and close washes, the glass of the scan, headings drawn in light */
  --stage-deep:#0a1120;--stage-heading:#eef5fc;--stage-ink-soft:#a9bdd6;--stage-accent-soft:#7fe7f7;--stage-shine:#effdff;
  --stage-glass-ink:rgba(214,251,255,.9);--stage-divider:rgba(232,244,247,.2);--stage-line:rgba(232,244,247,.12);
  --stage-ghost-line:rgba(232,244,247,.24);--stage-ghost-bg:rgba(10,17,32,.35);--stage-well:rgba(10,17,32,.5);--stage-well-deep:rgba(10,17,32,.55);
  --stage-aura:rgba(0,229,255,.14);--stage-aura-close:rgba(0,229,255,.16);--stage-spot:rgba(0,229,255,.17);--stage-grain:rgba(232,244,247,.07);
  --stage-rules-line:rgba(0,229,255,.14);--stage-link-line:rgba(0,229,255,.5);--stage-lit-line:rgba(0,229,255,.6);--stage-lit-rest:rgba(0,229,255,.28);
  --stage-scan-bg:rgba(20,29,48,.58);--stage-scan-line:rgba(0,229,255,.22);
  --stage-scan-shadow:0 50px 120px -50px rgba(0,229,255,.4),0 24px 60px -24px rgba(0,0,0,.65);
  --stage-heading-shadow:0 2px 34px rgba(10,17,32,.6);--stage-heading-shadow-close:0 2px 34px rgba(10,17,32,.7);
  --stage-em-glow:0 2px 18px rgba(10,17,32,.55);
  --mask-ink:#000;
  /* the landing's stage art: the poster mark, the crew, the sample frame, the quiet bars */
  --paper-accent:#10b3cc;--stage-light:#d6fbff;--stage-quiet:rgba(232,244,247,.22);--stage-own-bg:rgba(26,36,56,.4);
  --stage-atlas-line:rgba(0,229,255,.35);--stage-atlas-shadow:0 30px 80px -30px rgba(0,229,255,.35);
  --stage-lit-card-line:rgba(0,229,255,.55);--stage-lit-card-shadow:0 0 0 1px rgba(0,229,255,.18),0 18px 50px -24px rgba(0,229,255,.55);
  --stage-frame-shadow:0 50px 120px -50px rgba(0,229,255,.45),0 20px 50px -20px rgba(0,0,0,.6);
  /* the radar on paper */
  --dot-ink:rgba(86,84,77,.55);--hairline:rgba(27,26,23,.08);
  /* the sign-in retry banner */
  --toast-bg:#0d1b1e;--toast-ink:#ffffff;--toast-line:rgba(255,255,255,.14);--toast-shadow:0 8px 28px rgba(0,0,0,.28);
  /* the contact modal's backdrop (CONTACT-1, contact.css) */
  --scrim:rgba(10,17,32,.55);
  /* the sketches on paper: placeholder lines, a fixed page, a missing piece */
  --sketch-line:rgba(27,26,23,.14);--sketch-accent:rgba(16,179,204,.35);--sketch-miss:rgba(190,18,60,.5);

  /* type: the brand faces are latin subsets; Arabic falls to Noto before the system fonts (§4) */
  --font-display:"Space Grotesk","Noto Sans Arabic","Noto Naskh Arabic",ui-sans-serif,system-ui,sans-serif;
  --font-body:Inter,"Noto Sans Arabic","Noto Naskh Arabic",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --font-mono:"JetBrains Mono",ui-monospace,"SF Mono",Menlo,Consolas,monospace;

  /* radius */
  --r-xs:3px;--r-sm:8px;--r-md:10px;--r-lg:14px;--r-xl:16px;--r-focus:6px;--r-chip:6px;--r-tag:5px;
  --r-line:4px;--r-phone-key:7px;--r-phone-part:9px;--r-phone:26px;  /* the phone sketches on the Cold Audit page */
  --r-panel:12px;--r-tail:4px;                                       /* panels and banners; a chat bubble's tail corner */

  /* motion: the §1 scale, extended, never forked */
  --ease-out:cubic-bezier(0.23, 1, 0.32, 1);     /* entering, exiting, press feedback */
  --ease-in-out:cubic-bezier(0.77, 0, 0.175, 1); /* moving or morphing on screen */
  --ease-drawer:cubic-bezier(0.32, 0.72, 0, 1);  /* drawers and sheets */
  --ease-standard:ease;                          /* colour and hover (§2) */
  --t-press:120ms;--t-fast:160ms;--t-ui:200ms;--t-panel:260ms;
  /* the marketing choreography: a documented exception (ui-polish.md §9). motion-landing.js and
     motion-cold-audit.js read --dur-reveal, --dur-rise, --dur-line, --dur-stagger and --dur-count by name. */
  --ease-rise:cubic-bezier(.2,.7,.2,1);--ease-line:cubic-bezier(.2,.78,.15,1);--ease-expo:cubic-bezier(.16,1,.3,1);
  --dur-reveal:700ms;--dur-rise:850ms;--dur-line:950ms;--dur-stagger:120ms;--dur-count:1400ms;
  --dur-ambient:11s;--dur-mark:12s;--dur-rings:90s;--dur-sweep:7s;
  /* the hero arrival and the scan (CSS), per animation */
  --delay-hero:150ms;--delay-rise:200ms;--dur-shine:1.8s;--delay-shine:1.35s;--dur-cue:1.9s;--dur-gl:900ms;
  --dur-ambient-b:14s;--delay-ambient-b:-5s;
  --dur-draw:1.5s;--delay-draw:500ms;--stagger-draw:180ms;
  --dur-pop:550ms;--delay-pop:1.1s;--unit-ms:1ms;     /* a dot's own delay is --d × --unit-ms */
  --dur-pulse:3.6s;--delay-pulse:1.2s;
  --dur-grade:500ms;--delay-grades:1.6s;--stagger-grades:300ms;
  --dur-ticker:800ms;--delay-ticker:1.3s;--dur-tick:450ms;
}

/* ── the stage remap: a stage section and everything in it reads the stage set ── */
.stage{
  --bg:var(--stage-bg);--bg2:var(--stage-bg2);--surface:var(--stage-surface);--surface2:var(--stage-surface2);--card:var(--stage-card);
  --border:var(--stage-border);--border2:var(--stage-border2);
  --text:var(--stage-text);--text2:var(--stage-text2);--muted:var(--stage-muted);--muted2:var(--stage-muted2);
  --accent:var(--stage-accent);--accent-2:var(--stage-accent-2);--accent-bright:var(--stage-accent);--accent-ink:var(--stage-accent);
  --accent-wash:var(--stage-accent-wash);--accent-dim:var(--stage-accent-dim);--accent-glow:var(--stage-accent-glow);
  --on-accent:var(--stage-on-accent);--focus:var(--stage-accent);--mark-frame:var(--stage-accent);--mark-spine:var(--stage-mark-spine);
  --brand-ink:var(--stage-brand-ink);--brand-accent:var(--stage-accent);
  --green:var(--stage-green);--amber:var(--stage-amber);--red:var(--stage-red);
  --shadow:var(--stage-shadow);--shadow-accent:var(--stage-shadow-accent);--shadow-accent-hover:var(--stage-shadow-accent-hover);
  --ev-measured:var(--stage-ev-measured);--ev-measured-bg:var(--stage-ev-measured-bg);--ev-measured-line:var(--stage-ev-measured-line);
  --ev-observed:var(--stage-ev-observed);--ev-observed-bg:var(--stage-ev-observed-bg);--ev-observed-line:var(--stage-ev-observed-line);
  --ev-inferred:var(--stage-ev-inferred);--ev-inferred-bg:var(--stage-ev-inferred-bg);--ev-inferred-line:var(--stage-ev-inferred-line);
  --ev-estimate:var(--stage-ev-estimate);--ev-estimate-bg:var(--stage-ev-estimate-bg);--ev-estimate-line:var(--stage-ev-estimate-line);
  --ev-reported:var(--stage-ev-reported);--ev-reported-bg:var(--stage-ev-reported-bg);--ev-reported-line:var(--stage-ev-reported-line);
  color-scheme:dark;
}
