/* css/world-skin.css — ONE-WORLD canon tokens (the shared skin layer).
   Source of truth: data/glyph/makothoth-style-machine-2026-05-04.glyph.json:71-123 (Captain-sealed Style Machine).
   ADDITIVE ONLY: surfaces include this + re-point a handful of their own :root vars to these.
   Never a rewrite of a working surface. Two-track gold/cyan is deliberate: foreign surfaces adopt full
   canon tokens; PB/cockpit keep -game aliases so zero hue-shift hits the live loop until a preview converges them. */
:root {
  --bw-bg: #06060e;                        /* cosmic_black   glyph:73 */
  --bw-bg-2: #0a0a1a;                       /* void-2         cockpit-v2:58 */
  --bw-ink: #fffaf0;                        /* warm_white     glyph:82 */
  --bw-ink-dim: rgba(232,234,242,0.55);     /* cockpit-v2:63 */
  --bw-gold: #FFD93B;                       /* wizard_gold    glyph:74 */
  --bw-gold-game: #FFD700;                  /* live-surface gold — PB:318, cockpit:60 (converge last) */
  --bw-cyan: #80d4ff;                       /* ritual_cyan    glyph:75 */
  --bw-cyan-game: #00d9ff;                  /* live-surface cyan — cockpit:59, PB .bw-panel:210 */
  --bw-purple: #3a2050;                     /* glyph:78 */
  --bw-amber: #FFAA3D;                      /* glyph:79 */
  --bw-violet: #7a3dff;                     /* glyph:80 */
  --bw-silver: #cad8c0;                     /* glyph:81 */
  --bw-panel: rgba(10,10,30,0.92);          /* identical in PB:210 + cockpit:58 — already converged */
  --bw-panel-border: rgba(0,217,255,0.25);  /* PB:210 */
  --bw-glow-gold: rgba(255,217,59,0.32);    /* cockpit athelgard-portrait:461 */
  --bw-font-display: 'Cinzel', serif;                                                    /* glyph:95 */
  --bw-font-body: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;     /* PB:214 */
  --bw-font-mono: 'Fira Code', 'Courier New', monospace;
  --bw-ease: cubic-bezier(0.34, 1.56, 0.64, 1);  /* glyph:114 */
}

/* The travel veil — one dark breath between surfaces instead of a white flash (mounted by js/world-skin.js). */
.bw-veil {
  position: fixed; inset: 0; background: var(--bw-bg);
  opacity: 0; pointer-events: none; z-index: 99990;
  transition: opacity .35s var(--bw-ease);
}
.bw-veil.bw-veil-on { opacity: 1; }

/* Opt-in scope class a surface can add to <body> for canon panel/heading defaults without touching its own rules. */
.bw-skin { background: var(--bw-bg); color: var(--bw-ink); font-family: var(--bw-font-body); }
.bw-skin h1, .bw-skin h2, .bw-skin .bw-display { font-family: var(--bw-font-display); letter-spacing: .04em; }
.bw-skin .bw-panel { background: var(--bw-panel); border: 1px solid var(--bw-panel-border); }
