:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--bg:#f4f2ed;--fg:#1d1d1b;--dim:#77746c;--line:#dcd8cf;--hover:#e9e6de;--accent:#b8922e;--card:#fdfcf9;--scrim:#14131173;--danger:#b03a2e;--danger-bg:#f7e7e3;--ok:#2f7d4a;--jev:#c07a1f;--gpt:#2f78a8;--draw:#9a968c;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;font-size:15px;line-height:1.4}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#141413;--fg:#e9e6df;--dim:#8b8880;--line:#2b2a27;--hover:#1f1e1c;--accent:#d6b24c;--card:#1c1b19;--scrim:#0009;--danger:#e0786b;--danger-bg:#2c1a17;--ok:#6fc28a;--jev:#e0a24a;--gpt:#62aee0;--draw:#77746c}}*{box-sizing:border-box}body{background:var(--bg);min-height:100dvh;color:var(--fg);margin:0}.app{flex-direction:column;max-width:1200px;height:100dvh;margin:0 auto;padding:12px 16px 16px;display:flex}header{flex-wrap:wrap;flex:none;justify-content:space-between;align-items:center;gap:8px 16px;margin-bottom:12px;display:flex}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}button{font:inherit;color:inherit;border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:6px;padding:5px 10px;font-size:13px;line-height:1.2}button:hover:not(:disabled){background:var(--hover)}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button:disabled{color:var(--dim);opacity:.55;cursor:not-allowed}.modes{flex-wrap:wrap;gap:4px;display:flex}.modes button[aria-pressed=true]{border-color:var(--fg)}.play{flex:1;gap:20px;min-height:0;display:flex;container-type:size}.board{aspect-ratio:1;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;border-radius:6px;flex:none;align-self:flex-start;width:min(100cqh,100cqw - 320px);display:block}.panel{flex-direction:column;flex:300px;gap:12px;min-width:0;min-height:0;display:flex}.status{align-items:center;gap:10px;margin:0;font-weight:600;display:flex}.dot{border:1px solid var(--dim);border-radius:50%;flex:none;width:12px;height:12px}.dot.w{background:#f8f6f1}.dot.b{background:#1e1e1e}.dot.over{background:var(--accent);border-color:var(--accent)}.moves{border-block:1px solid var(--line);font-variant-numeric:tabular-nums;flex:1 1 0;min-height:60px;margin:0;padding:8px 0;font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:13px;list-style:none;overflow-y:auto}.moves li{grid-template-columns:3.5ch 1fr 6ch 1fr 6ch;gap:6px;padding:3px 4px;display:grid}.moves .n,.moves .ms,.moves .empty{color:var(--dim)}.moves .ms{text-align:right;align-self:center;font-size:11px}.board.waiting{cursor:progress}.board.idle{cursor:default}button.start{padding:7px 12px;font-weight:600}.dot.thinking{animation:1s ease-in-out infinite pulse}.moves .illegal{color:var(--danger);grid-column:1/-1;padding-left:calc(3.5ch + 6px);font-size:12px}.settings{grid-template-columns:max-content minmax(0,1fr);align-items:center;gap:8px 12px;font-size:13px;display:grid}.settings>label,.settings>.label{font-weight:600}.key-form input,.settings select{min-width:0;height:28px;font:inherit;color:inherit;background:var(--card);border:1px solid var(--line);border-radius:6px;padding:0 8px}.key-form input:focus-visible,.settings select:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.keys{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px 12px;font-size:13px;display:flex}.key-form{align-items:center;gap:6px;margin:0;display:flex}.key-form label{font-weight:600}.key-form input{width:150px}.key-form button{height:28px;padding:0 10px}.pill{border:1px solid var(--line);background:var(--hover);border-radius:999px;align-items:center;gap:2px;height:24px;padding:0 2px 0 10px;font-size:12px;font-weight:500;display:inline-flex}.pill button{width:20px;height:20px;color:var(--dim);border:none;border-radius:50%;place-items:center;padding:0;font-size:10px;line-height:1;display:grid}.pill button:hover:not(:disabled){background:var(--line);color:var(--fg)}.choices{border:1px solid var(--line);border-radius:6px;justify-self:start;display:inline-flex;overflow:hidden}.choices button{border:none;border-radius:0;height:26px;padding:0 12px}.choices button+button{border-left:1px solid var(--line)}.choices button[aria-pressed=true],.choices button[aria-pressed=true]:hover:not(:disabled){background:var(--fg);color:var(--bg)}.alert{background:var(--danger-bg);color:var(--danger);border-radius:8px;align-items:center;gap:10px;padding:10px 12px;font-size:13px;display:flex}.alert p{flex:1;margin:0}.alert button{border-color:currentColor;flex:none}.clock{font-variant-numeric:tabular-nums;color:var(--dim);margin-left:auto;font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-weight:500}.totals{font-variant-numeric:tabular-nums;color:var(--dim);gap:20px;margin-top:-6px;font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:13px;display:flex}.totals>span{align-items:center;gap:6px;display:inline-flex}.totals .dot{width:9px;height:9px}.scrim{background:var(--scrim);z-index:10;place-items:center;padding:16px;animation:.16s ease-out fade;display:grid;position:fixed;inset:0}.result{background:var(--card);border:1px solid var(--line);text-align:center;border-radius:12px;width:min(360px,100%);padding:28px 24px 20px;animation:.22s cubic-bezier(.2,.8,.2,1) rise;box-shadow:0 24px 60px #00000040}.result .badge{border:2px solid var(--accent);border-radius:50%;width:44px;height:44px;display:inline-block}.result .badge.w{background:#f8f6f1}.result .badge.b{background:#1e1e1e}.result .badge.draw{background:linear-gradient(90deg,#f8f6f1 50%,#1e1e1e 50%)}.result h2{letter-spacing:-.01em;margin:12px 0 2px;font-size:28px;font-weight:650}.result .how{color:var(--dim);margin:0}.stats{border-block:1px solid var(--line);text-align:left;grid-template-columns:repeat(3,1fr);gap:12px 16px;margin:22px 0;padding:16px 0;display:grid}.stats .wide{grid-column:1/-1}.stats .span2{grid-column:span 2}.stats dt{letter-spacing:.08em;text-transform:uppercase;color:var(--dim);font-size:11px}.stats dd{font-variant-numeric:tabular-nums;margin:2px 0 0;font-family:ui-monospace,Cascadia Code,Consolas,monospace}.dim{color:var(--dim)}.result-actions{gap:8px;display:flex}.result-actions button{flex:1;padding:7px 12px}button.primary{background:var(--fg);border-color:var(--fg);color:var(--bg)}button.primary:hover:not(:disabled){background:var(--fg);opacity:.88}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{opacity:0;transform:translateY(8px)scale(.98)}}@keyframes pulse{50%{opacity:.3}}@media (prefers-reduced-motion:reduce){.scrim,.result,.logs,.dot.thinking{animation:none}}.moves .empty{font-family:inherit;display:block}.actions{gap:8px;display:flex}.actions button{flex:1}.logs{background:var(--card);border:1px solid var(--line);border-radius:12px;flex-direction:column;width:min(960px,100%);max-height:calc(100dvh - 32px);animation:.22s cubic-bezier(.2,.8,.2,1) rise;display:flex;overflow:hidden;box-shadow:0 24px 60px #00000040}.logs>header{border-bottom:1px solid var(--line);flex:none;align-items:flex-start;margin:0;padding:18px 20px 14px}.logs h2{margin:0;font-size:18px;font-weight:650}.logs header p{margin:2px 0 0;font-size:13px}.logs-actions{flex-wrap:wrap;gap:6px;display:flex}.logs-empty{margin:0;padding:24px 20px}.log-list{min-height:0;margin:0;padding:4px 12px 16px;font-size:13px;list-style:none;overflow-y:auto}.log-game{letter-spacing:.08em;text-transform:uppercase;color:var(--dim);padding:16px 8px 6px;font-size:11px}.log{border-top:1px solid var(--line)}.log summary{cursor:pointer;border-radius:6px;grid-template-columns:1.5em minmax(8em,auto) 8.5em minmax(0,1fr) auto;grid-template-areas:"mark who turn what meta";align-items:baseline;gap:10px;padding:8px;list-style:none;display:grid}.log summary::-webkit-details-marker{display:none}.log summary:hover,.log details[open] summary{background:var(--hover)}.log summary:focus-visible{outline:2px solid var(--accent)}.log .mark{text-align:center;grid-area:mark;font-weight:700}.log.move .mark{color:var(--ok)}.log.illegal .mark,.log.error .mark{color:var(--danger)}.log.selected .mark{color:var(--accent)}.log.aborted .mark{color:var(--dim)}.log .who{grid-area:who;font-weight:600}.log .who .dim{font-weight:400}.log .turn{grid-area:turn}.log .what{text-overflow:ellipsis;white-space:nowrap;grid-area:what;overflow:hidden}.log.error .what{color:var(--danger)}.log .meta{font-variant-numeric:tabular-nums;color:var(--dim);white-space:nowrap;grid-area:meta;font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:12px}.log-facts{grid-template-columns:6.5em minmax(0,1fr);gap:4px 12px;margin:12px 8px;display:grid}.log-facts dt{letter-spacing:.08em;text-transform:uppercase;color:var(--dim);padding-top:2px;font-size:11px}.log-facts dd{overflow-wrap:anywhere;margin:0}.log h3{margin:14px 8px 6px;font-size:12px;font-weight:600}.log pre{background:var(--bg);border:1px solid var(--line);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:6px;max-height:360px;margin:0 8px;padding:10px 12px;font:12px/1.45 ui-monospace,Cascadia Code,Consolas,monospace;overflow:auto}.log .note{margin:8px 8px 14px;font-size:12px}.modes .sim-tab{margin-left:8px}.sim{flex-direction:column;flex:1;gap:16px;min-height:0;font-size:13px;display:flex;overflow-y:auto}.mono{font-variant-numeric:tabular-nums;font-family:ui-monospace,Cascadia Code,Consolas,monospace}.who-jev{color:var(--jev);font-weight:600}.who-gpt{color:var(--gpt);font-weight:600}.warn{color:var(--danger)}.sim-setup{border:1px solid var(--line);background:var(--card);border-radius:12px;gap:16px;width:min(560px,100%);margin:12px auto;padding:20px 22px;display:grid}.sim-setup h2{margin:0;font-size:18px}.sim-setup p{margin:0}.sim-setup fieldset{border:none;gap:6px;margin:0;padding:0;display:grid}.sim-setup legend,.sim-setup .field>span:first-child{margin-bottom:6px;font-weight:600}.sim-setup .field{display:grid}.sim-setup select,.sim-setup input[type=number]{height:28px;font:inherit;color:inherit;background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:0 8px}.sim-setup input[type=number]{width:5.5em}.sim-setup .inline{color:var(--dim);align-items:center;gap:8px;display:flex}.chips{flex-wrap:wrap;gap:4px;display:flex}.chips label{position:relative}.chips input{opacity:0;pointer-events:none;position:absolute}.chips span{border:1px solid var(--line);cursor:pointer;border-radius:6px;place-items:center;min-width:32px;height:28px;padding:0 10px;display:inline-grid}.chips span:hover{background:var(--hover)}.chips input:checked+span{background:var(--fg);border-color:var(--fg);color:var(--bg)}.chips input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}.sim-bar{z-index:1;border-bottom:1px solid var(--line);background:var(--bg);flex-wrap:wrap;align-items:center;gap:6px 14px;padding:4px 0 8px;display:flex;position:sticky;top:0}.sim-bar .grow{flex:1}.badge{border:1px solid var(--line);white-space:nowrap;border-radius:999px;padding:1px 8px;font-size:11px}.badge.live{border-color:var(--accent);color:var(--accent)}.badge.jev{border-color:var(--jev);color:var(--jev)}.badge.gpt{border-color:var(--gpt);color:var(--gpt)}.badge.error{border-color:var(--danger);color:var(--danger)}.badge.draw,.badge.dim{color:var(--dim)}.sim-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px;display:grid}.sim-card{border:1px solid var(--line);background:var(--card);border-radius:10px;flex-direction:column;gap:6px;min-width:0;padding:10px;font-size:12px;display:flex}.sim-card header{justify-content:space-between;align-items:center;gap:8px;margin:0;display:flex}.sim-card .badge{text-overflow:ellipsis;overflow:hidden}.sim-card p{margin:0}.sim-card .last{-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:2.8em;display:-webkit-box;overflow:hidden}.mini-board{aspect-ratio:1;border-radius:4px;width:100%;display:block}.analytics{gap:14px;display:grid}.verdict{border:1px solid var(--line);border-left:4px solid var(--draw);background:var(--card);border-radius:10px;padding:14px 16px}.verdict.jev{border-left-color:var(--jev)}.verdict.gpt{border-left-color:var(--gpt)}.verdict h2{margin:0 0 4px;font-size:17px}.verdict p{margin:0}.stacked{gap:6px;display:grid}.stacked-bar{background:var(--hover);border-radius:6px;height:22px;display:flex;overflow:hidden}.stacked-bar span{color:#fff;place-items:center;min-width:18px;font-size:11px;font-weight:600;display:grid}.legend{color:var(--dim);flex-wrap:wrap;gap:4px 14px;font-size:12px;display:flex}.legend span{align-items:center;gap:5px;display:inline-flex}.legend i{border-radius:3px;width:10px;height:10px}.tiles{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;display:grid}.tile{border:1px solid var(--line);background:var(--card);border-radius:10px;gap:2px;padding:10px 12px;display:grid}.tile-label{letter-spacing:.06em;text-transform:uppercase;color:var(--dim);font-size:11px}.tile b{font-variant-numeric:tabular-nums;font-size:17px}.tile .dim{font-size:12px}.charts{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:12px;display:grid}.chart-card{border:1px solid var(--line);background:var(--card);border-radius:10px;padding:10px 12px 12px}.chart-card h3,.endings h3{margin:0 0 6px;font-size:13px}.chart{gap:6px;margin:0;display:grid}.chart svg{width:100%;height:auto;display:block;overflow:visible}.chart .grid{stroke:var(--line);stroke-width:1px}.chart .zero{stroke:var(--dim);stroke-width:1px;stroke-dasharray:4 4}.chart .tick{fill:var(--dim);font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:11px}.chart polyline{fill:none;stroke-width:2px;stroke-linejoin:round;stroke-linecap:round;opacity:.9}.analytics-row{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));align-items:start;gap:12px;display:grid}.side-table{border-collapse:collapse;border:1px solid var(--line);background:var(--card);font-variant-numeric:tabular-nums;width:100%}.side-table th,.side-table td{border-bottom:1px solid var(--line);text-align:right;padding:5px 10px}.side-table tbody th{text-align:left;color:var(--dim);font-weight:500}.side-table tr:last-child>*{border-bottom:none}.endings{border:1px solid var(--line);background:var(--card);border-radius:10px;padding:10px 12px}.ending{grid-template-columns:9em minmax(0,1fr) 2em;align-items:center;gap:8px;padding:3px 0;display:grid}.ending-bar{background:var(--accent);border-radius:4px;height:8px}.ending b{text-align:right}.replay{flex-direction:column;flex:1;gap:12px;min-height:0;font-size:13px;display:flex}.replay-body{flex:1;gap:20px;min-height:0;display:flex;container-type:size}.replay-board{flex-direction:column;flex:none;gap:8px;width:min(100cqh - 44px,100cqw - 320px);display:flex}.replay-board .board{width:100%}.replay-controls{align-items:center;gap:4px;height:36px;display:flex}.replay-controls button{min-width:32px;padding:5px 6px}.replay-controls input[type=range]{min-width:0;accent-color:var(--accent);flex:1}.replay-side{flex-direction:column;flex:300px;gap:10px;min-width:0;display:flex;overflow-y:auto}.replay-moves{flex:none;height:auto;max-height:38%}.replay-moves li{grid-template-columns:3.5ch 1fr 1fr}.replay-moves .san{font:inherit;text-align:left;border:none;border-radius:4px;padding:0 4px}.replay-moves .san.current{background:var(--fg);color:var(--bg)}.replay-move p{margin:0 0 6px}.replay-move .reason{border-left:3px solid var(--accent);background:var(--card);border-radius:0 6px 6px 0;padding:8px 10px}.replay-move .log-list{padding:0}@media (width<=760px){.replay-body{flex-direction:column}.replay-board{align-self:center;width:min(100cqw,100cqh - 260px)}.play{flex-direction:column;gap:12px}.board{align-self:center;width:min(100cqw,100cqh - 260px)}.panel{flex:1 1 0;overflow-y:auto}.log summary{grid-template-columns:1.5em minmax(0,1fr) auto;grid-template-areas:"mark who meta"".turn turn"".what what";gap:2px 10px}.log .what{white-space:normal}}
