.nx-main{max-width:1280px;margin:0 auto;padding:36px 28px 80px;display:grid;grid-template-columns:320px 1fr 280px;grid-gap:32px;gap:32px;align-items:start}@media (max-width:1100px){.nx-main{grid-template-columns:1fr}}.nx-page .opp-head{display:flex;align-items:center;gap:14px;margin-bottom:14px}.nx-page .opp-head>div:not(.opp-avatar){flex:1 1;min-width:0}.nx-page .opp-avatar{width:56px;height:56px;background:var(--bg-3);border:1px solid var(--rule);position:relative;overflow:hidden;flex:0 0 56px}.nx-page .opp-avatar svg{width:100%;height:100%;display:block}.nx-page .opp-name{font-family:var(--pixel);font-size:12px;letter-spacing:.04em;margin:0 0 6px;color:var(--fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.nx-page .opp-meta{font-size:10px;color:var(--fg-dim);letter-spacing:.1em;font-family:var(--mono)}.nx-page .opp-meta .pill{display:inline-block;padding:2px 6px;margin-right:8px;background:var(--magenta);color:var(--bg);border-radius:0;text-transform:uppercase;font-family:var(--pixel);font-size:8px;letter-spacing:.1em}.nx-page .opp-bio{font-size:12.5px;color:var(--fg-dim);line-height:1.55;margin:0 0 12px}.nx-page .opp-select{display:grid;grid-gap:6px;gap:6px}.nx-page .opp-option{display:flex;align-items:center;gap:10px;padding:10px 12px;background:transparent;border:1px solid var(--rule);color:var(--fg);font-family:var(--mono);font-size:12px;text-align:left;cursor:pointer;border-radius:0;transition:border-color .12s,background .12s}.nx-page .opp-option:hover{border-color:var(--magenta)}.nx-page .opp-option[aria-selected=true]{border-color:var(--magenta);background:color-mix(in oklab,var(--magenta) 10%,transparent);box-shadow:0 0 0 1px var(--magenta) inset}.nx-page .opp-option .dot{width:10px;height:10px;background:var(--fg-faint);flex:0 0 10px}.nx-page .opp-option[aria-selected=true] .dot{background:var(--magenta);box-shadow:0 0 8px var(--magenta)}.nx-page .opp-option .ver{color:var(--cyan);margin-left:8px;font-size:10px;font-family:var(--pixel);letter-spacing:.08em}.nx-page .opp-option .desc{color:var(--fg-dim);font-size:11px;display:block;margin-top:4px}.nx-page .opp-option>div{font-family:var(--pixel);font-size:9px;letter-spacing:.06em;line-height:1.5}.nx-page .color-picker{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px}.nx-page .color-pick{border:1px solid var(--rule);background:transparent;padding:14px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:10px;color:var(--fg);font-family:var(--pixel);font-size:9px;letter-spacing:.1em;text-transform:uppercase;border-radius:0;transition:border-color .12s}.nx-page .color-pick:hover{border-color:var(--magenta)}.nx-page .color-pick[aria-selected=true]{border-color:var(--magenta);background:color-mix(in oklab,var(--magenta) 8%,transparent);box-shadow:0 0 0 1px var(--magenta) inset}.nx-page .mark-glyph{font-family:var(--mono);font-size:30px;line-height:1;display:inline-block;width:36px;height:36px;text-align:center}.nx-page .mark-glyph.x{color:var(--magenta);text-shadow:0 0 10px var(--magenta)}.nx-page .mark-glyph.o{color:var(--cyan);text-shadow:0 0 10px var(--cyan)}:root[data-theme=light] .nx-page .mark-glyph.o,:root[data-theme=light] .nx-page .mark-glyph.x{text-shadow:none}@media (prefers-color-scheme:light){:root:not([data-theme=dark]) .nx-page .mark-glyph.o,:root:not([data-theme=dark]) .nx-page .mark-glyph.x{text-shadow:none}}.nx-page .stage{display:flex;flex-direction:column;align-items:center;gap:18px}.nx-page .turn-strip{width:100%;max-width:520px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;border:2px solid var(--rule);background:var(--bg-2);border-radius:0;overflow:hidden;position:relative}.nx-page .turn-strip:before{content:"";position:absolute;top:-2px;left:-2px;right:-2px;height:3px;background:linear-gradient(to right,var(--magenta) 0 40%,transparent 40% 60%,var(--cyan) 60% 100%)}.nx-page .turn-side{padding:14px 18px;display:flex;align-items:center;gap:12px;transition:background .2s,color .2s}.nx-page .turn-side.right{justify-content:flex-end}.nx-page .turn-side .who{font-family:var(--pixel);font-size:8px;text-transform:uppercase;letter-spacing:.16em;color:var(--fg-dim);margin-bottom:6px}.nx-page .turn-side .name{font-family:var(--pixel);font-size:12px;letter-spacing:.04em;white-space:nowrap;line-height:1.3}.nx-page .turn-side>div{min-width:0;flex:1 1}.nx-page .turn-side .mark-sm{font-family:var(--mono);font-size:24px;line-height:1;width:28px;height:28px;text-align:center;flex:0 0 28px}.nx-page .turn-side .mark-sm.x{color:var(--magenta);text-shadow:0 0 10px var(--magenta)}.nx-page .turn-side .mark-sm.o{color:var(--cyan);text-shadow:0 0 10px var(--cyan)}:root[data-theme=light] .nx-page .turn-side .mark-sm.o,:root[data-theme=light] .nx-page .turn-side .mark-sm.x{text-shadow:none}@media (prefers-color-scheme:light){:root:not([data-theme=dark]) .nx-page .turn-side .mark-sm.o,:root:not([data-theme=dark]) .nx-page .turn-side .mark-sm.x{text-shadow:none}}.nx-page .turn-side.active{background:color-mix(in oklab,var(--magenta) 14%,transparent)}.nx-page .turn-side.active .name{color:var(--fg);text-shadow:0 0 8px var(--magenta)}:root[data-theme=light] .nx-page .turn-side.active .name{text-shadow:none}@media (prefers-color-scheme:light){:root:not([data-theme=dark]) .nx-page .turn-side.active .name{text-shadow:none}}.nx-page .turn-arrow{padding:0 14px;color:var(--cyan);font-family:var(--pixel);font-size:18px}.nx-page .board-wrap{--cell:132px;--gap:8px;--pad:14px;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none}.nx-page .nx-board{display:grid;grid-template-columns:repeat(3,var(--cell));grid-template-rows:repeat(3,var(--cell));grid-gap:var(--gap);gap:var(--gap);padding:var(--pad);background:var(--bg-2);border:2px solid var(--rule);position:relative;box-shadow:0 30px 60px -30px rgba(0,0,0,.45),inset 0 0 0 2px rgba(255,255,255,.03)}.nx-page .nx-board:before{content:"";position:absolute;top:-2px;left:-2px;right:-2px;height:3px;background:linear-gradient(to right,var(--cyan) 0 35%,transparent 35% 65%,var(--magenta) 65% 100%)}.nx-page .nx-cell{position:relative;width:var(--cell);height:var(--cell);background:var(--bg-3);border:1px solid var(--rule);cursor:not-allowed;padding:0;font:inherit;color:var(--fg);display:flex;align-items:center;justify-content:center;transition:border-color .12s,background .12s}.nx-page .nx-cell.playable{cursor:pointer}.nx-page .nx-cell.playable:hover{border-color:var(--magenta);background:color-mix(in oklab,var(--magenta) 6%,var(--bg-3))}.nx-page .nx-cell .cell-label{position:absolute;top:6px;left:8px;font-family:var(--pixel);font-size:8px;letter-spacing:.08em;color:var(--fg-faint);pointer-events:none}.nx-page .nx-cell .mark{font-family:var(--mono);font-size:78px;line-height:1;font-weight:700;pointer-events:none}.nx-page .nx-cell .mark.x{color:var(--magenta);text-shadow:0 0 18px var(--magenta),0 0 4px var(--magenta)}.nx-page .nx-cell .mark.o{color:var(--cyan);text-shadow:0 0 18px var(--cyan),0 0 4px var(--cyan)}:root[data-theme=light] .nx-page .nx-cell .mark.o,:root[data-theme=light] .nx-page .nx-cell .mark.x{text-shadow:none}@media (prefers-color-scheme:light){:root:not([data-theme=dark]) .nx-page .nx-cell .mark.o,:root:not([data-theme=dark]) .nx-page .nx-cell .mark.x{text-shadow:none}}.nx-page .nx-cell .mark.ghost{opacity:0;transition:opacity .15s}.nx-page .nx-cell.playable:hover .mark.ghost{opacity:.32}.nx-page .nx-cell .mark.placed{animation:nx-pop .32s cubic-bezier(.34,1.56,.64,1)}@keyframes nx-pop{0%{transform:scale(.4);opacity:0}60%{transform:scale(1.12);opacity:1}to{transform:scale(1)}}.nx-page .nx-cell.winner{border-color:var(--lime);background:color-mix(in oklab,var(--lime) 8%,var(--bg-3));animation:nx-winpulse 1.2s ease-in-out infinite}@keyframes nx-winpulse{0%,to{box-shadow:0 0 0 0 rgba(0,0,0,0)}50%{box-shadow:0 0 0 3px color-mix(in oklab,var(--lime) 60%,transparent),0 0 18px 0 color-mix(in oklab,var(--lime) 80%,transparent)}}.nx-page .score-row{display:grid;grid-template-columns:1fr 1fr 1fr;grid-gap:8px;gap:8px;text-align:center}.nx-page .score-row>div{border:1px solid var(--rule);padding:14px 8px 12px;border-radius:0}.nx-page .score-row .label{font-family:var(--pixel);font-size:8px;letter-spacing:.18em;text-transform:uppercase;color:var(--fg-faint)}.nx-page .score-row .value{font-family:var(--pixel);font-size:22px;letter-spacing:.02em;margin-top:10px;color:var(--fg);font-feature-settings:"tnum"}.nx-page .score-row .value.w{color:var(--lime)}.nx-page .score-row .value.l{color:var(--magenta)}.nx-page .log{font-family:var(--mono);font-size:11px;line-height:1.6;color:var(--fg);background:var(--bg-3);padding:12px 14px;border-radius:0;max-height:200px;overflow-y:auto;border:1px solid var(--rule);letter-spacing:.02em}.nx-page .log .ln{display:block}.nx-page .log .ln .t{color:var(--fg-faint);margin-right:8px}.nx-page .log .ln .you{color:var(--cyan)}.nx-page .log .ln .ai{color:var(--magenta)}.nx-page .log .ln .sys{color:var(--fg-dim)}.nx-page .log .ln .win{color:var(--lime)}.nx-page .thinking{display:inline-flex;align-items:center;gap:6px;color:var(--magenta);font-family:var(--pixel);font-size:9px;letter-spacing:.1em;text-transform:uppercase}.nx-page .thinking .dots{display:inline-flex;gap:3px}.nx-page .thinking .dots i{width:5px;height:5px;background:var(--magenta);animation:nx-think 1s ease-in-out infinite;box-shadow:0 0 6px var(--magenta)}.nx-page .thinking .dots i:nth-child(2){animation-delay:.15s}.nx-page .thinking .dots i:nth-child(3){animation-delay:.3s}@keyframes nx-think{0%,80%,to{opacity:.25;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}.nx-page .result{position:absolute;inset:0;background:color-mix(in oklab,var(--bg) 80%,transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:20px;opacity:0;pointer-events:none;transition:opacity .3s}.nx-page .result.show{opacity:1;pointer-events:auto}.nx-page .result h2{font-family:var(--pixel);font-size:32px;line-height:1.05;margin:0 0 16px;letter-spacing:.04em;text-shadow:4px 4px 0 var(--cyan)}.nx-page .result.win h2{color:var(--lime);text-shadow:4px 4px 0 var(--cyan)}.nx-page .result.loss h2{color:var(--magenta);text-shadow:4px 4px 0 var(--cyan)}.nx-page .result.draw h2{color:var(--cyan);text-shadow:4px 4px 0 var(--magenta)}.nx-page .result p{font-family:var(--pixel);font-size:9px;color:var(--fg-dim);margin:0 0 22px;letter-spacing:.16em;text-transform:uppercase}.nx-page .stage-help{color:var(--fg-faint);text-align:center}.nx-page .stage-help,.nx-page .turn-meta{font-size:11px;letter-spacing:.1em;text-transform:uppercase;margin-top:14px}.nx-page .turn-meta{justify-content:space-between}.nx-page .api-banner,.nx-page .turn-meta{display:flex;align-items:center;color:var(--fg-dim)}.nx-page .api-banner{margin:0 0 18px;padding:10px 12px;border:1px solid var(--rule);background:color-mix(in oklab,var(--magenta) 6%,transparent);font-family:var(--mono);font-size:11px;letter-spacing:.04em;gap:10px}.nx-page .api-banner strong{color:var(--magenta);font-weight:500;flex:0 0 auto}.nx-page .api-banner-msg{flex:1 1 auto;min-width:0}.nx-page .api-banner-actions{display:inline-flex;gap:6px;flex:0 0 auto}.nx-page .api-banner-actions .btn{padding:6px 10px;font-size:8px}.nx-page .api-banner-actions .api-banner-dismiss{padding:6px 8px;font-family:var(--mono);font-size:11px;letter-spacing:0}.nx-page .api-banner-transient{border-color:color-mix(in oklab,var(--yellow) 50%,var(--rule));background:color-mix(in oklab,var(--yellow) 6%,transparent)}.nx-page .api-banner-transient strong{color:var(--yellow)}.nx-page .api-banner-expired{border-color:color-mix(in oklab,var(--cyan) 50%,var(--rule));background:color-mix(in oklab,var(--cyan) 6%,transparent)}.nx-page .api-banner-expired strong{color:var(--cyan)}