.control-button {
  min-width: 47px;
  height: 43px;
  padding: 0 13px;
  border-radius: 8px;
  background: linear-gradient(180deg, rgba(96,25,36,.62), rgba(48,13,20,.62));
  box-shadow: inset 0 1px rgba(255,255,255,.07), 0 4px 12px rgba(0,0,0,.18);
  font-size: 16px;
  touch-action: none;
  user-select: none;
  transition: .12s;
}
.control-button:hover,.control-button:active,.control-button.pressed {
  background: var(--red);
  transform: translateY(1px);
  box-shadow: inset 0 2px 7px rgba(0,0,0,.25);
}
.control-wide { min-width: 118px; font-size: 9px; letter-spacing: .1em; }
.control-separator { width: 1px; height: 28px; margin: 0 3px; background: rgba(255,255,255,.12); }
.game-stage.has-flash { animation: stageFlash .3s ease; }
@keyframes stageFlash { 50% { border-color: rgba(240,75,94,.75); box-shadow: 0 0 35px rgba(240,75,94,.2); } }
@media (max-width: 430px) {
  .game-controls { gap: 5px; }
  .control-button { min-width: 42px; height: 42px; padding: 0 10px; }
  .control-wide { min-width: 92px; }
}
