body {
  overflow: hidden;
  background-color: hsl(0, 0%, 90%);
  font-family: -apple-system, BlinkMacSystemFont, avenir next, avenir, segoe ui, helvetica neue, helvetica, Ubuntu, roboto, noto, arial, sans-serif;
  touch-action: none;
  user-select: none;
}

canvas {
  position: absolute;
  top: 0;
  left: 0;
  background-color: hsl(0, 0%, 95%);
}

.wrapper {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  overflow: hidden;
}

.scene {
  position: absolute;
  width: 1500px;
  height: 1500px;
  overflow: hidden;
}

.car {
  position: absolute;
}

.car-body {
  position: absolute;
  top: -8px;
  left: -4px;
  width: 8px;
  height: 16px;
  border-radius: 2px;
  background-color: hsl(0, 0%, 50%);
}

.car-roof {
  position: absolute;
  top: 6px;
  left: 0px;
  width: 8px;
  height: 6px;
  border-radius: 2px;
  background-color: hsla(0, 0%, 100%, .375);
}

.car-body.shot {
  opacity: .5;
}

.car.red .car-body {
  background-color: hsl(0, 75%, 42%);
}

.car-name {
  position: absolute;
  top: 20px;
  left: 0;
  font-size: .625rem;
  color: hsla(0, 0%, 0%, .5);
  transform: translate(-50%, -50%);
  white-space: nowrap;
}

.car.red .car-name {
  color: hsl(0, 75%, 42%);
}

.debug .car-debug {
  display: block;
}

.car-debug {
  display: none;
  margin: 10px;
  background:hsl(0, 0%, 90%);
  padding: 5px 7px;
  border: 1px solid hsl(0, 0%, 70%);
  border-radius: 3px;
  z-index: 1;
}

.bullet {
  position: absolute;
  top: -3px;
  left: -3px;
  width: 6px;
  height: 6px;
}

.confetti {
  width: 100%;
  height: 100%;
  animation: confetti 5s ease-in-out -2s infinite;
}

@keyframes confetti {
  0% {
    transform: rotateZ(15deg) rotateY(0deg);
  }
  25% {
    transform: rotateZ(5deg) rotateY(360deg);
  }
  50% {
    transform: rotateZ(15deg) rotateY(720deg);
  }
  75% {
    transform: rotateZ(5deg) rotateY(1080deg);
  }
  100% {
    transform: rotateZ(15deg) rotateY(1440deg);
  }
}

.buttons {
  position: fixed;
  left: 0;
  top: 0;
}

.bottomleft {
  position: fixed;
  bottom: 0;
  left: 0;
  padding: .5rem;
  font-size: .75rem;
}
.name {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}
.name-bg {
  height: 100%;
  background-color: hsla(0, 0%, 0%, .75);
}
.name form {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background-color: hsl(0, 0%, 100%);
  padding: 1rem;
  border-radius: .25rem;
}
.name form input {
  display: inline-block;
  font: inherit;
  padding: .5rem;
}
.name form button {
  display: inline-block;
  font: inherit;
  padding: .5rem;
  margin-left: .5rem;
}
.points {
  position: fixed;
  top: 0;
  right: 5rem;
  text-align: right;
  white-space: pre;
  font-size: .625rem;
  color: hsl(0, 0, 50%);
  padding: .5rem;
}
.map-item {
  position: absolute;
  top: -0.0625rem;
  left: -0.0625rem;
  width: 0.125rem;
  height: 0.125rem;
  background-color: hsl(0, 0%, 50%);
  border-radius: 0.0625rem;
}
