:root {
  --text-scale-basis: 16;

  /* Scalable typography system, adapted from Tailwind */
  /* custom — below Tailwind minimum */
  --text-badge:  0.5625rem;  /* 9px  — 1 rule; candidate for removal in design pass */
  --text-2xs:    0.625rem;   /* 10px */
  --text-meta:   0.6875rem;  /* 11px — 52 rules: labels, timestamps, helper text */

  /* Tailwind-exact */
  --text-xs:     0.75rem;    /* 12px */

  /* custom — between Tailwind xs (12px) and sm (14px) */
  --text-body:   0.8125rem;  /* 13px — 28 rules: primary prose, inputs, base button */

  /* Tailwind-exact */
  --text-sm:     0.875rem;   /* 14px — one 15px rule also folded in here */
  --text-base:   1rem;       /* 16px */
  --text-lg:     1.125rem;   /* 18px - one 17px rule also folded in here */
  --text-xl:     1.25rem;    /* 20px */
  --text-2xl:    1.5rem;     /* 24px — three 22px rules also folded in here */
  --text-5xl:    3rem;       /* 48px */

  font-size: calc(var(--text-scale-basis) * 1px);
}