.mm-board {
    display: grid;
    grid-template-columns: repeat(var(--columns, 4), 1fr);
    gap: 8px;
}

.mm-card {
    aspect-ratio: 3 / 4;
    padding: 0;
    border: 0;
    background: none;
    perspective: 600px;
    cursor: pointer;
    font: inherit;
}

.mm-card:disabled { cursor: default; }

.mm-card:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; border-radius: var(--radius); }

.mm-card__inner {
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
    transition: transform 0.35s ease;
    transform-style: preserve-3d;
}

.mm-card.is-flipped .mm-card__inner { transform: rotateY(180deg); }

.mm-card__face {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    border-radius: var(--radius);
    border: 1px solid var(--border);
    backface-visibility: hidden;
    font-size: clamp(1.5rem, 7vw, 2.5rem);
}

.mm-card__back {
    background: var(--accent);
    color: var(--accent-text);
    font-weight: 700;
}

.mm-card__front {
    background: var(--surface);
    transform: rotateY(180deg);
}

.mm-card.is-matched .mm-card__front {
    border-color: #2e9d5b;
    box-shadow: inset 0 0 0 2px #2e9d5b;
}

@media (prefers-reduced-motion: reduce) {
    .mm-card__inner { transition: none; }
}
