:root {
  --color-dark: #1B1B1E;
  --color-mid: #555555;
  --color-light: #B0B0B5;
  --color-neon: #F5E663;
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: var(--color-dark);
  background-image:
    radial-gradient(circle at 1px 1px, rgba(255, 255, 255, 0.05) 1px, transparent 1.2px);
  background-size: 18px 18px;
  color: var(--color-light);
}

#game-container {
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  padding: 12px;
}

#game-container::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 10px;
  pointer-events: none;
  background-image:
    repeating-linear-gradient(45deg,
      var(--color-neon) 0,
      var(--color-neon) 10px,
      var(--color-dark) 10px,
      var(--color-dark) 20px);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask-composite: exclude;
  padding: 15px;
  box-sizing: border-box;
  filter: drop-shadow(0 4px 12px rgba(0, 0, 0, 0.35));
}

#game-container canvas {
  image-rendering: pixelated;
  background-color: var(--color-mid);
  border-radius: 10px;
  border: 3px solid var(--color-dark);
  outline: 3px solid rgba(0, 0, 0, 0.35);
}

canvas {
  image-rendering: pixelated;
  image-rendering: crisp-edges;
}

.hit-flash {
  box-shadow: 0 0 0 4px var(--color-light) inset, 0 0 16px var(--color-light);
}

.warning {
  outline: 2px dashed var(--color-neon);
  outline-offset: 4px;
}