/* Self-hosted copies of the two Google Fonts families.
   Loading them from fonts.gstatic.com sent every visitor's IP address to
   Google before a single word was read; with these there is no third-party
   request on a normal visit at all.

   THE FAMILIES ARE IBEX SERVICES SA's, and that is the point.

   Until 29 August 2026 this site set Cormorant Garamond over Inter. The firm
   that runs it sets Playfair Display over Archivo, on ibexservices.ch and on
   the IBEX Capital site, and typography is the part of a house standard a
   reader recognises without being able to name it. Two sites from one firm in
   two different serifs read as two firms.

   Ten files, one per family/style/subset, each declaring a WEIGHT RANGE.

   ONE FILE PER SUBSET AND NOT ONE PER WEIGHT. These are variable fonts: the
   400, the 500, the 600 and the 700 of Archivo are the same bytes. The
   reference site proves the cost of missing that — ibexservices-dj ships
   twelve files that are four distinct ones under twelve names, so a visitor
   fetches 137 KB to receive 34 KB of Archivo four times over, and no browser
   can tell they are the same resource: different URLs, separate cache entries.
   The four sha256 prefixes were checked against these downloads and match.

   The ranges come from the files, not from memory: Archivo carries wght
   100–900, Playfair Display 400–900. If a weight outside those is ever asked
   for the browser synthesises it — badly, and silently. Widen the axis by
   shipping a different file; do not widen the range here to cover it.

   THE SUBSETS ARE NOT ONLY LATIN. This site publishes in nine languages, and
   two of them fell outside what was shipped: Russian and Vietnamese rendered
   in whatever the operating system offered, which on the same page as an
   English one in Playfair is not a fallback, it is a different design.
   Vietnamese is covered for both families and Cyrillic for the serif, which is
   what Google publishes. Archivo has no Cyrillic subset, so Russian running
   text still falls back — that is a limit of the family, not an omission here,
   and it is the one thing on this page a reader of Russian sees differently.
   Chinese and Arabic fall back deliberately: a CJK webfont is megabytes.

   A subset is only ever fetched by a page that contains its characters, so the
   four files added here cost an English visitor nothing. */

/* ---- Archivo — the sans: navigation, labels, buttons, running text -------- */

@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("../fonts/archivo-variable-normal-latin.cd56e2ec63d7.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-variable-normal-latin-ext.c5e41aa17045.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: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("../fonts/archivo-variable-normal-vietnamese.fca5a1ef9b8c.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

@font-face {
  font-family: 'Archivo';
  font-style: italic;
  font-weight: 100 900;
  font-display: swap;
  src: url("../fonts/archivo-variable-italic-latin.b590eac708ab.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;
}

/* ---- Playfair Display — the serif: every heading, every figure ------------ */

@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 400 900;
  font-display: swap;
  src: url("../fonts/playfair-variable-normal-latin.ef05b30d6e5c.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: 'Playfair Display';
  font-style: normal;
  font-weight: 400 900;
  font-display: swap;
  src: url("../fonts/playfair-variable-normal-latin-ext.319e6b2aad48.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: 'Playfair Display';
  font-style: normal;
  font-weight: 400 900;
  font-display: swap;
  src: url("../fonts/playfair-variable-normal-cyrillic.66a1a9a1a310.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 400 900;
  font-display: swap;
  src: url("../fonts/playfair-variable-normal-vietnamese.ec896614814e.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

@font-face {
  font-family: 'Playfair Display';
  font-style: italic;
  font-weight: 400 900;
  font-display: swap;
  src: url("../fonts/playfair-variable-italic-latin.2175449f9d44.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: 'Playfair Display';
  font-style: italic;
  font-weight: 400 900;
  font-display: swap;
  src: url("../fonts/playfair-variable-italic-latin-ext.43bf186b7991.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;
}
