.reversi-game { display: grid; justify-items: center; gap: 12px; min-width: 0; }
.reversi-score { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px; }
.reversi-score span { display: inline-flex; align-items: center; gap: 6px; padding: 4px 8px; border: 1px solid #657275; border-radius: 8px; font-weight: 700; font-size: .82rem; }
.reversi-score span::before { content: ''; width: 12px; height: 12px; border-radius: 50%; background: #151826; border: 1px solid #8a9eaf; }
.reversi-score [data-player="2"]::before { background: #f1f4ff; }
.reversi-board {
  display: grid;
  grid-template-columns: repeat(8, minmax(0, 1fr));
  width: min(100%, 27rem);
  padding: 4px;
  border: 1px solid #69ac9b;
  border-radius: 12px;
  background: #214f4a;
  gap: 2px;
}
.reversi-cell {
  display: grid;
  place-items: center;
  aspect-ratio: 1;
  min-width: 0;
  padding: 0;
  border: 1px solid #508f84;
  border-radius: 4px;
  background: #28665b;
  touch-action: manipulation;
}
.reversi-cell[data-player="1"]::after, .reversi-cell[data-player="2"]::after, .reversi-cell.is-legal::after { content: ''; width: 76%; aspect-ratio: 1; border-radius: 50%; }
.reversi-cell[data-player="1"]::after { background: radial-gradient(at 38% 30%, #4b566e, #121827 75%); border: 1px solid #8094a3; box-shadow: 0 2px 2px #0a2023a3; }
.reversi-cell[data-player="2"]::after { background: radial-gradient(at 38% 30%, #f9f7ff, #bacbde 80%); border: 1px solid #ecf8fd; box-shadow: 0 2px 2px #0a2023a3; }
.reversi-cell.is-legal::after { width: 26%; background: #bef8de; }
.reversi-cell.is-last { background: #377c6b; border-color: #a7edcf; }
.reversi-cell[aria-disabled="false"]:hover { background: #43887a; }
.reversi-cell[aria-disabled="true"] { cursor: default; }
.reversi-board .reversi-cell:focus-visible { outline: 2px solid #fff0ab; outline-offset: -2px; }
