:root{--bg:#f4f6f9;--surface:#fff;--raised:#fff;--sunken:#eaeef4;--border:#dbe1ea;--text:#131a24;--muted:#5c6878;--faint:#8c96a2;--accent:#2f6fe4;--accent-text:#fff;--link:#1d5bc8;--accent-soft:#e8f0fd;--ok:#1f7a43;--draw:#8a5a00;--danger:#b4342b;--warn:#8a6212;--warn-soft:#f8efd9;--ok-fill:#1f7a43;--draw-fill:#a06a05;--loss-fill:#b4342b;--on-fill:#fff;--eval-white:#eef2f6;--eval-black:#2a3138;--eval-midline:#8080808c;--scrim:#0a0e1480;--cover:#0d1421;--cover-scrim:#060a119e;--on-cover:#fff;--on-cover-muted:#ffffffdb;--cover-min:190px;--premove:#6b5cc4;--rank:#6d4fc4;--sq-coord:#101820;--sq-coord-halo:#fffffff2;--shadow:0 1px 2px #1018280f, 0 4px 12px #1018280d;--shadow-raised:0 4px 12px #1018281a, 0 12px 32px #10182814;--curve:cubic-bezier(.32, .72, 0, 1);--curve-spring:cubic-bezier(.34, 1.32, .64, 1);--fast:.12s;--mid:.18s;--slow:.24s;--ease:var(--fast) var(--curve);--ease-out:var(--slow) var(--curve);--lift:-2px;--rail:232px;--page:1200px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-pill:999px;--text-xs:11px;--text-sm:12px;--text-base:14px;--text-md:15px;--text-lg:18px;--text-xl:24px;--text-2xl:30px;--text-3xl:36px;--stat-sm:22px;--stat-md:28px;--stat-lg:36px;--weight-medium:500;--weight-semibold:600;--weight-bold:650;--icon-sm:14px;--icon-md:18px;--focus-ring:0 0 0 2px var(--bg), 0 0 0 4px var(--accent)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0b111c;--surface:#141d2b;--raised:#1b2636;--sunken:#101825;--border:#243247;--text:#e9eef6;--muted:#94a3b8;--faint:#7d8da3;--accent:#2f6fe4;--accent-text:#fff;--link:#6ea8fe;--accent-soft:#16243a;--ok:#4ade80;--draw:#fbbf24;--danger:#f87171;--warn:#d9a441;--warn-soft:#241d0f;--ok-fill:#15803d;--draw-fill:#a16207;--loss-fill:#c0392b;--on-fill:#fff;--eval-white:#eef2f6;--eval-black:#2a3138;--eval-midline:#8080808c;--scrim:#0a0e1480;--cover:#0d1421;--cover-scrim:#060a119e;--on-cover:#fff;--on-cover-muted:#ffffffdb;--premove:#9285e0;--rank:#a78bfa;--shadow:0 1px 2px #0006, 0 4px 14px #00000059;--shadow-raised:0 6px 18px #00000073, 0 16px 40px #0006}}:root[data-theme=light]{--bg:#f4f6f9;--surface:#fff;--raised:#fff;--sunken:#eaeef4;--border:#dbe1ea;--text:#131a24;--muted:#5c6878;--faint:#8c96a2;--accent:#2f6fe4;--accent-text:#fff;--link:#1d5bc8;--accent-soft:#e8f0fd;--ok:#1f7a43;--draw:#8a5a00;--danger:#b4342b;--warn:#8a6212;--warn-soft:#f8efd9;--ok-fill:#1f7a43;--draw-fill:#a06a05;--loss-fill:#b4342b;--on-fill:#fff;--eval-white:#eef2f6;--eval-black:#2a3138;--eval-midline:#8080808c;--scrim:#0a0e1480;--cover:#0d1421;--cover-scrim:#060a119e;--on-cover:#fff;--on-cover-muted:#ffffffdb;--premove:#6b5cc4;--rank:#6d4fc4;--shadow:0 1px 2px #1018280f, 0 4px 12px #1018280d;--shadow-raised:0 4px 12px #1018281a, 0 12px 32px #10182814}:root[data-theme=dark]{--bg:#0b111c;--surface:#141d2b;--raised:#1b2636;--sunken:#101825;--border:#243247;--text:#e9eef6;--muted:#94a3b8;--faint:#7d8da3;--accent:#2f6fe4;--accent-text:#fff;--link:#6ea8fe;--accent-soft:#16243a;--ok:#4ade80;--draw:#fbbf24;--danger:#f87171;--warn:#d9a441;--warn-soft:#241d0f;--ok-fill:#15803d;--draw-fill:#a16207;--loss-fill:#c0392b;--on-fill:#fff;--eval-white:#eef2f6;--eval-black:#2a3138;--eval-midline:#8080808c;--scrim:#0a0e1480;--cover:#0d1421;--cover-scrim:#060a119e;--on-cover:#fff;--on-cover-muted:#ffffffdb;--premove:#9285e0;--rank:#a78bfa;--shadow:0 1px 2px #0006, 0 4px 14px #00000059;--shadow-raised:0 6px 18px #00000073, 0 16px 40px #0006}:root,:root[data-board=slate]{--sq-light:#e2e9f0;--sq-dark:#6d8aa8}:root[data-board=ash]{--sq-light:#ecebe7;--sq-dark:#9d9a92}:root[data-board=ink]{--sq-light:#cdd3da;--sq-dark:#4a5560}:root[data-board=sand]{--sq-light:#e8d7b8;--sq-dark:#b08863}:root[data-board=moss]{--sq-light:#e3e8d5;--sq-dark:#7d956a}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}.conn{border:1px solid var(--border);background:var(--surface);color:var(--muted);border-radius:999px;flex-shrink:0;align-items:center;gap:6px;padding:4px 10px;font-size:12px;display:inline-flex}.conn-dot{background:var(--muted);width:7px;height:7px;transition:background var(--ease);border-radius:50%}.conn.open .conn-dot{background:var(--ok)}.conn.connecting .conn-dot{background:var(--warn)}.conn.closed .conn-dot{background:var(--danger)}.sr-only{clip:rect(0, 0, 0, 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.muted{color:var(--muted)}.small{font-size:var(--text-sm)}.card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:10px;padding:14px 16px}.card h2{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 10px;font-size:11px;font-weight:600}.board-host{min-width:0}.board-wrap{line-height:0;position:relative}.icon{color:inherit;flex:none;display:block}.cls-art{width:68%;height:68%}.board-arrows{pointer-events:none;z-index:3;position:absolute;inset:0}.board-coords{pointer-events:none;z-index:3;font-variant-numeric:tabular-nums;color:var(--sq-coord);text-shadow:0 1px 1px var(--sq-coord-halo), 0 0 3px var(--sq-coord-halo);font-weight:700;line-height:1;position:absolute;inset:0}.board-coord{position:absolute}.board-coord.rank{padding:4px 0 0 5px;left:0}.board-coord.file{text-align:right;padding:0 5px 4px 0;bottom:0}.board-row{gap:10px;width:100%;min-width:0;display:flex}.board-row .board-host{flex:auto}.eval-bar{border-radius:var(--radius-pill);background:var(--eval-black);border:1px solid var(--border);flex:none;width:26px;position:relative;overflow:hidden}.eval-fill{background:var(--eval-white);transition:height .28s cubic-bezier(.4,0,.2,1),width .28s cubic-bezier(.4,0,.2,1);position:absolute;bottom:0;left:0;right:0}.eval-bar.flipped .eval-fill{top:0;bottom:auto}.eval-midline{background:var(--eval-midline);height:1px;position:absolute;top:50%;left:0;right:0}.eval-label{text-align:center;font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-size:9px;font-weight:700;position:absolute;left:0;right:0}.eval-label.white{color:var(--eval-black);bottom:3px}.eval-label.black{color:var(--eval-white);top:3px}.eval-bar.flipped .eval-label.white{top:3px;bottom:auto}.eval-bar.flipped .eval-label.black{top:auto;bottom:3px}.eval-bar.thinking .eval-label{opacity:.45}@media (width<=560px){.board-row.with-eval{flex-direction:column}.board-row.with-eval .eval-bar{width:auto;height:16px!important}.board-row.with-eval .eval-fill{width:var(--eval-share,50%);top:0;bottom:0;right:auto;height:100%!important}.board-row.with-eval .eval-bar.flipped .eval-fill{left:auto;right:0}.board-row.with-eval .eval-midline{width:1px;height:auto;inset:0 auto 0 50%}.board-row.with-eval .eval-label{text-align:right;inset:50% 6px auto auto;transform:translateY(-50%)}.board-row.with-eval .eval-label.white{text-align:left;left:6px;right:auto}.board-row.with-eval .eval-bar.flipped .eval-label.white{text-align:right;top:50%;left:auto;right:6px}.board-row.with-eval .eval-bar.flipped .eval-label.black{text-align:left;inset:50% auto auto 6px}}@media (prefers-reduced-motion:reduce){.eval-fill{transition:none}}.card-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.card-head h2{margin:0}.switch{cursor:pointer;align-items:center;display:inline-flex}.switch input{opacity:0;width:0;height:0;position:absolute}.switch-track{background:var(--border);width:34px;height:19px;transition:background var(--ease);border-radius:999px;padding:2px;display:block}.switch-thumb{background:var(--surface);width:15px;height:15px;box-shadow:var(--shadow);transition:transform var(--ease);border-radius:50%;display:block}.switch input:checked+.switch-track{background:var(--accent)}.switch input:checked+.switch-track .switch-thumb{transform:translate(15px)}.switch input:focus-visible+.switch-track{outline:2px solid var(--accent);outline-offset:2px}.analysis-headline{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.analysis-score{font-variant-numeric:tabular-nums;letter-spacing:-.03em;font-size:26px;font-weight:700}.analysis-score.white,.analysis-score.black{color:var(--text)}.analysis-score.level{color:var(--muted)}.analysis-score.mate{color:var(--danger)}.analysis-meta{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:11.5px}.analysis-live{color:var(--accent)}.analysis-best,.analysis-line{align-items:baseline;gap:8px;margin-top:10px;display:flex}.analysis-line{align-items:flex-start}.analysis-label{text-transform:uppercase;letter-spacing:.06em;width:30px;color:var(--muted);flex:none;font-size:10.5px;font-weight:600}.analysis-move{background:color-mix(in srgb, var(--accent) 16%, transparent);border-radius:5px;padding:1px 7px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:15px;font-weight:600}button.tiny{flex:none;min-width:0;height:22px;margin-left:auto;padding:0 9px;font-size:11.5px}.pv{color:var(--muted);word-spacing:.05em;margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;line-height:1.6}.analysis-progress{background:var(--bg);color:var(--muted);text-align:center;border-radius:6px;margin-top:12px;padding:6px 10px;font-size:11.5px;position:relative;overflow:hidden}.analysis-progress span{position:relative}.you-tag{background:var(--bg);border:1px solid var(--border);text-transform:uppercase;letter-spacing:.06em;border-radius:999px;padding:1px 6px;font-size:10px;font-weight:600}@keyframes urgent-pulse{0%,to{box-shadow:var(--shadow)}50%{box-shadow:0 0 0 3px color-mix(in srgb, var(--danger) 22%, transparent)}}.captured{align-items:baseline;gap:1px;min-width:0;display:flex;overflow:hidden}.taken{color:var(--muted);opacity:.75;font-size:16px;line-height:1}.advantage{font-variant-numeric:tabular-nums;color:var(--text);margin-left:6px;font-size:12px;font-weight:600}.thinking{color:var(--muted);margin:10px 0 0;font-size:13px}.thinking:after{content:"";vertical-align:middle;background:currentColor;border-radius:50%;width:5px;height:5px;margin-left:6px;animation:1.1s ease-in-out infinite pulse;display:inline-block}@keyframes pulse{0%,to{opacity:.25}50%{opacity:1}}.facts{border-top:1px solid var(--border);grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0 0;padding-top:12px;display:grid}.facts div{min-width:0}.facts dt{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.facts dd{font-variant-numeric:tabular-nums;margin:2px 0 0;font-size:16px}.field{margin-bottom:12px;display:block}.field:last-of-type{margin-bottom:0}.field span{color:var(--muted);margin-bottom:5px;font-size:12.5px;font-weight:500;display:block}.field select,.field input[type=range]{width:100%}.field select,.field input:not([type]),.field input[type=text],.field input[type=email],.field input[type=password],.field input[type=search],.field input[type=url],.field input[type=number],.input,.search{border:1px solid var(--border);background:var(--bg);width:100%;height:34px;color:var(--text);transition:border-color var(--ease);border-radius:7px;padding:0 9px;font-family:inherit;font-size:14px}input[type=search]{appearance:none}.field select:hover,.field input:hover:not(:disabled),.input:hover:not(:disabled),.search:hover:not(:disabled){border-color:color-mix(in srgb, var(--accent) 50%, var(--border))}.field input:disabled,.field select:disabled,.field textarea:disabled{background:var(--sunken);color:var(--muted);cursor:not-allowed}.field select:focus-visible,.field input:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.buttons{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.card h2+.buttons{margin-top:0}button{border:1px solid var(--border);background:var(--surface);min-width:84px;height:34px;color:var(--text);cursor:pointer;transition:background var(--ease), border-color var(--ease), color var(--ease), transform var(--ease);border-radius:7px;flex:1;padding:0 12px;font-family:inherit;font-size:13.5px;font-weight:500}button:hover:not(:disabled){border-color:color-mix(in srgb, var(--accent) 60%, var(--border));background:color-mix(in srgb, var(--accent) 7%, var(--surface))}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text);font-weight:600}button.primary:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 86%, #000);border-color:color-mix(in srgb, var(--accent) 86%, #000)}button.ghost{color:var(--muted);background:0 0}button.ghost:hover:not(:disabled){color:var(--text)}button.danger{color:var(--danger)}button.danger:hover:not(:disabled){border-color:var(--danger);background:color-mix(in srgb, var(--danger) 10%, var(--surface))}button.confirming{background:var(--accent);border-color:var(--accent);color:var(--accent-text);font-weight:600}button.danger.confirming{background:var(--danger);border-color:var(--danger);color:var(--accent-text)}button.confirming:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 86%, #000)}button.danger.confirming:hover:not(:disabled){background:color-mix(in srgb, var(--danger) 86%, #000);border-color:color-mix(in srgb, var(--danger) 86%, #000)}.presets{grid-template-columns:repeat(auto-fit,minmax(58px,1fr));gap:6px;display:grid}button.preset{flex:none;min-width:0;height:30px;padding:0 4px;font-size:12px;font-weight:500}button.preset.selected{background:var(--accent);border-color:var(--accent);color:var(--accent-text);font-weight:600}.split{grid-template-columns:1fr 1fr;gap:10px;display:grid}.moves-card{flex-direction:column;min-height:0;display:flex}.moves{overscroll-behavior:contain;font-variant-numeric:tabular-nums;scrollbar-width:thin;max-height:244px;margin:0;padding:0;list-style:none;position:relative;overflow-y:auto}.moves li{border-radius:5px;grid-template-columns:26px 1fr 1fr;align-items:center;gap:6px;padding:2px 3px;font-size:13.5px;display:grid}.moves li:nth-child(odd){background:var(--bg)}.moves .num{color:var(--muted);text-align:right;padding-right:2px;font-size:12px}.moves .ply{text-align:left;min-width:0;height:22px;color:inherit;cursor:pointer;transition:background var(--ease), color var(--ease);background:0 0;border:0;border-radius:4px;flex:none;padding:0 6px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;font-weight:500}.moves button.ply:hover{background:color-mix(in srgb, var(--accent) 16%, transparent);border-color:#0000;transform:none}.moves button.ply.current{background:var(--accent);color:var(--accent-text);box-shadow:inset 2px 0 0 color-mix(in srgb, var(--accent-text) 60%, transparent);font-weight:700}.moves.with-evals .ply{justify-content:space-between;align-items:baseline;gap:5px;height:auto;padding:2px 6px;display:flex}.ply-eval{color:var(--muted);font-variant-numeric:tabular-nums;flex:none;font-size:10.5px;font-weight:500}.moves button.ply.current .ply-eval{color:var(--accent-text);opacity:.85}.moves button.ply.inaccuracy{box-shadow:inset 2px 0 0 var(--tone-inaccuracy)}.moves button.ply.mistake{box-shadow:inset 2px 0 0 var(--tone-mistake)}.moves button.ply.blunder{box-shadow:inset 2px 0 0 var(--danger)}.moves button.ply.current.inaccuracy,.moves button.ply.current.mistake,.moves button.ply.current.blunder{box-shadow:inset 3px 0 0 var(--accent-text)}.footnote{border-top:1px solid var(--border);margin:10px 0 0;padding-top:9px;font-size:11.5px}kbd{border:1px solid var(--border);background:var(--surface);color:var(--text);border-bottom-width:2px;border-radius:4px;padding:1px 5px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:10.5px}.review-bar{justify-content:center;align-items:center;gap:6px;display:flex}button.icon{min-width:36px;height:30px;color:var(--muted);flex:none;padding:0;font-size:12px;line-height:1}button.icon:hover:not(:disabled){color:var(--text)}.review-position{text-align:center;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;text-overflow:ellipsis;flex:auto;font-size:12.5px;font-weight:500;overflow:hidden}.board-note{text-align:center;border:1px solid;border-radius:8px;margin:0;padding:7px 12px;font-size:12.5px}.board-note.reviewing{background:color-mix(in srgb, var(--warn) 14%, var(--surface));border-color:color-mix(in srgb, var(--warn) 45%, transparent)}.board-note.premoving{background:color-mix(in srgb, var(--premove) 14%, var(--surface));border-color:color-mix(in srgb, var(--premove) 45%, transparent)}.empty{color:var(--muted);margin:0;font-size:13px}.avatar{object-fit:cover;background:var(--border);border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.avatar.generated{color:var(--on-fill);letter-spacing:.02em;-webkit-user-select:none;user-select:none;font-weight:700}.account-head{align-items:center;gap:11px;margin-bottom:14px;display:flex}.profile-name{flex-direction:column;gap:2px;min-width:0;display:flex}.profile-name strong{text-overflow:ellipsis;white-space:nowrap;font-size:15px;overflow:hidden}.profile-record{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.profile-rating{flex-direction:column;align-items:flex-end;gap:1px;margin-left:auto;line-height:1.15;display:flex}.profile-rating strong{font-variant-numeric:tabular-nums;font-size:19px}.profile-rating span{color:var(--muted);font-size:11px}.profile-chart{flex-direction:column;gap:2px;margin-top:10px;display:flex}.profile-peak{color:var(--muted);font-variant-numeric:tabular-nums;font-size:11px}.sparkline{width:100%;height:auto;display:block;overflow:visible}.sparkline-line{fill:none;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round}.sparkline-area{stroke:none;opacity:.13}.sparkline.rising .sparkline-line,.sparkline.rising .sparkline-now{stroke:var(--ok)}.sparkline.rising .sparkline-area,.sparkline.rising .sparkline-now{fill:var(--ok)}.sparkline.falling .sparkline-line,.sparkline.falling .sparkline-now{stroke:var(--danger)}.sparkline.falling .sparkline-area,.sparkline.falling .sparkline-now{fill:var(--danger)}.history-card{min-height:0}.history{scrollbar-width:thin;max-height:240px;margin:0;padding:0;list-style:none;overflow-y:auto}.history-row{text-align:left;width:100%;min-width:0;height:auto;color:var(--text);background:0 0;border:0;border-radius:6px;align-items:center;gap:10px;padding:7px 6px;text-decoration:none;display:flex;position:relative}.history-row>.row-link{border-radius:6px;position:absolute;inset:0}.history-row>.row-link:after{content:"";position:absolute;inset:0}.history-row:hover{background:var(--bg);border-color:#0000;transform:none}.history-row>.row-link:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.history-row .row-inner-link{z-index:1;color:inherit;text-decoration:none;position:relative}.history-row .row-inner-link:hover,.history-row .row-inner-link:focus-visible{color:var(--accent);text-decoration:underline}.outcome{width:20px;height:20px;color:var(--on-fill);border-radius:5px;flex:none;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:inline-flex}.outcome.win{background:var(--ok)}.outcome.loss{background:var(--danger)}.outcome.draw{background:var(--muted)}.history-detail{flex-direction:column;gap:1px;min-width:0;display:flex}.history-opponent{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.history-meta{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.history-elo{color:var(--muted);font-variant-numeric:tabular-nums}.history-delta{font-variant-numeric:tabular-nums;flex:none;margin-left:auto;padding-left:8px;font-size:12px;font-weight:600}.history-delta.up{color:var(--ok)}.history-delta.down{color:var(--danger)}.leaderboard{scrollbar-width:thin;max-height:260px;margin:0;padding:0;list-style:none;overflow-y:auto}.leaderboard-row{border-radius:6px;align-items:center;gap:9px;min-width:0;padding:6px;display:flex}.leaderboard-row.you{background:var(--bg);box-shadow:inset 2px 0 0 var(--accent)}.leaderboard-rank{color:var(--muted);text-align:right;font-variant-numeric:tabular-nums;flex:0 0 20px;font-size:12px;font-weight:600}.leaderboard-detail{flex-direction:column;gap:1px;min-width:0;display:flex}.leaderboard-name{text-overflow:ellipsis;white-space:nowrap;color:inherit;font-size:13px;text-decoration:none;overflow:hidden}.leaderboard-name:hover{text-decoration:underline}.leaderboard-rating{font-variant-numeric:tabular-nums;margin-left:auto;padding-left:8px;font-size:14px;font-weight:600}.toasts{z-index:20;pointer-events:none;flex-direction:column;align-items:flex-end;gap:8px;display:flex;position:fixed;bottom:20px;right:20px}.toast{border:1px solid var(--border);border-left:3px solid var(--muted);background:var(--surface);min-width:0;max-width:min(360px,100vw - 40px);height:auto;box-shadow:var(--shadow-raised);text-align:left;color:var(--text);pointer-events:auto;border-radius:9px;flex:none;padding:10px 14px;font-size:13px;font-weight:500;line-height:1.45;animation:.2s cubic-bezier(.2,.8,.3,1) toast-in}.toast:hover{background:var(--surface);border-color:var(--border)}.toast.error{border-left-color:var(--danger)}.toast.success{border-left-color:var(--ok)}.toast.info{border-left-color:var(--accent)}@keyframes toast-in{0%{opacity:0;transform:translateY(10px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.overlay{background:var(--scrim);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:10;place-items:center;padding:24px;animation:.16s ease-out fade-in;display:grid;position:fixed;inset:0}.dialog{text-align:center;width:min(370px,100%);padding:22px;animation:.18s ease-out rise}.dialog .result{letter-spacing:-.025em;text-transform:none;color:var(--text);margin:0 0 5px;font-size:30px;font-weight:700}.dialog .reason{color:var(--muted);margin:0 0 16px;font-size:14px}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.hint{color:var(--muted);margin:-2px 0 10px;font-size:12px;line-height:1.5}.notice{color:var(--accent);margin:10px 0 0;font-size:13px}.offer{border:1px solid var(--accent);background:color-mix(in srgb, var(--accent) 8%, var(--surface));border-radius:8px;margin-top:12px;padding:12px}.offer p{margin:0;font-size:13px}@media (prefers-reduced-motion:reduce){*,:after{transition:none!important;animation:none!important}button:active:not(:disabled){transform:none}.thinking:after{opacity:.7}}.player{border:1px solid var(--border);background:var(--surface);transition:border-color var(--ease), background var(--ease);border-radius:10px;flex:none;align-items:center;gap:11px;padding:8px 14px;display:flex}.player.active{border-color:var(--accent)}.player-id{flex-direction:column;gap:1px;min-width:0;line-height:1.25;display:flex}.player-name{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:7px;font-size:14px;font-weight:600;display:flex;overflow:hidden}.player-sub{color:var(--muted);align-items:center;gap:8px;min-height:15px;font-size:11.5px;display:flex}.player-rating{font-variant-numeric:tabular-nums}.taken{letter-spacing:-1px;opacity:.75;font-size:13px;line-height:1}.advantage{font-variant-numeric:tabular-nums;font-weight:600}.player-thinking{color:var(--accent)}.player-clock{background:var(--sunken);font-variant-numeric:tabular-nums;letter-spacing:-.01em;border-radius:7px;margin-left:auto;padding:4px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:21px;font-weight:600}.player.low .player-clock{color:var(--warn)}.player.urgent .player-clock{color:var(--danger)}.player.active .player-clock{background:var(--accent);color:var(--accent-text)}.player.active.low .player-clock{background:var(--warn);color:var(--on-fill)}.player.active.urgent .player-clock{background:var(--danger);color:var(--on-fill)}.you-tag{background:var(--sunken);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border-radius:4px;padding:1px 6px;font-size:9.5px;font-weight:600}.button{border:1px solid var(--border);background:var(--surface);height:36px;color:var(--text);cursor:pointer;transition:background var(--ease), border-color var(--ease), transform var(--ease);border-radius:8px;justify-content:center;align-items:center;gap:7px;padding:0 15px;font-family:inherit;font-size:13.5px;font-weight:500;text-decoration:none;display:inline-flex}.button:hover{background:var(--sunken);transform:translateY(-1px)}.button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text);font-weight:600}.button.primary:hover{background:var(--accent);filter:brightness(1.06)}.loading-page{min-height:60vh;color:var(--muted);place-items:center;font-size:14px;display:grid}.empty-state{text-align:center;flex-direction:column;align-items:center;gap:6px;padding:40px 24px;display:flex}.chess-art{width:88px;height:88px;margin-bottom:var(--space-2)}.chess-art-disc{fill:var(--sunken)}.chess-art-ring{fill:none;stroke:var(--border);stroke-width:1.5px;stroke-dasharray:4 7}.chess-art-mark{color:var(--faint)}.empty-state h2{margin:0;font-size:18px}.empty-state p{color:var(--muted);margin:0;font-size:13.5px}.empty-state .buttons{justify-content:center;margin-top:12px}.form-error{border-left:3px solid var(--danger);background:var(--sunken);color:var(--text);border-radius:7px;margin:12px 0 0;padding:9px 12px;font-size:13px}.offer-card{border-left:3px solid var(--accent)}.offer-card p{margin:0 0 10px;font-size:13.5px}.result-mark{border:1px solid var(--border);border-radius:50%;place-items:center;width:44px;height:44px;margin:0 auto 14px;font-size:20px;display:grid}.dialog.won .result-mark{border-color:var(--ok);color:var(--ok)}.dialog.lost .result-mark{border-color:var(--danger);color:var(--danger)}.dialog .result{text-align:center;letter-spacing:-.02em;margin:0;font-size:25px}.dialog .reason{text-align:center;color:var(--muted);margin:4px 0 0;font-size:13.5px}.result-rating{border-top:1px solid var(--border);border-bottom:1px solid var(--border);justify-content:center;align-items:baseline;gap:9px;margin:18px 0 4px;padding:14px 0;display:flex}.result-rating strong{font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-size:27px}.result-rating .delta{font-size:15px;font-weight:600}.identity{border:1px solid var(--border);border-radius:var(--radius-md);margin:14px 0 4px;overflow:hidden}.identity-players{flex-direction:column;display:flex}.identity-side{text-align:left;align-items:center;gap:10px;padding:10px 12px;display:flex}.identity-side+.identity-side{border-top:1px solid var(--border)}.identity-side.you{background:var(--accent-soft)}.identity-name{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.identity-name strong{text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.identity-name span{color:var(--muted);font-variant-numeric:tabular-nums;font-size:11.5px}.identity-score{font-variant-numeric:tabular-nums;flex:none;font-size:17px;font-weight:700}.identity-facts{border-top:1px solid var(--border);background:var(--sunken);grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:2px 10px;margin:0;padding:10px 12px;display:grid}.identity-facts dt{letter-spacing:.07em;text-transform:uppercase;color:var(--faint);font-size:10.5px}.identity-facts dd{font-variant-numeric:tabular-nums;margin:1px 0 0;font-size:13px}.dialog .buttons{flex-direction:column;margin-top:18px}.dialog .buttons .primary,.dialog .buttons .button{width:100%}.dialog-close{width:100%;margin-top:8px}@media (width<=900px){.overlay{align-items:flex-end;padding:0}.dialog{border-radius:16px 16px 0 0;width:100%;max-width:none}.player-clock{font-size:18px}}:root{--tone-brilliant:#17a2a2;--tone-great:#2f7fd0;--tone-best:#3c9a5f;--tone-excellent:#5aa469;--tone-good:#7aa87f;--tone-only:#4a8fb0;--tone-okay:#8a929c;--tone-inaccuracy:#c8892f;--tone-mistake:#d9762f;--tone-missed:#cf5f52;--tone-blunder:#c33d2e;--tone-book:#8a7f6a;--tone-castle:#6f7f95;--tone-zugzwang:#8b6fa8;--tone-mate:#45505e;--tone-stalemate:#77808c;--tone-time:#8a7f6a;--tone-resign:#77808c}@media (prefers-color-scheme:dark){:root{--tone-brilliant:#34c8c8;--tone-great:#5b9fe0;--tone-best:#57bd7c;--tone-excellent:#6dc086;--tone-good:#8fbf96;--tone-only:#63aacb;--tone-okay:#98a1ac;--tone-inaccuracy:#dda548;--tone-mistake:#e8914b;--tone-missed:#e5796b;--tone-blunder:#e0685e;--tone-book:#a89a80;--tone-castle:#8b9bb1;--tone-zugzwang:#a98cc4;--tone-mate:#9aa4b2;--tone-stalemate:#8e97a3;--tone-time:#a89a80;--tone-resign:#8e97a3}}.tone-brilliant{--tone:var(--tone-brilliant)}.tone-great{--tone:var(--tone-great)}.tone-best{--tone:var(--tone-best)}.tone-excellent{--tone:var(--tone-excellent)}.tone-good{--tone:var(--tone-good)}.tone-only{--tone:var(--tone-only)}.tone-okay{--tone:var(--tone-okay)}.tone-inaccuracy{--tone:var(--tone-inaccuracy)}.tone-mistake{--tone:var(--tone-mistake)}.tone-missed{--tone:var(--tone-missed)}.tone-blunder{--tone:var(--tone-blunder)}.tone-book{--tone:var(--tone-book)}.tone-castle{--tone:var(--tone-castle)}.tone-zugzwang{--tone:var(--tone-zugzwang)}.tone-mate{--tone:var(--tone-mate)}.tone-stalemate{--tone:var(--tone-stalemate)}.tone-time{--tone:var(--tone-time)}.tone-resign{--tone:var(--tone-resign)}.cls{background:var(--tone);color:#fff;letter-spacing:-.02em;font-variant-numeric:tabular-nums;border-radius:999px;flex:none;justify-content:center;align-items:center;font-weight:700;line-height:1;display:inline-flex}.cls[data-group=state]{color:var(--tone);box-shadow:inset 0 0 0 1.5px var(--tone);background:0 0}.cls-sm{width:15px;height:15px;font-size:9px}.cls-md{width:20px;height:20px;font-size:11px}.cls-lg{width:28px;height:28px;font-size:15px}.cls-chip{border-radius:var(--radius-pill);background:color-mix(in srgb, var(--tone) 12%, transparent);color:var(--text);align-items:center;gap:6px;padding:4px 10px 4px 5px;font-size:12px;display:inline-flex}.cls-chip-label{color:var(--muted)}.cls-chip-count{font-variant-numeric:tabular-nums;color:var(--tone)}.board-badges{pointer-events:none;z-index:3;position:absolute;inset:0}.board-badge{background:var(--tone);color:#fff;box-shadow:0 0 0 2px var(--surface), 0 1px 3px #00000059;border-radius:999px;justify-content:center;align-items:center;font-weight:700;line-height:1;animation:.16s cubic-bezier(.34,1.4,.64,1) badge-in;display:flex;position:absolute}@keyframes badge-in{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.board-badge{animation:none}}.accuracy-heads{gap:var(--space-2);grid-template-columns:1fr 1fr;display:grid}.accuracy-side{padding:var(--space-3);border-radius:var(--radius-md);background:var(--sunken);flex-direction:column;gap:2px;display:flex}.accuracy-side.primary{background:var(--accent-soft)}.accuracy-label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:11px}.accuracy-value{font-variant-numeric:tabular-nums;font-size:22px;line-height:1.1}.accuracy-word{color:var(--muted);font-size:12px}.accuracy-breakdown{margin-top:var(--space-3);flex-wrap:wrap;gap:6px;display:flex}.accuracy.compact .accuracy-heads{gap:var(--space-2)}.analysis-progress{margin-top:var(--space-3);flex-direction:column;gap:6px;display:flex}.progress-track{background:var(--sunken);border-radius:999px;height:4px;overflow:hidden}.progress-fill{background:var(--accent);border-radius:999px;height:100%;transition:width .4s cubic-bezier(.4,0,.2,1)}.progress-text{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.analysis-progress.failed{color:var(--muted);font-size:12px}.moves .ply[class*=tone-]{background:color-mix(in srgb, var(--tone) 9%, transparent)}.moves .ply[class*=tone-] .ply-san{color:var(--text)}.moves .ply.current[class*=tone-]{background:color-mix(in srgb, var(--tone) 20%, transparent);box-shadow:inset 0 0 0 1px var(--tone)}.shell{grid-template-columns:var(--rail) minmax(0, 1fr);min-height:100vh;display:grid}.rail{border-right:1px solid var(--border);background:var(--surface);flex-direction:column;align-self:start;gap:6px;height:100vh;padding:18px 14px;display:flex;position:sticky;top:0}.rail-brand{color:var(--text);letter-spacing:-.02em;align-items:center;gap:10px;padding:8px 10px 16px;font-size:17px;font-weight:700;text-decoration:none;display:flex}.rail-mark{background:var(--accent);width:30px;height:30px;color:var(--accent-text);border-radius:8px;flex:none;place-items:center;font-size:17px;line-height:1;display:grid}.rail-nav{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.rail-link{color:var(--muted);transition:background var(--ease), color var(--ease);border-radius:8px;align-items:center;gap:11px;padding:9px 11px;font-size:14px;font-weight:500;text-decoration:none;display:flex}.rail-link:hover{background:var(--sunken);color:var(--text)}.rail-link.active{background:var(--accent-soft);color:var(--text);font-weight:600}.rail-link:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.rail-icon{opacity:.85}.rail-foot{flex-direction:column;gap:8px;margin-top:auto;display:flex}.account{position:relative}.account-button{border:1px solid var(--border);background:var(--bg);text-align:left;width:100%;height:auto;color:var(--text);border-radius:9px;align-items:center;gap:9px;padding:8px 10px;display:flex}.account-button:hover{background:var(--sunken);transform:none}.account-name{flex-direction:column;gap:1px;min-width:0;line-height:1.25;display:flex}.account-name strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.account-name span{color:var(--muted);font-variant-numeric:tabular-nums;font-size:11px}.account-caret{color:var(--faint);margin-left:auto}.account-menu{z-index:30;border:1px solid var(--border);background:var(--raised);box-shadow:var(--shadow);border-radius:9px;flex-direction:column;padding:5px;display:flex;position:absolute;bottom:calc(100% + 6px);left:0;right:0}.account-menu a,.account-menu button{text-align:left;height:auto;color:var(--text);background:0 0;border:0;border-radius:6px;padding:8px 10px;font-size:13px;text-decoration:none}.account-menu a:hover,.account-menu button:hover{background:var(--sunken);transform:none}.account-menu hr{border:0;border-top:1px solid var(--border);margin:4px 6px}.account-menu .signout{color:var(--danger)}.page{min-width:0;padding:var(--space-5) var(--space-6) var(--space-6)}.page-inner{max-width:var(--page);margin:0 auto}.page.bare{padding:0}.page-head h1{letter-spacing:-.025em;margin:0;font-size:30px;line-height:1.15}.page-head p{color:var(--muted);margin:5px 0 0;font-size:14px}.page-head-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.page-head-actions{flex-shrink:0;gap:8px;display:flex}.page-head-actions button,.page-head-actions .button{white-space:nowrap;flex:none;min-width:0}.tabs{display:none}@media (width<=900px){.shell{grid-template-columns:minmax(0,1fr)}.rail{display:none}.page{padding:20px 16px 84px}.tabs{z-index:25;border-top:1px solid var(--border);background:var(--surface);padding-bottom:env(safe-area-inset-bottom);grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.shell.immersive .tabs{display:none}.tab{color:var(--muted);flex-direction:column;align-items:center;gap:2px;padding:9px 0 8px;font-size:10.5px;font-weight:500;text-decoration:none;display:flex}.tab-icon{font-size:17px;line-height:1}.tab.active{color:var(--accent)}}@media (width>=901px) and (width<=1180px){.shell{grid-template-columns:62px minmax(0,1fr)}.rail-link span:not(.rail-icon),.rail-brand span,.account-name,.account-caret{display:none}.rail-link span.nav-count{min-width:16px;margin-left:0;padding:0 4px;font-size:10px;line-height:16px;display:block;position:absolute;top:3px;right:7px}.rail-link,.rail-brand,.account-button{justify-content:center;padding-left:0;padding-right:0;position:relative}.account-menu{width:190px;left:0;right:auto}.page{padding:26px 22px 80px}}.friends-page,.profile-page{gap:var(--space-3);flex-direction:column;display:flex}.player-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.player-row{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-2) 0;border-bottom:1px solid var(--border);display:flex}.player-row:last-child{border-bottom:none}.player-identity{align-items:center;gap:var(--space-3);min-width:0;color:inherit;flex:1;text-decoration:none;display:flex}.player-identity:hover .player-name{text-decoration:underline}.player-text{flex-direction:column;gap:2px;min-width:0;display:flex}.player-name{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.player-meta{align-items:center;gap:var(--space-1);font-size:var(--text-sm);color:var(--muted);display:flex}.player-actions{align-items:center;gap:var(--space-1);flex-shrink:0;display:flex}.presence{white-space:nowrap;align-items:center;gap:5px;display:inline-flex}.presence-dot{background:var(--muted);border-radius:50%;flex-shrink:0;width:8px;height:8px}.presence-online .presence-dot{background:var(--tone-best)}.presence-in_game .presence-dot{background:var(--tone-mistake)}.presence-offline .presence-dot{background:color-mix(in srgb, var(--muted) 60%, transparent)}.pill{font-size:var(--text-sm);color:var(--muted);padding:var(--space-1) var(--space-2);border-radius:var(--radius-pill);background:var(--sunken);white-space:nowrap}.profile-identity{align-items:center;gap:var(--space-3);display:flex}.profile-summary{min-width:0}.profile-summary h2{overflow-wrap:anywhere;margin:0 0 2px}.profile-line{align-items:center;gap:var(--space-1);margin:0 0 2px;display:flex}.profile-actions{gap:var(--space-2);margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--border);flex-wrap:wrap;display:flex}.button.danger{color:var(--tone-blunder);border-color:color-mix(in srgb, var(--tone-blunder) 35%, var(--border))}@media (width<=560px){.player-row{align-items:stretch;gap:var(--space-2);flex-direction:column}.player-actions{justify-content:flex-end}}.anonymous-player{color:var(--muted);cursor:default;font-style:italic}.grid{gap:16px;display:grid}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.split-page{grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:16px;display:grid}.stack{flex-direction:column;gap:16px;display:flex}.section-label{letter-spacing:.09em;text-transform:uppercase;color:var(--faint);margin:0 0 10px;font-size:11px;font-weight:600}.card-link-head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:12px;display:flex}.card-link-head h2{margin:0}.textlink{color:var(--accent);font-size:12.5px;font-weight:500;text-decoration:none}.textlink:hover{text-decoration:underline}.placeholder{border:1px dashed var(--border);background:var(--sunken);border-radius:10px;padding:16px 18px}.placeholder-head{align-items:center;gap:9px;margin-bottom:4px;display:flex}.placeholder-head strong{font-size:14px}.badge{background:var(--warn-soft);color:var(--warn);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;border-radius:5px;align-items:center;gap:5px;padding:2px 8px;font-size:10.5px;font-weight:600;display:inline-flex}.placeholder p{color:var(--muted);margin:0;font-size:12.5px;line-height:1.5}.greeting{justify-content:space-between;align-items:flex-end;gap:var(--space-5);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.greeting h1{letter-spacing:-.025em;margin:0;font-size:30px}.greeting p{color:var(--muted);margin:5px 0 0;font-size:14px}.stat-row{gap:26px;display:flex}.stat{flex-direction:column;align-items:flex-end;line-height:1.15;display:flex}.stat b{font-variant-numeric:tabular-nums;font-size:22px}.stat span{letter-spacing:.08em;text-transform:uppercase;color:var(--faint);font-size:10.5px}.play-hub{margin-bottom:var(--space-4)}.play-hub-head{margin-bottom:12px}.play-hub-head h2{letter-spacing:-.01em;margin:0;font-size:19px}.modes{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.mode{align-items:center;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);height:auto;min-height:0;color:inherit;text-align:left;transition:border-color var(--ease), transform var(--ease), box-shadow var(--ease);text-decoration:none;display:flex}.mode:hover{border-color:var(--accent);box-shadow:var(--shadow);transform:translateY(-1px)}.mode:disabled{opacity:.7;transform:none}.mode-icon{color:var(--accent);flex:none}.mode-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.mode strong{letter-spacing:-.01em;font-size:16px}.mode-text span{color:var(--muted);font-size:12.5px;line-height:1.45}.mode-lead{font-weight:500}.mode-go{color:var(--faint);opacity:0;transition:opacity var(--ease);flex:none}.mode:hover .mode-go{opacity:1}.mode-hero{background:var(--accent);border-color:var(--accent);grid-column:1/-1;min-height:0;padding:20px}.mode-hero:hover{border-color:var(--accent)}.mode-hero .mode-icon,.mode-hero strong,.mode-hero .mode-go{color:var(--accent-text)}.mode-hero strong{font-size:18px}.mode-hero .mode-text span{color:var(--accent-text);opacity:.85}.mode-hero .mode-go{opacity:.7}.mode-hero:hover .mode-go{opacity:1}.mode-terms{font-variant-numeric:tabular-nums;font-weight:600}.setup-page{grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:16px;display:grid}.tc-groups{gap:var(--space-2);flex-direction:column;display:flex}.tc-group{align-items:center;gap:var(--space-3);grid-template-columns:68px minmax(0,1fr);display:grid}.tc-group-name{align-items:center;gap:var(--space-2);font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--muted);display:flex}.tc-group-mark{opacity:.8}.tc-row{gap:var(--space-2);flex-wrap:wrap;display:flex}.tc{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);letter-spacing:-.01em;white-space:nowrap;height:auto;padding:10px 14px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:14px}.tc:hover{border-color:var(--accent)}.tc.selected{border-color:var(--accent);background:var(--accent-soft);font-weight:600}.tc-custom{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--sunken);margin-top:14px;padding:14px}.tc-custom-fields{flex-wrap:wrap;gap:10px;display:flex}.tc-custom .field{flex:110px;max-width:130px;margin:0}.tc-custom .hint{margin:10px 0 0}.choice{flex-direction:column;align-items:flex-start;gap:8px;display:flex}.choice-note{color:var(--muted);margin:0;font-size:12.5px}.who{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);flex-direction:column;gap:8px;padding:16px;display:flex;position:sticky;top:18px}.who-terms{color:var(--muted);flex-wrap:wrap;align-items:baseline;gap:8px;margin:0 0 6px;font-size:12.5px;display:flex}.who-terms strong{color:var(--text);font-variant-numeric:tabular-nums;font-size:16px}.who-option{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);width:100%;height:auto;color:inherit;text-align:left;transition:border-color var(--ease), background var(--ease);align-items:center;gap:10px;padding:13px 14px;text-decoration:none;display:flex}.who-option:hover:not(:disabled){border-color:var(--accent);background:var(--accent-soft)}.who-option:disabled{opacity:.55}.who-option:first-of-type{border-color:var(--accent)}.who-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.who-text strong{font-size:14.5px}.who-text span{color:var(--muted);font-size:12px;line-height:1.4}.who-go{color:var(--faint);flex:none}.coach-lead{color:var(--muted);margin:0 0 14px;font-size:13.5px;line-height:1.55}.coach-help{flex-direction:column;display:flex}.coach-rules{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.coach-rules li{border-left:2px solid var(--border);flex-direction:column;gap:3px;padding-left:12px;display:flex}.coach-rules strong{font-size:13.5px}.coach-rules span{color:var(--muted);font-size:12.5px;line-height:1.5}.coach-start{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);flex-direction:column;gap:10px;padding:16px;display:flex;position:sticky;top:18px}.coach-count{color:var(--muted);margin:0;font-size:13px}.coach-count strong{color:var(--text);font-size:20px}.coach-start .hint{text-align:center;margin:0}.level-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;display:grid}.level{border:1px solid var(--border);background:var(--surface);border-radius:10px;flex-direction:column;align-items:center;gap:2px;height:auto;padding:14px 8px;display:flex}.level b{font-size:14px}.level span{color:var(--muted);font-variant-numeric:tabular-nums;font-size:11px}.level.selected{border-color:var(--accent);background:var(--accent-soft)}.colour-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.bot-preview{flex-direction:column;gap:12px;display:flex;position:sticky;top:22px}.bot-preview-board{border:1px solid var(--border);background:var(--surface);border-radius:12px;padding:12px}.bot-summary{color:var(--muted);font-variant-numeric:tabular-nums;justify-content:space-between;gap:10px;font-size:12px;display:flex}.advanced summary{align-items:center;gap:var(--space-2);cursor:pointer;color:var(--muted);padding:10px 0;font-size:13px;font-weight:600;list-style:none;display:flex}.detail-note{font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.06em;text-transform:uppercase;color:var(--faint);margin-left:auto}.advanced summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}.advanced summary::-webkit-details-marker{display:none}.advanced summary:before{content:"▸ ";color:var(--faint)}.advanced[open] summary:before{content:"▾ "}.game-page{flex-direction:column;height:100vh;min-height:0;display:flex}.game-bar{border-bottom:1px solid var(--border);background:var(--surface);flex:none;align-items:center;gap:12px;padding:10px 18px;display:flex}.game-bar .back{min-width:0;height:30px;color:var(--muted);background:0 0;border:0;flex:none;padding:0 10px;font-size:16px}.game-bar .back:hover{background:var(--sunken);transform:none}.game-bar-title{color:var(--muted);font-variant-numeric:tabular-nums;font-size:13px}.game-bar-right{align-items:center;gap:10px;margin-left:auto;display:flex}.chip-toggle{border:1px solid var(--border);color:var(--muted);background:0 0;border-radius:999px;padding:3px 9px;font-size:12px;font-weight:600}.chip-toggle:hover{color:var(--text);border-color:var(--muted)}.chip-toggle.on{background:var(--accent-soft);color:var(--text);border-color:#0000}.game-body{flex:auto;grid-template-columns:minmax(0,1fr) 336px;gap:18px;min-height:0;padding:18px;display:grid}.game-board-col{flex-direction:column;gap:10px;min-width:0;min-height:0;display:flex}.game-board-col .board-host{max-width:min(100%,100vh - 210px);margin:0 auto}.game-side{flex-direction:column;gap:12px;min-height:0;display:flex}.game-side .moves-card{flex-direction:column;flex:auto;min-height:0;display:flex}.game-side .moves{flex:auto;max-height:none}.game-actions{flex-direction:column;gap:8px;display:flex}.game-actions .buttons{margin:0}.minor-actions{justify-content:center;gap:4px;display:flex}.minor-actions button{min-width:0;height:30px;color:var(--muted);background:0 0;border:0;flex:none;padding:0 12px;font-size:12px}.minor-actions button:hover:not(:disabled){background:var(--sunken);transform:none}.analysis-page{gap:var(--space-4);grid-template-columns:minmax(0,1fr) 380px;align-items:stretch;height:calc(100vh - 190px);min-height:420px;display:grid}.analysis-board{min-width:0;min-height:0}.analysis-board .board-wrap{margin-inline:auto}.analysis-rail{gap:var(--space-3);flex-direction:column;height:100%;min-height:0;display:flex}.analysis-rail>*{flex:none}.analysis-rail .moves-card{flex-direction:column;flex:auto;min-height:0;display:flex}.analysis-page .moves{flex:auto;min-height:96px;max-height:none}.analysis-rail .moves-card>:not(.moves){flex:none}.analysis-extras{overscroll-behavior:contain;min-height:0;max-height:42%;padding-right:var(--space-1);scrollbar-width:thin;flex:0 auto;overflow-y:auto}.sandbox-actions{margin-top:var(--space-2)}.sandbox-turn{margin-top:var(--space-2);align-items:center;gap:7px;display:flex}.turn-dot{border:1px solid var(--border);border-radius:50%;flex:none;width:10px;height:10px}.turn-dot.white{background:var(--eval-white)}.turn-dot.black{background:var(--eval-black)}.analysis-board{min-width:0}.notes{flex-direction:column;gap:7px;margin:0;padding:0;list-style:none;display:flex}.notes li{align-items:baseline;gap:8px;font-size:13px;line-height:1.35;display:flex}.note-dot{background:var(--muted);border-radius:50%;flex:none;width:6px;height:6px;transform:translateY(-1px)}.note-dot.bad{background:var(--danger)}.note-dot.good{background:var(--ok)}.note-text{flex:auto;min-width:0}.note-squares{font-variant-numeric:tabular-nums;color:var(--muted);flex:none;font-size:11px}.analysis-character{color:var(--muted);margin:8px 0 0;font-size:12px;line-height:1.4}.analysis-character.tactical,.analysis-character.only_move{color:var(--text);font-weight:600}.analysis-margin{font-variant-numeric:tabular-nums;font-weight:400}.analysis-tabs{border:1px solid var(--border);background:var(--sunken);border-radius:9px;gap:2px;padding:3px;display:inline-flex}.analysis-tabs button{min-width:0;height:30px;color:var(--muted);background:0 0;border:0;border-radius:6px;flex:none;padding:0 14px;font-size:13px}.analysis-tabs button.selected{background:var(--surface);color:var(--text);font-weight:600}.analysis-tabs button:hover{transform:none}.paste-area{border:1px solid var(--border);background:var(--bg);width:100%;min-height:120px;color:var(--text);resize:vertical;border-radius:8px;padding:11px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;line-height:1.55}.paste-area:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.filters{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.search{flex:260px;min-width:0}.chipbtn{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);height:34px;color:var(--muted);white-space:nowrap;flex:none;padding:0 14px;font-size:13px}.chipbtn.selected{border-color:var(--accent);background:var(--accent-soft);color:var(--text);font-weight:600}.table-wrap{border:1px solid var(--border);background:var(--surface);border-radius:12px;overflow-x:auto}.games-table{border-collapse:collapse;width:100%;min-width:720px;font-size:13.5px}.games-table th{text-align:left;border-bottom:1px solid var(--border);letter-spacing:.08em;text-transform:uppercase;color:var(--faint);white-space:nowrap;padding:11px 16px;font-size:10.5px;font-weight:600}.games-table td{border-bottom:1px solid var(--border);vertical-align:middle;white-space:nowrap;padding:10px 16px}.games-table tr:last-child td{border-bottom:0}.games-table tbody tr:hover{background:var(--sunken)}.games-table .mono{font-variant-numeric:tabular-nums;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.result-win{color:var(--ok);font-weight:600}.result-loss{color:var(--danger);font-weight:600}.result-draw{color:var(--muted);font-weight:600}.row-actions{justify-content:flex-end;gap:6px;display:flex}.row-actions button,.row-actions a{border-radius:6px;flex:none;align-items:center;height:28px;padding:0 10px;font-size:12px;text-decoration:none;display:inline-flex}.delta.up{color:var(--ok)}.delta.down{color:var(--danger)}.delta.flat{color:var(--muted)}.facts-list{flex-direction:column;display:flex}.facts-list div{border-bottom:1px solid var(--border);justify-content:space-between;gap:14px;padding:10px 0;font-size:13.5px;display:flex}.facts-list div:last-child{border-bottom:0}.facts-list dt{color:var(--muted)}.facts-list dd{font-variant-numeric:tabular-nums;margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.settings-page{grid-template-columns:200px minmax(0,1fr);align-items:start;gap:28px;display:grid}.settings-nav{flex-direction:column;gap:2px;display:flex;position:sticky;top:22px}.settings-nav a{color:var(--muted);border-radius:8px;padding:9px 12px;font-size:13.5px;text-decoration:none}.settings-nav a:hover{background:var(--sunken);color:var(--text)}.settings-nav a.active{background:var(--accent-soft);color:var(--text);font-weight:600}.settings-body{max-width:720px}.pref{border-bottom:1px solid var(--border);align-items:center;gap:16px;padding:14px 0;display:flex}.pref:last-child{border-bottom:0}.pref-text{min-width:0}.pref-text strong{font-size:13.5px;font-weight:600;display:block}.pref-text span{color:var(--muted);font-size:12px}.pref .switch,.pref>select,.pref>.seg{flex:none;margin-left:auto}.theme-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:6px;display:grid}.theme{border:1px solid var(--border);background:var(--surface);border-radius:10px;flex-direction:column;align-items:center;gap:7px;height:auto;padding:8px;font-size:12px;display:flex}.theme.selected{border-color:var(--accent);background:var(--accent-soft)}.theme-swatch{aspect-ratio:1;border:1px solid var(--border);border-radius:6px;width:100%}.seg{border:1px solid var(--border);background:var(--sunken);border-radius:8px;gap:2px;padding:3px;display:inline-flex}.seg button{min-width:0;height:28px;color:var(--muted);background:0 0;border:0;border-radius:5px;flex:none;padding:0 12px;font-size:12.5px}.seg button.selected{background:var(--surface);color:var(--text);font-weight:600}.seg button:hover{transform:none}.auth{background:var(--bg);place-items:center;min-height:100vh;padding:32px 20px;display:grid}.auth-card{border:1px solid var(--border);background:var(--surface);width:100%;max-width:390px;box-shadow:var(--shadow);border-radius:14px;padding:30px 30px 26px}.auth-brand{letter-spacing:-.02em;color:var(--text);align-items:center;gap:10px;margin-bottom:22px;font-size:16px;font-weight:700;text-decoration:none;display:flex}.auth-card h1{letter-spacing:-.02em;margin:0 0 4px;font-size:24px}.auth-card>p{color:var(--muted);margin:0 0 20px;font-size:13.5px}.auth-card .buttons{margin-top:18px}.auth-card .primary{width:100%}.auth-alt{border-top:1px solid var(--border);text-align:center;color:var(--muted);margin:18px 0 0;padding-top:16px;font-size:13px}.auth-alt a{color:var(--accent);font-weight:500;text-decoration:none}.watch-page{gap:var(--space-4);grid-template-columns:minmax(0,1fr) 320px;align-items:start;display:grid}.watch-live{gap:var(--space-1);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.watch-row{align-items:center;gap:var(--space-3);padding:var(--space-2);border-radius:var(--radius-md);display:flex}.watch-row:hover{background:var(--sunken)}.watch-who{flex-direction:column;flex:auto;gap:1px;min-width:0;display:flex}.watch-who strong{font-size:var(--text-md);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.watch-meta{align-items:center;gap:var(--space-1);font-size:var(--text-sm);color:var(--muted);font-variant-numeric:tabular-nums;display:flex}.skeleton{border-radius:var(--radius-sm);background:linear-gradient(90deg, var(--sunken) 25%, color-mix(in srgb, var(--border) 60%, var(--sunken)) 37%, var(--sunken) 63%);background-size:400% 100%;animation:1.4s ease-in-out infinite skeleton-sweep;display:block}@keyframes skeleton-sweep{0%{background-position:100%}to{background-position:0}}.skeleton-circle{border-radius:50%;flex:none}.skeleton-line{flex:auto;height:12px}.skeleton-row{align-items:center;gap:var(--space-3);padding:var(--space-2);display:flex}.board-table td:first-child{width:54px;color:var(--muted);font-variant-numeric:tabular-nums}.you-row{background:var(--accent-soft)}@media (width<=1180px){.game-body{grid-template-columns:minmax(0,1fr) 300px}.analysis-page{grid-template-columns:minmax(0,1fr) 330px}}@media (width<=1000px){.split-page,.analysis-page,.watch-page,.settings-page,.setup-page{grid-template-columns:minmax(0,1fr)}.who,.coach-start{position:static}.analysis-page{height:auto;min-height:0}.analysis-rail{height:auto;display:flex}.analysis-board{z-index:2;background:var(--bg);padding-bottom:var(--space-2);position:sticky;top:0}.analysis-page .moves{flex:none;max-height:200px}.analysis-extras{max-height:none;padding-right:0;overflow:visible}.modes{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-nav{flex-flow:wrap;gap:6px;position:static}.settings-nav a{border:1px solid var(--border)}.level-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=900px){.grid.three,.grid.two{grid-template-columns:minmax(0,1fr)}.game-page{height:auto;min-height:100vh}.game-body{grid-template-columns:minmax(0,1fr);gap:12px;padding:12px}.game-side .moves{max-height:220px}.theme-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.greeting h1,.page-head h1{font-size:24px}}@media (width<=560px){.level-grid,.colour-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.modes{grid-template-columns:minmax(0,1fr)}.mode-hero{padding:16px}.tc{text-align:center;flex:auto;min-width:72px}.stat-row{gap:16px}}.opponent-grid{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}.terms{border:1px solid var(--border);background:var(--surface);border-radius:12px;flex-direction:column;display:flex;overflow:hidden}.terms-row{justify-content:space-between;align-items:center;gap:20px;padding:16px 20px;display:flex}.terms-row+.terms-row{border-top:1px solid var(--border)}.terms-text{flex-direction:column;gap:2px;min-width:0;display:flex}.terms-text strong{font-size:15px}.terms-text span{color:var(--muted);font-size:13px}.searching{text-align:center;flex-direction:column;align-items:center;gap:14px;max-width:460px;padding:36px 28px;display:flex}.searching-spinner{border:3px solid var(--sunken);border-top-color:var(--accent);border-radius:50%;width:34px;height:34px;animation:.9s linear infinite searching-spin}@keyframes searching-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.searching-spinner{border-top-color:var(--border);animation:none}}.searching-terms{color:var(--muted);align-items:center;gap:10px;margin:0;font-size:14px;display:flex}.searching-terms strong{color:var(--text);font-size:18px}.searching-elapsed{font-variant-numeric:tabular-nums;color:var(--faint);margin:0;font-size:14px}.searching .buttons{margin-top:6px}.people{flex-direction:column;margin-top:12px;display:flex}.person{align-items:center;gap:12px;padding:10px 0;display:flex}.person+.person{border-top:1px solid var(--border)}.person-name{flex-direction:column;gap:1px;min-width:0;margin-right:auto;display:flex}.person-name strong{font-size:15px}.person-name span{color:var(--muted);font-size:13px}.person>button,.person .buttons button{flex:none}.person .buttons{gap:8px;margin:0}.invite-card{max-width:560px}.nav-count{background:var(--accent);min-width:20px;color:var(--accent-text);text-align:center;border-radius:10px;margin-left:auto;padding:0 6px;font-size:12px;font-weight:600;line-height:20px}.tab{position:relative}.tab .nav-count{min-width:16px;margin-left:4px;font-size:10px;line-height:16px;position:absolute;top:2px;left:50%}@media (width<=560px){.terms-row{flex-direction:column;align-items:flex-start;gap:12px}.person .buttons{flex-direction:column}}.bot-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;display:grid}.bot-card{border:1px solid var(--border);background:var(--surface);color:inherit;transition:border-color var(--ease), transform var(--ease);border-radius:12px;flex-direction:column;gap:8px;padding:18px;text-decoration:none;display:flex}.bot-card:hover{border-color:var(--accent);transform:translateY(-2px)}.bot-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.bot-face{width:44px;height:44px;color:var(--on-fill);border-radius:12px;place-items:center;font-size:24px;line-height:1;display:grid}.bot-face.large{border-radius:18px;flex:none;width:72px;height:72px;font-size:38px}.bot-card-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.bot-card-head strong{font-size:16px}.bot-rating{font-variant-numeric:tabular-nums;color:var(--muted);font-size:13px}.bot-rating em{color:var(--faint);font-size:11px;font-style:normal}.bot-card-title{color:var(--muted);margin-bottom:auto;font-size:13px;line-height:1.4}.bot-tags{flex-wrap:wrap;gap:6px;display:flex}.bot-tag{border:1px solid var(--border);background:var(--sunken);color:var(--muted);border-radius:999px;padding:2px 8px;font-size:11px}.bot-tag.accent{background:var(--accent-soft);color:var(--accent);border-color:#0000}.bot-profile{align-items:flex-start;gap:18px;display:flex}.bot-profile-text{flex-direction:column;gap:10px;min-width:0;display:flex}.bot-blurb{margin:0;font-size:14px;line-height:1.55}.trait{grid-template-columns:96px minmax(0,1fr) 34px;align-items:center;gap:12px;padding:5px 0;display:grid}.trait-name{color:var(--muted);font-size:13px}.trait-track{background:var(--sunken);border-radius:999px;height:8px;overflow:hidden}.trait-fill{border-radius:999px;height:100%;display:block}.trait-value{font-variant-numeric:tabular-nums;color:var(--faint);text-align:right;font-size:12px}.strength{width:100%;accent-color:var(--accent)}.strength-read{color:var(--muted);justify-content:space-between;margin-top:8px;font-size:13px;display:flex}.bot-start{border:1px solid var(--border);background:var(--surface);border-radius:12px;flex-direction:column;align-self:start;gap:12px;padding:18px;display:flex;position:sticky;top:20px}.bot-start-head{align-items:center;gap:12px;display:flex}.bot-start-head strong{font-size:16px;display:block}.bot-start-head span{color:var(--muted);font-size:13px}.bot-start-terms{border-top:1px solid var(--border);border-bottom:1px solid var(--border);flex-direction:column;gap:6px;margin:0;padding:12px 0;display:flex}.bot-start-terms>div{justify-content:space-between;gap:12px;display:flex}.bot-start-terms dt{color:var(--muted);font-size:13px}.bot-start-terms dd{margin:0;font-size:13px;font-weight:500}.judgement{font-weight:500}.judgement.inaccuracy{color:var(--warn)}.judgement.mistake,.judgement.blunder{color:var(--danger)}.engine-line .pv{word-spacing:4px;margin:0 0 8px;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:13px;line-height:1.6}@media (width<=900px){.bot-start{position:static}.bot-profile{flex-direction:column}.trait{grid-template-columns:84px minmax(0,1fr) 30px;gap:8px}}.review-verdict{margin:0 0 14px;font-size:13.5px;line-height:1.55}.review-section+.review-section{margin-top:14px}.review-section h3{letter-spacing:.09em;text-transform:uppercase;color:var(--faint);margin:0 0 7px;font-size:11px;font-weight:600}.move-verdict{align-items:flex-start;gap:11px;display:flex}.move-verdict-text{min-width:0}.move-verdict-text strong{font-size:14.5px}.move-verdict-text p{color:var(--muted);margin:3px 0 0;font-size:13px;line-height:1.5}.profile-head{isolation:isolate;gap:var(--space-5);min-height:var(--cover-min);padding:var(--space-5);margin-bottom:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--cover);box-shadow:var(--shadow);align-content:center;display:grid;position:relative;overflow:hidden}.profile-cover{z-index:-1;position:absolute;inset:0}.profile-cover-image{object-fit:cover;object-position:center;width:100%;height:100%;display:block}.profile-cover:after{content:"";background:linear-gradient(to top, var(--scrim), transparent 68%), var(--cover-scrim);position:absolute;inset:0}.profile-head h1,.profile-head .profile-figure .value{color:var(--on-cover)}.profile-head .profile-line,.profile-head .profile-line .muted,.profile-head .profile-figure .label,.profile-head .figure-hint{color:var(--on-cover-muted)}.profile-head .profile-figure.lead .value{color:var(--on-cover)}.profile-head .profile-figures{border-top-color:color-mix(in srgb, var(--on-cover) 22%, transparent)}.profile-head .profile-identity .avatar{box-shadow:0 0 0 3px color-mix(in srgb, var(--on-cover) 24%, transparent), 0 6px 18px var(--scrim)}.profile-head-top{justify-content:space-between;align-items:center;gap:var(--space-4);flex-wrap:wrap;display:flex}.profile-head .profile-identity{gap:var(--space-4);flex:280px;min-width:0}.profile-head h1{letter-spacing:-.025em;overflow-wrap:anywhere;margin:0;font-size:34px;font-weight:650;line-height:1.1}.profile-head .profile-line{gap:var(--space-1) var(--space-3);margin:var(--space-2) 0 0;font-size:var(--text-base);flex-wrap:wrap}.profile-head .profile-actions{border-top:0;flex:0 auto;align-items:center;margin:0;padding:0}.profile-head .profile-actions>*{height:40px;padding:0 var(--space-4);font-size:var(--text-base)}.profile-figures{gap:var(--space-4);padding-top:var(--space-5);border-top:1px solid var(--border);grid-template-columns:repeat(auto-fit,minmax(120px,1fr));margin:0;display:grid}.profile-figure{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.profile-figure .label{font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0;font-weight:600}.profile-figure .value{align-items:baseline;gap:var(--space-2);letter-spacing:-.02em;flex-wrap:wrap;margin:0;font-size:26px;font-weight:600;line-height:1.1;display:flex}.profile-figure.lead .value{color:var(--accent);font-size:36px}.figure-hint{font-size:var(--text-sm);color:var(--muted);letter-spacing:0;font-weight:400}.profile-grid{gap:var(--space-4);margin-bottom:var(--space-4);grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;display:grid}.perf-card,.rating-card,.games-card{box-shadow:var(--shadow)}.stat-cards{gap:var(--space-2);margin:0 0 var(--space-5);grid-template-columns:repeat(auto-fit,minmax(104px,1fr));display:grid}.stat-card{gap:var(--space-1);min-width:0;padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--sunken);flex-direction:column;display:flex}.stat-card .label{align-items:center;gap:var(--space-1);font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0;font-weight:600;display:flex}.stat-card .value{font-variant-numeric:tabular-nums;letter-spacing:-.02em;margin:0;font-size:28px;font-weight:650;line-height:1.1}.stat-mark{display:inline-flex}.stat-card.win{border-left:3px solid var(--ok)}.stat-card.draw{border-left:3px solid var(--muted)}.stat-card.loss{border-left:3px solid var(--danger)}.stat-card.win .stat-mark,.stat-card.win .value{color:var(--ok)}.stat-card.draw .stat-mark{color:var(--muted)}.stat-card.loss .stat-mark,.stat-card.loss .value{color:var(--danger)}.outcome-block{margin-bottom:var(--space-5)}.outcome-bar{border-radius:var(--radius-sm);gap:2px;height:28px;display:flex;overflow:hidden}.outcome-part{min-width:0;font-size:var(--text-sm);font-variant-numeric:tabular-nums;color:var(--on-fill);justify-content:center;align-items:center;font-weight:600;display:flex}.outcome-part.win{background:var(--ok)}.outcome-part.draw{background:var(--muted)}.outcome-part.loss{background:var(--danger)}.outcome-part-label{white-space:nowrap;padding:0 var(--space-1);overflow:hidden}.outcome-legend{gap:var(--space-2) var(--space-5);margin:var(--space-3) 0 0;flex-wrap:wrap;padding:0;list-style:none;display:flex}.legend-item{align-items:baseline;gap:var(--space-2);font-size:var(--text-base);display:flex}.legend-swatch{font-size:10px;line-height:1}.legend-item.win .legend-swatch{color:var(--ok)}.legend-item.draw .legend-swatch{color:var(--muted)}.legend-item.loss .legend-swatch{color:var(--danger)}.legend-word{color:var(--muted)}.legend-count{font-variant-numeric:tabular-nums;font-weight:650}.form-row{align-items:center;gap:var(--space-3);padding-bottom:var(--space-1);flex-wrap:wrap;display:flex}.form-label{font-size:var(--text-xs);letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin:0;font-weight:600}.form-pips{gap:var(--space-1);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.form-pip{border-radius:var(--radius-sm);width:28px;height:28px;font-size:var(--text-sm);color:var(--on-fill);place-items:center;font-weight:700;display:grid}.form-pip.win{background:var(--ok)}.form-pip.draw{background:var(--muted)}.form-pip.loss{background:var(--danger)}.form-note{font-size:var(--text-sm);color:var(--muted);margin:0}.stat-section{margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--border)}.stat-section h3{margin:0 0 var(--space-3);font-size:var(--text-xs);letter-spacing:.09em;text-transform:uppercase;color:var(--muted);font-weight:600}.stat-note{margin-top:var(--space-3)}.table-scroll{overflow-x:auto}.table-scroll:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:var(--radius-sm)}.perf-table{border-collapse:collapse;width:100%;font-size:var(--text-base)}.perf-table th,.perf-table td{padding:var(--space-2) var(--space-3);white-space:nowrap;border-bottom:1px solid var(--border)}.perf-table thead th{font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);text-align:left;font-weight:600}.perf-table tbody th{text-align:left;font-weight:500}.perf-table tbody tr:last-child th,.perf-table tbody tr:last-child td{border-bottom:0}.perf-table tbody tr:hover{background:var(--sunken)}.perf-table th:not(:first-child),.perf-table td:not(:first-child){text-align:right;width:1%}.perf-table .num{font-variant-numeric:tabular-nums}.perf-table .rate{font-weight:600}.rating-chart{gap:var(--space-3);flex-direction:column;display:flex}.rating-plot{position:relative}.rating-chart-svg{touch-action:pan-y;width:100%;height:auto;display:block}.rating-chart-svg:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}.rating-area{fill:var(--accent);opacity:.1}.rating-line{fill:none;stroke:var(--accent);stroke-width:2px;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}.rating-crosshair{stroke:var(--border);stroke-width:1px;vector-effect:non-scaling-stroke}.rating-dot{fill:var(--accent);stroke:var(--surface);stroke-width:2px;vector-effect:non-scaling-stroke}.rating-dot.peak{fill:var(--surface);stroke:var(--accent)}.rating-readout{align-items:baseline;gap:var(--space-2);margin:var(--space-2) 0 0;font-size:var(--text-base);display:flex}.rating-readout strong{letter-spacing:-.02em;font-size:22px}.rating-readout .delta{font-variant-numeric:tabular-nums;font-weight:600}.rating-readout-when{color:var(--muted);font-size:var(--text-sm);margin-left:auto}.rating-span{justify-content:space-between;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--muted);font-variant-numeric:tabular-nums;margin:0;display:flex}.rating-figures{gap:var(--space-3);padding-top:var(--space-4);border-top:1px solid var(--border);grid-template-columns:repeat(auto-fit,minmax(84px,1fr));margin:0;display:grid}.rating-figure{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.rating-figure dt{font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:600}.rating-figure dd{font-size:var(--text-lg);font-variant-numeric:tabular-nums;letter-spacing:-.02em;margin:0;font-weight:650}.rating-figure.up .value{color:var(--ok)}.rating-figure.down .value{color:var(--danger)}.games-card .history{max-height:none;overflow:visible}.history-detailed .history-row{gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-md)}.history-detailed .history-row+.history-row{border-top:1px solid var(--border);border-top-left-radius:0;border-top-right-radius:0}.history-detailed .outcome{border-radius:var(--radius-sm);width:32px;height:32px;font-size:var(--text-base)}.history-detailed .history-detail{gap:3px}.history-opponent{align-items:baseline;gap:var(--space-2);min-width:0;display:flex}.history-opponent .row-inner-link,.history-opponent .row-inner-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.history-detailed .history-opponent{font-size:var(--text-md);font-weight:600}.history-detailed .history-meta{font-size:var(--text-sm)}.history-elo{color:var(--muted);font-variant-numeric:tabular-nums;font-weight:400}.history-side{color:var(--muted);align-items:center;display:inline-flex}.side-dot{border:1.5px solid;border-radius:2px;width:9px;height:9px}.history-side.black .side-dot{background:currentColor}.history-end{align-items:center;gap:var(--space-3);padding-left:var(--space-2);flex:none;margin-left:auto;display:flex}.history-change{flex-direction:column;align-items:flex-end;line-height:1.25;display:flex}.history-delta{font-size:var(--text-md);font-variant-numeric:tabular-nums;margin:0;padding:0;font-weight:650}.history-after{font-size:var(--text-sm);color:var(--muted);font-variant-numeric:tabular-nums}.row-chevron{font-size:var(--text-base);color:var(--faint);transition:transform var(--ease), color var(--ease)}.history-detailed .row-chevron{font-size:var(--text-lg)}.history-row:hover .row-chevron{color:var(--accent);transform:translate(2px)}@media (width<=1180px){.stat-cards{grid-template-columns:repeat(auto-fit,minmax(96px,1fr))}.profile-figure.lead .value{font-size:30px}}@media (width<=1000px){.profile-grid{grid-template-columns:minmax(0,1fr)}}@media (width<=700px){.profile-head .profile-actions{flex:100%}.profile-head h1{font-size:28px}}@media (width<=560px){.profile-head{padding:var(--space-4);gap:var(--space-4);min-height:0}.profile-head h1{font-size:24px}.profile-figures{gap:var(--space-3);padding-top:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr))}.profile-figure .value{font-size:22px}.profile-figure.lead .value{font-size:26px}.profile-head .profile-actions>*{text-align:center;flex:140px}.stat-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-card .value{font-size:22px}.perf-table th,.perf-table td{padding:var(--space-2)}.history-detailed .history-row{padding:var(--space-3) var(--space-2);flex-wrap:wrap}.history-detailed .history-end{padding-left:0}.history-detailed .row-chevron{display:none}.form-pip{width:24px;height:24px}}.donut-block{align-items:center;gap:var(--space-5);flex-wrap:wrap;display:flex}.donut{flex:none;width:132px;height:132px;position:relative}.donut svg{width:100%;height:100%;transform:rotate(-90deg)}.donut-track{fill:none;stroke:var(--sunken);stroke-width:12px}.donut-arc{fill:none;stroke-width:12px;animation:donut-in var(--ease-out) both}.donut-arc.win{stroke:var(--ok-fill)}.donut-arc.draw{stroke:var(--draw-fill)}.donut-arc.loss{stroke:var(--loss-fill)}@keyframes donut-in{0%{opacity:0}to{opacity:1}}.donut-centre{flex-direction:column;justify-content:center;align-items:center;line-height:1.1;display:flex;position:absolute;inset:0}.donut-centre strong{font-size:var(--stat-sm);font-weight:var(--weight-bold);font-variant-numeric:tabular-nums;letter-spacing:-.02em}.donut-centre span{font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.donut-legend{gap:var(--space-2);flex-direction:column;flex:150px;min-width:0;margin:0;padding:0;list-style:none;display:flex}.donut-legend .legend-item{gap:var(--space-2)}.donut-legend .legend-word{flex:auto}.donut-legend .legend-count{font-variant-numeric:tabular-nums}.legend-share{text-align:right;min-width:42px;font-size:var(--text-sm);color:var(--muted);font-variant-numeric:tabular-nums}@media (width<=560px){.donut-block{gap:var(--space-4)}.donut{width:108px;height:108px}}.pager{align-items:center;gap:var(--space-4);margin-top:var(--space-4);flex-wrap:wrap;display:flex}.pager-size{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--muted);display:flex}.pager-size select{height:32px;padding:0 var(--space-2);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font-family:inherit;font-size:var(--text-sm)}.pager-size select:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.pager-count{font-size:var(--text-sm);color:var(--muted);font-variant-numeric:tabular-nums;margin:0}.pager-steps{align-items:center;gap:var(--space-1);margin-left:auto;display:flex}.pager-step{width:32px;min-width:0;height:32px;font-size:var(--text-md);flex:none;padding:0;line-height:1}.pager-page{padding:0 var(--space-3);font-size:var(--text-sm);font-variant-numeric:tabular-nums;color:var(--muted);white-space:nowrap}@media (width<=560px){.pager-steps{flex:100%;justify-content:center;margin-left:0}}.skeleton-stack{gap:var(--space-3);flex-direction:column;display:flex}.skeleton-tile{border-radius:var(--radius-md);height:64px}.skeleton-bar{height:28px;margin-bottom:var(--space-5)}.skeleton-chart{height:168px;margin-bottom:var(--space-3)}.skeleton-donut{border-radius:50%;flex:none;width:132px;height:132px}.puzzles-page{max-width:640px;margin:0 auto}.puzzle-head{justify-content:space-between;align-items:flex-start;gap:var(--space-3);flex-wrap:wrap;display:flex}.puzzle-filters{gap:var(--space-1);flex-wrap:wrap;display:flex}.chip{border-radius:var(--radius-pill);padding:var(--space-1) var(--space-3);font-size:var(--text-sm);background:var(--sunken);border:1px solid var(--border)}.chip-active{background:color-mix(in srgb, var(--accent) 18%, var(--sunken));border-color:color-mix(in srgb, var(--accent) 45%, var(--border));color:var(--text)}.puzzle-layout{gap:var(--space-3);flex-direction:column;display:flex}.puzzle-meta{justify-content:space-between;align-items:center;gap:var(--space-3);min-height:28px;display:flex}.puzzle-theme{font-weight:600;font-size:var(--text-md)}.puzzle-difficulty{cursor:help}.stars{color:var(--accent);gap:2px;display:inline-flex}.star{opacity:.28}.star.on{opacity:1;fill:currentColor}.puzzle-board{width:100%}.puzzle-panel{gap:var(--space-3);flex-direction:column;min-height:96px;display:flex}.puzzle-prompt{font-size:var(--text-base);margin:0}.puzzle-verdict{align-items:center;gap:var(--space-2);margin:0;font-weight:600;display:flex}.puzzle-wrong{color:var(--tone-mistake)}.puzzle-right{color:var(--tone-best)}.puzzle-result{gap:var(--space-2);flex-direction:column;display:flex}.puzzle-summary{gap:var(--space-3);grid-template-columns:repeat(3,minmax(0,1fr));margin:0;display:grid}.puzzle-summary dt{font-size:var(--text-xs);color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.puzzle-summary dd{font-size:var(--text-base);margin:0;font-weight:600}.puzzle-line{flex-direction:column;gap:2px;margin:0;display:flex}.puzzle-line code{font-size:var(--text-sm);background:var(--sunken);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-2);overflow-x:auto}.puzzle-hints{gap:var(--space-1);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.puzzle-hints li{font-size:var(--text-sm);color:var(--muted);background:var(--sunken);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-2)}.puzzle-actions{margin-top:auto}.puzzle-status{text-align:center;gap:var(--space-2);flex-direction:column;align-items:center;display:flex}@media (width<=560px){.puzzle-summary{gap:var(--space-2)}.puzzle-head{flex-direction:column}}button,.button,a.button,input,select,textarea,[role=button]{transition:background-color var(--ease), border-color var(--ease), color var(--ease), box-shadow var(--ease), transform var(--ease)}button:not(:disabled):hover,.button:hover,a.button:hover{border-color:color-mix(in srgb, var(--accent) 40%, var(--border))}button:not(:disabled):active,.button:active,a.button:active{transform:translateY(1px)}:focus-visible{box-shadow:var(--focus-ring);border-radius:var(--radius-sm);outline:none}button:disabled,.button[aria-disabled=true]{opacity:.5;cursor:not-allowed}.card{border-radius:var(--radius-lg);padding:var(--space-4)}.card h2{font-size:var(--text-md);margin-bottom:var(--space-3)}.stack{gap:var(--space-4);flex-direction:column;display:flex}.buttons{gap:var(--space-2);flex-wrap:wrap;display:flex}button,.button,a.button{border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);font-size:var(--text-base)}.page-head{margin-bottom:var(--space-5)}.page-head h1{font-size:var(--text-xl)}.page-head p{font-size:var(--text-base);color:var(--muted)}.hint{font-size:var(--text-sm);color:var(--muted);margin:0;line-height:1.5}.hint[title]{cursor:help;border-bottom:1px dotted var(--border);padding-bottom:1px;display:inline-block}.moves .ply{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);min-height:28px;display:flex}.moves .ply-san{text-align:left;font-variant-numeric:tabular-nums;flex:1}.moves .ply-eval{font-size:var(--text-xs);color:var(--muted);font-variant-numeric:tabular-nums;text-align:right;min-width:34px}.moves .ply:hover{background:var(--sunken)}@media (width<=900px){.analysis-page{grid-template-columns:1fr}.analysis-board{max-width:100%}.accuracy-heads{grid-template-columns:1fr 1fr}}@media (width<=560px){.card{padding:var(--space-3)}.page-head h1{font-size:var(--text-lg)}.dialog .buttons{flex-direction:column}.dialog .buttons>*{text-align:center;width:100%}.accuracy-value{font-size:var(--text-lg)}.accuracy-breakdown{gap:var(--space-1)}.cls-chip{font-size:var(--text-xs);padding:3px 8px 3px 4px}}.dialog .accuracy,.dialog .analysis-progress{margin-top:var(--space-4);width:100%}.dialog .accuracy{animation:fade-up var(--ease-out)}@keyframes fade-up{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.dialog .accuracy,button,.button,a.button{transition:none;animation:none}button:not(:disabled):active{transform:none}}button,.button,a.button{transition:background-color var(--ease), border-color var(--ease), color var(--ease), box-shadow var(--ease), transform var(--ease)}button:not(:disabled):hover,.button:hover,a.button:hover{box-shadow:var(--shadow);transform:translateY(-1px)}button.primary:not(:disabled):hover,.button.primary:hover,a.button.primary:hover{box-shadow:var(--shadow-raised)}button:not(:disabled):focus-visible,.button:focus-visible,a.button:focus-visible{transform:translateY(-1px)}button:not(:disabled):active,.button:active,a.button:active{box-shadow:none;transition-duration:var(--fast);transform:translateY(1px)}button.icon:not(:disabled):hover,button.icon:not(:disabled):focus-visible{background:color-mix(in srgb, var(--accent) 10%, var(--surface));box-shadow:none;transform:none}.seg button:hover,.seg button:focus-visible,button.pager-step:hover,button.pager-step:focus-visible{box-shadow:none;transform:none}.mode,.bot-card{transition:transform var(--mid) var(--curve), box-shadow var(--mid) var(--curve), border-color var(--ease), background-color var(--ease)}.mode:hover,button.mode:hover,.bot-card:hover{transform:translateY(var(--lift));box-shadow:var(--shadow-raised);border-color:color-mix(in srgb, var(--accent) 55%, var(--border))}.mode:focus-visible,button.mode:focus-visible,.bot-card:focus-visible{transform:translateY(var(--lift));border-color:color-mix(in srgb, var(--accent) 55%, var(--border));border-radius:var(--radius-lg)}.mode:disabled:hover,button.mode:disabled:hover{box-shadow:none;transform:none}.mode:active,button.mode:active,.bot-card:active{box-shadow:var(--shadow);transition-duration:var(--fast);transform:translateY(0)}.history-row,.player-row,.leaderboard-row,.watch-row{transition:background-color var(--ease)}.history-row:hover,.history-row:focus-within,.player-row:hover,.player-row:focus-within,.leaderboard-row:hover,.leaderboard-row:focus-within,.watch-row:hover,.watch-row:focus-within{background:var(--sunken)}.row-chevron{color:var(--faint);opacity:.5;transition:opacity var(--ease), transform var(--ease), color var(--ease)}.history-row:hover .row-chevron,.history-row:focus-within .row-chevron{opacity:1;color:var(--accent);transform:translate(2px)}.rail-link{transition:background-color var(--ease), color var(--ease);position:relative}.rail-link:before{content:"";border-radius:var(--radius-pill);background:var(--accent);width:3px;height:18px;transition:transform var(--mid) var(--curve);margin-top:-9px;position:absolute;top:50%;left:0;transform:scaleY(0)}.rail-link.active:before{transform:scaleY(1)}.rail-icon{transition:transform var(--ease)}.rail-link:hover .rail-icon,.rail-link:focus-visible .rail-icon{transform:scale(1.12)}.textlink{text-decoration:none;position:relative}.textlink:hover,.textlink:focus-visible{text-decoration:none}.textlink:after{content:"";transform-origin:0;height:1px;transition:transform var(--ease);background:currentColor;position:absolute;bottom:-2px;left:0;right:0;transform:scaleX(0)}.textlink:hover:after,.textlink:focus-visible:after{transform:scaleX(1)}input,select,textarea{transition:border-color var(--ease), background-color var(--ease), box-shadow var(--ease)}input:hover:not(:disabled),select:hover:not(:disabled),textarea:hover:not(:disabled),input:focus-visible:not(:disabled),select:focus-visible:not(:disabled),textarea:focus-visible:not(:disabled){border-color:color-mix(in srgb, var(--accent) 35%, var(--border))}.tc,.seg button,.pager-step{transition:background-color var(--ease), border-color var(--ease), color var(--ease), transform var(--ease)}.tc:hover,.tc:focus-visible,.seg button:hover,.seg button:focus-visible{border-color:color-mix(in srgb, var(--accent) 45%, var(--border))}.tc.selected,.seg button.selected{animation:mark-in var(--fast) var(--curve-spring)}@keyframes mark-in{0%{transform:scale(.94)}to{transform:scale(1)}}.switch-track,.switch-thumb{transition:background-color var(--ease), transform var(--mid) var(--curve)}@keyframes surface-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.page-head,.stack>.card,.split-page>.card,.profile-grid>.card,.modes>.mode,.bot-grid>.bot-card{animation:surface-in var(--mid) var(--curve) both}.stack>.card:nth-child(2),.split-page>.card:nth-child(2),.profile-grid>.card:nth-child(2),.modes>.mode:nth-child(2),.bot-grid>.bot-card:nth-child(2){animation-delay:30ms}.stack>.card:nth-child(3),.split-page>.card:nth-child(3),.profile-grid>.card:nth-child(3),.modes>.mode:nth-child(3),.bot-grid>.bot-card:nth-child(3){animation-delay:60ms}.stack>.card:nth-child(n+4),.modes>.mode:nth-child(n+4),.bot-grid>.bot-card:nth-child(n+4){animation-delay:90ms}.game-page .card,.game-page .page-head,.analysis-page .card,.analysis-page .page-head{animation-name:none}.board-wrap [data-square],.board-wrap [data-piece]{transition:none;animation:none}.mode-hero,.bot-face,.rail-mark,.avatar.generated,.outcome{background-image:linear-gradient(145deg, color-mix(in srgb, var(--on-fill) 16%, transparent), transparent 58%)}.bot-face{transition:transform var(--mid) var(--curve), box-shadow var(--mid) var(--curve)}.bot-card:hover .bot-face,.bot-card:focus-visible .bot-face{box-shadow:var(--shadow-raised);transform:scale(1.06)rotate(-2deg)}.profile-identity .avatar{box-shadow:0 0 0 3px var(--surface), 0 0 0 5px color-mix(in srgb, var(--accent) 30%, transparent)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}.mode:hover,.mode:focus-visible,button.mode:hover,button.mode:focus-visible,.bot-card:hover,.bot-card:focus-visible,.bot-card:active,button:not(:disabled):hover,button:not(:disabled):focus-visible,button:not(:disabled):active,.button:hover,.button:focus-visible,a.button:hover,a.button:focus-visible,.bot-card:hover .bot-face,.bot-card:focus-visible .bot-face,.rail-link:hover .rail-icon,.rail-link:focus-visible .rail-icon{transform:none}.rail-link.active:before{transform:scaleY(1)}.textlink:hover:after,.textlink:focus-visible:after{transform:scaleX(1)}.history-row:hover .row-chevron,.history-row:focus-within .row-chevron{transform:none}}
