.board-frame{padding:0;background:transparent;border-radius:12px;box-shadow:0 20px 48px #0007}
.board{aspect-ratio:9/10;background:#b77c3e url('./assets/janggi-wood-board.png') center/100% 100% no-repeat;border-radius:12px;box-shadow:none;isolation:isolate}
.board-lines{display:none}
.live-board-grid{position:absolute;inset:2.222222% 1.625%;pointer-events:none}
.intersection{pointer-events:auto}
.piece,.piece.general,.piece.soldier{width:90%;aspect-ratio:1;font-family:'Batang','Noto Serif CJK KR','Songti SC',serif;font-weight:700;color:#084d7e;filter:drop-shadow(2px 5px 3px #341b0c8c);background:url('./assets/janggi-ivory-piece.png') center/100% 100% no-repeat;text-shadow:0 1px 0 #fff7;font-size:clamp(19px,2.7vw,36px);padding-bottom:5%;transition:transform .18s,filter .18s}
.piece:before{display:none}
.piece.han-piece{color:#950f0c}
.piece.general{width:103%;font-size:clamp(25px,3.25vw,44px)}
.piece.soldier{width:83%;font-size:clamp(17px,2.3vw,31px)}
.intersection.selected .piece{transform:translateY(-3px);filter:drop-shadow(0 0 2px #fff5c7) drop-shadow(0 0 6px #ffb93a) drop-shadow(0 0 12px #ff9d00)}
.intersection.selected:after{display:none}
.intersection.legal:after{box-shadow:0 0 0 2px #ffe4a37a;background:#164e55bd}
.intersection.legal:has(.piece):after{z-index:4;border-color:#ffcf67;box-shadow:0 0 9px #ffba48}
.intersection.last:before{border:2px solid #efbb59bd;background:#f7bc4340;inset:9%;border-radius:9px}
.intersection.check .piece{filter:drop-shadow(0 0 7px #ff3e20)}
@media(max-width:740px){.piece{font-size:clamp(21px,5.9vw,36px)}.piece.general{font-size:clamp(26px,7vw,44px)}.piece.soldier{font-size:clamp(18px,5vw,31px)}}
