/* A wooden tabletop inside the shared Aero window. */
#gomoku-window{--gm-board:clamp(280px,calc(100dvh - 410px),410px);width:min(458px,calc(100vw - 24px));max-height:calc(100dvh - 220px);display:flex;flex-direction:column}
#gomoku-window>.titlebar{flex-shrink:0}#gomoku-window>.window-interior{display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden}#gomoku-window .menubar,#gomoku-window .window-status{flex-shrink:0}#gomoku-window .window-status{gap:8px}#gm-status{overflow:hidden;text-overflow:ellipsis}.gm-app-icon{position:relative;width:20px;height:20px;border:1px solid #a1834c;border-radius:3px;background:linear-gradient(#efd4a0,#cfa466)}.gm-app-icon i{position:absolute;display:block;width:10px;height:10px;border-radius:50%;background:radial-gradient(circle at 32% 26%,#727579,#111 65%);left:2px;top:2px;box-shadow:0 1px 1px #745b46}.gm-app-icon i+i{background:radial-gradient(circle at 30% 25%,#fff,#f7f5ed 48%,#bdbab0);left:8px;top:8px}.gm-export{margin-left:auto}.gm-play{padding:14px 16px 13px;overflow:auto;background:linear-gradient(135deg,#fffcf6,#f5f0e6);color:#68543b;scrollbar-width:thin;scrollbar-color:#c4b294 #f6f0e5}.gm-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.gm-heading h2{font-size:23px;font-weight:600;letter-spacing:2px;color:#68513a;margin:0}.gm-heading p{font-size:10px;color:#a4947e;margin:5px 0 0}.gm-mode{font-size:10px;padding:5px 9px;border:1px solid #e1d3bb;border-radius:4px;background:#f4ecdd;color:#9a8463;white-space:nowrap}.gm-match-info{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:36px;margin-bottom:11px;padding:7px 10px;border:1px solid #e3d7c2;border-radius:4px;background:#fffcf7}.gm-turn{display:flex;align-items:center;gap:8px}.gm-turn strong{font-size:12px;font-weight:500;color:#7d674c}.gm-turn-stone{width:19px;height:19px;border-radius:50%;background:radial-gradient(circle at 31% 24%,#626468,#28292c 40%,#090a0d 75%);box-shadow:inset -1px -1px 2px #0009,0 1px 2px #57432d55;flex-shrink:0}.gm-turn-stone[data-player="2"]{background:radial-gradient(circle at 30% 23%,#fff,#f6f4ee 48%,#cbc8be 80%,#aaa79e);box-shadow:inset -1px -1px 2px #8c877855,0 1px 2px #57432d55}.gm-move-count{font-size:10px;color:#a08e76;font-variant-numeric:tabular-nums}.gm-move-count output{font-size:15px;font-weight:600;color:#8b6e48;margin-left:5px}
.gm-board-wrap{position:relative;width:min(100%,var(--gm-board));margin:0 auto}.gm-board{position:relative;width:100%;aspect-ratio:1;border:1px solid #b38b50;border-radius:6px;background:repeating-linear-gradient(2deg,#ffffff05 0 2px,#8e571409 3px 4px,transparent 5px 9px),linear-gradient(120deg,#eacc94,#e3bc7d 55%,#dfb779);box-shadow:inset 0 1px 2px #fff8,inset 0 -2px 3px #ab763d44,0 3px 8px #6f4d2926;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.gm-board-lines,.gm-winning-overlay,.gm-points{position:absolute;inset:12px;width:calc(100% - 24px);height:calc(100% - 24px)}.gm-board-lines,.gm-winning-overlay{pointer-events:none}.gm-board-lines{overflow:visible}.gm-board-lines path{fill:none;stroke:#846133;stroke-width:4;stroke-linecap:square;opacity:.8}.gm-star-points{fill:#815c2b}.gm-points{display:grid;grid-template-columns:repeat(15,1fr);grid-template-rows:repeat(15,1fr)}.gm-point{position:relative;display:grid;place-items:center;min-width:0;min-height:0;width:100%;height:100%;padding:0;border:0;background:transparent;border-radius:2px;-webkit-tap-highlight-color:transparent;touch-action:none}.gm-point:focus-visible{outline:2px solid #137ebc;outline-offset:-1px;background:#f7e9ce55;z-index:3}.gm-stone{display:block;position:absolute;width:86%;height:86%;border-radius:50%;background:radial-gradient(circle at 30% 22%,#696d73,#303237 35%,#13151a 65%,#06070a 95%);box-shadow:inset -1px -1px 2px #000b,0 1px 2px #6c482a80;opacity:0;pointer-events:none}.gm-point[data-player="1"] .gm-stone{opacity:1}.gm-point[data-player="2"] .gm-stone{opacity:1;background:radial-gradient(circle at 30% 22%,#fff,#f9f8f1 45%,#d8d5ca 78%,#b0ac9f 98%);box-shadow:inset -1px -1px 1px #a2998855,0 1px 2px #6c482a80}.gm-point.gm-last .gm-stone:after{content:"";position:absolute;inset:34%;border:1px solid #f3c24f;border-radius:50%}.gm-point.gm-winner .gm-stone{outline:1px solid #c54a32;outline-offset:1px}.gm-point.gm-pressed[data-player="0"]{background:#fff5;border:1px dashed #9f7438}.gm-winning-overlay{z-index:4;overflow:visible}.gm-winning-line{stroke:#bd4b34;stroke-width:9;stroke-linecap:round;opacity:.82}.gm-bottom{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px}.gm-bottom>span{font-size:10px;color:#a28e70;line-height:1.6}.gm-bottom .aero-button{min-width:74px;font-size:11px;padding:4px 10px}.gm-overlay{position:absolute;inset:0;z-index:8;display:grid;place-items:center;padding:20px;background:#fff6e9e8;backdrop-filter:blur(3px);border:1px solid #c2a16b;border-radius:6px}.gm-overlay-card{max-width:290px;max-height:100%;overflow:auto;scrollbar-width:thin;text-align:center;color:#8e7659}.gm-overlay-symbol{display:inline-grid;place-items:center;min-width:42px;height:42px;font:bold 37px/1 Arial;color:#6e5840;text-shadow:0 1px 2px #fff}.gm-overlay h3{font-size:22px;font-weight:600;line-height:1.4;color:#795b3a;margin:10px 0}.gm-overlay p{font-size:11px;line-height:1.9;white-space:pre-line;margin:0 0 17px}.gm-overlay-actions{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.gm-overlay .aero-button{font-size:11px;padding:5px 11px}.gm-overlay .primary{border-color:#b49863;background:linear-gradient(#fffcf0,#eedcb9);color:#765c36;box-shadow:inset 0 0 0 1px #fff8}
#gomoku-window.maximized{width:min(528px,calc(100vw - 24px));--gm-board:clamp(300px,calc(100dvh - 390px),478px);max-height:calc(100dvh - 200px)}
@media(max-width:480px){#gomoku-window{width:calc(100vw - 24px);--gm-board:clamp(260px,calc(100dvh - 410px),410px);max-height:calc(100dvh - 220px)}.gm-play{padding:12px 10px}.gm-menubar .menu-trigger{font-size:11px;padding-left:6px;padding-right:6px}.gm-heading h2{font-size:21px}.gm-heading p{font-size:9px}.gm-mode{font-size:9px;padding:4px 7px}.gm-match-info{padding:7px 8px;margin-bottom:10px}.gm-turn strong{font-size:11px}.gm-turn-stone{width:17px;height:17px}.gm-bottom>span{font-size:9px}.gm-bottom{gap:7px}.gm-bottom .aero-button{min-width:65px;padding:4px 8px}.gm-overlay{padding:14px}.gm-overlay h3{font-size:19px}.gm-overlay p{font-size:10px}}
