.scores { display: flex; gap: 10px; justify-content: center; margin-bottom: 14px; }
.score-box { background: var(--primary-soft); border-radius: 10px; padding: 8px 18px; }
.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); }

.board { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; max-width: 320px; margin: 0 auto 14px; }
.mcard {
  aspect-ratio: 1; border-radius: 10px; background: var(--primary);
  display: flex; align-items: center; justify-content: center;
  font-size: 1.8rem; cursor: pointer; user-select: none;
  transform: rotateY(180deg); transition: transform 0.25s, background 0.25s;
}
.mcard .face { transform: rotateY(180deg); }
.mcard.flipped { transform: rotateY(0); background: #fff; border: 1px solid var(--border); }
.mcard.matched { transform: rotateY(0); background: var(--primary-soft); border: 1px solid var(--primary); cursor: default; }
.msg { min-height: 1.4em; font-weight: 700; color: var(--primary); margin-bottom: 10px; }