:root{
/* ---- Pigments (evocative layer) ---- */
--night-950:#100A26; --night-900:#150E31; --night-800:#1D1440; --night-700:#271B52; --night-600:#332565; --night-500:#413173;
--robe-700:#221768; --robe-600:#2D1D86; --robe-500:#3A28A0;
--hat-600:#47257F; --hat-500:#552C8E; --hat-400:#7451B3; --hat-300:#9678D2;
--mottle-300:#9A9AA6;
--thread-700:#6E5426; --thread-600:#9C7B2E; --thread-500:#C9A23F; --thread-400:#DBB95E;
--starlight-100:#F2ECDB; --starlight-300:#C9C1AE; --starlight-500:#948C7C;
--lilac-400:#A78BD4; --lilac-300:#BEA9E0;
--obsidian-950:#14101F;
--arcady-500:#5C8A5F; --arcady-400:#74A377;
--ochre-500:#A9862F; --ochre-400:#C89A4A;
--ember-500:#A84632; --ember-400:#C25B47;
--overcast-50:#F4F4F2; --pavement-300:#CACACA; --slate-600:#6B728E;
--sky-deep:#0C0720; /* base of the one sanctioned gradient */
/* ---- Semantic (plain layer) — components consume these only ---- */
--bg-canvas:var(--night-950);
--bg-surface:var(--night-900);
--bg-surface-raised:var(--night-800);
--bg-surface-overlay:var(--night-700);
--bg-ornament:var(--robe-700);
--border-hairline:var(--night-600);
--border-keyline:rgba(201,162,63,.55); /* thread-500 @55% — one per surface */
--text-primary:var(--starlight-100);
--text-secondary:var(--starlight-300);
--text-tertiary:var(--starlight-500);
--brand-primary:var(--hat-500);
--brand-hover:var(--hat-400);
--brand-structure:var(--robe-600);
--accent-link:var(--lilac-400);
--accent-link-hover:var(--lilac-300);
--accent-sacred:var(--thread-500);
--feedback-positive:var(--arcady-400);
--feedback-caution:var(--ochre-400);
--feedback-danger:var(--ember-400);
--media-plate:var(--overcast-50);
--media-letterbox:var(--obsidian-950);
--scrim:rgba(16,10,38,.7); /* night-950 @70% — never black */
--glow-focus:0 0 0 3px rgba(167,139,212,.35),0 0 18px 4px rgba(167,139,212,.18); /* the airbrush law: wide, faint, soft */
--glow-thread:0 0 22px 2px rgba(201,162,63,.22);
}
