/* =============================================================================
 * fonts.css — self-hosted Google fonts (latin subset), first-party.
 * -----------------------------------------------------------------------------
 * Downloaded as static per-weight instances (public/fonts/*.woff2, 204KB
 * total). Replaces the third-party fonts.googleapis.com stylesheet +
 * fonts.gstatic.com files: no extra origins, no render-blocking remote CSS,
 * and the files ride the page's own HTTP/2 connection with preload priority.
 * display=swap + the metric-tuned Arial fallbacks declared in root.tsx make
 * the swap geometrically invisible (zero CLS).
 * ========================================================================== */

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/inter-400.woff2') format('woff2');
  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: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/fonts/inter-500.woff2') format('woff2');
  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: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/fonts/inter-600.woff2') format('woff2');
  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: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/fonts/inter-700.woff2') format('woff2');
  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: 'Inter';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url('/fonts/inter-800.woff2') format('woff2');
  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: 'Archivo';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/archivo-400.woff2') format('woff2');
  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: 'Archivo';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/fonts/archivo-700.woff2') format('woff2');
  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: 'Archivo';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url('/fonts/archivo-800.woff2') format('woff2');
  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: 'Anton';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/anton-400.woff2') format('woff2');
  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: 'Oswald';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/fonts/oswald-500.woff2') format('woff2');
  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: 'Oswald';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/fonts/oswald-700.woff2') format('woff2');
  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;
}

/* ---- Decal display fonts (dafont.com, commercial-safe licenses verified
   2026-09-14: USN Stencil / Tenada / Exmouth / Verve / Anchor Jack /
   FT Anchor Yard 100% Free; Evil Empire public domain). TTF/OTF as shipped
   by their designers; loaded on demand when the preview uses them. ---- */
@font-face{font-family:'USN Stencil';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/usn-stencil.ttf') format('truetype');}
@font-face{font-family:'Tenada';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/tenada.ttf') format('truetype');}
@font-face{font-family:'Verve';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/verve.ttf') format('truetype');}
@font-face{font-family:'Anchor Jack';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/anchor-jack.ttf') format('truetype');}
@font-face{font-family:'Evil Empire';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/evil-empire.otf') format('opentype');}

/* ---- Font-library picks (2026-09-19, dafont, commercial-safe) ---- */
@font-face{font-family:'Henry Morgan Hand';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/HenryMorganHand.ttf') format('truetype');}
@font-face{font-family:'New Stencil tfb';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/new-stencil-tfb.ttf') format('truetype');}
@font-face{font-family:'AG Stencil';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/ag-stencil.ttf') format('truetype');}
@font-face{font-family:'Old Stamper';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/old-stamper.ttf') format('truetype');}
@font-face{font-family:'GrafBold';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/graf.ttf') format('truetype');}
@font-face{font-family:'OldConstructedCaps';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/old-constructed-caps.ttf') format('truetype');}
@font-face{font-family:'Square Sans Serif 7';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/square-sans-serif-7.ttf') format('truetype');}
@font-face{font-family:'GridConcreteDue';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/grid-concrete.ttf') format('truetype');}
@font-face{font-family:'KL1MonoCase';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/kl1monocase.ttf') format('truetype');}
@font-face{font-family:'Art Nouveau Caps';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/art-nouveau-caps.otf') format('opentype');}
@font-face{font-family:'Ghastly Panic';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/ghastly-panic.ttf') format('truetype');}

/* ---- User uploads (2026-09-19) - shipped at owner decision; commercial licenses to be purchased (see Desktop FONT-LICENSES) ---- */
@font-face{font-family:'Pink Blue';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/Pink-Blue.ttf') format('truetype');}
@font-face{font-family:'Ultra Fresh';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/Ultra-Fresh-Demo.ttf') format('truetype');}
@font-face{font-family:'The Rules of the Game';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/The-Rules-of-the-Game.ttf') format('truetype');}
@font-face{font-family:'Break Brush';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/Break-Brush.ttf') format('truetype');}
@font-face{font-family:'BadAbBo';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/BADABB__.TTF') format('truetype');}
@font-face{font-family:'Racing in the Rain';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/Racing-in-the-Rain.ttf') format('truetype');}
@font-face{font-family:'Supersonic Rocketship';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/Supersonic-Rocketship.ttf') format('truetype');}
@font-face{font-family:'Another Danger';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/Another-Danger-Demo.otf') format('opentype');}
@font-face{font-family:'Barge-Black';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/Barge-Black.otf') format('opentype');}
@font-face{font-family:'ShorebreakScript';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/ShorebreakScript_PERSONAL_USE_ONLY.otf') format('opentype');}
@font-face{font-family:'Sorean';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/Sorean-Bold.otf') format('opentype');}
@font-face{font-family:'Milesdane';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/Milesdane-Trial.otf') format('opentype');}
@font-face{font-family:'Muthiara';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/Muthiara-demo-version.otf') format('opentype');}
@font-face{font-family:'Coolvetica';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/Coolvetica-Rg.otf') format('opentype');}
