/* Practice games (flashcards + matching) */
.cb-practice{margin:28px 0;padding:20px;border:2px dashed #c9b8ff;border-radius:16px;background:#faf8ff;position:relative;overflow:hidden}
.cb-practice__title{margin:0 0 12px;font-size:1.25rem}
.cb-practice__tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}
.cb-tab{border:2px solid var(--aja-primary,#6c3cff);background:#fff;color:var(--aja-primary,#6c3cff);border-radius:999px;padding:8px 16px;font-weight:700;cursor:pointer;min-height:44px}
.cb-tab.is-active{background:var(--aja-primary,#6c3cff);color:#fff}
.cb-tab:focus-visible,.cb-fc__card:focus-visible,.cb-mg__tile:focus-visible{outline:3px solid #ffb300;outline-offset:2px}
.cb-fc__count,.cb-fc__hint,.cb-fc__stats{text-align:center;margin:8px 0;color:#555;font-size:.9rem}
.cb-fc__card{display:block;width:100%;max-width:420px;height:240px;margin:0 auto;perspective:1000px;background:none;border:0;padding:0;cursor:pointer}
.cb-fc__inner{position:relative;display:block;width:100%;height:100%;transition:transform .5s;transform-style:preserve-3d}
.cb-fc__card.is-flipped .cb-fc__inner{transform:rotateY(180deg)}
.cb-fc__face{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border-radius:18px;backface-visibility:hidden;-webkit-backface-visibility:hidden;box-shadow:0 6px 20px rgba(0,0,0,.12);padding:16px}
.cb-fc__front{background:#fff;color:#222}
.cb-fc__back{background:linear-gradient(135deg,#ff5e62,#ffb300);color:#fff;transform:rotateY(180deg)}
.cb-fc__emoji{font-size:3rem;line-height:1}
.cb-fc__label{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;opacity:.8}
.cb-fc__text{font-size:1.6rem;font-weight:800;text-align:center}
.cb-fc__nav,.cb-fc__piles{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin:10px 0}
.cb-fc__piles .aja-btn,.cb-fc__nav .aja-btn{min-height:44px}
.cb-fc__done{text-align:center}
.cb-fc__win{font-size:1.2rem;font-weight:700}
.cb-mg__help{margin:0 0 8px;color:#555}
.cb-mg__head{display:flex;gap:16px;font-weight:700;margin-bottom:10px}
.cb-mg__board{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.cb-mg__col{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.cb-mg__tile{width:100%;min-height:52px;padding:8px 10px;border:2px solid #ddd;border-radius:12px;background:#fff;font-size:1rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;text-align:center;transition:transform .15s,background .15s}
.cb-mg__tile.is-selected{border-color:var(--aja-primary,#6c3cff);background:#f1ebff;transform:scale(1.03)}
.cb-mg__tile.is-matched{border-color:#2eb872;background:#e6f8ee;color:#1d7a4a;cursor:default;opacity:.75}
.cb-mg__tile.is-wrong{border-color:#e53935;background:#fdecea;animation:cb-shake .4s}
.cb-mg__emoji{font-size:1.3rem}
.cb-mg__msg{min-height:1.5em;text-align:center;font-weight:700;margin:10px 0 0}
.cb-mg__win{text-align:center;margin-top:12px}
.cb-mg__stars{font-size:2.4rem;color:#ffb300;margin:0;letter-spacing:4px}
.cb-confetti{position:absolute;inset:0;pointer-events:none}
.cb-confetti span{position:absolute;top:-10%;font-size:1.6rem;animation:cb-fall 2.2s ease-in forwards}
@keyframes cb-fall{to{transform:translateY(700px) rotate(360deg);opacity:0}}
@keyframes cb-shake{25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}
@media (max-width:600px){.cb-practice{padding:14px}.cb-fc__card{height:200px}.cb-fc__text{font-size:1.3rem}.cb-mg__tile{font-size:.9rem;min-height:48px}}
@media (prefers-reduced-motion:reduce){.cb-fc__inner,.cb-mg__tile{transition:none}.cb-confetti{display:none}.cb-mg__tile.is-wrong{animation:none}}
