/* Kompas — generated from tokens.json */
:root, [data-theme="light"] {
  --surface: #f8f7f4;
  --surface-raised: #ffffff;
  --surface-sunken: #f0eeea;
  --surface-overlay: #ffffff;
  --line: #e4e1da;
  --line-strong: #8c887f;
  --ink: #1b1a18;
  --ink-secondary: #5b5852;
  --ink-tertiary: #6d6962;
  --ink-inverse: #f8f7f4;
  --ink-soft: #ebe9e3;
  --brass: #7a6320;
  --brass-soft: #f4eedb;
  --brass-mark: #a8862a;
  --teal: #0b7458;
  --teal-soft: #d6efe5;
  --blue: #2457a4;
  --blue-soft: #dde7f7;
  --magenta: #9f2f7a;
  --magenta-soft: #f7dcee;
  --vermillion: #b03d0b;
  --vermillion-soft: #fbe1d3;
  --amber: #8a4c00;
  --amber-soft: #fbead0;
  --status-observed: var(--ink);
  --status-observed-soft: var(--ink-soft);
  --status-corroborated: var(--teal);
  --status-corroborated-soft: var(--teal-soft);
  --status-inferred: var(--blue);
  --status-inferred-soft: var(--blue-soft);
  --status-unverified: var(--ink-tertiary);
  --status-unverified-soft: var(--surface-sunken);
  --status-contradicted: var(--vermillion);
  --status-contradicted-soft: var(--vermillion-soft);
  --status-scenario: var(--magenta);
  --status-scenario-soft: var(--magenta-soft);
  --status-superseded: var(--ink-tertiary);
  --status-superseded-soft: var(--surface-sunken);
  --success: var(--teal);
  --success-soft: var(--teal-soft);
  --warning: var(--amber);
  --warning-soft: var(--amber-soft);
  --danger: var(--vermillion);
  --danger-soft: var(--vermillion-soft);
  --info: var(--ink);
  --info-soft: var(--ink-soft);
  --restricted: var(--ink);
  --link: var(--ink);
  --focus: var(--ink);
  --live: var(--brass);
  --selection: var(--brass);
  --series-1: var(--ink);
  --series-2: var(--ink-secondary);
  --series-3: var(--ink-tertiary);
  --series-4: var(--line-strong);
  --materiality-1: var(--line-strong);
  --materiality-2: var(--ink-tertiary);
  --materiality-3: var(--ink-secondary);
  --materiality-4: var(--ink);
  --canvas: var(--surface-sunken);
  --node-fill: var(--surface-raised);
  --node-stroke: var(--ink);
  --edge: var(--line-strong);
  --edge-soft: var(--line);
  --shadow-overlay: 0 1px 2px #1b1a1814, 0 8px 24px -6px #1b1a1833;
  --focus-ring: 0 0 0 2px #f8f7f4, 0 0 0 4px #1b1a18;
}
[data-theme="dark"] {
  --surface: #161614;
  --surface-raised: #1f1e1c;
  --surface-sunken: #111110;
  --surface-overlay: #292826;
  --line: #31302c;
  --line-strong: #737169;
  --ink: #edebe6;
  --ink-secondary: #aba79e;
  --ink-tertiary: #8a867d;
  --ink-inverse: #161614;
  --ink-soft: #2a2926;
  --brass: #d2ab57;
  --brass-soft: #3a3016;
  --brass-mark: #d9b45f;
  --teal: #4cc9a0;
  --teal-soft: #12352a;
  --blue: #86b4f2;
  --blue-soft: #182a4c;
  --magenta: #e78fc8;
  --magenta-soft: #3f1a34;
  --vermillion: #f4915f;
  --vermillion-soft: #45200f;
  --amber: #f0a640;
  --amber-soft: #3f2a0a;
  --status-observed: var(--ink);
  --status-observed-soft: var(--ink-soft);
  --status-corroborated: var(--teal);
  --status-corroborated-soft: var(--teal-soft);
  --status-inferred: var(--blue);
  --status-inferred-soft: var(--blue-soft);
  --status-unverified: var(--ink-tertiary);
  --status-unverified-soft: var(--surface-sunken);
  --status-contradicted: var(--vermillion);
  --status-contradicted-soft: var(--vermillion-soft);
  --status-scenario: var(--magenta);
  --status-scenario-soft: var(--magenta-soft);
  --status-superseded: var(--ink-tertiary);
  --status-superseded-soft: var(--surface-sunken);
  --success: var(--teal);
  --success-soft: var(--teal-soft);
  --warning: var(--amber);
  --warning-soft: var(--amber-soft);
  --danger: var(--vermillion);
  --danger-soft: var(--vermillion-soft);
  --info: var(--ink);
  --info-soft: var(--ink-soft);
  --restricted: var(--ink);
  --link: var(--ink);
  --focus: var(--ink);
  --live: var(--brass);
  --selection: var(--brass);
  --series-1: var(--ink);
  --series-2: var(--ink-secondary);
  --series-3: var(--ink-tertiary);
  --series-4: var(--line-strong);
  --materiality-1: var(--line-strong);
  --materiality-2: var(--ink-tertiary);
  --materiality-3: var(--ink-secondary);
  --materiality-4: var(--ink);
  --canvas: var(--surface-sunken);
  --node-fill: var(--surface-raised);
  --node-stroke: var(--ink);
  --edge: var(--line-strong);
  --edge-soft: var(--line);
  --shadow-overlay: 0 1px 2px #00000080, 0 12px 32px -8px #000000b3;
  --focus-ring: 0 0 0 2px #161614, 0 0 0 4px #edebe6;
}
:root {
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;
  --space-10: 40px;
  --space-12: 48px;
  --space-16: 64px;
  --radius-xs: 2px;
  --radius-sm: 4px;
  --radius-md: 6px;
  --radius-lg: 10px;
  --radius-full: 9999px;
  --control-sm: 28px;
  --control-md: 32px;
  --control-lg: 40px;
  --row-dense: 28px;
  --row: 36px;
  --sidebar: 240px;
  --panel: 400px;
  --hairline: 1px;
  --icon: 1.5px;
  --point: 6px;
  --node-ring: 2px;
  --edge-1: 1px;
  --edge-2: 2px;
  --edge-3: 3px;
  --edge-4: 4px;
  --disabled: 0.45;
  --dimmed: 0.35;
  --hatch: 0.5;
  --duration-fast: 120ms;
  --duration-base: 180ms;
  --duration-slow: 280ms;
  --duration-replay: 600ms;
  --ease-standard: cubic-bezier(0.2, 0, 0, 1);
  --ease-exit: cubic-bezier(0.4, 0, 1, 1);
  --font-sans: "IBM Plex Sans KR", "IBM Plex Sans", "Apple SD Gothic Neo", "Malgun Gothic", system-ui, sans-serif;
  --font-serif: "Noto Serif KR", "Apple Myungjo", "Nanum Myeongjo", Georgia, serif;
  --font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;
}
.display { font-family: var(--font-serif); font-size: 40px; line-height: 48px; font-weight: 500; letter-spacing: -0.01em; }
.report-title { font-family: var(--font-serif); font-size: 28px; line-height: 36px; font-weight: 500; letter-spacing: -0.005em; }
.pull { font-family: var(--font-serif); font-size: 18px; line-height: 28px; font-weight: 400; }
.title { font-family: var(--font-sans); font-size: 22px; line-height: 28px; font-weight: 600; letter-spacing: -0.01em; }
.heading { font-family: var(--font-sans); font-size: 16px; line-height: 24px; font-weight: 600; }
.subheading { font-family: var(--font-sans); font-size: 14px; line-height: 20px; font-weight: 600; }
.body { font-family: var(--font-sans); font-size: 14px; line-height: 20px; font-weight: 400; }
.compact { font-family: var(--font-sans); font-size: 13px; line-height: 18px; font-weight: 400; }
.caption { font-family: var(--font-sans); font-size: 12px; line-height: 16px; font-weight: 400; }
.overline { font-family: var(--font-sans); font-size: 11px; line-height: 16px; font-weight: 500; letter-spacing: 0.06em; }
.figure { font-family: var(--font-sans); font-size: 13px; line-height: 20px; font-weight: 500; }
.figure-lg { font-family: var(--font-sans); font-size: 24px; line-height: 28px; font-weight: 500; letter-spacing: -0.01em; }
.mono { font-family: var(--font-mono); font-size: 12px; line-height: 16px; font-weight: 400; }
.locator { font-family: var(--font-mono); font-size: 11px; line-height: 16px; font-weight: 400; }
