:root{--bg:#14181f;--bg2:#1c222b;--bg3:#262e3a;--line:#2f3946;--text:#e8ecf1;--muted:#8b97a6;--accent:#4b8bf5;--accent2:#79a8ff;--light:#e6e1d3;--dark:#7c93a7;--good:#7cc96b;--c-brilliant:#22c3c3;--c-best:#81b64c;--c-excellent:#96bc4b;--c-good:#95b776;--c-inaccuracy:#f7c631;--c-mistake:#ff8f3a;--c-blunder:#fa412d;color:var(--text);background:var(--bg);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Noto Sans SC,sans-serif}*{box-sizing:border-box}html,body{background:var(--bg);min-height:100%;margin:0}body{flex-direction:column;min-height:100vh;display:flex}button{font:inherit;color:inherit;cursor:pointer}a{color:var(--accent2)}.top{border-bottom:1px solid var(--line);background:var(--bg2);align-items:center;gap:16px;padding:10px 20px;display:flex}.logo{color:var(--text);letter-spacing:.3px;align-items:center;gap:8px;font-size:20px;text-decoration:none;display:flex}.logo img{filter:drop-shadow(0 1px 2px #0008);width:30px}.logo b{color:var(--accent2);font-weight:700}.tabs{flex:1;gap:4px;display:flex;overflow-x:auto}.tabs button{color:var(--muted);white-space:nowrap;background:0 0;border:0;border-radius:8px;padding:8px 14px}.tabs button:hover{color:var(--text);background:var(--bg3)}.tabs button.on{color:var(--text);background:var(--bg3);box-shadow:inset 0 -2px 0 var(--accent)}.lang{background:var(--bg3);border:1px solid var(--line);border-radius:8px;padding:6px 12px}.layout{flex:1;justify-content:center;align-items:flex-start;gap:24px;padding:20px;display:flex}.board-col{--size:min(calc(100vh - 190px), calc(100vw - 440px));width:calc(var(--size) + 30px);flex-direction:column;gap:8px;min-width:280px;display:flex}.board-wrap{gap:8px;display:flex}#board{flex:1;min-width:0}.panel{background:var(--bg2);border:1px solid var(--line);border-radius:14px;flex-direction:column;gap:12px;width:360px;max-height:calc(100vh - 110px);padding:18px;display:flex}.panel h2{margin:0;font-size:18px}.panel label{color:var(--muted);margin-bottom:-6px;font-size:13px}.foot{text-align:center;color:var(--muted);padding:10px 16px 16px;font-size:12px}.player{align-items:center;gap:8px;min-height:40px;padding-left:30px;display:flex}.player .dot{border:1px solid #0006;border-radius:50%;width:14px;height:14px}.player .dot.w{background:#f4f4f4}.player .dot.b{background:#222;border-color:#666}.pname{font-weight:600}.tag{background:var(--accent);color:#fff;vertical-align:2px;border-radius:4px;margin-left:4px;padding:1px 5px;font-size:11px;font-weight:700}.psub{color:var(--muted);font-size:13px}.psub .up{color:var(--good)}.psub .down{color:var(--c-blunder)}.captured{flex:1;align-items:center;min-width:0;display:flex}.captured img{width:18px;margin-right:-6px}.captured .adv{color:var(--muted);margin-left:10px;font-size:12px}.clock{font-variant-numeric:tabular-nums;background:var(--bg3);text-align:right;min-width:92px;color:var(--muted);border-radius:8px;padding:4px 12px;font-size:22px;font-weight:600}.clock.running{color:#111;background:#e8ecf1}.clock.running.low{background:var(--c-blunder);color:#fff}.evalbar{background:#f2f2f2;border-radius:4px;flex:none;width:22px;position:relative;overflow:hidden}.evalbar>div{background:#3a3a3a;width:100%;transition:height .4s}.evalbar.flipped{background:#3a3a3a}.evalbar.flipped>div{background:#f2f2f2}.evalbar span{text-align:center;color:#333;font-size:9px;font-weight:700;position:absolute;bottom:4px;left:0;right:0}.evalbar.flipped span{color:#ddd}.evalbar.hidden{visibility:hidden}.board{aspect-ratio:1;-webkit-user-select:none;user-select:none;touch-action:none;border-radius:6px;grid-template-columns:repeat(8,1fr);width:100%;display:grid;position:relative;box-shadow:0 10px 40px #0007}.board>.sq:first-child{border-top-left-radius:6px}.board>.sq:nth-child(8){border-top-right-radius:6px}.board>.sq:nth-child(57){border-bottom-left-radius:6px}.board>.sq:nth-child(64){border-bottom-right-radius:6px}.sq{position:relative}.sq.light{background:var(--light)}.sq.dark{background:var(--dark)}.sq.last:before{content:"";background:#f5e15a66;position:absolute;inset:0}.sq.sel:before{content:"";background:#4b8bf577;position:absolute;inset:0}.sq.check:after{content:"";background:radial-gradient(circle,#ff2a2ab0 0%,#ff2a2a50 45%,#0000 72%);position:absolute;inset:0}.sq.dest:after{content:"";background:#1b2a3a40;border-radius:50%;width:28%;height:28%;position:absolute;top:36%;left:36%}.sq.cap:after{content:"";border-radius:50%;position:absolute;inset:0;box-shadow:inset 0 0 0 5px #1b2a3a40}.coord{pointer-events:none;font-size:clamp(8px,1.4vmin,12px);font-weight:700;position:absolute}.coord.rank{top:2px;left:3px}.coord.file{bottom:1px;right:4px}.sq.light .coord{color:var(--dark)}.sq.dark .coord{color:var(--light)}.pieces{pointer-events:none;position:absolute;inset:0}.piece{will-change:transform;width:12.5%;height:12.5%;position:absolute;top:0;left:0}.piece img{pointer-events:none;width:100%;height:100%;position:absolute;bottom:0;left:0}.set-3d .piece img{height:170%}.set-3d .sq.last:before,.set-3d .sq.sel:before{inset:0}.piece.anim{transition:transform .18s cubic-bezier(.3,.7,.4,1)}.piece.fade{opacity:0;transition:opacity .15s}.piece.dragging{filter:drop-shadow(0 6px 8px #0006);cursor:grabbing;scale:1.12;z-index:30!important}.set-3d .piece.dragging{filter:drop-shadow(0 14px 10px #0005);translate:0 -8%;scale:1.08}.arrows{pointer-events:none;z-index:15;width:100%;height:100%;position:absolute;inset:0}.arrow{stroke-width:.16px;stroke-linecap:round;opacity:.85}.arrow.g{stroke:#3fb15b}.ah.g{fill:#3fb15b}.arrow.b{stroke:#3a7ff0}.ah.b{fill:#3a7ff0}.arrow.r{stroke:#e04a3a}.ah.r{fill:#e04a3a}.arrow.y{stroke:#f0b03a}.ah.y{fill:#f0b03a}.overlay{z-index:40;background:#0005;border-radius:6px;display:none;position:absolute;inset:0}.overlay.on{display:block}.promo{background:#f4f4f4;border-radius:4px;flex-direction:column;width:12.5%;display:flex;position:absolute;box-shadow:0 6px 20px #0009}.promo img{aspect-ratio:1;cursor:pointer;object-fit:contain;object-position:50% 85%;width:100%}.promo img:hover{background:#4b8bf544}.row{flex-wrap:wrap;gap:8px;display:flex}.row>button{flex:1}.panel button:not(.mv){background:var(--bg3);border:1px solid var(--line);border-radius:10px;padding:10px 12px;transition:background .15s}.panel button:not(.mv):hover{background:#313b49}.panel button.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.panel button.primary:hover{background:var(--accent2)}.panel button.big{padding:14px;font-size:17px}.levels{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.levels .lv{flex-direction:column;align-items:center;display:flex;padding:8px 4px!important}.levels .lv small{color:var(--muted);font-size:11px}.panel button.on{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);background:#4b8bf522}.tcs{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.tcs button{font-variant-numeric:tabular-nums;font-weight:600}.panel input,.panel textarea{background:var(--bg);border:1px solid var(--line);color:var(--text);font:inherit;border-radius:10px;padding:10px 12px}.panel textarea{resize:vertical;min-height:140px;font-family:ui-monospace,monospace;font-size:12px}.badge{color:var(--muted);text-align:center;margin:4px 0 0;font-size:12px}.muted{color:var(--muted);margin:0;font-size:13px}.status{background:var(--bg3);border-radius:10px;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;font-size:14px;display:flex}.status.thinking{color:var(--accent2)}.status.warn{color:var(--c-inaccuracy)}.searching{color:var(--muted);flex-direction:column;align-items:center;gap:14px;padding:30px 0;display:flex}.spinner{border:4px solid var(--bg3);border-top-color:var(--accent);border-radius:50%;width:42px;height:42px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.moves-wrap{background:var(--bg);border-radius:10px;flex:1;min-height:120px;position:relative;overflow-y:auto}.moves{font-variant-numeric:tabular-nums;margin:0;padding:4px 0;list-style:none}.moves li{grid-template-columns:42px 1fr 1fr;padding:1px 6px;display:grid}.moves li:nth-child(odd){background:#ffffff05}.moves .no{color:var(--muted);padding:4px 0;font-size:13px}.mv{cursor:pointer;border-radius:6px;padding:4px 8px;font-weight:500}.mv:hover{background:var(--bg3)}.mv.cur{background:var(--accent);color:#fff}.mv i{margin-left:4px;font-size:12px;font-style:normal;font-weight:800}.mv.empty{cursor:default}.nav{grid-template-columns:repeat(5,1fr);gap:6px;display:grid}.nav button{padding:8px 0!important}.over{background:linear-gradient(135deg,#4b8bf522,#22c3c318);border:1px solid #4b8bf555;border-radius:12px;flex-direction:column;gap:10px;padding:12px;display:flex}.result{font-size:15px}.result strong{font-size:18px}.progress{background:var(--bg3);border-radius:4px;height:8px;overflow:hidden}.progress>div{background:var(--accent);height:100%;transition:width .2s}.acc{text-align:center;justify-content:space-between;align-items:center;display:flex}.acc>div{flex-direction:column;display:flex}.acc small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;max-width:120px;font-size:12px;overflow:hidden}.acc b{font-size:28px}.acc>div:first-child b{color:#111;background:#f0f0f0;border-radius:8px;padding:2px 12px}.acc>div:last-child b{background:#333;border-radius:8px;padding:2px 12px}.acc span{color:var(--muted);font-size:13px}#graph{cursor:pointer;background:#3a3a3a;border-radius:6px;flex:none;height:70px;overflow:hidden}#graph svg{width:100%;height:100%;display:block}#graph .area{fill:#f0f0f0}#graph .mid{stroke:#888;stroke-width:.3px;vector-effect:non-scaling-stroke}#graph .cursor{stroke:var(--accent);stroke-width:2px;vector-effect:non-scaling-stroke}#graph circle{vector-effect:non-scaling-stroke}.m-blunder{fill:var(--c-blunder)}.m-mistake{fill:var(--c-mistake)}.m-brilliant{fill:var(--c-brilliant)}.comment{background:var(--bg3);border-radius:10px;flex-direction:column;gap:4px;min-height:48px;padding:10px 12px;font-size:14px;display:flex}.comment i{font-style:normal;font-weight:800}.comment .score{color:var(--muted);float:right;font-variant-numeric:tabular-nums}.counts{border-collapse:collapse;width:100%;font-size:13px}.counts td{text-align:center;font-variant-numeric:tabular-nums;width:40px;font-weight:700}.counts th{text-align:center;padding:2px 0;font-weight:500}.counts i{min-width:22px;font-style:normal;font-weight:800;display:inline-block}.c-brilliant,.c-brilliant i{color:var(--c-brilliant)}.c-best i{color:var(--c-best)}.c-excellent i{color:var(--c-excellent)}.c-good i{color:var(--c-good)}.c-inaccuracy,.c-inaccuracy i{color:var(--c-inaccuracy)}.c-mistake,.c-mistake i{color:var(--c-mistake)}.c-blunder,.c-blunder i{color:var(--c-blunder)}.mv.cur.c-inaccuracy,.mv.cur.c-mistake,.mv.cur.c-blunder,.mv.cur.c-brilliant,.mv.cur i{color:#fff}.embed .foot{display:none}.embed .top{padding:6px 12px}.embed .layout{gap:16px;padding:10px 12px}@media (width>=861px){.embed .board-col{--size:min(calc(100vh - 150px), calc(100vw - 420px))}.embed .panel{gap:10px;max-height:calc(100vh - 70px);padding:14px}}@media (width<=860px){.top{gap:10px;padding:8px 12px}.logo span{display:none}.tabs button{padding:8px 10px;font-size:14px}.layout{flex-direction:column;align-items:stretch;gap:12px;padding:10px 0}.board-col{--size:100vw;width:100%;padding:0 4px}.player{padding-left:4px;padding-right:4px}.evalbar{width:10px}.evalbar span{display:none}.panel{width:auto;max-height:none;margin:0 16px}.moves-wrap{max-height:180px}}.theme-menu{z-index:100;background:var(--bg2);border:1px solid var(--line);border-radius:12px;flex-direction:column;gap:2px;min-width:180px;padding:6px;display:flex;position:fixed;box-shadow:0 12px 40px #0009}.theme-menu .tm-title{color:var(--muted);padding:6px 10px 4px;font-size:12px}.theme-menu button{text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:10px;padding:8px 10px;display:flex}.theme-menu button span{opacity:.85;width:38px;font-size:13px}.theme-menu button:hover{background:var(--bg3)}.theme-menu button.on{color:#8fb6ff;background:#4b8bf522}.battle-board{aspect-ratio:1;-webkit-user-select:none;user-select:none;touch-action:none;background:#07080d;border-radius:10px;width:100%;position:relative;overflow:hidden;box-shadow:0 10px 40px #0009}.battle-board canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.bload{color:#e8d9b0;background:radial-gradient(circle at 50% 40%,#1b1f2e,#07080d 70%);flex-direction:column;justify-content:center;align-items:center;gap:14px;font-size:14px;display:flex;position:absolute;inset:0}.bload .spin{border:3px solid #e2bd6233;border-top-color:#e2bd62;border-radius:50%;width:38px;height:38px;animation:.9s linear infinite bspin}@keyframes bspin{to{transform:rotate(360deg)}}.bhud{pointer-events:none;font-family:Georgia,Songti SC,serif;position:absolute;inset:0}.bhud>*{pointer-events:auto}.bturn{color:#f3e6c0;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0b0d16cc;border:1px solid #e2bd6266;border-radius:8px;flex-direction:column;padding:6px 12px 7px;line-height:1.15;display:flex;position:absolute;top:10px;left:10px}.bturn small{letter-spacing:.14em;color:#c9b27a;text-transform:uppercase;font-size:10px}.bturn b{font-size:16px}.bturn.w b{color:#8fb8ff}.bturn.b b{color:#ff8a6a}.btally{color:#d8cfb5;background:#0b0d16aa;border:1px solid #ffffff1a;border-radius:8px;flex-direction:column;gap:2px;padding:5px 10px;font-size:12px;display:flex;position:absolute;top:64px;left:10px}.btally b{color:#fff;margin-left:4px}.btally .w:before,.btally .b:before{content:"";border-radius:50%;width:7px;height:7px;margin-right:6px;display:inline-block}.btally .w:before{background:#3d86ff}.btally .b:before{background:#ff4a2a}.btools{gap:6px;display:flex;position:absolute;top:10px;right:10px}.btools button{background:#0b0d16cc;border:1px solid #e2bd6255;border-radius:8px;place-items:center;width:34px;height:34px;padding:0;font-size:15px;display:grid}.btools button:hover{border-color:#e2bd62}.bpromo{z-index:5;background:#0b0d16ee;border:1px solid #e2bd6288;border-radius:14px;gap:8px;padding:12px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 10px 40px #000a}.bpromo button{background:#1b2030;border:1px solid #fff2;border-radius:10px;width:64px;height:64px;padding:6px}.bpromo button:hover{background:#262c40;border-color:#e2bd62}.bpromo button img{width:100%;height:100%}.bpromo .x{width:32px;height:32px;color:var(--muted);align-self:center}@media (width<=860px){.bturn b{font-size:13px}.btally{font-size:11px;top:56px}}.battle-board:before,.battle-board:after{content:"";z-index:3;pointer-events:none;background:#000;height:0;transition:height .5s;position:absolute;left:0;right:0}.battle-board:before{top:0}.battle-board:after{bottom:0}.battle-board.cine:before,.battle-board.cine:after{height:10%}.bhud{z-index:4;transition:opacity .4s}.battle-board.cine .bhud{opacity:.25}.btools button.on{background:#2a2414cc;border-color:#e2bd62}.bhint{z-index:4;color:#e8dcb8;white-space:nowrap;pointer-events:none;background:#0b0d16b0;border-radius:20px;padding:5px 12px;font-size:12px;animation:6s forwards bhint;position:absolute;bottom:10px;left:50%;transform:translate(-50%)}@keyframes bhint{0%,70%{opacity:1}to{opacity:0}}.battle-board:fullscreen{aspect-ratio:auto;border-radius:0;width:100vw;height:100vh}@media (width<=860px){.bhint{font-size:10px}}.bbanner{z-index:5;pointer-events:none;flex-direction:column;align-items:center;gap:6px;animation:.55s cubic-bezier(.2,1.4,.4,1) both bbanner-in;display:flex;position:absolute;top:30%;left:0;right:0}.bbanner:before{content:"";z-index:-1;background:linear-gradient(90deg,#0000,#0b0d16d0 25% 75%,#0000);position:absolute;inset:-18px 0}.bbanner b{letter-spacing:.12em;background:linear-gradient(#fff6d8,#f0c45a 55%,#a8741e);color:#0000;filter:drop-shadow(0 2px 10px #f0b34a80);-webkit-background-clip:text;background-clip:text;font:800 clamp(28px,6vw,64px)/1 Georgia,Songti SC,serif}.bbanner span{letter-spacing:.3em;color:#e8dcb8;text-transform:uppercase;font:600 clamp(13px,1.8vw,18px)/1 system-ui,sans-serif}.bbanner.check b{filter:drop-shadow(0 2px 10px #ff5a3a80);background-image:linear-gradient(#ffe2d8,#ff7a5a 55%,#a8281e)}.bbanner.draw b{background-image:linear-gradient(#fff,#b8c4d8)}.bbanner.out{animation:.4s ease-in forwards bbanner-out}@keyframes bbanner-in{0%{opacity:0;letter-spacing:.6em;transform:scale(1.6)}to{opacity:1;transform:none}}@keyframes bbanner-out{to{opacity:0;transform:translateY(-12px)}}
