.game-shell{flex:1;display:flex;align-items:center;justify-content:center;padding:clamp(12px,3vh,24px) 16px;overscroll-behavior:none}.game-inner{width:min(100%,880px);display:flex;flex-direction:column;gap:clamp(10px,2vh,16px)}.game-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.title-col{display:flex;flex-direction:column;gap:12px;align-items:flex-start}.back{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:13px;font-weight:500;padding:7px 13px;border:1px solid var(--glass-border);border-radius:999px;background:var(--glass);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:color .15s,background .15s,border-color .15s}.back:hover{color:var(--text);background:var(--glass-hover);border-color:#6c5ce799}.mj-title{font-size:clamp(26px,7.5vw,40px);font-weight:900;letter-spacing:-.02em;line-height:1;background:linear-gradient(to right,var(--secondary),var(--accent));-webkit-background-clip:text;background-clip:text;color:transparent}.scores{display:flex;gap:10px}.score-box{background:var(--glass);border:1px solid var(--glass-border);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-radius:12px;padding:7px 14px;text-align:center;min-width:64px}.score-label{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.1em}.score-val{font-size:19px;font-weight:700;font-variant-numeric:tabular-nums}.controls{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;min-height:38px}.ctrl-btns{display:flex;gap:8px;margin-left:auto}.ctrl-btns .btn{padding:9px 13px}.mj-mode{display:flex;align-items:center}.board-wrap{position:relative;margin:0 auto;flex-shrink:0}.mj-felt{position:relative;width:100%;height:100%;border:1px solid var(--glass-border);border-radius:16px;background:linear-gradient(160deg,#1a483461,#0a1c1480),var(--glass);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);touch-action:manipulation;user-select:none;-webkit-user-select:none}.mj-tile{position:absolute;width:calc(100% / 15.3);height:calc(100% / 8.5);border-radius:9%;background:linear-gradient(160deg,#fdfdf4,#e9e5d4);--side: calc(var(--tw, 40px) * .055) calc(var(--tw, 40px) * .075) 0 #b3a98c, calc(var(--tw, 40px) * .09) calc(var(--tw, 40px) * .14) calc(var(--tw, 40px) * .16) rgba(0, 0, 0, .45);box-shadow:var(--side);cursor:pointer;transition:opacity .22s,transform .22s,filter .15s}.mj-tile svg{position:absolute;inset:7% 9%;width:82%;height:86%;pointer-events:none}.mj-tile svg text{font-family:PingFang TC,Hiragino Sans,Microsoft JhengHei,Noto Sans CJK TC,Noto Sans TC,sans-serif}.mj-tile:not(.free){filter:brightness(.58) saturate(.85);cursor:default}.mj-tile.free:hover{filter:brightness(1.07)}.mj-tile.sel{box-shadow:inset 0 0 0 3px var(--accent),0 0 12px #00cec9a6,var(--side);filter:brightness(1.1)}.mj-tile.glow{box-shadow:inset 0 0 0 3px var(--secondary),0 0 14px #a29bfee6,var(--side);filter:brightness(1.1)}.mj-tile.gone{opacity:0;transform:scale(.55);pointer-events:none}.mj-tile.deny{animation:mj-shake .26s}@keyframes mj-shake{0%,to{transform:translate(0)}25%{transform:translate(-7%)}75%{transform:translate(7%)}}.mj-tools{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.mj-tools .btn{padding:10px 16px;font-size:14px}.overlay{position:absolute;inset:0;display:none;place-items:center;z-index:6000;background:#0f0c29cc;border-radius:16px;text-align:center;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.overlay.show{display:grid}.overlay-inner{display:flex;flex-direction:column;gap:14px;align-items:center;padding:16px}.overlay-msg{font-size:26px;font-weight:800}.ov-score{font-size:16px;font-weight:600;color:var(--accent);max-width:420px}.ov-submit{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.ov-name{background:var(--glass);border:1px solid var(--glass-border);border-radius:10px;padding:9px 12px;color:var(--text);font:inherit;font-size:14px;width:150px}.ov-rank{color:var(--secondary);font-weight:700;font-size:15px}.ov-rank:empty{display:none}.ov-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}
