*,:before,:after{box-sizing:border-box}:root{--bg:#1a1a2e;--text:#cdd6f4;--bg2:#16213e;--bg3:#0f3460;--surface:#1e1e2e;--border:#2e2e4e;--text-dim:#6c7086;--accent:#89b4fa;--accent2:#a6e3a1;--danger:#f38ba8;--eval-white:#e6e6e6;--eval-black:#1a1a1a}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;touch-action:manipulation;margin:0;font-family:system-ui,Segoe UI,sans-serif;font-size:15px;line-height:1.5}#root{flex-direction:column;display:flex}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer;border:none;border-radius:6px;padding:10px 20px;font-size:14px;font-weight:600;transition:opacity .15s}button:hover{opacity:.85}button:disabled{opacity:.4;cursor:not-allowed}input{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:6px;outline:none;width:100%;padding:10px 12px;font-size:14px}input:focus{border-color:var(--accent)}.btn-primary{background:var(--accent);color:#1a1a2e}.btn-danger{background:var(--danger);color:#1a1a2e}.btn-ghost{border:1px solid var(--border);color:var(--text);background:0 0}@keyframes shimmer{to{-webkit-mask-position:0;mask-position:0}}@keyframes king-topple{0%{rotate:0deg}to{rotate:78deg}}@keyframes king-glow-bounce{0%,to{translate:0;scale:1}30%{translate:0 -10%}55%{translate:0}75%{scale:1.12}}@keyframes king-draw-pulse{0%,to{filter:drop-shadow(0 0 #a6e3a100);scale:1}50%{filter:drop-shadow(0 0 10px #a6e3a199);scale:1.08}}.cmb-king-loser{transform-box:fill-box;transform-origin:50% 85%;filter:grayscale()brightness(.65);animation:1.2s ease-in forwards king-topple}.cmb-king-winner{transform-box:fill-box;transform-origin:50%;filter:drop-shadow(0 0 10px #a6e3a1a6);animation:1.5s ease-out forwards king-glow-bounce}.cmb-king-draw{transform-box:fill-box;transform-origin:50%;animation:1.5s ease-in-out 2 king-draw-pulse}.elo-delta-fade{animation:.6s ease-out forwards fade-in}.user-hover-card{animation:.15s ease-out forwards fade-in}@keyframes fade-in{0%{opacity:0;translate:0 6px}to{opacity:1;translate:0}}.home-header{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:14px 24px;display:flex}.home-icon-logo-wrapper{align-items:center;gap:10px;display:flex}.home-main{flex:1;justify-content:center;align-items:flex-start;width:100%;margin:0 auto;padding:48px 24px;display:flex}.home-queue-panel{background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-direction:column;flex-shrink:0;gap:14px;width:360px;max-width:100%;padding:24px;display:flex}@media (width<=800px){.home-header{padding:10px 12px}.home-main{padding:16px 0}.home-queue-panel{width:100%;padding:16px}}.profile-page{width:100%;max-width:720px;margin:0 auto;padding:32px 24px}.profile-ratings{grid-template-columns:1fr 1fr 1fr;gap:8px;display:grid}.profile-games-scroll{overflow-x:auto}@media (width<=600px){.profile-page{padding:16px 12px}}.game-page{flex:1;justify-content:center;align-items:center;padding:16px;display:flex}.game-layout{--board-size:clamp(280px, min(100dvh - 250px, 100vw - 240px), 1200px);gap:24px;display:flex}.board-wrapper{align-items:stretch;display:flex}.board-wrapper>div:last-child{width:var(--board-size)}.game-sidebar{flex-direction:column;flex-shrink:0;align-self:stretch;gap:10px;width:220px;padding:4px 0;display:flex}@media (width<=700px){.game-page{padding:8px}.game-layout{--board-size:min(100vw - 44px, 100dvh - 140px);flex-wrap:wrap;gap:8px}.game-sidebar{flex-direction:column;align-self:auto;align-items:stretch;gap:8px;width:100%;padding-top:0}.game-sidebar .move-list{max-height:160px}.game-sidebar-buttons{gap:8px;display:flex}.game-sidebar-buttons>*{flex:1}}.matchup-panel{border:1px solid var(--border);background:var(--surface);border-radius:8px;flex-direction:column;flex-shrink:0;gap:8px;padding:10px 12px;font-size:12px;display:flex}.matchup-expected{justify-content:space-between;gap:8px;display:flex}.matchup-outcome{color:var(--text-dim)}.matchup-outcome b{font-size:13px;display:block}.matchup-win b{color:var(--accent2,#6c9d5f)}.matchup-loss b{color:var(--danger)}.matchup-draw b{color:var(--text)}.move-list{border:1px solid var(--border);background:var(--surface);border-radius:8px;flex:1;min-height:0;overflow-y:auto}.move-list table{border-collapse:collapse;width:100%;font-size:13px}.move-list-num{width:28px;color:var(--text-dim);text-align:right;white-space:nowrap;padding:4px 4px 4px 8px}.move-list-cell{cursor:pointer;width:50%;color:var(--text);white-space:nowrap;padding:4px 8px}.move-list-cell:hover{background:var(--bg3)}.move-list-cell.active{background:var(--accent);color:#1a1a2e}.move-list-san{font-weight:600}.move-list-eval,.move-list-time{color:var(--text-dim);margin-left:6px;font-size:11px}.move-list-cell.active .move-list-eval,.move-list-cell.active .move-list-time{color:#1a1a2e;opacity:.7}.eval-bar-container{border-radius:8px 0 0 8px;align-self:stretch;width:32px;position:relative;overflow:hidden}.eval-bar-loading{opacity:.5}.eval-bar-label{mix-blend-mode:difference;white-space:nowrap;font-family:monospace;font-size:12px;font-weight:700;animation:2.5s infinite shimmer;position:absolute;bottom:0;left:50%;transform:translate(-50%);-webkit-mask:linear-gradient(-60deg,#000 30%,#0005,#000 70%) 100%/350% 100%;mask:linear-gradient(-60deg,#000 30%,#0005,#000 70%) 100%/350% 100%}@media (width<=700px){.eval-bar-container{width:26px}.eval-bar-label{font-size:10px}}.clock{text-align:center;border-radius:6px;min-width:100px;padding:8px 16px;font-family:ui-monospace,monospace;font-size:28px;transition:background .2s}@media (width<=700px){.clock{min-width:80px;padding:5px 10px;font-size:20px}}.connection-status{color:var(--text-dim);align-items:center;gap:6px;font-family:ui-monospace,monospace;font-size:12px;display:flex}.connection-bars{align-items:flex-end;gap:2px;height:12px;display:flex}.connection-bar{border-radius:1px;width:3px;transition:background .2s}.connection-label{min-width:6ch}.cm-chessboard .board.input-enabled .square{cursor:pointer}.cm-chessboard .coordinates,.cm-chessboard .markers-layer,.cm-chessboard .pieces-layer,.cm-chessboard .markers-top-layer{pointer-events:none}.cm-chessboard-content .list-inline{padding-left:0;list-style:none}.cm-chessboard-content .list-inline-item{display:inline-block}.cm-chessboard-content .list-inline-item:not(:last-child){margin-right:1rem}.cm-chessboard-accessibility.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden}.cm-chessboard-accessibility button:disabled,.cm-chessboard-accessibility button:disabled:hover{opacity:.5;cursor:not-allowed;pointer-events:none}.cm-chessboard.default .board .square.white{fill:#ecdab9}.cm-chessboard.default .board .square.black{fill:#c5a076}.cm-chessboard.default.border-type-thin .board .border{stroke:#c5a076;stroke-width:.7%;fill:#c5a076}.cm-chessboard.default.border-type-none .board .border{stroke:#c5a076;stroke-width:0;fill:#c5a076}.cm-chessboard.default.border-type-frame .board .border{fill:#ecdab9;stroke:none}.cm-chessboard.default.border-type-frame .board .border-inner{fill:#c5a076;stroke:#c5a076;stroke-width:.7%}.cm-chessboard.default .coordinates{pointer-events:none;-webkit-user-select:none;user-select:none}.cm-chessboard.default .coordinates .coordinate{fill:#b5936d;cursor:default;font-size:7px}.cm-chessboard.default .coordinates .coordinate.black{fill:#eeddbf}.cm-chessboard.default .coordinates .coordinate.white{fill:#b5936d}.cm-chessboard.default-contrast .board .square.white{fill:#ecdab9}.cm-chessboard.default-contrast .board .square.black{fill:#c5a076}.cm-chessboard.default-contrast.border-type-thin .board .border{stroke:#c5a076;stroke-width:.7%;fill:#c5a076}.cm-chessboard.default-contrast.border-type-none .board .border{stroke:#c5a076;stroke-width:0;fill:#c5a076}.cm-chessboard.default-contrast.border-type-frame .board .border{fill:#ecdab9;stroke:none}.cm-chessboard.default-contrast.border-type-frame .board .border-inner{fill:#c5a076;stroke:#c5a076;stroke-width:.7%}.cm-chessboard.default-contrast .coordinates{pointer-events:none;-webkit-user-select:none;user-select:none}.cm-chessboard.default-contrast .coordinates .coordinate{fill:#b5936d;cursor:default;font-size:7px}.cm-chessboard.default-contrast .coordinates .coordinate.black,.cm-chessboard.default-contrast .coordinates .coordinate.white{fill:#333}.cm-chessboard.green .board .square.white{fill:#e0ddcc}.cm-chessboard.green .board .square.black{fill:#4c946a}.cm-chessboard.green.border-type-thin .board .border{stroke:#4c946a;stroke-width:.7%;fill:#4c946a}.cm-chessboard.green.border-type-none .board .border{stroke:#4c946a;stroke-width:0;fill:#4c946a}.cm-chessboard.green.border-type-frame .board .border{fill:#e0ddcc;stroke:none}.cm-chessboard.green.border-type-frame .board .border-inner{fill:#4c946a;stroke:#4c946a;stroke-width:.7%}.cm-chessboard.green .coordinates{pointer-events:none;-webkit-user-select:none;user-select:none}.cm-chessboard.green .coordinates .coordinate{fill:#468862;cursor:default;font-size:7px}.cm-chessboard.green .coordinates .coordinate.black{fill:#e2e0d0}.cm-chessboard.green .coordinates .coordinate.white{fill:#468862}.cm-chessboard.blue .board .square.white{fill:#d8ecfb}.cm-chessboard.blue .board .square.black{fill:#86afcf}.cm-chessboard.blue.border-type-thin .board .border{stroke:#86afcf;stroke-width:.7%;fill:#86afcf}.cm-chessboard.blue.border-type-none .board .border{stroke:#86afcf;stroke-width:0;fill:#86afcf}.cm-chessboard.blue.border-type-frame .board .border{fill:#d8ecfb;stroke:none}.cm-chessboard.blue.border-type-frame .board .border-inner{fill:#86afcf;stroke:#86afcf;stroke-width:.7%}.cm-chessboard.blue .coordinates{pointer-events:none;-webkit-user-select:none;user-select:none}.cm-chessboard.blue .coordinates .coordinate{fill:#7ba1be;cursor:default;font-size:7px}.cm-chessboard.blue .coordinates .coordinate.black{fill:#dbeefb}.cm-chessboard.blue .coordinates .coordinate.white{fill:#7ba1be}.cm-chessboard.chess-club .board .square.white{fill:#e6d3b1}.cm-chessboard.chess-club .board .square.black{fill:#af6b3f}.cm-chessboard.chess-club.border-type-thin .board .border{stroke:#692e2b;stroke-width:.7%;fill:#af6b3f}.cm-chessboard.chess-club.border-type-none .board .border{stroke:#692e2b;stroke-width:0;fill:#af6b3f}.cm-chessboard.chess-club.border-type-frame .board .border{fill:#692e2b;stroke:none}.cm-chessboard.chess-club.border-type-frame .board .border-inner{fill:#af6b3f;stroke:#692e2b;stroke-width:.7%}.cm-chessboard.chess-club .coordinates{pointer-events:none;-webkit-user-select:none;user-select:none}.cm-chessboard.chess-club .coordinates .coordinate{fill:#e6d3b1;cursor:default;font-size:7px}.cm-chessboard.chess-club .coordinates .coordinate.black{fill:#e6d3b1}.cm-chessboard.chess-club .coordinates .coordinate.white{fill:#af6b3f}.cm-chessboard.chessboard-js .board .square.white{fill:#f0d9b5}.cm-chessboard.chessboard-js .board .square.black{fill:#b58863}.cm-chessboard.chessboard-js.border-type-thin .board .border{stroke:#404040;stroke-width:.7%;fill:#b58863}.cm-chessboard.chessboard-js.border-type-none .board .border{stroke:#404040;stroke-width:0;fill:#b58863}.cm-chessboard.chessboard-js.border-type-frame .board .border{fill:#f0d9b5;stroke:none}.cm-chessboard.chessboard-js.border-type-frame .board .border-inner{fill:#b58863;stroke:#404040;stroke-width:.7%}.cm-chessboard.chessboard-js .coordinates{pointer-events:none;-webkit-user-select:none;user-select:none}.cm-chessboard.chessboard-js .coordinates .coordinate{fill:#404040;cursor:default;font-size:7px}.cm-chessboard.chessboard-js .coordinates .coordinate.black{fill:#f0d9b5}.cm-chessboard.chessboard-js .coordinates .coordinate.white{fill:#b58863}.cm-chessboard.black-and-white .board .square.white{fill:#fff}.cm-chessboard.black-and-white .board .square.black{fill:#9c9c9c}.cm-chessboard.black-and-white.border-type-thin .board .border{stroke:#9c9c9c;stroke-width:.7%;fill:#9c9c9c}.cm-chessboard.black-and-white.border-type-none .board .border{stroke:#9c9c9c;stroke-width:0;fill:#9c9c9c}.cm-chessboard.black-and-white.border-type-frame .board .border{fill:#fff;stroke:none}.cm-chessboard.black-and-white.border-type-frame .board .border-inner{fill:#9c9c9c;stroke:#9c9c9c;stroke-width:.7%}.cm-chessboard.black-and-white .coordinates{pointer-events:none;-webkit-user-select:none;user-select:none}.cm-chessboard.black-and-white .coordinates .coordinate{fill:#909090;cursor:default;font-size:7px}.cm-chessboard.black-and-white .coordinates .coordinate.black{fill:#fff}.cm-chessboard.black-and-white .coordinates .coordinate.white{fill:#909090}.cm-chessboard .keyboard-focus-indicator .keyboard-focus{fill:none;stroke:#06c;stroke-width:3px;pointer-events:none}.cm-chessboard .keyboard-focus-indicator .keyboard-from-square{fill:#0066cc4d;stroke:#06c;stroke-width:2px;pointer-events:none}.cm-chessboard:focus{outline-offset:2px;outline:2px solid #06c}.cm-chessboard .markers{pointer-events:none}.cm-chessboard .markers .marker.marker-frame{stroke:#000;stroke-width:1.8px;opacity:.5}.cm-chessboard .markers .marker.marker-frame-primary,.cm-chessboard .markers .marker.marker-frame-info{stroke:#00f;stroke-width:1.8px;opacity:.4}.cm-chessboard .markers .marker.marker-frame-danger{stroke:red;stroke-width:1.8px;opacity:.4}.cm-chessboard .markers .marker.marker-frame-warning{stroke:orange;stroke-width:1.8px;opacity:.4}.cm-chessboard .markers .marker.marker-circle{stroke:#000;stroke-width:3px;opacity:.3}.cm-chessboard .markers .marker.marker-circle-primary,.cm-chessboard .markers .marker.marker-circle-info{stroke:#00f;stroke-width:3px;opacity:.4}.cm-chessboard .markers .marker.marker-circle-info-filled{stroke:#00f;fill:#00f;stroke-width:3px;opacity:.4}.cm-chessboard .markers .marker.marker-circle-danger{stroke:red;stroke-width:3px;opacity:.4}.cm-chessboard .markers .marker.marker-circle-danger-filled{stroke:red;fill:red;stroke-width:3px;opacity:.4}.cm-chessboard .markers .marker.marker-circle-warning{stroke:orange;stroke-width:3px;opacity:.4}.cm-chessboard .markers .marker.marker-circle-warning-filled{stroke:orange;fill:orange;stroke-width:3px;opacity:.4}.cm-chessboard .markers .marker.marker-circle-success{stroke:green;stroke-width:3px;opacity:.4}.cm-chessboard .markers .marker.marker-circle-success-filled{stroke:green;fill:green;stroke-width:3px;opacity:.4}.cm-chessboard .markers .marker.marker-square{fill:#000;opacity:.11}.cm-chessboard .markers .marker.marker-dot,.cm-chessboard .markers .marker.marker-bevel{fill:#000;opacity:.2}.cm-chessboard .markers .marker.cmb-last-move{fill:#ff0;opacity:.4}.cm-chessboard .markers .marker.cmb-check{fill:red;opacity:.65}.cm-chessboard .markers .marker.cmb-selected{fill:#1bcdff;opacity:.5}.cm-chessboard .markers .marker.cmb-dot{fill:#000;opacity:.2}.cm-chessboard .markers .marker.cmb-ring{stroke:#000;stroke-width:3px;fill:none;opacity:.25}.cm-chessboard .markers .marker.cmb-hover-turn{fill:#367636;opacity:.5}.cm-chessboard .markers .marker.cmb-hover-premove{fill:#b8ab93;opacity:.5}.cm-chessboard .markers .marker.cmb-premove{fill:red;opacity:.2}.cm-chessboard .markers .marker.cmb-cond-premove{fill:#5050ff;opacity:.55}
