/* ==========================================================================
   Font Face Declarations
   Host on R2: https://pub-fcbbab5560e3458ab6457860f8b1b512.r2.dev/fonts/fonts.css
   ========================================================================== 

   FONT NAMING CONVENTION
   ======================
   This app uses a "separate family per weight" convention where each font 
   weight is declared as its own font-family name.
   
   Format: {family-name}-{weight}
   Examples:
     - 'almarai-light'      (weight 300)
     - 'almarai-regular'    (weight 400)
     - 'almarai-bold'       (weight 700)
     - 'almarai-extrabold'  (weight 800)
   
   WHY THIS CONVENTION?
   - Users select fonts like "Almarai ExtraBold" as a single choice in the UI
   - Simpler app code: only font-family needs to be set, not font-weight
   - applyFonts.js sets element.style.fontFamily = 'almarai-extrabold'
   
   ADDING A NEW FONT FAMILY
   ========================
   1. Upload font files to R2: mosaic/fonts/{family-name}/
   2. For EACH weight variant, add a @font-face block AND a helper class:
   
      @font-face {
        font-family: '{family-name}-{weight}';
        src: url('https://pub-fcbbab5560e3458ab6457860f8b1b512.r2.dev/fonts/{family-name}/{FileName}.ttf') format('truetype');
        font-weight: {numeric-weight};
        font-style: normal;
        font-display: swap;
      }
      .{family-name}-{weight} {
        font-family: '{family-name}-{weight}', sans-serif;
      }
   
   3. Upload this file to R2: mosaic/fonts/fonts.css
   4. Add font to Convex database so it appears in the font picker
   
   WEIGHT REFERENCE
   ================
   100 = Thin/Hairline
   200 = Extra Light
   300 = Light
   400 = Regular/Normal
   500 = Medium
   600 = Semi Bold
   700 = Bold
   800 = Extra Bold
   900 = Black/Heavy

   ========================================================================== */

/* Hauora */
@font-face {
  font-family: 'hauora';
  src: url('https://pub-fcbbab5560e3458ab6457860f8b1b512.r2.dev/fonts/hauora/Hauora-Regular.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
.hauora {
  font-family: 'hauora', sans-serif;
}

/* Junicode */
@font-face {
  font-family: 'junicode';
  src: url('https://pub-fcbbab5560e3458ab6457860f8b1b512.r2.dev/fonts/junicode/Junicode.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
.junicode {
  font-family: 'junicode', serif;
}

/* Hoover Web */
@font-face {
  font-family: 'hoover-web';
  src: url('https://pub-fcbbab5560e3458ab6457860f8b1b512.r2.dev/fonts/hoover-web/Hoover-Regular.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
.hoover-web {
  font-family: 'hoover-web', sans-serif;
  text-transform: uppercase;
}

/* Styro (variable) */
@font-face {
  font-family: 'styro';
  src: url('https://pub-fcbbab5560e3458ab6457860f8b1b512.r2.dev/fonts/styro/Styro-Variable.woff2') format('woff2-variations');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
.styro {
  font-family: 'styro', sans-serif;
  text-transform: uppercase;
  letter-spacing: 0.01em;
}

/* Gap Sans */
@font-face {
  font-family: 'gap-sans';
  src: url('https://pub-fcbbab5560e3458ab6457860f8b1b512.r2.dev/fonts/gap-sans/GapSansBold.ttf') format('truetype');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
.gap-sans {
  font-family: 'gap-sans', sans-serif;
  text-transform: uppercase;
}

/* Delight */
@font-face {
  font-family: 'delight';
  src: url('https://pub-fcbbab5560e3458ab6457860f8b1b512.r2.dev/fonts/delight/Delight-Regular.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
.delight {
  font-family: 'delight', sans-serif;
}

/* Geist Mono (variable) */
@font-face {
  font-family: 'geist-mono';
  src: url('https://pub-fcbbab5560e3458ab6457860f8b1b512.r2.dev/fonts/geist-mono/GeistMono%5Bwght%5D.woff2') format('woff2');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
.geist-mono {
  font-family: 'geist-mono', monospace;
  text-transform: uppercase;
}

/* Switzer (variable) */
@font-face {
  font-family: 'switzer';
  src: url('https://pub-fcbbab5560e3458ab6457860f8b1b512.r2.dev/fonts/switzer/Switzer-Variable.woff2') format('woff2-variations');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
.switzer {
  font-family: 'switzer', sans-serif;
}

/* Free Sans */
@font-face {
  font-family: 'free-sans';
  src: url('https://pub-fcbbab5560e3458ab6457860f8b1b512.r2.dev/fonts/free-sans/FreeSans.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
.free-sans {
  font-family: 'free-sans', sans-serif;
}

/* Gambarino */
@font-face {
  font-family: 'gambarino';
  src: url('https://pub-fcbbab5560e3458ab6457860f8b1b512.r2.dev/fonts/gambarino/Gambarino-Regular.otf') format('opentype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
.gambarino {
  font-family: 'gambarino', serif;
}

/* Geist (variable) */
@font-face {
  font-family: 'geist';
  src: url('https://pub-fcbbab5560e3458ab6457860f8b1b512.r2.dev/fonts/geist/Geist[wght].woff2') format('woff2-variations');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
.geist {
  font-family: 'geist', sans-serif;
}

/* TASA Orbiter (variable) */
@font-face {
  font-family: 'tasa-orbiter';
  src: url('https://pub-fcbbab5560e3458ab6457860f8b1b512.r2.dev/fonts/tasa-orbiter/TASAOrbiterVF.woff2') format('woff2-variations');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
.tasa-orbiter {
  font-family: 'tasa-orbiter', sans-serif;
}

/* TASA Explorer (variable) */
@font-face {
  font-family: 'tasa-explorer';
  src: url('https://pub-fcbbab5560e3458ab6457860f8b1b512.r2.dev/fonts/tasa-explorer/TASAExplorerVF.woff2') format('woff2-variations');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
.tasa-explorer {
  font-family: 'tasa-explorer', sans-serif;
}

/* ==========================================================================
   Almarai - each weight as separate family (matches app's naming convention)
   ========================================================================== */

@font-face {
  font-family: 'almarai-light';
  src: url('https://pub-fcbbab5560e3458ab6457860f8b1b512.r2.dev/fonts/almarai/Almarai-Light.ttf') format('truetype');
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}
.almarai-light {
  font-family: 'almarai-light', sans-serif;
}

@font-face {
  font-family: 'almarai-regular';
  src: url('https://pub-fcbbab5560e3458ab6457860f8b1b512.r2.dev/fonts/almarai/Almarai-Regular.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
.almarai-regular {
  font-family: 'almarai-regular', sans-serif;
}

@font-face {
  font-family: 'almarai-bold';
  src: url('https://pub-fcbbab5560e3458ab6457860f8b1b512.r2.dev/fonts/almarai/Almarai-Bold.ttf') format('truetype');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
.almarai-bold {
  font-family: 'almarai-bold', sans-serif;
}

@font-face {
  font-family: 'almarai-extrabold';
  src: url('https://pub-fcbbab5560e3458ab6457860f8b1b512.r2.dev/fonts/almarai/Almarai-ExtraBold.ttf') format('truetype');
  font-weight: 800;
  font-style: normal;
  font-display: swap;
}
.almarai-extrabold {
  font-family: 'almarai-extrabold', sans-serif;
}

/* ==========================================================================
   Aileron - each weight as separate family
   ========================================================================== */

/* Generic family name so font-family: aileron works (e.g. from applyFonts) */
@font-face {
  font-family: 'aileron';
  src: url('https://pub-fcbbab5560e3458ab6457860f8b1b512.r2.dev/fonts/aileron/Aileron-Regular.otf') format('opentype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
.aileron {
  font-family: 'aileron', sans-serif;
}

@font-face {
  font-family: 'aileron-thin';
  src: url('https://pub-fcbbab5560e3458ab6457860f8b1b512.r2.dev/fonts/aileron/Aileron-Thin.otf') format('opentype');
  font-weight: 100;
  font-style: normal;
  font-display: swap;
}
.aileron-thin {
  font-family: 'aileron-thin', sans-serif;
}

@font-face {
  font-family: 'aileron-ultralight';
  src: url('https://pub-fcbbab5560e3458ab6457860f8b1b512.r2.dev/fonts/aileron/Aileron-UltraLight.otf') format('opentype');
  font-weight: 200;
  font-style: normal;
  font-display: swap;
}
.aileron-ultralight {
  font-family: 'aileron-ultralight', sans-serif;
}

@font-face {
  font-family: 'aileron-light';
  src: url('https://pub-fcbbab5560e3458ab6457860f8b1b512.r2.dev/fonts/aileron/Aileron-Light.otf') format('opentype');
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}
.aileron-light {
  font-family: 'aileron-light', sans-serif;
}

@font-face {
  font-family: 'aileron-regular';
  src: url('https://pub-fcbbab5560e3458ab6457860f8b1b512.r2.dev/fonts/aileron/Aileron-Regular.otf') format('opentype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
.aileron-regular {
  font-family: 'aileron-regular', sans-serif;
}

@font-face {
  font-family: 'aileron-semibold';
  src: url('https://pub-fcbbab5560e3458ab6457860f8b1b512.r2.dev/fonts/aileron/Aileron-SemiBold.otf') format('opentype');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
.aileron-semibold {
  font-family: 'aileron-semibold', sans-serif;
}

@font-face {
  font-family: 'aileron-bold';
  src: url('https://pub-fcbbab5560e3458ab6457860f8b1b512.r2.dev/fonts/aileron/Aileron-Bold.otf') format('opentype');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
.aileron-bold {
  font-family: 'aileron-bold', sans-serif;
}

@font-face {
  font-family: 'aileron-heavy';
  src: url('https://pub-fcbbab5560e3458ab6457860f8b1b512.r2.dev/fonts/aileron/Aileron-Heavy.otf') format('opentype');
  font-weight: 800;
  font-style: normal;
  font-display: swap;
}
.aileron-heavy {
  font-family: 'aileron-heavy', sans-serif;
}

@font-face {
  font-family: 'aileron-black';
  src: url('https://pub-fcbbab5560e3458ab6457860f8b1b512.r2.dev/fonts/aileron/Aileron-Black.otf') format('opentype');
  font-weight: 900;
  font-style: normal;
  font-display: swap;
}
.aileron-black {
  font-family: 'aileron-black', sans-serif;
}

/* ==========================================================================
   Gothic A1 - each weight as separate family
   ========================================================================== */

/* Generic family name so font-family: gothic works (e.g. from applyFonts) */
@font-face {
  font-family: 'gothic';
  src: url('https://pub-fcbbab5560e3458ab6457860f8b1b512.r2.dev/fonts/gothic/GothicA1-Regular.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
.gothic {
  font-family: 'gothic', sans-serif;
}

@font-face {
  font-family: 'gothic-thin';
  src: url('https://pub-fcbbab5560e3458ab6457860f8b1b512.r2.dev/fonts/gothic/GothicA1-Thin.ttf') format('truetype');
  font-weight: 100;
  font-style: normal;
  font-display: swap;
}
.gothic-thin {
  font-family: 'gothic-thin', sans-serif;
}

@font-face {
  font-family: 'gothic-extralight';
  src: url('https://pub-fcbbab5560e3458ab6457860f8b1b512.r2.dev/fonts/gothic/GothicA1-ExtraLight.ttf') format('truetype');
  font-weight: 200;
  font-style: normal;
  font-display: swap;
}
.gothic-extralight {
  font-family: 'gothic-extralight', sans-serif;
}

@font-face {
  font-family: 'gothic-light';
  src: url('https://pub-fcbbab5560e3458ab6457860f8b1b512.r2.dev/fonts/gothic/GothicA1-Light.ttf') format('truetype');
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}
.gothic-light {
  font-family: 'gothic-light', sans-serif;
}

@font-face {
  font-family: 'gothic-regular';
  src: url('https://pub-fcbbab5560e3458ab6457860f8b1b512.r2.dev/fonts/gothic/GothicA1-Regular.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
.gothic-regular {
  font-family: 'gothic-regular', sans-serif;
}

@font-face {
  font-family: 'gothic-medium';
  src: url('https://pub-fcbbab5560e3458ab6457860f8b1b512.r2.dev/fonts/gothic/GothicA1-Medium.ttf') format('truetype');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
.gothic-medium {
  font-family: 'gothic-medium', sans-serif;
}

@font-face {
  font-family: 'gothic-semibold';
  src: url('https://pub-fcbbab5560e3458ab6457860f8b1b512.r2.dev/fonts/gothic/GothicA1-SemiBold.ttf') format('truetype');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
.gothic-semibold {
  font-family: 'gothic-semibold', sans-serif;
}

@font-face {
  font-family: 'gothic-bold';
  src: url('https://pub-fcbbab5560e3458ab6457860f8b1b512.r2.dev/fonts/gothic/GothicA1-Bold.ttf') format('truetype');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
.gothic-bold {
  font-family: 'gothic-bold', sans-serif;
}

@font-face {
  font-family: 'gothic-extrabold';
  src: url('https://pub-fcbbab5560e3458ab6457860f8b1b512.r2.dev/fonts/gothic/GothicA1-ExtraBold.ttf') format('truetype');
  font-weight: 800;
  font-style: normal;
  font-display: swap;
}
.gothic-extrabold {
  font-family: 'gothic-extrabold', sans-serif;
}

@font-face {
  font-family: 'gothic-black';
  src: url('https://pub-fcbbab5560e3458ab6457860f8b1b512.r2.dev/fonts/gothic/GothicA1-Black.ttf') format('truetype');
  font-weight: 900;
  font-style: normal;
  font-display: swap;
}
.gothic-black {
  font-family: 'gothic-black', sans-serif;
}

/* ==========================================================================
   Nimbus Sans L - each weight as separate family
   ========================================================================== */

/* Generic family name so font-family: nimbus-sans works (e.g. from applyFonts) */
@font-face {
  font-family: 'nimbus-sans';
  src: url('https://pub-fcbbab5560e3458ab6457860f8b1b512.r2.dev/fonts/nimbus-sans/NimbusSanL-Regu.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
.nimbus-sans {
  font-family: 'nimbus-sans', sans-serif;
}

@font-face {
  font-family: 'nimbus-sans-regular';
  src: url('https://pub-fcbbab5560e3458ab6457860f8b1b512.r2.dev/fonts/nimbus-sans/NimbusSanL-Regu.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
.nimbus-sans-regular {
  font-family: 'nimbus-sans-regular', sans-serif;
}

@font-face {
  font-family: 'nimbus-sans-bold';
  src: url('https://pub-fcbbab5560e3458ab6457860f8b1b512.r2.dev/fonts/nimbus-sans/NimbusSanL-Bold.ttf') format('truetype');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
.nimbus-sans-bold {
  font-family: 'nimbus-sans-bold', sans-serif;
}

/* ==========================================================================
   Old Standard TT - each weight/style as separate family
   ========================================================================== */

/* Generic family name so font-family: old-standard works (e.g. from applyFonts) */
@font-face {
  font-family: 'old-standard';
  src: url('https://pub-fcbbab5560e3458ab6457860f8b1b512.r2.dev/fonts/old-standard/OldStandardTT-Regular.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
.old-standard {
  font-family: 'old-standard', serif;
}

@font-face {
  font-family: 'old-standard-regular';
  src: url('https://pub-fcbbab5560e3458ab6457860f8b1b512.r2.dev/fonts/old-standard/OldStandardTT-Regular.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
.old-standard-regular {
  font-family: 'old-standard-regular', serif;
}

@font-face {
  font-family: 'old-standard-bold';
  src: url('https://pub-fcbbab5560e3458ab6457860f8b1b512.r2.dev/fonts/old-standard/OldStandardTT-Bold.ttf') format('truetype');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
.old-standard-bold {
  font-family: 'old-standard-bold', serif;
}

@font-face {
  font-family: 'old-standard-italic';
  src: url('https://pub-fcbbab5560e3458ab6457860f8b1b512.r2.dev/fonts/old-standard/OldStandardTT-Italic.ttf') format('truetype');
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}
.old-standard-italic {
  font-family: 'old-standard-italic', serif;
}

/* ==========================================================================
   STIX General
   ========================================================================== */

/* Generic family name so font-family: stix-general works (e.g. from applyFonts) */
@font-face {
  font-family: 'stix-general';
  src: url('https://pub-fcbbab5560e3458ab6457860f8b1b512.r2.dev/fonts/stix-general/STIXGeneral-Regular.otf') format('opentype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
.stix-general {
  font-family: 'stix-general', serif;
}

@font-face {
  font-family: 'stix-general-regular';
  src: url('https://pub-fcbbab5560e3458ab6457860f8b1b512.r2.dev/fonts/stix-general/STIXGeneral-Regular.otf') format('opentype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
.stix-general-regular {
  font-family: 'stix-general-regular', serif;
}
