/* 围棋 · 无界 版权 © 月光 better.tian@qq.com research/monetization@3fbe19c */
/*!
 * 围棋 · 无界（Weiqi · Unbounded）
 * 版权 © 月光 ｜ 联系：better.tian@qq.com
 * All rights reserved.
 */*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}:root{--bg: #0e1014;--bg2: #161a21;--panel: rgba(255, 255, 255, .055);--border: rgba(255, 255, 255, .09);--text: #e9ecf2;--text-dim: #8b93a3;--accent: #e8b64c;--accent-soft: rgba(232, 182, 76, .16);--grid: rgba(233, 236, 242, .13);--grid-major: rgba(233, 236, 242, .27);--ruler: rgba(233, 236, 242, .38);--overlay: radial-gradient(ellipse 130% 95% at 50% 42%, rgba(13,15,19,.32) 0%, rgba(13,15,19,.52) 72%, rgba(13,15,19,.62) 100%);--chip-b: linear-gradient(145deg, #565c68, #101216);--chip-w: linear-gradient(145deg, #ffffff, #c6cad2);--danger: #e0655a}[data-theme=light]{--bg: #f2eddf;--bg2: #faf6ec;--panel: rgba(0, 0, 0, .045);--border: rgba(0, 0, 0, .1);--text: #33302a;--text-dim: #948b7a;--accent: #a97c1d;--accent-soft: rgba(169, 124, 29, .14);--grid: rgba(51, 48, 42, .18);--grid-major: rgba(51, 48, 42, .38);--ruler: rgba(51, 48, 42, .5);--overlay: radial-gradient(ellipse 130% 95% at 50% 42%, rgba(250,246,236,.38) 0%, rgba(244,238,224,.56) 72%, rgba(236,228,208,.66) 100%);--chip-b: linear-gradient(145deg, #3d4148, #121418);--chip-w: linear-gradient(145deg, #ffffff, #d5d3c9);--danger: #c24f43}html,body{height:100%}body{position:fixed;inset:0;overflow:hidden;background:radial-gradient(900px 520px at 50% -8%,var(--bg2),transparent 62%),var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:manipulation}.board-wrap{position:fixed;inset:0;touch-action:none}.board-wrap canvas{position:absolute;inset:0;width:100%;height:100%;cursor:crosshair}#cv-ripple,#cv-fx{pointer-events:none}.announce-toast{position:absolute;left:50%;transform:translate(-50%);padding:8px 18px;border-radius:999px;background:#0f1218d1;color:var(--text);border:1px solid var(--danger);box-shadow:0 6px 24px #0006;font-size:14px;letter-spacing:2px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .25s ease,transform .25s ease;z-index:30}.announce-toast.show{opacity:1;transform:translate(-50%) translateY(4px)}[data-theme=light] .announce-toast{background:#fffdf7f0;color:#4a4436;border-color:var(--danger)}.glass{background:var(--panel);border:1px solid var(--border);backdrop-filter:blur(14px) saturate(1.25);-webkit-backdrop-filter:blur(14px) saturate(1.25);box-shadow:0 10px 32px #0000004d}.topbar{position:fixed;top:max(10px,env(safe-area-inset-top));left:50%;transform:translate(-50%);z-index:20;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px 12px;padding:8px 12px;max-width:calc(100vw - 20px);border-radius:18px;background:#ffffff03;border:1px solid var(--border);box-shadow:0 10px 32px #0000004d;transition:transform .3s ease,opacity .3s ease;touch-action:none;cursor:grab}[data-theme=light] .topbar{background:#00000003}.topbar.dragged{left:auto;transform:none}.topbar:active{cursor:grabbing}body.ui-hidden .topbar.dragged{transform:translateY(-130%)}.brand{display:flex;flex-direction:column;line-height:1.15;padding:2px 4px 2px 8px}.brand b{font-family:Songti SC,"Noto Serif SC","Source Han Serif SC",Georgia,serif;font-size:19px;font-weight:600}.brand small{font-size:10px;letter-spacing:3px;color:var(--text-dim);text-transform:uppercase}.controls{display:flex;gap:8px;align-items:center}.seg{display:flex;gap:2px;padding:3px;border:1px solid var(--border);border-radius:12px;background:#00000029}[data-theme=light] .seg{background:#0000000d}.seg-btn{height:28px;padding:0 12px;border:none;border-radius:9px;background:transparent;color:var(--text-dim);font-size:13px;letter-spacing:3px;cursor:pointer;transition:color .2s,background .2s}.seg-btn:hover{color:var(--text)}.seg-btn.active{background:var(--accent-soft);color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent-soft)}body.top-controls-hidden .controls{display:none}.top-toggle{width:30px;height:30px;border-radius:50%;border:1px solid var(--border);background:transparent;color:var(--text-dim);font-size:12px;cursor:pointer;display:grid;place-items:center;transition:color .2s,transform .25s,background .2s}.top-toggle:hover{color:var(--text);background:var(--panel)}.vol-slider{-webkit-appearance:none;appearance:none;width:72px;height:4px;border-radius:2px;background:var(--border);outline:none;cursor:pointer;transition:opacity .2s}.vol-slider.muted{opacity:.35}.vol-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:14px;height:14px;border-radius:50%;background:var(--accent);border:none;box-shadow:0 1px 4px #00000059;transition:transform .15s}.vol-slider::-webkit-slider-thumb:hover{transform:scale(1.15)}.vol-slider::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--accent);border:none}.vol-slider::-moz-range-track{height:4px;border-radius:2px;background:var(--border)}.btn{height:36px;padding:0 12px;border-radius:12px;border:1px solid var(--border);background:var(--panel);color:var(--text-dim);font-size:14px;cursor:pointer;display:grid;place-items:center;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:color .2s,transform .15s,border-color .2s}.btn:hover{color:var(--text);transform:translateY(-1px)}.btn:active{transform:scale(.94)}.btn-entry{display:flex;position:fixed;top:max(12px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right));z-index:40;width:38px;height:38px;border-radius:50%;align-items:center;justify-content:center;border:1px solid var(--border);background:var(--panel);color:var(--text-dim);font-size:15px;text-decoration:none;backdrop-filter:blur(14px) saturate(1.25);-webkit-backdrop-filter:blur(14px) saturate(1.25);box-shadow:0 6px 20px #0000004d;transition:color .2s,transform .15s}.btn-entry:hover{color:var(--text);transform:translateY(-1px)}.btn-entry:active{transform:scale(.92)}.btn-entry svg{width:18px;height:18px}.btn.danger{color:var(--danger);border-color:#e0655a73}@media (max-width: 500px){.vol-slider{width:56px}.brand small{display:none}}@media (min-width: 501px){.brand b{letter-spacing:10px}.brand b .qi{margin-left:6px}}@media (max-width: 420px){.vol-slider{display:none}.btn{padding:0 10px}.seg-btn{padding:0 9px;letter-spacing:1px}}@media (max-width: 560px){.topbar{gap:6px 8px;padding:6px 8px;border-radius:14px}.topbar .brand,.topbar .seg,.topbar .top-toggle{flex-shrink:0}.brand{padding:0 2px 0 6px}.brand b{font-size:16px}.seg-btn{height:26px;padding:0 9px;font-size:12px;letter-spacing:2px;min-width:52px}.controls{gap:6px}.btn{height:32px;padding:0 10px;font-size:13px;border-radius:10px}.top-toggle{width:28px;height:28px}}.statusbar{position:fixed;bottom:max(12px,env(safe-area-inset-bottom));left:50%;transform:translate(-50%);z-index:20;display:flex;align-items:center;gap:10px;padding:8px 16px;border-radius:999px;background:#ffffff03;border:1px solid var(--border);box-shadow:0 10px 32px #0000004d;white-space:nowrap;transition:transform .3s ease,opacity .3s ease}[data-theme=light] .statusbar{background:#00000003}.chip{width:20px;height:20px;border-radius:50%;animation:chip-pulse 1.8s ease-in-out infinite}.chip.black{background:var(--chip-b);box-shadow:0 2px 6px #0006,0 0 0 4px #e8b64c1f}.chip.white{background:var(--chip-w);box-shadow:0 2px 6px #00000040,0 0 0 4px #e8b64c1f}@keyframes chip-pulse{50%{box-shadow:0 2px 6px #0000004d,0 0 0 8px #e8b64c0f}}#status-text{font-size:14px;letter-spacing:2px}.sep{color:var(--text-dim);opacity:.6}#move-count{color:var(--text-dim);font-size:12px;letter-spacing:1px}.coord{color:var(--text-dim);font-size:11px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;text-align:right;white-space:nowrap}@media (max-width: 420px){.coord,.sep{display:none}}.controls-stack{position:fixed;right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom));z-index:20;display:flex;flex-direction:column;align-items:center;gap:10px;touch-action:none;cursor:grab;pointer-events:none}.controls-stack.dragged{right:auto;bottom:auto}.controls-stack:active{cursor:grabbing}.controls-stack>.immersive,.controls-stack>.fab-cluster>.fab{pointer-events:auto}body.ui-hidden .controls-stack>.fab-cluster>.fab{pointer-events:none}.fab-cluster{display:flex;flex-direction:column;align-items:center;gap:8px;transition:opacity .3s ease,transform .3s ease}.fab{width:42px;height:42px;border-radius:50%;border:1px solid var(--border);background:#ffffff09;color:var(--text-dim);font-size:18px;cursor:pointer;display:grid;place-items:center;box-shadow:0 6px 20px #0000004d;transition:color .2s,transform .15s,opacity .25s}.fab:hover{color:var(--text);transform:translateY(-1px)}.fab:active{transform:scale(.92)}.fab svg{width:18px;height:18px}.fab-toggle{background:var(--accent-soft);color:var(--accent);font-size:14px}.fab-toggle:hover{color:var(--accent)}.fab-cluster.closed .fab:not(.fab-toggle){display:none}.immersive{width:42px;height:42px;border-radius:50%;border:1px solid var(--border);background:#ffffff09;color:var(--text-dim);font-size:14px;cursor:pointer;display:grid;place-items:center;box-shadow:0 6px 20px #0000004d;transition:color .2s,transform .15s,background .3s}.immersive:hover{color:var(--text);transform:translateY(-1px)}.immersive:active{transform:scale(.92)}[data-theme=light] .fab,[data-theme=light] .immersive{background:#00000006}body.ui-hidden .topbar,body.ui-hidden .fab-cluster{opacity:0;pointer-events:none}body.ui-hidden .topbar{transform:translate(-50%) translateY(-130%)}body.ui-hidden .fab-cluster{transform:translateY(24px) scale(.85)}body.ui-hidden .statusbar{padding:5px 13px;gap:8px;background:#0e101429;border-color:#ffffff24;box-shadow:0 8px 24px #00000059}[data-theme=light] body.ui-hidden .statusbar{background:#faf6ec66;border-color:#00000024;box-shadow:0 8px 24px #78603033}body.ui-hidden .statusbar #move-count,body.ui-hidden .statusbar .sep,body.ui-hidden .statusbar .coord{display:none}.overlay{position:fixed;inset:0;z-index:40;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .35s ease}.overlay.show{opacity:1;pointer-events:auto}.overlay:before{content:"";position:absolute;inset:0;background:var(--overlay);z-index:-1}.overlay-card{position:relative;z-index:0;display:flex;flex-direction:column;align-items:center;gap:12px;padding:32px clamp(24px,6vw,48px) 28px;max-width:min(92vw,430px);max-height:calc(100vh - 40px);overflow-y:auto;border-radius:24px;border:1px solid rgba(255,255,255,.1);box-shadow:0 26px 80px #0000008c,0 8px 24px #00000059,inset 0 1px #ffffff14}.overlay-card:before{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(168deg,#2026328c,#10131a6b);backdrop-filter:blur(8px) saturate(1.1);-webkit-backdrop-filter:blur(8px) saturate(1.1);z-index:-1}[data-theme=light] .overlay-card{border-color:#7860302e;box-shadow:0 24px 70px #78603047,0 8px 22px #7860301f,inset 0 1px #ffffffe6}[data-theme=light] .overlay-card:before{background:linear-gradient(168deg,#fffdf79e,#f2eddf80)}#overlay:before{background:radial-gradient(ellipse 130% 95% at 50% 42%,#0d0f132e,#0d0f1352 72%,#0d0f136b)}[data-theme=light] #overlay:before{background:radial-gradient(ellipse 130% 95% at 50% 42%,#faf6ec3d,#f4eee061 72%,#ece4d07a)}#overlay .overlay-card:before{background:linear-gradient(168deg,#2026324d,#10131a38);backdrop-filter:blur(4px) saturate(1.05);-webkit-backdrop-filter:blur(4px) saturate(1.05)}[data-theme=light] #overlay .overlay-card:before{background:linear-gradient(168deg,#fffdf761,#f2eddf4d)}.overlay.show .overlay-card{animation:card-in .5s cubic-bezier(.2,.9,.3,1.15) both}@keyframes card-in{0%{opacity:0;transform:translateY(16px) scale(.95)}}[data-theme=light] .overlay p{color:#6f6758}.overlay h2{font-family:Songti SC,"Noto Serif SC","Source Han Serif SC",Georgia,serif;font-size:26px;letter-spacing:8px;font-weight:600}.overlay.show h2{animation:pop .45s cubic-bezier(.2,.9,.3,1.3) both}.overlay h2:after{content:"";display:block;width:56px;height:2px;margin:14px auto 0;border-radius:2px;background:linear-gradient(90deg,transparent,var(--accent),transparent);box-shadow:0 0 10px var(--accent-soft)}.overlay p{color:var(--text-dim);font-size:13px;letter-spacing:2px}.overlay p.proverb{color:var(--accent);opacity:.9}.overlay p.score{color:var(--accent);font-size:17px;letter-spacing:4px;font-weight:600;white-space:nowrap;margin-top:-4px;text-shadow:0 0 14px var(--accent-soft),0 1px 0 rgba(0,0,0,.35)}[data-theme=light] .overlay p.score{text-shadow:0 0 12px var(--accent-soft),0 1px 0 rgba(255,255,255,.65)}.overlay h2,.overlay p{text-shadow:0 1px 0 rgba(0,0,0,.35)}[data-theme=light] .overlay h2,[data-theme=light] .overlay p{text-shadow:0 1px 0 rgba(255,255,255,.65)}.colophon{font-family:Songti SC,"Noto Serif SC","Source Han Serif SC",Georgia,serif;font-size:12px;letter-spacing:3px;opacity:.55}@keyframes pop{0%{opacity:0;transform:scale(.85)}}.overlay-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:6px}.btn-primary{padding:11px 36px;border-radius:999px;border:1px solid var(--accent-soft);background:var(--accent-soft);color:var(--accent);font-size:15px;letter-spacing:5px;cursor:pointer;transition:transform .15s,filter .2s}.btn-primary:hover{transform:translateY(-1px);filter:brightness(1.1)}.btn-primary:active{transform:scale(.96)}.btn-secondary{padding:11px 24px;border-radius:999px;border:1px solid var(--border);background:transparent;color:var(--text-dim);font-size:15px;letter-spacing:2px;cursor:pointer;transition:transform .15s,color .2s}.btn-secondary:hover{color:var(--text);transform:translateY(-1px)}.btn-secondary:active{transform:scale(.96)}.btn-unlock{color:var(--accent);border-color:var(--accent-soft)}.btn-unlock.done{color:var(--text-dim);border-color:var(--border)}.unlock-sub{font-size:12px;color:var(--text-dim)}.unlock-perks{list-style:none;padding:0;text-align:left;font-size:14px;display:flex;flex-direction:column;gap:6px}.unlock-perks li{color:var(--text)}.unlock-price{color:var(--accent);font-size:20px;font-weight:600;margin-top:2px}.overlay-close{position:absolute;top:10px;right:14px;background:none;border:none;color:var(--text-dim);font-size:22px;cursor:pointer;line-height:1;padding:4px}.overlay-close:hover{color:var(--text)}.unlock-restore{display:flex;flex-direction:column;gap:8px;align-items:stretch;width:100%}.unlock-restore input{padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:#8080801f;color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;text-align:center;letter-spacing:1px;font-size:14px}.promo-tip{position:fixed;left:16px;bottom:96px;z-index:30;max-width:220px;padding:12px 18px;border-radius:16px;border:1px solid var(--accent-soft);background:#ffffff03;color:var(--text);font-size:13px;line-height:1.5;cursor:pointer;box-shadow:0 10px 30px #00000059;opacity:0;transform:translateY(10px);pointer-events:none;transition:opacity .35s ease,transform .35s ease;text-align:left}[data-theme=light] .promo-tip{background:#00000003}.promo-tip.show{opacity:1;transform:none;pointer-events:auto}.promo-tip.gone{opacity:0;transform:translateY(6px)}.promo-tip:after{content:"\2715";position:absolute;top:6px;right:10px;font-size:11px;color:var(--text-dim)}.unlock-email{display:flex;flex-direction:column;gap:8px;align-items:stretch;width:100%}.unlock-email .unlock-tip{font-size:12px;color:var(--text-dim);text-align:center;margin:0}.unlock-email input{padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:#8080801f;color:var(--text);font-size:14px}.unlock-code-row{display:flex;gap:8px}.unlock-code-row input{flex:1;min-width:0;letter-spacing:3px}.unlock-status{font-size:12px;color:var(--accent);text-align:center;margin:0}.unlock-email .btn-primary{width:100%}[hidden]{display:none!important}.unlock-title-row{display:flex;align-items:center;justify-content:center;gap:8px;line-height:1}.unlock-crown{font-size:22px;line-height:1;display:inline-flex;align-items:center;height:1em}.unlock-card h2{font-size:19px;letter-spacing:2px;margin:0;line-height:1.2}.unlock-card h2{font-size:20px;letter-spacing:2px;margin:0}.unlock-card .unlock-perks{margin:6px 0 2px}.unlock-email-field{width:100%}.unlock-email-field input{width:100%;padding:12px 14px;border-radius:12px;border:1px solid var(--border);background:#8080801f;color:var(--text);font-size:15px;text-align:center}.unlock-actions{display:flex;flex-wrap:wrap;gap:10px;width:100%}.unlock-actions .btn-primary,.unlock-actions .btn-secondary{flex:1 1 auto;min-width:0;white-space:nowrap}@media (max-width: 480px){.unlock-actions{flex-direction:column}.unlock-actions .btn-primary,.unlock-actions .btn-secondary{width:100%}}.unlock-code-row{display:flex;gap:8px;width:100%}.unlock-code-row input{flex:1;min-width:0;padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:#8080801f;color:var(--text);text-align:center;letter-spacing:2px}.unlock-code-row .btn-secondary{flex:none}.unlock-card .unlock-note{font-size:11px;color:var(--text-dim);margin:2px 0 0;text-align:center;line-height:1.6}.unlock-card .unlock-status{color:var(--accent);font-size:13px;margin:4px 0 0}.unlock-card .btn-primary,.unlock-card .btn-secondary{display:flex;align-items:center;justify-content:center;padding:10px 14px;letter-spacing:0;font-size:13px;white-space:nowrap}.unlock-actions .btn-primary{flex:1.2}.unlock-actions .btn-secondary{flex:1}.unlock-or{align-self:center;flex:none;color:var(--text-dim);font-size:12px;letter-spacing:1px;line-height:1}.unlock-code-row .btn-secondary{padding:10px 14px;font-size:13px;letter-spacing:0;font-weight:500}.unlock-code-row input{padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:#8080801f;color:var(--text);text-align:center;letter-spacing:2px;font-size:14px}.unlock-card .unlock-price{color:var(--accent);font-size:18px;font-weight:700;letter-spacing:1px;margin:4px 0 2px}.unlock-card .unlock-price:before,.unlock-card .unlock-price:after{content:"\2014";color:var(--border);margin:0 10px}.unlock-card .unlock-perks{margin:4px 0 6px}.unlock-email-field input::placeholder{color:var(--text-dim);opacity:.7}.unlock-card .unlock-email-field{margin:2px 0 4px}.unlock-email-field input.invalid,.unlock-code-row input.invalid{border-color:var(--danger, #e0655a)}.unlock-email-field input:focus,.unlock-code-row input:focus{outline:none;border-color:var(--accent-soft)}.unlock-err,.unlock-card .unlock-err{color:var(--danger, #c24f43)!important;background:#e0655a1a;border:1px solid rgba(224,101,90,.35);font-size:13px;font-weight:600;padding:9px 14px;border-radius:10px;margin:4px 0 0;text-align:center;width:100%;box-sizing:border-box;animation:unlockShake .4s ease;line-height:1.5;white-space:normal;word-break:break-word}@keyframes unlockShake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.unlock-email-field input.invalid,.unlock-code-row input.invalid{border-color:var(--danger, #e0655a)!important;animation:unlockShake .4s ease}.unlock-card h2:after,.unlock-dialog h2:after{content:none!important}.unlock-price{color:#b8860b}[data-theme=dark] .unlock-price{color:var(--accent, #e8b64c)}.unlock-card .unlock-price,.unlock-dialog .unlock-price{color:#b8860b}[data-theme=dark] .unlock-card .unlock-price,[data-theme=dark] .unlock-dialog .unlock-price{color:var(--accent, #e8b64c)}.unlock-crown{vertical-align:baseline}.unlock-crown{transform:translateY(-3px)}.unlock-code-row .unlock-btn-primary{width:auto}.unlock-code-row .unlock-btn-primary,.unlock-code-row .unlock-btn-secondary,.unlock-code-row .btn-secondary{flex:none}.unlock-card:before,.unlock-dialog:before{background:linear-gradient(168deg,#181d26eb,#0e1117e0)}[data-theme=light] .unlock-card:before,[data-theme=light] .unlock-dialog:before{background:linear-gradient(168deg,#fffdf7f5,#f6f1e5f0)}@media (max-width: 768px){.promo-tip{bottom:70px;left:12px}}
