/* Idlewild Design — the token floor.
 *
 * Load FIRST on every page, before style.css:
 *   <link rel="stylesheet" href="/css/tokens.css?v=tokens1">
 *
 * This file is the single place the house's values live. It is additive: it
 * loads ahead of every other stylesheet, so anything a room still re-declares
 * continues to win. Nothing moves on the day it lands. Rooms migrate onto it
 * one at a time, and scripts/check-tokens-floor.mjs holds the line.
 *
 * Three tiers, and the rule that makes them worth having:
 *   Tier 1  house constants — never change per room.
 *   Tier 2  lanes — the surface language for light Desk, dark room, email.
 *   Tier 3  rooms — a room declares ONLY --room-hue, --room-field, --room-warm.
 *
 * A room stylesheet that sets --bg, --surface, --card, --border, --ink,
 * --ink-soft, --ink-faint or any font token is a standard violation. Twenty-two
 * of them do today; the PENDING list in check-tokens-floor.mjs names them and
 * may only ever shrink.
 *
 * Values are the ones shipping on main as of 2026-09-11. Where the Brand Kit
 * and the design pack disagreed, the Brand Kit won — it is the value source.
 */

/* ---------- Tier 1 · house constants ---------- */
:root {
  /* The cold instrument. Ice means information the house is reporting. */
  --ice: #9ad8ff;
  --ice-hot: #dff4ff;

  /* The warm house. Brass means chrome you operate. */
  --brass: #c4a574;
  --brass-deep: #8c6a3a;
  --wood: #3d2418;
  --shade: #201810;

  /* Light, paper and the second voice. */
  --ivory: #f3ead4;
  --lamp: #f3d08a;
  --amber: #e4c89a;
  --sage: #7a8a5e;
  --sage-deep: #56633f;

  /* The Gibson Ice field — the ice-navy night the chrome and the Foyer's glass
     house sit in (LOCK-GIBSON-ICE-CHROME-0926). Same values as the email
     lane's --email-bg / --email-surface, available to every page. */
  --navy: #0b1220;
  --navy-2: #111a2b;

  /* Four faces, fixed jobs. Source Serif carries the room name and the job.
     Figtree carries everything else. Share Tech Mono carries numerals only —
     never prose, never a heading. Rajdhani is Overlay and Up Next chrome and
     has no token here, because it must not appear inside a room.

     --font-code is the fourth, and it is not --font-mono. Share Tech Mono is a
     display numeral face: it is drawn for readouts, not for anything the reader
     retypes character for character. A literal needs a face that disambiguates
     one from lowercase L, zero from capital O. The system stack does; Figtree
     does not, which is how "Type ls" got read as "Type Is" on The Interlock's
     step 2 on 2026-09-11. Commands, flags, paths, filenames and code go here. */
  --display: "Source Serif 4", Georgia, "Iowan Old Style", serif;
  --sans: "Figtree", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --font-mono: "Share Tech Mono", ui-monospace, monospace;
  --font-code: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

/* ---------- Tier 2 · lanes ---------- */

/* Room dark — every room page. The ramp moves as one piece: a field without
   the ink beneath it is the partial override that shipped The Gym at 2.60:1. */
body.room {
  --room-hue: var(--ice);
  --room-field: #120e0b;
  --room-warm: var(--amber);
}

/* Email / product HTML — the ice navy stack, kept off the room lane. */
.email-shell {
  --email-bg: var(--navy);
  --email-surface: var(--navy-2);
  --email-border: #1e2a44;
  --email-ink: #e8eef7;
  --email-accent: var(--ice);
}

/* ---------- Tier 3 · rooms, three variables each ---------- *
 * Pick --room-hue for what the room is, not for variety: ice for
 * instrumentation, brass for records and archives, sage for growth and
 * reflection, a custom hue only where the subject genuinely has a colour.
 * The fields below are the ones already shipping in style.css. */

/* The Foyer is Gibson's room: ice, not brass (LOCK-GIBSON-ICE-CHROME-0926). */
body.room--desk     { --room-hue: var(--ice);   --room-field: var(--navy); --room-warm: var(--lamp); }
body.room--gym      { --room-hue: var(--ice);   --room-field: #121418; --room-warm: var(--amber); }
body.room--study    { --room-hue: var(--ice);   --room-field: #100c0a; --room-warm: var(--ivory); }
body.room--pages    { --room-hue: var(--ice);   --room-field: #100c0a; --room-warm: var(--ivory); }
body.room--kitchen  { --room-hue: #e8a070;      --room-field: #120e0b; --room-warm: var(--lamp); }
body.room--library  { --room-hue: var(--brass); --room-field: #120c08; --room-warm: var(--lamp); }
body.room--workshop { --room-hue: var(--brass); --room-field: #1a120c; --room-warm: var(--amber); }
body.room--mic      { --room-hue: var(--brass); --room-field: #120e0b; --room-warm: var(--lamp); }
body.room--academy  { --room-hue: var(--sage);  --room-field: #14120e; --room-warm: var(--amber); }
body.room--lab      { --room-hue: var(--ice);   --room-field: #120e0b; --room-warm: var(--lamp); }
body.room--ledger   { --room-hue: var(--brass); --room-field: #100c0a; --room-warm: var(--lamp); }
/* The Salon. Field moved #0c1410 → #120e0b on 2026-09-11: the room's bespoke
   green ramp was room-audit F1, and the Brand Kit skin for this room is the
   warm house field. Sage stays as the hue — the Salon is the house's second
   voice, and growth belongs in the instrument layer, not in the floor. */
body.room--woods    { --room-hue: var(--sage);  --room-field: #120e0b; --room-warm: var(--amber); }
body.room--war      { --room-hue: var(--ice);   --room-field: #100c0a; --room-warm: var(--amber); }
body.room--mail     { --room-hue: var(--ice);   --room-field: #0e0c0a; --room-warm: var(--amber); }
body.room--corp     { --room-hue: var(--brass); --room-field: #0e0c0a; --room-warm: var(--amber); }
body.room--clip     { --room-hue: var(--ice);   --room-field: #100c0a; --room-warm: var(--amber); }
