:root {
  --text-display-size: 30px;
  --text-display-weight: 700;
  --text-display-lh: 1.1;
  --text-display-ls: -0.02em;

  --text-title-size: 22px;
  --text-title-weight: 600;
  --text-title-ls: -0.01em;

  --text-punchline-size: 20px;
  --text-punchline-weight: 600;
  --text-punchline-lh: 1.25;

  --text-setup-size: 18px;
  --text-setup-lh: 1.5;

  --text-body-size: 15px;
  --text-body-lh: 1.55;

  --text-caption-size: 13px;
  --text-meta-size: 12px;
  --text-meta-weight: 500;

  --text-label-size: 11px;
  --text-label-ls: 0.08em;
}

.pu-display { font-family: var(--font-display); font-size: var(--text-display-size); font-weight: 700; line-height: 1.1; letter-spacing: -0.02em; color: var(--text-primary); }
.pu-title { font-family: var(--font-display); font-size: var(--text-title-size); font-weight: 600; letter-spacing: -0.01em; line-height: 1.25; color: var(--text-primary); }
.pu-punchline { font-family: var(--font-display); font-size: var(--text-punchline-size); font-weight: 600; line-height: 1.25; color: var(--text-punchline); }
.pu-setup { font-family: var(--font-body); font-size: var(--text-setup-size); font-weight: 400; line-height: 1.5; color: var(--text-primary); }
.pu-body { font-family: var(--font-body); font-size: var(--text-body-size); font-weight: 400; line-height: 1.55; color: var(--text-primary); }
.pu-caption { font-family: var(--font-body); font-size: var(--text-caption-size); font-weight: 400; line-height: 1.45; color: var(--text-secondary); }
.pu-meta { font-family: var(--font-meta); font-variant-numeric: tabular-nums; font-size: var(--text-meta-size); font-weight: 500; color: var(--text-secondary); }
.pu-label { font-family: var(--font-meta); font-variant-numeric: tabular-nums; font-size: var(--text-label-size); font-weight: 500; text-transform: uppercase; letter-spacing: 0.08em; color: var(--text-meta); }
