/*
 * Self-hosted webfonts — redcentrenats.com.au
 * ---------------------------------------------------------------------
 * All families below are self-hosted from /fonts/ on this origin.
 * There is NO runtime dependency on fonts.googleapis.com or
 * fonts.gstatic.com — files were fetched once at build time via the
 * Google Fonts css2 API (with a modern-Chrome User-Agent, which is what
 * makes Google serve variable woff2 instead of legacy static ttf) and
 * committed to this repo.
 *
 * Licence: SIL Open Font License 1.1 (OFL) for all three families.
 * OFL requires the licence text to be redistributed alongside the
 * fonts — the full text (with per-family copyright notices) is saved
 * at /fonts/OFL.txt. Do not strip that file.
 *
 * Subsetting: fonttools/pyftsubset was NOT available on the machine
 * that built this (checked: `python3 -c "import fontTools"` fails, no
 * system pyftsubset binary), and per build instructions it was not
 * installed to work around that. No additional subsetting beyond what
 * Google already applies was performed. Each family below ships as the
 * two Google-provided subsets that cover Latin + Latin Extended (the
 * "latin" and "latin-ext" unicode-range blocks Google's own API
 * returns) — no CJK/Cyrillic/Greek, which this AU event site doesn't
 * need. If fonttools becomes available later, these could be merged
 * into a single subset file per family/style to save two HTTP
 * requests, but the byte-for-byte content would not meaningfully
 * shrink since Google's own subsetting is already tight.
 *
 * FAMILIES / AXES / SOURCE / SIZE
 * ---------------------------------------------------------------------
 * 1) Big Shoulders  (display/headline face)
 *    NOTE: "Big Shoulders Display" no longer exists as its own family
 *    on Google Fonts — fonts.google.com/specimen/Big+Shoulders+Display
 *    now 404s. Google merged Text/Display/etc. into ONE variable family,
 *    "Big Shoulders", where the old "Display" cut is just the high end
 *    of the optical-size (opsz) axis. Verified by parsing the fvar table
 *    directly out of the downloaded woff2 (fontTools unavailable, so
 *    this was done with a hand-rolled WOFF2 table-directory parser +
 *    the system libbrotlidec via Python ctypes):
 *      axis 'wght': min 100  default 100  max 900
 *      axis 'opsz': min  10  default  72  max  72   (72 = the old "Display" optical size)
 *    Because opsz's default equals its max here, the file renders at
 *    full Display character by default even before any CSS touches it;
 *    font-optical-sizing: auto (the browser default) will still let it
 *    soften slightly at very small sizes, which is desirable, not a bug.
 *    Files (Google gstatic v4, family name baked into the font: 'Big Shoulders'):
 *      big-shoulders-display-var-latin.woff2       58,436 bytes
 *      big-shoulders-display-var-latin-ext.woff2   45,404 bytes
 *    Source: https://fonts.google.com/specimen/Big+Shoulders (OFL 1.1,
 *    Copyright 2019 The Big Shoulders Project Authors)
 *
 * 2) Archivo  (body/UI face)
 *    Still its own family, unchanged. fvar: axis 'wght' min 100 default
 *    600 max 900 (single axis, both upright and italic files). True
 *    variable italic exists (separate file, font-style: italic, same
 *    100–900 weight range) — confirmed via the css2 API, which returned
 *    a distinct @font-face block with font-style: italic and its own
 *    woff2 URLs, not a synthetic oblique.
 *    TABULAR FIGURES: confirmed by parsing the GSUB feature list
 *    directly out of the binary — the 'tnum' feature IS present (along
 *    with 'pnum', 'frac', 'dnom', 'numr'). font-variant-numeric:
 *    tabular-nums will work correctly for the prize-money odometer and
 *    ticket prices. ('lnum'/'onum' are not present as separate features,
 *    which just means the default digit glyphs are already lining
 *    figures — there's no oldstyle-figure alternate to accidentally
 *    trigger.)
 *    Files (Google gstatic v25, family name baked into font: 'Archivo'):
 *      archivo-var-latin.woff2                 34,928 bytes
 *      archivo-var-latin-ext.woff2              32,608 bytes
 *      archivo-italic-var-latin.woff2          39,156 bytes
 *      archivo-italic-var-latin-ext.woff2       35,016 bytes
 *    Source: https://fonts.google.com/specimen/Archivo (OFL 1.1,
 *    Copyright 2020 The Archivo Project Authors)
 *
 * 3) Big Shoulders Stencil  (badge/decal treatments — nice-to-have, obtained)
 *    Same restructuring story as (1): "Big Shoulders Stencil Display"
 *    404s on fonts.google.com, current family is just "Big Shoulders
 *    Stencil" with the same axes as Big Shoulders:
 *      axis 'wght': min 100  default 100  max 900
 *      axis 'opsz': min  10  default  72  max  72
 *    Files (Google gstatic v4, family name baked into font: 'Big Shoulders Stencil'):
 *      big-shoulders-stencil-var-latin.woff2       60,092 bytes
 *      big-shoulders-stencil-var-latin-ext.woff2   46,752 bytes
 *    Source: https://fonts.google.com/specimen/Big+Shoulders+Stencil
 *    (OFL 1.1, Copyright 2019 The Big Shoulders Project Authors)
 *
 * All eight files verified genuine "Web Open Font Format (Version 2)"
 * via `file`, and verified as true variable fonts (not a single static
 * weight masquerading as one) via direct fvar-table inspection — see
 * axis data above. Full record: /fonts/FONTS.md
 * ---------------------------------------------------------------------
 */

/* ============================= Big Shoulders (headline/display) ============================= */

@font-face {
  font-family: 'Big Shoulders';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src:
    url('/fonts/big-shoulders-display-var-latin.woff2') format('woff2-variations'),
    url('/fonts/big-shoulders-display-var-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Big Shoulders';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src:
    url('/fonts/big-shoulders-display-var-latin-ext.woff2') format('woff2-variations'),
    url('/fonts/big-shoulders-display-var-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* ============================= Archivo (body/UI) ============================= */

@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src:
    url('/fonts/archivo-var-latin.woff2') format('woff2-variations'),
    url('/fonts/archivo-var-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src:
    url('/fonts/archivo-var-latin-ext.woff2') format('woff2-variations'),
    url('/fonts/archivo-var-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Archivo';
  font-style: italic;
  font-weight: 100 900;
  font-display: swap;
  src:
    url('/fonts/archivo-italic-var-latin.woff2') format('woff2-variations'),
    url('/fonts/archivo-italic-var-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Archivo';
  font-style: italic;
  font-weight: 100 900;
  font-display: swap;
  src:
    url('/fonts/archivo-italic-var-latin-ext.woff2') format('woff2-variations'),
    url('/fonts/archivo-italic-var-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* ============================= Big Shoulders Stencil (badge/decal — optional) ============================= */

@font-face {
  font-family: 'Big Shoulders Stencil';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src:
    url('/fonts/big-shoulders-stencil-var-latin.woff2') format('woff2-variations'),
    url('/fonts/big-shoulders-stencil-var-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Big Shoulders Stencil';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src:
    url('/fonts/big-shoulders-stencil-var-latin-ext.woff2') format('woff2-variations'),
    url('/fonts/big-shoulders-stencil-var-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
