/* ============================================================
   Majestic Font  ·  Russia Online
   ------------------------------------------------------------
   Majestic Font   — wide cut,   400/500/600/700 + variable
   Russia Online   — narrow cut, 400/500/600/700/800

   Both families always render: every weight has its own file,
   and each stack falls back to a metric-matched system face
   while the woff2 loads, so the layout never jumps.
   ============================================================ */

/* ---------- Majestic Font ---------------------------------- */
@font-face {
  font-family: 'Majestic Font';
  src: url('./MajesticFont-Regular.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Majestic Font';
  src: url('./MajesticFont-Medium.woff2') format('woff2');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Majestic Font';
  src: url('./MajesticFont-Semibold.woff2') format('woff2');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Majestic Font';
  src: url('./MajesticFont-Bold.woff2') format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

/* Variable cut — any weight 100–900, any width 50–100%.
   Use when you need a value the static files do not cover.    */
@font-face {
  font-family: 'Majestic Variable';
  src: url('./MajesticFont-Variable.woff2') format('woff2-variations'),
       url('./MajesticFont-Variable.woff2') format('woff2');
  font-weight: 100 900;
  font-stretch: 50% 100%;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Majestic Variable';
  src: url('./MajesticFont-Variable.woff2') format('woff2-variations'),
       url('./MajesticFont-Variable.woff2') format('woff2');
  font-weight: 100 900;
  font-stretch: 50% 100%;
  font-style: italic;
  font-variation-settings: 'ital' 125;
  font-display: swap;
}

/* ---------- Russia Online ---------------------------------- */
@font-face {
  font-family: 'Russia Online';
  src: url('./RussiaOnline-Regular.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Russia Online';
  src: url('./RussiaOnline-Medium.woff2') format('woff2');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Russia Online';
  src: url('./RussiaOnline-Semibold.woff2') format('woff2');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Russia Online';
  src: url('./RussiaOnline-Bold.woff2') format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Russia Online';
  src: url('./RussiaOnline-Extrabold.woff2') format('woff2');
  font-weight: 800;
  font-style: normal;
  font-display: swap;
}

/* ---------- Metric-matched fallbacks ----------------------- */
@font-face {
  font-family: 'Majestic Fallback';
  src: local('Segoe UI'), local('Helvetica Neue'), local('Arial');
  size-adjust: 96%;
  ascent-override: 92%;
  descent-override: 24%;
  line-gap-override: 0%;
}
@font-face {
  font-family: 'Russia Fallback';
  src: local('Roboto Condensed'), local('Arial Narrow'), local('Segoe UI'), local('Arial');
  size-adjust: 92%;
  ascent-override: 92%;
  descent-override: 24%;
  line-gap-override: 0%;
}

/* ---------- Tokens ----------------------------------------- */
:root {
  --font-brand: 'Majestic Font', 'Majestic Fallback', system-ui, sans-serif;
  --font-sans:  'Russia Online', 'Russia Fallback', 'Roboto Condensed', system-ui, sans-serif;
  --font-var:   'Majestic Variable', 'Majestic Font', 'Majestic Fallback', system-ui, sans-serif;
  --font-mono:  ui-monospace, 'SF Mono', 'Cascadia Mono', Consolas, monospace;
}

/* Optional helpers */
.font-brand { font-family: var(--font-brand); }
.font-sans  { font-family: var(--font-sans); }
.font-var   { font-family: var(--font-var); }
