* {
  box-sizing: border-box;
  font-size: 62.5%;
  margin: 0;
  padding: 0;
}

body {
  font-family: 'Koulen', cursive;
  background-color: lightgray;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100vh;
  overflow: hidden;
}

.indicators-and-buttons {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 9em;
}
.coordinates,
.canvas-dimensions {
  color: #545454;
  display: flex;
  font-size: 4vw;
}
.coordinates {
  gap: 2.7em;
}
.canvas-dimensions {
  gap: 2em;
}
.reset-button,
.download-button {
  font-family: 'Koulen', cursive;
  background-color: #fc3768;
  color: white;
  border: none;
  font-size: 1vw;
  margin: 0 0 0 1em;
  padding: 0.75em 0;
  width: 10em;
}
.reset-button:hover,
.download-button:hover {
  filter: brightness(95%);
}
.reset-button:active,
.download-button:active {
  filter: brightness(75%);
}
.buttons a {
  all: unset;
}

.canvas {
  display: grid;
  grid-template-columns: repeat(16, 1fr);
  max-width: 320px;
  margin: 4rem auto;
}
.canvas > * {
  background-color: white;
}
.canvas-dimensions {
  gap: 1.9em;
}

.tools-dock {
  background-color: white;
  display: grid;
  place-items: center;
  grid-template-columns: repeat(5, 1fr);
  border-radius: 1.3rem;
  padding: 4em 0;
  width: 90vw;
}
.tools-dock > * {
  background: none;
  border: none;
}
.tools-dock > *:hover {
  background-color: rgb(225, 225, 225);
  box-shadow: 0 0 0 10px rgb(225, 225, 225);
  border-radius: 5px;
  border-color: black;
}
.tools-dock img {
  width: 8vw;
}
.tools-dock input {
  visibility: hidden;
  position: absolute;
  width: 20px;
  top: 35%;
  left: 20%;
}
.paint-button-on,
.eraser-button-on,
.spray-button-on {
  background-color: rgb(225, 225, 225);
  box-shadow: 0 0 0 10px rgb(225, 225, 225);
  border-radius: 5px;
  border-color: black;
}

@media (min-width: 641px) {
  /* portrait tablets, portrait iPad, landscape e-readers, landscape 800x480 or 854x480 phones */
  .tools-dock img {
    width: 5vw;
  }
}

@media (min-width: 961px) {
  /* tablet, landscape iPad, lo-res laptops ands desktops */
  .indicators-and-buttons {
    gap: 34em;
    margin-left: 10rem;
  }
  .coordinates,
  .canvas-dimensions {
    font-size: 2vw;
  }
  .buttons > * {
    font-size: 1vw;
    margin: 0 0 0 1em;
    padding: 0.75em 0;
    width: 10em;
  }

  .canvas {
    max-width: 480px;
    margin: 1rem 0 1rem 10rem;
  }
  .tools-dock {
    grid-template-columns: initial;
    border-radius: 0;
    position: fixed;
    left: 0;
    margin: 0;
    height: 100vh;
    width: 10vw;
  }
  .tools-dock img {
    width: 4vw;
  }
  .tools-dock input {
    top: 22%;
    left: 105%;
  }
}
