:root {
  --ease-out: cubic-bezier(0.23, 1, 0.32, 1);
  --ease-in-out: cubic-bezier(0.77, 0, 0.175, 1);
  --ink: #e9f1f7;
  --ink-dim: #9fb3c4;
  --gold: #f1c46b;
  --blue: #59b7ff;
  --cyan: #7ef0ff;
  --orange: #ff8a3d;
  --red: #ff5a5f;
  --panel: rgba(12, 22, 36, 0.92);
  --panel-edge: rgba(140, 190, 230, 0.28);
  --font: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --font-display: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;
}
* { box-sizing: border-box; }
html, body { margin: 0; height: 100%; overflow: hidden; background: #04070d; color: var(--ink); font-family: var(--font); }
button { font: inherit; color: inherit; cursor: pointer; }
button:disabled { cursor: default; }
/* fixed (not absolute): a 1600 px absolute stage widened the mobile layout viewport to 1500+ px (v2 phone pass) */
#stage { position: fixed; left: 0; top: 0; width: 1600px; height: 900px; transform-origin: 0 0; overflow: hidden; user-select: none; -webkit-user-select: none; touch-action: none; }
#board, #cards, #hud, #fx, #overlay, #zoom { position: absolute; inset: 0; }
#cards, #hud, #fx, #zoom { pointer-events: none; }
#arrows { position: absolute; inset: 0; width: 1600px; height: 900px; pointer-events: none; z-index: 5600; }
#fx { z-index: 5700; }
#overlay { z-index: 6000; pointer-events: none; }
#overlay > * { pointer-events: auto; }
#zoom { z-index: 7000; }
/* #zoom is click-through; its modal children (examine, zone viewers) must take clicks again (F, 13/10/2026: viewer Close was dead) */
#zoom > .examine-scrim, #zoom > .scrim-viewer { pointer-events: auto; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; } }
