/* Metric-compatible substitute fonts for the proposal-preview overlay.
 *
 * The proposal-preview renderer paints live text into holes cut in a
 * baked raster image of the real PowerPoint deck (Microsoft Graph
 * Office->PDF/PNG conversion). For overlaid text to land inside its hole
 * at the correct size, the browser must render each face with the exact
 * same glyph advance widths Graph used when producing the artwork. Real
 * Cambria/Calibri/Georgia/Times New Roman are Microsoft-licensed and
 * cannot be redistributed, so each is paired with an open-licence clone
 * built to be metric-compatible (same hmtx advance widths). Family names
 * below are the SUBSTITUTE names; the consuming CSS builds stacks like
 * `Cambria, Caladea, serif` so a client with the real MS font uses it and
 * everyone else falls back to the metric-identical clone.
 *
 * Manifest family  -> Substitute -> Licence      -> paragraphs using it
 * ---------------------------------------------------------------------
 * Cambria           -> Caladea    -> OFL 1.1      -> 89
 * TimesNewRomanPSMT  -> Tinos      -> Apache 2.0   -> 17
 * Calibri            -> Carlito    -> OFL 1.1      -> 5
 * Georgia            -> Gelasio    -> OFL 1.1      -> 3
 *
 * Verified metric compatibility (fontTools: head.unitsPerEm, hhea
 * ascender/descender/lineGap, hmtx advance widths for A a M m W w space
 * period comma one zero) against the real Microsoft font where available
 * on the build box (msttcorefonts):
 *   - Tinos vs Times New Roman:  unitsPerEm/ascender/descender/lineGap
 *     AND every sampled advance width matched exactly (bit-for-bit).
 *   - Gelasio vs Georgia: every sampled advance width matched exactly;
 *     hhea ascender/descender do NOT match (Gelasio 1900/-700 vs Georgia
 *     1878/-449) -- horizontal (width) metrics are what the overlay
 *     depends on, so this does not affect text-to-hole fit, but line-box
 *     height is not identical.
 *   - Caladea vs Cambria, Carlito vs Calibri: Cambria and Calibri are NOT
 *     installed on the build box, so no direct measurement was possible.
 *     Caladea/Carlito are the standard, widely-deployed metric clones
 *     (Chrome OS "crosextra" fonts) published specifically to be
 *     metric-compatible with Cambria/Calibri; taken on the strength of
 *     that established provenance, not independently re-verified here.
 *
 * Sources (upstream URL + SHA-256 of the exact file fetched):
 *
 * Caladea (OFL 1.1) -- already installed on the build box via the Debian/
 * Ubuntu package fonts-crosextra-caladea 20200211-2, not re-fetched:
 *   Caladea-Regular.ttf  sha256:f1e899278b7b4491aba5b6a8253c4b04c050cc59b21865be5c37559a775153cd
 *   Caladea-Bold.ttf     sha256:ae3cb2dcbc925809dd29d2a44e9802211cab66be541bacbfc9c08c74b27c3742
 *   Caladea-Italic.ttf   sha256:4359a8e24f748b6447b1ff6d7a174febe70961d29f8bb8634b56dacd740a3deb
 *
 * Carlito (OFL 1.1) -- already installed via fonts-crosextra-carlito 20230309-2:
 *   Carlito-Regular.ttf  sha256:f6418f708baede9789daef5d458c0f53d2a888af9820e8062934e504fedc6595
 *   Carlito-Bold.ttf     sha256:bb5d20f79b82599ec72983597437373a80f2d2085fa91fc144fd74e876a594db
 *   Carlito-Italic.ttf   sha256:0b019225e58d702bfedcbd35c21696769f8ee115cb6343f84c2f240312450d1c
 *
 * Tinos (Apache 2.0) -- fetched from Debian's fonts-croscore source
 * package (the original Chrome OS core fonts release; Google's font
 * catalog re-licensed its own hosted copy to OFL, so the Apache-licensed
 * release was sourced from Debian instead):
 *   https://sources.debian.org/data/main/f/fonts-croscore/1.23.0-1/Tinos-Regular.ttf
 *   sha256:ff4deb395ff2426bbd08db74cb005b22326175df00f0a156b87e6d2aef1ef508
 *   https://sources.debian.org/data/main/f/fonts-croscore/1.23.0-1/Tinos-Bold.ttf
 *   sha256:60bb870b30f0ae13c61efa0cd03489cb75a6fc4123edf01853d915a4ae78c540
 *   https://sources.debian.org/data/main/f/fonts-croscore/1.23.0-1/Tinos-Italic.ttf
 *   sha256:d3c5724119d7da62983433088dc200b7f553c09461643cc11ca67ea3455b368c
 *
 * Gelasio (OFL 1.1) -- fetched from the Google Fonts source repo
 * (google/fonts, commit 2d85e20401920891efb7cd6272d6339685df2820), as
 * variable fonts, then instantiated to static wght=400/700 with
 * fontTools varLib.instancer:
 *   https://github.com/google/fonts/raw/2d85e20401920891efb7cd6272d6339685df2820/ofl/gelasio/Gelasio%5Bwght%5D.ttf
 *   sha256:4daecea457258c9ebeb8bc99ed3fd24353618bfad3ea4b93fa0b5d0468fc04e4  (source variable font, wght instanced to 400 -> Regular, 700 -> Bold)
 *   https://github.com/google/fonts/raw/2d85e20401920891efb7cd6272d6339685df2820/ofl/gelasio/Gelasio-Italic%5Bwght%5D.ttf
 *   sha256:52559e845a4d33514e5f93bb9ae7dbeae1894a53f2c565a15f18af40cd337c09  (source variable font, wght instanced to 400 -> Italic)
 *
 * All four families were then subsetted per-face with fonttools
 * pyftsubset (unicode ranges below, --layout-features='*' to keep
 * kerning/ligatures -- they affect advance widths) and converted to
 * WOFF2. Bold-italic is not shipped: no manifest paragraph combines
 * bold+italic, and browsers synthesise it from Bold + oblique.
 *
 * This file lives under public/ (not src/assets), matching
 * fonts/google/fonts.css and fonts/signature-fonts.css, so webpack's
 * css-loader does not try to resolve the url() paths at build time --
 * they are absolute runtime URLs served alongside the WOFF2 files.
 */

/* ── Cambria substitute ───────────────────────────────────────────── */

@font-face {
  font-family: 'Caladea';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('./caladea-regular.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6,
    U+02DA, U+02DC, U+2000-206F, U+2074, U+20A0-20BF, U+2122, U+2191,
    U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Caladea';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('./caladea-bold.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6,
    U+02DA, U+02DC, U+2000-206F, U+2074, U+20A0-20BF, U+2122, U+2191,
    U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Caladea';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('./caladea-italic.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6,
    U+02DA, U+02DC, U+2000-206F, U+2074, U+20A0-20BF, U+2122, U+2191,
    U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ── TimesNewRomanPSMT substitute ─────────────────────────────────── */

@font-face {
  font-family: 'Tinos';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('./tinos-regular.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6,
    U+02DA, U+02DC, U+2000-206F, U+2074, U+20A0-20BF, U+2122, U+2191,
    U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Tinos';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('./tinos-bold.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6,
    U+02DA, U+02DC, U+2000-206F, U+2074, U+20A0-20BF, U+2122, U+2191,
    U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Tinos';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('./tinos-italic.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6,
    U+02DA, U+02DC, U+2000-206F, U+2074, U+20A0-20BF, U+2122, U+2191,
    U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ── Calibri substitute ───────────────────────────────────────────── */

@font-face {
  font-family: 'Carlito';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('./carlito-regular.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6,
    U+02DA, U+02DC, U+2000-206F, U+2074, U+20A0-20BF, U+2122, U+2191,
    U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Carlito';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('./carlito-bold.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6,
    U+02DA, U+02DC, U+2000-206F, U+2074, U+20A0-20BF, U+2122, U+2191,
    U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Carlito';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('./carlito-italic.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6,
    U+02DA, U+02DC, U+2000-206F, U+2074, U+20A0-20BF, U+2122, U+2191,
    U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ── Georgia substitute ───────────────────────────────────────────── */

@font-face {
  font-family: 'Gelasio';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('./gelasio-regular.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6,
    U+02DA, U+02DC, U+2000-206F, U+2074, U+20A0-20BF, U+2122, U+2191,
    U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Gelasio';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('./gelasio-bold.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6,
    U+02DA, U+02DC, U+2000-206F, U+2074, U+20A0-20BF, U+2122, U+2191,
    U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Gelasio';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('./gelasio-italic.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6,
    U+02DA, U+02DC, U+2000-206F, U+2074, U+20A0-20BF, U+2122, U+2191,
    U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
