/* 全体レイアウト */
body {
  font-family: sans-serif;
  text-align: center;
  background-color: #f0f0f0;
  margin: 0;
  padding: 0;
}

h1 {
  margin-top: 20px;
  font-size: clamp(20px, 5vw, 32px);
}

/* スコア表示 */
#scoreboard {
  margin: 10px;
  font-size: clamp(16px, 4vw, 22px);
}

/* メッセージ表示 */
#message {
  font-size: clamp(16px, 4vw, 20px);
  margin: 10px;
}

/* リセットボタン */
#reset-btn {
  padding: 10px 20px;
  font-size: clamp(14px, 4vw, 18px);
  margin-top: 10px;
  cursor: pointer;
}

/* 盤面（レスポンシブ対応） */
#board {
  display: grid;
  grid-template-columns: repeat(8, 1fr);
  grid-template-rows: repeat(8, 1fr);
  width: min(90vw, 400px);
  height: min(90vw, 400px);
  margin: 20px auto;
  border: 4px solid #004d00;
  box-sizing: content-box;
  background-color: #006400;
}

/* マス（セル） */
.cell {
  width: 100%;
  height: 100%;
  background-color: #006400;
  border: 1px solid #004d00;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

/* プレイヤーが置けるマス（ハイライト） */
.cell.valid {
  background-color: #228b22;
}

/* 石（ディスク） */
.disc {
  width: 80%;
  height: 80%;
  border-radius: 50%;
  backface-visibility: hidden;
  transform-style: preserve-3d;
  transition: transform 0.5s, background-color 0.5s;
}

.disc.black {
  background-color: black;
}

.disc.white {
  background-color: white;
}

/* 裏返しアニメーション */
.flip {
  transform: rotateY(180deg);
}
