/* ============================================================
   Gnomon Tax — Desert Shadow 1.0
   Typography tokens. 1.25 ratio scale.

   RECONSTRUCTED 2026-09-07 from BRAND_CANON §4 — see the note at
   the top of fonts.css. Token NAMES are held identical to the
   outgoing Gnomon Planning set so that a system swap is a file
   replacement, not a find-and-replace across every call site.
   ============================================================ */
:root {
  /* --- Families — two, and only two --- */
  --font-display: "DM Serif Display", Georgia, "Times New Roman", serif;
  --font-body:    "Schibsted Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-figure:  var(--font-body);   /* figures are sans, always. See below. */

  /* There is no --font-accent and no --font-mono. Instrument Serif
     (accent) retired with the Gnomon Planning system; JetBrains Mono
     retired in Shadow. Do not re-add either token. */

  /* --- Weights --- */
  --weight-display:  400;  /* DM Serif Display has one weight. Never bold. */
  --weight-figure:   700;  /* oversized numbers */
  --weight-label:    600;  /* uppercase micro-labels */
  --weight-regular:  400;  /* body */

  /* --- Type scale (1.25 ratio) ---
     13px is the web floor (BRAND_CANON §4). Nothing smaller ships. */
  --text-3xs: 0.8125rem; /* 13px — the floor: fine print, table meta */
  --text-2xs: 0.875rem;  /* 14px — small UI, captions */
  --text-base:1rem;      /* 16px — body */
  --text-sm-h:1.25rem;   /* 20px */
  --text-md-h:1.5625rem; /* 25px */
  --text-lg-h:1.9375rem; /* 31px */
  --text-xl-h:2.4375rem; /* 39px */
  --text-2xl: 3.0625rem; /* 49px */
  --text-3xl: 3.8125rem; /* 61px */

  /* --- Leading --- */
  --leading-tight:  1.05;  /* big display */
  --leading-snug:   1.2;
  --leading-normal: 1.5;   /* body */
  --leading-relaxed:1.65;

  /* --- Tracking --- */
  --tracking-display: -0.01em;  /* display tightens at large sizes */
  --tracking-body:     0;
  --tracking-label:    0.12em;  /* uppercase micro-labels (BRAND_CANON §4) */
  --tracking-figure:  -0.02em;  /* every figure, every surface */
  --tracking-wordmark: 0.32em;  /* GNOMON lockup */

  /* --- Minimum sizes, by surface (BRAND_CANON §4 floors) --- */
  --floor-web:   13px;
  --floor-print: 8.5pt;   /* client-facing print */
  --floor-deck:  24px;    /* deck body */
}

/* ============================================================
   THE FIGURE TREATMENT — not optional, and not a token alone.
   Every number a client reads is set this way, on every surface.
   ============================================================ */
.figure,
[data-figure] {
  font-family: var(--font-figure);
  font-weight: var(--weight-figure);
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
  letter-spacing: var(--tracking-figure);
}

/* Uppercase micro-labels. The tracking and the case are what make a
   label read as one. There is no monospace face doing that job. */
.label,
[data-label] {
  font-family: var(--font-body);
  font-weight: var(--weight-label);
  text-transform: uppercase;
  letter-spacing: var(--tracking-label);
}

/* Names and titles. Never bold, never italic — guarded here so a
   stray <strong> or <em> inside a heading cannot synthesise a face
   that does not exist. */
.display,
[data-display] {
  font-family: var(--font-display);
  font-weight: var(--weight-display);
  font-style: normal;
  letter-spacing: var(--tracking-display);
}
.display strong, .display b, [data-display] strong, [data-display] b { font-weight: 400; }
.display em, .display i, [data-display] em, [data-display] i { font-style: normal; }
