:root {
  /* Scale — display sizes are fluid; body sizes are fixed. */
  --text-hero: clamp(3rem, 7.2vw, 6.5rem);
  --text-display: clamp(2.5rem, 5vw, 4.25rem);
  --text-title: clamp(1.75rem, 3vw, 2.75rem);
  --text-heading: 1.5rem;
  --text-subhead: 1.25rem;
  --text-lead: 1.1875rem;
  --text-body: 1rem;
  --text-small: 0.875rem;
  --text-caption: 0.8125rem;
  --text-label: 0.6875rem;

  --weight-extralight: 200;
  --weight-light: 300;
  --weight-regular: 400;
  --weight-medium: 500;
  --weight-semibold: 600;
  --weight-bold: 700;

  --leading-tight: 1.02;
  --leading-snug: 1.14;
  --leading-heading: 1.24;
  --leading-body: 1.6;
  --leading-loose: 1.75;

  /* Optical tracking — display tightens, labels open up. */
  --tracking-hero: -0.035em;
  --tracking-display: -0.028em;
  --tracking-title: -0.02em;
  --tracking-body: -0.006em;
  --tracking-label: 0.18em;
  --tracking-wide: 0.32em;

  --measure-narrow: 34ch; /* @kind other */
  --measure-body: 62ch; /* @kind other */
  --measure-wide: 76ch; /* @kind other */
}

/* Type roles — use these classes or copy their declarations. */
.acom-hero { font: var(--weight-extralight) var(--text-hero) / var(--leading-tight) var(--font-core); letter-spacing: var(--tracking-hero); }
.acom-display { font: var(--weight-light) var(--text-display) / var(--leading-snug) var(--font-core); letter-spacing: var(--tracking-display); }
.acom-title { font: var(--weight-medium) var(--text-title) / var(--leading-heading) var(--font-core); letter-spacing: var(--tracking-title); }
.acom-heading { font: var(--weight-semibold) var(--text-heading) / var(--leading-heading) var(--font-core); letter-spacing: -0.014em; }
.acom-lead { font: var(--weight-light) var(--text-lead) / var(--leading-loose) var(--font-core); letter-spacing: var(--tracking-body); color: var(--text-secondary); max-width: var(--measure-body); }
.acom-body { font: var(--weight-regular) var(--text-body) / var(--leading-body) var(--font-core); letter-spacing: var(--tracking-body); }
.acom-small { font: var(--weight-regular) var(--text-small) / var(--leading-body) var(--font-core); }
.acom-label { font: var(--weight-medium) var(--text-label) / 1 var(--font-mono); letter-spacing: var(--tracking-label); text-transform: uppercase; }
.acom-mono { font: var(--weight-regular) var(--text-caption) / 1.5 var(--font-mono); letter-spacing: 0; }
