/* 바둑판 부품(goboard.js) — 대국장 game.css 의 바둑판 규칙을 부품 안으로 옮김 */
.gb-wrap{position:relative;width:100%;overflow:hidden;border-radius:6px}
.gb-wrap[data-view="2d"]{aspect-ratio:1}
.gb{position:relative;width:100%;aspect-ratio:1;filter:drop-shadow(0 22px 34px rgba(0,0,0,.5));transition:transform .35s ease}
.gb[data-view="3d"]{aspect-ratio:var(--board-aspect,1.5);filter:drop-shadow(0 26px 40px rgba(0,0,0,.55))}
.gb img,.gb svg{position:absolute;inset:0;width:100%;height:100%;user-select:none;-webkit-user-drag:none}
.gb svg{touch-action:manipulation;cursor:pointer}
.gb[data-view="3d"] svg{width:1000px;height:1000px;transform-origin:0 0}
.gb-base{display:none;pointer-events:none}
.gb[data-view="3d"] .gb-img{height:var(--art-height);transform:translate(var(--source-left),var(--source-top)) scale(var(--source-x),var(--top-scale));transform-origin:0 0;clip-path:polygon(0 0,100% 0,100% var(--seam),0 var(--seam));pointer-events:none}
.gb[data-view="3d"] .gb-base{display:block;height:var(--art-height);transform:translate(var(--source-left),var(--base-offset)) scale(var(--source-x),var(--base-scale));transform-origin:0 0;clip-path:polygon(0 var(--seam),100% var(--seam),100% 100%,0 100%)}
.gb-coords{display:none}.gb[data-coords="true"] .gb-coords{display:block}
.gb-coords text{fill:rgba(255,248,230,.9);font-weight:700;font-family:"Noto Sans KR",sans-serif;paint-order:stroke;stroke:rgba(40,20,5,.45);stroke-width:3px}
.gb[data-board="jade"] .gb-coords text{fill:#f4fbf6;stroke:rgba(20,60,45,.55)}
.gb-stone.ghost{opacity:.45}.gb-stone.faint{opacity:.5}
.gb-num{font-family:Arial,sans-serif;paint-order:stroke;user-select:none;pointer-events:none}
.gb-label{pointer-events:none}.gb-label text{font-family:"Noto Sans KR",Arial,sans-serif}

body[data-room="1"] #board>.projected-grid{display:none!important}
