body {
  text-align: center;
  background: linear-gradient(-45deg,
      #0f172a,
      #1e293b,
      #111827,
      #1d4ed8);

  background-size: 400% 400%;

  animation: bgMove 12s ease infinite;
}

@keyframes bgMove {

  0% {
    background-position: 0% 50%;
  }

  50% {
    background-position: 100% 50%;
  }

  100% {
    background-position: 0% 50%;
  }

}

#level-title {
  font-family: 'Press Start 2P', cursive;
  font-size: 3rem;
  margin: 3.4% auto 2% auto;
  color: #d5dff5;
}

.container {
  display: block;
  width: 50%;
  margin: auto;

}

.start-btn {
  font-family: 'Press Start 2P', cursive;
  font-size: 1.1rem;
  padding: 15px 35px;
  margin: 20px auto 30px auto;
  display: block;
  color: #0f172a;
  background-color: #4ade80;
  border: 4px solid #000;
  border-radius: 12px;
  cursor: pointer;
  box-shadow: 1px 10px 0 #15803d;
  transition: transform 0.1s ease, box-shadow 0.1s ease;
}

.start-btn:hover {
  background-color: #86efac;
}

.start-btn:active {
  transform: translateY(4px);
  box-shadow: 0 2px 0 #15803d;
}

.hidden {
  display: none !important;
}

.btn {
  margin: 25px;
  display: inline-block;
  height: 200px;
  width: 200px;
  border: 10px solid black;
  border-radius: 50%;
  transition: transform .25s, box-shadow .25s;
}

.btn:hover {

  transform: translateY(-8px);

  box-shadow:

    0 10px 30px rgba(255, 255, 255, .3);

}

.game-over {

  animation: shake .35s;

}

@keyframes shake {

  0% {
    transform: translateX(0);
  }

  20% {
    transform: translateX(-10px);
  }

  40% {
    transform: translateX(10px);
  }

  60% {
    transform: translateX(-10px);
  }

  80% {
    transform: translateX(10px);
  }

  100% {
    transform: translateX(0);
  }

}

.red {
  background:
    linear-gradient(145deg,
      #ff6b6b,
      #c92a2a);
}

.green {
  background:
    linear-gradient(145deg,
      #4ade80,
      #22c55e);
}

.blue {
  background:
    linear-gradient(145deg,
      #3b82f6,
      #1d4ed8);
}

.yellow {
  background:
    linear-gradient(145deg,
      #fbbf24,
      #f59e0b);
}

.clicked {
  box-shadow: 0 0 20px white;
  background:
    linear-gradient(145deg,
      #a3a3a3,
      #6b6b6b);
  transform: scale(.94);
  filter: brightness(1.5);
}

.pressed {
  animation: flash-animation 0.28s cubic-bezier(0.22, 1, 0.36, 1);
}

@keyframes flash-animation {
  0% {
    transform: scale(1);
    filter: brightness(1);
    background-color: inherit;
    box-shadow: 0 0 0 rgba(255, 255, 255, 0);
  }

  50% {
    transform: scale(1.08);
    filter: brightness(1.8);
    background:
      linear-gradient(145deg,
        #dfc9c9,
        #c9a8a8);
    box-shadow:
      0 0 20px rgba(255, 255, 255, 0.7),
      0 0 40px rgba(255, 255, 255, 0.9),
      0 0 60px rgba(255, 255, 255, 0.5);
  }

  100% {
    transform: scale(1);
    filter: brightness(1);
    background-color: inherit;
    box-shadow: 0 0 0 rgba(255, 255, 255, 0);
  }
}

.high-score {
  font-family: "Press Start 2P", cursive;
  color: #d5dff5;
  font-size: .8rem;
  margin-top: -10px;
}

.footer {

  margin-top: 80px;

  text-align: center;

  font-family: "Press Start 2P", cursive;

  color: #d5dff5;

}

.footer h3 {

  font-size: .9rem;

  margin: 25px 0;

  color: white;

  letter-spacing: 4px;

}

.footer p {

  font-size: .65rem;

  margin: 15px 0;

}

.footer span {

  color: #4cc9f0;

}

.line {

  width: 220px;

  height: 2px;

  margin: 25px auto;

  background: linear-gradient(90deg,
      transparent,
      #4cc9f0,
      transparent);

  box-shadow: 0 0 15px #4cc9f0;

}

/* =========================================
   RESPONSIVE DESIGN (Tablets & Mobile)
   ========================================= */

/* --- TABLETS (Screens smaller than 768px) --- */
@media (max-width: 768px) {
  .container {
    width: 80%; /* Widen the container container[cite: 3] */
  }
  
  .btn {
    height: 150px;
    width: 150px;
    margin: 15px; /* Shrink spacing */
  }

  #level-title {
    font-size: 2.2rem; /* Slightly smaller text */
  }
}


@media (max-width: 480px) {
  .container {
    width: 100%; /* Take up the full screen width */
  }
  
  .btn {
    height: 110px; /* Make buttons small enough to fit side-by-side */
    width: 110px;
    margin: 10px;
    border-width: 6px; /* Thinner border for small screens */
  }

  #level-title {
    font-size: 1.5rem; /* Much smaller text so it doesn't wrap awkwardly */
    margin: 8% auto;
  }

  .start-btn {
    font-size: 0.9rem;
    padding: 12px 25px; /* Adjust start button for thumbs */
  }
  
  .footer {
    margin-top: 50px;
  }
}