body { gap: 22px; }
#score {
  display: flex;
  gap: 30px;
  font-size: 1rem;
}
#score span { font-weight: 700; }
.sr { color: var(--red); }
.sy { color: var(--yellow); }
#board {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 8px;
  background: var(--blue-board);
  padding: 12px;
  border-radius: 14px;
  box-shadow: 0 10px 40px var(--shadow);
  border-bottom: 6px solid var(--blue-board-dark);
}
.cell {
  width: 64px;
  height: 64px;
  background: var(--hole);
  border-radius: 50%;
  cursor: pointer;
  box-shadow: inset 0 3px 6px rgba(0,0,0,0.5);
  transition: transform 0.1s;
  position: relative;
}
#board.locked .cell { cursor: default; }
.disc {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  transform: scale(0);
  animation: drop 0.28s cubic-bezier(0.34, 1.3, 0.7, 1) forwards;
}
.disc.red { background: var(--red); box-shadow: inset 0 -3px 6px rgba(0,0,0,0.35); }
.disc.yellow { background: var(--yellow); box-shadow: inset 0 -3px 6px rgba(0,0,0,0.35); }
@keyframes drop { to { transform: scale(1); } }
.cell.win .disc { animation: pulse 0.7s ease-in-out infinite alternate; }
@keyframes pulse { from { transform: scale(1); } to { transform: scale(0.78); filter: brightness(1.4); } }
/* hover column highlight */
.cell.hl { background: var(--hole-hover); }
@media (max-width: 560px) {
  .cell { width: 40px; height: 40px; }
  #board { gap: 5px; padding: 8px; }
}
