:root{
  /* Sizes — 1.25 ratio, tuned for German copy (long compounds) */
  --text-2xs:11px;
  --text-xs:12px;
  --text-sm:14px;
  --text-base:16px;
  --text-md:18px;
  --text-lg:21px;
  --text-xl:26px;
  --text-2xl:32px;
  --text-3xl:40px;
  --text-4xl:52px;
  --text-5xl:68px;
  --text-6xl:88px;

  --leading-tight:1.08; /* @kind other */
  --leading-snug:1.22; /* @kind other */
  --leading-normal:1.5; /* @kind other */
  --leading-relaxed:1.68; /* @kind other */

  --weight-light:300; /* @kind font */
  --weight-regular:400; /* @kind font */
  --weight-medium:500; /* @kind font */
  --weight-semibold:600; /* @kind font */
  --weight-bold:700; /* @kind font */
  --weight-black:800; /* @kind font */

  --tracking-tight:-0.02em; /* @kind other */
  --tracking-normal:0; /* @kind other */
  --tracking-wide:0.06em; /* @kind other */
  --tracking-eyebrow:0.18em; /* @kind other */

  /* Semantic roles */
  --type-script-hero:italic var(--weight-bold) var(--text-6xl)/var(--leading-tight) var(--font-script);
  --type-script-accent:italic var(--weight-bold) var(--text-3xl)/var(--leading-snug) var(--font-script);
  --type-display:var(--weight-black) var(--text-4xl)/var(--leading-tight) var(--font-sans);
  --type-h1:var(--weight-bold) var(--text-3xl)/var(--leading-snug) var(--font-sans);
  --type-h2:var(--weight-bold) var(--text-2xl)/var(--leading-snug) var(--font-sans);
  --type-h3:var(--weight-semibold) var(--text-xl)/var(--leading-snug) var(--font-sans);
  --type-h4:var(--weight-semibold) var(--text-lg)/var(--leading-snug) var(--font-sans);
  --type-eyebrow:var(--weight-semibold) var(--text-xs)/var(--leading-normal) var(--font-sans);
  --type-body-lg:var(--weight-regular) var(--text-md)/var(--leading-relaxed) var(--font-sans);
  --type-body:var(--weight-regular) var(--text-base)/var(--leading-relaxed) var(--font-sans);
  --type-body-sm:var(--weight-regular) var(--text-sm)/var(--leading-normal) var(--font-sans);
  --type-label:var(--weight-semibold) var(--text-sm)/var(--leading-normal) var(--font-sans);
  --type-price:var(--weight-bold) var(--text-base)/var(--leading-normal) var(--font-sans);
  --type-caption:var(--weight-regular) var(--text-xs)/var(--leading-normal) var(--font-sans);
}
