.duel-page{max-width:960px;margin:0 auto;padding:16px 0 48px}.duel-heading{text-align:center;padding:26px 0 18px}.duel-heading h1{font-family:var(--font-jua);font-size:clamp(34px,6vw,52px);margin:15px 0 10px;color:#315842}.duel-heading p{color:#79624f;line-height:1.8}.duel-presence{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:10px;background:#e9efdf;border:1px solid #c7d6b9;border-radius:30px;padding:12px 20px;color:#315842}.duel-presence span{font-size:12px}.duel-choices{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin:24px 0}.duel-choice{border:2px solid #e5d8bd;border-radius:26px;background:#fffaf0;padding:0 0 23px;overflow:hidden;text-align:left;color:#56311f;cursor:pointer;box-shadow:0 6px 0 #e9dfc9;transition:transform .2s}.duel-choice.selected{border-color:#315842;box-shadow:0 6px 0 #91ac70}.duel-choice:hover{transform:translateY(-3px)}.duel-choice>svg{display:block;width:100%;height:auto}.duel-choice h2,.duel-choice p,.duel-choice>span{margin-left:22px;margin-right:22px}.duel-choice h2{font-family:var(--font-jua);font-size:25px;margin-top:12px;margin-bottom:8px}.duel-choice p{line-height:1.6;font-size:14px}.duel-choice>span{font-size:12px;color:#79624f}.duel-match-actions{text-align:center}.duel-match-actions p{line-height:1.8}.duel-match-actions .row{justify-content:center}.duel-room-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:18px 0}.duel-room-head h1{font-family:var(--font-jua);font-size:28px;margin:8px 0}.duel-connection{font-size:12px;border-radius:20px;padding:8px 12px;background:#f4dfc3;white-space:nowrap}.duel-connection.online{background:#e1ead5;color:#315842}.duel-players{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:36px;margin:20px 0}.duel-player{position:relative;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:7px;padding:16px 18px;border:2px solid #e5d7bd;border-radius:20px;background:#fffaf0;overflow-wrap:anywhere;box-shadow:0 3px 0 #eadeca}.duel-player.mine{border-color:#9db481;background:#eff3e7}.duel-player.has-turn{border-color:#315842;box-shadow:0 3px 0 #315842}.duel-player>strong{font-size:18px;line-height:1.4;color:#472e21}.duel-player-label{display:flex;align-items:center;gap:6px;color:#6c5946;font-size:11px;font-weight:700}.duel-player-token{flex:0 0 14px;width:14px;height:14px;border-radius:50%;box-shadow:0 1px 2px #442f2855}.duel-player-token.token-1{background:radial-gradient(circle at 32% 25%,#68605b,#171412 70%);border:1px solid #1b1714}.duel-player-token.token-2{background:radial-gradient(circle at 32% 25%,#fff,#e5e0d4);border:1px solid #86745b}.duel-player-token.token-block{border-radius:4px;background:#c66c43;border:2px solid #9d4c2b}.duel-player-status{font-size:12px;color:#79624f}.duel-player .duel-versus{position:absolute;right:-31px;top:50%;transform:translateY(-50%);font-family:var(--font-jua);font-size:19px;color:#ad5c37}.duel-invite-link{text-align:left;width:min(100%,460px)}.duel-invite-link input{width:100%;min-width:0;font-size:12px}.duel-waiting{text-align:center;display:flex;align-items:center;flex-direction:column;gap:16px}.duel-waiting>svg{max-width:400px;width:100%;height:auto}.duel-overlay{border-radius:18px;background:#f7e4b3;padding:16px;text-align:center;margin:12px 0;color:#56311f}.duel-overlay strong{font-size:21px}.duel-overlay p{margin-bottom:0}.duel-gomoku{max-width:620px;margin:auto}.duel-turn{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;padding:14px 16px;background:#f4ead9;border:1px solid #dfcdb1;border-radius:16px;color:#65472f}.duel-turn.my-turn{background:#eaf0df;border-color:#bccda6;color:#315842}.duel-turn>div{min-width:0;display:grid;gap:5px;overflow-wrap:anywhere}.duel-turn>div>span{font-size:11px;line-height:1.5;color:#78634e}.duel-turn-clock{display:flex;align-items:center;gap:5px;flex-shrink:0;color:#315842;background:#fffdf6;border-radius:12px;padding:8px;font-variant-numeric:tabular-nums}.duel-turn-clock b{font-size:24px;min-width:2ch;text-align:right}.duel-turn-clock small{font-size:11px}.duel-turn-clock.is-urgent{color:#a54122;background:#ffebd8}.duel-gomoku-board{display:grid;grid-template-columns:repeat(15,1fr);padding:12px;background:#d6ac71;border:7px solid #87512f;border-radius:16px;box-shadow:0 5px 0 #613c26;margin-bottom:20px;aspect-ratio:1}.duel-gomoku-board button{padding:0;border:0;position:relative;background:linear-gradient(90deg,transparent 49%,#8f663e 0,#8f663e 51%,transparent 0),linear-gradient(0deg,transparent 49%,#8f663e 0,#8f663e 51%,transparent 0);min-width:0;aspect-ratio:1;cursor:pointer}.duel-gomoku-board button:disabled{opacity:1;cursor:default}.duel-gomoku-board button:focus-visible{outline:2px solid #315842;outline-offset:-2px;z-index:1}.duel-gomoku-board button span{display:block;position:absolute;inset:6%;border-radius:50%}.duel-gomoku-board .stone-1 span{background:radial-gradient(circle at 32% 25%,#645d56,#211c18 48%,#0f0d0b 85%);border:1px solid #17120f;box-shadow:1px 2px 3px #4c301c99,inset 0 1px 1px #ffffff33}.duel-gomoku-board .stone-2 span{background:radial-gradient(circle at 32% 25%,#fff,#f9f6eb 55%,#d5c9b4);border:1px solid #847058;box-shadow:1px 2px 3px #4c301c99,inset 0 1px 1px #fff}.duel-gomoku-board .selected span{border:2px dashed #a43f22;outline:1px solid #fff8e4;outline-offset:2px;opacity:.65}.duel-gomoku-board .preview-1 span{background:#29231e}.duel-gomoku-board .preview-2 span{background:#fffcf4}.duel-gomoku-board .last-move span:after{content:"";position:absolute;width:24%;height:24%;top:38%;left:38%;border-radius:50%;background:#ffd16b;box-shadow:0 0 0 1px #3d2c23}.duel-gomoku-board .stone-2.last-move span:after{background:#b44927;box-shadow:0 0 0 1px #fff8e8}.duel-gomoku-board .winning span{outline:3px solid #b9512c;outline-offset:1px;box-shadow:0 0 0 5px #ffda89,1px 2px 3px #4c301c99}.duel-block-boards{display:grid;grid-template-columns:minmax(0,1fr) 150px;gap:16px;max-width:690px;margin:auto;align-items:start}.duel-rival-board{background:#e9eddf;border-radius:14px;padding:10px;text-align:center;font-size:12px;overflow-wrap:anywhere}.duel-rival-board .blocks-v2{width:100%}.duel-attack{text-align:center;font-size:13px;color:#a4482c}.duel-result{margin-top:24px;text-align:center}.duel-result .row{justify-content:center}.duel-leave{margin:20px 0}.duel-history{margin-top:30px}.duel-history-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;justify-content:space-between;gap:12px;padding:17px 0;border-bottom:1px dashed #deceb4;font-size:14px}.duel-history-info{min-width:0;display:grid;gap:6px;overflow-wrap:anywhere}.duel-history-matchup{color:#79624f;line-height:1.5;font-size:13px}.duel-outcome{border-radius:20px;padding:6px 10px;background:#f1e7d7;white-space:nowrap;font-size:12px;color:#78573f}.duel-outcome.is-win{background:#e5edd9;color:#315842}.duel-copy-note{font-size:13px;line-height:1.6;color:#315842}.duel-history-row time{font-size:12px;color:#79624f}.solo-blocks-page{max-width:600px}.solo-blocks-page>.row{justify-content:center;margin-top:16px}.duel-page .error{margin:16px 0}.duel-page .error button{margin-left:12px}@media (max-width:600px){.duel-page{padding-top:0}.duel-choices{gap:12px}.duel-choice{border-radius:18px}.duel-choice h2{font-size:20px}.duel-choice h2,.duel-choice p,.duel-choice>span{margin-left:12px;margin-right:12px}.duel-choice p{font-size:12px}.duel-choice>span{font-size:10px}.duel-presence{border-radius:18px}.duel-heading p{font-size:14px}.duel-block-boards{grid-template-columns:minmax(0,1fr) 82px;gap:8px}.duel-rival-board{padding:5px}.duel-room-head h1{font-size:23px}.duel-room-head{margin:8px 0}.duel-player{padding:10px 9px;gap:6px;border-radius:15px}.duel-player>strong{font-size:13px}.duel-player-label,.duel-player-status{font-size:10px}.duel-player .duel-versus{right:-26px;font-size:16px}.duel-players{gap:28px;margin:12px 0}.duel-turn{padding:10px;margin-top:12px}.duel-turn strong{font-size:13px}.duel-turn-clock{gap:3px;padding:7px 6px}.duel-turn-clock b{font-size:20px}.duel-gomoku-board{padding:5px;border-width:5px}.in-live-game .bottom-nav,.in-live-game .site-footer{display:none}.in-live-game .duel-page{padding-bottom:16px}.duel-history-row{font-size:12px;grid-template-columns:minmax(0,1fr) auto;gap:9px}.duel-history-row>button{grid-column:1/-1;justify-self:start}.duel-history-matchup{font-size:12px}.duel-history-row time{font-size:10px}}@media (prefers-reduced-motion:reduce){.duel-choice{transition:none}}@media (max-width:600px){.in-live-game .footer,.in-live-game .header{display:none}.in-live-game .main{padding-top:10px;padding-bottom:10px}.in-live-game .blocks-v2-well{width:min(230px,calc((100dvh - 270px) / 2))}.in-live-game .blocks-v2-help{display:none}.in-live-game .blocks-v2-controls{margin-top:10px}.in-live-game .duel-players>div{padding:7px 9px;gap:3px}.in-live-game .duel-attack,.in-live-game .duel-leave{margin:8px 0}.duel-rival-board .blocks-v2-sidebar{display:none}.duel-rival-board .blocks-v2.is-compact .blocks-v2-well{width:100%;max-width:100%;border-width:3px}.in-live-game .blocks-v2-preview{max-height:30px}.in-live-game .blocks-v2-sidebar{gap:5px}.in-live-game .duel-blocks-page>.back-link{font-size:12px;line-height:18px;margin-bottom:0}.in-live-game .duel-blocks-page .duel-room-head{margin:6px 0;gap:8px}.in-live-game .duel-blocks-page .duel-room-head .eyebrow{display:none}.in-live-game .duel-blocks-page .duel-room-head h1{margin:0;font-size:21px;line-height:1.25}.in-live-game .duel-blocks-page .duel-connection{font-size:10px;padding:5px 8px}.in-live-game .duel-blocks-page .duel-players{gap:24px;margin:6px 0 8px}.in-live-game .duel-blocks-page .duel-players>div{min-width:0;padding:6px 8px;border-radius:10px}.in-live-game .duel-blocks-page .duel-players strong{white-space:normal;overflow-wrap:anywhere;font-size:11px;line-height:15px}.in-live-game .duel-blocks-page .duel-player-label,.in-live-game .duel-blocks-page .duel-player-status{display:none}.in-live-game .duel-blocks-page .duel-player .duel-versus{display:block;right:-23px;font-size:13px}.in-live-game .duel-block-boards{display:block;position:relative}.in-live-game .duel-own-board .blocks-v2-stage{display:grid;grid-template-columns:minmax(0,1fr) 92px;gap:10px}.in-live-game .duel-own-board .blocks-v2-well{width:min(230px,calc((100dvh - 267px) / 2));max-width:100%;justify-self:center;border-width:5px}.in-live-game .duel-rival-board{position:absolute;top:0;right:0;width:92px;padding:4px;font-size:10px;line-height:14px}.in-live-game .duel-rival-board .blocks-v2.is-compact .blocks-v2-well{width:50px;margin:2px auto 0}.in-live-game .duel-own-board .blocks-v2-sidebar{grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:4px;padding-top:0;margin-top:118px}.in-live-game .duel-own-board .blocks-v2-counter.is-score{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:4px}.in-live-game .duel-own-board .blocks-v2-counter strong{font-size:16px}.in-live-game .duel-own-board .blocks-v2-counter span{font-size:9px;line-height:13px}.in-live-game .duel-own-board .blocks-v2-pocket{grid-column:1/-1;padding:3px;border-radius:8px}.in-live-game .duel-own-board .blocks-v2-pocket strong{font-size:9px;line-height:13px}.in-live-game .duel-own-board .blocks-v2-pocket small{display:none}.in-live-game .duel-own-board .blocks-v2-pocket:has(svg+svg){display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px}.in-live-game .duel-own-board .blocks-v2-pocket:has(svg+svg) strong{grid-column:1/-1}.in-live-game .duel-own-board .blocks-v2-preview{height:25px}.in-live-game .duel-own-board .blocks-v2-controls{width:100%}}