/* ==========================================================================
   FONT KIT — self-hosted, free-for-commercial-use type library
   GENERATED FROM _build/manifest.tsv — do not edit by hand; run _build/generate.sh
   Link once per project:  <link rel="stylesheet" href="/fonts-kit/fonts.css" />
   Adjust the url() base if /fonts lives elsewhere (e.g. under public/).
   ========================================================================== */

/* Clash Display — display · Fontshare (ITF FFL) */
@font-face{font-family:"Clash Display";src:url("./fonts/ClashDisplay-Variable.woff2") format("woff2-variations");font-weight:200 700;font-style:normal;font-display:swap;}

/* Satoshi — grotesque · Fontshare (ITF FFL) */
@font-face{font-family:"Satoshi";src:url("./fonts/Satoshi-Variable.woff2") format("woff2-variations");font-weight:300 900;font-style:normal;font-display:swap;}
@font-face{font-family:"Satoshi";src:url("./fonts/Satoshi-VariableItalic.woff2") format("woff2-variations");font-weight:300 900;font-style:italic;font-display:swap;}

/* General Sans — grotesque · Fontshare (ITF FFL) */
@font-face{font-family:"General Sans";src:url("./fonts/GeneralSans-Variable.woff2") format("woff2-variations");font-weight:200 700;font-style:normal;font-display:swap;}
@font-face{font-family:"General Sans";src:url("./fonts/GeneralSans-VariableItalic.woff2") format("woff2-variations");font-weight:200 700;font-style:italic;font-display:swap;}

/* Geist — grotesque · Vercel (SIL OFL 1.1) */
@font-face{font-family:"Geist";src:url("./fonts/Geist-Variable.woff2") format("woff2-variations");font-weight:100 900;font-style:normal;font-display:swap;}

/* Geist Mono — mono · Vercel (SIL OFL 1.1) */
@font-face{font-family:"Geist Mono";src:url("./fonts/GeistMono-Variable.woff2") format("woff2-variations");font-weight:100 900;font-style:normal;font-display:swap;}

/* Switzer — grotesque · Fontshare (ITF FFL) */
@font-face{font-family:"Switzer";src:url("./fonts/Switzer-Variable.woff2") format("woff2-variations");font-weight:100 900;font-style:normal;font-display:swap;}
@font-face{font-family:"Switzer";src:url("./fonts/Switzer-VariableItalic.woff2") format("woff2-variations");font-weight:100 900;font-style:italic;font-display:swap;}

/* Author — serif-sans · Fontshare (ITF FFL) */
@font-face{font-family:"Author";src:url("./fonts/Author-Variable.woff2") format("woff2-variations");font-weight:100 900;font-style:normal;font-display:swap;}
@font-face{font-family:"Author";src:url("./fonts/Author-VariableItalic.woff2") format("woff2-variations");font-weight:100 900;font-style:italic;font-display:swap;}

/* Cabinet Grotesk — display · Fontshare (ITF FFL) */
@font-face{font-family:"Cabinet Grotesk";src:url("./fonts/CabinetGrotesk-Variable.woff2") format("woff2-variations");font-weight:100 900;font-style:normal;font-display:swap;}

/* Khand — condensed · Fontshare (ITF FFL) */
@font-face{font-family:"Khand";src:url("./fonts/Khand-Variable.woff2") format("woff2-variations");font-weight:100 900;font-style:normal;font-display:swap;}

/* Panchang — display · Fontshare (ITF FFL) */
@font-face{font-family:"Panchang";src:url("./fonts/Panchang-Variable.woff2") format("woff2-variations");font-weight:100 900;font-style:normal;font-display:swap;}

/* Melodrama — display-serif · Fontshare (ITF FFL) */
@font-face{font-family:"Melodrama";src:url("./fonts/Melodrama-Variable.woff2") format("woff2-variations");font-weight:100 900;font-style:normal;font-display:swap;}

/* Chillax — rounded · Fontshare (ITF FFL) */
@font-face{font-family:"Chillax";src:url("./fonts/Chillax-Variable.woff2") format("woff2-variations");font-weight:100 900;font-style:normal;font-display:swap;}

/* Boska — display-serif · Fontshare (ITF FFL) */
@font-face{font-family:"Boska";src:url("./fonts/Boska-Variable.woff2") format("woff2-variations");font-weight:100 900;font-style:normal;font-display:swap;}
@font-face{font-family:"Boska";src:url("./fonts/Boska-VariableItalic.woff2") format("woff2-variations");font-weight:100 900;font-style:italic;font-display:swap;}

/* Sharpie — handwritten · Fontshare (ITF FFL) */
@font-face{font-family:"Sharpie";src:url("./fonts/Sharpie-Variable.woff2") format("woff2-variations");font-weight:100 900;font-style:normal;font-display:swap;}

/* Gambetta — serif · Fontshare (ITF FFL) */
@font-face{font-family:"Gambetta";src:url("./fonts/Gambetta-Variable.woff2") format("woff2-variations");font-weight:100 900;font-style:normal;font-display:swap;}
@font-face{font-family:"Gambetta";src:url("./fonts/Gambetta-VariableItalic.woff2") format("woff2-variations");font-weight:100 900;font-style:italic;font-display:swap;}

/* Erode — serif · Fontshare (ITF FFL) */
@font-face{font-family:"Erode";src:url("./fonts/Erode-Variable.woff2") format("woff2-variations");font-weight:100 900;font-style:normal;font-display:swap;}
@font-face{font-family:"Erode";src:url("./fonts/Erode-VariableItalic.woff2") format("woff2-variations");font-weight:100 900;font-style:italic;font-display:swap;}

/* Pally — rounded · Fontshare (ITF FFL) */
@font-face{font-family:"Pally";src:url("./fonts/Pally-Variable.woff2") format("woff2-variations");font-weight:100 900;font-style:normal;font-display:swap;}

/* Inter — grotesque · Fontsource (SIL OFL 1.1) */
@font-face{font-family:"Inter";src:url("./fonts/Inter-Variable.woff2") format("woff2-variations");font-weight:100 900;font-style:normal;font-display:swap;}

/* Manrope — geometric-sans · Fontsource (SIL OFL 1.1) */
@font-face{font-family:"Manrope";src:url("./fonts/Manrope-Variable.woff2") format("woff2-variations");font-weight:100 900;font-style:normal;font-display:swap;}

/* DM Sans — geometric-sans · Fontsource (SIL OFL 1.1) */
@font-face{font-family:"DM Sans";src:url("./fonts/DmSans-Variable.woff2") format("woff2-variations");font-weight:100 900;font-style:normal;font-display:swap;}

/* Figtree — geometric-sans · Fontsource (SIL OFL 1.1) */
@font-face{font-family:"Figtree";src:url("./fonts/Figtree-Variable.woff2") format("woff2-variations");font-weight:100 900;font-style:normal;font-display:swap;}

/* Plus Jakarta Sans — geometric-sans · Fontsource (SIL OFL 1.1) */
@font-face{font-family:"Plus Jakarta Sans";src:url("./fonts/PlusJakartaSans-Variable.woff2") format("woff2-variations");font-weight:100 900;font-style:normal;font-display:swap;}

/* Archivo — grotesque · Fontsource (SIL OFL 1.1) */
@font-face{font-family:"Archivo";src:url("./fonts/Archivo-Variable.woff2") format("woff2-variations");font-weight:100 900;font-style:normal;font-display:swap;}

/* Libre Franklin — grotesque · Fontsource (SIL OFL 1.1) */
@font-face{font-family:"Libre Franklin";src:url("./fonts/LibreFranklin-Variable.woff2") format("woff2-variations");font-weight:100 900;font-style:normal;font-display:swap;}

/* Hanken Grotesk — grotesque · Fontsource (SIL OFL 1.1) */
@font-face{font-family:"Hanken Grotesk";src:url("./fonts/HankenGrotesk-Variable.woff2") format("woff2-variations");font-weight:100 900;font-style:normal;font-display:swap;}

/* Onest — geometric-sans · Fontsource (SIL OFL 1.1) */
@font-face{font-family:"Onest";src:url("./fonts/Onest-Variable.woff2") format("woff2-variations");font-weight:100 900;font-style:normal;font-display:swap;}

/* Schibsted Grotesk — grotesque · Fontsource (SIL OFL 1.1) */
@font-face{font-family:"Schibsted Grotesk";src:url("./fonts/SchibstedGrotesk-Variable.woff2") format("woff2-variations");font-weight:100 900;font-style:normal;font-display:swap;}

/* Space Grotesk — display · Fontsource (SIL OFL 1.1) */
@font-face{font-family:"Space Grotesk";src:url("./fonts/SpaceGrotesk-Variable.woff2") format("woff2-variations");font-weight:100 900;font-style:normal;font-display:swap;}

/* Sora — geometric-sans · Fontsource (SIL OFL 1.1) */
@font-face{font-family:"Sora";src:url("./fonts/Sora-Variable.woff2") format("woff2-variations");font-weight:100 900;font-style:normal;font-display:swap;}

/* Bricolage Grotesque — display · Fontsource (SIL OFL 1.1) */
@font-face{font-family:"Bricolage Grotesque";src:url("./fonts/BricolageGrotesque-Variable.woff2") format("woff2-variations");font-weight:100 900;font-style:normal;font-display:swap;}

/* Unbounded — display · Fontsource (SIL OFL 1.1) */
@font-face{font-family:"Unbounded";src:url("./fonts/Unbounded-Variable.woff2") format("woff2-variations");font-weight:100 900;font-style:normal;font-display:swap;}

/* Syne — display · Fontsource (SIL OFL 1.1) */
@font-face{font-family:"Syne";src:url("./fonts/Syne-Variable.woff2") format("woff2-variations");font-weight:100 900;font-style:normal;font-display:swap;}

/* Fraunces — serif · Fontsource (SIL OFL 1.1) */
@font-face{font-family:"Fraunces";src:url("./fonts/Fraunces-Variable.woff2") format("woff2-variations");font-weight:100 900;font-style:normal;font-display:swap;}
@font-face{font-family:"Fraunces";src:url("./fonts/Fraunces-VariableItalic.woff2") format("woff2-variations");font-weight:100 900;font-style:italic;font-display:swap;}

/* Newsreader — serif · Fontsource (SIL OFL 1.1) */
@font-face{font-family:"Newsreader";src:url("./fonts/Newsreader-Variable.woff2") format("woff2-variations");font-weight:100 900;font-style:normal;font-display:swap;}
@font-face{font-family:"Newsreader";src:url("./fonts/Newsreader-VariableItalic.woff2") format("woff2-variations");font-weight:100 900;font-style:italic;font-display:swap;}

/* Source Serif 4 — serif · Fontsource (SIL OFL 1.1) */
@font-face{font-family:"Source Serif 4";src:url("./fonts/SourceSerif4-Variable.woff2") format("woff2-variations");font-weight:100 900;font-style:normal;font-display:swap;}

/* Playfair Display — display-serif · Fontsource (SIL OFL 1.1) */
@font-face{font-family:"Playfair Display";src:url("./fonts/PlayfairDisplay-Variable.woff2") format("woff2-variations");font-weight:100 900;font-style:normal;font-display:swap;}
@font-face{font-family:"Playfair Display";src:url("./fonts/PlayfairDisplay-VariableItalic.woff2") format("woff2-variations");font-weight:100 900;font-style:italic;font-display:swap;}

/* Bitter — serif · Fontsource (SIL OFL 1.1) */
@font-face{font-family:"Bitter";src:url("./fonts/Bitter-Variable.woff2") format("woff2-variations");font-weight:100 900;font-style:normal;font-display:swap;}

/* JetBrains Mono — mono · Fontsource (SIL OFL 1.1) */
@font-face{font-family:"JetBrains Mono";src:url("./fonts/JetbrainsMono-Variable.woff2") format("woff2-variations");font-weight:100 900;font-style:normal;font-display:swap;}

/* Fira Code — mono · Fontsource (SIL OFL 1.1) */
@font-face{font-family:"Fira Code";src:url("./fonts/FiraCode-Variable.woff2") format("woff2-variations");font-weight:100 900;font-style:normal;font-display:swap;}

/* Spline Sans Mono — mono · Fontsource (SIL OFL 1.1) */
@font-face{font-family:"Spline Sans Mono";src:url("./fonts/SplineSansMono-Variable.woff2") format("woff2-variations");font-weight:100 900;font-style:normal;font-display:swap;}

/* Sacramento — script · Fontsource (SIL OFL 1.1) */
@font-face{font-family:"Sacramento";src:url("./fonts/Sacramento-Regular.woff2") format("woff2-variations");font-weight:400;font-style:normal;font-display:swap;}

/* Bodoni Moda — display-serif · Fontsource (SIL OFL 1.1) */
@font-face{font-family:"Bodoni Moda";src:url("./fonts/BodoniModa-Variable.woff2") format("woff2-variations");font-weight:400 900;font-style:normal;font-display:swap;}

/* Cormorant — display-serif · Fontsource (SIL OFL 1.1) */
@font-face{font-family:"Cormorant";src:url("./fonts/Cormorant-Variable.woff2") format("woff2-variations");font-weight:300 700;font-style:normal;font-display:swap;}

/* Stardom — display-serif · Fontshare (ITF FFL) */
@font-face{font-family:"Stardom";src:url("./fonts/Stardom-Regular.woff2") format("woff2-variations");font-weight:400;font-style:normal;font-display:swap;}

/* Ms Madi — script · Fontsource (SIL OFL 1.1) */
@font-face{font-family:"Ms Madi";src:url("./fonts/MsMadi-Regular.woff2") format("woff2-variations");font-weight:400;font-style:normal;font-display:swap;}

/* Hurricane — script · Fontsource (SIL OFL 1.1) */
@font-face{font-family:"Hurricane";src:url("./fonts/Hurricane-Regular.woff2") format("woff2-variations");font-weight:400;font-style:normal;font-display:swap;}

/* Allura — script · Fontsource (SIL OFL 1.1) */
@font-face{font-family:"Allura";src:url("./fonts/Allura-Regular.woff2") format("woff2-variations");font-weight:400;font-style:normal;font-display:swap;}

/* Shantell Sans — handwritten · Fontsource (SIL OFL 1.1) */
@font-face{font-family:"Shantell Sans";src:url("./fonts/ShantellSans-Variable.woff2") format("woff2-variations");font-weight:300 800;font-style:normal;font-display:swap;}

/* Kalam — handwritten · Fontsource (SIL OFL 1.1) */
@font-face{font-family:"Kalam";src:url("./fonts/Kalam-Regular.woff2") format("woff2-variations");font-weight:400;font-style:normal;font-display:swap;}

/* Outfit — geometric-sans · Fontsource (SIL OFL 1.1) */
@font-face{font-family:"Outfit";src:url("./fonts/Outfit-Variable.woff2") format("woff2-variations");font-weight:100 900;font-style:normal;font-display:swap;}

/* Epilogue — grotesque · Fontsource (SIL OFL 1.1) */
@font-face{font-family:"Epilogue";src:url("./fonts/Epilogue-Variable.woff2") format("woff2-variations");font-weight:100 900;font-style:normal;font-display:swap;}

/* Lexend — geometric-sans · Fontsource (SIL OFL 1.1) */
@font-face{font-family:"Lexend";src:url("./fonts/Lexend-Variable.woff2") format("woff2-variations");font-weight:100 900;font-style:normal;font-display:swap;}

/* Albert Sans — geometric-sans · Fontsource (SIL OFL 1.1) */
@font-face{font-family:"Albert Sans";src:url("./fonts/AlbertSans-Variable.woff2") format("woff2-variations");font-weight:100 900;font-style:normal;font-display:swap;}

/* Familjen Grotesk — grotesque · Fontsource (SIL OFL 1.1) */
@font-face{font-family:"Familjen Grotesk";src:url("./fonts/FamiljenGrotesk-Variable.woff2") format("woff2-variations");font-weight:100 900;font-style:normal;font-display:swap;}

/* Funnel Display — display · Fontsource (SIL OFL 1.1) */
@font-face{font-family:"Funnel Display";src:url("./fonts/FunnelDisplay-Variable.woff2") format("woff2-variations");font-weight:100 900;font-style:normal;font-display:swap;}

/* Big Shoulders Display — condensed · Fontsource (SIL OFL 1.1) */
@font-face{font-family:"Big Shoulders Display";src:url("./fonts/BigShouldersDisplay-Variable.woff2") format("woff2-variations");font-weight:100 900;font-style:normal;font-display:swap;}

/* Gabarito — rounded · Fontsource (SIL OFL 1.1) */
@font-face{font-family:"Gabarito";src:url("./fonts/Gabarito-Variable.woff2") format("woff2-variations");font-weight:100 900;font-style:normal;font-display:swap;}

/* Vollkorn — serif · Fontsource (SIL OFL 1.1) */
@font-face{font-family:"Vollkorn";src:url("./fonts/Vollkorn-Variable.woff2") format("woff2-variations");font-weight:100 900;font-style:normal;font-display:swap;}

/* Roboto Slab — serif · Fontsource (SIL OFL 1.1) */
@font-face{font-family:"Roboto Slab";src:url("./fonts/RobotoSlab-Variable.woff2") format("woff2-variations");font-weight:100 900;font-style:normal;font-display:swap;}

/* Martian Mono — mono · Fontsource (SIL OFL 1.1) */
@font-face{font-family:"Martian Mono";src:url("./fonts/MartianMono-Variable.woff2") format("woff2-variations");font-weight:100 900;font-style:normal;font-display:swap;}

/* Instrument Serif — display-serif · Fontsource (SIL OFL 1.1) */
@font-face{font-family:"Instrument Serif";src:url("./fonts/InstrumentSerif-Regular.woff2") format("woff2-variations");font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:"Instrument Serif";src:url("./fonts/InstrumentSerif-Italic.woff2") format("woff2-variations");font-weight:400;font-style:italic;font-display:swap;}

/* Hedvig Letters Serif — serif · Fontsource (SIL OFL 1.1) */
@font-face{font-family:"Hedvig Letters Serif";src:url("./fonts/HedvigLettersSerif-Regular.woff2") format("woff2-variations");font-weight:400;font-style:normal;font-display:swap;}

/* ---- Role tokens: reference these for consistency; swap to re-skin -------- */
:root{
  --font-display:"Clash Display","Satoshi",system-ui,sans-serif;
  --font-sans:"Satoshi",system-ui,-apple-system,"Segoe UI",sans-serif;
  --font-alt:"General Sans",system-ui,sans-serif;
  --font-product:"Geist",system-ui,sans-serif;
  --font-serif:"Fraunces",Georgia,serif;
  --font-mono:"Geist Mono",ui-monospace,"SF Mono",Menlo,monospace;
}
body{font-family:var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}
/* Aligned digits for tables / numbers / money. */
.tnum{font-variant-numeric:tabular-nums lining-nums;font-feature-settings:"tnum" 1,"lnum" 1;}

/* ---- Per-font utility classes: .ff-<slug> picks any family directly ------- */
.ff-clash-display{font-family:"Clash Display",sans-serif;}
.ff-satoshi{font-family:"Satoshi",sans-serif;}
.ff-general-sans{font-family:"General Sans",sans-serif;}
.ff-geist{font-family:"Geist",sans-serif;}
.ff-geist-mono{font-family:"Geist Mono",monospace;}
.ff-switzer{font-family:"Switzer",sans-serif;}
.ff-author{font-family:"Author",sans-serif;}
.ff-cabinet-grotesk{font-family:"Cabinet Grotesk",sans-serif;}
.ff-khand{font-family:"Khand",sans-serif;}
.ff-panchang{font-family:"Panchang",sans-serif;}
.ff-melodrama{font-family:"Melodrama",serif;}
.ff-chillax{font-family:"Chillax",sans-serif;}
.ff-boska{font-family:"Boska",serif;}
.ff-sharpie{font-family:"Sharpie",cursive;}
.ff-gambetta{font-family:"Gambetta",serif;}
.ff-erode{font-family:"Erode",serif;}
.ff-pally{font-family:"Pally",sans-serif;}
.ff-inter{font-family:"Inter",sans-serif;}
.ff-manrope{font-family:"Manrope",sans-serif;}
.ff-dm-sans{font-family:"DM Sans",sans-serif;}
.ff-figtree{font-family:"Figtree",sans-serif;}
.ff-plus-jakarta-sans{font-family:"Plus Jakarta Sans",sans-serif;}
.ff-archivo{font-family:"Archivo",sans-serif;}
.ff-libre-franklin{font-family:"Libre Franklin",sans-serif;}
.ff-hanken-grotesk{font-family:"Hanken Grotesk",sans-serif;}
.ff-onest{font-family:"Onest",sans-serif;}
.ff-schibsted-grotesk{font-family:"Schibsted Grotesk",sans-serif;}
.ff-space-grotesk{font-family:"Space Grotesk",sans-serif;}
.ff-sora{font-family:"Sora",sans-serif;}
.ff-bricolage-grotesque{font-family:"Bricolage Grotesque",sans-serif;}
.ff-unbounded{font-family:"Unbounded",sans-serif;}
.ff-syne{font-family:"Syne",sans-serif;}
.ff-fraunces{font-family:"Fraunces",serif;}
.ff-newsreader{font-family:"Newsreader",serif;}
.ff-source-serif-4{font-family:"Source Serif 4",serif;}
.ff-playfair-display{font-family:"Playfair Display",serif;}
.ff-bitter{font-family:"Bitter",serif;}
.ff-jetbrains-mono{font-family:"JetBrains Mono",monospace;}
.ff-fira-code{font-family:"Fira Code",monospace;}
.ff-spline-sans-mono{font-family:"Spline Sans Mono",monospace;}
.ff-sacramento{font-family:"Sacramento",cursive;}
.ff-bodoni-moda{font-family:"Bodoni Moda",serif;}
.ff-cormorant{font-family:"Cormorant",serif;}
.ff-stardom{font-family:"Stardom",serif;}
.ff-ms-madi{font-family:"Ms Madi",cursive;}
.ff-hurricane{font-family:"Hurricane",cursive;}
.ff-allura{font-family:"Allura",cursive;}
.ff-shantell-sans{font-family:"Shantell Sans",cursive;}
.ff-kalam{font-family:"Kalam",cursive;}
.ff-outfit{font-family:"Outfit",sans-serif;}
.ff-epilogue{font-family:"Epilogue",sans-serif;}
.ff-lexend{font-family:"Lexend",sans-serif;}
.ff-albert-sans{font-family:"Albert Sans",sans-serif;}
.ff-familjen-grotesk{font-family:"Familjen Grotesk",sans-serif;}
.ff-funnel-display{font-family:"Funnel Display",sans-serif;}
.ff-big-shoulders-display{font-family:"Big Shoulders Display",sans-serif;}
.ff-gabarito{font-family:"Gabarito",sans-serif;}
.ff-vollkorn{font-family:"Vollkorn",serif;}
.ff-roboto-slab{font-family:"Roboto Slab",serif;}
.ff-martian-mono{font-family:"Martian Mono",monospace;}
.ff-instrument-serif{font-family:"Instrument Serif",serif;}
.ff-hedvig-letters-serif{font-family:"Hedvig Letters Serif",serif;}
