/* ==========================================================================
   EventGo Australia — Self-hosted web fonts
   --------------------------------------------------------------------------
   Archivo + Inter: two variable fonts, latin subset, woff2 only, 83KB for
   the site's original typographic system — still every inner route, the
   Route Pass loader and Footer V2. The homepage type system (Bricolage
   Grotesque + Manrope, 61KB) is declared at the end of this file.

   Self-hosted rather than linked from Google Fonts:
     · one fewer third-party connection on the critical path
     · no render-blocking round trip to a domain we do not control
     · no question about sending Australian visitors' IP addresses offshore
       under the Privacy Act 1988

   Google originally serves these as a variable file per family and then
   declares it seven times, once per weight. Declaring the axis range once
   is the same rendering for one seventh of the bytes.

   font-display:swap — text is readable immediately in the fallback face and
   reflows once when the real face arrives. Never invisible.
   ========================================================================== */

@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 100 900;          /* variable axis, not seven static cuts */
  font-display: swap;
  src: url('../fonts/archivo-var.woff2') format('woff2-variations'),
       url('../fonts/archivo-var.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: 'Inter';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('../fonts/inter-var.woff2') format('woff2-variations'),
       url('../fonts/inter-var.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;
}

/* ==========================================================================
   The homepage type system — Bricolage Grotesque + Manrope
   --------------------------------------------------------------------------
   Chosen on 2026-09-23 from three systems set side by side in real product
   context (Figma 09 · Typography A / B / C; docs/homepage-review/T1-T5).
   Scoped: the homepage, the header and /login/ + /signup/ use them. Every
   other route, the Route Pass and Footer V2 keep Archivo + Inter above, and
   an @font-face that no rendered text asks for is never downloaded — so
   declaring them here costs the other routes nothing.

   BOTH ARE SIL OPEN FONT LICENSE 1.1, from Google Fonts, self-hosted — see
   assets/fonts/README.md for the source, the licence and exactly how each
   file was cut.

   Bricolage Grotesque is INSTANCED, not merely subset: the Google file
   carries three axes (optical size 12-96, width 75-100, weight 200-800) and
   weighs 131.5KB. The headline only ever needs the display optical size,
   full width and 600-800, which is 37.3KB. The width axis was tested for
   narrower phone headlines and dropped: 30KB for something intentional
   line breaks already do.
   ========================================================================== */

@font-face {
  font-family: 'Bricolage Grotesque';
  font-style: normal;
  font-weight: 600 800;
  font-display: swap;
  src: url('../fonts/bricolage-grotesque-var.woff2') format('woff2-variations'),
       url('../fonts/bricolage-grotesque-var.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: 'Manrope';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('../fonts/manrope-var.woff2') format('woff2-variations'),
       url('../fonts/manrope-var.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;
}

/* ---- Metric-matched fallbacks ----------------------------------------------
   While a web font is in flight, swap shows the fallback — and a fallback
   of a different width reflows every line when the real face lands. These
   faces are the system Arial scaled to the web font's average advance and
   vertical metrics (measured with fontTools against an English sample, the
   same method next/font and Capsize use), so the swap changes the letter
   shapes and not the line breaks. Bold and regular are declared separately
   because a single local face stretched across a weight range would be
   rendered at its own weight, not synthesised.

   local() only: nothing is downloaded. Where Arial is absent (most Android)
   the stack falls through to the platform font, unadjusted. */
@font-face {
  font-family: 'Bricolage Grotesque Fallback';
  src: local('Arial Bold'), local('Arial-BoldMT'), local('Liberation Sans Bold'), local('LiberationSans-Bold');
  font-weight: 600 900;
  size-adjust: 93.3%; ascent-override: 99.7%; descent-override: 28.9%; line-gap-override: 0%;
}
@font-face {
  font-family: 'Manrope Fallback';
  src: local('Arial'), local('ArialMT'), local('Liberation Sans'), local('LiberationSans');
  font-weight: 400 500;
  size-adjust: 103.3%; ascent-override: 103.2%; descent-override: 29%; line-gap-override: 0%;
}
@font-face {
  font-family: 'Manrope Fallback';
  src: local('Arial Bold'), local('Arial-BoldMT'), local('Liberation Sans Bold'), local('LiberationSans-Bold');
  font-weight: 600 800;
  size-adjust: 99.5%; ascent-override: 107.1%; descent-override: 30.1%; line-gap-override: 0%;
}
