/* ── SecurePeak typography ────────────────────────────────────────────
   Space Grotesk = display & headings (technical, slightly mechanical).
   Manrope       = body & UI (quiet, high x-height, reads long).
   JetBrains Mono = labels, data, refs, classification tape. Load-bearing:
   the mono is what makes the system read as security, not SaaS. */
:root{
  --font-display:'Space Grotesk','Space Grotesk Fallback',system-ui,sans-serif;
  --font-body:'Manrope','Manrope Fallback',system-ui,sans-serif;
  --font-mono:'JetBrains Mono',ui-monospace,'SFMono-Regular',Menlo,monospace;

  --fw-light:300; /* @kind font */
  --fw-regular:400; /* @kind font */
  --fw-medium:500; /* @kind font */
  --fw-semibold:600; /* @kind font */
  --fw-bold:700; /* @kind font */

  /* Display / headings — Space Grotesk, tight tracking */
  --type-display-1:600 64px/1.02 var(--font-display);
  --type-display-2:600 48px/1.06 var(--font-display);
  --type-h1:600 32px/1.12 var(--font-display);
  --type-h2:600 24px/1.2 var(--font-display);
  --type-h3:600 18px/1.3 var(--font-display);
  --type-h4:600 15.5px/1.35 var(--font-display);

  /* Body — Manrope */
  --type-lead:400 17px/1.55 var(--font-body);
  --type-body:400 14px/1.6 var(--font-body);
  --type-body-doc:400 12.5px/1.55 var(--font-body);
  --type-small:400 12.5px/1.5 var(--font-body);
  --type-caption:400 11.5px/1.45 var(--font-body);

  /* Mono — data, eyebrows, refs, tape.
     The two smallest steps are PAPER values here and are restored to their
     tighter UI values in the terminal block below. This inversion is the point:
     paper is :root, so a component that reads one alias and never branches gets
     a printable size in a document and an instrument-panel size on screen.
     10px is 7.5pt, under the ~8pt floor this system states and print-audit
     enforces — and it was the label size in 23 of the 36 components, which is
     why six documents rebuilt Badge, KeyValue and the table header by hand
     rather than use them. The cost is stated rather than hidden: on paper the
     gap between --type-mono-sm and --type-mono closes to half a pixel, so the
     small mono step is effectively one size in print. A floor compresses the
     bottom of a scale; that is what a floor is. */
  --type-mono-lg:500 13px/1.4 var(--font-mono);
  --type-mono:500 11.5px/1.4 var(--font-mono);
  --type-mono-sm:500 11px/1.4 var(--font-mono);
  --type-eyebrow:600 11px/1.4 var(--font-mono);
  --type-tape:600 11px/1 var(--font-mono);

  /* Tracking */
  --track-display:-0.02em; /* @kind other */
  --track-heading:-0.01em; /* @kind other */
  --track-body:0; /* @kind other */
  --track-mono:0.03em; /* @kind other */
  --track-eyebrow:0.14em; /* @kind other */
  --track-tape:0.22em; /* @kind other */

  /* Numerics: tabular everywhere data is compared */
  --numeric-tabular:tabular-nums; /* @kind other */
}

/* Screens are not paper. Nothing here prints, so the two steps the paper floor
   raised go back to the density the product UI is designed at. Same alias, no
   branch in any component — the same mechanism the texture tokens use, and the
   only two type tokens that carry a per-surface value. */
[data-mode="terminal"]{
  --type-mono-sm:500 10px/1.4 var(--font-mono);
  --type-tape:600 10px/1 var(--font-mono);
}
