/* VTS Design System — Fonts
   Three-tier brand typography per the VTS Font Guideline:

     FS Magistral        → brand/display only (hero, cover, campaign headings)
     FS PF BeauSans Pro  → UI primary — the default for every component
     Roboto              → mandatory fallback (degraded mode, no-license tenants)
     JetBrains Mono      → code, logs, trace IDs, technical identifiers

   Brand binaries are self-hosted from assets/fonts/ (licensed Viettel assets —
   do NOT redistribute or re-embed outside VTS projects). JetBrains Mono (OFL)
   loads from Google Fonts and degrades to Menlo/Consolas offline.

   Weight mapping follows each font's OS/2 weight class:
     PF BeauSans Pro: Light 300 · Regular 400 · Bbook 500 · SemiBold 600 · Bold 700 · Black 900
     Magistral:       Book 400 · Medium 500 · Bold 700 · ExtraBold 800

   Preload hint (first-paint text): regular 400 + semibold 600 only.
   <link rel="preload" href="assets/fonts/fs-pf-beausans-pro/fs-pf-beausans-pro-regular.otf" as="font" type="font/otf" crossorigin>
   <link rel="preload" href="assets/fonts/fs-pf-beausans-pro/fs-pf-beausans-pro-semibold.otf" as="font" type="font/otf" crossorigin> */

@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600;700&display=swap');

/* ---- FS PF BeauSans Pro — UI primary ---- */
@font-face {
  font-family: 'FS PF BeauSans Pro';
  src: url('../assets/fonts/fs-pf-beausans-pro/fs-pf-beausans-pro-light.otf') format('opentype');
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'FS PF BeauSans Pro';
  src: url('../assets/fonts/fs-pf-beausans-pro/fs-pf-beausans-pro-regular.otf') format('opentype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'FS PF BeauSans Pro';
  src: url('../assets/fonts/fs-pf-beausans-pro/fs-pf-beausans-pro-italic.otf') format('opentype');
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: 'FS PF BeauSans Pro';
  src: url('../assets/fonts/fs-pf-beausans-pro/fs-pf-beausans-pro-bbook.otf') format('opentype');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'FS PF BeauSans Pro';
  src: url('../assets/fonts/fs-pf-beausans-pro/fs-pf-beausans-pro-bbook-italic.otf') format('opentype');
  font-weight: 500;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: 'FS PF BeauSans Pro';
  src: url('../assets/fonts/fs-pf-beausans-pro/fs-pf-beausans-pro-semibold.otf') format('opentype');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'FS PF BeauSans Pro';
  src: url('../assets/fonts/fs-pf-beausans-pro/fs-pf-beausans-pro-bold.otf') format('opentype');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'FS PF BeauSans Pro';
  src: url('../assets/fonts/fs-pf-beausans-pro/fs-pf-beausans-pro-bold-italic.otf') format('opentype');
  font-weight: 700;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: 'FS PF BeauSans Pro';
  src: url('../assets/fonts/fs-pf-beausans-pro/fs-pf-beausans-pro-black.otf') format('opentype');
  font-weight: 900;
  font-style: normal;
  font-display: swap;
}

/* ---- FS Magistral — brand display (controlled use, ≥18px, short headlines) ---- */
@font-face {
  font-family: 'FS Magistral';
  src: url('../assets/fonts/fs-magistral/fs-magistral-book.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'FS Magistral';
  src: url('../assets/fonts/fs-magistral/fs-magistral-medium.ttf') format('truetype');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'FS Magistral';
  src: url('../assets/fonts/fs-magistral/fs-magistral-bold.ttf') format('truetype');
  font-weight: 600 700; /* no SemiBold cut — 600 resolves to Bold */
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'FS Magistral';
  src: url('../assets/fonts/fs-magistral/fs-magistral-extrabold.ttf') format('truetype');
  font-weight: 800 900;
  font-style: normal;
  font-display: swap;
}

/* ---- Roboto — mandatory fallback tier ---- */
@font-face {
  font-family: 'Roboto';
  src: url('../assets/fonts/roboto/roboto-regular.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Roboto';
  src: url('../assets/fonts/roboto/roboto-italic.ttf') format('truetype');
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: 'Roboto';
  src: url('../assets/fonts/roboto/roboto-medium.ttf') format('truetype');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Roboto';
  src: url('../assets/fonts/roboto/roboto-bold.ttf') format('truetype');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
