.dr-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){.dr-main{grid-template-columns:1fr}}.dr-page .opp-head{display:flex;align-items:center;gap:14px;margin-bottom:14px}.dr-page .opp-head>div:not(.opp-avatar){flex:1 1;min-width:0}.dr-page .opp-avatar{width:56px;height:56px;background:var(--bg-3);border:1px solid var(--rule);position:relative;overflow:hidden;flex:0 0 56px}.dr-page .opp-avatar svg{width:100%;height:100%;display:block}.dr-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}.dr-page .opp-meta{font-size:10px;color:var(--fg-dim);letter-spacing:.1em;font-family:var(--mono)}.dr-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}.dr-page .opp-bio{font-size:12.5px;color:var(--fg-dim);line-height:1.55;margin:0 0 12px}.dr-page .opp-select{display:grid;grid-gap:6px;gap:6px}.dr-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}.dr-page .opp-option:hover{border-color:var(--magenta)}.dr-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}.dr-page .opp-option .dot{width:10px;height:10px;background:var(--fg-faint);flex:0 0 10px}.dr-page .opp-option[aria-selected=true] .dot{background:var(--magenta);box-shadow:0 0 8px var(--magenta)}.dr-page .opp-option .ver{color:var(--cyan);margin-left:8px;font-size:10px;font-family:var(--pixel);letter-spacing:.08em}.dr-page .opp-option .desc{color:var(--fg-dim);font-size:11px;display:block;margin-top:4px}.dr-page .opp-option>div{font-family:var(--pixel);font-size:9px;letter-spacing:.06em;line-height:1.5}.dr-page .color-picker{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px}.dr-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}.dr-page .color-pick:hover{border-color:var(--magenta)}.dr-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}.dr-page .piece-glyph{width:32px;height:32px;border-radius:50%}.dr-page .piece-glyph.black{background:radial-gradient(circle at 35% 30%,#ff7bea,var(--magenta) 60%,#7a0f63);box-shadow:0 0 10px var(--magenta),inset 0 -3px 5px rgba(0,0,0,.35),inset 0 2px 4px rgba(255,255,255,.3)}.dr-page .piece-glyph.white{background:radial-gradient(circle at 35% 30%,#9bfbff,var(--cyan) 60%,#045864);box-shadow:0 0 10px var(--cyan),inset 0 -3px 5px rgba(0,0,0,.35),inset 0 2px 4px rgba(255,255,255,.3)}:root[data-theme=light] .dr-page .piece-glyph.black,:root[data-theme=light] .dr-page .piece-glyph.white{box-shadow:inset 0 -3px 5px rgba(0,0,0,.2),inset 0 2px 4px rgba(255,255,255,.4)}.dr-page .stage{display:flex;flex-direction:column;align-items:center;gap:18px}.dr-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}.dr-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%)}.dr-page .turn-side{padding:14px 18px;display:flex;align-items:center;gap:12px;transition:background .2s,color .2s}.dr-page .turn-side.right{justify-content:flex-end}.dr-page .turn-side .who{font-family:var(--pixel);font-size:8px;text-transform:uppercase;letter-spacing:.16em;color:var(--fg-dim);margin-bottom:6px}.dr-page .turn-side .name{font-family:var(--pixel);font-size:12px;letter-spacing:.04em;white-space:nowrap;line-height:1.3}.dr-page .turn-side>div{min-width:0;flex:1 1}.dr-page .turn-side .disc-sm{width:26px;height:26px;border-radius:50%;flex:0 0 26px}.dr-page .turn-side .disc-sm.black{background:radial-gradient(circle at 35% 30%,#ff7bea,var(--magenta) 60%,#7a0f63);box-shadow:0 0 10px var(--magenta)}.dr-page .turn-side .disc-sm.white{background:radial-gradient(circle at 35% 30%,#9bfbff,var(--cyan) 60%,#045864);box-shadow:0 0 10px var(--cyan)}:root[data-theme=light] .dr-page .turn-side .disc-sm.black,:root[data-theme=light] .dr-page .turn-side .disc-sm.white{box-shadow:none}.dr-page .turn-side.active{background:color-mix(in oklab,var(--magenta) 14%,transparent)}.dr-page .turn-side.active .name{color:var(--fg)}.dr-page .turn-arrow{padding:0 14px;color:var(--cyan);font-family:var(--pixel);font-size:18px}.dr-page .board-wrap{position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none}.dr-page .dr-board{width:min(456px,86vw);aspect-ratio:1;display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(8,1fr);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)}.dr-page .dr-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%);z-index:2}.dr-page .dr-sq{position:relative;display:flex;align-items:center;justify-content:center;padding:0;border:0;margin:0;font:inherit;color:inherit}.dr-page .dr-sq.light{background:var(--bg-3)}.dr-page .dr-sq.dark{background:color-mix(in oklab,#000 26%,var(--bg));cursor:default}.dr-page .dr-sq.dark.can{cursor:pointer}.dr-page .dr-piece{width:78%;aspect-ratio:1;border-radius:50%;position:relative;display:flex;align-items:center;justify-content:center;animation:dr-pop .28s cubic-bezier(.34,1.56,.64,1)}.dr-page .dr-piece.black{background:radial-gradient(circle at 35% 28%,#ff7bea,var(--magenta) 58%,#6f0d59);box-shadow:0 0 14px color-mix(in oklab,var(--magenta) 70%,transparent),inset 0 -4px 7px rgba(0,0,0,.4),inset 0 3px 5px rgba(255,255,255,.3)}.dr-page .dr-piece.white{background:radial-gradient(circle at 35% 28%,#9bfbff,var(--cyan) 58%,#045462);box-shadow:0 0 14px color-mix(in oklab,var(--cyan) 70%,transparent),inset 0 -4px 7px rgba(0,0,0,.4),inset 0 3px 5px rgba(255,255,255,.3)}:root[data-theme=light] .dr-page .dr-piece.black,:root[data-theme=light] .dr-page .dr-piece.white{box-shadow:inset 0 -4px 7px rgba(0,0,0,.25),inset 0 3px 5px rgba(255,255,255,.45)}.dr-page .dr-piece.king{outline:2px solid rgba(255,255,255,.65);outline-offset:-7px}.dr-page .dr-piece .crown{font-size:clamp(12px,3.2vw,18px);line-height:1;color:rgba(255,255,255,.92);text-shadow:0 1px 2px rgba(0,0,0,.5)}@keyframes dr-pop{0%{transform:scale(.4);opacity:0}60%{transform:scale(1.12);opacity:1}to{transform:scale(1)}}.dr-page .dr-sq.last:after{content:"";position:absolute;inset:0;background:color-mix(in oklab,var(--yellow) 18%,transparent);pointer-events:none}.dr-page .dr-sq.movable .dr-piece:before{content:"";position:absolute;inset:-5px;border-radius:50%;border:2px solid color-mix(in oklab,var(--lime) 70%,transparent);animation:dr-breathe 1.6s ease-in-out infinite;pointer-events:none}@keyframes dr-breathe{0%,to{opacity:.35}50%{opacity:.9}}.dr-page .dr-sq.selected{background:color-mix(in oklab,var(--lime) 16%,var(--bg))}.dr-page .dr-sq.selected .dr-piece:before{content:"";position:absolute;inset:-5px;border-radius:50%;border:2px solid var(--lime);box-shadow:0 0 12px var(--lime);pointer-events:none}.dr-page .dr-sq.pathstep:after{content:"";position:absolute;inset:26%;border-radius:50%;background:color-mix(in oklab,var(--lime) 28%,transparent);pointer-events:none}.dr-page .dr-sq.target.can:hover{background:color-mix(in oklab,var(--lime) 22%,var(--bg))}.dr-page .dr-dot{width:34%;height:34%;border-radius:50%;background:color-mix(in oklab,var(--lime) 55%,transparent);box-shadow:0 0 10px color-mix(in oklab,var(--lime) 70%,transparent);animation:dr-breathe 1.4s ease-in-out infinite}.dr-page .score-row{display:grid;grid-template-columns:1fr 1fr 1fr;grid-gap:8px;gap:8px;text-align:center}.dr-page .score-row>div{border:1px solid var(--rule);padding:14px 8px 12px;border-radius:0}.dr-page .score-row .label{font-family:var(--pixel);font-size:8px;letter-spacing:.18em;text-transform:uppercase;color:var(--fg-faint)}.dr-page .score-row .value{font-family:var(--pixel);font-size:22px;letter-spacing:.02em;margin-top:10px;color:var(--fg);font-feature-settings:"tnum"}.dr-page .score-row .value.w{color:var(--lime)}.dr-page .score-row .value.l{color:var(--magenta)}.dr-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}.dr-page .log .ln{display:block}.dr-page .log .ln .t{color:var(--fg-faint);margin-right:8px}.dr-page .log .ln .you{color:var(--cyan)}.dr-page .log .ln .ai{color:var(--magenta)}.dr-page .log .ln .sys{color:var(--fg-dim)}.dr-page .log .ln .win{color:var(--lime)}.dr-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}.dr-page .thinking .dots{display:inline-flex;gap:3px}.dr-page .thinking .dots i{width:5px;height:5px;background:var(--magenta);animation:dr-think 1s ease-in-out infinite;box-shadow:0 0 6px var(--magenta)}.dr-page .thinking .dots i:nth-child(2){animation-delay:.15s}.dr-page .thinking .dots i:nth-child(3){animation-delay:.3s}@keyframes dr-think{0%,80%,to{opacity:.25;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}.dr-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}.dr-page .result.show{opacity:1;pointer-events:auto}.dr-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)}.dr-page .result.win h2{color:var(--lime);text-shadow:4px 4px 0 var(--cyan)}.dr-page .result.loss h2{color:var(--magenta);text-shadow:4px 4px 0 var(--cyan)}.dr-page .result.draw h2{color:var(--cyan);text-shadow:4px 4px 0 var(--magenta)}.dr-page .result p{font-family:var(--pixel);font-size:9px;color:var(--fg-dim);margin:0 0 22px;letter-spacing:.16em;text-transform:uppercase}.dr-page .stage-help{color:var(--fg-faint);letter-spacing:.06em;text-align:center;line-height:1.8}.dr-page .stage-help,.dr-page .turn-meta{font-size:11px;text-transform:uppercase;margin-top:14px}.dr-page .turn-meta{justify-content:space-between;letter-spacing:.1em}.dr-page .api-banner,.dr-page .turn-meta{display:flex;align-items:center;color:var(--fg-dim)}.dr-page .api-banner{margin:0 0 4px;width:100%;max-width:520px;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}.dr-page .api-banner strong{color:var(--magenta);font-weight:500;flex:0 0 auto}.dr-page .api-banner-msg{flex:1 1 auto;min-width:0}.dr-page .api-banner-actions{display:inline-flex;gap:6px;flex:0 0 auto}.dr-page .api-banner-actions .btn{padding:6px 10px;font-size:8px}.dr-page .api-banner-actions .api-banner-dismiss{padding:6px 8px;font-family:var(--mono);font-size:11px;letter-spacing:0}.dr-page .api-banner-transient{border-color:color-mix(in oklab,var(--yellow) 50%,var(--rule));background:color-mix(in oklab,var(--yellow) 6%,transparent)}.dr-page .api-banner-transient strong{color:var(--yellow)}.dr-page .api-banner-expired{border-color:color-mix(in oklab,var(--cyan) 50%,var(--rule));background:color-mix(in oklab,var(--cyan) 6%,transparent)}.dr-page .api-banner-expired strong{color:var(--cyan)}