:root{--bg: #0e0f1a;--panel: #171a2b;--tile: #23263d;--tile-on: #e8c66b;--ink: #eef0ff;--gold: #e8c66b;--good: #54d09a;--bad: #e8736b;--miss: #6ea8fe;--muted: #8a8fb0}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;height:100%}body{background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;overscroll-behavior:none}#app{max-width:520px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column;padding:env(safe-area-inset-top) 12px env(safe-area-inset-bottom)}.top{display:flex;align-items:center;justify-content:space-between;padding:12px 4px 6px}.brand{font-size:20px;margin:0;font-weight:800;letter-spacing:-.5px}.brand span{color:var(--gold);font-weight:600}.meta{display:flex;gap:10px;align-items:center;font-variant-numeric:tabular-nums}.puzzle{color:var(--muted);font-size:13px}.timer{background:var(--panel);padding:4px 9px;border-radius:8px;font-weight:700;font-size:15px}.score{background:var(--gold);color:#2a230a;padding:4px 11px;border-radius:8px;font-weight:800;font-size:15px;min-width:34px;text-align:center}.board-wrap{position:relative;padding:6px 0 2px}.current{text-align:center;height:30px;line-height:30px;font-weight:800;letter-spacing:3px;color:var(--gold);font-size:20px;min-height:30px}.board{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;touch-action:none;user-select:none;-webkit-user-select:none}.tile{aspect-ratio:1 / 1;background:var(--tile);border-radius:14px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:clamp(28px,11vw,48px);color:var(--ink);transition:transform .05s ease,background .05s ease;pointer-events:auto}.tile.on{background:var(--tile-on);color:#2a230a;transform:scale(1.06)}.flash{position:absolute;left:50%;top:44%;translate:-50% -50%;font-weight:800;font-size:26px;opacity:0;pointer-events:none;transition:opacity .15s;text-shadow:0 2px 10px rgba(0,0,0,.5)}.flash.show{opacity:1}.flash.good{color:var(--good)}.flash.bad{color:var(--bad)}.dock{flex:1;margin-top:10px}.found{display:flex;flex-wrap:wrap;gap:6px;align-content:flex-start}.chip{background:var(--panel);color:var(--ink);padding:4px 9px;border-radius:7px;font-size:13px;font-weight:600}.chip:first-letter{text-transform:uppercase}.overlay{position:fixed;inset:0;background:#080910db;backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:24px;z-index:10}.overlay.hidden{display:none}.card{background:var(--panel);border-radius:18px;padding:26px 22px;max-width:360px;width:100%;text-align:center;box-shadow:0 20px 60px #00000080;max-height:92dvh;overflow-y:auto}.card h2{margin:0 0 10px;font-size:24px}.lede{color:var(--muted);font-size:15px;line-height:1.5;margin:0 0 16px}.note{color:var(--muted);font-size:14px;margin:8px 0}.hint{color:var(--gold);font-size:13px;margin:10px 0 0;min-height:16px;word-break:break-word}.bigscore{font-size:56px;font-weight:800;color:var(--gold);line-height:1;margin:6px 0}.bigscore small{display:block;font-size:13px;color:var(--muted);font-weight:600;letter-spacing:1px;margin-top:4px}.rating-line{color:var(--gold);font-size:19px;font-weight:800;margin:2px 0 6px}.slide-row{display:flex;align-items:center;justify-content:center;gap:4px;margin:14px 0 4px}.slide-arrow{background:transparent;border:0;color:var(--gold);font-size:34px;font-weight:800;line-height:1;padding:6px 8px;cursor:pointer;flex:0 0 auto}.slide-arrow:active{transform:translateY(1px)}.slide-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;width:200px;touch-action:manipulation;cursor:pointer}.slide-tile{aspect-ratio:1 / 1;display:flex;align-items:center;justify-content:center;border-radius:8px;background:var(--tile);font-weight:800;font-size:clamp(14px,5vw,22px);color:var(--ink);transition:opacity .15s,background .15s}.slide-tile.dim{opacity:.22}.slide-tile.on-found{background:var(--gold);color:#2a230a}.slide-tile.on-miss{background:var(--miss);color:#07121f}.slide-label{font-weight:800;font-size:17px;margin:6px 0 2px;letter-spacing:1px;min-height:22px}.slide-label.is-found{color:var(--gold)}.slide-label.is-miss{color:var(--miss)}.slide-count{margin-top:2px}.btn{margin-top:14px;width:100%;background:var(--gold);color:#2a230a;border:0;padding:15px;border-radius:12px;font-size:17px;font-weight:800;cursor:pointer}.btn:disabled{opacity:.5}.btn:active{transform:translateY(1px)}
