/* 五子棋 · 无界 版权 © 月光 better.tian@qq.com main@af74449 #acc79d73 */
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}html.theme-anim-off,html.theme-anim-off *,html.theme-anim-off *:before,html.theme-anim-off *:after{transition:none!important}:root{--bg: #0a0c12;--bg2: #11161f;--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(178, 144, 86, .34);--grid-major: rgba(194, 156, 92, .44);--ruler: rgba(210, 180, 118, .64);--overlay: transparent;--dialog-bg: linear-gradient(168deg, rgba(28,34,44,.92) 0%, rgba(13,16,22,.88) 100%);--dialog-border: rgba(255,255,255,.1);--chip-b: linear-gradient(145deg, #565c68, #101216);--chip-w: linear-gradient(145deg, #ffffff, #c6cad2);--danger: #e0655a;--glass: rgba(255, 255, 255, .02);--glass-solid: rgba(15, 18, 26, .86);--glass-blur: blur(14px) saturate(1.25);--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--font-serif: "Songti SC", "Noto Serif SC", "Source Han Serif SC", Georgia, serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, monospace}[data-theme=light]{--bg: #eee3c4;--bg2: #f7efdd;--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);--glass: rgba(0, 0, 0, .02);--glass-solid: rgba(255, 253, 247, .9);--grid: rgba(134, 97, 36, .4);--grid-major: rgba(134, 97, 36, .5);--ruler: rgba(126, 90, 28, .68);--overlay: transparent;--dialog-bg: linear-gradient(168deg, rgba(255,253,247,.94) 0%, rgba(246,241,229,.91) 100%);--dialog-border: rgba(120,96,48,.18);--chip-b: linear-gradient(145deg, #3d4148, #121418);--chip-w: linear-gradient(145deg, #ffffff, #d5d3c9);--danger: #c24f43}html,body{height:100%}html{background-color:var(--bg)}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:var(--font-sans);user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:manipulation}.bg-board{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}.bg-board:before{content:"";position:absolute;left:50%;top:0;bottom:0;width:max(100%,var(--board-w, 1000px));transform:translate(-50%);background-image:var(--board-pattern);background-size:200px 200px;background-position:0 0}.board-wrap{position:fixed;inset:0;touch-action:none}.board-wrap canvas{position:absolute;inset:0;width:100%;height:100%;cursor:crosshair}#cv-fx{pointer-events:none}.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(14px,env(safe-area-inset-top));left:10px;right:10px;margin:0 auto;width:fit-content;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:var(--glass);border:1px solid var(--border);box-shadow:0 10px 32px #0000004d;transition:transform .3s ease,opacity .3s ease;touch-action:none;cursor:grab}.topbar.dragged{left:auto;right: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:var(--font-serif);font-size:19px;letter-spacing:6px;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}.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:transparent;color:var(--text-dim);font-size:14px;cursor:pointer;display:grid;place-items:center;transition:color .2s,transform .15s,border-color .2s}.btn:hover{color:var(--text);transform:translateY(-1px)}.btn:active{transform:scale(.94)}.btn.danger{color:var(--danger);border-color:#e0655a73}.btn-entry{display:flex;position:fixed;top:max(10px,env(safe-area-inset-top));right:max(18px,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;opacity:.8;transition:color .2s,transform .15s,opacity .2s}.btn-entry:before{content:"";position:absolute;inset:-6px;border-radius:50%}.btn-entry:hover{color:var(--text);transform:translateY(-1px);opacity:1}.btn-entry:active{transform:scale(.92)}.btn-entry svg{width:18px;height:18px}@media (max-width: 500px){.vol-slider{width:56px}.brand small{display:none}}@media (max-width: 560px){.topbar{gap:4px 6px;padding:5px 8px;border-radius:14px}.brand{padding:0 2px 0 6px}.brand b{font-size:15px;letter-spacing:2px}.controls{gap:4px}.btn{height:30px;padding:0 8px;font-size:12px;border-radius:9px}.vol-slider{display:none}}.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:12px;padding:10px 18px;border-radius:999px;background:var(--glass);border:1px solid var(--border);box-shadow:0 10px 32px #0000004d;white-space:nowrap;transition:transform .3s ease,opacity .3s ease}.chip{width:24px;height:24px;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:15.5px;letter-spacing:2px;font-weight:600}.sep{color:var(--text-dim);opacity:.6}#move-count{color:var(--text-dim);font-size:13px;letter-spacing:1px}.coord{color:var(--text-dim);font-size:12px;font-family:var(--font-mono);text-align:right;white-space:nowrap}@media (max-width: 420px){.coord,.sep{display:none}}.seg-mode{display:flex;align-items:center;gap:3px;padding:3px;border:1px solid var(--border);border-radius:999px;background:#00000029;flex-shrink:0}[data-theme=light] .seg-mode{background:#0000000d}.seg-mode .seg-btn{height:30px;padding:0 14px;border:none;border-radius:999px;background:transparent;color:var(--text-dim);font-size:13.5px;letter-spacing:1px;cursor:pointer;transition:color .2s,background .2s}.seg-mode .seg-btn:hover{color:var(--text)}.seg-mode .seg-btn.active{background:var(--accent-soft);color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent-soft)}@media (max-width: 560px){.seg-mode .seg-btn{height:28px;padding:0 9px;font-size:12px;min-width:44px}}@media (max-width: 420px){.seg-mode .seg-btn{padding:0 10px;font-size:12px}}.replay-bar{position:fixed;bottom:calc(max(12px,env(safe-area-inset-bottom)) + 58px);left:50%;transform:translate(-50%);z-index:25;display:flex;align-items:center;gap:6px;padding:8px 12px;border-radius:999px;background:var(--glass-solid);border:1px solid var(--border);box-shadow:0 10px 32px #0006;backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);white-space:nowrap}.replay-btn{min-width:34px;height:34px;padding:0 6px;border:none;border-radius:999px;background:var(--panel);color:var(--text);font-size:14px;line-height:1;cursor:pointer;display:grid;place-items:center;transition:background .2s,transform .15s}.replay-btn:hover{background:var(--accent-soft);color:var(--accent)}.replay-btn:active{transform:scale(.92)}.replay-btn:disabled{opacity:.35;cursor:default}.replay-btn:disabled:hover{background:var(--panel);color:var(--text)}.replay-count{color:var(--text);font-size:13px;letter-spacing:1px;min-width:66px;text-align:center}@media (max-width: 480px){.replay-bar{gap:4px;padding:6px 8px}.replay-btn{min-width:30px;height:30px;font-size:13px}.replay-count{min-width:58px;font-size:12px}}@media (max-width: 560px){.statusbar .seg{position:fixed;bottom:100%;left:50%;transform:translate(-50%);margin-bottom:8px}.replay-bar{bottom:calc(max(12px,env(safe-area-inset-bottom)) + 114px)}}.controls-stack{position:fixed;right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom));min-height:194px;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}.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:translateY(-130%)}body.ui-hidden .fab-cluster{transform:translateY(24px) scale(.85)}body.ui-hidden .statusbar,body.ui-hidden .controls-stack>.immersive{opacity:1;pointer-events:auto}.overlay{position:fixed;inset:0;z-index:40;display:flex;align-items:center;justify-content:center;padding-bottom:clamp(20px,6vh,64px);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:var(--dialog-bg);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:var(--dialog-bg)}#overlay:before{background:var(--overlay)}[data-theme=light] #overlay:before{background:var(--overlay)}#overlay .overlay-card:before{background:var(--dialog-bg);backdrop-filter:blur(14px) saturate(1.1);-webkit-backdrop-filter:blur(14px) saturate(1.1)}[data-theme=light] #overlay .overlay-card:before{background:var(--dialog-bg)}.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:var(--font-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 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:var(--font-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}.overlay-actions #btn-again{flex:1 1 100%;max-width:240px}.back-card p{font-size:12px;letter-spacing:1px;line-height:1.7}.back-card .overlay-actions{margin-top:10px}.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)}.promo-tip{position:fixed;left:14px;bottom:84px;z-index:30;max-width:236px;padding:11px 15px;border-radius:16px;border:1px solid rgba(232,182,76,.45);background:radial-gradient(130% 170% at 15% -50%,rgba(232,182,76,.3),transparent 62%),linear-gradient(135deg,#e8b64c24,#e8b64c0a 65%),var(--panel);color:var(--text);font-size:13.5px;font-weight:700;letter-spacing:.5px;line-height:1.5;cursor:pointer;text-align:left;opacity:0;transform:translateY(10px);pointer-events:none;transition:opacity .35s ease,transform .35s ease;animation:promoGlow 3.2s ease-in-out infinite}@keyframes promoGlow{0%,to{box-shadow:0 0 #e8b64c38,0 10px 30px #00000059}50%{box-shadow:0 0 14px 3px #e8b64c61,0 10px 30px #00000059}}[data-theme=light] .promo-tip{border-color:#a97c1d59;background:radial-gradient(130% 170% at 15% -50%,rgba(169,124,29,.22),transparent 62%),linear-gradient(135deg,#a97c1d1f,#a97c1d0a 65%),#fffdf7a8}.promo-tip.show{opacity:1;transform:none;pointer-events:auto}.promo-tip.gone{opacity:0;transform:translateY(6px);pointer-events:none}[hidden]{display:none!important}@media (max-width: 768px){.promo-tip{bottom:82px;left:12px}}@media (max-width: 560px){.promo-tip{bottom:calc(max(12px,env(safe-area-inset-bottom)) + 100px)}}.announce-toast{position:absolute;left:50%;transform:translate(-50%);top:58px;max-width:min(84vw,480px);padding:8px 18px;border-radius:14px;background:#0f1218d9;color:var(--text);border:1px solid rgba(232,182,76,.38);box-shadow:0 6px 24px #0006,0 0 16px #e8b64c14;font-size:14px;letter-spacing:1.5px;line-height:1.5;text-align:center;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:#fffbf0a8;color:#4a4436;border-color:#a97c1d4d;backdrop-filter:blur(14px) saturate(1.2);-webkit-backdrop-filter:blur(14px) saturate(1.2);box-shadow:0 4px 18px #8c641e1a,0 0 14px #a97c1d12}.wise-btn.active{color:var(--accent);border-color:#e8b64c8c;background:var(--accent-soft)}.btn.wise-btn{display:inline-flex;align-items:center;gap:4px;padding:0 10px}.btn.wise-btn svg{flex-shrink:0}.wise-bar{backdrop-filter:none;-webkit-backdrop-filter:none;background:var(--glass);border-color:var(--border);color:var(--text);box-shadow:var(--shadow)}.wise-bar .replay-count{color:var(--accent);min-width:auto;padding:0 6px;letter-spacing:1px}.wise-bar .replay-btn{background:transparent;color:var(--text);min-width:auto;height:30px;padding:0 12px;font-size:13px;white-space:nowrap}.wise-bar .replay-btn:hover{background:var(--accent-soft);color:var(--accent)}#wise-copy{border:1px solid var(--accent);color:var(--accent)}#wise-copy:hover{background:var(--accent-soft)}[data-theme=light] .wise-bar{background:var(--glass);border-color:var(--border);color:var(--text);box-shadow:var(--shadow)}.wise-bar .replay-count{display:inline-flex;align-items:center;height:30px;line-height:1}.wise-bar{padding:5px 10px;gap:4px}.wise-bar{bottom:auto;top:calc(max(10px,env(safe-area-inset-top)) + 56px)}
