:root{--board-size:min(92vw, 70vh, 720px);--radius:8px;--shadow:0 12px 32px #00000059;color:var(--text);background:var(--app-bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:PingFang SC,Microsoft YaHei,Helvetica Neue,Helvetica,Arial,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100vh;margin:0;padding:0}body{background:radial-gradient(1200px 600px at 50% -10%, var(--app-bg-glow), transparent 60%), var(--app-bg);transition:background .4s}button{cursor:pointer;font-family:inherit}h1,h2{color:var(--text);margin:0;font-weight:600}[data-theme=xiangqi]{--app-bg:#1a1410;--app-bg-glow:#3d2b1a;--text:#f0e6d2;--text-dim:#b8a888;--accent:#c0392b;--accent-soft:#c0392b26;--panel-bg:#281c14d9;--panel-border:#b48c504d;--btn-bg:#8b691440;--btn-bg-hover:#c0392b4d;--btn-active:#c0392b;--board-light:#e8d5a8;--board-dark:#d4b483;--board-line:#5c3a1e;--piece-red:#c0392b;--piece-red-bg:#f5e8d0;--piece-black:#1a1a1a;--piece-black-bg:#f5e8d0;--piece-grad-end:#e6d2b0;--piece-shadow:#2c2420;--board-frame-outer:#8b6914;--board-frame-inner:#5c3a1e;--highlight:#38a169a6;--last-move:#c0392b59;--check:#e74c3c99}[data-theme=chess]{--app-bg:#15171c;--app-bg-glow:#2a3340;--text:#e8edf3;--text-dim:#9aa6b8;--accent:#d4a849;--accent-soft:#d4a84926;--panel-bg:#1a1f28d9;--panel-border:#d4a84940;--btn-bg:#3c465466;--btn-bg-hover:#d4a84940;--btn-active:#d4a849;--board-light:#f0d9b5;--board-dark:#b58863;--board-line:#5a4632;--piece-red:#f8f4ec;--piece-red-bg:#d4a849;--piece-black:#2c2420;--piece-black-bg:#6b5640;--piece-grad-end:#e6d2b0;--piece-shadow:#2c2420;--board-frame-outer:#5a4632;--board-frame-inner:#3d3025;--highlight:#38a169b3;--last-move:#d4a84966;--check:#e74c3c99}[data-theme=gomoku],[data-theme=go],[data-theme=junqi]{--app-bg:#1a1410;--app-bg-glow:#3d2b1a;--text:#f0e6d2;--text-dim:#b8a888;--accent:#c0392b;--accent-soft:#c0392b26;--panel-bg:#281c14d9;--panel-border:#b48c504d;--btn-bg:#8b691440;--btn-bg-hover:#c0392b4d;--btn-active:#c0392b;--board-light:#e8d5a8;--board-dark:#d4b483;--board-line:#5c3a1e;--piece-grad-end:#e6d2b0;--piece-shadow:#2c2420;--board-frame-outer:#8b6914;--board-frame-inner:#5c3a1e;--highlight:#38a169a6;--last-move:#c0392b59;--check:#e74c3c99}[data-theme=xiangqi][data-skin=night]{--app-bg:#0a0e27;--app-bg-glow:#1a2151;--text:#c9d6ff;--text-dim:#6b7a99;--accent:#64ffda;--accent-soft:#64ffda1f;--panel-bg:#0d1233e0;--panel-border:#64ffda38;--btn-bg:#3d5a8040;--btn-bg-hover:#64ffda38;--board-light:#1a2151;--board-dark:#0d1233;--board-line:#3d5a80;--board-frame-outer:#1e3a5f;--board-frame-inner:#0a0e27;--piece-red:#ff6b9d;--piece-red-bg:#2a1a3e;--piece-black:#c0c8ff;--piece-black-bg:#1a2a4e;--piece-grad-end:#15183a;--highlight:#64ffdab3;--last-move:#64ffda4d}[data-theme=chess][data-skin=night]{--app-bg:#0a0e27;--app-bg-glow:#1a2151;--text:#c9d6ff;--text-dim:#6b7a99;--accent:#64ffda;--accent-soft:#64ffda1f;--panel-bg:#0d1233e0;--panel-border:#64ffda38;--btn-bg:#3d5a8040;--btn-bg-hover:#64ffda38;--board-light:#2a3568;--board-dark:#1a2151;--board-line:#3d5a80;--board-frame-outer:#1e3a5f;--board-frame-inner:#0a0e27;--piece-red:#64ffda;--piece-shadow:#0a0e27;--piece-black:#c0c8ff;--highlight:#64ffdab3;--last-move:#64ffda4d}[data-theme=xiangqi][data-skin=sakura]{--app-bg:#2a1a1e;--app-bg-glow:#4a2630;--text:#ffeef3;--text-dim:#c89ba8;--accent:#e91e63;--accent-soft:#e91e6326;--panel-bg:#3a1e26e0;--panel-border:#e91e6340;--btn-bg:#883c5040;--btn-bg-hover:#e91e6340;--board-light:#fce4ec;--board-dark:#f8bbd0;--board-line:#8e6b72;--board-frame-outer:#ad1457;--board-frame-inner:#6d1b3a;--piece-red:#ad1457;--piece-red-bg:#fde7ef;--piece-black:#4a2c33;--piece-black-bg:#fde7ef;--piece-grad-end:#f4c2d4;--highlight:#e91e638c;--last-move:#e91e634d}[data-theme=chess][data-skin=sakura]{--app-bg:#2a1a1e;--app-bg-glow:#4a2630;--text:#ffeef3;--text-dim:#c89ba8;--accent:#e91e63;--accent-soft:#e91e6326;--panel-bg:#3a1e26e0;--panel-border:#e91e6340;--btn-bg:#883c5040;--btn-bg-hover:#e91e6340;--board-light:#fce4ec;--board-dark:#f48fb1;--board-line:#8e6b72;--board-frame-outer:#ad1457;--board-frame-inner:#6d1b3a;--piece-red:#ad1457;--piece-shadow:#fce4ec;--piece-black:#4a2c33;--highlight:#e91e638c;--last-move:#e91e634d}[data-theme=xiangqi][data-skin=code]{--app-bg:#1e1e1e;--app-bg-glow:#2d2d2d;--text:#d4d4d4;--text-dim:#858585;--accent:#569cd6;--accent-soft:#569cd61f;--panel-bg:#252526f2;--panel-border:#3c3c3c;--btn-bg:#3339;--btn-bg-hover:#569cd633;--board-light:#252526;--board-dark:#1e1e1e;--board-line:#3c3c3c;--board-frame-outer:#2d2d2d;--board-frame-inner:#1e1e1e;--piece-red:#569cd6;--piece-red-bg:#2d2d30;--piece-black:#dcdcaa;--piece-black-bg:#2d2d30;--piece-grad-end:#252526;--piece-shadow:#1e1e1e;--highlight:#569cd673;--last-move:#569cd640}[data-theme=chess][data-skin=code]{--app-bg:#1e1e1e;--app-bg-glow:#2d2d2d;--text:#d4d4d4;--text-dim:#858585;--accent:#569cd6;--accent-soft:#569cd61f;--panel-bg:#252526f2;--panel-border:#3c3c3c;--btn-bg:#3339;--btn-bg-hover:#569cd633;--board-light:#2d2d30;--board-dark:#1e1e1e;--board-line:#3c3c3c;--board-frame-outer:#2d2d2d;--board-frame-inner:#1e1e1e;--piece-red:#569cd6;--piece-shadow:#1e1e1e;--piece-black:#dcdcaa;--highlight:#569cd673;--last-move:#569cd640}[data-skin=code]{--mono-font:"Consolas", "Monaco", "Menlo", "Courier New", monospace}[data-skin=code] body,[data-skin=code] button,[data-skin=code] .history-list,[data-skin=code] .timer-box .time{font-family:var(--mono-font)}.app{flex-direction:column;min-height:100vh;display:flex}.topbar{background:var(--panel-bg);border-bottom:1px solid var(--panel-border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:14px 20px;display:flex}.topbar .title{letter-spacing:2px;align-items:center;gap:10px;font-size:22px;font-weight:700;display:flex}.topbar .title .badge{color:var(--text-dim);border:1px solid var(--panel-border);border-radius:20px;padding:2px 10px;font-size:12px;font-weight:400}.topbar-actions{flex-wrap:wrap;gap:8px;display:flex}.icon-btn{background:var(--btn-bg);border:1px solid var(--panel-border);color:var(--text);border-radius:var(--radius);padding:8px 14px;font-size:14px;transition:all .2s}.icon-btn:hover{background:var(--btn-bg-hover);border-color:var(--accent)}.game-layout{flex:1;grid-template-columns:1fr 320px;gap:20px;width:100%;max-width:1200px;margin:0 auto;padding:20px;display:grid}.board-wrap{justify-content:center;align-items:center;display:flex}.sidebar{background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:var(--radius);flex-direction:column;gap:16px;max-height:calc(100vh - 120px);padding:16px;display:flex}.sidebar h3{letter-spacing:1px;color:var(--text-dim);text-transform:uppercase;margin:0;font-size:13px}.turn-indicator{background:var(--accent-soft);border-radius:var(--radius);border:1px solid var(--accent);align-items:center;gap:10px;padding:10px 14px;display:flex}.turn-dot{background:var(--accent);width:16px;height:16px;box-shadow:0 0 8px var(--accent);border-radius:50%}.turn-dot.thinking{animation:1s infinite pulse}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(1.3)}}.history-list{flex:1;grid-template-columns:28px 1fr 1fr;align-content:start;gap:4px 8px;min-height:120px;font-size:14px;display:grid;overflow-y:auto}.history-list .move-num{color:var(--text-dim);align-self:center;font-size:12px}.history-list .move-cell{border-radius:4px;padding:3px 6px;font-family:KaiTi,楷体,Menlo,Consolas,monospace}.history-list .move-cell.last{background:var(--accent-soft);color:var(--accent);font-weight:600}.controls{flex-direction:column;gap:8px;display:flex}.btn{background:var(--btn-bg);border:1px solid var(--panel-border);color:var(--text);border-radius:var(--radius);padding:10px 14px;font-size:15px;transition:all .2s}.btn:hover:not(:disabled){background:var(--btn-bg-hover);border-color:var(--accent)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.timer-row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.timer-box{text-align:center;border-radius:var(--radius);background:var(--btn-bg);border:1px solid var(--panel-border);padding:10px}.timer-box .label{color:var(--text-dim);margin-bottom:4px;font-size:12px}.timer-box .time{font-family:Menlo,monospace;font-size:22px;font-weight:700}.timer-box.active{border-color:var(--accent);background:var(--accent-soft)}.timer-box.low{color:#e74c3c}.overlay{z-index:100;background:#000000b3;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{background:var(--panel-bg);border:1px solid var(--panel-border);width:100%;max-width:460px;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:16px;padding:32px}.modal h2{margin:0 0 8px;font-size:24px}.modal p{color:var(--text-dim);margin:0 0 20px}.modal-actions{gap:10px;display:flex}.modal-actions .btn{flex:1}.home{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;padding:30px 20px;display:flex}.home h1{letter-spacing:4px;background:linear-gradient(135deg, var(--accent), var(--text));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin:0 0 8px;font-size:clamp(32px,6vw,52px)}.home .subtitle{color:var(--text-dim);margin:0 0 36px;font-size:16px}.choice-grid{grid-template-columns:1fr 1fr;gap:18px;width:100%;max-width:520px;margin-bottom:28px;display:grid}.choice-card{background:var(--panel-bg);border:2px solid var(--panel-border);cursor:pointer;border-radius:16px;padding:28px 20px;transition:all .25s}.choice-card:hover{border-color:var(--accent);box-shadow:var(--shadow);transform:translateY(-3px)}.choice-card.selected{border-color:var(--accent);background:var(--accent-soft)}.choice-card .glyph{margin-bottom:10px;font-size:48px;line-height:1}.choice-card .name{margin-bottom:4px;font-size:18px;font-weight:600}.choice-card .desc{color:var(--text-dim);font-size:13px}.option-group{text-align:left;width:100%;max-width:520px;margin-bottom:24px}.option-group .label{color:var(--text-dim);text-transform:uppercase;letter-spacing:1px;margin-bottom:10px;font-size:13px}.option-row{flex-wrap:wrap;gap:10px;display:flex}.option-pill{background:var(--btn-bg);border:1px solid var(--panel-border);min-width:90px;color:var(--text);text-align:center;border-radius:24px;flex:1;padding:12px 18px;font-size:15px;transition:all .2s}.option-pill:hover{border-color:var(--accent)}.option-pill.selected{background:var(--accent);border-color:var(--accent);color:#fff}.promotion-choices{justify-content:center;gap:10px;margin-top:16px;display:flex}.promotion-choices .btn{justify-content:center;align-items:center;width:64px;height:64px;padding:0;font-size:28px;display:flex}[data-skin=code] .topbar{background:#2d2d2d;border-bottom:1px solid #1e1e1e;flex-direction:column;align-items:stretch;gap:0;padding:0}[data-skin=code] .topbar .title,[data-skin=code] .topbar-actions{visibility:hidden;height:0;margin:0;padding:0;font-size:0;overflow:hidden}[data-skin=code] .topbar:before{content:"文件(F)  编辑(E)  选择(S)  查看(V)  转到(G)  运行(R)  终端(T)  帮助(H)";color:#ccc;visibility:visible;background:#3c3c3c;height:auto;padding:4px 12px;font-size:12px;display:block}[data-skin=code] .topbar:after{content:" main.py  ✕  engine.ts  ✕  README.md  ✕";color:#969696;visibility:visible;background:#2d2d2d;border-top:1px solid #252526;height:auto;padding:6px 12px;font-size:12px;display:block}[data-skin=code] .app{padding-bottom:22px;position:relative}[data-skin=code] .app:after{content:"⎇main   ↓0 ↑0   ♥0   UTF-8   TypeScript   Ln 42, Col 8   Spaces: 2";font-size:11px;font-family:var(--mono-font);color:#fff;z-index:200;letter-spacing:.3px;background:#007acc;padding:3px 12px;position:fixed;bottom:0;left:0;right:0}[data-skin=code] .sidebar{border:1px solid #252526}[data-skin=code] .sidebar>div:nth-child(3) h3{visibility:hidden;font-size:0}[data-skin=code] .sidebar>div:nth-child(3) h3:before{content:"📁资源管理器";text-transform:uppercase;letter-spacing:1px;color:#ccc;visibility:visible;font-size:11px;font-weight:700}[data-skin=code] .turn-indicator>span:nth-child(2){font-size:0}[data-skin=code] .turn-indicator>span:nth-child(2):before{content:"✓ 已就绪";color:#4ec9b0;font-size:12px}[data-skin=code] .turn-indicator:has(.thinking)>span:nth-child(2):before{content:"● 编译中...";color:#dcdcaa}[data-skin=code] .turn-indicator span[style*=e74c3c]{display:none}[data-skin=code] .timer-box .label{font-size:0}[data-skin=code] .timer-box .label:before{content:"光标";color:#858585;font-size:11px}[data-skin=code] .timer-box .time{color:#858585;font-weight:400;font-size:12px!important}[data-skin=code] .timer-box.active{background:0 0;border-color:#3c3c3c}[data-skin=code] .history-list .move-cell{color:#4a4a4a;opacity:.7;font-size:11px}[data-skin=code] .history-list .move-cell:before{content:"// ";color:#3a3a3a}[data-skin=code] .history-list .move-cell.last{color:#6a9955;opacity:.85}[data-skin=code] .history-list .move-num{color:#3a3a3a;font-size:10px}[data-skin=code] .controls .btn:first-child{font-size:0}[data-skin=code] .controls .btn:first-child:before{content:"↩ 撤销";font-size:13px}[data-skin=code] .controls .btn:nth-child(2){font-size:0}[data-skin=code] .controls .btn:nth-child(2):before{content:"🔇 静音";font-size:13px}[data-skin=code] .controls>div:last-child .btn:first-child{font-size:0}[data-skin=code] .controls>div:last-child .btn:first-child:before{content:"⟳ 重启";font-size:13px}[data-skin=code] .controls>div:last-child .btn:last-child{font-size:0}[data-skin=code] .controls>div:last-child .btn:last-child:before{content:"✕ 关闭";font-size:13px}[data-skin=code] .board-wrap svg line{stroke-opacity:.1}[data-skin=code] .board-wrap svg text{display:none}[data-skin=code] .board-wrap svg path{stroke-opacity:.08}[data-skin=code] .board-wrap [class*=piece]{font-family:var(--mono-font);opacity:.92;border-width:1px;border-radius:3px;box-shadow:none!important;background:0 0!important}[data-skin=code] .board-wrap [class*=red]{font-weight:600}[data-skin=code] .board-wrap [class*=black]{font-weight:500}[data-skin=code] .board-wrap [class*=hint]{opacity:.5}[data-skin=code] .board-wrap [class*=board]{box-shadow:0 1px 3px #0000004d!important}[data-skin=code][data-theme=chess] .board-wrap [class*=cell][class*=light]{background:#252526}[data-skin=code][data-theme=chess] .board-wrap [class*=cell][class*=dark]{background:#1e1e1e}[data-skin=code] .board-wrap [class*=piece],[data-skin=code] .board-wrap [class*=hint],[data-skin=code] .board-wrap [class*=board] svg{opacity:0;transition:opacity .15s}[data-skin=code] .board-wrap[data-hovered=true] [class*=piece]{opacity:.92}[data-skin=code] .board-wrap[data-hovered=true] [class*=hint]{opacity:.5}[data-skin=code] .board-wrap[data-hovered=true] [class*=board] svg{opacity:1}[data-skin=code] .board-wrap [class*=board]{position:relative}[data-skin=code] .board-wrap [class*=board]:before{pointer-events:none;z-index:5;font-family:var(--mono-font);color:#d4d4d4;white-space:pre;content:" 1  import engine\a " " 2  from board import Board\a " " 3  \a " " 4  class GameEngine:\a " " 5      def __init__(self):\a " " 6          self.board = Board()\a " " 7          self.turn = \"red\"\a " " 8          self.history = []\a " " 9  \a " "10      def move(self, frm, to):\a " "11          piece = self.board.get(frm)\a " "12          if not self._valid(piece, to):\a " "13              return False\a " "14          self.board.set(to, piece)\a " "15          self.board.set(frm, None)\a " "16          self.history.append((frm, to))\a " "17          self.turn = self._next()\a " "18          return True\a " "19  \a " "20      def _valid(self, piece, to):\a " "21          rules = piece.rules()\a " "22          return to in rules.targets()";background:#1e1e1e;padding:18px 22px;font-size:13px;line-height:1.7;transition:opacity .15s;position:absolute;inset:0;overflow:hidden}[data-skin=code] .board-wrap[data-hovered=true] [class*=board]:before{opacity:0}@media (hover:none){[data-skin=code] .board-wrap [class*=piece]{opacity:.92}[data-skin=code] .board-wrap [class*=hint]{opacity:.5}[data-skin=code] .board-wrap [class*=board] svg{opacity:1}[data-skin=code] .board-wrap [class*=board]:before{display:none}}[data-skin=code] .rules-block{opacity:.4}.rules-block{border-top:1px solid var(--panel-border);padding-top:12px}.rules-toggle{background:var(--btn-bg);border:1px solid var(--panel-border);width:100%;color:var(--text);border-radius:var(--radius);justify-content:space-between;align-items:center;padding:10px 14px;font-size:14px;font-weight:600;transition:all .2s;display:flex}.rules-toggle:hover{border-color:var(--accent);background:var(--btn-bg-hover)}.rules-arrow{opacity:.7;font-size:12px;transition:transform .2s}.rules-arrow.open{transform:rotate(180deg)}.rules-content{max-height:320px;margin-top:12px;padding-right:4px;font-size:13px;line-height:1.6;overflow-y:auto}.rules-content h4{color:var(--accent);letter-spacing:.5px;margin:14px 0 6px;font-size:13px;font-weight:600}.rules-content h4:first-child{margin-top:0}.rules-content p{color:var(--text);margin:0 0 8px}.rules-content ul{margin:0 0 8px;padding-left:18px}.rules-content li{color:var(--text-dim);margin-bottom:5px}.rules-content b{color:var(--text);font-weight:600}.piece-rules{flex-direction:column;gap:8px;display:flex}.piece-rule{background:var(--btn-bg);border-radius:6px;align-items:flex-start;gap:10px;padding:6px 8px;display:flex}.piece-rule-glyph{background:radial-gradient(circle at 35% 30%, var(--board-light), var(--board-dark));border:1.5px solid var(--accent);width:32px;height:32px;color:var(--accent);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-family:KaiTi,楷体,serif;font-size:18px;font-weight:700;line-height:1;display:flex}.piece-rule-name{color:var(--text);margin-bottom:2px;font-weight:600}.piece-rule-desc{color:var(--text-dim);font-size:12px;line-height:1.5}@media (width<=880px){:root{--board-size:min(94vw, 60vh)}.game-layout{grid-template-columns:1fr;gap:12px;padding:12px}.sidebar{max-height:none}.history-list{max-height:140px}.topbar{padding:12px}.topbar .title{font-size:18px}}._board_lyeit_3{width:var(--board-size);aspect-ratio:1;box-shadow:var(--shadow), inset 0 0 0 6px var(--board-frame-outer), inset 0 0 0 10px var(--board-frame-inner);-webkit-user-select:none;user-select:none;touch-action:manipulation;border-radius:6px;grid-template-rows:repeat(8,1fr);grid-template-columns:repeat(8,1fr);display:grid;position:relative;overflow:hidden}._cell_lyeit_17{cursor:pointer;justify-content:center;align-items:center;display:flex;position:relative}._cell_lyeit_17._light_lyeit_25{background:var(--board-light)}._cell_lyeit_17._dark_lyeit_29{background:var(--board-dark)}._coord_lyeit_34{color:#00000073;pointer-events:none;font-size:clamp(9px,1.4vw,13px);font-weight:600;position:absolute}._coord_lyeit_34._file_lyeit_41{bottom:2px;right:4px}._coord_lyeit_34._rank_lyeit_45{top:2px;left:4px}._cell_lyeit_17._dark_lyeit_29 ._coord_lyeit_34{color:#ffffff8c}._piece_lyeit_54{z-index:2;filter:drop-shadow(0 2px 2px #00000059);font-size:clamp(24px,6vw,56px);line-height:1;position:relative}._piece_lyeit_54._red_lyeit_62{color:var(--piece-red);text-shadow:-1px -1px 0 var(--piece-shadow), 1px -1px 0 var(--piece-shadow), -1px 1px 0 var(--piece-shadow), 1px 1px 0 var(--piece-shadow), 0 2px 3px #0006}._piece_lyeit_54._black_lyeit_70{color:var(--piece-black);text-shadow:0 2px 3px #0006}._hint_lyeit_76{background:var(--highlight);z-index:1;border-radius:50%;width:30%;height:30%;animation:1.4s ease-in-out infinite _hintPulse_lyeit_1;position:absolute}._hint_lyeit_76._capture_lyeit_86{border:5px solid var(--highlight);background:0 0;width:88%;height:88%}@keyframes _hintPulse_lyeit_1{0%,to{opacity:.5;transform:scale(.85)}50%{opacity:1;transform:scale(1.05)}}._cell_lyeit_17._selected_lyeit_99 ._piece_lyeit_54{filter:drop-shadow(0 0 6px var(--accent)) drop-shadow(0 2px 2px #00000059)}._cell_lyeit_17._last-from_lyeit_103:before,._cell_lyeit_17._last-to_lyeit_104:before{content:"";background:var(--last-move);z-index:0;position:absolute;inset:0}._cell_lyeit_17._in-check_lyeit_112:after{content:"";background:radial-gradient(circle, var(--check), transparent 70%);z-index:0;animation:.8s ease-in-out infinite _checkPulse_lyeit_1;position:absolute;inset:0}@keyframes _checkPulse_lyeit_1{0%,to{opacity:.4}50%{opacity:.9}}._board_145lp_4{aspect-ratio:1;width:var(--board-size);box-shadow:var(--shadow), inset 0 0 0 6px var(--board-frame-outer), inset 0 0 0 10px var(--board-frame-inner);background:radial-gradient(ellipse at center, var(--board-light) 0%, var(--board-dark) 100%);-webkit-user-select:none;user-select:none;touch-action:manipulation;border-radius:6px;position:relative}._board_145lp_4 svg{pointer-events:none;width:90%;height:90%;position:absolute;inset:5%}._pieces_145lp_18{position:absolute;inset:5%}._cell_145lp_32{width:calc(100% / var(--divisions));aspect-ratio:1;cursor:pointer;justify-content:center;align-items:center;display:flex;position:absolute;transform:translate(-50%,-50%)}._stone_145lp_45{aspect-ratio:1;z-index:1;border-radius:50%;width:86%;position:relative}._stone_145lp_45._red_145lp_53{background:radial-gradient(circle at 35% 30%,#555,#0a0a0a 70%);box-shadow:0 2px 4px #00000080,inset 0 -2px 4px #0006}._stone_145lp_45._black_145lp_59{background:radial-gradient(circle at 35% 30%,#fff,#c8c8c8 80%);box-shadow:0 2px 4px #0006,inset 0 -2px 4px #00000026}._token_145lp_66{aspect-ratio:1;z-index:1;text-align:center;border-radius:4px;justify-content:center;align-items:center;width:84%;font-family:PingFang SC,sans-serif;font-size:clamp(8px,1.8vw,14px);font-weight:700;line-height:1.05;display:flex}._token_145lp_66._red_145lp_53{color:#fff;background:linear-gradient(135deg,#c0392b,#8b0000);border:1px solid #6b0000;box-shadow:0 1px 3px #0006}._token_145lp_66._black_145lp_59{color:#fff;background:linear-gradient(135deg,#2c3e50,#1a252f);border:1px solid #0d1b24;box-shadow:0 1px 3px #0006}._last-mark_145lp_96{aspect-ratio:1;background:var(--accent);z-index:2;pointer-events:none;border-radius:50%;width:24%;position:absolute}._hint_145lp_107{aspect-ratio:1;background:var(--highlight);z-index:1;border-radius:50%;width:32%;animation:1.4s ease-in-out infinite _hintPulse_145lp_1}._hint_145lp_107._capture_145lp_116{border:4px solid var(--highlight);background:0 0;width:88%}@keyframes _hintPulse_145lp_1{0%,to{opacity:.5;transform:scale(.85)}50%{opacity:1;transform:scale(1.05)}}._cell_145lp_32._selected_145lp_127 ._stone_145lp_45,._cell_145lp_32._selected_145lp_127 ._token_145lp_66{box-shadow:0 0 0 3px var(--accent), 0 3px 8px #00000080;transform:scale(1.1)}._board_1vhmb_5{width:var(--board-size);aspect-ratio:9/10;background:radial-gradient(ellipse at center, var(--board-light) 0%, var(--board-dark) 100%);box-shadow:var(--shadow), inset 0 0 0 6px var(--board-frame-outer), inset 0 0 0 10px var(--board-frame-inner);-webkit-user-select:none;user-select:none;touch-action:manipulation;border-radius:6px;position:relative}._board_1vhmb_5 svg{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}._inner_1vhmb_26,._pieces_1vhmb_33{position:absolute;inset:6%}._cell_1vhmb_38{aspect-ratio:1;cursor:pointer;justify-content:center;align-items:center;width:12.5%;display:flex;position:absolute;transform:translate(-50%,-50%)}._hint_1vhmb_50{aspect-ratio:1;background:var(--highlight);border-radius:50%;width:28%;animation:1.4s ease-in-out infinite _hintPulse_1vhmb_1}._hint_1vhmb_50._capture_1vhmb_58{border:4px solid var(--highlight);background:0 0;border-radius:50%;width:88%}@keyframes _hintPulse_1vhmb_1{0%,to{opacity:.5;transform:scale(.85)}50%{opacity:1;transform:scale(1.05)}}._cell_1vhmb_38._last-from_1vhmb_71:before,._cell_1vhmb_38._last-to_1vhmb_72:before{content:"";background:var(--last-move);z-index:0;border-radius:50%;width:80%;height:80%;position:absolute}._cell_1vhmb_38._in-check_1vhmb_83:after{content:"";background:var(--check);z-index:0;border-radius:50%;width:88%;height:88%;animation:.8s ease-in-out infinite _checkPulse_1vhmb_1;position:absolute}@keyframes _checkPulse_1vhmb_1{0%,to{opacity:.3}50%{opacity:.8}}._piece_1vhmb_33{aspect-ratio:1;z-index:1;border-radius:50%;justify-content:center;align-items:center;width:84%;font-family:KaiTi,楷体,STKaiti,serif;font-size:clamp(16px,3.6vw,34px);font-weight:700;transition:transform .15s;display:flex;position:relative}._piece_1vhmb_33._red_1vhmb_118{background:radial-gradient(circle at 35% 30%, var(--piece-red-bg), var(--piece-grad-end));color:var(--piece-red);border:2px solid var(--piece-red);box-shadow:0 2px 6px #0000004d,inset 0 0 0 3px #fff6}._piece_1vhmb_33._black_1vhmb_125{background:radial-gradient(circle at 35% 30%, var(--piece-black-bg), var(--piece-grad-end));color:var(--piece-black);border:2px solid var(--piece-black);box-shadow:0 2px 6px #0000004d,inset 0 0 0 3px #fff6}._cell_1vhmb_38._selected_1vhmb_132 ._piece_1vhmb_33{box-shadow:0 0 0 4px var(--accent), 0 4px 12px #0006;transform:scale(1.12)}
