/* Resync type tokens — the single source of truth for typography.
 *
 * Loaded on all 54 content pages, next to fonts/fonts.css. It is ADDITIVE: no
 * existing declaration was changed when it was introduced. The family values
 * below are byte-identical to the copies the pages already carry, so adding it
 * changed nothing visually.
 *
 * ⚠ Cascade order is not uniform, so know which copy actually applies:
 *   - 48 pages put their inline <style> EARLIER in the head than this link,
 *     so THIS FILE WINS there. Editing --sans in one of those inline blocks
 *     will appear to do nothing; change it here instead.
 *   - verify/index.html has its <style> after this link, so its inline block
 *     wins.
 *   - The 5 launch-check pages have no inline block; launch-check.css is
 *     linked after this file and wins.
 * Because every copy holds the same value, this only matters when editing.
 * Deleting a page's inline --mono/--sans/--display lines is a safe no-op that
 * removes the ambiguity — worth doing per page, whenever one is open anyway.
 *
 * The scale below is new. Nothing consumes it yet; it exists so that new work
 * has one place to reach for instead of inventing another size. The site
 * currently has 61 distinct font-size values, most differing by amounts no
 * reader can perceive (0.62/0.65/0.66/0.68rem all exist). Use these tokens for
 * anything new, and fold a page's literals into them when you touch it.
 *
 * Families: DM Mono, Inter and Bricolage Grotesque, self-hosted in fonts/.
 * NOTE: Inter is currently shipped at 400/500/600 only, so font-weight 700 and
 * 800 on an Inter element get synthesized by the browser. Headings avoid this
 * by using --display (Bricolage genuinely ships 800). See the audit for the
 * variable-font fix that removes the limitation.
 */

:root {
  /* ---- Families ---------------------------------------------------------
   * --display  headings (h1-h4)
   * --sans     body copy, form controls, the wordmark
   * --mono     UI chrome: nav, buttons, eyebrows, breadcrumbs, tags, labels,
   *            table headers, code
   */
  --mono: 'DM Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  --sans: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --display: 'Bricolage Grotesque', 'Inter', system-ui, sans-serif;

  /* ---- Size scale -------------------------------------------------------
   * Ten steps replacing 61 ad-hoc values. The clamps keep the existing
   * responsive behaviour; the fixed steps are the values already most used.
   */
  --fs-display: clamp(2.6rem, 5vw, 4.2rem);   /* hero headline            */
  --fs-h1:      clamp(2.2rem, 4.5vw, 3.4rem); /* page title               */
  --fs-h2:      clamp(1.7rem, 3vw, 2.4rem);   /* section title            */
  --fs-h3:      1.35rem;                      /* card / block title       */
  --fs-h4:      1.1rem;                       /* sub-block title          */
  --fs-lead:    1.05rem;                      /* intro paragraph          */
  --fs-body:    1rem;                         /* running text             */
  --fs-small:   0.875rem;                     /* secondary text, captions */
  --fs-label:   0.75rem;                      /* mono labels, table heads */
  --fs-micro:   0.65rem;                      /* eyebrows, source notes   */

  /* ---- Line heights ---------------------------------------------------- */
  --lh-display: 1.02;   /* the two largest steps                  */
  --lh-heading: 1.15;   /* h2-h4                                  */
  --lh-body:    1.65;   /* running text (matches every body rule) */
  --lh-ui:      1.4;    /* labels, buttons, table cells           */

  /* ---- Tracking --------------------------------------------------------
   * Large type needs negative tracking; small uppercase mono needs positive.
   */
  --ls-display: -0.035em;
  --ls-heading: -0.025em;
  --ls-body:    0;
  --ls-label:   0.06em;   /* mono labels                     */
  --ls-eyebrow: 0.12em;   /* uppercase mono eyebrows         */

  /* ---- Weights ----------------------------------------------------------
   * Only use 700/800 with --display until Inter ships those faces.
   */
  --fw-body:    400;
  --fw-medium:  500;
  --fw-semi:    600;
  --fw-bold:    700;
  --fw-black:   800;
}
