:root{
/* ── Ink: the neutral ramp. Cool charcoal, a hair green so it sits under lime. ── */
--ink-1000:#050607;--ink-975:#07080A;--ink-950:#0A0C0D;--ink-900:#101315;--ink-850:#16191C;
--ink-800:#1C2023;--ink-750:#23272B;--ink-700:#2A2F33;--ink-600:#3A4046;--ink-500:#565D64;
--ink-400:#7A8189;--ink-300:#A3AAB1;--ink-200:#C8CDD2;--ink-150:#DDE1E4;--ink-100:#E9ECEE;
--ink-50:#F3F5F6;--ink-25:#FAFBFB;--paper:#FBFBF9;--white:#FFFFFF;

/* ── Signal lime: canon, pass, the one accent that means "checked". ── */
--lime-200:#EEFDC4;--lime-300:#E0FA96;--lime-400:#D2F76B;--lime-500:#C4F24A;--lime-600:#A8D62B;
--lime-700:#83A91F;--lime-900:#3A4E0C;--lime-950:#1C2606;

/* ── Drift coral: divergence, failure, irreversible. ── */
--coral-300:#FFB79E;--coral-400:#FF8A66;--coral-500:#FF6A3D;--coral-600:#E5491B;
--coral-900:#4A1B0A;--coral-950:#2A0F05;

/* ── Advisory amber: soft gates, staleness. ── */
--amber-300:#FFD98A;--amber-400:#FFC353;--amber-500:#FFB524;--amber-600:#E09400;
--amber-900:#452C02;--amber-950:#281900;

/* ── Intent azure: objectives, info, links. ── */
--azure-300:#A8CEFF;--azure-400:#7BB4FF;--azure-500:#4DA3FF;--azure-600:#1F7FE5;
--azure-900:#0D2C4D;--azure-950:#07192C;

/* ── Alpha hairlines (over ink) ── */
--alpha-w-04:rgba(255,255,255,.04);--alpha-w-06:rgba(255,255,255,.06);--alpha-w-08:rgba(255,255,255,.08);
--alpha-w-12:rgba(255,255,255,.12);--alpha-w-16:rgba(255,255,255,.16);--alpha-w-24:rgba(255,255,255,.24);
--alpha-k-04:rgba(5,6,7,.04);--alpha-k-08:rgba(5,6,7,.08);--alpha-k-12:rgba(5,6,7,.12);--alpha-k-60:rgba(5,6,7,.6);

/* ══ Semantic aliases. Default theme is dark — the CLI is the spine. ══ */
--bg-canvas:var(--ink-1000);
--bg-sunken:var(--ink-975);
--bg-surface:var(--ink-950);
--bg-raised:var(--ink-900);
--bg-overlay:var(--ink-850);
--bg-inset:var(--ink-975);
--bg-hover:var(--alpha-w-04);
--bg-active:var(--alpha-w-08);
--bg-scrim:rgba(5,6,7,.72);

--text-primary:var(--ink-50);
--text-secondary:var(--ink-300);
--text-tertiary:var(--ink-400);
--text-disabled:var(--ink-500);
--text-inverse:var(--ink-1000);
--text-accent:var(--lime-400);
--text-link:var(--lime-400);
--text-link-hover:var(--lime-300);

--border-subtle:var(--alpha-w-06);
--border-default:var(--alpha-w-12);
--border-strong:var(--alpha-w-24);
--border-accent:var(--lime-500);
--border-focus:var(--lime-400);

--accent:var(--lime-500);
--accent-hover:var(--lime-400);
--accent-press:var(--lime-600);
--accent-fg:var(--ink-1000);
--accent-quiet:var(--lime-950);
--accent-quiet-border:rgba(196,242,74,.22);

/* status: pass · advisory · fail · info — the four things check can say */
--status-pass:var(--lime-500);--status-pass-bg:var(--lime-950);--status-pass-fg:var(--lime-300);
--status-advisory:var(--amber-500);--status-advisory-bg:var(--amber-950);--status-advisory-fg:var(--amber-300);
--status-fail:var(--coral-500);--status-fail-bg:var(--coral-950);--status-fail-fg:var(--coral-300);
--status-info:var(--azure-500);--status-info-bg:var(--azure-950);--status-info-fg:var(--azure-300);
--status-neutral:var(--ink-500);--status-neutral-bg:var(--ink-850);--status-neutral-fg:var(--ink-300);

/* gating levels map onto status colors — founder is the strictest thing in the tree */
--gate-founder:var(--coral-500);--gate-owner:var(--amber-500);--gate-open:var(--ink-400);

/* diff surfaces (proposal review) */
--diff-add-bg:rgba(196,242,74,.09);--diff-add-fg:var(--lime-300);--diff-add-gutter:var(--lime-600);
--diff-del-bg:rgba(255,106,61,.09);--diff-del-fg:var(--coral-300);--diff-del-gutter:var(--coral-600);

/* syntax, for frontmatter and code blocks */
--code-key:var(--azure-300);--code-string:var(--lime-300);--code-number:var(--amber-300);
--code-comment:var(--ink-500);--code-punct:var(--ink-400);--code-delim:var(--ink-600);
}

/* Paper theme. Used for print, docs pages and marketing long-form. */
[data-theme="light"]{
--bg-canvas:var(--paper);
--bg-sunken:var(--ink-50);
--bg-surface:var(--white);
--bg-raised:var(--white);
--bg-overlay:var(--white);
--bg-inset:var(--ink-25);
--bg-hover:var(--alpha-k-04);
--bg-active:var(--alpha-k-08);
--bg-scrim:rgba(5,6,7,.4);

--text-primary:var(--ink-950);
--text-secondary:var(--ink-600);
--text-tertiary:var(--ink-500);
--text-disabled:var(--ink-400);
--text-inverse:var(--ink-25);
--text-accent:var(--lime-700);
--text-link:var(--ink-950);
--text-link-hover:var(--lime-700);

--border-subtle:var(--alpha-k-08);
--border-default:var(--alpha-k-12);
--border-strong:rgba(5,6,7,.22);

--accent-quiet:var(--lime-200);
--accent-quiet-border:rgba(131,169,31,.28);

--status-pass-bg:var(--lime-200);--status-pass-fg:var(--lime-900);
--status-advisory-bg:var(--amber-300);--status-advisory-fg:var(--amber-900);
--status-fail-bg:var(--coral-300);--status-fail-fg:var(--coral-900);
--status-info-bg:var(--azure-300);--status-info-fg:var(--azure-900);
--status-neutral-bg:var(--ink-100);--status-neutral-fg:var(--ink-600);

--code-key:var(--azure-600);--code-string:var(--lime-700);--code-number:var(--amber-600);
--code-comment:var(--ink-400);--code-punct:var(--ink-500);--code-delim:var(--ink-300);
}
