:root{font-family:PingFang SC,Microsoft YaHei,sans-serif;color:#293d35;background:#f5f3ed;font-synthesis:none;font-weight:400}*{box-sizing:border-box}body{margin:0;min-width:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:disabled{opacity:.38;cursor:not-allowed}button:focus-visible,a:focus-visible{outline:3px solid #b58a4a;outline-offset:4px}button{transition:background .18s,box-shadow .18s,transform .18s}header{height:100px;border-bottom:1px solid #e2e4da;display:flex;align-items:center;justify-content:space-between;margin:0 6%}.brand{display:flex;gap:15px;align-items:center;text-decoration:none;color:inherit;font-family:Songti SC,STSong,serif;font-size:29px;letter-spacing:4px;font-weight:700}.seal{display:grid;place-items:center;background:#9f4536;color:#fff3db;width:44px;height:46px;border-radius:3px;font-size:30px;letter-spacing:0;box-shadow:inset 0 0 0 3px #9f4536,inset 0 0 0 4px #c88c74}.brand small{font-family:PingFang SC,sans-serif;font-size:11px;font-weight:400;letter-spacing:3px;display:block;margin-top:4px;color:#849084}.header-note{display:flex;align-items:center;gap:9px;font-size:12px;color:#7e897e;letter-spacing:1px}.header-note i{width:6px;height:6px;border-radius:50%;background:#739078}.edition{font-size:10px;letter-spacing:2px;color:#92978c}main{max-width:1180px;margin:35px auto 0;display:grid;grid-template-columns:minmax(580px,760px) 302px;gap:64px;padding:0 32px}.section-heading{display:flex;justify-content:space-between;font-size:11px;letter-spacing:2px;color:#8a9385;margin-bottom:17px}.player{display:flex;align-items:center;gap:12px;height:65px}.player.top{margin-bottom:20px}.player.bottom{margin-top:20px}.avatar{display:grid;place-items:center;width:43px;height:43px;border:1px solid #d7d9ce;border-radius:50%;background:#e8ebe2;font-family:Songti SC,serif;font-size:22px}.avatar.red{color:#a74b3a;background:#eee3d6;border-color:#e2cbb5}.player strong{font-size:14px;font-weight:600}.side-label{display:inline-block;font-size:9px;font-weight:400;margin-left:10px;padding:2px 5px;border:1px solid #d3d6cd;border-radius:3px}.side-label.red{color:#a44a3b;border-color:#dcbcaf}.player p{font-size:10px;color:#92978b;margin:7px 0 0}.player-end{margin-left:auto;text-align:right}.turn-badge{font-size:10px;color:#647b61;background:#e8ecdf;border-radius:4px;padding:5px 9px}.captured{font-family:Songti SC,serif;font-size:13px;max-width:190px;margin-top:6px;letter-spacing:2px}.captured.red{color:#a74b3a}.board-frame{padding:42px;background:linear-gradient(115deg,#dfbd84,#e9cfa0 35%,#e5c594 70%,#d9b47a);border:8px solid #9b6b3e;border-radius:5px;box-shadow:0 14px 25px -17px #694723aa,0 0 0 1px #7c542e,inset 0 0 0 2px #c89c62,inset 0 0 26px #9d6d3650;position:relative}.board-frame:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.16;background:repeating-linear-gradient(2deg,transparent 0,transparent 6px,#91612d33 7px,transparent 9px)}.board{position:relative;width:100%;aspect-ratio:8/9}.grid{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible;fill:none;stroke:#795a35;stroke-width:1.5}.grid rect{stroke-width:3}.grid text{fill:#846039;stroke:none;font-size:35px;letter-spacing:14px;text-anchor:middle;font-family:Songti SC,STSong,serif}.square{position:absolute;transform:translate(-50%,-50%);width:11%;aspect-ratio:1;border:0;background:none;padding:0;display:grid;place-items:center;border-radius:50%;z-index:1}.piece{width:95%;height:95%;display:grid;place-items:center;border-radius:50%;font-family:Kaiti SC,KaiTi,STKaiti,Songti SC,serif;font-size:clamp(25px,2.6vw,36px);font-weight:700;line-height:1;color:#333b32;background:radial-gradient(circle at 36% 25%,#ffedc6,#efd19b 70%,#d8af71);box-shadow:0 3px #ac7942,0 5px 6px #79552c70,inset 0 0 0 2px #d1aa71,inset 0 0 0 5px #f3d9a7,inset 0 0 0 6px #8c774e;transition:transform .15s}.piece.red{color:#aa3f2c;box-shadow:0 3px #ac7942,0 5px 6px #79552c70,inset 0 0 0 2px #d1aa71,inset 0 0 0 5px #f3d9a7,inset 0 0 0 6px #ba7250}.square.occupied:hover .piece{transform:translateY(-2px)}.square.selected{outline:3px solid #456649;outline-offset:3px;z-index:3}.square.selected .piece{transform:translateY(-3px)}.square.last:after{content:"";position:absolute;top:-5%;right:-5%;bottom:-5%;left:-5%;border:2px solid #566d51;opacity:.7;border-radius:5px;pointer-events:none}.square.target.occupied:before{content:"";position:absolute;top:-5%;right:-5%;bottom:-5%;left:-5%;border:3px dashed #8e4433;border-radius:50%;z-index:2}.move-dot{width:22%;height:22%;background:#41614699;border-radius:50%;box-shadow:0 0 0 5px #41614618}.square.check .piece{box-shadow:0 0 0 4px #b64136,0 0 20px #b6413680}.board-footnote{display:flex;justify-content:space-between;font-size:10px;color:#92978a;margin-top:14px;letter-spacing:.5px}aside{padding-top:0}.intro{padding:0 0 22px 4px}.eyebrow{font-size:10px;letter-spacing:3px;color:#969a87}.intro h1{font-family:Songti SC,STSong,serif;font-size:39px;line-height:1.4;font-weight:500;letter-spacing:4px;margin:16px 0 13px}.intro p{font-size:12px;color:#8d9486;line-height:1.9;letter-spacing:1px}.status-card,.moves-card{border:1px solid #e0e3d8;background:#fafaf5;border-radius:7px;padding:21px}.card-label{display:flex;justify-content:space-between;color:#788675;font-size:11px;letter-spacing:1px}.card-label>span{font-size:10px;color:#9da58f}.status-card h2{font-size:19px;font-weight:500;margin:19px 0 10px}.status-card>p{font-size:11px;line-height:1.8;min-height:34px;color:#939887;margin:0 0 18px}.actions{display:flex;gap:9px}.primary{border:1px solid #294a3b;background:#294a3b;color:#fafaf3;border-radius:4px;font-size:12px;padding:12px 14px}.primary:hover{background:#3c604c}.actions .primary{flex:1}.secondary{background:transparent;border:1px solid #d8ddce;color:#63725e;border-radius:4px;padding:10px 14px;font-size:12px}.secondary:hover{background:#eff0e7}.resign{display:block;background:none;border:none;color:#a09e90;font-size:10px;margin:14px auto -5px}.moves-card{margin-top:18px;padding-bottom:8px}.move-head,.move-row{display:grid;grid-template-columns:45px 1fr 1fr;text-align:center}.move-head{font-size:10px;color:#9b9f91;padding:17px 0 12px;border-bottom:1px solid #e8eadf}.move-row{font-family:Songti SC,STSong,serif;font-size:14px;padding:11px 0;border-bottom:1px solid #f0f0e8}.move-row span:first-child{font:10px PingFang SC,sans-serif;color:#a3a697;align-self:center}.move-row span:nth-child(2){color:#a55440}.move-list{height:172px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#d4d9c9 transparent}.empty-log{text-align:center;padding-top:26px;color:#a4aa97}.empty-log>span{font-family:Songti SC,serif;font-size:29px;opacity:.4}.empty-log p{font-size:10px;letter-spacing:2px}.local-note{display:flex;gap:11px;padding:18px 5px;color:#919b87;font-size:10px;line-height:1.7}.local-note>span{font-size:22px}.local-note p{margin:0}.local-note small{display:block;color:#abb09f;font-size:9px;margin-top:3px}footer{max-width:1116px;margin:28px auto 0;padding:20px 0 23px;border-top:1px solid #e0e4d8;display:flex;justify-content:space-between;font-size:10px;letter-spacing:2px;color:#a2a795}.pulse{animation:pulse 1s infinite}@keyframes pulse{50%{opacity:.2}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#1e302866;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);display:grid;place-items:center;z-index:10}.modal{position:relative;background:#f8f7f0;border:1px solid #dce0d1;border-radius:10px;padding:40px;width:430px;box-shadow:0 20px 80px #12271d55}.modal h2{font-family:Songti SC,serif;font-size:28px;font-weight:500;margin:15px 0}.modal>p{font-size:12px;color:#8e9687}.close{position:absolute;right:15px;top:10px;font-size:26px;background:none;border:0;color:#89967e}.modal fieldset{border:0;padding:0;margin:25px 0}.modal legend{font-size:12px;color:#727e68;margin-bottom:12px}.options{display:flex;gap:10px}.options button{flex:1;padding:12px 0;border:1px solid #d9dece;background:none;color:#7b876e;border-radius:4px;font-size:12px}.options button.chosen{background:#e8eddf;border-color:#66815a;color:#365431}.start{width:100%;margin-top:8px}.app{--board-width: calc((100dvh - 296px) * 8 / 9);height:100dvh;display:grid;grid-template-rows:64px minmax(0,1fr) 28px;gap:12px;padding:0 32px 12px}header{height:auto;margin:0}main{width:100%;max-width:1180px;min-height:0;margin:0 auto;padding:0;grid-template-columns:minmax(0,1fr) 302px;gap:40px}.play-area{width:min(100%,var(--board-width));justify-self:center;align-self:start;display:grid;grid-template-rows:20px 48px auto 48px 16px;gap:8px;min-width:0}.section-heading,.player.top,.player.bottom,.board-footnote{margin:0}.player{height:48px;min-width:0}.player-end{min-width:0}.captured{max-width:160px;font-size:11px;letter-spacing:1px}.board-frame{padding:28px;border-width:6px}.board{container-type:inline-size}.piece{font-size:clamp(17px,6.5cqw,40px)}.board-footnote{font-size:9px;align-items:center;letter-spacing:0}aside{min-height:0;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;gap:12px}.intro{padding:0 0 0 4px}.intro h1{font-size:30px;line-height:1.3;margin:10px 0}.intro p{margin:0}.status-card,.moves-card{padding:16px}.status-card h2{margin:14px 0 8px}.status-card>p{margin-bottom:12px}.moves-card{margin:0;min-height:0;display:grid;grid-template-rows:auto auto minmax(0,1fr)}.move-head{padding:12px 0 10px}.move-list{height:auto;min-height:0}.local-note{padding:0 5px}footer{width:100%;max-width:1180px;margin:0 auto;padding:0;align-items:center}@media(max-height:800px){.intro h1{font-size:26px;margin:8px 0 0}.intro h1 br,.intro p{display:none}.board-footnote span:last-child{display:none}}@media(max-height:650px){aside{grid-template-rows:auto minmax(0,1fr) auto}.intro{display:none}.status-card{padding:12px 16px}.status-card h2{margin-top:10px}}footer a{color:inherit;text-decoration:none}footer a:hover{color:#294a3b;text-decoration:underline}.last-move-arrow{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:1;color:#55766b}.move-origin{fill:currentColor;fill-opacity:.1;stroke:currentColor;stroke-width:2;stroke-dasharray:4 5;opacity:.75}.move-destination{fill:none;stroke:currentColor;stroke-width:3;opacity:.72}.move-trail{fill:none;stroke:currentColor;stroke-width:4;stroke-linecap:round}.move-head-arrow{fill:currentColor}.move-motion{animation:last-move-reveal 2.2s ease-out both}@keyframes last-move-reveal{0%{opacity:0}12%,65%{opacity:.65}to{opacity:0}}.board:has(.square.last:hover) .move-motion{opacity:.65!important}@media(prefers-reduced-motion:reduce){.move-motion{animation:none;opacity:0}}.square{z-index:2}.square.last:after{display:none}.move-dot{width:25%;height:25%;background:#35695e;box-shadow:0 0 0 4px #35695e26}
