:root{
  /* Families */
  --font-display:"Newsreader",Georgia,"Times New Roman",serif;
  --font-body:"Figtree","Helvetica Neue",Arial,sans-serif;
  --font-reading:"Newsreader",Georgia,serif;
  --font-mono:"JetBrains Mono",ui-monospace,Menlo,monospace;

  /* Type scale — display uses optical sizing, body is a 1.2 ramp */
  --text-display-xl:4.25rem;   /* 68px — hero on desktop */
  --text-display-lg:3.25rem;   /* 52px — page titles */
  --text-display-md:2.5rem;    /* 40px — section openers */
  --text-display-sm:1.875rem;  /* 30px — card titles, video titles */
  --text-title:1.375rem;       /* 22px */
  --text-lead:1.25rem;         /* 20px — standfirst / summary intro */
  --text-body-lg:1.0625rem;    /* 17px — long-form reading */
  --text-body:1rem;            /* 16px — UI default */
  --text-body-sm:.9375rem;     /* 15px */
  --text-caption:.8125rem;     /* 13px */
  --text-micro:.6875rem;       /* 11px — eyebrow / meta, always tracked out */

  /* Weights */
  --weight-light:300;
  --weight-regular:400;
  --weight-medium:500;
  --weight-semibold:600;
  --weight-bold:700;

  /* Line heights */
  --leading-tight:1.06;
  --leading-snug:1.22;
  --leading-normal:1.45;
  --leading-relaxed:1.62;
  --leading-loose:1.75;

  /* Tracking */
  --tracking-tight:-.022em;
  --tracking-snug:-.011em;
  --tracking-normal:0;
  --tracking-wide:.06em;
  --tracking-eyebrow:.16em;

  /* Optical sizing for the variable display serif */
  --opsz-display:44; /* @kind other */
  --opsz-text:16; /* @kind other */

  /* Measure */
  --measure-reading:66ch; /* @kind other */
  --measure-narrow:46ch; /* @kind other */
}
