:root {
  /* Scale — poster-derived, display sizes are deliberately large and heavy */
  --text-3xs: 10px;
  --text-2xs: 11px;
  --text-xs: 12px;
  --text-sm: 14px;
  --text-base: 16px;
  --text-md: 18px;
  --text-lg: 21px;
  --text-xl: 25px;
  --text-2xl: 31px;
  --text-3xl: 40px;
  --text-4xl: 52px;
  --text-5xl: 68px;
  --text-6xl: 88px;

  --leading-tight: 0.94;
  --leading-snug: 1.12;
  --leading-normal: 1.45;
  --leading-loose: 1.65;
  --leading-bengali: 1.75;

  --weight-regular: 400;
  --weight-medium: 500;
  --weight-semibold: 600;
  --weight-bold: 700;
  --weight-black: 800;

  --tracking-tight: -0.01em;
  --tracking-normal: 0;
  --tracking-wide: 0.04em;
  --tracking-caps: 0.09em;

  /* Semantic roles */
  --type-display: var(--weight-black) var(--text-4xl) / var(--leading-tight) var(--font-display);
  --type-section: var(--weight-black) var(--text-2xl) / var(--leading-tight) var(--font-display);
  --type-item: var(--weight-bold) var(--text-md) / var(--leading-snug) var(--font-body);
  --type-price: var(--weight-bold) var(--text-md) / var(--leading-snug) var(--font-body);
  --type-body: var(--weight-regular) var(--text-base) / var(--leading-normal) var(--font-body);
  --type-small: var(--weight-medium) var(--text-sm) / var(--leading-normal) var(--font-body);
  --type-label: var(--weight-bold) var(--text-xs) / 1.2 var(--font-body);
  --type-bengali: var(--weight-medium) var(--text-sm) / var(--leading-bengali) var(--font-bengali);
}
