@import url("https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;800&display=swap");

*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  font-family: "JetBrains Mono", monospace;
}

html,
body {
  height: 100%;
}

body {
  /* Custom properties set with js */
  --grid-size: 0px;
  --grid-squares: 0;
  --grid-opacity: 0.05;

  display: grid;
  place-items: center;
  shape-rendering: crisp-edges;
}

/* Game objects */
.map {
  outline: 1px solid black;
  background-image: linear-gradient(rgba(0 0 0 / 0) 96%, rgba(0 0 0 / var(--grid-opacity)) 96%),
    linear-gradient(90deg, rgba(0 0 0 / 0) 96%, rgba(0 0 0 / var(--grid-opacity)) 96%);
  background-size: var(--grid-size) var(--grid-size);
  position: relative;
}

.snake {
  position: absolute;
  background-color: black;
  width: var(--grid-size);
  height: var(--grid-size);
  z-index: 1;
}

.apple {
  position: absolute;
  background-color: hsl(120, 50%, 50%);
  border-radius: calc(var(--grid-size) / 3);
  width: var(--grid-size);
  height: var(--grid-size);
}

/* UI elements */
.info {
  line-height: 0.75;
  display: flex;
  align-items: end;
  justify-content: space-between;
  padding-block: calc(var(--grid-size) / 4);
}

.restart {
  position: relative;
  height: calc(var(--grid-size) * var(--grid-squares));
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background-color: rgba(0 0 0 / 0.75);
  color: white;
}

/* Utility Classes */
.hidden {
  display: none;
}
