/*
 * tcp.systems theme - generated from design-tokens.json (hex authored, canon D20).
 * Do not hand-edit values; the gate re-derives every ratio.
 */
@font-face { font-family: 'Archivo'; font-style: normal; font-weight: 100 900; font-display: swap; src: url('../assets/fonts/archivo-var-wght.woff2') format('woff2'); }
@font-face { font-family: 'Commit Mono'; font-style: normal; font-weight: 400; font-display: swap; src: url('../assets/fonts/commitmono-400.woff2') format('woff2'); }
@font-face { font-family: 'Commit Mono'; font-style: italic; font-weight: 400; font-display: swap; src: url('../assets/fonts/commitmono-400i.woff2') format('woff2'); }
@font-face { font-family: 'Commit Mono'; font-style: normal; font-weight: 700; font-display: swap; src: url('../assets/fonts/commitmono-700.woff2') format('woff2'); }

:root {
  color-scheme: light;
  /* primitives - light */
  --tcp-ink: #10151B; --tcp-graphite: #1A2129; --tcp-steel: #3C4854; --tcp-mist: #55636F;
  --tcp-fog: #F2F4F7; --tcp-frost: #FAFBFD; --tcp-sunken: #E7EBF0;
  --tcp-hair: #D8DEE5; --tcp-hair-strong: #B9C3CD;
  --tcp-signal: #FF4D00; --tcp-signal-hover: #F34D00; --tcp-signal-press: #E85A00; --tcp-signal-text: #A33D00; --tcp-signal-tint: #FFE0C7;
  --tcp-hover-fill: #E9EDF2; --tcp-code: #E9EDF2; --tcp-code-highlight: #DFE6EC; --tcp-input: #7E8B98;
  /* status - canon operational tones (D10), shared, never brand */
  --tcp-ok: #1F5B3C; --tcp-info: #2A4E6B; --tcp-warn: #6B4700; --tcp-bad: #8C1D18; --tcp-neutral: #6E675D;
  --tcp-ok-bg: #E4EDE4; --tcp-ok-line: #C9DCCB; --tcp-info-bg: #E3E9EE; --tcp-info-line: #C7D3DD;
  --tcp-warn-bg: #F5EACF; --tcp-warn-line: #E8D8B0; --tcp-bad-bg: #F6E3DF; --tcp-bad-line: #EBCBC5;
  /* semantic - light */
  --tcp-bg: var(--tcp-fog); --tcp-surface: var(--tcp-frost); --tcp-overlay: var(--tcp-frost); --tcp-sunken-bg: var(--tcp-sunken);
  --tcp-fg: var(--tcp-ink); --tcp-fg-soft: var(--tcp-steel); --tcp-muted: var(--tcp-mist);
  --tcp-line: var(--tcp-hair); --tcp-line-strong: var(--tcp-hair-strong);
  --tcp-accent: var(--tcp-signal); --tcp-accent-hover: var(--tcp-signal-hover); --tcp-accent-press: var(--tcp-signal-press);
  --tcp-accent-text: var(--tcp-signal-text); --tcp-on-accent: var(--tcp-ink);
  --tcp-tint: var(--tcp-signal-tint); --tcp-selection: var(--tcp-signal-tint); --tcp-selection-fg: var(--tcp-ink);
  --tcp-bad-foreground: #F4F1EA;
  --tcp-chart-1: #A33D00; --tcp-chart-2: #27707E; --tcp-chart-3: #3B5F8A; --tcp-chart-4: #8F650C; --tcp-chart-5: #7A5C9E;
  /* geometry, type, motion, z (canon D12-D18) */
  --tcp-radius: 0px; --tcp-rule: 1px; --tcp-grid: 8px; --tcp-gutter: 1.5rem;
  --tcp-size-target-min: 44px; --tcp-measure-prose: 65ch;
  --tcp-font-sans: 'Archivo', ui-sans-serif, system-ui, sans-serif;
  --tcp-font-mono: 'Commit Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  --tcp-elevation-overlay: 0 10px 28px rgb(16 21 27 / 0.14), 0 2px 6px rgb(16 21 27 / 0.08);
  --tcp-dur-1: 70ms; --tcp-dur-2: 110ms; --tcp-dur-3: 150ms; --tcp-dur-4: 240ms;
  --tcp-ease-standard: cubic-bezier(0.2, 0, 0.38, 0.9); --tcp-ease-entrance: cubic-bezier(0, 0, 0.38, 0.9); --tcp-ease-exit: cubic-bezier(0.2, 0, 1, 0.9);
}
:root:not([data-theme='light']) {
  @media (prefers-color-scheme: dark) {
    color-scheme: dark;
    --tcp-bg: #0B0F14; --tcp-surface: #12181F; --tcp-overlay: #182029; --tcp-sunken-bg: #06090C;
    --tcp-fg: #EDF1F5; --tcp-fg-soft: #A9B6C2; --tcp-muted: #7E8C99;
    --tcp-line: #222D38; --tcp-line-strong: #3A4754;
    --tcp-accent: #FF4D00; --tcp-accent-hover: #FF6A3F; --tcp-accent-press: #FF7E57;
    --tcp-accent-text: #FF4D00; --tcp-on-accent: #10151B;
    --tcp-tint: #2E1D10; --tcp-selection: #2E1D10; --tcp-selection-fg: #EDF1F5;
    --tcp-bad-foreground: #10151B; --tcp-hover-fill: #1C2530;
    --tcp-code: #0A0E12; --tcp-code-highlight: #182029; --tcp-input: #5F6E7B;
    --tcp-ok: #6FBF8B; --tcp-info: #93B4CC; --tcp-warn: #E0AF68; --tcp-bad: #FF9B8F; --tcp-neutral: #94897C;
    --tcp-ok-bg: #262A21; --tcp-ok-line: #3B503C; --tcp-info-bg: #242A30; --tcp-info-line: #3F4C58;
    --tcp-warn-bg: #31281D; --tcp-warn-line: #5D4B31; --tcp-bad-bg: #352621; --tcp-bad-line: #68443D;
    --tcp-chart-1: #FF6A3F; --tcp-chart-2: #66B4C4; --tcp-chart-3: #7FA3CC; --tcp-chart-4: #E0B45F; --tcp-chart-5: #B09CD0;
    --tcp-elevation-overlay: 0 14px 36px rgb(0 0 0 / 0.35), 0 0 0 1px rgb(237 241 245 / 0.08);
  }
}
[data-theme='dark'] { color-scheme: dark;
  --tcp-bg: #0B0F14; --tcp-surface: #12181F; --tcp-overlay: #182029; --tcp-sunken-bg: #06090C;
  --tcp-fg: #EDF1F5; --tcp-fg-soft: #A9B6C2; --tcp-muted: #7E8C99;
  --tcp-line: #222D38; --tcp-line-strong: #3A4754;
  --tcp-accent: #FF4D00; --tcp-accent-hover: #FF6A3F; --tcp-accent-press: #FF7E57;
  --tcp-accent-text: #FF4D00; --tcp-on-accent: #10151B;
  --tcp-tint: #2E1D10; --tcp-selection: #2E1D10; --tcp-selection-fg: #EDF1F5;
  --tcp-bad-foreground: #10151B; --tcp-hover-fill: #1C2530;
  --tcp-code: #0A0E12; --tcp-code-highlight: #182029; --tcp-input: #5F6E7B;
  --tcp-ok: #6FBF8B; --tcp-info: #93B4CC; --tcp-warn: #E0AF68; --tcp-bad: #FF9B8F; --tcp-neutral: #94897C;
  --tcp-ok-bg: #262A21; --tcp-ok-line: #3B503C; --tcp-info-bg: #242A30; --tcp-info-line: #3F4C58;
  --tcp-warn-bg: #31281D; --tcp-warn-line: #5D4B31; --tcp-bad-bg: #352621; --tcp-bad-line: #68443D;
  --tcp-chart-1: #FF6A3F; --tcp-chart-2: #66B4C4; --tcp-chart-3: #7FA3CC; --tcp-chart-4: #E0B45F; --tcp-chart-5: #B09CD0;
  --tcp-elevation-overlay: 0 14px 36px rgb(0 0 0 / 0.35), 0 0 0 1px rgb(237 241 245 / 0.08);
}
::selection { background: var(--tcp-selection); color: var(--tcp-selection-fg); }
:focus-visible { outline: 2px solid var(--tcp-accent); outline-offset: 2px; box-shadow: 0 0 0 1px var(--tcp-fg); }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition-duration: 0ms !important; animation: none !important; } }
/* rules that get re-litigated (canon): --tcp-accent is a fill in light mode and text only in dark mode; --tcp-muted is for mono labels/metadata >= 11px, never prose; --tcp-line is a 1px rule at 100% opacity. */
