/* Typography — baoyu-design System
   Display serif (Newsreader) for editorial headlines & long-form,
   grotesque sans (Hanken Grotesk) for UI & body,
   mono (JetBrains Mono) for code, CLI, tokens. */

:root {
  /* Families */
  --font-serif: "Newsreader", Georgia, "Times New Roman", serif;
  --font-sans:  "Hanken Grotesk", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
  --font-mono:  "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;

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

  /* Type scale (px in rem, 1rem = 16px) */
  --text-xs:   0.75rem;   /* 12 */
  --text-sm:   0.875rem;  /* 14 */
  --text-base: 1rem;      /* 16 */
  --text-md:   1.125rem;  /* 18 */
  --text-lg:   1.375rem;  /* 22 */
  --text-xl:   1.75rem;   /* 28 */
  --text-2xl:  2.25rem;   /* 36 */
  --text-3xl:  3rem;      /* 48 */
  --text-4xl:  4rem;      /* 64 */

  /* Line heights */
  --leading-tight:   1.1;
  --leading-snug:    1.25;
  --leading-normal:  1.5;
  --leading-relaxed: 1.65;

  /* Letter spacing */
  --tracking-tight:  -0.02em;
  --tracking-normal: 0;
  --tracking-wide:   0.04em;
  --tracking-caps:   0.08em; /* eyebrows / labels */

  /* ---- Semantic roles ---- */
  --role-display:  var(--weight-medium) var(--text-3xl)/var(--leading-tight) var(--font-serif);
  --role-title:    var(--weight-medium) var(--text-2xl)/var(--leading-snug) var(--font-serif);
  --role-heading:  var(--weight-semibold) var(--text-lg)/var(--leading-snug) var(--font-sans);
  --role-body:     var(--weight-regular) var(--text-base)/var(--leading-relaxed) var(--font-sans);
  --role-body-serif: var(--weight-regular) var(--text-md)/var(--leading-relaxed) var(--font-serif);
  --role-ui:       var(--weight-medium) var(--text-sm)/var(--leading-normal) var(--font-sans);
  --role-mono:     var(--weight-regular) var(--text-sm)/var(--leading-normal) var(--font-mono);
  --role-eyebrow:  var(--weight-semibold) var(--text-xs)/var(--leading-normal) var(--font-sans);
}
