body {
  background: #000000;
  color: white;
  text-align: center;
  font-family: Arial;
}

/* ================= GAME AREA ================= */

#game {
  position: relative;
  width: 300px;
  height: 600px;
  margin: auto;
  background: #111;
  overflow: hidden;

  box-sizing: border-box;
  border: 2px solid #fff;
  box-shadow: 0 0 10px rgba(255,255,255,0.2);
}

/* lanes */
.lane {
  position: absolute;
  top: 0;
  height: 100%;
  width: 2px;
  background: rgba(255,255,255,0.08);
  pointer-events: none;
}

/* tiles */
.tile {
  position: absolute;
  width: 60px;
  height: 120px;
  background: black;
  border: 1px solid #333;
  box-sizing: border-box;
}

/* hit animation */
@keyframes hitFlash {
  0% { transform: scale(1); background: black; }
  50% { transform: scale(1.15); background: white; }
  100% { transform: scale(1); background: black; }
}

.tile.hit {
  animation: hitFlash 0.15s ease;
}

/* hit zone */
#hitZone {
  position: absolute;
  bottom: 0;
  width: 100%;
  height: 120px;

  background: rgba(255, 255, 255, 0.05);
  pointer-events: none;
}

#hitZone::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 3px;

  background: red;
  box-shadow: 0 0 10px red;
}

/* ================= HUD ================= */

#hud {
  position: fixed;
  top: 20px;
  right: 20px;

  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 6px;

  font-family: Arial;
  z-index: 1000;
}

/* shared HUD style */
#hud div {
  padding: 4px 10px;
  border-radius: 6px;
  background: rgba(0, 0, 0, 0.4);
}

/* individual text sizes */
#score {
  font-size: 18px;
  color: white;
}

#combo {
  font-size: 16px;
  color: #fff;
}

#mult {
  font-size: 14px;
  color: #aaa;
}

#misses {
  font-size: 14px;
  color: #777;
}

/* ================= GAME OVER ================= */

#gameOverScreen {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;

  background: rgba(0,0,0,0.85);
  color: white;

  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;

  font-size: 32px;
  z-index: 999;
}

.hidden {
  display: none !important;
}

/* ================= SHAKE ================= */

@keyframes shake {
  0% { transform: translate(0, 0); }
  20% { transform: translate(-6px, 3px); }
  40% { transform: translate(6px, -3px); }
  60% { transform: translate(-4px, 2px); }
  80% { transform: translate(4px, -2px); }
  100% { transform: translate(0, 0); }
}

.shake {
  animation: shake 0.25s linear;
}