.scores { display: flex; gap: 10px; justify-content: center; margin-bottom: 14px; }
.score-box { background: var(--primary-soft); border-radius: 10px; padding: 8px 16px; }
.score-box small { display: block; color: var(--muted); font-size: 0.7rem; }
.score-box span { font-weight: 800; font-size: 1.2rem; color: var(--primary-dark); }

.puzzle {
  display: grid; gap: 6px; width: 300px; max-width: 100%;
  margin: 0 auto 14px; aspect-ratio: 1;
}
.tile {
  display: flex; align-items: center; justify-content: center;
  background: var(--grad); color: #fff; border-radius: 10px;
  font-family: var(--serif); font-size: 1.6rem; font-weight: 700;
  cursor: pointer; user-select: none; transition: transform 0.08s;
}
.tile:active { transform: scale(0.96); }
.tile.blank { background: transparent; cursor: default; }
.msg { min-height: 1.4em; font-weight: 700; color: var(--primary); margin: 4px 0 10px; }