@font-face{font-family:Roboto Slab;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/roboto-slab-cyrillic-ext-600-normal-DvRmx9iZ.woff2)format("woff2"),url(/assets/roboto-slab-cyrillic-ext-600-normal-Crh_zC7k.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Roboto Slab;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/roboto-slab-cyrillic-600-normal-DTHP6GP6.woff2)format("woff2"),url(/assets/roboto-slab-cyrillic-600-normal-BK3PDsnj.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Roboto Slab;font-style:normal;font-display:swap;font-weight:600;src:url(data:font/woff2;base64,d09GMgABAAAAAAUUABAAAAAACfAAAAS5AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhwbehyBVAZgP1NUQVQqAHARCAqEdIQaCyAAATYCJAM6BCAFhQIHgRwMBxteCAiuB2xjOtTfeLDIrFNYmDWQO+BhMfTbP4zwQIOIt/uqfjPzpaV1okMwYkhmgDJGjC7c26s13Q/R+KiLI5AIJbTBfaB9wPE1no1unKzQ5YH//VH3/TEbVIk0s4AS3CFGu9Fx426Ig9PXLwc6xFqSGjye2e5tAY0k8ATTxAPvPNAEBvYfBJGt/xHKC6cjzMM890u9KGw6ygQ90gas/GHXSUedJgcWq7bGCqCB7I0mNtAt6lWcMgDPgy+PAAcAUBShE1ZWQoBNvFxqqPH6GQobJjs6FOiAkSgAWT/d0iEFBAidYiEslHA6yJdI0TDyHiA8vpcQQgcE1BTM0u5o2RqVFyclqxHU8qmaAQWQBEoI6jpNZIDEtO5qoxHxxBKAAI0GxCQcX4GgUGwcgIUgKq1dYRORPmwmJEuAqILzmSXRyn5sSqMaRRxGm/4MjkKHiutfkewG4JgB+9M0424NZ3lV/3uYyH+ZmhONXALQe43zQDSNEBYC/AkIpzbOFB3OABQBSI4aBQAKaMCfRoA/3TiAj4dGcYpW4927kER1RP2HIsTwb4i/PZ4jH6eR6wmISEkH9gvVFCkAUCAy44J74AdkgnQAOhWp0SFIgnRiJAyBpOY8pkCfjVTabCaPfa139RoVs622r4mvdK912WVobX71AOQIcbDQf8lt3oRIW/j8PXr/WcLm9+GD/SjffcKm72/fDh5NN+bG9N52xBmdoYRjTZZfgl2U1QyMdY5aG7cXdBJDcWXANNvaPRqqsHOf/egVVQHvnCb+uMW3qtX+5ZkJu8oZh+CTJQkzPksb+qzp+qz8iP3D1T88Cqf+qVXFje8Kxr9bWXwqbtHuY/xIH/W1lN/z7sbY3ON+WRnsAb/mn1l/5t+LMbnH/MqYnNf6O+8sN93a0jt6ofJc3/DtvRu3/cze4fOV53vHbu7JKdU7Syac6rP/lk0sTeF3aE3yzhqpuT8HcTS/4l45BOud/Qlqf/lQUB/gtb5U8fGLT4+rHQG3KyZ03l5tbka3A8KGq5ukEQFmziRDwgXJFdbnTRgAdAvYM7cSyILxytrlWQAA21NHw7f0ufC+OKBsveh9/WBiQfm/WAD4cPDVaABfpq38T3G0K5KJKoHgYcDGWCXCv3tfxJwr1cU07NUUl92bwk+E/9sftlA2ZfElC3nj2yQQ4FZIl0gboFYR4HCwQlOqFbgcuglHJAcPR3EFxdGUuz+pV+UYQp3mmCTawXHp1+V4BApne3k4fGLgAIjbXvz6Q5BEIHI8QRrJDFGdPCIHxEGYPqq9A5HDYejJkmVlLN80mSH/ypEINS1kEbTMIzlCOhuytbS7MLd068lSQ65M2QPaxezGtBRfIYtNCutYFwY5mZshX6bJnTvrUXSOfAwK3GqLWEufzRr758hFQ9Ymmqb107LlKBatnwixTrfqZiEydOzAX8OFQREtM8okbzZgy+BMUsW866CJg0QrzBMiYAbikdsRk0uGB2yRrFAiKkfWObkHN4j3KCSioQVdDDGJWSxiFZvYxWGqmfKPgprk8gVSpzG/Hq5uZ9dkq7re+LKFOtk5phLhxmWOmD4aYs3FLtCLpenJU10HXyFiKrepnZddeF3iHuvHAQ==)format("woff2"),url(data:font/woff;base64,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)format("woff");unicode-range:U+1F??}@font-face{font-family:Roboto Slab;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/roboto-slab-greek-600-normal-CqxPzYyT.woff2)format("woff2"),url(/assets/roboto-slab-greek-600-normal-D_KmuIJN.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Roboto Slab;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/roboto-slab-vietnamese-600-normal-Dxj64Y5F.woff2)format("woff2"),url(/assets/roboto-slab-vietnamese-600-normal-Cg5FjPL-.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Roboto Slab;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/roboto-slab-latin-ext-600-normal-Du55rkvg.woff2)format("woff2"),url(/assets/roboto-slab-latin-ext-600-normal-CTUqWyR-.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Roboto Slab;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/roboto-slab-latin-600-normal-Cibjg9v4.woff2)format("woff2"),url(/assets/roboto-slab-latin-600-normal-DDpl7uk0.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--red:#c12620;--red-dark:#70201b;--ink:#27231e;--wood:#d9b069;--wood-light:#efce8d}body{background:radial-gradient(circle at 50% 20%,#ffffffe0,#0000 38%),#f1f0ea}.xiangqi-layout{grid-template-columns:minmax(172px,.75fr) minmax(390px,550px) minmax(172px,.75fr);align-items:center;gap:clamp(20px,3vw,44px);width:min(1120px,100% - 40px);min-height:calc(100vh - 68px);margin:0 auto;padding:26px 0 34px;display:grid}.match-panel,.action-panel{min-width:0}.round-tag{color:#767269;letter-spacing:.08em;text-transform:uppercase;margin-bottom:16px;font-size:.76rem;font-weight:750}.player-card{background:#ffffffb8;border:1px solid #d9d6ce;border-radius:8px;align-items:center;gap:11px;min-height:70px;padding:12px;transition:border-color .15s,box-shadow .15s;display:flex}.player-card.is-current{border-color:#a99b83;box-shadow:0 5px 16px #4636241a}.player-card.is-winner{border-color:#1d8c62;box-shadow:0 0 0 3px #1d8c621a}.player-card strong,.player-card span{display:block}.player-card strong{font-size:.84rem}.player-card [data-player-detail]{color:#817c73;margin-top:3px;font-size:.72rem}.player-card .mini-piece{-webkit-text-fill-color:currentColor;background:#f5d99c;border:2px solid;border-radius:50%;flex:none;place-items:center;width:38px;height:38px;font-family:Roboto Slab,Songti SC,serif;font-size:1.15rem;line-height:1;display:grid;box-shadow:inset 0 0 0 2px #ffffff85,0 2px 3px #462d1633}.red-piece{color:var(--red);-webkit-text-fill-color:var(--red)}.black-piece{color:var(--ink);-webkit-text-fill-color:var(--ink)}.river-mark{color:#9d978d;align-items:center;gap:8px;height:42px;padding:0 8px;font-family:Roboto Slab,Songti SC,serif;font-size:.7rem;display:flex}.river-mark i{background:#d8d5ce;flex:1;height:1px}.board-column{min-width:0}.turn-status{text-align:center;min-height:94px}body[data-play-mode=solo] .turn-status,body[data-play-mode=solo] .connection-status{display:none}.turn-status span,.turn-status h2,.turn-status p{margin:0}.turn-status span{color:var(--red);letter-spacing:.08em;text-transform:uppercase;font-size:.72rem;font-weight:850}.turn-status h2{margin-top:5px;font-size:1.55rem}.turn-status p{color:#77736c;margin-top:5px;font-size:.78rem}.board-frame{background:linear-gradient(90deg, #5c32110f 1px, transparent 1px) 0 0 / 7px 100%, linear-gradient(100deg, transparent 0 45%, #ffffff21 50%, transparent 56%), var(--wood);border:1px solid #9a6d36;padding:clamp(18px,3.1vw,30px);box-shadow:inset 0 0 0 5px #5e35161f,inset 0 0 28px #6034111f,0 8px #875b2e,0 20px 50px #4b331d30}.xiangqi-board{aspect-ratio:8/9;width:100%;position:relative}.board-lines{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.board-lines path{fill:none;stroke:#4d3825;stroke-width:2.4px;vector-effect:non-scaling-stroke}.river-label{fill:#62472e;text-anchor:middle;font-family:Roboto Slab,Songti SC,serif;font-size:36px;font-weight:600}.board-square{z-index:2;top:calc(var(--row) * 100% / 9);left:calc(var(--column) * 100% / 8);aspect-ratio:1;color:#0000;background:0 0;border:0;border-radius:50%;place-items:center;width:clamp(31px,8.1%,46px);padding:0;font-family:Roboto Slab,Songti SC,STSong,serif;font-size:clamp(1rem,3.4vw,1.52rem);font-weight:600;line-height:1;display:grid;position:absolute;transform:translate(-50%,-50%)}.board-square[data-piece]:not([data-piece=""]){color:var(--ink);cursor:pointer;opacity:1;-webkit-text-fill-color:currentColor;background:radial-gradient(circle at 42% 32%,#f8dda2 0 14%,#0000 15%),#e8c47d;border:2px solid;box-shadow:inset 0 0 0 2px #fffadd8c,inset 0 -3px 6px #6a441a24,0 2px 4px #472a1152}.board-square[data-piece][data-piece^=r]{color:var(--red);-webkit-text-fill-color:var(--red)}.board-square:disabled{cursor:default}.board-square.is-selected{transform:translate(-50%,-50%)scale(1.06);box-shadow:inset 0 0 0 2px #fffadd8c,0 0 0 4px #fff9dbb3,0 0 0 6px #6e3d1b8a,0 4px 8px #472a1152}@media (hover:hover) and (pointer:fine){.board-square.is-movable:not(:disabled):hover{transform:translate(-50%,-50%)scale(1.06);box-shadow:inset 0 0 0 2px #fffadd8c,0 0 0 4px #fff9dbb3,0 0 0 6px #6e3d1b8a,0 4px 8px #472a1152}}.board-square.is-target:before{content:"";background:#2c7457;border:2px solid #fff7d5;border-radius:50%;width:13px;height:13px;box-shadow:0 0 0 2px #2c7457,0 2px 5px #244b3b59}@media (hover:hover) and (pointer:fine){.board-square.is-target:hover:before{transform:scale(1.22)}}.board-square.is-target.is-capture:before{width:auto;height:auto;box-shadow:none;background:0 0;border:3px solid #2c7457;position:absolute;inset:-5px}.board-square.is-last-from:after,.board-square.is-last-to:after{content:"";background:#2c7457;border-radius:50%;width:8px;height:8px;position:absolute}.board-square.is-last-from:after{opacity:.52}.board-square.is-last-to:after{border:2px solid #f8dda2;bottom:0;right:0}.move-summary,.selection-note{border-bottom:1px solid #dcd9d2;padding:15px 0}.move-summary span,.move-summary strong,.selection-note span,.selection-note strong{display:block}.move-summary span,.selection-note span{color:#817d75;font-size:.7rem}.move-summary strong,.selection-note strong{margin-top:4px;font-size:.87rem}.primary-action,.secondary-action{cursor:pointer;border-radius:6px;width:100%;min-height:44px;margin-top:16px;font-size:.82rem;font-weight:800}.primary-action{border:1px solid var(--red-dark);background:var(--red);color:#fff;box-shadow:0 4px 0 var(--red-dark)}.secondary-action{color:#403d38;background:#ffffffbf;border:1px solid #c9c5bc}.primary-action:disabled,.secondary-action:disabled{cursor:not-allowed;opacity:.46;box-shadow:none}.rules-link{color:#68645d;align-items:center;gap:6px;margin-top:20px;font-size:.75rem;font-weight:700;text-decoration:none;display:inline-flex}@media (hover:hover) and (pointer:fine){.rules-link:hover{color:var(--red)}}.rules-link svg{width:16px;height:16px}@media (width<=860px){.xiangqi-layout{grid-template-columns:1fr;gap:14px;width:min(610px,100% - 28px);padding-top:20px}.match-panel{grid-template-columns:1fr 1fr;gap:10px;display:grid}.round-tag,.river-mark{display:none}.player-card{min-height:58px;padding:8px 10px}.mini-piece{width:34px;height:34px;font-size:1rem}.board-column{grid-row:2}.turn-status{min-height:82px}.action-panel{grid-template-columns:1fr 1fr;gap:0 14px;padding-bottom:18px;display:grid}.primary-action,.secondary-action{grid-column:1/-1}.rules-link{grid-column:1/-1;justify-self:center}}@media (width<=480px){.xiangqi-layout{width:calc(100% - 18px);padding-top:14px}.player-card [data-player-detail]{display:none}.player-card strong{font-size:.76rem}.turn-status h2{font-size:1.28rem}.turn-status p{font-size:.72rem}.board-frame{padding:18px;box-shadow:inset 0 0 0 4px #5e35161f,0 5px #875b2e,0 12px 28px #4b331d2b}.board-square{width:10.5%;font-size:clamp(.85rem,5vw,1.2rem)}.river-label{font-size:31px}}@media (height<=760px) and (width>=861px){.xiangqi-layout{padding-top:14px;padding-bottom:24px}.turn-status{min-height:78px}.board-column{justify-self:center;width:min(100%,88.8889vh - 160px)}}@media (prefers-reduced-motion:reduce){.player-card,.board-square{transition:none}}
