.chess-page{--bg:#0a0c0a;--bg-2:#0e1210;--panel:#121612;--panel-2:#161b17;--line:#242b25;--line-soft:#1a201b;--green:#173626;--green-bright:#2f6f4f;--green-glow:#3a8f63;--blue:#8ecae6;--blue-dim:#4d7488;--gold:#cba135;--gold-bright:#e0b94a;--text:#eceeec;--text-dim:#8b968f;--text-faint:#5b665e;--danger:#c1523f;--sq-light:#dde3d6;--sq-dark:#17251c;--sq-light-sel:#e8d98a;--sq-dark-sel:#5a5220;--radius:2px;--display:"Bebas Neue",Impact,"Arial Narrow",sans-serif;--mono:"JetBrains Mono",ui-monospace,"SFMono-Regular",Menlo,monospace}.chess-page *{box-sizing:border-box}.chess-page{background:radial-gradient(1200px 700px at 15% -10%,rgba(47,111,79,.1),transparent 60%),radial-gradient(900px 600px at 100% 10%,rgba(203,161,53,.06),transparent 55%),var(--bg);color:var(--text);font-family:var(--mono);min-height:100vh;padding:96px 16px 60px}.chess-page .wrap{max-width:1180px;margin:0 auto}.chess-page .hdr{display:flex;align-items:flex-end;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:16px;margin-bottom:22px;flex-wrap:wrap;gap:14px}.chess-page a.gold-link{text-decoration:none;border-color:var(--gold);color:var(--gold-bright)}.chess-page .hdr-left{display:flex;align-items:center;gap:14px}.chess-page .hdr-right{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.chess-page .mark{width:38px;height:38px;flex:none}.chess-page .htitle{font-family:var(--display);font-size:34px;letter-spacing:2px;line-height:1;color:var(--text)}.chess-page .htitle span{color:var(--gold-bright)}.chess-page .hsub{font-size:11px;letter-spacing:2.5px;color:var(--text-faint);text-transform:uppercase;margin-top:4px}.chess-page .status-chip{font-size:11px;letter-spacing:1.5px;text-transform:uppercase;padding:7px 12px;border:1px solid var(--line);border-radius:var(--radius);color:var(--text-dim);background:var(--panel);display:flex;align-items:center;gap:8px}.chess-page .status-dot{width:7px;height:7px;border-radius:50%;background:var(--green-glow);box-shadow:0 0 8px var(--green-glow)}.chess-page .status-chip.thinking .status-dot{background:var(--gold-bright);box-shadow:0 0 8px var(--gold-bright);animation:pulse 1s ease-in-out infinite}.chess-page .status-chip.over .status-dot{background:var(--danger);box-shadow:0 0 8px var(--danger)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.25}}.chess-page .grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:26px;align-items:start}.chess-page .board-col{display:flex;flex-direction:column;align-items:center;gap:14px}.chess-page .board-frame{position:relative;background:linear-gradient(160deg,var(--panel-2),var(--panel));border:1px solid var(--line);padding:14px;border-radius:3px;box-shadow:0 30px 60px -30px rgba(0,0,0,.7)}.chess-page .board{display:grid;grid-template-columns:repeat(8,min(11.5vw,58px));grid-template-rows:repeat(8,min(11.5vw,58px));border:1px solid var(--line)}.chess-page .sq{position:relative;display:flex;align-items:center;justify-content:center;cursor:pointer;user-select:none}.chess-page .sq.light{background:var(--sq-light)}.chess-page .sq.dark{background:var(--sq-dark)}.chess-page .sq.sel.light{background:var(--sq-light-sel)}.chess-page .sq.sel.dark{background:var(--sq-dark-sel)}.chess-page .sq.last-from:after,.chess-page .sq.last-to:after{content:"";position:absolute;inset:0;background:rgba(142,202,230,.28);pointer-events:none}.chess-page .sq.check:after{content:"";position:absolute;inset:0;background:radial-gradient(circle,rgba(193,82,63,.65),rgba(193,82,63,.15) 70%);pointer-events:none}.chess-page .sq .dot{width:26%;height:26%;background:rgba(203,161,53,.65)}.chess-page .sq .dot,.chess-page .sq .ring{position:absolute;border-radius:50%;pointer-events:none}.chess-page .sq .ring{inset:6%;border:3px solid rgba(203,161,53,.65)}.chess-page .piece{font-size:min(8vw,38px);line-height:1;pointer-events:none;transition:transform .08s ease}.chess-page .piece.w{color:#f4f6f2;filter:drop-shadow(0 2px 1px rgba(0,0,0,.5)) drop-shadow(0 0 6px rgba(142,202,230,.25))}.chess-page .piece.b{color:var(--gold-bright);filter:drop-shadow(0 2px 1px rgba(0,0,0,.6))}.chess-page .sq:active .piece{transform:scale(1.08)}.chess-page .coords-file,.chess-page .coords-rank{position:absolute;font-size:9px;color:var(--text-faint);letter-spacing:1px}.chess-page .file-label{position:absolute;bottom:2px;right:3px;font-size:8px;color:rgba(0,0,0,.35)}.chess-page .sq.dark .file-label{color:rgba(255,255,255,.22)}.chess-page .rank-label{position:absolute;top:2px;left:3px;font-size:8px;color:rgba(0,0,0,.35)}.chess-page .sq.dark .rank-label{color:rgba(255,255,255,.22)}.chess-page .board-controls{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.chess-page .btn{font-family:var(--mono);font-size:11px;letter-spacing:1.5px;text-transform:uppercase;background:var(--panel);border:1px solid var(--line);color:var(--text-dim);padding:9px 14px;border-radius:var(--radius);cursor:pointer;transition:all .15s ease}.chess-page .btn:hover{border-color:var(--green-glow);color:var(--text)}.chess-page .btn.primary{border-color:var(--gold);color:var(--gold-bright)}.chess-page .btn.primary:hover{background:rgba(203,161,53,.08)}.chess-page .btn:disabled{opacity:.35;cursor:not-allowed}.chess-page .panel{background:var(--panel);border:1px solid var(--line);border-radius:3px;padding:16px 16px 18px}.chess-page .panel+.panel{margin-top:16px}.chess-page .panel-title{font-size:10px;letter-spacing:2.5px;text-transform:uppercase;color:var(--text-faint);margin:0 0 12px;display:flex;align-items:center;justify-content:space-between}.chess-page .panel-title .cnt{color:var(--gold-bright)}.chess-page .levels{display:flex;flex-direction:column;gap:6px}.chess-page .level-btn{display:flex;align-items:center;gap:10px;background:var(--panel-2);border:1px solid var(--line);border-radius:var(--radius);padding:9px 10px;cursor:pointer;transition:all .15s ease;text-align:left}.chess-page .level-btn:hover{border-color:var(--green-glow)}.chess-page .level-btn.active{border-color:var(--gold);background:rgba(203,161,53,.08)}.chess-page .level-num{font-family:var(--display);font-size:18px;color:var(--text-faint);width:20px;flex:none;text-align:center}.chess-page .level-btn.active .level-num{color:var(--gold-bright)}.chess-page .level-name{font-size:12px;letter-spacing:1px;color:var(--text);font-weight:600}.chess-page .level-sub{font-size:9.5px;color:var(--text-faint);letter-spacing:1px;text-transform:uppercase;margin-top:1px}.chess-page .row-toggle{display:flex;gap:8px}.chess-page .row-toggle .btn{flex:1;text-align:center}.chess-page .row-toggle .btn.on{border-color:var(--blue);color:var(--blue)}.chess-page .captured{display:flex;flex-wrap:wrap;gap:2px;min-height:22px;font-size:16px}.chess-page .captured .cp{opacity:.85}.chess-page .cap-row{display:flex;justify-content:space-between;align-items:center;padding:4px 0}.chess-page .cap-row .lbl{font-size:9.5px;letter-spacing:1.5px;color:var(--text-faint);text-transform:uppercase}.chess-page .history{max-height:150px;overflow-y:auto;font-size:12px;line-height:1.9;color:var(--text-dim)}.chess-page .history::-webkit-scrollbar{width:6px}.chess-page .history::-webkit-scrollbar-thumb{background:var(--line);border-radius:3px}.chess-page .history .mv-pair{display:grid;grid-template-columns:26px 1fr 1fr;gap:6px}.chess-page .history .mv-pair .n{color:var(--text-faint)}.chess-page .history .mv-pair span.wm{color:var(--text)}.chess-page .history .mv-pair span.bm{color:var(--gold-bright)}.chess-page .history-empty{color:var(--text-faint);font-style:italic}.chess-page .commentary{font-size:12px;line-height:1.6;color:var(--text-dim);min-height:40px}.chess-page .commentary b{color:var(--blue)}.chess-page .commentary.hidden-panel{display:none}.chess-page .promo-overlay{position:absolute;inset:0;background:rgba(6,8,6,.82);display:none;align-items:center;justify-content:center;z-index:5}.chess-page .promo-overlay.show{display:flex}.chess-page .promo-box{background:var(--panel-2);border:1px solid var(--gold);padding:16px;border-radius:3px;display:flex;gap:10px}.chess-page .promo-piece{width:48px;height:48px;display:flex;align-items:center;justify-content:center;font-size:32px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);cursor:pointer}.chess-page .promo-piece:hover{border-color:var(--gold)}.chess-page .footer-note{text-align:center;color:var(--text-faint);font-size:10.5px;letter-spacing:1px;margin-top:26px}.chess-page .switch-row{display:flex;align-items:center;justify-content:space-between;margin-top:10px}.chess-page .mini-lbl{font-size:9.5px;letter-spacing:1.5px;color:var(--text-faint);text-transform:uppercase}.chess-page .score-overlay{position:fixed;inset:0;z-index:40;display:none;align-items:center;justify-content:center;background:rgba(6,8,6,.86);padding:20px}.chess-page .score-overlay.show{display:flex}.chess-page .score-box{width:min(420px,100%);background:var(--panel-2);border:1px solid var(--gold);padding:22px 20px;display:flex;flex-direction:column;gap:10px;text-align:center}.chess-page .score-kicker{font-size:11px;letter-spacing:3px;text-transform:uppercase;color:var(--gold-bright)}.chess-page .score-val{font-family:var(--display);font-size:64px;letter-spacing:4px;line-height:1;color:var(--text)}.chess-page .score-label{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--text-faint)}.chess-page .score-input{font-family:var(--mono);font-size:14px;letter-spacing:2px;text-transform:uppercase;background:var(--panel);border:1px solid var(--line);color:var(--text);padding:10px 12px;text-align:center}.chess-page .score-input:focus{outline:none;border-color:var(--gold)}@media (max-width:880px){.chess-page .grid{grid-template-columns:1fr}}