/* ===========================================================================
   ⭐ PLATFORM-ADDED VERTICAL-METRIC OVERRIDES — NOT from the authoring pipeline.
   ===========================================================================
   Every REAL @font-face block below carries three declarations the generator did
   not write:

       ascent-override: 81%;  descent-override: 19%;  line-gap-override: 0%;

   WHY THEY EXIST. The CSS baseline sits `ascent` below the top of the inline
   content box, so the ascent/descent SPLIT is what decides how high glyphs seat
   inside their box. Raising the ascent share moves the baseline — and the glyphs
   with it — DOWN. This is the platform's one lever for the founder's "everything
   sits very slightly too high" note, and it is a CSS lever precisely so it can be
   retuned without regenerating a single font file.

   ⛔ THE TWO VALUES MUST ALWAYS SUM TO 100%. Ascent+descent IS the content box
   height, so raising ascent alone would grow every box and reflow line boxes
   platform-wide — a far bigger change than a vertical nudge. Holding the sum at
   100% moves the baseline while leaving box heights, line heights and layout
   untouched. `line-gap-override: 0%` is stated explicitly so no browser's default
   line-gap handling can vary underneath us.

   CURRENT VALUES ARE 81% / 19%, CHOSEN BY THE FOUNDER (2026-09-07, revised from an
   earlier 90/10 that overshot) from a labelled
   side-by-side comparison. They are NOT the font's own metrics: measured with
   fontTools across all 36 shipped faces, the binaries carry unitsPerEm 1000, OS/2
   typo 750/-250/0, hhea 750/-250/0 and the USE_TYPO_METRICS bit (fsSelection bit 7)
   SET — i.e. the fonts themselves say 75/25. Declaring 81/19 deliberately overrides
   that to seat glyphs lower, and it also pins the values so a platform that ignored
   the bit cannot fall back to usWinAscent/Descent (which are NOT uniform across the
   families: 827/307 Title, 792/255 Body, 1038/419 Script).

   ⚠️ WHAT 81/19 COSTS. We declare 19% of the em below the baseline while the outlines
   use more — measured from these very woff2 files with fontTools: Title 24.4% (`g`) and
   29.6% at its deepest glyph (the 900-weight parenthesis), Body 24.0% (`g`), Script 40.9%
   (`y`). So a descender hangs 5-22% of the em BELOW the bottom of its own text box.
   Glyphs are unchanged and nothing clips at the top; the exposure is entirely at the
   bottom edge, and only where something actually clips (overflow:hidden, a line clamp, a
   fixed height). It does NOT change line-to-line spacing — inter-baseline distance is
   line-height, which this does not touch. A line box adds (line-height - 1)/2 em of slack,
   so a rule is safe when line-height >= 1 + 2*(depth - 0.19): Title 1.11 (1.21 counting
   punctuation), Body 1.10, Script 1.44. ⛔ ANY NEW rule that clips or fixes the height of a
   text box must be checked against this. Full audit: docs/design-system.md §1.

   ⚠️ THE FALLBACK ALIASES AT THE BOTTOM OF THIS FILE MOVE IN LOCKSTEP, and the
   math is NOT a straight copy: an alias's overrides are relative to its own
   `size-adjust`ed em, so the alias value is (target ÷ size-adjust). Worked:
   Body Arial/Helvetica size-adjust 102.24% -> 81 / 1.0224 = 79.23% (and 19 /
   1.0224 = 18.58%); system-ui 108.94% -> 74.35% / 17.44%; Segoe/Roboto carry no size-adjust
   and take the target verbatim (81% / 19%).
   If ascent-override here changes and the aliases do not follow, the swap from
   fallback to real font will produce a visible vertical jump — which is the exact
   thing the aliases exist to prevent. Full rationale: docs/design-system.md §1.
   =========================================================================== */

@font-face {
  font-family: "Burrow Body";
  font-weight: 200;
  font-style: normal;
  font-display: swap;
  ascent-override: 81%;
  descent-override: 19%;
  line-gap-override: 0%;
  src: url("woff2/BurrowBody-200.woff2") format("woff2");
}

@font-face {
  font-family: "Burrow Body";
  font-weight: 200;
  font-style: italic;
  font-display: swap;
  ascent-override: 81%;
  descent-override: 19%;
  line-gap-override: 0%;
  src: url("woff2/BurrowBody-200Italic.woff2") format("woff2");
}

@font-face {
  font-family: "Burrow Body";
  font-weight: 300;
  font-style: normal;
  font-display: swap;
  ascent-override: 81%;
  descent-override: 19%;
  line-gap-override: 0%;
  src: url("woff2/BurrowBody-300.woff2") format("woff2");
}

@font-face {
  font-family: "Burrow Body";
  font-weight: 300;
  font-style: italic;
  font-display: swap;
  ascent-override: 81%;
  descent-override: 19%;
  line-gap-override: 0%;
  src: url("woff2/BurrowBody-300Italic.woff2") format("woff2");
}

@font-face {
  font-family: "Burrow Body";
  font-weight: 350;
  font-style: normal;
  font-display: swap;
  ascent-override: 81%;
  descent-override: 19%;
  line-gap-override: 0%;
  src: url("woff2/BurrowBody-350.woff2") format("woff2");
}

@font-face {
  font-family: "Burrow Body";
  font-weight: 350;
  font-style: italic;
  font-display: swap;
  ascent-override: 81%;
  descent-override: 19%;
  line-gap-override: 0%;
  src: url("woff2/BurrowBody-350Italic.woff2") format("woff2");
}

@font-face {
  font-family: "Burrow Body";
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  ascent-override: 81%;
  descent-override: 19%;
  line-gap-override: 0%;
  src: url("woff2/BurrowBody-400.woff2") format("woff2");
}

@font-face {
  font-family: "Burrow Body";
  font-weight: 400;
  font-style: italic;
  font-display: swap;
  ascent-override: 81%;
  descent-override: 19%;
  line-gap-override: 0%;
  src: url("woff2/BurrowBody-400Italic.woff2") format("woff2");
}

@font-face {
  font-family: "Burrow Body";
  font-weight: 500;
  font-style: normal;
  font-display: swap;
  ascent-override: 81%;
  descent-override: 19%;
  line-gap-override: 0%;
  src: url("woff2/BurrowBody-500.woff2") format("woff2");
}

@font-face {
  font-family: "Burrow Body";
  font-weight: 500;
  font-style: italic;
  font-display: swap;
  ascent-override: 81%;
  descent-override: 19%;
  line-gap-override: 0%;
  src: url("woff2/BurrowBody-500Italic.woff2") format("woff2");
}

@font-face {
  font-family: "Burrow Body";
  font-weight: 600;
  font-style: normal;
  font-display: swap;
  ascent-override: 81%;
  descent-override: 19%;
  line-gap-override: 0%;
  src: url("woff2/BurrowBody-600.woff2") format("woff2");
}

@font-face {
  font-family: "Burrow Body";
  font-weight: 600;
  font-style: italic;
  font-display: swap;
  ascent-override: 81%;
  descent-override: 19%;
  line-gap-override: 0%;
  src: url("woff2/BurrowBody-600Italic.woff2") format("woff2");
}

@font-face {
  font-family: "Burrow Body";
  font-weight: 700;
  font-style: normal;
  font-display: swap;
  ascent-override: 81%;
  descent-override: 19%;
  line-gap-override: 0%;
  src: url("woff2/BurrowBody-700.woff2") format("woff2");
}

@font-face {
  font-family: "Burrow Body";
  font-weight: 700;
  font-style: italic;
  font-display: swap;
  ascent-override: 81%;
  descent-override: 19%;
  line-gap-override: 0%;
  src: url("woff2/BurrowBody-700Italic.woff2") format("woff2");
}

@font-face {
  font-family: "Burrow Body";
  font-weight: 800;
  font-style: normal;
  font-display: swap;
  ascent-override: 81%;
  descent-override: 19%;
  line-gap-override: 0%;
  src: url("woff2/BurrowBody-800.woff2") format("woff2");
}

@font-face {
  font-family: "Burrow Body";
  font-weight: 800;
  font-style: italic;
  font-display: swap;
  ascent-override: 81%;
  descent-override: 19%;
  line-gap-override: 0%;
  src: url("woff2/BurrowBody-800Italic.woff2") format("woff2");
}

@font-face {
  font-family: "Burrow Body";
  font-weight: 900;
  font-style: normal;
  font-display: swap;
  ascent-override: 81%;
  descent-override: 19%;
  line-gap-override: 0%;
  src: url("woff2/BurrowBody-900.woff2") format("woff2");
}

@font-face {
  font-family: "Burrow Body";
  font-weight: 900;
  font-style: italic;
  font-display: swap;
  ascent-override: 81%;
  descent-override: 19%;
  line-gap-override: 0%;
  src: url("woff2/BurrowBody-900Italic.woff2") format("woff2");
}

/* Fallback metric overrides: these local-font aliases occupy the

   same space as Burrow Body, so font-display: swap does not

   shift layout. Use as: font-family: "Burrow Body", "Burrow Body Fallback Arial", Arial, sans-serif */

@font-face {
  font-family: "Burrow Body Fallback Arial";
  src: local("Arial");
  size-adjust: 102.24%;  /* measured locally */
  ascent-override: 79.23%;
  descent-override: 18.58%;
  line-gap-override: 0.00%;
}

@font-face {
  font-family: "Burrow Body Fallback Helvetica";
  src: local("Helvetica");
  size-adjust: 102.24%;  /* measured locally */
  ascent-override: 79.23%;
  descent-override: 18.58%;
  line-gap-override: 0.00%;
}

@font-face {
  font-family: "Burrow Body Fallback system-ui";
  src: local("-apple-system");
  size-adjust: 108.94%;  /* measured locally */
  ascent-override: 74.35%;
  descent-override: 17.44%;
  line-gap-override: 0.00%;
}

@font-face {
  font-family: "Burrow Body Fallback Segoe";
  src: local("Segoe UI");
  /* size-adjust omitted: Segoe UI is not present on this build machine,
     so the horizontal ratio could not be measured — verify on a
     device that has it. Vertical overrides depend only on our
     own metrics and are exact. */
  ascent-override: 81.00%;
  descent-override: 19.00%;
  line-gap-override: 0.00%;
}

@font-face {
  font-family: "Burrow Body Fallback Roboto";
  src: local("Roboto");
  /* size-adjust omitted: Roboto is not present on this build machine,
     so the horizontal ratio could not be measured — verify on a
     device that has it. Vertical overrides depend only on our
     own metrics and are exact. */
  ascent-override: 81.00%;
  descent-override: 19.00%;
  line-gap-override: 0.00%;
}
