/* Type scale. Display + headings are condensed and uppercase-leaning;
   body is a humanist sans sized for long assessment prose. */
:root {
  --text-2xs: 0.6875rem; /* 11px — table meta, seal small print */
  --text-xs: 0.75rem;    /* 12px — eyebrow labels, tags */
  --text-sm: 0.875rem;   /* 14px — dense UI, table cells */
  --text-base: 1rem;     /* 16px — body */
  --text-md: 1.125rem;   /* 18px — lead paragraphs */
  --text-lg: 1.375rem;   /* 22px */
  --text-xl: 1.75rem;    /* 28px */
  --text-2xl: 2.25rem;   /* 36px */
  --text-3xl: 3rem;      /* 48px */
  --text-4xl: 4rem;      /* 64px */
  --text-5xl: 5.25rem;   /* 84px — hero display only */

  --weight-regular: 400;
  --weight-medium: 500;
  --weight-semibold: 600;
  --weight-bold: 700;

  --leading-tight: 1.02;
  --leading-snug: 1.15;
  --leading-heading: 1.2;
  --leading-body: 1.6;
  --leading-loose: 1.75;

  --tracking-display: -0.005em;
  --tracking-normal: 0;
  --tracking-label: 0.12em;  /* eyebrows / small caps */
  --tracking-lockup: 0.2em;  /* logo-style wide tracking */

  /* Composed roles */
  --type-display: var(--weight-bold) var(--text-4xl)/var(--leading-tight) var(--font-display);
  --type-h1: var(--weight-bold) var(--text-3xl)/var(--leading-snug) var(--font-display);
  --type-h2: var(--weight-semibold) var(--text-2xl)/var(--leading-heading) var(--font-display);
  --type-h3: var(--weight-semibold) var(--text-xl)/var(--leading-heading) var(--font-display);
  --type-h4: var(--weight-bold) var(--text-base)/var(--leading-heading) var(--font-sans);
  --type-lead: var(--weight-regular) var(--text-md)/var(--leading-loose) var(--font-sans);
  --type-body: var(--weight-regular) var(--text-base)/var(--leading-body) var(--font-sans);
  --type-small: var(--weight-regular) var(--text-sm)/var(--leading-body) var(--font-sans);
  --type-label: var(--weight-bold) var(--text-xs)/1.2 var(--font-sans);
  --type-data: var(--weight-medium) var(--text-sm)/1.4 var(--font-mono);
}
