/* Design tokens — single source of truth for the visual language.
   »traffic is lava« — friendly and relaxed, light off-white.
   Inter for display + body (for now), IBM Plex Mono for the
   utilitarian label voice. The hand-drawn wordmark stays the
   one wild element. */

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('../fonts/inter-latin-wght-normal.woff2') format('woff2-variations');
}

@font-face {
  font-family: 'Inter';
  font-style: italic;
  font-weight: 100 900;
  font-display: swap;
  src: url('../fonts/inter-latin-wght-italic.woff2') format('woff2-variations');
}

@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/ibm-plex-mono-latin-400-normal.woff2') format('woff2');
}

@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/ibm-plex-mono-latin-500-normal.woff2') format('woff2');
}

:root {
  /* Color — light off-white, warm neutrals, one loud accent */
  --paper: #fafaf8;            /* off-white base */
  --paper-deep: #f0efeb;       /* bands, past sections */
  --ink: #1a1917;              /* near-black */
  --ink-soft: #5f5a50;         /* secondary text — AA on all surfaces */
  --lava: #e8441f;             /* the one loud color (display sizes only) */
  --lava-deep: #b53312;        /* buttons, links, small text */
  --lava-deeper: #9c2a0d;      /* button hover */
  --line: #e4e2db;             /* hairlines */
  --surface: #ffffff;          /* cards */

  /* Typography */
  --font-display: 'Inter', -apple-system, sans-serif;
  --font-body: 'Inter', -apple-system, sans-serif;
  --font-mono: 'IBM Plex Mono', ui-monospace, monospace;

  --text-xs: 0.6875rem;
  --text-sm: 0.875rem;
  --text-base: 1.0625rem;
  --text-lg: 1.25rem;
  --text-xl: 1.5rem;
  --text-2xl: clamp(1.75rem, 3.5vw, 2.5rem);
  --text-3xl: clamp(2.25rem, 5vw, 3.5rem);
  --text-hero: clamp(2.75rem, 7.5vw, 5.5rem);

  --leading-tight: 1.04;
  --leading-snug: 1.2;
  --leading-body: 1.65;

  --track-tight: -0.022em;
  --track-label: 0.11em;

  /* Spacing */
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 1rem;
  --space-4: 1.5rem;
  --space-5: 2.5rem;
  --space-6: 4rem;
  --space-7: 6.5rem;

  /* Layout */
  --measure: 40rem;
  --page-max: 74rem;
  --page-pad: clamp(1.25rem, 4vw, 3rem);

  /* Motion — strong curves, UI stays under 300ms */
  --ease-out: cubic-bezier(0.23, 1, 0.32, 1);
  --ease-in-out: cubic-bezier(0.77, 0, 0.175, 1);
  --dur-press: 140ms;
  --dur-ui: 200ms;
  --dur-reveal: 600ms;

  /* Misc */
  --radius: 6px;
  --focus-ring: 2px solid var(--lava);
}
