/* Presentation tokens: change these through theme.palette, never through geometry. */
:root{--surface:#24141c;--raised:#3a2230;--text:#ffe6ef;--muted:#c9a0b4;--border:#8a4a68;--highlight:#5c2040;--accent:#ff7aa2;--secondary:#7dffd4;--background:#140910}
body,#app,.game-design .cabinet{color:var(--text);background:var(--background)}
.ambient-art:after,.scan-line{display:none}.brand-glyph{clip-path:none;border-radius:4px}
.game-design .topbar,.game-design .fever-meter,.game-design .critical-bar,.game-design .play-area{background:var(--surface);border-color:var(--border)}
.game-design .icon-button{background:var(--raised);color:var(--text);border-color:var(--border)}
/* TURBO / AUTO: off is dim recessed metal, on is a lit lamp — different hues so they cannot be confused. */
.game-design .machine-console .console-modes .turbo-button{
  background:linear-gradient(#2a1c24,#160e12);
  border:1px solid #5a3a48;
  color:#8a6a78;
  opacity:1;
  box-shadow:inset 0 2px 6px #000000aa;
  filter:none;
}
.game-design .machine-console .console-modes .turbo-button svg{opacity:.55;color:#8a6a78}
.game-design .machine-console .console-modes .turbo-button[aria-pressed=true]{
  background:linear-gradient(#5cffd8,#14a07a);
  border-color:#c8fff0;
  color:#04140f;
  text-shadow:none;
  box-shadow:0 0 14px #7dffd4cc, inset 0 0 8px #ffffff66;
}
.game-design .machine-console .console-modes .turbo-button[aria-pressed=true] svg{opacity:1;color:#04140f}
.game-design .machine-console .console-modes .mode-button{
  background:linear-gradient(#2a1c24,#160e12);
  border:1px solid #5a3a48;
  color:#8a6a78;
  box-shadow:inset 0 2px 6px #000000aa;
}
.game-design .machine-console .console-modes #auto[aria-pressed=true],
.game-design .machine-console .console-modes .mode-button[aria-pressed=true]{
  background:linear-gradient(#ff8ab0,#d42a62);
  border-color:#ffd0e0;
  color:#1a040c;
  box-shadow:0 0 14px #ff7aa2cc, inset 0 0 8px #ffffff66;
}
.game-design .machine-console .settings-button{
  background:linear-gradient(#2a1c24,#160e12);
  border:1px solid #5a3a48;
  color:#c9a0b4;
}
dialog{background:var(--surface);border:1px solid var(--border);color:var(--text)}
dialog p,dialog small,dialog label{color:var(--muted)}
dialog button,dialog .demo-options button,dialog .demo-options button:last-child,dialog .pack-card,dialog .settings-tabs button{background:var(--raised);color:var(--text);border-color:var(--border);clip-path:none}
dialog button[aria-selected=true],dialog button[aria-pressed=true],dialog .pack-card.selected{background:var(--highlight);border-color:var(--accent)}
input[type=range],input[type=checkbox]{accent-color:var(--accent)}
.game-design .win-overlay,.game-design .combo-callout,.game-design .combo-callout.fever-announcement{background:none;border:0;box-shadow:none;backdrop-filter:none;text-shadow:0 2px 3px #111}
.game-design .impact-canvas,.game-design .impact-flash,.game-design .spin-sprite{filter:none}
#app{background:radial-gradient(ellipse at 55% 18%,#5c204088,transparent 58%),radial-gradient(ellipse at 80% 80%,#0d3a3388,transparent 50%),#140910}
.brand-glyph{background:var(--accent);color:#140910;box-shadow:0 0 10px #ff7aa266}
.game-design .fever-track>i{background:linear-gradient(90deg,var(--accent),var(--secondary));box-shadow:0 0 10px var(--accent)}
/* Complete film browser; media geometry is independent of theme colors. */
#demo-dialog [hidden]{display:none!important}
#demo-dialog .preview-intro{font-size:12px;line-height:1.7;color:#c5c5c5}
.preview-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:14px 0}
.preview-tabs button,.preview-transport button,.preview-back{padding:10px 12px;border:1px solid #858585;border-radius:7px;background:#2a2a2a;color:#dedede;font:700 13px system-ui}
.preview-tabs button[aria-selected=true]{background:linear-gradient(145deg,#575757,#373737);border-color:#dedede;color:#f1f1f1}
.preview-group{margin:18px 0 24px}.preview-group h3{font:700 13px system-ui;letter-spacing:1px;color:#cecece;border-bottom:1px solid #4d4d4d;padding-bottom:8px}
#demo-dialog .demo-options{gap:10px}#demo-dialog .demo-options button{min-width:0;padding:14px 11px;text-align:left;min-height:104px;clip-path:none}
#demo-dialog .demo-options button span{font-size:15px;line-height:1.35}#demo-dialog .demo-options button small{font-size:11px;line-height:1.6;margin-top:6px}#demo-dialog .demo-options button b{font-size:10px;letter-spacing:.4px;margin-bottom:7px}
.preview-player h3{font:800 21px system-ui;color:#f1f1f1;margin:16px 0 8px}.preview-player p{font-size:12px;line-height:1.7;color:#c5c5c5}
#preview-video{display:block;width:100%;aspect-ratio:16/9;object-fit:contain;background:#0b0b0b;border:1px solid #7a7a7a;border-radius:8px;margin:14px 0}
.preview-transport{display:flex;gap:8px;align-items:center}.preview-transport output{margin-left:auto;font:12px system-ui;color:#e4e4e4;font-variant-numeric:tabular-nums}
#preview-seek{width:100%;margin:16px 0 4px;accent-color:#a7a7a7}#preview-player-status{min-height:21px}
.preview-back{background:transparent;padding:7px 11px}#preview-machine>p{font-size:12px;line-height:1.7;color:#c5c5c5}

/* Shared appearance across secondary surfaces. Override tokens, not each dialog. */
dialog h2,dialog h3,dialog strong,dialog b,.preview-transport output{color:var(--text)}
dialog :is(p,small,label),#demo-dialog .preview-intro,.preview-player p,#preview-machine>p{color:var(--muted)}
dialog :is(.preview-tabs button,.preview-transport button,.preview-back,.settings-tabs button,.credit-packs button,.bet-options button,.sound-switch){background:var(--raised);border-color:var(--border);color:var(--text)}
dialog :is(button[aria-selected=true],button[aria-pressed=true],.credit-packs button.selected){background:var(--highlight);border-color:var(--accent)}
dialog :is(.simulation-notice,.audio-channel,.auto-check,.reactor-preview,select,input){background:var(--surface);border-color:var(--border);color:var(--text)}
dialog :is(.preview-group h3,table th,table td,section,.settings-actions){border-color:var(--border)}
dialog :is(.audio-value,.credit-packs strong,.reactor-tier-list span,.reactor-tier-list small){color:var(--accent)}
#preview-video{background:var(--background);border-color:var(--border)}#preview-seek{accent-color:var(--accent)}
.game-design .critical-bar>span{background:var(--background);color:var(--muted);border-color:var(--border)}
.game-design .critical-bar>span:is(.active,.selected,.available){background:var(--highlight);color:var(--text)}
.game-design :is(.fever-meter b,.fever-meter strong,.combo-callout strong,.combo-callout b){color:var(--accent)}
.game-design .fever-track>i{background:linear-gradient(90deg,var(--accent),var(--secondary));box-shadow:0 0 10px var(--accent)}

/* Machine-specific artwork geometry (400px logical coordinates).
   controlDeck is 800x272, rendered at 400x136 with y=4.
   Conservative inner recesses: wallet [27,20,346,25], bet [39,54,65,60],
   turbo [297,54,62,23], lower controls [297,87,62,24].
   The inherited polygon belongs to the old cabinet, not this artwork. */
.game-design .machine-console::before{clip-path:none}
.game-design .console-screen{left:32px;top:22.5px;width:336px;height:20px}
.game-design .machine-console .wallet{width:100%;--wallet-inset:2px}
.game-design .machine-console .bet-control{width:61px;height:56px;max-height:56px;margin-left:14px;margin-top:0}
.game-design .machine-console .bet-control:focus-visible{outline-offset:-3px}
.game-design .console-modes{width:58px;height:53px;margin-left:-1px;margin-top:0;grid-template-rows:19px 20px;gap:14px;align-content:start}
.game-design .console-modes .turbo-button{width:58px;height:19px;padding:1px 3px;gap:2px}
.game-design .console-modes .turbo-button svg{width:12px;height:12px}
.game-design .console-modes .auto-control-row{width:58px;height:20px;grid-template-columns:35px 20px;gap:3px;align-items:center}
.game-design .console-modes .auto-control-row .mode-button{width:35px;height:20px;padding:1px}
.game-design .console-modes .settings-button{width:20px;height:20px;padding:2px}
.game-design .console-modes .settings-button svg{width:14px;height:14px}
.game-design .machine-console .console-modes :is(.turbo-button,.mode-button)[aria-pressed=true]{box-shadow:inset 0 0 8px #ffffff66}
/* Keep full-width labels and close controls inside secondary surfaces. */
dialog .dialog-heading{gap:12px;background:var(--surface)}
dialog .dialog-heading h2{overflow-wrap:anywhere}
dialog .dialog-heading .icon-button{flex:0 0 36px}
