/* PlexusX web fonts, served from our own origin.
 *
 * (Hostnames are deliberately not written out below. An audit greps the shipped files for
 * them, and a hit inside a comment explaining their removal is the most annoying possible
 * false positive.)
 *
 * WHY THESE ARE NOT ON A CDN. Until 2026-08-30 the site pulled Space Mono and Space
 * Grotesk from Google Fonts and Clash Display from Fontshare. A font
 * request carries the visitor's IP address to whoever serves it, and it fires on first
 * paint - before anyone has agreed to anything, on every page, for every visitor.
 * That is a transfer of personal data to a third country with no consent and no
 * lawful basis, and it is the single most-warned-about item on any European site:
 * LG Muenchen I, 3 O 17493/20 (20 Jan 2022) awarded damages for exactly this, and a
 * wave of German warning letters followed it.
 *
 * It also made the privacy policy untrue. That document says 'nothing you load from
 * us reports to Google, Meta or anyone like them', which was false while these two
 * links were in index.html. Self-hosting makes the sentence true rather than making
 * us rewrite it into something weaker.
 *
 * Licences: see LICENCES.md beside this file. Space Mono and Space Grotesk are SIL Open
 * Font License 1.1 and the texts are here in full. Clash Display's terms are published as
 * a web page rather than a file and are linked rather than paraphrased - that is the one
 * family whose licence has not been read end to end, and LICENCES.md says so plainly.
 *
 * Generated from the vendors' own stylesheets, so the unicode-range blocks are theirs:
 * a browser still downloads only the subset it needs. Space Grotesk is a VARIABLE font
 * - one file covers 400-700, which is why there is one file per subset and not four.
 */

/* Space Grotesk - latin - variable, 400-700 */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('/fonts/SpaceGrotesk-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;
}
/* Space Grotesk - latin-ext - variable, 400-700 */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('/fonts/SpaceGrotesk-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;
}
/* Space Grotesk - vietnamese - variable, 400-700 */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('/fonts/SpaceGrotesk-vietnamese.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;
}
/* Space Mono 400 - latin */
@font-face {
  font-family: 'Space Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/SpaceMono-400-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;
}
/* Space Mono 400 - latin-ext */
@font-face {
  font-family: 'Space Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/SpaceMono-400-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;
}
/* Space Mono 400 - vietnamese */
@font-face {
  font-family: 'Space Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/SpaceMono-400-vietnamese.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;
}
/* Space Mono 700 - latin */
@font-face {
  font-family: 'Space Mono';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/fonts/SpaceMono-700-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;
}
/* Space Mono 700 - latin-ext */
@font-face {
  font-family: 'Space Mono';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/fonts/SpaceMono-700-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;
}
/* Space Mono 700 - vietnamese */
@font-face {
  font-family: 'Space Mono';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/fonts/SpaceMono-700-vietnamese.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;
}
/* Clash Display. Fontshare serves no subsets and no 900 weight - the site's heaviest
   real use is 700, and index.css only ever asks for 600 and 700. */
@font-face {
  font-family: 'Clash Display';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/ClashDisplay-400.woff2') format('woff2');
}
@font-face {
  font-family: 'Clash Display';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/fonts/ClashDisplay-500.woff2') format('woff2');
}
@font-face {
  font-family: 'Clash Display';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/fonts/ClashDisplay-600.woff2') format('woff2');
}
@font-face {
  font-family: 'Clash Display';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/fonts/ClashDisplay-700.woff2') format('woff2');
}

/* ============================================================================================
 * THE SIGNAL FACES (PlexusX design system, 2026-09-24). Same rule as everything above: served
 * from our own origin, never a font CDN.
 *
 *   Sofia Sans Extra Condensed  display: headlines, prices, the big numbers   (700-900)
 *   Host Grotesk                every word of body text, and the wordmark      (400-700)
 *   Cascadia Mono               codes, hashes, the ruler's scale labels        (400-600)
 *
 * All three are SIL Open Font License 1.1; the licence texts sit beside this file and
 * LICENCES.md says where each came from. latin + latin-ext only: every string on the site is
 * English, and a browser downloads a subset only when the page uses a character from it.
 * Each is a variable font, so one file per subset covers every weight.
 *
 * ?v= on each file because nothing under public/ is content-hashed - a file replaced at the
 * same path would be invisible to a returning visitor's cache.
 * ============================================================================================ */
﻿/* Cascadia Mono, latin-ext: 33896 bytes, weights 400/600 (one variable file) */
@font-face {
  font-family: 'Cascadia Mono';
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url('/fonts/CascadiaMono-latin-ext.woff2?v=20260924') 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;
}
/* Cascadia Mono, latin: 28812 bytes, weights 400/600 (one variable file) */
@font-face {
  font-family: 'Cascadia Mono';
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url('/fonts/CascadiaMono-latin.woff2?v=20260924') 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;
}
/* Host Grotesk, latin-ext: 11828 bytes, weights 400/500/600/700 (one variable file) */
@font-face {
  font-family: 'Host Grotesk';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('/fonts/HostGrotesk-latin-ext.woff2?v=20260924') 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;
}
/* Host Grotesk, latin: 20296 bytes, weights 400/500/600/700 (one variable file) */
@font-face {
  font-family: 'Host Grotesk';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('/fonts/HostGrotesk-latin.woff2?v=20260924') 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;
}
/* Sofia Sans Extra Condensed, latin-ext: 18128 bytes, weights 700/800/900 (one variable file) */
@font-face {
  font-family: 'Sofia Sans Extra Condensed';
  font-style: normal;
  font-weight: 700 900;
  font-display: swap;
  src: url('/fonts/SofiaSansExtraCondensed-latin-ext.woff2?v=20260924') 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;
}
/* Sofia Sans Extra Condensed, latin: 40520 bytes, weights 700/800/900 (one variable file) */
@font-face {
  font-family: 'Sofia Sans Extra Condensed';
  font-style: normal;
  font-weight: 700 900;
  font-display: swap;
  src: url('/fonts/SofiaSansExtraCondensed-latin.woff2?v=20260924') 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;
}
