/* Quiet paper boards. All live pieces keep their own semantic colors. */
.in-game #board.classic-game{display:block;width:100%;max-width:none;padding:0;border:0;border-radius:0;box-shadow:none;background:none;overflow:visible;max-height:none}
.classic-summary{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 16px;margin-bottom:12px;font-size:12px;color:var(--muted)}
.classic-summary b{color:var(--ink);font-weight:600}.classic-summary span:last-child{font-size:11px}
.classic-grid{position:relative;display:grid;width:100%;margin:auto;border:1px solid #b5b99e;background:#e2cda3;box-shadow:0 5px 0 #b8a580;border-radius:3px;isolation:isolate}
.chess-grid{aspect-ratio:1;border:8px solid #c8ccb5;background:#f4edda;box-shadow:0 5px 0 #afb69b}
.go-grid{aspect-ratio:1;padding:12px}.xiangqi-grid{aspect-ratio:9/10;background:#ead9b6 url('/art/xiangqi-lines.svg') center/100% 100% no-repeat}
.classic-cell{appearance:none;position:relative;aspect-ratio:1;border:0;padding:0;background:none;border-radius:0;min-width:0;display:grid;place-items:center;color:inherit;isolation:isolate}
.classic-cell:disabled{opacity:1}.chess-grid .classic-cell.shaded{background:#829780}
.classic-cell:focus-visible{outline:3px solid #b66348;outline-offset:-3px;z-index:3}
.classic-cell.selected{box-shadow:inset 0 0 0 3px #bd7e52}.classic-cell.target{outline:2px solid #486c58;outline-offset:-2px}
.chess-grid .classic-cell.legal:hover{box-shadow:inset 0 0 0 3px #c4a159}.classic-cell.checked{background:#cc7a6577}
.go-grid .classic-cell:before{content:'';position:absolute;inset:0;background:linear-gradient(#8e7856,#8e7856) center/1px 100% no-repeat,linear-gradient(#8e7856,#8e7856) center/100% 1px no-repeat;z-index:-1}
.go-grid .edge-left:before{left:50%;background-position:left center}.go-grid .edge-right:before{right:50%;background-position:right center}.go-grid .edge-top:before{top:50%;background-position:center top}.go-grid .edge-bottom:before{bottom:50%;background-position:center bottom}
.go-grid .edge-left.edge-top:before{background-position:left top}.go-grid .edge-right.edge-top:before{background-position:right top}.go-grid .edge-left.edge-bottom:before{background-position:left bottom}.go-grid .edge-right.edge-bottom:before{background-position:right bottom}
.classic-piece{width:82%;height:82%;display:grid;place-items:center;position:absolute;z-index:1;pointer-events:none;box-sizing:border-box}
.go-black,.go-white{border-radius:50%;background:#30382f;box-shadow:inset 0 -2px 0 #18221a66,0 2px 2px #29302433}.go-white{background:#faf5e7;border:1px solid #b9b8a7;box-shadow:inset 0 -2px 0 #ddd8c7,0 2px 2px #29302433}
.classic-piece.classic-ghost{opacity:.5;z-index:2}.classic-piece img{display:block;width:100%;height:100%;object-fit:contain}
.chess-white img{filter:drop-shadow(0 2px 0 #343a2870)}.chess-black img{filter:brightness(.25) sepia(.18) drop-shadow(0 1px 0 #f5efd666)}
.xiangqi-red,.xiangqi-black{border-radius:50%;background:#fbefcf;border:2px solid currentColor;color:#b64e40;box-shadow:0 3px 0 #bcaa83,0 3px 4px #3a34272b;font-family:'KaiTi','STKaiti',serif;font-size:clamp(19px,3.5vw,46px);font-weight:700}
.xiangqi-black{color:#344638}.xiangqi-red>span,.xiangqi-black>span{display:grid;place-items:center;width:87%;height:87%;border:1px solid currentColor;border-radius:50%;line-height:1}
.classic-coordinate{position:absolute;left:3px;bottom:1px;font:9px/1.1 system-ui;opacity:.65;pointer-events:none;z-index:3}.go-grid .classic-coordinate,.xiangqi-grid .classic-coordinate{display:none}.classic-cell.target .classic-coordinate,.classic-cell:focus-visible .classic-coordinate{display:block}
.classic-dot{width:16%;height:16%;background:#4c654baa;border-radius:50%;pointer-events:none}.classic-cell.last:after{content:'';position:absolute;width:10%;height:10%;border-radius:50%;background:#d99464;z-index:3;pointer-events:none}
.classic-cell.dead .classic-piece{opacity:.25}.classic-cell.death-preview{outline:2px dashed #a75946;outline-offset:-2px}
.territory-mark{position:absolute;inset:36%;border-radius:0;box-shadow:none;pointer-events:none}.classic-cell.neutral:after{content:'×';font-size:12px;color:#68584b;position:absolute;z-index:3}
.classic-controls{width:100%;padding:10px 12px;border:1px solid #cbd1bc;border-radius:10px;background:#f8f6ec;box-sizing:border-box}
.classic-controls p{margin:0 0 7px;min-height:1.5em}.classic-buttons{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px}.classic-buttons button{min-height:42px}
.classic-promotion{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:6px 0}.classic-promotion button[aria-pressed=true]{background:#dce2c9;border-color:#768566}
.in-game #decision-shelf:has(.classic-controls){width:100%;display:block}.classic-scoring{margin-top:14px;padding:12px;background:#e4e8d6;border:1px solid #b7c2a6;border-radius:10px}.classic-score-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.classic-score-row>div{display:grid;gap:4px}.classic-scoring p,.classic-score-row small{font-size:12px;margin:6px 0 0}
.go-options{border:0;border-top:1px solid #d0d5c1;padding:14px 0 0;margin:10px 0 0;min-width:0}.go-options legend{font-size:13px;font-weight:650;padding-top:8px}.go-options select{width:100%;max-width:100%;font:inherit;font-size:12px;background:#f8f5ec;color:var(--ink);padding:9px;border:1px solid #bdc5ad;border-radius:8px}.go-options label{margin:10px 0 5px}.go-options p{font-size:11px;color:var(--muted)}
.classic-setup-summary{padding:12px;background:#e8eadb;border-radius:8px;font-size:13px}.classic-lobby-preview img{width:100%;height:auto}.card-art.classic-art{background:#e9e4d2}.classic-art img{width:90%;height:90%;object-fit:contain}
@media(min-width:1000px){.in-game .classic-game .classic-grid{width:100%;max-width:none}.in-game .classic-game{max-width:none}.classic-coordinate{font-size:10px}}
@media(min-width:1000px){
 .in-game .play-area:has(>.classic-game){width:100%;max-width:min(100%,max(380px,calc(100dvh - 290px)));justify-self:center}
 .in-game .play-area:has(>.xiangqi-game){max-width:min(100%,max(350px,calc((100dvh - 290px)*.9)))}
 .classic-summary{gap:4px 10px}.classic-summary span:last-child{flex-basis:100%}
 .xiangqi-red,.xiangqi-black{font-size:clamp(20px,3vh,38px)}
}
@media(max-width:999px){.classic-summary{margin-bottom:8px;gap:5px;font-size:11px}.classic-summary b{flex:1 1 180px}.go-grid{padding:7px}.chess-grid{border-width:5px}.classic-coordinate{font-size:8px}.classic-controls{padding:7px}.classic-buttons{gap:5px}.xiangqi-red,.xiangqi-black{font-size:clamp(17px,5vw,36px);border-width:1px}.classic-score-row{gap:8px}.classic-scoring p{line-height:1.5}}
@media(min-width:600px) and (max-width:999px){
 .in-game .play-area:has(>.classic-game){width:100%;max-width:min(100%,max(380px,calc(100dvh - 290px)));justify-self:center}
 .in-game .play-area:has(>.xiangqi-game){max-width:min(100%,max(350px,calc((100dvh - 290px)*.9)))}
}
@media(prefers-reduced-motion:no-preference){.classic-cell{transition:box-shadow .15s}.classic-promotion button{transition:background .15s}}
.motion-off .classic-cell,.motion-off .classic-promotion button{transition:none}

.go-grid .classic-cell.star:before{background:radial-gradient(circle,#8e7856 0 2px,transparent 2.5px) center/100% 100% no-repeat,linear-gradient(#8e7856,#8e7856) center/1px 100% no-repeat,linear-gradient(#8e7856,#8e7856) center/100% 1px no-repeat}

.go-launch-dialog{width:min(560px,calc(100vw - 32px));box-sizing:border-box}
.go-launch-dialog>h2{margin:0 0 18px;font:clamp(24px,4vw,32px)/1.3 Georgia,serif}
.go-options{margin:16px 0;padding:14px 16px;border:1px solid #ccd2bd;border-radius:10px;background:#f8f6ec}
.go-options legend{padding:0 7px}.go-options label{display:block}.go-option-fields{display:grid;grid-template-columns:minmax(100px,.65fr) minmax(0,1.35fr);gap:16px}
.go-options select{min-height:44px}.go-launch-dialog .preparation-actions{margin-top:20px;justify-content:flex-end}
@media(max-width:480px){.go-option-fields{grid-template-columns:1fr;gap:0}.go-launch-dialog{padding:22px 18px}.go-options{padding:10px 12px}.go-launch-dialog .preparation-actions button{flex:1}}
