/* OctagonSquare typography — the editorial system.
   Three voices, three jobs:
   1. DISPLAY — Instrument Serif, 400 only (never faux-bold), true italic for
      the one emphasised word. Set huge, tight, left aligned, sentence case.
      Scale is the hierarchy: display earns attention through size, not weight.
   2. BODY — Archivo 400–700 for running text, UI, and structural labels.
   3. ANNOTATION — Spline Sans Mono, uppercase, wide-tracked. Eyebrows, slide
      metadata (the index rail), data labels, captions, figure specs.
   Headlines are sentence case, never title case. */
:root {
  /* Families */
  --os-font-display: "Instrument Serif", Georgia, "Times New Roman", serif;
  --os-font-body: "Archivo", system-ui, Helvetica, Arial, sans-serif;
  --os-font-condensed: "Archivo", Helvetica, Arial, sans-serif; /* legacy alias */
  --os-font-mono: "Spline Sans Mono", ui-monospace, SFMono-Regular, monospace;

  /* Weights — display is single-weight; these apply to Archivo only */
  --os-weight-regular: 400;
  --os-weight-medium: 500;
  --os-weight-semibold: 600;
  --os-weight-bold: 700;
  --os-weight-black: 700; /* legacy alias: no black weight in this system */

  /* Web type scale (rem at 16px base) */
  --os-text-hero: 5.5rem;     /* Hero display — Serif 400, lh 0.98 */
  --os-text-h1: 3.5rem;       /* H1 — Serif 400, lh 1.02 */
  --os-text-h2: 2.5rem;       /* H2 — Serif 400, lh 1.08 */
  --os-text-h3: 1.625rem;     /* H3 — Serif 400, lh 1.2 */
  --os-text-body-lg: 1.125rem;/* Body large — Archivo 400, lh 1.6 */
  --os-text-body: 1rem;       /* Body — Archivo 400, lh 1.6 */
  --os-text-small: 0.8125rem; /* Annotation / eyebrow — mono 500 uppercase */
  --os-text-caption: 0.75rem; /* Captions, footer signature — mono */

  /* Slide type scale (px on the 1280×720 canvas) */
  --os-slide-colossal: 440px;  /* The hero stat or section numeral — oversized, always fully on canvas */
  --os-slide-hero: 120px;      /* Title-slide hero line */
  --os-slide-display: 100px;   /* Working headline on content slides — may overlap the colossal element */
  --os-slide-quote: 80px;      /* Pull quotes — whole quote italic, roman accent phrase */
  --os-slide-h2: 56px;         /* Secondary headline / agenda items */
  --os-slide-body: 22px;       /* Slide body copy — never smaller than 18px */
  --os-slide-annot: 14px;      /* Mono annotations on the spine */

  /* Line heights */
  --os-lh-hero: 0.98;   /* @kind other */
  --os-lh-tight: 1.02;  /* @kind other */
  --os-lh-snug: 1.18;   /* @kind other */
  --os-lh-body: 1.6;    /* @kind other */

  /* Tracking */
  --os-tracking-tight: -0.01em;   /* Display serif — it is already narrow; do not crush */
  --os-tracking-normal: 0;
  --os-tracking-eyebrow: 0.16em;  /* Uppercase mono annotations */

  /* Semantic aliases */
  --font-heading: var(--os-font-display);
  --font-body: var(--os-font-body);
  --font-mono: var(--os-font-mono);
}
