*,:before,:after{box-sizing:border-box}body{font-family:var(--font);background:var(--background);color:var(--text);-webkit-text-size-adjust:100%;margin:0}main.page{max-width:560px;margin:0 auto;padding:24px 16px 48px}h1{margin:0 0 8px;font-size:28px;line-height:1.2}p{line-height:1.5}a{color:var(--primary)}.muted{color:var(--text-muted)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);margin:16px 0;padding:16px}.btn{border-radius:var(--radius-md);border:1px solid var(--primary);background:var(--primary);width:100%;min-height:48px;color:var(--on-primary);font:600 16px var(--font);cursor:pointer;justify-content:center;align-items:center;padding:0 24px;text-decoration:none;display:flex}.btn.secondary{background:var(--surface);color:var(--text);border-color:var(--border)}.btn:disabled{opacity:.45;cursor:default}.row{gap:8px;display:flex}.row>*{flex:1}.stack{gap:8px;display:grid}.game-head{color:var(--text-muted);justify-content:space-between;align-items:center;font-weight:600;display:flex}.timer{color:var(--text);font-variant-numeric:tabular-nums;font-size:20px}.target{text-align:center;margin:16px 0}.target strong{font-variant-numeric:tabular-nums;font-size:56px;display:block}.grid{gap:8px;display:grid}.plate{border-radius:var(--radius-md);border:2px solid var(--border);background:var(--plate);min-height:64px;color:var(--text);font:700 26px var(--font);font-variant-numeric:tabular-nums;cursor:pointer}.plate.created{background:var(--plate-created)}.plate.selected{background:var(--plate-selected);border-color:var(--text);color:var(--on-primary);border-width:3px}.plate.empty{visibility:hidden}.plate.shake{animation:.3s shake}@keyframes shake{25%{transform:translate(-6px)}75%{transform:translate(6px)}}@media (prefers-reduced-motion:reduce){.plate.shake{animation:none}}.ops{grid-template-columns:repeat(4,1fr);gap:8px;margin:24px 0 8px;display:grid}.op{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface);min-height:56px;color:var(--text);font:700 28px var(--font);cursor:pointer}.op[aria-pressed=true]{background:var(--primary);color:var(--on-primary);border:3px solid var(--text)}.message{text-align:center;min-height:48px;color:var(--danger);justify-content:center;align-items:center;font-size:14px;display:flex}.banner{border:1px solid var(--warning);background:var(--warning-soft);border-radius:var(--radius-md);padding:8px;font-size:14px}.versus{text-align:center;grid-template-columns:1fr 1fr;gap:8px;display:grid}.versus .who{font-weight:700}.versus .score{font-variant-numeric:tabular-nums;font-size:32px;font-weight:800}.versus .winner{outline:3px solid var(--success);border-radius:var(--radius-md)}.headline{text-align:center;margin:8px 0;font-size:24px;font-weight:800}.solution{font-variant-numeric:tabular-nums;margin:4px 0}.legal h2{margin-top:24px;font-size:20px}
