:root{
  /* Sizes — Persian text needs a touch more size than latin at the same rank */
  --text-2xs:12px;
  --text-xs:13px;
  --text-sm:15px;
  --text-md:17px;
  --text-lg:19px;
  --text-xl:23px;
  --text-2xl:28px;
  --text-3xl:34px;
  --text-4xl:44px;
  --text-5xl:58px;
  --text-6xl:76px;
  --text-7xl:104px;
  --text-8xl:148px;   /* a title that fills the room */

  /* Line heights — Persian ascenders/descenders demand air */
  --leading-tight:1.35;
  --leading-snug:1.55;
  --leading-body:1.9;
  --leading-loose:2.15;
  --leading-display:1.5;

  --weight-thin:300;
  --weight-regular:400;
  --weight-medium:500;
  --weight-bold:700;
  --weight-black:900;

  /* ---- Tracking ----
     Persian and Arabic are CURSIVE: letters join. Any positive letter-spacing severs
     those joins and the word renders as disconnected letterforms — it reads as
     misspelt, not as emphasis. So the wide track is ZERO, and eyebrows earn their
     emphasis from size, colour and the square bullet instead.
     --tracking-latin-wide exists for Latin-only runs (the Latin poster edition,
     English UI); never apply it to Persian or Arabic text. */
  --tracking-tight:-0.01em;
  --tracking-normal:0;
  --tracking-wide:0;
  --tracking-latin-wide:0.06em;
  --word-spacing-eyebrow:0.08em;   /* safe emphasis for Persian: spaces, not letters */

  /* Semantic roles */
  --type-display:var(--weight-black) var(--text-5xl)/var(--leading-display) var(--font-display);
  --type-cinema:var(--weight-black) clamp(44px,7vw,148px)/1.06 var(--font-display);
  --type-whisper:var(--weight-thin) clamp(17px,1.6vw,26px)/1.75 var(--font-ui);
  --type-title:var(--weight-bold) var(--text-3xl)/var(--leading-tight) var(--font-core);
  --type-heading:var(--weight-bold) var(--text-xl)/var(--leading-snug) var(--font-core);
  --type-subheading:var(--weight-medium) var(--text-lg)/var(--leading-snug) var(--font-core);
  --type-body:var(--weight-regular) var(--text-md)/var(--leading-body) var(--font-core);
  --type-body-sm:var(--weight-regular) var(--text-sm)/var(--leading-body) var(--font-core);
  --type-caption:var(--weight-regular) var(--text-xs)/var(--leading-snug) var(--font-ui);
  --type-label:var(--weight-medium) var(--text-sm)/1.4 var(--font-ui);
  --type-ayah:var(--weight-regular) var(--text-xl)/2.1 var(--font-quran);
}
