:root{color-scheme:dark;--bg: #0f0f16;--panel: #16161f;--line: rgba(255, 255, 255, .08);--text: #f1f5f9;--muted: #94a3b8;--accent: #6366f1;--correct: #538d4e;--present: #b59f3b;--absent: #3a3a3c;--key: #818384}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}#app{min-height:100vh;display:flex;flex-direction:column;align-items:center;gap:14px;padding:16px;user-select:none;-webkit-user-select:none}.screen{margin:auto;text-align:center}.screen h1{font-size:32px}.screen .lead{font-size:16px;color:var(--text)}.screen p{color:var(--muted)}.top{width:100%;max-width:520px;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-bottom:10px;border-bottom:1px solid var(--line)}h1{margin:0;font-size:22px;font-weight:700;letter-spacing:.01em}h1 span{color:var(--muted);font-weight:500}.top p{margin:3px 0 0;font-size:13px;color:var(--muted)}.icon{width:32px;height:32px;flex:none;border:1px solid var(--line);border-radius:999px;background:#ffffff0a;color:var(--text);font-weight:700;cursor:pointer}.hint{margin:0;font-size:13px;color:#fde68a}.board{--gap: 6px;--tile: max(28px, min(58px, calc((100vw - 32px - (var(--len) - 1) * var(--gap)) / var(--len)), calc((100vh - 360px) / 6 - var(--gap))));display:grid;gap:var(--gap)}.is-done .board{--tile: max(24px, min(46px, calc((100vw - 32px - (var(--len) - 1) * var(--gap)) / var(--len)), calc((100vh - 480px) / 6 - var(--gap))))}.row{display:grid;grid-template-columns:repeat(var(--len),var(--tile));gap:var(--gap)}.tile{width:var(--tile);height:var(--tile);display:flex;align-items:center;justify-content:center;border:2px solid #3a3a3c;border-radius:6px;font-size:calc(var(--tile) * .5);font-weight:800;text-transform:uppercase}.tile.filled{border-color:#6b6c70;animation:pop .1s ease}.tile.correct{background:var(--correct);border-color:var(--correct)}.tile.present{background:var(--present);border-color:var(--present)}.tile.absent{background:var(--absent);border-color:var(--absent)}.reveal .tile{animation:flip .5s ease both;animation-delay:calc(var(--i) * .18s)}.shake{animation:shake .4s ease}@keyframes flip{0%{transform:rotateX(0)}50%{transform:rotateX(90deg)}to{transform:rotateX(0)}}@keyframes pop{50%{transform:scale(1.08)}}@keyframes shake{10%,90%{transform:translate(-2px)}20%,80%{transform:translate(4px)}30%,50%,70%{transform:translate(-6px)}40%,60%{transform:translate(6px)}}.keyboard{display:grid;gap:8px;width:100%;max-width:520px;margin-top:4px}.keys{display:flex;justify-content:center;gap:6px}.key{flex:1;max-width:44px;height:54px;border:0;border-radius:6px;background:var(--key);color:#fff;font-size:15px;font-weight:700;cursor:pointer}.key.wide{flex:1.7;max-width:74px;font-size:13px}.key.correct{background:var(--correct)}.key.present{background:var(--present)}.key.absent{background:var(--absent)}.key:active{filter:brightness(1.15)}.end{width:100%;max-width:420px;display:grid;gap:14px;justify-items:center;padding:18px;border:1px solid var(--line);border-radius:16px;background:var(--panel)}.result{margin:0;font-size:18px;font-weight:600}.stats{width:100%;display:grid;grid-template-columns:repeat(4,1fr);text-align:center}.stats b{display:block;font-size:26px}.stats span{font-size:11px;color:var(--muted)}.dist{width:100%;display:grid;gap:4px}.bar{display:flex;align-items:center;gap:8px;font-size:13px}.bar span{width:10px;color:var(--muted)}.bar div{min-width:22px;padding:2px 6px;border-radius:4px;background:var(--absent);text-align:right;font-weight:700}.bar div.now{background:var(--correct)}.primary{padding:10px 18px;border:0;border-radius:8px;background:var(--accent);color:#fff;font-size:14px;font-weight:600;cursor:pointer}.primary:disabled{opacity:.55;cursor:default}.next{margin:0;font-size:13px;color:var(--muted)}.next span{font-variant-numeric:tabular-nums;color:var(--text)}.toast{position:fixed;top:72px;left:50%;transform:translate(-50%);padding:8px 14px;border-radius:8px;background:var(--text);color:var(--bg);font-size:14px;font-weight:600}.rules{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:16px;background:#000000b3}.rules>div{max-width:420px;padding:20px;border:1px solid var(--line);border-radius:16px;background:var(--panel)}.rules h2{margin:0 0 8px;font-size:18px}.rules p{margin:6px 0;font-size:14px;color:#cbd5e1}.rules .primary{margin-top:10px}
