.mask[data-v-dc7ab877]{z-index:50;background:#3c32286b;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.modal[data-v-dc7ab877]{background:#faf8ef;border-radius:14px;flex-direction:column;width:min(380px,100%);max-height:min(86vh,640px);display:flex;overflow:hidden;box-shadow:0 12px 40px #0000002e}.modal.wide[data-v-dc7ab877]{width:min(440px,100%)}header[data-v-dc7ab877]{justify-content:space-between;align-items:center;padding:14px 16px 6px 20px;display:flex}h2[data-v-dc7ab877]{color:#776e65;margin:0;font-size:18px}.x[data-v-dc7ab877]{color:#9c8f84;cursor:pointer;background:0 0;border:0;padding:4px 8px;font-size:26px;line-height:1}.body[data-v-dc7ab877]{-webkit-overflow-scrolling:touch;padding:8px 20px 20px;overflow-y:auto}@media (max-width:520px){.mask[data-v-dc7ab877]{align-items:flex-end;padding:0}.modal[data-v-dc7ab877],.modal.wide[data-v-dc7ab877]{width:100%;max-height:88vh;padding-bottom:env(safe-area-inset-bottom);border-radius:16px 16px 0 0}}.form[data-v-732d1727]{flex-direction:column;gap:12px;display:flex}label[data-v-732d1727]{color:#776e65;flex-direction:column;gap:5px;font-size:13px;display:flex}em[data-v-732d1727]{color:#b0a497;font-size:12px;font-style:normal}input[data-v-732d1727]{font:inherit;color:#3c3a32;background:#fff;border:1px solid #d8cfc4;border-radius:8px;outline:none;padding:10px 12px;font-size:16px}input[data-v-732d1727]:focus{border-color:#8f7a66}.err[data-v-732d1727]{color:#c0392b;margin:0;font-size:13px}.btn.primary[data-v-732d1727]{margin-top:4px;padding:11px 0;font-size:16px}.switch[data-v-732d1727]{text-align:center;color:#9c8f84;margin:0;font-size:13px}.switch a[data-v-732d1727]{color:#8f7a66}.board[data-v-f5ddaf61]{width:var(--board);height:var(--board);--gap:calc(var(--board) * .03);--cell:calc((var(--board) - var(--gap) * 5) / 4);grid-template-columns:repeat(4, var(--cell));grid-template-rows:repeat(4, var(--cell));gap:var(--gap);padding:var(--gap);touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;background:#bbada0;border-radius:10px;display:grid;position:relative}.cell[data-v-f5ddaf61]{background:#eee4da59;border-radius:6px}.tile[data-v-f5ddaf61]{width:var(--cell);height:var(--cell);transform:translate(calc(var(--gap) + var(--c) * (var(--cell) + var(--gap))), calc(var(--gap) + var(--r) * (var(--cell) + var(--gap))));z-index:2;transition:transform .1s ease-in-out;position:absolute;top:0;left:0}.tile.ghost[data-v-f5ddaf61]{z-index:1}.tile.merged[data-v-f5ddaf61]{z-index:3}.inner[data-v-f5ddaf61]{width:100%;height:100%;font-weight:700;font-size:calc(var(--cell) * .45);font-variant-numeric:tabular-nums;color:#776e65;background:#eee4da;border-radius:6px;justify-content:center;align-items:center;display:flex}.d3 .inner[data-v-f5ddaf61]{font-size:calc(var(--cell) * .38)}.d4 .inner[data-v-f5ddaf61]{font-size:calc(var(--cell) * .3)}.d5 .inner[data-v-f5ddaf61]{font-size:calc(var(--cell) * .24)}.v4 .inner[data-v-f5ddaf61]{background:#ede0c8}.v8 .inner[data-v-f5ddaf61]{color:#f9f6f2;background:#f2b179}.v16 .inner[data-v-f5ddaf61]{color:#f9f6f2;background:#f59563}.v32 .inner[data-v-f5ddaf61]{color:#f9f6f2;background:#f67c5f}.v64 .inner[data-v-f5ddaf61]{color:#f9f6f2;background:#f65e3b}.v128 .inner[data-v-f5ddaf61]{color:#f9f6f2;background:#edcf72;box-shadow:0 0 12px 2px #f3d77440}.v256 .inner[data-v-f5ddaf61]{color:#f9f6f2;background:#edcc61;box-shadow:0 0 12px 2px #f3d77452}.v512 .inner[data-v-f5ddaf61]{color:#f9f6f2;background:#edc850;box-shadow:0 0 14px 3px #f3d77466}.v1024 .inner[data-v-f5ddaf61]{color:#f9f6f2;background:#edc53f;box-shadow:0 0 16px 4px #f3d7747a}.v2048 .inner[data-v-f5ddaf61]{color:#f9f6f2;background:#edc22e;box-shadow:0 0 18px 5px #f3d7748f}.vsuper .inner[data-v-f5ddaf61]{color:#f9f6f2;background:#3c3a32}.new .inner[data-v-f5ddaf61]{animation:.16s .1s backwards appear-f5ddaf61}.merged .inner[data-v-f5ddaf61]{animation:.18s 90ms backwards pop-f5ddaf61}@keyframes appear-f5ddaf61{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}@keyframes pop-f5ddaf61{0%{transform:scale(0)}50%{transform:scale(1.18)}to{transform:scale(1)}}@media (prefers-reduced-motion:reduce){.tile[data-v-f5ddaf61]{transition:none}.new .inner[data-v-f5ddaf61],.merged .inner[data-v-f5ddaf61]{animation:none}}.lb[data-v-682c6475]{flex-direction:column;min-height:0;display:flex}.tabs[data-v-682c6475]{background:#eee4da;border-radius:8px;gap:4px;margin-bottom:10px;padding:3px;display:flex}.tabs button[data-v-682c6475]{font:inherit;color:#776e65;cursor:pointer;background:0 0;border:0;border-radius:6px;flex:1;padding:7px 0;font-size:14px}.tabs button.on[data-v-682c6475]{background:#fff;font-weight:600;box-shadow:0 1px 2px #00000014}.state[data-v-682c6475]{color:#9c8f84;text-align:center;margin:0;padding:24px 0;font-size:14px}.state.err[data-v-682c6475]{color:#c0392b}.list[data-v-682c6475]{min-height:0;margin:0;padding:0;list-style:none;transition:opacity .15s;overflow-y:auto}.list.dim[data-v-682c6475]{opacity:.6}.list li[data-v-682c6475]{color:#776e65;border-bottom:1px solid #eee4da;grid-template-columns:32px 1fr auto 64px;align-items:center;gap:8px;padding:8px 6px;font-size:14px;display:grid}.list li.me[data-v-682c6475]{background:#fdf3d8;border-radius:6px}.rank[data-v-682c6475]{color:#9c8f84;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:12px;font-weight:700;display:inline-flex}.rank.r1[data-v-682c6475]{color:#fff;background:#edc22e}.rank.r2[data-v-682c6475]{color:#fff;background:#b8b2a7}.rank.r3[data-v-682c6475]{color:#fff;background:#d79a64}.name[data-v-682c6475]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tile[data-v-682c6475]{background:#eee4da;border-radius:4px;padding:1px 6px;font-size:12px}.score[data-v-682c6475]{text-align:right;font-variant-numeric:tabular-nums;font-weight:700}.mine[data-v-682c6475]{color:#9c8f84;margin-top:10px;font-size:13px;line-height:1.6}.mine b[data-v-682c6475]{color:#776e65}.link[data-v-682c6475]{font:inherit;color:#8f7a66;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.profile[data-v-944c4b59]{margin-bottom:14px}.nick[data-v-944c4b59]{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.nick b[data-v-944c4b59]{color:#3c3a32;font-size:20px}.uname[data-v-944c4b59]{color:#9c8f84;font-size:13px}.nick-edit[data-v-944c4b59]{gap:6px;display:flex}.nick-edit input[data-v-944c4b59]{min-width:0;font:inherit;border:1px solid #d8cfc4;border-radius:8px;flex:1;padding:7px 10px;font-size:16px}.stats[data-v-944c4b59]{grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:16px;display:grid}.stats div[data-v-944c4b59]{text-align:center;background:#eee4da;border-radius:8px;flex-direction:column;gap:2px;padding:8px 4px;display:flex}.stats span[data-v-944c4b59]{color:#9c8f84;font-size:11px}.stats b[data-v-944c4b59]{color:#3c3a32;font-size:15px}h3[data-v-944c4b59]{color:#776e65;margin:0 0 6px;font-size:14px}.muted[data-v-944c4b59]{color:#9c8f84;font-size:13px}.err[data-v-944c4b59]{color:#c0392b}.hist[data-v-944c4b59]{border-collapse:collapse;color:#776e65;width:100%;font-size:13px}.hist th[data-v-944c4b59]{color:#9c8f84;text-align:left;border-bottom:1px solid #e0d6cb;padding:4px;font-weight:500}.hist td[data-v-944c4b59]{border-bottom:1px solid #eee4da;padding:6px 4px}.num[data-v-944c4b59]{font-variant-numeric:tabular-nums}.logout[data-v-944c4b59]{width:100%;margin-top:18px}.link[data-v-944c4b59]{font:inherit;color:#8f7a66;cursor:pointer;background:0 0;border:0;padding:0;font-size:13px;text-decoration:underline}@media (max-width:400px){.stats[data-v-944c4b59]{grid-template-columns:repeat(2,1fr)}}*,:before,:after{box-sizing:border-box}html,body{color:#776e65;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;background:#faf8ef;margin:0;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Arial,sans-serif}button{-webkit-tap-highlight-color:transparent}.app{--board:max(260px, min(92vw, 460px, calc(100vh - 230px)));min-height:100vh;padding:max(16px, env(safe-area-inset-top)) 12px max(16px, env(safe-area-inset-bottom));justify-content:center;gap:40px;display:flex}@supports (height:100dvh){.app{--board:max(260px, min(92vw, 460px, calc(100dvh - 230px)));min-height:100dvh}}.game-col{width:var(--board);flex-direction:column;display:flex}.side{flex-direction:column;width:320px;max-height:calc(100vh - 48px);padding-top:8px;display:flex;position:-webkit-sticky;position:sticky;top:24px}.side h2{color:#776e65;margin:14px 0 12px;font-size:20px}.wide-only{display:none}@media (min-width:900px){.app{--board:min(480px, calc(100vh - 220px));padding-top:32px}.wide-only{display:flex}.narrow-only{display:none!important}}.top{justify-content:space-between;align-items:center;gap:8px;display:flex}.logo{color:#776e65;margin:0;font-size:max(44px,min(14vw,64px));font-weight:800;line-height:1}.scores{gap:6px;display:flex}.score-box{color:#fff;text-align:center;background:#bbada0;border-radius:6px;flex-direction:column;min-width:72px;padding:6px 12px;display:flex;position:relative}.score-box span{color:#eee4da;font-size:11px;font-weight:600}.score-box b{font-variant-numeric:tabular-nums;font-size:20px}.gain{color:#776e65e6;pointer-events:none;font-style:normal;font-weight:700;animation:.6s ease-in forwards float-up;position:absolute;top:20px;left:0;right:0}@keyframes float-up{to{opacity:0;transform:translateY(-36px)}}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin:14px 0 12px;display:flex}.mode{white-space:nowrap;border-radius:999px;padding:3px 8px;font-size:12px}.mode.ranked{color:#3b6d11;background:#e3f1dd}.mode.practice{color:#8f7a66;background:#eee4da}.actions{gap:6px;margin-left:auto;display:flex}.btn{font:inherit;color:#f9f6f2;cursor:pointer;white-space:nowrap;background:#8f7a66;border:0;border-radius:6px;padding:8px 14px;font-size:14px;font-weight:600}.btn:hover{background:#7f6a56}.btn:disabled{opacity:.55;cursor:default}.btn.ghost{color:#776e65;background:#eee4da}.btn.ghost:hover{background:#e4d8cb}.btn.user{text-overflow:ellipsis;max-width:120px;overflow:hidden}.link{font:inherit;color:#8f7a66;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.row{justify-content:center;gap:8px;display:flex}.row.end{justify-content:flex-end;margin-top:16px}.board-area{touch-action:none}.overlay{z-index:10;text-align:center;background:#eee4dad1;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:20px;animation:.3s fade-in;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.overlay.win{color:#f9f6f2;background:#edc22e99}.overlay.soft{background:#eee4da80}.overlay h2{margin:0;font-size:max(28px,min(9vw,44px));font-weight:800}.overlay .final{margin:0;font-size:18px;font-weight:700}.overlay .sub{margin:0;font-size:14px;line-height:1.6}.overlay .ok{color:#3b6d11;font-weight:600}.overlay .err{color:#c0392b}@keyframes fade-in{0%{opacity:0}}.hint{color:#9c8f84;margin:14px 0 0;font-size:13px;line-height:1.6}.confirm-text{color:#776e65;margin:4px 0 0;font-size:15px;line-height:1.7}.toast{left:50%;bottom:calc(32px + env(safe-area-inset-bottom));z-index:100;color:#fff;background:#3c3a32eb;border-radius:8px;max-width:calc(100vw - 32px);padding:10px 16px;font-size:14px;line-height:1.5;animation:.2s fade-in;position:fixed;transform:translate(-50%)}
