/*
 * dashboard-fonts.css — self-hosted fonts for the analysis-site multi-theme
 * system (Original / Letterpress / Orchid / Studio / Expedition — see
 * dashboard-tokens.css for the theme definitions).
 *
 * Synced verbatim from the talepal (VS Code extension) repo's
 * assets/templates/overview/assets/css/dashboard-fonts.css, which is the
 * source of truth — same file backs the per-book dashboards generated by
 * `talepal-analyze --step 9`. Only the font url() paths differ: here they
 * point at static/fonts/dashboard/<family>/ (scoped away from this repo's
 * other static/fonts/ directories, which back unrelated pages).
 *
 * NEVER load these from fonts.googleapis.com — DSGVO requires self-hosting.
 * font-display: swap — text shows in the fallback immediately, swaps to
 * the real face when it arrives.
 */

/* ── Lora — Original display ──────────────────────────────────────────── */

@font-face {
  font-family: 'Lora';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/dashboard/lora/lora-400.latin.woff2') format('woff2'),
       url('../fonts/dashboard/lora/lora-400.latin-ext.woff2') format('woff2');
}
@font-face {
  font-family: 'Lora';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/dashboard/lora/lora-500.latin.woff2') format('woff2'),
       url('../fonts/dashboard/lora/lora-500.latin-ext.woff2') format('woff2');
}
@font-face {
  font-family: 'Lora';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/dashboard/lora/lora-400-italic.latin.woff2') format('woff2'),
       url('../fonts/dashboard/lora/lora-400-italic.latin-ext.woff2') format('woff2');
}

/* ── Plus Jakarta Sans — Original body ────────────────────────────────── */

@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/dashboard/jakarta/jakarta-400.latin.woff2') format('woff2'),
       url('../fonts/dashboard/jakarta/jakarta-400.latin-ext.woff2') format('woff2');
}
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/dashboard/jakarta/jakarta-500.latin.woff2') format('woff2'),
       url('../fonts/dashboard/jakarta/jakarta-500.latin-ext.woff2') format('woff2');
}
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('../fonts/dashboard/jakarta/jakarta-600.latin.woff2') format('woff2'),
       url('../fonts/dashboard/jakarta/jakarta-600.latin-ext.woff2') format('woff2');
}

/* ── JetBrains Mono — Original + Orchid mono ──────────────────────────── */

@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/dashboard/jetbrains/jetbrains-400.latin.woff2') format('woff2'),
       url('../fonts/dashboard/jetbrains/jetbrains-400.latin-ext.woff2') format('woff2');
}
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/dashboard/jetbrains/jetbrains-500.latin.woff2') format('woff2'),
       url('../fonts/dashboard/jetbrains/jetbrains-500.latin-ext.woff2') format('woff2');
}

/* ── Fraunces — Letterpress display ───────────────────────────────────── */

@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/dashboard/fraunces/fraunces-500.latin.woff2') format('woff2'),
       url('../fonts/dashboard/fraunces/fraunces-500.latin-ext.woff2') format('woff2');
}
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('../fonts/dashboard/fraunces/fraunces-600.latin.woff2') format('woff2'),
       url('../fonts/dashboard/fraunces/fraunces-600.latin-ext.woff2') format('woff2');
}
@font-face {
  font-family: 'Fraunces';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/dashboard/fraunces/fraunces-500-italic.latin.woff2') format('woff2'),
       url('../fonts/dashboard/fraunces/fraunces-500-italic.latin-ext.woff2') format('woff2');
}

/* ── Public Sans — Letterpress body ───────────────────────────────────── */

@font-face {
  font-family: 'Public Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/dashboard/public-sans/public-sans-400.latin.woff2') format('woff2'),
       url('../fonts/dashboard/public-sans/public-sans-400.latin-ext.woff2') format('woff2');
}
@font-face {
  font-family: 'Public Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/dashboard/public-sans/public-sans-500.latin.woff2') format('woff2'),
       url('../fonts/dashboard/public-sans/public-sans-500.latin-ext.woff2') format('woff2');
}
@font-face {
  font-family: 'Public Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('../fonts/dashboard/public-sans/public-sans-600.latin.woff2') format('woff2'),
       url('../fonts/dashboard/public-sans/public-sans-600.latin-ext.woff2') format('woff2');
}

/* ── Space Mono — Letterpress mono ────────────────────────────────────── */

@font-face {
  font-family: 'Space Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/dashboard/space-mono/space-mono-400.latin.woff2') format('woff2'),
       url('../fonts/dashboard/space-mono/space-mono-400.latin-ext.woff2') format('woff2');
}
@font-face {
  font-family: 'Space Mono';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('../fonts/dashboard/space-mono/space-mono-700.latin.woff2') format('woff2'),
       url('../fonts/dashboard/space-mono/space-mono-700.latin-ext.woff2') format('woff2');
}

/* ── Bricolage Grotesque — Orchid display ─────────────────────────────── */

@font-face {
  font-family: 'Bricolage Grotesque';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/dashboard/bricolage-grotesque/bricolage-grotesque-500.latin.woff2') format('woff2'),
       url('../fonts/dashboard/bricolage-grotesque/bricolage-grotesque-500.latin-ext.woff2') format('woff2');
}
@font-face {
  font-family: 'Bricolage Grotesque';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('../fonts/dashboard/bricolage-grotesque/bricolage-grotesque-700.latin.woff2') format('woff2'),
       url('../fonts/dashboard/bricolage-grotesque/bricolage-grotesque-700.latin-ext.woff2') format('woff2');
}

/* ── Inter — Orchid body ──────────────────────────────────────────────── */

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/dashboard/inter/inter-400.latin.woff2') format('woff2'),
       url('../fonts/dashboard/inter/inter-400.latin-ext.woff2') format('woff2');
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/dashboard/inter/inter-500.latin.woff2') format('woff2'),
       url('../fonts/dashboard/inter/inter-500.latin-ext.woff2') format('woff2');
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('../fonts/dashboard/inter/inter-600.latin.woff2') format('woff2'),
       url('../fonts/dashboard/inter/inter-600.latin-ext.woff2') format('woff2');
}

/* ── Unbounded — Studio display ───────────────────────────────────────── */

@font-face {
  font-family: 'Unbounded';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/dashboard/unbounded/unbounded-500.latin.woff2') format('woff2'),
       url('../fonts/dashboard/unbounded/unbounded-500.latin-ext.woff2') format('woff2');
}
@font-face {
  font-family: 'Unbounded';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('../fonts/dashboard/unbounded/unbounded-700.latin.woff2') format('woff2'),
       url('../fonts/dashboard/unbounded/unbounded-700.latin-ext.woff2') format('woff2');
}
@font-face {
  font-family: 'Unbounded';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url('../fonts/dashboard/unbounded/unbounded-900.latin.woff2') format('woff2'),
       url('../fonts/dashboard/unbounded/unbounded-900.latin-ext.woff2') format('woff2');
}

/* ── Archivo — Studio body ────────────────────────────────────────────── */

@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/dashboard/archivo/archivo-400.latin.woff2') format('woff2'),
       url('../fonts/dashboard/archivo/archivo-400.latin-ext.woff2') format('woff2');
}
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/dashboard/archivo/archivo-500.latin.woff2') format('woff2'),
       url('../fonts/dashboard/archivo/archivo-500.latin-ext.woff2') format('woff2');
}
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('../fonts/dashboard/archivo/archivo-600.latin.woff2') format('woff2'),
       url('../fonts/dashboard/archivo/archivo-600.latin-ext.woff2') format('woff2');
}

/* ── IBM Plex Mono — Studio mono ──────────────────────────────────────── */

@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/dashboard/ibm-plex-mono/ibm-plex-mono-400.latin.woff2') format('woff2'),
       url('../fonts/dashboard/ibm-plex-mono/ibm-plex-mono-400.latin-ext.woff2') format('woff2');
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/dashboard/ibm-plex-mono/ibm-plex-mono-500.latin.woff2') format('woff2'),
       url('../fonts/dashboard/ibm-plex-mono/ibm-plex-mono-500.latin-ext.woff2') format('woff2');
}

/* ── Domine — Expedition display ──────────────────────────────────────── */

@font-face {
  font-family: 'Domine';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/dashboard/domine/domine-500.latin.woff2') format('woff2'),
       url('../fonts/dashboard/domine/domine-500.latin-ext.woff2') format('woff2');
}
@font-face {
  font-family: 'Domine';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('../fonts/dashboard/domine/domine-700.latin.woff2') format('woff2'),
       url('../fonts/dashboard/domine/domine-700.latin-ext.woff2') format('woff2');
}

/* ── Karla — Expedition body ──────────────────────────────────────────── */

@font-face {
  font-family: 'Karla';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/dashboard/karla/karla-400.latin.woff2') format('woff2'),
       url('../fonts/dashboard/karla/karla-400.latin-ext.woff2') format('woff2');
}
@font-face {
  font-family: 'Karla';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/dashboard/karla/karla-500.latin.woff2') format('woff2'),
       url('../fonts/dashboard/karla/karla-500.latin-ext.woff2') format('woff2');
}
@font-face {
  font-family: 'Karla';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('../fonts/dashboard/karla/karla-600.latin.woff2') format('woff2'),
       url('../fonts/dashboard/karla/karla-600.latin-ext.woff2') format('woff2');
}

/* ── Courier Prime — Expedition mono ──────────────────────────────────── */

@font-face {
  font-family: 'Courier Prime';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/dashboard/courier-prime/courier-prime-400.latin.woff2') format('woff2'),
       url('../fonts/dashboard/courier-prime/courier-prime-400.latin-ext.woff2') format('woff2');
}
@font-face {
  font-family: 'Courier Prime';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('../fonts/dashboard/courier-prime/courier-prime-700.latin.woff2') format('woff2'),
       url('../fonts/dashboard/courier-prime/courier-prime-700.latin-ext.woff2') format('woff2');
}
