:root{
  /* ============================================================
     TYPE — rebuilt from the collateral, not from the identity manual.

     The 2018 rack card sets WHISTLER in a cut STENCIL face, SNOWBUS in the
     illustrated letterforms, SNOWBUS.com in a very heavy CONDENSED sans, the
     tagline in a BRUSH SCRIPT, and the timetable in a light condensed. Five
     voices with clear jobs — not one grotesque doing everything.

     Substitutions are flagged in tokens/fonts.css. DIN remains the specified
     system face and its slot is held.
     ============================================================ */

  /* Poster voice. The SNOWBUS.com / WHISTLER SNOWBUS register — brand-sheet
     items 1 and 4. Identified as Helvetica Neue Condensed Bold by rendering the
     archive fonts against the sheet. The loudest thing on a page. */
  /* SINGLE 700 CUT (CondensedBlack is an unusable resource-fork .0 file), so
     poster roles must request 700 exactly — 400 gets matched up and may synthesise. */
  --font-poster:"HelveticaNeue Condensed","Helvetica Neue",Impact,sans-serif;

  /* Stencil. Brand-sheet item 2 — the chunky cut stencil. Rafika, the real face.
     Destination and terminal copy, section heads. Sparingly, always uppercase.
     SINGLE 400 CUT — never request a bolder weight: the browser fakes it and the
     synthetic thickening closes the stencil gaps that define the face. */
  --font-stencil:"Rafika","Snowgus",Impact,sans-serif;

  /* Distressed cut. Brand-sheet item 3 — the eroded SNOWBUS. Livery, wrap art,
     event graphics. Never at small sizes; the erosion closes up. */
  --font-distress:"Dirty Ego","Rafika",Impact,sans-serif;

  /* Hand voice. LOVE THE RIDE — brand-sheet item 9. Bleeding Cowboys, the real
     brush face. Tagline and human asides only. NEVER UI, data or wayfinding.
     Single 400 cut — do not request bold. */
  --font-hand:"Bleeding Cowboys","Bradley Hand",cursive;

  /* System face — THE REAL DIN, installed 2026-08-08 from the brand's own
     licensed files. Signage, labels, timetables, running copy. DIN is already a
     condensed-ish industrial face, so it serves both roles the 2018 print system
     used it for. Barlow Condensed / Barlow remain as fallbacks only. */
  --font-condensed:"DIN","Barlow Condensed","Helvetica Neue Condensed",Arial,sans-serif;
  --font-body:"DIN","Barlow","Helvetica Neue",Helvetica,Arial,sans-serif;

  /* Bespoke accent face, cut for this brand (ships with a .vfb FontLab source).
     Appears to be a Rafika derivative. Livery, wrap art, campaign lockups. */
  --font-bespoke:"Snowgus","Rafika",Impact,sans-serif;

  /* Display alias — kept so existing components keep working; points at the
     poster voice now rather than a corporate grotesque. */
  --font-display:var(--font-poster);
  --font-mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;   /* licence + PT numbers */
  /* --font-secondary (Montserrat) removed 2026-08-08. The identity manual named it
     as a secondary family, but nothing in the collateral or this system uses it —
     DIN now covers system type and the poster/stencil/hand roles cover display.
     Loading a webfont no surface renders is dead weight. */

  --weight-regular:400;
  --weight-medium:500;
  --weight-semibold:600;
  --weight-bold:700;
  --weight-extrabold:800;
  --weight-black:900;

  /* Scale. Bigger at the top than a corporate system — this is poster work. */
  --size-poster:clamp(46px,9vw,132px);   /* the one big statement per surface */
  --size-display-1:clamp(38px,7.4vw,74px);
  --size-display-2:clamp(32px,5.6vw,60px);
  --size-h1:clamp(30px,4.6vw,44px);
  --size-h2:clamp(24px,3.6vw,34px);
  --size-h3:22px;
  --size-h4:17px;
  --size-lead:clamp(16px,1.9vw,19px);
  --size-body:16px;
  --size-body-sm:14.5px;
  --size-caption:13px;
  --size-micro:12px;
  --size-eyebrow:12px;
  --size-stat:clamp(26px,3.4vw,34px);
  --size-timetable:13px;

  /* Print / document scale. 12pt floor. */
  --size-doc-title:26pt;
  --size-doc-h1:16pt;
  --size-doc-h2:13pt;
  --size-doc-body:11pt;
  --size-doc-table:10pt;
  --size-doc-fine:8.5pt;

  --leading-poster:.92;    /* poster type sets tight enough for lines to touch */
  --leading-tight:1.02;
  --leading-snug:1.15;
  --leading-normal:1.45;
  --leading-relaxed:1.6;

  --tracking-poster:-.02em;
  --tracking-display:-.01em;
  --tracking-normal:0;
  --tracking-wide:.06em;
  --tracking-wider:.12em;
  --tracking-stencil:.04em;
  --tracking-eyebrow:.2em;
  --tracking-kicker:.22em;
  --tracking-stripe:.1em;   /* the livery destination stripe */

  /* Composed roles. */
  --type-poster:var(--weight-bold) var(--size-poster)/var(--leading-poster) var(--font-poster);
  --type-display:var(--weight-bold) var(--size-display-1)/var(--leading-tight) var(--font-poster);
  --type-h2:var(--weight-bold) var(--size-h2)/var(--leading-snug) var(--font-poster);
  --type-stencil:var(--weight-regular) var(--size-display-2)/var(--leading-tight) var(--font-stencil);
  --type-distress:var(--weight-regular) var(--size-display-2)/var(--leading-tight) var(--font-distress);
  --type-hand:var(--weight-regular) var(--size-h2)/1.1 var(--font-hand);
  --type-stripe:var(--weight-bold) var(--size-caption)/1 var(--font-condensed);
  --type-lead:var(--weight-regular) var(--size-lead)/var(--leading-relaxed) var(--font-body);
  --type-body:var(--weight-regular) var(--size-body)/var(--leading-relaxed) var(--font-body);
  --type-eyebrow:var(--weight-bold) var(--size-eyebrow)/1.2 var(--font-condensed);
  --type-timetable:var(--weight-medium) var(--size-timetable)/1.25 var(--font-condensed);
}
