// Typography System Configuration
// ==========================================================================

// Font stacks
$font-stacks: (
  "sans": ("Inter",
    "system-ui",
    "-apple-system",
    "BlinkMacSystemFont",
    "Segoe UI",
    "Roboto",
    "Helvetica Neue",
    "Arial",
    "sans-serif",
  ),
  "serif": ("Georgia",
    "Times New Roman",
    "Times",
    "serif",
  ),
  "mono": ("JetBrains Mono",
    "Fira Code",
    "Monaco",
    "Consolas",
    "Liberation Mono",
    "Courier New",
    "monospace",
  ),
  "display": ("Cabin",
    "Inter",
    "system-ui",
    "-apple-system",
    "sans-serif",
  ),
);

// Font weights
// Using numeric values for cleaner variable naming
// --font-weight-100, --font-weight-300, etc.
$font-weights: (
  "100": 100,
  // Thin
  "300": 300,
  // Light
  "400": 400,
  // Normal
  "500": 500,
  // Medium
  "600": 600,
  // Semibold
  "700": 700,
  // Bold
  "800": 800,
  // Extra Bold
  "900": 900,
  // Black
);

// Font sizes (fluid typography using clamp)
// Format: clamp(min-size, preferred-size, max-size)
$font-sizes: (
  "xs": clamp(0.625rem, 0.65rem + 0.1vw, 0.75rem),
  // ~10px -> 12px
  "sm": clamp(0.75rem, 0.8rem + 0.15vw, 0.875rem),
  // ~12px -> 14px
  "base": clamp(0.875rem, 0.9rem + 0.2vw, 1rem),
  // ~14px -> 16px
  "lg": clamp(1rem, 1.05rem + 0.25vw, 1.125rem),
  // ~16px -> 18px
  "xl": clamp(1.125rem, 1.15rem + 0.3vw, 1.25rem),
  // ~18px -> 20px
  "2xl": clamp(1.25rem, 1.3rem + 0.5vw, 1.5rem),
  // ~20px -> 24px
  "3xl": clamp(1.5rem, 1.6rem + 0.75vw, 1.875rem),
  // ~24px -> 30px
  "4xl": clamp(1.875rem, 2rem + 1vw, 2.25rem),
  // ~30px -> 36px
  "5xl": clamp(2.25rem, 2.5rem + 1.5vw, 3rem),
  // ~36px -> 48px
  "6xl": clamp(3rem, 3.25rem + 2vw, 3.75rem),
  // ~48px -> 60px
  "7xl": clamp(3.75rem, 4rem + 2.5vw, 4.5rem),
  // ~60px -> 72px
  "8xl": clamp(4.5rem, 5rem + 3vw, 6rem),
  // ~72px -> 96px
  "9xl": clamp(6rem, 7rem + 4vw, 8rem),
  // ~96px -> 128px
);

// Line heights
$line-heights: (
  "none": 1,
  "tight": 1.25,
  "snug": 1.375,
  "normal": 1.5,
  "relaxed": 1.625,
  "loose": 2,
);

// Letter spacing
$letter-spacings: (
  "tighter": -0.05em,
  "tight": -0.025em,
  "normal": 0,
  "wide": 0.025em,
  "wider": 0.05em,
  "widest": 0.1em,
);