/* ============================================================================
   typography/fonts.css — the font-delivery layer (§4, §14 layer 1).

   ONE owner for every @font-face in the application. Before this file there
   were three: juribooks-sharp-type-v5.css declared the six faces that actually
   work, juribooks-typography-v3.css declared six more pointing at lib/fonts/,
   a directory that does not exist, and the Google Fonts <link> in index.html
   declared a further ten families over the network.

   WHY ONE VARIABLE FACE RATHER THAN FOUR STATIC ONES

   fonts/inter-tight-{regular,medium,semibold,bold}.woff2 are byte-identical:

       f5af7a761c2b64f7c28f1e6721d7743b  inter-tight-regular.woff2
       f5af7a761c2b64f7c28f1e6721d7743b  inter-tight-medium.woff2
       f5af7a761c2b64f7c28f1e6721d7743b  inter-tight-semibold.woff2
       f5af7a761c2b64f7c28f1e6721d7743b  inter-tight-bold.woff2

   One 43.8 KB VARIABLE font, shipped four times under four names: 175 KB of
   requests for 44 KB of typeface, and in the single-file build the same base64
   blob embedded four times. Declaring it once with a weight RANGE gives the
   browser the same 400/500/600/700 from one file.

   The weights are real, not synthesised: measured advance widths differ per
   weight and are unchanged under font-synthesis:none. tokens.css sets
   font-synthesis:none so the browser can never invent one.

   WHAT IS STILL FETCHED FROM GOOGLE, AND WHY

   §4 asks for no CDN dependency. The two CONTRACT families -- Inter Tight and
   IBM Plex Mono -- are fully self-hosted here and fetch nothing. The remaining
   Google request in index.html serves only the LEGACY FIRM FONT PREFERENCES in
   settings-company-profile.js (plex, inter, sourceserif, merriweather) and the
   report-font preference. Removing it would silently change the typography of
   every firm that saved one of those, which §26 names as a stop condition. The
   request has been trimmed to the families a saved preference can actually
   reach; the migration itself is a decision for the firm, not for this change.
   See docs/design/TYPOGRAPHY-SYSTEM.md, "Font delivery".

   LICENCES

   Inter Tight  — SIL Open Font License 1.1 (Rasmus Andersson / The Inter Project)
   IBM Plex Mono — SIL Open Font License 1.1 (IBM / Bold Monday)

   Both permit self-hosting, embedding and redistribution with the licence
   retained. Full text: docs/design/FONT-LICENSES.md.
   ========================================================================== */

/* ---- Inter Tight: one variable file, the whole 400-700 range -------------- */
@font-face {
  font-family: 'Inter Tight';
  src: url('../../fonts/inter-tight-variable.woff2') format('woff2-variations'),
       url('../../fonts/inter-tight-variable.woff2') format('woff2');
  font-style: normal;
  font-weight: 400 700;   /* §3 allows 400/500/600/700 and nothing else */
  font-display: swap;
}

/* ---- IBM Plex Mono: identifiers only, so two weights cover every use ------
   Measured usage across 31 views: 421 identifier elements, all at 500 or 600.
   With font-synthesis:none a request for 400 or 700 resolves to the nearest
   real weight rather than a faked one. */
@font-face {
  font-family: 'IBM Plex Mono';
  src: url('../../fonts/ibm-plex-mono-medium.woff2') format('woff2');
  font-style: normal;
  font-weight: 500;
  font-display: swap;
}
@font-face {
  font-family: 'IBM Plex Mono';
  src: url('../../fonts/ibm-plex-mono-semibold.woff2') format('woff2');
  font-style: normal;
  font-weight: 600;
  font-display: swap;
}
