/* ============================================================
   UniFi Nerds — Typography
   Display  Plus Jakarta Sans — headlines, hero, big numbers
   Text/UI  Public Sans       — body, labels, UI chrome
   Mono     JetBrains Mono     — IP addresses, config, technical
   Bold + tight display, comfortable neutral body. No italics in UI.
   ============================================================ */
:root {
  --font-display: 'Plus Jakarta Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-text:    'Public Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-mono:    'JetBrains Mono', ui-monospace, 'SF Mono', Menlo, monospace;

  /* Weights */
  --fw-regular: 400;  /* @kind font */
  --fw-medium:  500;  /* @kind font */
  --fw-semibold:600;  /* @kind font */
  --fw-bold:    700;  /* @kind font */
  --fw-extra:   800;  /* @kind font */

  /* Type scale (px). Display steps use --font-display + tight tracking. */
  --fs-display-2xl: 76px;  --lh-display-2xl: 0.98;/* @kind other */ --ls-display-2xl: -0.03em;/* @kind other */
  --fs-display-xl:  60px;  --lh-display-xl:  1.02;/* @kind other */ --ls-display-xl:  -0.025em;/* @kind other */
  --fs-display-lg:  46px;  --lh-display-lg:  1.05;/* @kind other */ --ls-display-lg:  -0.02em;/* @kind other */
  --fs-display-md:  36px;  --lh-display-md:  1.1; /* @kind other */ --ls-display-md:  -0.02em;/* @kind other */

  --fs-h1: 30px;  --lh-h1: 1.15;/* @kind other */ --ls-h1: -0.015em;/* @kind other */
  --fs-h2: 24px;  --lh-h2: 1.2; /* @kind other */ --ls-h2: -0.01em;/* @kind other */
  --fs-h3: 20px;  --lh-h3: 1.25;/* @kind other */ --ls-h3: -0.01em;/* @kind other */
  --fs-h4: 17px;  --lh-h4: 1.3; /* @kind other */ --ls-h4: 0;/* @kind other */

  --fs-lg:  18px; --lh-lg:  1.55;/* @kind other */
  --fs-body:15px; --lh-body:1.55;/* @kind other */
  --fs-sm:  13px; --lh-sm:  1.5;/* @kind other */
  --fs-xs:  12px; --lh-xs:  1.45;/* @kind other */
  --fs-2xs: 11px; --lh-2xs: 1.4;/* @kind other */

  /* Eyebrow / overline — uppercase label */
  --ls-eyebrow: 0.14em;/* @kind other */

  /* Semantic text-role aliases */
  --text-hero:      var(--fw-extra) var(--fs-display-2xl)/var(--lh-display-2xl) var(--font-display);/* @kind font */
  --text-title:     var(--fw-bold)  var(--fs-h1)/var(--lh-h1) var(--font-display);/* @kind font */
  --text-heading:   var(--fw-bold)  var(--fs-h3)/var(--lh-h3) var(--font-display);/* @kind font */
  --text-copy:      var(--fw-regular) var(--fs-body)/var(--lh-body) var(--font-text);/* @kind font */
  --text-label:     var(--fw-semibold) var(--fs-sm)/var(--lh-sm) var(--font-text);/* @kind font */
  --text-code:      var(--fw-regular) var(--fs-sm)/var(--lh-sm) var(--font-mono);/* @kind font */
}
