/* Self-hosted so the footer's claim — "loads nothing from anybody else's server"
   — is TRUE. It was false while these loaded from fonts.gstatic.com, and on this
   site a false privacy claim is not a cosmetic defect; it is the product failing.

   These are VARIABLE fonts: one file per family covers the whole weight range,
   so font-weight must be declared as a RANGE. Declaring a single weight (400)
   makes the browser synthesise 600 and 700 by smearing the 400 master, which
   looks like a slightly wrong font rather than an obviously broken one.
   Latin subset only (U+0000-00FF and common punctuation). */

@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 200 900;                 /* variable wght axis */
  font-display: swap;
  src: url('../fonts/sourceserif4-latin.woff2') format('woff2-variations');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+2000-206F,
                 U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215;
}

@font-face {
  font-family: 'Public Sans';
  font-style: normal;
  font-weight: 100 900;                 /* variable wght axis */
  font-display: swap;
  src: url('../fonts/publicsans-latin.woff2') format('woff2-variations');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+2000-206F,
                 U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215;
}

/* ==========================================================================
   EB GARAMOND — DISPLAY ONLY. Added 2026-09-04 on the owner's instruction,
   after he pointed at the title page of the book itself and said he liked it
   better. He is right, and it is the book's own interior face: the headlines
   on the website are now set in the same type as the object the website sells.

   SPEC 2.3.4 explicitly ruled this face OUT — "It is the book's interior face
   and it stays there. It has no opsz axis and a small x-height, which is the
   wrong trade for a 72-year-old on a screen." That objection is about BODY
   TEXT at 17px on a phone, and it still stands: nothing below a heading is set
   in this. At 44px a small x-height is a characteristic, not a legibility
   cost. Two serifs on one page only work if they never do the same job, so the
   rule is absolute — EB Garamond sets headings and nothing else.

   License: SIL Open Font License, the same as the two above. Self-hosted for
   the same reason they are: the footer's claim that this site loads nothing
   from anybody else's server has to be true.

   size-adjust, and the arithmetic behind it. Measured from the two files:
   Source Serif 4 x-height 0.4750em, EB Garamond 0.4000em — 15.8% smaller, so
   at the same font-size the headline would simply look smaller and lighter.
   Matching x-heights exactly is 118.8%. Cap heights are much closer (0.670
   against 0.650), so a full x-height match overshoots the capitals by 15%.
   The value below was chosen by rendering the real headline, not by algebra;
   the workings are in DECISIONS D85. */
@font-face {
  font-family: 'EB Garamond';
  font-style: normal;
  font-weight: 400 800;                 /* variable wght axis */
  font-display: swap;
  size-adjust: 112%;
  src: url('../fonts/ebgaramond-latin.woff2') format('woff2-variations');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+2000-206F,
                 U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215;
}
