*{box-sizing:border-box} :root{--bg:#151914;--panel:#20271f;--line:#374432;--muted:#8e9e86;--ink:#eef1df;--green:#c7ed85;--dark:#657955;--light:#d5dcad}body{margin:0;background:var(--bg);color:var(--ink);font-family:'Microsoft YaHei',system-ui,sans-serif;background-image:linear-gradient(#ffffff02 1px,transparent 1px);background-size:4px 4px}button,select{font:inherit}button{cursor:pointer;border:1px solid var(--line);background:#293225;color:var(--ink);padding:11px 14px;font-size:13px;transition:background .15s}button:hover{background:#3d4b32}button:disabled{opacity:.4;cursor:default}button:focus-visible,select:focus-visible,.square:focus-visible{outline:3px solid #ecbf6c;outline-offset:2px}.shell{max-width:1232px;margin:auto;padding:0 44px}header{height:94px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.brand{font:bold 23px monospace;letter-spacing:-1px;color:var(--ink);text-decoration:none;display:flex;align-items:center;gap:8px}.brand>span:last-child{color:var(--green)}.brand-icon{font-size:32px;color:var(--green);margin-right:5px}.header-right{display:flex;gap:10px;align-items:center;font:11px monospace;color:var(--muted);letter-spacing:1px}.header-right button{margin-left:12px;padding:8px 10px;font-size:11px}.led{display:inline-block;background:var(--green);width:6px;height:6px;box-shadow:0 0 8px #c7ed8533}.intro{padding:36px 0 30px}.eyebrow{color:var(--green);letter-spacing:2px;font:10px monospace}h1{margin:13px 0 10px;font-size:32px;font-weight:650;letter-spacing:1px}h1 span{color:var(--green)}.intro p{color:var(--muted);font-size:13px;margin:0}.game-layout{display:grid;grid-template-columns:minmax(340px,660px) minmax(285px,340px);gap:34px}.arena{min-width:0}.player{display:flex;align-items:center;gap:12px;padding:0 4px;height:66px}.player strong{font-size:13px;font-weight:600}.player small{display:block;font:9px monospace;letter-spacing:1px;color:var(--muted);margin-top:5px}.avatar{width:37px;height:37px;display:grid;place-items:center;font:bold 18px monospace;border:2px solid #91a473;box-shadow:3px 3px 0 #0e120c}.avatar.dark{background:#303d2c;color:#cfdbb1}.avatar.light{background:#d5dcad;color:#35432d}.player-state{margin-left:auto;font-size:11px;color:var(--muted)}.player-state.current{color:var(--green);background:#c7ed8510;padding:7px 10px}.board-frame{background:#303c2b;border:1px solid #566548;padding:13px;box-shadow:7px 7px 0 #0d110b}#board{display:grid;grid-template-columns:repeat(8,1fr);aspect-ratio:1;border:2px solid #172012}.square{padding:0;border:0;position:relative;aspect-ratio:1;background:var(--light);display:flex;align-items:center;justify-content:center;cursor:pointer;touch-action:manipulation}.square.dark{background:var(--dark)}.square:hover{filter:brightness(1.1)}.square.selected{background:#e6c76d;box-shadow:inset 0 0 0 4px #f9e9a4}.square.last{background:#b9c77c}.square.dark.last{background:#93a15d}.square.checked{background:#bb6a58}.square svg{width:77%;height:77%;filter:drop-shadow(2px 3px 0 #17201244);pointer-events:none;image-rendering:pixelated}.square .coord{position:absolute;font:bold 10px monospace;color:#526441;left:4px;top:3px}.square.dark .coord{color:#d9e0b2}.square .coord.file{left:auto;top:auto;right:4px;bottom:2px}.square.possible:after{content:'';width:20%;height:20%;background:#273c3177;position:absolute;box-shadow:2px 2px 0 #ffffff22}.square.capture:after{width:85%;height:85%;border:4px solid #f1d981;background:none}.panel{border:1px solid var(--line);background:var(--panel);padding:21px;margin-bottom:16px;box-shadow:3px 3px 0 #10150e}.panel-label{font:10px monospace;color:var(--muted);letter-spacing:1px;display:flex;align-items:center;gap:7px}.panel-label span:last-child:not(.led){margin-left:auto;letter-spacing:0}.status-panel{margin-top:12px}.status-panel h2{font-size:23px;margin:20px 0 7px;color:var(--green)}.status-panel p{font-size:12px;color:var(--muted);line-height:1.7;min-height:20px;margin:0}.turn-track{display:flex;margin-top:21px;gap:5px}.turn-track span{flex:1;text-align:center;padding:10px 0;font:10px monospace;color:#74826d;background:#182016;border-bottom:2px solid #39432e}.turn-track .active{color:var(--green);border-color:var(--green);background:#c7ed8510}.controls label:not(.toggle){display:block;font-size:12px;margin:19px 0 9px;color:#b8c3ad}select{width:100%;padding:11px 8px;background:#151d13;color:var(--ink);border:1px solid #414f37;font-size:12px}button.primary{width:100%;background:var(--green);border-color:var(--green);color:#23301b;font-weight:bold;margin-top:20px;box-shadow:3px 3px 0 #10190b}button.primary:hover{background:#dafa9f}.button-row{display:flex;gap:9px;margin-top:11px}.button-row button{flex:1;font-size:12px}.toggle{display:flex;align-items:center;font-size:11px;color:#c0cab7;margin-top:18px;gap:6px}.toggle input{accent-color:var(--green);margin:0}.toggle span{margin-left:auto;font:8px monospace;color:var(--muted)}.history-panel{padding-bottom:12px}#history{max-height:145px;overflow:auto;scrollbar-width:thin;scrollbar-color:#63744f #1a2117;margin-top:13px}.empty{font-size:12px;color:var(--muted);text-align:center;padding:15px}.empty small{font:8px monospace;display:inline-block;margin-top:9px;letter-spacing:1px}.move-row{display:grid;grid-template-columns:28px 1fr 1fr;font:12px monospace;padding:8px;background:#ffffff03}.move-row:nth-child(even){background:transparent}.move-row span:first-child{color:var(--muted)}.move-row:last-child{color:var(--green)}.tip{display:flex;gap:12px;padding:0 4px;color:var(--muted)}.tip>span{color:var(--green);margin-top:9px}.tip p{font-size:11px;line-height:1.9;margin:5px 0}footer{border-top:1px solid var(--line);display:flex;justify-content:space-between;margin-top:26px;padding:23px 0 25px;font:9px monospace;letter-spacing:1px;color:#75846b}footer b{color:var(--green);margin:0 8px}dialog{background:var(--panel);color:var(--ink);border:2px solid var(--green);padding:28px;box-shadow:9px 9px 0 #080e07;max-width:95vw}dialog::backdrop{background:#070c07bb}dialog h2{font-size:23px}dialog p{font-size:12px;color:var(--muted)}#promotion-options{display:flex;gap:12px;margin-top:24px}#promotion-options button{width:65px}#promotion-options svg{width:100%}@media(min-width:1100px){.game-layout{gap:40px}}@media(max-width:820px){.shell{padding:0 20px}.game-layout{grid-template-columns:1fr;gap:18px}.arena{max-width:620px;width:100%;margin:auto}aside{display:grid;grid-template-columns:1fr 1fr;gap:14px}.panel{margin:0}.status-panel{margin:0}.controls{grid-column:2;grid-row:1/3}.tip{grid-column:1/3}.header-right{font-size:0}.header-right button{font-size:11px}h1{font-size:28px}footer{font-size:8px;gap:16px}}@media(max-width:480px){.shell{padding:0 14px}header{height:72px}.brand{font-size:19px}.intro{padding:26px 0 15px}h1{font-size:25px}.game-layout{gap:18px}.board-frame{padding:7px}.square .coord{font-size:8px}aside{display:block}.panel{margin-bottom:14px}.panel{padding:18px}footer{line-height:1.8}.header-right .led{display:none}}
