*, *::before, *::after {
    box-sizing: border-box;
    font-family: Arial;
  }
  
  body {
    background-color: #333;
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100vh;
    margin: 0;
    font-size: 7.5vmin;
  }
  
  #reset {
    position: absolute;
    top: 5px;
    padding: 10px 20px; /* Padding around the button */
    font-size: 16px; /* Font size for the text */
    background-color: #f44; /* Red background color */
    color: white; /* White text color */
    border: none; /* Remove default border */
    border-radius: 5px; /* Rounded corners */
    cursor: pointer; /* Show pointer cursor on hover */
    transition: background-color 0.3s ease; /* Smooth background color transition */
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); /* Subtle shadow */
  }
  
  #reset:hover {
    background-color: #d33; /* Darker red on hover */
  }
  
  #reset:active {
    background-color: #b22; /* Even darker red when clicked */
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); /* Slightly deeper shadow on click */
  }
    
  #game-board {
    display: grid;
    grid-template-columns: repeat(var(--grid-size), var(--cell-size));
    grid-template-rows: repeat(var(--grid-size), var(--cell-size));
    background-color: #CCC;
    gap: var(--cell-gap);
    border-radius: 1vmin;
    padding: var(--cell-gap);
    position: relative;
  }
  
  .cell {
    background-color: #AAA;
    border-radius: 1vmin;
  }
  
  .tile {
    position: absolute;
    display: flex;
    justify-content: center;
    align-items: center;
    width: var(--cell-size);
    height: var(--cell-size);
    background-color: red;
    border-radius: 1vmin;
    top: calc(var(--y) * (var(--cell-size) + var(--cell-gap)) + var(--cell-gap));
    left: calc(var(--x) * (var(--cell-size) + var(--cell-gap)) + var(--cell-gap));
    font-weight: bold;
    background-color: hsl(200, 50%, var(--background-lightness));
    color: hsl(200, 25%, var(--text-lightness));
    animation: show 200ms ease-in-out;
    transition: 100ms ease-in-out;
  }
  
  @keyframes show {
    0% {
      opacity: .5;
      transform: scale(0);
    }
  }