/* ============================================================
   Vinner Labs — Webfonts (self-hosted, licensed brand faces)

   PRESENTATIONS / on-brand UI / DOCUMENTS  → Avenir Next
     · Demi-Bold (600) or Regular (400) for headings & subheadings,
       with letter-tracking ON
     · Light (mapped to 300) for body text

   Chemical / scientific register is Newsreader — a refined serif that
   gives INCI / CAS / EC identifiers and descriptors an editorial,
   lab-catalogue voice.

   Helvetica Neue was removed from this system (2026-08-12). It was
   declared but never used as a deliberate face — it only ever loaded
   because Avenir Next lacks glyphs such as ⟶ ▼ ⌘, so the browser fell
   through to it and pulled 187 KB per page to draw a handful of arrows.
   The fallback chain now ends in the system UI stack, which carries
   those glyphs at zero cost. The font files were deleted with it.
   ============================================================ */

/* Served as woff2 — the .ttf masters stay in assets/fonts/ as the licensed
   originals but are never fetched by a browser. woff2 is ~77% smaller and is
   supported everywhere we care about; anything older falls back to the system
   stack already declared in --font-display / --font-body. */

/* ---- Avenir Next ---- */
@font-face {
  font-family: 'Avenir Next';
  src: url('../assets/fonts/AvenirNext-UltraLight.woff2') format('woff2');
  font-weight: 300; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'Avenir Next';
  src: url('../assets/fonts/AvenirNext-Regular.woff2') format('woff2');
  font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'Avenir Next';
  src: url('../assets/fonts/AvenirNext-Medium.woff2') format('woff2');
  font-weight: 500; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'Avenir Next';
  src: url('../assets/fonts/AvenirNext-DemiBold.woff2') format('woff2');
  font-weight: 600; font-style: normal; font-display: swap;
}

/* ---- Chemical / scientific serif ----
   Self-hosted (was a Google Fonts @import — a third-party request, and an
   @import nested inside an @import-ed sheet, which is the slowest way a
   browser can discover a font).

   Variable on two axes. `wght` is clamped to the 400-600 the site actually
   uses — Google ships 200-800, and dropping the unused ends saves ~31%.
   `opsz` is kept whole and deliberately: Newsreader is set from 14px to 81px
   here, so optical sizing is doing real work at both ends. Browsers apply it
   automatically from font-size (font-optical-sizing defaults to auto).

   Split latin / latin-ext on Google's own unicode-range boundaries, so a
   typical page fetches only the latin pair (~190 KB) and pulls latin-ext
   solely if an accented glyph appears. */
@font-face {
  font-family: 'Newsreader';
  src: url('../assets/fonts/Newsreader-Roman-latin.woff2') format('woff2');
  font-weight: 400 600; font-style: normal; font-display: swap;
  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: 'Newsreader';
  src: url('../assets/fonts/Newsreader-Roman-latin-ext.woff2') format('woff2');
  font-weight: 400 600; font-style: normal; font-display: swap;
  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: 'Newsreader';
  src: url('../assets/fonts/Newsreader-Italic-latin.woff2') format('woff2');
  font-weight: 400 600; font-style: italic; font-display: swap;
  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: 'Newsreader';
  src: url('../assets/fonts/Newsreader-Italic-latin-ext.woff2') format('woff2');
  font-weight: 400 600; font-style: italic; font-display: swap;
  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;
}
