@font-face{font-family:Maple Mono CN;font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/maple-mono-cn/maple-mono-cn-gomoku.woff2)format("woff2")}:root{color:#172033;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f5f0e8;font-family:Maple Mono CN,ui-monospace,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace,sans-serif}html,body{margin:0;font-family:Maple Mono CN,ui-monospace,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace,sans-serif}#root,button{font-family:inherit}.app-shell{box-sizing:border-box;background:linear-gradient(135deg,#15202b12,#0000 32%),linear-gradient(315deg,#2f80ed1a,#0000 34%),#eef2f5;place-items:center;min-height:100svh;padding:28px;display:grid}.game-stage{width:min(100%,760px)}.game-header{margin-bottom:36px;display:block}.game-header h1{color:#172033;margin:0;font-size:40px;line-height:1.05}.reset-button,.undo-button{color:#182434;height:34px;font:inherit;cursor:pointer;background:#fff;border:1px solid #b6c1ce;border-radius:6px;flex:none;padding:0 14px;font-size:14px;font-weight:700;box-shadow:0 8px 20px #0f172a14}.reset-button:hover:not(:disabled),.undo-button:hover:not(:disabled){border-color:#2f80ed}.reset-button:focus-visible,.undo-button:focus-visible,.cell:focus-visible,.difficulty-button:focus-visible,.toggle-button:focus-visible{outline-offset:2px;outline:3px solid #2f80ed}.reset-button:disabled,.undo-button:disabled{cursor:default;opacity:.48;box-shadow:none}.play-area{justify-items:center;display:grid}.board-column{gap:12px;width:min(100%,720px);display:grid}.board-wrap{aspect-ratio:1;box-sizing:border-box;background:#d9a85b;border:1px solid #9b6b35;border-radius:8px;width:100%;padding:18px;box-shadow:0 18px 40px #271d0f2e}.board{grid-template-columns:repeat(var(--board-size), 1fr);grid-template-rows:repeat(var(--board-size), 1fr);background:#e4b96e;width:100%;height:100%;display:grid;position:relative}.board.finished{box-shadow:inset 0 0 0 4px #3741511f}.board:before{content:"";inset:calc(100% / (var(--board-size) * 2));background:linear-gradient(#7d5527 1px,#0000 1px),linear-gradient(90deg,#7d5527 1px,#0000 1px);background-size:calc(100% / (var(--board-size) - 1)) calc(100% / (var(--board-size) - 1));pointer-events:none;border:2px solid #5a3819;position:absolute}.cell{appearance:none;cursor:pointer;z-index:1;background:0 0;border:0;place-items:center;min-width:0;min-height:0;padding:0;display:grid;position:relative}.cell:disabled{cursor:default}.cell:not(:disabled):hover{background:#ffffff2e}.stone{aspect-ratio:1;border-radius:50%;place-items:center;width:74%;display:grid;position:relative;box-shadow:inset -3px -4px 7px #0003,0 2px 4px #00000040}.stone.black{background:radial-gradient(circle at 35% 30%,#5a5a5a,#080808 68%)}.stone.white{background:radial-gradient(circle at 35% 28%,#fff,#d8d8d8 70%);border:1px solid #c5c5c5}.stone.winning{animation:1.1s ease-in-out infinite alternate winning-pulse;box-shadow:0 0 0 2px #ffffff6b,0 0 10px #2f80ed61,inset -3px -4px 7px #0003}.stone.latest:after{content:"";pointer-events:none;border:2px solid #2f80edc7;border-radius:50%;animation:1.5s ease-out 2 latest-move-ring;position:absolute;inset:-6px;box-shadow:0 0 0 2px #ffffff47}.move-number{color:#ffffffd6;text-align:center;text-shadow:0 1px 2px #0000008c;-webkit-user-select:none;user-select:none;min-width:0;font-size:10px;font-weight:800;line-height:1}.stone.white .move-number{color:#111827c7;text-shadow:0 1px 1px #fffc}@keyframes winning-pulse{0%{filter:brightness();transform:scale(1)}to{filter:brightness(1.12);transform:scale(1.06)}}@keyframes latest-move-ring{0%{opacity:0;transform:scale(.72)}18%{opacity:1;transform:scale(1)}70%{opacity:.68;transform:scale(1.2)}to{opacity:.2;transform:scale(1.34)}}.settings-panel{gap:10px;display:grid}.control-row{justify-content:space-between;align-items:center;gap:16px;min-width:0;min-height:34px;margin:0;display:flex}.order-row{gap:0}.control-label{color:#4b5563;flex:none;font-size:14px;font-weight:700}.toggle-options,.difficulty-options{justify-content:end;gap:6px;min-width:0;display:flex}.order-row .toggle-options{gap:8px;width:100%}.toggle-button,.difficulty-button{color:#263445;min-width:34px;height:34px;font:inherit;cursor:pointer;background:#fff;border:1px solid #b6c1ce;border-radius:6px;flex:none;padding:0 10px;font-size:14px;font-weight:700;transition:background .14s,border-color .14s,color .14s}.toggle-button{width:48px;padding:0}.order-row .toggle-button{flex:1 1 0;width:auto}.difficulty-button{min-width:78px}.toggle-button:hover:not(:disabled),.difficulty-button:hover:not(:disabled){border-color:#2f80ed}.toggle-button[aria-pressed=true],.difficulty-button[aria-pressed=true]{color:#fff;background:#172033;border-color:#172033}.toggle-button:disabled,.difficulty-button:disabled{cursor:default;opacity:.65}.inline-status{color:#4b5563;overflow-wrap:anywhere;text-align:left;white-space:nowrap;flex:auto;min-width:0;margin:0;font-size:14px;font-weight:700;line-height:34px}.status-actions{flex:none;gap:8px;display:flex}.inline-status.thinking{color:#0f766e;align-items:center;gap:8px;display:inline-flex}.inline-status.win,.inline-status.lose{font-size:16px;font-weight:800}.inline-status.win{color:#047857}.inline-status.lose{color:#b91c1c}.inline-status.draw{color:#334155;font-weight:800}.inline-status.thinking:before{content:"";border:2px solid #0f766e3d;border-top-color:#0f766e;border-radius:50%;flex:none;width:12px;height:12px;animation:.76s linear infinite loading-spin}@keyframes loading-spin{to{transform:rotate(360deg)}}@media (width<=860px){.app-shell{place-items:start center;padding:18px}.game-header h1{font-size:34px}.play-area{justify-items:stretch}.board-column{width:100%}.board-wrap{padding:10px}.move-number{font-size:8px}}@media (width<=520px){.control-row{gap:10px}.control-label{font-size:13px}.toggle-options,.difficulty-options{justify-content:end;gap:3px}.order-row .toggle-options{gap:8px}.toggle-button{width:42px}.order-row .toggle-button{width:auto}.difficulty-options{scrollbar-width:none;overflow-x:auto}.difficulty-options::-webkit-scrollbar{display:none}.difficulty-button{min-width:76px;padding-inline:8px}.inline-status{font-size:13px}}
