:root{--game-blue:#2563eb;--game-ink:#172b4d;--game-muted:#7b899d;--game-line:#e5eaf1;--game-bg:#f5f7fb}
*{box-sizing:border-box}body{margin:0;background:var(--game-bg);color:var(--game-ink);font:14px "Microsoft YaHei","PingFang SC",sans-serif}button,select{font:inherit}button,a,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default;opacity:.45}[hidden]{display:none!important}
body>header{background:#fff;border-bottom:1px solid var(--game-line);padding:18px 28px}.header-row,.brand{display:flex;align-items:center;gap:12px}.header-row{justify-content:space-between}.mark{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:var(--game-blue);color:#fff;font-weight:700}.brand h1{margin:0;font-size:20px}.nav a{font-size:13px;color:#5b6c84;text-decoration:none}.nav a:hover{color:var(--game-blue)}
.games-main{max-width:1260px;margin:auto;padding:32px 28px 40px}.games-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:8px 0 28px}.games-eyebrow{margin:0 0 10px;color:var(--game-blue);font-size:12px;font-weight:600}.games-heading h2{margin:0;font-size:26px;letter-spacing:-.5px}.games-copy{margin:12px 0 0;color:var(--game-muted);line-height:1.6}.games-count{flex-shrink:0;color:#63738b;font-size:12px;background:#fff;border:1px solid var(--game-line);border-radius:20px;padding:7px 12px}.game-catalog{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}.game-card{overflow:hidden;background:#fff;border:1px solid var(--game-line);border-radius:16px;max-width:410px;box-shadow:0 3px 12px #172b4d03}.game-card-art{height:200px;display:grid;place-items:center;background:linear-gradient(135deg,#edf3ff,#f6f8fd);overflow:hidden}.game-card-art svg{width:164px;height:164px;transform:rotate(-9deg);filter:drop-shadow(0 9px 12px #5e779924)}.game-card-body{padding:22px}.game-card-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.game-card-heading h3{margin:0;font-size:20px}.game-tag{padding:4px 8px;border-radius:5px;color:#657792;background:#f1f4f8;font-size:11px;white-space:nowrap}.game-card-body p{color:#728198;line-height:1.7;margin:12px 0 20px}.game-card-modes{display:flex;gap:12px;font-size:12px;color:#60718a;margin:0 0 22px}.game-card-modes span{display:flex;align-items:center;gap:6px}.game-card-modes span:before{content:"";width:5px;height:5px;background:#7291c5;border-radius:50%}.game-card-body .game-button{width:100%}.games-footnote{color:#98a3b3;margin:22px 0;font-size:12px}
.game-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;border:1px solid #dce3ee;border-radius:8px;padding:9px 16px;color:#435673;background:#fff;font-weight:600;line-height:1.4}.game-button:hover:not(:disabled){border-color:#a6bfee;background:#f6f9ff}.game-button.game-primary{background:var(--game-blue);border-color:var(--game-blue);color:#fff}.game-button.game-primary:hover{background:#1d4ed8;border-color:#1d4ed8}.game-back{border:0;background:transparent;padding-left:0;color:#6b7a91;font-size:13px}.game-topbar{display:flex;align-items:center;gap:24px;margin:0 0 18px}.game-title{display:flex;align-items:center;gap:10px}.game-title h2{margin:0;font-size:22px}.gomoku-layout{display:grid;grid-template-columns:minmax(0,680px) minmax(230px,290px);gap:22px;align-items:start;justify-content:center}.gomoku-play-panel{min-width:0;background:#fff;border:1px solid var(--game-line);border-radius:14px;padding:20px}.gomoku-status{display:flex;align-items:center;gap:12px;margin:0 0 18px;min-height:40px}.gomoku-status strong{font-size:16px}.gomoku-status p{color:var(--game-muted);margin:5px 0 0;font-size:12px}.turn-stone{width:24px;height:24px;border-radius:50%;flex-shrink:0;background:radial-gradient(circle at 32% 25%,#647080,#1c2531 55%,#10151e);box-shadow:0 2px 4px #172b4d26}.turn-stone.white{background:radial-gradient(circle at 32% 25%,#fff,#f1f3f7 65%,#dce2e9);border:1px solid #d1d8e2}.turn-stone.draw{background:#a6b3c5}.move-total{margin-left:auto;color:#8491a5;font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap}.gomoku-board{padding:12px;border:1px solid #dbc39f;border-radius:8px;background:#e9d2aa;box-shadow:inset 0 0 30px #d4b47b36}.gomoku-grid{display:grid;grid-template-columns:repeat(15,minmax(0,1fr));aspect-ratio:1;position:relative;isolation:isolate;touch-action:manipulation}.gomoku-lines{position:absolute;width:100%;height:100%;inset:0;pointer-events:none;z-index:-1}.gomoku-row{display:contents}.gomoku-cell{display:grid;place-items:center;min-width:0;min-height:0;width:100%;height:100%;padding:0;border:0!important;border-radius:0;background:transparent!important;position:relative;color:inherit;box-shadow:none!important;touch-action:manipulation}.gomoku-cell:active{transform:none!important}.gomoku-cell:focus-visible{outline:2px solid var(--game-blue);outline-offset:-2px;border-radius:4px}.gomoku-cell[aria-disabled="true"]{cursor:default}.gomoku-stone{width:82%;height:82%;border-radius:50%;background:radial-gradient(circle at 32% 25%,#5b6572,#1b232e 57%,#0c1119);box-shadow:1px 2px 3px #55422566;position:relative;pointer-events:none}.gomoku-stone.white{background:radial-gradient(circle at 32% 25%,#fff,#f5f6f9 58%,#dce1e8);box-shadow:1px 2px 3px #55422550,inset 0 0 1px #9aa4b2}.gomoku-cell.last .gomoku-stone:after{content:"";position:absolute;inset:35%;border:2px solid #72a4ff;border-radius:50%}.gomoku-cell.winning .gomoku-stone{outline:2px solid #e68626;outline-offset:1px}.gomoku-board-footer{display:flex;justify-content:space-between;gap:10px;color:#8995a6;font-size:11px;line-height:1.6;margin-top:14px}.game-side-panel{display:grid;gap:16px;min-width:0}.game-settings,.game-history,.game-rules{background:#fff;border:1px solid var(--game-line);border-radius:12px;padding:20px}.game-side-panel h3{margin:0;font-size:14px}.game-settings label{display:block;font-size:12px;color:#708098;margin:18px 0 8px}.game-settings select{height:40px;width:100%;padding:0 10px;border:1px solid #dce3ee;border-radius:7px;background:#fff;color:#304763}.game-setting-note{color:#98a3b3;font-size:11px;line-height:1.6;margin:12px 0 18px}.game-actions{display:flex;gap:10px}.game-actions .game-primary{flex:1}.game-section-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.game-section-heading>span{font-size:11px;color:#9ba6b6}.game-history ol{list-style:none;padding:0;margin:14px 0 0;display:grid;gap:2px}.game-history li{display:flex;align-items:center;gap:9px;padding:7px 0;border-bottom:1px solid #f2f4f8;font-size:12px;color:#63738a;line-height:1.5}.game-history li:last-child{border:0}.history-number{width:26px;color:#97a3b4;font-variant-numeric:tabular-nums}.history-stone{width:12px;height:12px;border-radius:50%;background:#273345}.history-stone.white{background:#fff;border:1px solid #cfd8e4}.history-position{margin-left:auto;color:#526a8b;font-variant-numeric:tabular-nums}.game-empty-history{font-size:12px;color:#9aa5b5;margin:20px 0 6px}.game-rules{color:#708098;font-size:12px;line-height:1.8}.game-rules summary{cursor:pointer;color:#526783;font-weight:600}.game-rules p{margin:12px 0 0}
@media(hover:hover) and (pointer:fine){.gomoku-grid[data-turn="1"] .gomoku-cell[aria-disabled="false"]:hover:before,.gomoku-grid[data-turn="2"] .gomoku-cell[aria-disabled="false"]:hover:before{content:"";width:72%;height:72%;border-radius:50%;background:#243044;opacity:.25}.gomoku-grid[data-turn="2"] .gomoku-cell[aria-disabled="false"]:hover:before{background:#fff;opacity:.7}}
@media(max-width:1180px){.gomoku-layout{grid-template-columns:minmax(0,1fr) 240px;gap:16px}.game-settings,.game-history,.game-rules{padding:16px}}
@media(max-width:760px){.games-main{padding:22px 16px 32px}.games-heading{align-items:flex-start;margin:4px 0 22px}.games-heading h2{font-size:22px}.games-count{font-size:11px;padding:6px 9px}.game-catalog{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}.gomoku-layout{grid-template-columns:1fr;gap:14px;max-width:600px;margin:auto}.gomoku-play-panel{padding:14px}.game-side-panel{grid-template-columns:1fr 1fr;gap:12px}.game-rules{grid-column:1/-1}.gomoku-board{padding:8px}.gomoku-status strong{font-size:14px}.game-topbar{gap:18px}.game-title h2{font-size:19px}}
@media(max-width:440px){body>header{padding:14px 16px}.brand h1{font-size:18px}.nav a{font-size:12px}.games-main{padding:20px 12px 28px}.games-heading{gap:8px}.games-heading h2{font-size:20px}.game-card{max-width:none}.game-side-panel{grid-template-columns:1fr}.game-settings{padding:16px}.game-history{padding:16px}.game-history ol{grid-template-columns:1fr 1fr;column-gap:18px}.game-rules{grid-column:auto}.gomoku-board-footer{font-size:10px}.gomoku-status{gap:9px}.turn-stone{width:20px;height:20px}.game-topbar{gap:12px}.game-tag{font-size:10px}.game-actions .game-button{min-height:42px}}
@media(prefers-reduced-motion:reduce){.game-card-art svg{transform:none}}
.game-online-panel{min-width:0;background:#fff;border:1px solid var(--game-line);border-radius:12px;padding:20px}.game-card-modes{flex-wrap:wrap;row-gap:8px}.online-connection{font-size:11px;color:#7b8da8}.online-copy{font-size:12px;line-height:1.8;color:#8491a5;margin:16px 0}.game-online-panel #createRoom,.game-online-panel #copyRoomLink{width:100%}.game-online-panel label{display:block;font-size:12px;color:#708098;margin:18px 0 8px}.room-join{display:flex;gap:8px}.room-join input{min-width:0;width:100%;height:40px;padding:0 10px;border:1px solid #dce3ee;border-radius:7px;background:#fff;color:#304763;font:inherit;letter-spacing:1px}.room-join .game-button{flex:none;padding:9px 12px}.room-code-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:20px 0 16px}.room-code-row>span{font-size:12px;color:#8290a4}.room-code-row>strong{font-size:22px;letter-spacing:3px;font-variant-numeric:tabular-nums;color:#304b78}.room-players{display:grid;gap:12px;margin-bottom:22px}.room-player{display:flex;align-items:center;gap:8px;min-width:0;font-size:12px}.room-player-name{min-width:0;overflow-wrap:anywhere}.room-player-presence{font-size:10px;color:#95a1b2;white-space:nowrap;margin-left:auto}.room-player-presence.is-online{color:#25946d}.room-leave{display:block;margin:14px auto 0;padding:4px 8px;background:transparent;border:0;color:#8995a7;font:inherit;font-size:12px}.room-leave:hover{color:#c45252}.room-request{border:1px solid #d8e5fd;border-radius:8px;background:#f4f8ff;margin-top:18px;padding:12px}.room-request p{margin:0;font-size:12px;line-height:1.8;color:#4e6a93}.room-request #requestResponses{display:flex;gap:8px;margin-top:10px}.room-request .game-button{min-height:34px;padding:7px 10px;font-size:12px}.online-notice{font-size:12px;line-height:1.7;color:#a36a29;margin:14px 0 0;overflow-wrap:anywhere}
@media(max-width:1180px){.game-online-panel{padding:16px}.game-actions .game-button{padding:9px 12px}}
@media(min-width:441px) and (max-width:760px){.game-online-panel{grid-column:1/-1;grid-row:1}.room-players{grid-template-columns:1fr 1fr;gap:18px}.room-code-row{justify-content:flex-start}.room-join{max-width:360px}.game-online-panel #createRoom,.game-online-panel #copyRoomLink{width:auto;min-width:160px}}
