/* ==========================================================================
   BNSCA typography — Cinzel (headings) and Montserrat (body, forms, buttons).

   Self-hosted rather than loaded from Google Fonts. The reference project
   linked to fonts.googleapis.com; this site has deliberately had no CDN
   dependency since the Three.js bundle was vendored, and a font request to a
   third party is also a request that carries every visitor's IP address to
   one. The files below are the same woff2 subsets Google serves, kept to
   latin and latin-ext — the site's text is English and Latin-transliterated
   Bengali, so the cyrillic and vietnamese subsets would have tripled the
   bytes for glyphs no page contains.

   Both files are *variable* fonts: one file carries the whole weight axis.
   That is why each face is declared with a weight **range** rather than a
   single number. Google's own stylesheet names one weight per @font-face
   because it lists each weight you asked for separately, and copying that
   shape verbatim would have been a quiet bug — every Montserrat weight would
   have pointed at the same file pinned to its default instance, so 400 and
   800 would have rendered identically, and Cinzel 900 would have come out at
   700. The range is what lets the browser interpolate the axis.

   font-display: swap: the page renders in the fallback immediately and
   re-renders when the face arrives, rather than holding a blank heading while
   a file downloads.

   Downloaded once and committed. There is no build step to re-run.
   ========================================================================== */

/* ---------- Cinzel — headings only. Axis 400-900; the site uses 700/900. --- */

@font-face {
  font-family: 'Cinzel';
  font-style: normal;
  font-weight: 400 900;
  font-display: swap;
  src: url(/fonts/cinzel-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: 'Cinzel';
  font-style: normal;
  font-weight: 400 900;
  font-display: swap;
  src: url(/fonts/cinzel-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;
}

/* ---------- Montserrat — body, labels, forms, buttons. Axis 100-900. ------- */

@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url(/fonts/montserrat-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: 'Montserrat';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url(/fonts/montserrat-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;
}
