/* Virtual Places design tokens. BUILD 1.
   Palette law: light is physically motivated. The only gradient
   permitted anywhere is the atmosphere limb itself. */

:root {
  /* Ground (deepened at B38: more contrast headroom, richer indigo
     in the surfaces; the light sources read warmer against it) */
  --ink: #05070d;          /* space, page ground */
  --surface: #0f1a2e;      /* plates, panels */
  --surface-2: #16233a;    /* raised plate */
  --line: rgba(232, 238, 247, 0.09);
  --line-strong: rgba(232, 238, 247, 0.22);

  /* Voice */
  --text: #e8eef7;
  --text-soft: #bcc5d2;
  --text-dim: #98a2b3;
  --text-faint: #5b6676;

  /* Light sources */
  --limb: #7fb4ff;         /* atmosphere blue, the present */
  --sodium: #ffb25e;       /* streetlight amber, memory */
  --silver: #98a2b3;       /* archival, gone */
  --violet: #a99bd6;       /* pre-dawn, dream */

  /* Accent triplets: every glow and wash derives from these, so a
     palette can move the light without leaving stale paint behind
     (council law: tokenize before any pilot) */
  --limb-rgb: 127, 180, 255;
  /* the outer breath of the atmosphere glow: blue turning green at
     the edge of space (B51, Kent's order). World, never chrome. */
  --aurora-rgb: 116, 220, 196;
  --sodium-rgb: 255, 178, 94;
  --violet-rgb: 169, 155, 214;
  /* the ground triplets: the glass veils and scrims derive from
     these, so a palette can warm the ROOM, not just the lights */
  --ink-rgb: 5, 7, 13; /* MUST match --ink's own hex (it drifted once) */
  --surface-rgb: 15, 26, 46;
  --scrim-rgb: 3, 6, 11;
  /* the night-plate lith tint aims at the limb; it must move WITH it */
  --lith-hue: 178deg;

  /* The ink that sits ON an accent-filled button: it must move with
     any palette whose accents darken (council law, deep-dive catch) */
  --on-limb: #06101f;
  --on-sodium: #1f1204;

  /* THE TYPE LADDER (council): twelve roles, one job per face.
     Fraunces speaks places and feelings; Inter runs the house; DM
     Mono reads instruments. A NEW TEXT STYLE MUST CLAIM ONE OF THESE
     ROLES; a new size is a design review, not an edit.
       display    600 clamp(34..50px) serif, opsz 144, wordmark only
       plate      600 clamp(24..30px) serif   place names
       head       600 26px serif              room headings
       title      600 22px serif              dialog headings
       story      400 italic 14px serif       quiet sentences
       body       400 15px sans               reading text
       ui         600 13px sans               buttons and chips
       caption    600 11px sans               navbar and strip labels
       input      400 16px sans               never smaller: iOS zooms
       instrument 400 12px mono               coords and readings
       whisper    400 11px mono               metadata lines
       ghost      400 10px mono               the floor; nothing below */

  /* Collection temperatures */
  --temp-grewup: var(--sodium);
  --temp-been: var(--limb);
  --temp-dream: var(--violet);
  --temp-gone: var(--silver);

  /* Type */
  --serif: "Fraunces", "Georgia", serif;
  --sans: "Inter", -apple-system, "Segoe UI", sans-serif;
  --mono: "DM Mono", "Consolas", monospace;

  /* Rhythm */
  --r-sm: 10px;
  --r-md: 16px;
  --r-lg: 24px;
  --pad: 20px;
  --ease-dive: cubic-bezier(0.7, 0, 0.25, 1);
  --ease-settle: cubic-bezier(0.2, 0.9, 0.3, 1);

  /* Limb arc: the screenshot tell */
  --limb-glow: 0 0 24px rgba(var(--limb-rgb), 0.35), 0 0 80px rgba(var(--limb-rgb), 0.12);
  --sodium-glow: 0 0 24px rgba(var(--sodium-rgb), 0.30), 0 0 80px rgba(var(--sodium-rgb), 0.10);

  /* Elevation: a dark app needs depth, not more hairlines.
     Edge-light above, deep soft shadow below. Not gradients. */
  --lift-1: inset 0 1px 0 rgba(232, 238, 247, 0.04), 0 10px 24px -14px rgba(0, 0, 0, 0.7);
  --lift-2: inset 0 1px 0 rgba(232, 238, 247, 0.055), 0 18px 40px -18px rgba(0, 0, 0, 0.85);
  --lift-3: inset 0 1px 0 rgba(232, 238, 247, 0.07), 0 28px 60px -20px rgba(0, 0, 0, 0.95);
}

/* ---------- THE PILOT: THE MAP ROOM (Kent's pick) ----------
   The room where the atlas came out after dinner: warm umber ground,
   dark leather plates, parchment text. The present is the one blue
   left, daylight through the window; memory deepens to true tungsten
   lamplight; dream is lavender dusk; gone is old paper. Worn behind
   ?palette=maproom until Kent commits; ?palette=blue takes it off.
   Nothing here touches the default. */
:root[data-palette="maproom"] {
  --ink: #0e0a06;
  --surface: #1c140c;
  --surface-2: #271d12;
  --line: rgba(243, 234, 217, 0.10);
  --line-strong: rgba(243, 234, 217, 0.24);
  --text: #f3ead9;
  --text-soft: #d8cbb2;
  --text-dim: #b5a68e;
  --text-faint: #6f6350;
  --limb: #6cc0f5;
  --limb-rgb: 108, 192, 245;
  --sodium: #ffa94d;
  --sodium-rgb: 255, 169, 77;
  --violet: #c7a5ea;
  --violet-rgb: 199, 165, 234;
  --silver: #a99f8d;
  --ink-rgb: 14, 10, 6;
  --surface-rgb: 28, 20, 12;
  --scrim-rgb: 10, 7, 4;
  --on-limb: #0a1a26;
  --on-sodium: #241503;
  /* the limb stays blue in this room (window light), so the night
     plates keep their moonlit aim */
  --lith-hue: 178deg;
}
