.wrap{max-width:940px}.stage{max-width:880px;margin:auto}
.turnbar{--tb-msg-lines:2;--tb-st-lines:2}.message{font-size:16px;height:56px;min-height:56px;line-height:28px}
.game-layout{display:grid;grid-template-columns:minmax(0,464px) minmax(0,1fr);gap:18px;align-items:start}
.board-side,.move-dock{min-width:0}
.board{width:432px;max-width:none}.board.zoom{width:520px}
.board-scroll{overscroll-behavior-x:contain;touch-action:pan-x pan-y}
.cell{min-width:44px;min-height:44px}.cell.selected{background:#fff0be;outline:3px solid #916511;outline-offset:-3px}.cell.destination{outline:4px solid #256b45;outline-offset:-4px;background:#bce2c7}
.cell.target .dot{width:8px;height:8px;left:auto;top:auto;right:3px;bottom:3px;border:1px solid white}.cell.reject{outline:3px solid #b23a3a;outline-offset:-3px}
.cell.recent:not(.selected):not(.destination){box-shadow:inset 0 0 0 2px #577382}
.cell:focus-visible{outline:3px solid #315f91;outline-offset:-4px}.moving-piece svg{visibility:hidden}
.seats{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin:0 0 8px}.seat{padding:5px;font-size:14px;line-height:1.35;min-height:58px}.seat-title{display:flex;align-items:center;gap:3px;flex-wrap:wrap}.seat svg{width:18px;height:18px;flex:none}.seat .role{display:block;font-size:14px}.seat.active{border-color:var(--accent);outline:2px solid var(--accent)}.seat.out{border-style:dashed}
.scroll-note{font-size:14px;color:var(--ink-sub);margin:6px 0}
#selection{font-size:16px;line-height:1.5;min-height:48px;margin:0 0 8px;padding:8px;border:1px solid var(--line);border-radius:4px;background:var(--surface)}
#selection:has(svg){display:flex;gap:8px;align-items:center}#selection svg{width:44px;height:44px;flex:none}
#promotion{display:flex;align-items:center;gap:8px;min-height:44px;font-size:16px}#promote{width:22px;height:22px}
.actions,.near-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:8px 0}.actions .btn,.near-actions .btn{min-height:44px;font-size:16px;padding:8px}
.hands-heading{font-size:16px;font-weight:600;margin:16px 0 6px}.hands{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:0}.hand{font-size:14px;padding:5px;line-height:1.5}.hand.active{border:2px solid var(--accent)}.hand.frozen{border-style:dashed}.hand-title{display:flex;align-items:center;gap:4px}.hand-title svg{width:18px;height:18px}.hand button{font-size:16px;min-width:64px;min-height:44px;gap:2px;padding:0 4px;touch-action:manipulation}.hand button svg{width:40px;height:40px;flex:none}.hand button.selected{background:var(--surface);outline:3px solid var(--accent)}
.aux-details{margin-top:12px;font-size:14px}.aux-details summary{min-height:44px;display:flex;align-items:center;cursor:pointer}.utility .btn{min-height:44px;font-size:16px}
#result{border:2px solid var(--accent);border-radius:4px;margin:8px 0;font-size:16px}#result h2{font-size:20px;margin:0}#result .btn{min-height:44px;width:100%}
#setup .field{display:grid;grid-template-columns:1fr 1.4fr;align-items:center;font-size:16px}#setup select{width:100%;max-width:none;font:inherit;font-size:16px;min-height:44px;border:1px solid var(--line-strong);border-radius:4px;padding:8px;color:var(--ink);background:var(--surface)}
[hidden]{display:none!important}.motion-layer{position:fixed;inset:0;pointer-events:none;z-index:80}.motion-piece{position:absolute;pointer-events:none}.motion-piece svg{width:100%;height:100%;display:block}
.guide-screen{position:relative;width:100%;max-width:358px}.guide-screen img{display:block;width:100%;max-width:100%;height:auto}.guide-annotation{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.article figcaption{font-size:16px;line-height:1.6;margin-top:10px}
@media(max-width:700px){.game-layout{grid-template-columns:minmax(0,1fr);gap:8px}.board{width:400px}.turnbar{--tb-msg-lines:3}.message{height:84px;min-height:84px}.seats{grid-template-columns:repeat(4,minmax(0,1fr))}.seat{font-size:14px;padding:4px;min-height:60px}.seat .role{font-size:14px}.hands{grid-template-columns:repeat(2,minmax(0,1fr))}#selection{margin:0;min-height:44px}.hands-heading{margin-top:10px}#setup .field{grid-template-columns:minmax(0,1fr)}.actions,.near-actions{margin:6px 0}}
@media(prefers-reduced-motion:reduce){.motion-layer{display:none}}
