/* Forgeling Vulcan 2 — generated from tokens.json */
:root, [data-theme="vulcan"] {
  --vul-ink: #1f1a20;
  --vul-coal: #262326;
  --vul-slate: #27282f;
  --vul-slate-2: #332b34;
  --vul-deep: #17131a;
  --vul-cream: #ffd491;
  --vul-peach: #fda763;
  --vul-peach-hover: #f79147;
  --vul-peach-press: #e27f35;
  --vul-blaze: #5b8cff;
  --vul-blaze-soft: #9db8ff;
  --vul-blaze-hover: #7ca3ff;
  --vul-core: #cbdcff;
  --vul-paper: #fff3dc;
  --day-paper: #f6f4f1;
  --day-white: #ffffff;
  --day-sunken: #faf9f7;
  --day-stone: #ece8e2;
  --day-stone-2: #dcd6ce;
  --day-ink: #151210;
  --day-ink-2: #48433d;
  --day-ink-3: #645e56;
  --day-orange: #ff6b00;
  --day-orange-hover: #e85f00;
  --day-orange-deep: #cc4e00;
  --day-ember: #a33f00;
  --day-ember-deep: #7a2e00;
  --surface-page: var(--vul-ink);
  --surface-card: var(--vul-coal);
  --surface-raised: #2b272c;
  --surface-sunken: var(--vul-deep);
  --surface-field: var(--vul-deep);
  --surface-muted: var(--vul-slate-2);
  --surface-inverse: var(--vul-cream);
  --surface-chrome: var(--vul-deep);
  --bg-hover: rgba(255,212,145,.07);
  --bg-active: rgba(255,212,145,.12);
  --bg-selected: rgba(253,167,99,.12);
  --bg-accent-subtle: rgba(253,167,99,.12);
  --scrim: rgba(0,0,0,.6);
  --text-primary: #f3e7d4;
  --text-secondary: #c7bbaa;
  --text-muted: #a89d90;
  --text-inverse: var(--vul-ink);
  --text-on-accent: var(--vul-ink);
  --text-accent: var(--vul-peach);
  --heading-color: var(--vul-cream);
  --chrome-text: #f3e7d4;
  --chrome-muted: #c7bbaa;
  --chrome-active: rgba(255,212,145,.12);
  --chrome-border: rgba(255,212,145,.14);
  --accent: var(--vul-peach);
  --accent-hover: var(--vul-peach-hover);
  --accent-press: var(--vul-peach-press);
  --accent-muted: rgba(253,167,99,.2);
  --ring: var(--vul-peach);
  --attention-bg: rgba(253,167,99,.16);
  --attention-text: var(--vul-peach);
  --border-subtle: rgba(255,212,145,.14);
  --border-default: rgba(255,212,145,.3);
  --border-strong: rgba(255,212,145,.45);
  --border-accent: var(--vul-peach);
  --success: #4fb287;
  --success-bg: rgba(46,125,91,.18);
  --success-text: #7fd3ae;
  --warning: #d6a63a;
  --warning-bg: rgba(176,130,26,.18);
  --warning-text: #e7c572;
  --error: #ea7b6e;
  --error-bg: rgba(185,59,46,.18);
  --error-text: #f09589;
  --info: var(--vul-blaze);
  --info-bg: rgba(91,140,255,.18);
  --info-text: var(--vul-blaze-soft);
  --dot-neutral: #9a8f82;
  --agent-working: var(--vul-blaze);
  --agent-working-text: var(--vul-blaze-soft);
  --agent-waiting: var(--accent);
  --agent-idle: var(--dot-neutral);
  --agent-error: var(--error);
  --chat-rail: var(--surface-chrome);
  --chat-user-bubble: var(--vul-slate);
  --chat-user-text: var(--vul-paper);
  --chat-agent-label: var(--vul-cream);
  --chat-caret: var(--vul-blaze);
  --chat-composer: var(--vul-coal);
  --chat-composer-focus: rgba(253,167,99,.55);
  --chat-tool-bg: rgba(23,19,26,.55);
  --chat-cite-bg: rgba(91,140,255,.16);
  --chat-cite-text: #9dbbff;
  --chat-voice: var(--vul-blaze);
  --chat-memory: var(--vul-cream);
  --draft-bg: var(--vul-slate-2);
  --draft-border: rgba(253,167,99,.7);
  --draft-label: var(--vul-peach);
  --draft-rule: rgba(255,212,145,.2);
  --track: var(--vul-deep);
  --track-thumb: var(--vul-slate-2);
  --avatar-bg: var(--vul-slate-2);
  --avatar-text: #c7bbaa;
  --avatar-strong-bg: var(--vul-cream);
  --avatar-strong-text: var(--vul-ink);
  --glyph-warm: var(--vul-cream);
  --glyph-hot: var(--vul-peach);
  --glyph-blue: var(--vul-blaze);
  --code-bg: #0e0b10;
  --code-cmd: var(--vul-cream);
  --code-out: #c7bbaa;
  --code-ok: var(--vul-blaze-soft);
  --code-warn: #ffc66e;
  --heat-1: var(--vul-cream);
  --heat-2: var(--vul-peach);
  --heat-3: #f79147;
  --heat-4: #e27f35;
  --heat-5: var(--vul-blaze);
  --orange-50: rgba(253,167,99,.12);
  --orange-100: rgba(253,167,99,.25);
  --orange-300: var(--vul-cream);
  --orange-500: var(--vul-peach);
  --orange-600: var(--vul-peach-hover);
  --orange-700: var(--vul-peach-press);
  --ink-950: var(--vul-deep);
  --ink-900: var(--vul-ink);
  --ink-800: var(--vul-coal);
  --ink-700: var(--vul-slate-2);
  --stone-50: var(--vul-paper);
  --stone-100: #f3e7d4;
  --stone-200: rgba(255,212,145,.12);
  --stone-300: rgba(255,212,145,.3);
  --stone-400: #9a8f82;
  --stone-500: #9a8f82;
  --stone-600: #c7bbaa;
  --stone-700: #f3e7d4;
  --white: #fff8ec;
  --shadow-card: 0 1px 2px rgba(0,0,0,.3),0 8px 24px rgba(0,0,0,.28);
  --shadow-raised: 0 2px 6px rgba(0,0,0,.35),0 16px 40px rgba(0,0,0,.4);
}
[data-theme="light"] {
  --surface-page: var(--day-paper);
  --surface-card: var(--day-white);
  --surface-raised: var(--day-white);
  --surface-sunken: var(--day-sunken);
  --surface-field: var(--day-white);
  --surface-muted: var(--day-stone);
  --surface-inverse: var(--day-ink);
  --surface-chrome: var(--day-ink);
  --bg-hover: rgba(21,18,16,.04);
  --bg-active: var(--day-stone);
  --bg-selected: #fff3ea;
  --bg-accent-subtle: #fff3ea;
  --scrim: rgba(21,18,16,.5);
  --text-primary: var(--day-ink);
  --text-secondary: var(--day-ink-2);
  --text-muted: var(--day-ink-3);
  --text-inverse: #faf9f7;
  --text-on-accent: var(--day-ink);
  --text-accent: var(--day-ember);
  --heading-color: var(--day-ink);
  --chrome-text: #faf9f7;
  --chrome-muted: #a69d92;
  --chrome-active: #322d27;
  --chrome-border: rgba(250,249,247,.14);
  --accent: var(--day-orange);
  --accent-hover: var(--day-orange-hover);
  --accent-press: var(--day-orange-deep);
  --accent-muted: #ffe2cc;
  --ring: var(--day-orange-deep);
  --attention-bg: #ffe2cc;
  --attention-text: var(--day-ink);
  --border-subtle: var(--day-stone);
  --border-default: var(--day-stone-2);
  --border-strong: #b9b1a6;
  --border-accent: var(--day-orange);
  --success: #2e8f5b;
  --success-bg: #e4f3ea;
  --success-text: var(--day-ink);
  --warning: #db9a00;
  --warning-bg: #fbf1d9;
  --warning-text: var(--day-ink);
  --error: #c4321f;
  --error-bg: #fbe7e4;
  --error-text: var(--day-ink);
  --info: #4c6fbf;
  --info-bg: #e8edf9;
  --info-text: var(--day-ink);
  --dot-neutral: #b9b1a6;
  --agent-working: #4c6fbf;
  --agent-working-text: #3d5fae;
  --agent-waiting: var(--accent);
  --agent-idle: var(--dot-neutral);
  --agent-error: var(--error);
  --chat-rail: var(--surface-chrome);
  --chat-user-bubble: var(--day-ink);
  --chat-user-text: #faf9f7;
  --chat-agent-label: var(--day-ink);
  --chat-caret: #4c6fbf;
  --chat-composer: var(--day-white);
  --chat-composer-focus: #ff9e52;
  --chat-tool-bg: var(--day-sunken);
  --chat-cite-bg: #e8edf9;
  --chat-cite-text: #2f4f99;
  --chat-voice: #4c6fbf;
  --chat-memory: var(--day-ink-3);
  --draft-bg: #fff3ea;
  --draft-border: #ff9e52;
  --draft-label: var(--day-ember-deep);
  --draft-rule: rgba(122,46,0,.18);
  --track: var(--day-stone);
  --track-thumb: var(--day-white);
  --avatar-bg: var(--day-stone);
  --avatar-text: #322d27;
  --avatar-strong-bg: var(--day-ink);
  --avatar-strong-text: #faf9f7;
  --glyph-warm: #ff9e52;
  --glyph-hot: var(--day-orange);
  --glyph-blue: #4c6fbf;
  --code-cmd: var(--vul-cream);
  --code-ok: var(--vul-blaze-soft);
  --heat-1: #ffd9bc;
  --heat-2: #ff9e52;
  --heat-3: var(--day-orange);
  --heat-4: var(--day-orange-deep);
  --heat-5: var(--day-ember-deep);
  --orange-300: var(--vul-cream);
  --orange-500: var(--vul-peach);
  --orange-600: var(--vul-peach-hover);
  --orange-700: var(--vul-peach-press);
  --ink-950: var(--vul-deep);
  --ink-900: var(--vul-ink);
  --ink-800: var(--vul-coal);
  --ink-700: var(--vul-slate-2);
  --stone-50: var(--vul-paper);
  --shadow-card: 0 1px 2px rgba(21,18,16,.05),0 8px 24px rgba(21,18,16,.07);
  --shadow-raised: 0 2px 6px rgba(21,18,16,.08),0 16px 40px rgba(21,18,16,.12);
}
[data-theme="paper"] {
  --surface-page: var(--vul-cream);
  --surface-card: var(--vul-paper);
  --surface-raised: var(--vul-paper);
  --surface-sunken: #f5c97f;
  --surface-field: var(--vul-paper);
  --surface-muted: #f5c97f;
  --surface-inverse: var(--vul-ink);
  --surface-chrome: var(--vul-ink);
  --bg-hover: rgba(31,26,32,.06);
  --bg-active: rgba(31,26,32,.1);
  --bg-selected: var(--vul-paper);
  --bg-accent-subtle: rgba(226,127,53,.14);
  --scrim: rgba(31,26,32,.5);
  --text-primary: var(--vul-ink);
  --text-secondary: #5d4a2e;
  --text-muted: #6b5a3e;
  --text-inverse: var(--vul-paper);
  --text-on-accent: var(--vul-ink);
  --text-accent: var(--day-ember-deep);
  --heading-color: var(--vul-ink);
  --chrome-text: var(--vul-paper);
  --chrome-muted: #c7bbaa;
  --chrome-active: rgba(255,243,220,.12);
  --chrome-border: rgba(255,243,220,.14);
  --accent: var(--vul-peach-press);
  --accent-hover: #c96f2b;
  --accent-press: #b36226;
  --accent-muted: rgba(226,127,53,.2);
  --ring: var(--vul-ink);
  --attention-bg: rgba(226,127,53,.2);
  --attention-text: var(--vul-ink);
  --border-subtle: rgba(31,26,32,.14);
  --border-default: rgba(31,26,32,.2);
  --border-strong: rgba(31,26,32,.3);
  --border-accent: var(--vul-ink);
  --success: #2e7d5b;
  --success-bg: rgba(46,125,91,.16);
  --success-text: var(--vul-ink);
  --warning: #9a6a00;
  --warning-bg: rgba(176,130,26,.18);
  --warning-text: var(--vul-ink);
  --error: #a8301f;
  --error-bg: rgba(185,59,46,.14);
  --error-text: var(--vul-ink);
  --info: #3d5fae;
  --info-bg: rgba(91,140,255,.16);
  --info-text: var(--vul-ink);
  --dot-neutral: #7a6748;
  --agent-working: #3d5fae;
  --agent-working-text: #2f4f99;
  --agent-waiting: var(--accent);
  --agent-idle: var(--dot-neutral);
  --agent-error: var(--error);
  --chat-rail: var(--surface-chrome);
  --chat-user-bubble: var(--vul-ink);
  --chat-user-text: var(--vul-paper);
  --chat-agent-label: var(--vul-ink);
  --chat-caret: #3d5fae;
  --chat-composer: var(--vul-paper);
  --chat-composer-focus: var(--vul-ink);
  --chat-tool-bg: rgba(31,26,32,.06);
  --chat-cite-bg: rgba(91,140,255,.16);
  --chat-cite-text: #2f4f99;
  --chat-voice: #3d5fae;
  --chat-memory: #6b5a3e;
  --draft-bg: var(--vul-paper);
  --draft-border: var(--vul-peach-press);
  --draft-label: var(--day-ember-deep);
  --draft-rule: rgba(31,26,32,.18);
  --track: rgba(31,26,32,.1);
  --track-thumb: var(--vul-paper);
  --avatar-bg: #f5c97f;
  --avatar-text: var(--vul-ink);
  --avatar-strong-bg: var(--vul-ink);
  --avatar-strong-text: var(--vul-paper);
  --glyph-warm: var(--vul-ink);
  --glyph-hot: var(--vul-peach-press);
  --glyph-blue: #3d5fae;
  --code-cmd: var(--vul-cream);
  --code-ok: var(--vul-blaze-soft);
  --heat-1: var(--vul-cream);
  --heat-2: var(--vul-peach);
  --heat-5: var(--vul-blaze);
  --orange-300: var(--vul-cream);
  --orange-500: var(--vul-peach);
  --orange-600: var(--vul-peach-hover);
  --orange-700: var(--vul-peach-press);
  --ink-950: var(--vul-deep);
  --ink-900: var(--vul-ink);
  --ink-800: var(--vul-coal);
  --ink-700: var(--vul-slate-2);
  --stone-50: var(--vul-paper);
  --shadow-card: 0 1px 2px rgba(31,26,32,.08),0 8px 24px rgba(31,26,32,.1);
  --shadow-raised: 0 2px 6px rgba(31,26,32,.1),0 16px 40px rgba(31,26,32,.14);
}
:root {
  --space-0: 0;
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-7: 32px;
  --space-8: 48px;
  --space-9: 64px;
  --space-10: 96px;
  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-lg: 16px;
  --radius-xl: 24px;
  --radius-pill: 999px;
  --text-2xs: 11px;
  --text-xs: 12px;
  --text-sm: 13px;
  --text-md: 14px;
  --text-base: 16px;
  --text-lg: 18px;
  --text-xl: 22px;
  --text-2xl: 28px;
  --text-3xl: 36px;
  --text-4xl: 46px;
  --text-5xl: 66px;
  --weight-regular: 400;
  --weight-medium: 500;
  --weight-semibold: 600;
  --weight-bold: 700;
  --weight-heavy: 800;
  --heading-weight: 800;
  --tracking-tight: -0.035em;
  --tracking-heading: -0.028em;
  --tracking-snug: -0.01em;
  --tracking-caps: 0.14em;
  --leading-tight: 1.04;
  --leading-snug: 1.3;
  --leading-body: 1.55;
  --leading-ui: 1.5;
  --container-max: 1240px;
  --column-max: 720px;
  --sidebar-w: 248px;
  --control-h-sm: 34px;
  --control-h-md: 40px;
  --control-h-lg: 44px;
  --hit-min: 44px;
  --font-display: "Hanken Grotesk", system-ui, sans-serif;
  --font-body: "Hanken Grotesk", system-ui, sans-serif;
  --font-sans: "Hanken Grotesk", system-ui, sans-serif;
  --font-mono: "Fragment Mono", ui-monospace, "SF Mono", Menlo, monospace;
}
.display-hero { font-family: var(--font-display); font-size: 66px; line-height: 1.04; font-weight: 800; letter-spacing: -0.035em; }
.display-section { font-family: var(--font-display); font-size: 46px; line-height: 1.08; font-weight: 800; letter-spacing: -0.028em; }
.page-title { font-family: var(--font-display); font-size: 36px; line-height: 1.04; font-weight: 800; letter-spacing: -0.035em; }
.title { font-family: var(--font-display); font-size: 18px; line-height: 1.3; font-weight: 700; letter-spacing: -0.01em; }
.body-lead { font-family: var(--font-body); font-size: 18px; line-height: 1.55; font-weight: 400; }
.body { font-family: var(--font-body); font-size: 16px; line-height: 1.55; font-weight: 400; }
.ui { font-family: var(--font-body); font-size: 14px; line-height: 1.5; font-weight: 400; }
.label { font-family: var(--font-body); font-size: 14px; line-height: 1.3; font-weight: 600; }
.small { font-family: var(--font-body); font-size: 13px; line-height: 1.45; font-weight: 400; }
.caption { font-family: var(--font-body); font-size: 12px; line-height: 1.4; font-weight: 500; }
.eyebrow { font-family: var(--font-mono); font-size: 11px; line-height: 16px; font-weight: 400; letter-spacing: 0.14em; }
.mono-label { font-family: var(--font-mono); font-size: 12px; line-height: 1.4; font-weight: 400; }
.mono-terminal { font-family: var(--font-mono); font-size: 13px; line-height: 1.7; font-weight: 400; }
.mono-figure { font-family: var(--font-mono); font-size: 22px; line-height: 1.2; font-weight: 400; }
@font-face { font-family: "Hanken Grotesk"; src: url("fonts/HankenGrotesk-Variable.woff2") format("woff2"); font-weight: 100 900; font-style: normal; font-display: swap; }
@font-face { font-family: "Hanken Grotesk"; src: url("fonts/HankenGrotesk-Variable-Italic.woff2") format("woff2"); font-weight: 100 900; font-style: italic; font-display: swap; }
@font-face { font-family: "Fragment Mono"; src: url("fonts/FragmentMono-Regular.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Fragment Mono"; src: url("fonts/FragmentMono-Italic.woff2") format("woff2"); font-weight: 400; font-style: italic; font-display: swap; }
