* {
  box-sizing: border-box;
}

body {
  background: #333;
  padding: 0;
  margin: 0;
  overflow: hidden;
  height: 100dvh;
  display: flex;
  place-items: center;
  justify-content: center;
}

.hud {
  position: fixed;
  top: 12px;
  right: 12px;

  background: black;
  color: red;
  padding: 4px 8px;

  font-family: monospace;
  font-size: 14px;
  z-index: 999;
}

.touch-controls {
  position: fixed;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);

  display: none;
  /* hidden by default on large screens */
  grid-template-columns: 180px 180px 180px;
  grid-template-rows: 180px 180px 180px;
  gap: 6px;
}

/* Show touch controls on any screen smaller than a standard laptop */
@media (max-width: 1279px) {
  .touch-controls {
    display: grid;
  }
}


.touch-controls button {
  width: 180px;
  height: 180px;
  font-size: 20px;
  opacity: 0.4;
  border-radius: 10px;

  /* prevent button text selection */
  user-select: none;
  -webkit-user-select: none;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}

/* Grid placement */
.touch-controls .up {
  grid-column: 2;
  grid-row: 1;
}

.touch-controls .left {
  grid-column: 1;
  grid-row: 2;
}

.touch-controls .right {
  grid-column: 3;
  grid-row: 2;
}

.touch-controls .down {
  grid-column: 2;
  grid-row: 3;
}


.game-container {
  position: relative;
  width: 352px;
  height: 198px;
  margin: 0 auto;
  outline: 1px solid #FFD700;

  transform: scale(3);
}

/* Scale down on small screens (phones, tablets, small Android devices) */
@media (max-width: 1279px) {
  .game-container {
    transform: scale(2.5);
  }
}

.game-container canvas {
  image-rendering: pixelated;
}