:root{
  /* Archivo — every visible word. Big numbers are 500, never bold. */
  --type-hero:500 6.4rem/.9 var(--font-sans);--track-hero:-.05em;
  --type-stat-xl:500 3.6rem/.95 var(--font-sans);--track-stat-xl:-.04em;
  --type-stat:500 2.2rem/1 var(--font-sans);--track-stat:-.03em;
  --type-wordmark:800 1.15rem/1 var(--font-sans);--track-wordmark:-.02em;
  --type-title:600 1.15rem/1.2 var(--font-sans);
  --type-card-title:700 .86rem/1.25 var(--font-sans);--type-card-title-lg:700 .95rem/1.25 var(--font-sans);
  --type-body:400 .87rem/1.5 var(--font-sans);
  --type-body-sm:400 .78rem/1.45 var(--font-sans);
  --type-ui:600 .84rem/1 var(--font-sans);
  --type-ui-sm:600 .76rem/1 var(--font-sans);
  --type-side-stat:600 1.02rem/1.2 var(--font-sans);
  /* IBM Plex Mono — labels, units, legends, meta. Always small. */
  --type-label:500 .6rem/1.2 var(--font-mono);--track-label:.13em;
  --type-meta:400 .64rem/1.3 var(--font-mono);
  --type-meta-xs:400 .58rem/1.3 var(--font-mono);
  --type-badge:600 .55rem/1 var(--font-mono);--track-badge:.06em;
  --type-value:600 .7rem/1 var(--font-mono);
  --type-reward:700 .6rem/1.3 var(--font-mono);
  /* unit suffix: ~45% of number size, ghosted */
  --unit-ratio:.45; /* @kind other */
}
