/* ================================================================
   TODD IVON — EXTRACTED DESIGN SYSTEM TOKENS · V1.1 · 2026
   Generated via /impeccable extract & /impeccable document
   ================================================================ */

@font-face {
  font-family: 'Slant';
  src: url('../assets/SLANT.TTF') format('truetype');
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

:root {
  /* Core Monochrome Primitives */
  --ti-ink: #0a0a0b;
  --ti-surface: #141416;
  --ti-surface-elev: #1b1b1f;
  --ti-line: #232327;
  --ti-edge-strong: #3a3a42;
  --ti-muted: #92929d;     /* WCAG AA 6.1:1 on #0a0a0b, 5.5:1 on #141416 */
  --ti-soft: #b4b4be;      /* WCAG AAA 9.2:1 on #0a0a0b */
  --ti-paper: #f4f4f5;
  --ti-accent: #ffffff;
  --ti-danger: #ff6b81;
  --ti-success: #7bf06a;

  /* Typography Families */
  --ti-font: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
  --ti-font-display: 'Michroma', sans-serif;
  --ti-font-slant: 'Slant', 'Michroma', sans-serif;

  /* Typography Scale (12px Functional Floor) */
  --text-xs: 0.75rem;      /* 12px — minimum functional label/badge/tag floor */
  --text-sm: 0.8125rem;    /* 13px — compact technical captions */
  --text-base: 0.9375rem;  /* 15px — primary body copy */
  --text-md: 1rem;         /* 16px — form inputs & lead paragraphs */
  --text-lg: 1.1875rem;    /* 19px — card titles */
  --text-xl: 1.5rem;       /* 24px — flagship titles */
  --text-2xl: clamp(1.75rem, 3vw, 2.35rem);
  --text-display: clamp(2.25rem, 4.4vw, 3.5rem);

  /* Spacing Scale (4px / 8px base) */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-7: 28px;
  --space-8: 36px;
  --space-9: 48px;
  --space-10: 64px;
  --space-12: 88px;

  /* Radii */
  --radius-xs: 2px;
  --radius-sm: 3px;
  --radius-md: 5px;
  --radius-lg: 6px;
  --radius-pill: 999px;

  /* Motion */
  --ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
  --dur-fast: 150ms;
  --dur-med: 240ms;

  /* Semantic Theme Bindings (Dark Default) */
  --bg: var(--ti-ink);
  --fg: var(--ti-paper);
  --fg-dim: #a4a4b0;
  --card: var(--ti-surface);
  --card-hover: var(--ti-surface-elev);
  --edge: var(--ti-line);
  --edge-strong: var(--ti-edge-strong);
  --link: var(--ti-soft);
  --muted: var(--ti-muted);
  --div: rgba(244, 244, 245, 0.04);
}

/* High-Contrast Light Theme Overrides */
html.theme-light {
  --bg: #f4f4f5;
  --fg: #0a0a0b;
  --fg-dim: #3f3f46;
  --card: #ffffff;
  --card-hover: #ececef;
  --edge: #d4d4d8;
  --edge-strong: #a1a1aa;
  --link: #27272a;
  --muted: #52525b;        /* WCAG AA 7.1:1 on #f4f4f5, 7.8:1 on #ffffff */
  --div: rgba(10, 10, 11, 0.04);
}

/* Four Seasonal Mood Palettes */
[data-season="winter"] {
  --s-ink: #060a12;
  --s-surface: #0c1521;
  --s-mid: #1b3a5c;
  --s-accent: #79d7ff;
  --s-accent-on-light: #005a87;
  --s-tint: #cfe4f2;
}
[data-season="spring"] {
  --s-ink: #080f0a;
  --s-surface: #11201a;
  --s-mid: #2f6b3f;
  --s-accent: #7bf06a;
  --s-accent-on-light: #166534;
  --s-tint: #ffb3d4;
}
[data-season="summer"] {
  --s-ink: #120705;
  --s-surface: #21100a;
  --s-mid: #b8401a;
  --s-accent: #ff7a1a;
  --s-accent-on-light: #9a3412;
  --s-tint: #ff2d6b;
}
[data-season="autumn"] {
  --s-ink: #0f0a05;
  --s-surface: #1d140b;
  --s-mid: #7a4218;
  --s-accent: #f0a23a;
  --s-accent-on-light: #854d0e;
  --s-tint: #d2542a;
}

/* Ensure seasonal text accents on light theme pass 4.5:1 WCAG AA */
html.theme-light {
  --s-text: var(--s-accent-on-light);
}
html:not(.theme-light) {
  --s-text: var(--s-accent);
}
