:root {
  color-scheme: dark;
  --bg: #0d0f12;
  --panel: #121621;
  --ink: #e7ebf3;
  --muted: #8c97a8;
  --accent: #ffd54a;
  --border: #222a38;
  --well: #000915;
}
* { box-sizing: border-box; }
body {
  margin: 0;
  background: radial-gradient(1200px 800px at 30% -10%, #141a24, var(--bg));
  color: var(--ink);
  font: 14px/1.4 ui-sans-serif, system-ui, Segoe UI, Roboto, Helvetica, Arial;
  display: grid; place-items: start center;
  min-height: 100svh; padding: 16px;
}
.app { width: min(100%, 860px); }
.toolbar {
  background: var(--panel);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 10px 12px;
  display: flex; gap: 12px; align-items: center; justify-content: space-between;
}
.scores { display: flex; gap: 10px; align-items: center; }
.sep { color: var(--muted); }
.controls { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.stage { margin-top: 14px; display: grid; justify-items: center; gap: 8px; }
.canvas-wrap { position: relative; }
#game {
  image-rendering: pixelated;
  background: var(--well);
  border: 1px solid var(--border);
  border-radius: 10px;
  box-shadow: 0 10px 40px rgba(0,0,0,.5), inset 0 0 40px rgba(0,20,60,.5);
}
.help { color: var(--muted); font-size: 12px; }
.overlay {
  position: absolute; inset: 0; display: grid; place-items: center;
  color: var(--accent); font-weight: 700; font-size: 20px; text-align: center;
  text-shadow: 0 2px 8px rgba(0,0,0,.6);
  pointer-events: none;
}
.hidden { display: none; }
button, select, input[type="checkbox"] { cursor: pointer; }