.btn{font-family:var(--font-body);font-weight:600;border:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);transition:all var(--transition-fast);-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-sm{padding:var(--sp-2) var(--sp-3);font-size:var(--text-sm);border-radius:var(--radius-sm)}.btn-md{padding:var(--sp-3) var(--sp-6);font-size:var(--text-base)}.btn-lg,.btn-md{border-radius:var(--radius-lg)}.btn-lg{padding:var(--sp-4) var(--sp-8);font-size:var(--text-lg)}.btn-primary{background:linear-gradient(135deg,var(--gold),var(--gold-muted));color:var(--bg-deep)}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,var(--gold-light),var(--gold));box-shadow:var(--shadow-gold)}.btn-primary:active:not(:disabled){transform:scale(.97)}.btn-ghost{background:transparent;color:var(--gold);border:1px solid var(--gold-muted)}.btn-ghost:hover:not(:disabled){background:var(--gold-glow);border-color:var(--gold)}.btn-choice{background:var(--bg-elevated);color:var(--text-primary);border:1px solid var(--border-accent);min-width:72px;min-height:48px;padding:var(--sp-3) var(--sp-5);border-radius:var(--radius-lg);font-size:var(--text-base);font-weight:500}.btn-choice:hover:not(:disabled){border-color:var(--gold-muted);background:var(--bg-hover)}.btn-choice:active:not(:disabled){transform:scale(.96)}.btn-choice-correct{background:var(--success);border:1px solid var(--success);border-radius:var(--radius-lg);animation:correctFlash .6s ease}.btn-choice-correct,.btn-choice-wrong{color:white;min-width:72px;padding:var(--sp-3) var(--sp-5);font-size:var(--text-base);font-weight:600}.btn-choice-wrong{background:var(--error);border:1px solid var(--error);border-radius:var(--radius-lg);animation:wrongShake .4s ease}@media (hover:hover) and (pointer:fine){.key-hint{display:inline-block;font-family:var(--font-mono,monospace);font-size:.65em;font-weight:600;line-height:1;padding:2px 5px;margin-left:var(--sp-2);border-radius:var(--radius-sm);background:rgba(255,255,255,.08);color:var(--text-muted);vertical-align:middle}.btn-primary .key-hint{background:rgba(0,0,0,.2);color:var(--bg-deep)}}@media not all and (hover:hover) and (pointer:fine){.key-hint{display:none}}.card{position:relative;overflow:hidden;background:var(--bg-surface);border:1px solid var(--border-accent-faint);border-radius:var(--radius-md);padding:var(--sp-6);transition:border-color var(--transition-base),box-shadow var(--transition-base)}.card:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--gold),transparent);opacity:0;transition:opacity var(--transition-base)}.card.card-interactive:hover{border-color:var(--border-accent-medium);box-shadow:var(--shadow-gold)}.card-glow:before,.card.card-interactive:hover:before{opacity:1}.card-glow{border-color:var(--border-accent-medium);box-shadow:var(--shadow-gold)}