/* ==========================================================================
   Hall of Kits, Design tokens
   Single source of truth. Page/component CSS must only reference these.
   ========================================================================== */

:root {
  /* --- Brand palette ---------------------------------------------------- */
  --color-ink: #101010;
  --color-cream: #f5f0e6;
  --color-paper: #fffcf6;
  --color-line: #d8d1c4;
  --color-muted: #6d685f;
  --color-red: #e33b2e;
  --color-grass: #34664a;
  --color-gold: #c69a35;
  --color-blue: #3156a5;
  --color-white: #ffffff;

  /* Darkened accents reserved for text on cream/paper (contrast >= 4.5:1) */
  --color-red-text: #b32316;
  --color-gold-text: #7a5c12;
  --color-blue-text: #2a4a91;

  /* Brand red is 4.28:1 against white and 4.41:1 against ink, both just
     under AA for normal text. These two variants carry red wherever it sits
     behind or beside small text; --color-red stays the accent for rules,
     underlines and other non-text uses.
     --color-red-fill : white label on red  -> 4.95:1
     --color-red-on-ink: red label on ink   -> 5.24:1 */
  --color-red-fill: #d33224;
  --color-red-on-ink: #f04b3d;

  /* --- Semantic --------------------------------------------------------- */
  --bg: var(--color-cream);
  --surface: var(--color-paper);
  --text: var(--color-ink);
  --text-muted: var(--color-muted);
  --border: var(--color-line);
  --action: var(--color-red);
  --success: var(--color-grass);
  --info: var(--color-blue);
  --collector: var(--color-gold);
  --focus: var(--color-blue);

  /* --- Type ------------------------------------------------------------- */
  --font-display: "Teko", Impact, "Haettenschweiler", sans-serif;
  --font-label: "Barlow Condensed", "Arial Narrow", sans-serif;
  --font-body: "Inter", system-ui, -apple-system, Arial, sans-serif;

  --display-xxl: clamp(5.25rem, 11vw, 9rem); /* 84 -> 144 */
  --display-xl: clamp(4rem, 7.5vw, 6rem); /* 64 -> 96 */
  --display-lg: clamp(3rem, 5vw, 4rem); /* 48 -> 64 */
  --heading-md: clamp(1.875rem, 2.6vw, 2.25rem); /* 30 -> 36 */
  --body-lg: clamp(1.0625rem, 1.1vw, 1.125rem); /* 17 -> 18 */
  --body: 0.9375rem; /* 15 */
  --body-sm: 0.8125rem; /* 13 */
  --label: clamp(0.8125rem, 0.9vw, 0.875rem); /* 13 -> 14 */

  --leading-display: 0.82;
  --leading-body: 1.55;
  --tracking-label: 0.08em;

  /* --- Space ------------------------------------------------------------ */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;
  --space-7: 48px;
  --space-8: 64px;
  --space-9: 96px;
  --space-10: 128px;

  /* --- Shape ------------------------------------------------------------ */
  --radius-none: 0;
  --radius-sm: 2px;
  --radius-md: 6px;
  --radius-pill: 999px;
  --shadow-card: 0 3px 0 var(--color-ink);
  --rule: 1px solid var(--border);
  --rule-ink: 1px solid var(--color-ink);

  /* --- Layout ----------------------------------------------------------- */
  --max-width: 1440px;
  --gutter: 16px; /* mobile */
  --margin: 16px;
  --header-h: 60px;
  --section-y: var(--space-8);

  /* --- Motion ----------------------------------------------------------- */
  --duration-fast: 150ms;
  --duration-base: 220ms;
  --ease-out: cubic-bezier(0.2, 0.7, 0.2, 1);

  /* --- Z scale ---------------------------------------------------------- */
  --z-base: 1;
  --z-sticky: 20;
  --z-header: 30;
  --z-overlay: 50;
}

@media (min-width: 768px) {
  :root {
    --gutter: 20px;
    --margin: 24px;
    --header-h: 72px;
    --section-y: var(--space-9);
  }
}

@media (min-width: 1200px) {
  :root {
    --gutter: 24px;
    --margin: 48px;
    --section-y: var(--space-9);
  }
}

@media (min-width: 1600px) {
  :root {
    --margin: 80px;
  }
}
