/* ===========================================================================
   boulder.vote — Typography scale
   Display = Impure Mount Sans, Script = Impure Mount Script, Text = Barlow.
   Headlines are set TIGHT and UPPERCASE like the signage; body is Barlow.
   Taglines are Barlow, uppercase, tracked wide — "LESS X. MORE Y."
   =========================================================================== */

:root {
  --font-display: "Impure Mount Sans", "Barlow", system-ui, sans-serif;
  --font-script:  "Impure Mount Script", "Segoe Script", cursive;
  --font-body:    "Barlow", system-ui, -apple-system, sans-serif;

  /* Weights (Barlow spans thin→black) */
  --fw-regular: 400;  /* @kind other */
  --fw-medium:  500;  /* @kind other */
  --fw-semibold:600;  /* @kind other */
  --fw-bold:    700;  /* @kind other */
  --fw-extra:   800;  /* @kind other */
  --fw-black:   900;  /* @kind other */

  /* Type scale — poster-forward, generous jumps */
  --text-xs:   12px;
  --text-sm:   14px;
  --text-base: 16px;
  --text-md:   18px;
  --text-lg:   22px;
  --text-xl:   28px;
  --text-2xl:  36px;
  --text-3xl:  48px;
  --text-4xl:  64px;
  --text-5xl:  84px;
  --text-6xl:  112px;

  /* Line heights */
  --leading-tight:  0.95;   /* stacked display headlines               */
  --leading-snug:   1.12;
  --leading-normal: 1.5;    /* body copy                               */
  --leading-relaxed:1.65;

  /* Letter spacing */
  --track-tight:  -0.01em;
  --track-normal: 0;        /* @kind other */
  --track-wide:   0.08em;   /* Barlow labels                           */
  --track-wider:  0.16em;   /* tagline "LESS X. MORE Y." + BOULDER.VOTE */

  /* Semantic roles */
  --role-display-size:   var(--text-5xl);
  --role-headline-size:  var(--text-3xl);
  --role-title-size:     var(--text-xl);
  --role-body-size:      var(--text-base);
  --role-label-size:     var(--text-sm);
  --role-caption-size:   var(--text-xs);
}
