:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--ks-bg:var(--lightningcss-light,#f3efe6)var(--lightningcss-dark,#0a0c11);--ks-bg-glow-a:var(--lightningcss-light,#e9d8b4)var(--lightningcss-dark,#2a2140);--ks-bg-glow-b:var(--lightningcss-light,#d9e4e8)var(--lightningcss-dark,#10283a);--ks-elevated:var(--lightningcss-light,#fff)var(--lightningcss-dark,#151922);--ks-glass:var(--lightningcss-light,#ffffffa6)var(--lightningcss-dark,#161b26a6);--ks-hairline:var(--lightningcss-light,#1b1a1714)var(--lightningcss-dark,#ffffff1a);--ks-text-primary:var(--lightningcss-light,#1b1a17)var(--lightningcss-dark,#f3efe6);--ks-text-secondary:var(--lightningcss-light,#5e584d)var(--lightningcss-dark,#a9a496);--ks-accent:var(--lightningcss-light,#9a6b12)var(--lightningcss-dark,#e2b65c);--ks-on-accent:var(--lightningcss-light,#fff)var(--lightningcss-dark,#1a1305);--ks-positive:var(--lightningcss-light,#23784a)var(--lightningcss-dark,#52c98d);--ks-negative:var(--lightningcss-light,#b3261e)var(--lightningcss-dark,#f2786d);--ks-side-white:#f3efe6;--ks-side-black:#1b1a17;--ks-class-brilliant:#1baca6;--ks-class-only:#5c8bb0;--ks-class-best:#7fb34a;--ks-class-excellent:#96bc4b;--ks-class-good:#8faf8a;--ks-class-book:#a88865;--ks-class-inaccuracy:#e6b53a;--ks-class-mistake:#e58f2a;--ks-class-blunder:#ca3431;--ks-class-miss:#e2685d;--ks-arrow-best:#3fae73d9;--ks-arrow-played:#e2b65cd9;--ks-arrow-threat:#e0533dd9;--ks-arrow-idea:#4f97dbd9;--ks-bot-pip-from:#f7cb6e;--ks-bot-pip-to:#e0874a;--ks-bot-rosa-from:#f497ab;--ks-bot-rosa-to:#b8457a;--ks-bot-barnaby-from:#9cc784;--ks-bot-barnaby-to:#3f7d5a;--ks-bot-mira-from:#86cdeb;--ks-bot-mira-to:#3b78b8;--ks-bot-viktor-from:#ee7a5f;--ks-bot-viktor-to:#8e2a3a;--ks-bot-ines-from:#bba3ec;--ks-bot-ines-to:#5b45a8;--ks-bot-kai-from:#63d3c3;--ks-bot-kai-to:#1f6f80;--ks-bot-oracle-from:#4a5274;--ks-bot-oracle-to:#0e1020;--ks-space-xxs:2px;--ks-space-xs:4px;--ks-space-sm:8px;--ks-space-md:16px;--ks-space-lg:24px;--ks-space-xl:32px;--ks-space-xxl:48px;--ks-space-xxxl:64px;--ks-radius-sm:8px;--ks-radius-md:14px;--ks-radius-lg:22px;--ks-radius-xl:32px;--ks-radius-board:14px;--ks-font-serif:ui-serif, "New York", "Iowan Old Style", Georgia, serif;--ks-font-sans:ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--ks-font-mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--ks-type-display:700 40px/44px var(--ks-font-serif);--ks-type-title:650 24px/30px var(--ks-font-serif);--ks-type-headline:600 17px/22px var(--ks-font-sans);--ks-type-body:400 16px/24px var(--ks-font-sans);--ks-type-caption:500 13px/18px var(--ks-font-sans);--ks-type-clock:600 22px/26px var(--ks-font-mono);--ks-shadow-piece-rest:0 1.5px 1.5px #00000061;--ks-drop-piece-rest:drop-shadow(0 1.5px 1.5px #00000061);--ks-shadow-piece-lift:0 12px 14px #00000057;--ks-drop-piece-lift:drop-shadow(0 12px 14px #00000057);--ks-shadow-board:0 18px 48px #00000059;--ks-drop-board:drop-shadow(0 18px 48px #00000059);--ks-shadow-panel:0 10px 32px #00000038;--ks-drop-panel:drop-shadow(0 10px 32px #00000038);--ks-spring-piece-move:linear(0, .0215, .076, .1512, .2378, .3288, .419, .5052, .585, .6572, .7212, .7768, .8245, .8647, .898, .9253, .9473, .9646, .9781, .9883, .9959, 1.0013, 1.0051, 1.0074, 1.0088, 1.0093, 1.0094, 1.009, 1.0084, 1.0076, 1.0068, 1.0059, 1.0051, 1.0043, 1.0036, 1.0029, 1.0024, 1.0019, 1.0015, 1.0011, 1);--ks-spring-piece-move-ms:.43s;--ks-spring-piece-drop:linear(0, .0445, .1557, .3042, .4662, .6241, .7657, .8842, .9766, 1.0431, 1.0858, 1.1084, 1.1151, 1.1101, 1.0973, 1.0803, 1.0616, 1.0435, 1.0271, 1.0135, 1.0028, .9951, .9902, .9875, .9868, .9873, .9888, .9907, .9929, .995, .9969, .9984, .9997, 1.0006, 1.0011, 1.0014, 1.0015, 1.0015, 1.0013, 1.0011, 1);--ks-spring-piece-drop-ms:.48s;--ks-spring-panel:linear(0, .0216, .0761, .1507, .236, .325, .4131, .4968, .5743, .6442, .7063, .7605, .8071, .8466, .8798, .9072, .9297, .9478, .9622, .9736, .9824, .9891, .9941, .9978, 1.0003, 1.0021, 1.0032, 1.0038, 1.0041, 1.0041, 1.0039, 1.0037, 1.0033, 1.003, 1.0026, 1.0023, 1.0019, 1.0016, 1.0013, 1.0011, 1);--ks-spring-panel-ms:.55s;--ks-spring-arrow-draw:linear(0, .0189, .0664, .1312, .2053, .283, .3604, .4348, .5046, .5688, .6269, .6791, .7253, .7659, .8014, .8321, .8586, .8813, .9007, .9172, .9312, .9429, .9528, .9611, .968, .9738, .9785, .9825, .9858, .9884, .9906, .9925, .9939, .9951, .9961, .9969, .9975, .998, .9985, .9988, 1);--ks-spring-arrow-draw-ms:.62s;--ks-reduced-motion-ms:90ms;--ks-piece-lift-scale:1.08}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}[data-board-theme=walnut]{--ks-board-light:#e9cba1;--ks-board-dark:#9c6b3c;--ks-board-frame-top:#5a3820;--ks-board-frame-bottom:#2c1a0e;--ks-board-coord-on-light:#9c6b3c;--ks-board-coord-on-dark:#e9cba1;--ks-board-last-move:#f4c95d73;--ks-board-selected:#f4c95da6;--ks-board-legal-dot:#2c1a0e40;--ks-board-check:#e0473acc}[data-board-theme=marble]{--ks-board-light:#eeece6;--ks-board-dark:#a3a9ae;--ks-board-frame-top:#d9d5cb;--ks-board-frame-bottom:#a8a398;--ks-board-coord-on-light:#7e858b;--ks-board-coord-on-dark:#f4f2ec;--ks-board-last-move:#e9c46a80;--ks-board-selected:#e9c46ab3;--ks-board-legal-dot:#2b2e3238;--ks-board-check:#e0473acc}[data-board-theme=obsidian]{--ks-board-light:#59627a;--ks-board-dark:#232837;--ks-board-frame-top:#2c3242;--ks-board-frame-bottom:#0b0d13;--ks-board-coord-on-light:#232837;--ks-board-coord-on-dark:#8a93ab;--ks-board-last-move:#7fa7ff55;--ks-board-selected:#7fa7ff88;--ks-board-legal-dot:#fff3;--ks-board-check:#ff5a4ecc}[data-board-theme=tournament]{--ks-board-light:#eeeed2;--ks-board-dark:#769656;--ks-board-frame-top:#4e6339;--ks-board-frame-bottom:#2b3720;--ks-board-coord-on-light:#769656;--ks-board-coord-on-dark:#eeeed2;--ks-board-last-move:#f6f66980;--ks-board-selected:#f6f669b3;--ks-board-legal-dot:#1e281438;--ks-board-check:#e0473acc}:root,[data-board-theme=glacier]{--ks-board-light:#dfebf2;--ks-board-dark:#7fa5c1;--ks-board-frame-top:#6f93af;--ks-board-frame-bottom:#355270;--ks-board-coord-on-light:#5f86a3;--ks-board-coord-on-dark:#eef5f9;--ks-board-last-move:#ffe18a80;--ks-board-selected:#ffe18ab3;--ks-board-legal-dot:#1b324838;--ks-board-check:#e0473acc}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{min-height:100dvh;font:var(--ks-type-body);color:var(--ks-text-primary);background-color:var(--ks-bg);background-image:radial-gradient(60rem 40rem at 8% -10%, color-mix(in srgb, var(--ks-bg-glow-a) 85%, transparent), transparent 70%), radial-gradient(50rem 40rem at 105% 110%, color-mix(in srgb, var(--ks-bg-glow-b) 85%, transparent), transparent 70%);-webkit-font-smoothing:antialiased;background-attachment:fixed;margin:0}img{display:block}:focus-visible{outline:2px solid var(--ks-accent);outline-offset:3px}.display{font:var(--ks-type-display);letter-spacing:-.025em;margin:0;font-size:clamp(40px,5.6vw,68px);line-height:1.02}.headline{font:var(--ks-type-headline);margin:0}.caption{font:var(--ks-type-caption);color:var(--ks-text-secondary)}.eyebrow{font:var(--ks-type-caption);letter-spacing:.08em;text-transform:uppercase;color:var(--ks-accent);margin:0 0 var(--ks-space-md)}.lead{color:var(--ks-text-secondary);max-width:34rem;margin:var(--ks-space-lg) 0 0;font-size:19px;line-height:1.5}.lead em{color:var(--ks-text-primary);font-family:var(--ks-font-serif)}.glass{background:var(--ks-glass);-webkit-backdrop-filter:blur(22px)saturate(160%);border:1px solid var(--ks-hairline);border-radius:var(--ks-radius-lg);box-shadow:var(--ks-shadow-panel)}@media (prefers-reduced-transparency:reduce){.glass{background:var(--ks-elevated);-webkit-backdrop-filter:none}}.page{max-width:1200px;padding:var(--ks-space-lg) max(var(--ks-space-md), env(safe-area-inset-left)) var(--ks-space-xl);flex-direction:column;min-height:100dvh;margin:0 auto;display:flex}.masthead{padding-bottom:var(--ks-space-xl);align-items:center;display:flex}.wordmark{align-items:center;gap:var(--ks-space-sm);font:var(--ks-type-title);color:var(--ks-text-primary);text-decoration:none;display:inline-flex}.wordmark-mark{width:34px;height:34px;filter:var(--ks-drop-piece-rest)}.hero{gap:var(--ks-space-xl);flex:1;grid-template-columns:minmax(0,1fr);grid-template-areas:"intro""board""features";display:grid}.hero-intro{grid-area:intro}.hero-board{grid-area:board}.hero-features{grid-area:features}@media (width>=960px){.hero{column-gap:var(--ks-space-xxl);row-gap:var(--ks-space-xl);grid-template:"intro board""features board"1fr/minmax(0,1fr) minmax(0,1.05fr);align-items:start}.hero-intro{align-self:end}.hero-board{align-self:center}}.features{gap:var(--ks-space-sm);margin:0;padding:0;list-style:none;display:grid}.feature{padding:var(--ks-space-md) var(--ks-space-lg)}.feature p{margin:var(--ks-space-xs) 0 0;color:var(--ks-text-secondary)}.hero-board{width:100%;max-width:600px;animation:rise var(--ks-spring-panel-ms) var(--ks-spring-panel) both;justify-self:center}@keyframes rise{0%{opacity:0;transform:translateY(24px)scale(.98)}}@media (prefers-reduced-motion:reduce){.hero-board{animation:fade var(--ks-reduced-motion-ms) linear both}@keyframes fade{0%{opacity:0}}}.coach{margin:var(--ks-space-lg) 0 0;padding:var(--ks-space-md) var(--ks-space-lg);gap:var(--ks-space-md);align-items:flex-start;display:flex}.coach-badge{font:var(--ks-type-caption);letter-spacing:.04em;color:var(--ks-on-accent);background:var(--ks-accent);padding:var(--ks-space-xs) var(--ks-space-sm);border-radius:999px;flex:none;font-weight:700}.coach blockquote{font-family:var(--ks-font-serif);margin:0;font-size:17px;line-height:1.5}.themes{margin:var(--ks-space-lg) 0 0;align-items:center;gap:var(--ks-space-sm) var(--ks-space-md);border:0;flex-wrap:wrap;padding:0;display:flex}.themes legend{float:left;margin-right:var(--ks-space-xs)}.theme-swatch{align-items:center;gap:var(--ks-space-sm);cursor:pointer;display:inline-flex;position:relative}.theme-swatch input{opacity:0;width:1px;height:1px;position:absolute}.swatch{background:conic-gradient(var(--ks-board-light) 0 25%, var(--ks-board-dark) 0 50%, var(--ks-board-light) 0 75%, var(--ks-board-dark) 0);width:28px;height:28px;box-shadow:0 0 0 1px var(--ks-hairline), 0 2px 6px #0003;transition:transform var(--ks-spring-piece-drop-ms) var(--ks-spring-piece-drop);border-radius:50%}.swatch-name{font:var(--ks-type-caption);color:var(--ks-text-secondary)}.theme-swatch input:checked+.swatch{box-shadow:0 0 0 2px var(--ks-bg), 0 0 0 4px var(--ks-accent);transform:scale(1.08)}.theme-swatch input:checked~.swatch-name{color:var(--ks-text-primary)}.theme-swatch input:focus-visible+.swatch{outline:2px solid var(--ks-accent);outline-offset:4px}@media (prefers-reduced-motion:reduce){.swatch{transition-duration:var(--ks-reduced-motion-ms);transition-timing-function:linear}}.footer{justify-content:space-between;gap:var(--ks-space-sm);padding-top:var(--ks-space-xxl);flex-wrap:wrap;display:flex}.build{font-family:var(--ks-font-mono)}.hero-actions{margin-top:var(--ks-space-xl);gap:var(--ks-space-sm);flex-wrap:wrap;display:flex}a.button{justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.board-frame{border-radius:var(--ks-radius-board);background:linear-gradient(160deg, var(--ks-board-frame-top), var(--ks-board-frame-bottom));box-shadow:var(--ks-shadow-board), inset 0 1px 0 #ffffff2e, inset 0 -1px 0 #00000059;padding:2.4%}.board{aspect-ratio:1;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;border-radius:4px;position:relative;overflow:hidden;box-shadow:0 0 0 1px #00000040;container-type:inline-size}.board:after{content:"";z-index:1;pointer-events:none;mix-blend-mode:soft-light;background:radial-gradient(120% 90% at 20% 0,#ffffff2e,#0000 55%),linear-gradient(#0000 60%,#0000001a);position:absolute;inset:0}.board-grid{grid-template-rows:repeat(8,minmax(0,1fr));display:grid;position:absolute;inset:0}.board-row{grid-template-columns:repeat(8,minmax(0,1fr));display:grid}.sq-cell{min-width:0;min-height:0;display:block;position:relative}.sq{width:100%;height:100%;font:inherit;color:inherit;cursor:default;border:0;border-radius:0;margin:0;padding:0;display:block;position:relative}.board[data-interactive] .sq{cursor:pointer}.sq:disabled{opacity:1}.sq:focus-visible{box-shadow:inset 0 0 0 max(2px, .5cqi) var(--ks-accent);z-index:2;outline:none}.sq-light{background:linear-gradient(135deg, #ffffff12, #00000008), var(--ks-board-light)}.sq-dark{background:linear-gradient(135deg, #ffffff0d, #0000000f), var(--ks-board-dark)}.sq[data-highlight]:before,.sq[data-over]:after{content:"";position:absolute;inset:0}.sq[data-highlight=lastMove]:before{background:var(--ks-board-last-move)}.sq[data-highlight=selected]:before{background:var(--ks-board-selected)}.sq[data-highlight=check]:before{background:radial-gradient(circle, var(--ks-board-check) 0%, transparent 72%)}.sq[data-over]:after{box-shadow:inset 0 0 0 max(2px,.55cqi) #ffffffa6}.hint{pointer-events:none;border-radius:50%;position:absolute}.hint-move{box-shadow:inset 0 0 0 1.1cqi var(--ks-board-legal-dot);inset:30%}.hint-capture{box-shadow:inset 0 0 0 1.25cqi var(--ks-board-legal-dot);inset:4%}.coord{font-family:var(--ks-font-sans);pointer-events:none;z-index:1;font-size:max(9px,2.1cqi);font-weight:650;line-height:1;position:absolute}.coord-rank{top:6%;left:7%}.coord-file{bottom:5%;right:8%}.sq-light .coord{color:var(--ks-board-coord-on-light)}.sq-dark .coord{color:var(--ks-board-coord-on-dark)}.board-pieces{z-index:2;pointer-events:none;position:absolute;inset:0}.board[data-interactive] .board-pieces{pointer-events:auto;touch-action:none}.piece{width:12.5%;height:12.5%;filter:var(--ks-drop-piece-rest);pointer-events:none;will-change:transform;transition:transform var(--ks-spring-piece-move-ms) var(--ks-spring-piece-move), opacity .24s ease, filter .2s ease;position:absolute;top:0;left:0}.piece[data-lifted]{z-index:3;filter:var(--ks-drop-piece-lift);cursor:grabbing;transition:filter .16s}.piece[data-leaving]{opacity:0}@media (prefers-reduced-motion:reduce){.piece{transition:opacity var(--ks-reduced-motion-ms) linear}}.arrows{z-index:3;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.arrow-best{fill:var(--ks-arrow-best)}.arrow-played{fill:var(--ks-arrow-played)}.arrow-threat{fill:var(--ks-arrow-threat)}.arrow-idea{fill:var(--ks-arrow-idea)}.promotion-scrim{z-index:4;-webkit-backdrop-filter:blur(2px);background:#00000059;position:absolute;inset:0}.promotion{background:var(--ks-elevated);width:12.5%;height:50%;box-shadow:var(--ks-shadow-panel), 0 0 0 1px var(--ks-hairline);animation:promotion-in var(--ks-spring-panel-ms) var(--ks-spring-panel) both;border-radius:10px;grid-template-rows:repeat(4,minmax(0,1fr));display:grid;position:absolute;overflow:hidden}.promotion-choice{cursor:pointer;background:0 0;border:0;margin:0;padding:6%}.promotion-choice:hover,.promotion-choice:focus-visible{background:color-mix(in srgb, var(--ks-accent) 22%, transparent);outline:none}.promotion-choice img{width:100%;height:100%;filter:var(--ks-drop-piece-rest);display:block}@keyframes promotion-in{0%{opacity:0;transform:scale(.92)}}@media (prefers-reduced-motion:reduce){.promotion{animation:none}}.board-badge{z-index:4;pointer-events:none;width:12.5%;height:12.5%;animation:badge-in var(--ks-spring-piece-drop-ms) var(--ks-spring-piece-drop) both;position:absolute;top:0;left:0}.board-badge span{min-width:46%;height:46%;font:800 clamp(9px, 1.6vw, 14px) / 1 var(--ks-font-sans);letter-spacing:-.04em;color:#fff;background:var(--tone);border-radius:999px;place-items:center;padding:0 6%;display:grid;position:absolute;top:-14%;right:-14%;box-shadow:0 0 0 2px #ffffffd9,0 2px 6px #00000059}@keyframes badge-in{0%{opacity:0;scale:.4}}@media (prefers-reduced-motion:reduce){.board-badge{animation:none}}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.title{font:var(--ks-type-title);margin:0}.mono{font-family:var(--ks-font-mono)}.button{min-height:44px;padding:0 var(--ks-space-md);border:1px solid var(--ks-hairline);background:color-mix(in srgb, var(--ks-text-primary) 5%, transparent);color:var(--ks-text-primary);font:var(--ks-type-headline);cursor:pointer;border-radius:12px;font-size:15px;transition:background .16s,transform .16s}.button:hover:not(:disabled){background:color-mix(in srgb, var(--ks-text-primary) 10%, transparent)}.button:active:not(:disabled){transform:scale(.98)}.button:disabled{opacity:.45;cursor:default}.button-primary{background:var(--ks-accent);border-color:var(--ks-accent);color:var(--ks-on-accent)}.button-primary:hover:not(:disabled){background:color-mix(in srgb, var(--ks-accent) 88%, var(--ks-text-primary))}.button-large{min-height:52px;font-size:17px}.button-small{min-height:36px;padding:0 var(--ks-space-sm);font-size:14px}.link-button{min-height:36px;padding:0 var(--ks-space-xs);color:var(--ks-accent);font:var(--ks-type-headline);cursor:pointer;background:0 0;border:0;font-size:14px}.link-button:hover{text-underline-offset:3px;text-decoration:underline}.icon-button{width:44px;height:44px;color:var(--ks-text-primary);cursor:pointer;background:0 0;border:0;border-radius:12px;place-items:center;display:grid}.icon-button:hover:not(:disabled){background:color-mix(in srgb, var(--ks-text-primary) 8%, transparent)}.icon-button:disabled{opacity:.35;cursor:default}.icon-button svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px}.page-play .masthead{padding-bottom:var(--ks-space-lg)}.play{gap:var(--ks-space-lg);grid-template-columns:minmax(0,1fr);align-items:start;display:grid}@media (width>=980px){.play{grid-template-columns:minmax(0,1fr) minmax(300px,360px)}}.play-board{justify-self:center;gap:var(--ks-space-sm);flex-direction:column;width:100%;min-width:min(100%,320px);max-width:min(680px,100dvh - 210px);display:flex}.play-panel{padding:var(--ks-space-md);gap:var(--ks-space-md);flex-direction:column;min-width:0;display:flex}.play-status-line{font:var(--ks-type-title);margin:0;font-size:20px}.play-status .caption{margin:var(--ks-space-xxs) 0 0}.player{align-items:center;gap:var(--ks-space-sm);min-height:44px;display:flex}.player-avatar{width:36px;height:36px;font:var(--ks-type-headline);box-shadow:0 0 0 1px var(--ks-hairline);border-radius:50%;flex:none;place-items:center;display:grid}.player-avatar-w{background:var(--ks-side-white);color:var(--ks-side-black)}.player-avatar-b{background:var(--ks-side-black);color:var(--ks-side-white)}.player[data-active] .player-avatar{box-shadow:0 0 0 2px var(--ks-bg), 0 0 0 4px var(--ks-accent)}.player-text{flex-direction:column;flex:auto;gap:2px;min-width:0;display:flex}.player-name{font:var(--ks-type-headline);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.player-captured{align-items:center;min-height:18px;display:flex}.player-captured img{width:18px;height:18px;margin-right:-5px}.player-lead{font:var(--ks-type-caption);color:var(--ks-text-secondary);margin-left:10px;font-weight:650}.clock{text-align:center;min-width:84px;font:var(--ks-type-clock);font-variant-numeric:tabular-nums;background:color-mix(in srgb, var(--ks-text-primary) 6%, transparent);color:var(--ks-text-secondary);border-radius:10px;flex:none;padding:6px 12px;transition:background .2s,color .2s}.clock[data-active]{background:var(--ks-text-primary);color:var(--ks-bg)}.clock[data-low]{background:var(--ks-negative);color:var(--ks-bg)}.moves{border-top:1px solid var(--ks-hairline);border-bottom:1px solid var(--ks-hairline);max-height:260px;margin:0;padding:0;list-style:none;overflow-y:auto}.moves-row{align-items:center;gap:var(--ks-space-xs);grid-template-columns:3ch minmax(0,1fr) minmax(0,1fr);padding:2px 0;display:grid}.moves-row:nth-child(2n){background:color-mix(in srgb, var(--ks-text-primary) 3%, transparent)}.moves-number{font:var(--ks-type-caption);color:var(--ks-text-secondary);text-align:right;font-variant-numeric:tabular-nums}.move,.move-empty{min-height:32px;padding:0 var(--ks-space-sm);text-align:left;font:var(--ks-type-body);border-radius:8px;font-weight:600}.move{color:var(--ks-text-primary);cursor:pointer;background:0 0;border:0}.move:hover{background:color-mix(in srgb, var(--ks-text-primary) 8%, transparent)}.move[aria-current=step]{background:var(--ks-accent);color:var(--ks-on-accent)}.move-empty{color:var(--ks-text-secondary);align-items:center;display:flex}.moves-empty{padding:var(--ks-space-md) var(--ks-space-sm);color:var(--ks-text-secondary)}.step{justify-content:center;gap:var(--ks-space-xs);display:flex}.viewing{justify-content:space-between;align-items:center;gap:var(--ks-space-sm);padding:var(--ks-space-sm) var(--ks-space-sm) var(--ks-space-sm) var(--ks-space-md);background:color-mix(in srgb, var(--ks-accent) 14%, transparent);font:var(--ks-type-caption);border-radius:12px;flex-wrap:wrap;font-size:14px;display:flex}.actions{gap:var(--ks-space-sm);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.actions-quiet{gap:var(--ks-space-xs) var(--ks-space-md);flex-wrap:wrap;display:flex}.confirm{padding:var(--ks-space-md);background:color-mix(in srgb, var(--ks-text-primary) 6%, transparent);border-radius:14px}.confirm p{margin:0 0 var(--ks-space-sm);font:var(--ks-type-headline)}.confirm-buttons{gap:var(--ks-space-sm);display:flex}.notice{min-height:1.2em;font:var(--ks-type-caption);color:var(--ks-positive);margin:0}.play-start{align-items:center;gap:var(--ks-space-md);flex-direction:column;display:flex}.new-game{width:100%;max-width:560px;padding:var(--ks-space-lg);gap:var(--ks-space-lg);flex-direction:column;display:flex}.new-game-lead{margin:calc(-1 * var(--ks-space-sm)) 0 0;color:var(--ks-text-secondary)}.field-row{gap:var(--ks-space-md);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));display:grid}.field{gap:var(--ks-space-xs);border:0;flex-direction:column;min-width:0;margin:0;padding:0;display:flex}.field-label{font:var(--ks-type-caption);letter-spacing:.04em;text-transform:uppercase;color:var(--ks-text-secondary);margin-bottom:var(--ks-space-xs);padding:0;font-weight:650}.input{min-height:44px;padding:var(--ks-space-sm) var(--ks-space-md);border:1px solid var(--ks-hairline);background:var(--ks-elevated);color:var(--ks-text-primary);font:var(--ks-type-body);resize:vertical;border-radius:12px}.input:focus-visible{outline:2px solid var(--ks-accent);outline-offset:1px}.input[aria-invalid=true]{border-color:var(--ks-negative)}.field-error{color:var(--ks-negative);font:var(--ks-type-caption);margin:0;font-size:14px}.chips{gap:var(--ks-space-sm);flex-wrap:wrap;display:flex}.chip{cursor:pointer;position:relative}.chip input{opacity:0;width:1px;height:1px;position:absolute}.chip span{min-height:44px;padding:0 var(--ks-space-md);border:1px solid var(--ks-hairline);background:color-mix(in srgb, var(--ks-text-primary) 4%, transparent);font:var(--ks-type-headline);font-variant-numeric:tabular-nums;border-radius:12px;align-items:center;font-size:15px;display:inline-flex}.chip input:checked+span{background:var(--ks-accent);border-color:var(--ks-accent);color:var(--ks-on-accent)}.chip input:focus-visible+span{outline:2px solid var(--ks-accent);outline-offset:2px}.toggle{align-items:flex-start;gap:var(--ks-space-sm);cursor:pointer;display:flex}.toggle input{width:22px;height:22px;accent-color:var(--ks-accent);margin:2px 0 0}.toggle-title{font:var(--ks-type-headline);display:block}.disclosure summary{cursor:pointer;font:var(--ks-type-headline);color:var(--ks-accent);min-height:32px}.disclosure[open] summary{margin-bottom:var(--ks-space-sm)}.game-over.glass{width:min(92vw,420px);padding:var(--ks-space-xl) var(--ks-space-lg) var(--ks-space-lg);color:var(--ks-text-primary);text-align:center;background:var(--ks-elevated);-webkit-backdrop-filter:none}.game-over::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#00000059}.game-over[open]{animation:game-over-in var(--ks-spring-panel-ms) var(--ks-spring-panel) both}.game-over-title{font:var(--ks-type-display);margin:0;font-size:34px}.game-over-result{margin:var(--ks-space-sm) 0 0;color:var(--ks-text-secondary);font-size:17px}.game-over-score{margin:var(--ks-space-md) 0 var(--ks-space-lg);font:var(--ks-type-clock);font-variant-numeric:tabular-nums;font-size:28px}.game-over-buttons{gap:var(--ks-space-sm);display:grid}@keyframes game-over-in{0%{opacity:0;transform:translateY(16px)scale(.97)}}@media (prefers-reduced-motion:reduce){.game-over[open]{animation:none}}.bot-avatar{background:linear-gradient(135deg, var(--bot-from), var(--bot-to));box-shadow:inset 0 1px 0 #ffffff59, inset 0 -6px 12px #0000002e, 0 0 0 1px var(--ks-hairline);border-radius:50%;flex:none;place-items:center;display:grid;position:relative}.bot-avatar img{filter:drop-shadow(0 2px 2px #0000004d);width:72%;height:72%}.bot-avatar-small{width:36px;height:36px}.bot-avatar-large{width:72px;height:72px}.player[data-active] .bot-avatar{box-shadow:inset 0 1px 0 #ffffff59, 0 0 0 2px var(--ks-bg), 0 0 0 4px var(--ks-accent)}.player-detail{margin-left:var(--ks-space-xs);font:var(--ks-type-caption);color:var(--ks-text-secondary);font-variant-numeric:tabular-nums;font-weight:650}.bot-picker{width:100%;max-width:720px;padding:var(--ks-space-lg);gap:var(--ks-space-lg);flex-direction:column;display:flex}.bot-ladder{gap:var(--ks-space-sm);border:0;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));min-width:0;margin:0;padding:0;display:grid}.bot-card{align-items:center;gap:var(--ks-space-sm);min-height:64px;padding:var(--ks-space-sm) var(--ks-space-md) var(--ks-space-sm) var(--ks-space-sm);border:1px solid var(--ks-hairline);background:color-mix(in srgb, var(--ks-text-primary) 3%, transparent);cursor:pointer;transition:transform var(--ks-spring-panel-ms) var(--ks-spring-panel), background-color .16s ease, border-color .16s ease;border-radius:16px;display:flex;position:relative}.bot-card:hover{background:color-mix(in srgb, var(--ks-text-primary) 6%, transparent)}.bot-card input{opacity:0;width:1px;height:1px;position:absolute}.bot-card[data-selected]{border-color:var(--ks-accent);background:color-mix(in srgb, var(--ks-accent) 12%, transparent);transform:translateY(-1px)}.bot-card:has(input:focus-visible){outline:2px solid var(--ks-accent);outline-offset:2px}.bot-card .bot-avatar{width:44px;height:44px}.bot-card-text{flex-direction:column;flex:auto;min-width:0;display:flex}.bot-card-name{font:var(--ks-type-headline)}.bot-card-tagline{font:var(--ks-type-caption);color:var(--ks-text-secondary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.bot-elo{background:color-mix(in srgb, var(--ks-text-primary) 8%, transparent);font:var(--ks-type-caption);font-variant-numeric:tabular-nums;color:var(--ks-text-secondary);vertical-align:middle;border-radius:999px;flex:none;padding:2px 8px;font-weight:650;display:inline-block}.bot-detail{align-items:center;gap:var(--ks-space-md);padding:var(--ks-space-md);background:color-mix(in srgb, var(--ks-text-primary) 4%, transparent);border-radius:16px;display:flex}.bot-detail .headline{margin:0 0 var(--ks-space-xxs)}.bot-bio{color:var(--ks-text-secondary);margin:0}.thinking-dots{margin-left:var(--ks-space-sm);vertical-align:middle;gap:3px;display:inline-flex}.thinking-dots span{background:var(--ks-accent);opacity:.3;border-radius:50%;width:6px;height:6px;animation:.9s infinite thinking}.thinking-dots span:nth-child(2){animation-delay:.3s}.thinking-dots span:nth-child(3){animation-delay:.6s}@keyframes thinking{0%,33%{opacity:1}34%,to{opacity:.3}}@media (prefers-reduced-motion:reduce){.thinking-dots span{opacity:1;animation:none}.bot-card{transition:none}.bot-card[data-selected]{transform:none}}.coach-bubble{align-items:center;gap:var(--ks-space-sm);padding:var(--ks-space-sm) var(--ks-space-md);animation:bubble-in var(--ks-spring-panel-ms) var(--ks-spring-panel) both;border-radius:16px;flex-wrap:wrap;display:flex}.coach-bubble p{font-family:var(--ks-font-serif);flex:220px;margin:0;font-size:17px;line-height:1.4}.coach-bubble[data-tone=warning]{box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--ks-class-blunder) 55%, transparent), var(--ks-shadow-panel)}.coach-bubble-actions{gap:var(--ks-space-sm);display:flex}@keyframes bubble-in{0%{opacity:0;transform:translateY(6px)}}@media (prefers-reduced-motion:reduce){.coach-bubble{animation:none}}.masthead-link{margin-left:auto}.review{gap:var(--ks-space-lg);align-items:start;display:grid}@media (width>=980px){.review{grid-template-columns:minmax(0,1fr) 380px}}.review-board{gap:var(--ks-space-sm);flex-direction:column;min-width:0;display:flex}.review-board-row{gap:var(--ks-space-sm);grid-template-columns:22px minmax(0,1fr);align-items:stretch;display:grid}.eval-bar{background:var(--ks-side-black);box-shadow:0 0 0 1px var(--ks-hairline);border-radius:8px;position:relative;overflow:hidden}.eval-bar-white{background:var(--ks-side-white);transition:height var(--ks-spring-panel-ms) var(--ks-spring-panel);position:absolute;bottom:0;left:0;right:0}.eval-bar[data-orientation=b] .eval-bar-white{top:0;bottom:auto}.eval-bar-value{text-align:center;font:700 10px / 1 var(--ks-font-sans);color:var(--ks-side-black);font-variant-numeric:tabular-nums;position:absolute;bottom:6px;left:0;right:0}.review-panel{padding:var(--ks-space-md);gap:var(--ks-space-md);flex-direction:column;min-width:0;display:flex}.review-sides{gap:var(--ks-space-sm);grid-template-columns:1fr 1fr;display:grid}.review-side{gap:var(--ks-space-sm);align-items:flex-start;display:flex}.review-side p{margin:0}.review-side-dot{width:14px;height:14px;box-shadow:0 0 0 1px var(--ks-hairline);border-radius:50%;flex:none;margin-top:4px}.review-side-dot-w{background:var(--ks-side-white)}.review-side-dot-b{background:var(--ks-side-black)}.review-side-name{font:var(--ks-type-headline);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.review-accuracy{font:var(--ks-type-display);font-variant-numeric:tabular-nums;font-size:34px;line-height:1.1}.review-accuracy-unit{font:var(--ks-type-caption);color:var(--ks-text-secondary);margin-left:6px}.eval-graph{margin:0}.eval-graph svg{cursor:pointer;width:100%;height:110px;box-shadow:0 0 0 1px var(--ks-hairline);border-radius:12px;display:block}.eval-graph-black{fill:var(--ks-side-black)}.eval-graph-white{fill:var(--ks-side-white)}.eval-graph-mid{stroke:var(--ks-accent);stroke-opacity:.5;stroke-dasharray:4 4;vector-effect:non-scaling-stroke}.eval-graph-cursor{stroke:var(--ks-accent);stroke-width:2px;vector-effect:non-scaling-stroke}.eval-graph circle{stroke:#fff;stroke-width:1.5px;vector-effect:non-scaling-stroke}.coach-card{padding:var(--ks-space-md);background:color-mix(in srgb, var(--ks-accent) 9%, transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--ks-accent) 30%, transparent);gap:var(--ks-space-sm);border-radius:16px;flex-direction:column;align-items:flex-start;display:flex}.coach-card-head{align-items:center;gap:var(--ks-space-sm);margin:0;display:flex}.coach-card-move{font:var(--ks-type-headline)}.coach-card-class{font:var(--ks-type-caption);color:var(--ks-text-secondary);font-weight:700}.coach-card-text{font-family:var(--ks-font-serif);margin:0;font-size:17px;line-height:1.45}.class-badge{color:#fff;min-width:26px;height:26px;font:800 13px / 1 var(--ks-font-sans);letter-spacing:-.04em;border-radius:999px;place-items:center;padding:0 6px;display:inline-grid}.class-badge-small{min-width:18px;height:18px;margin-left:4px;padding:0 4px;font-size:10px}.key-nav{justify-content:space-between;align-items:center;gap:var(--ks-space-sm);width:100%;display:flex}.review-moves{max-height:260px;margin:0;padding:0;list-style:none;overflow-y:auto}.review-moves-row{gap:var(--ks-space-xs);grid-template-columns:36px 1fr 1fr;align-items:center;display:grid}.review-move-empty{min-height:32px}.review-move{min-height:32px;padding:0 var(--ks-space-sm);color:var(--ks-text-primary);font:var(--ks-type-body);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:8px;grid-column:2;align-items:center;font-weight:600;display:inline-flex}.review-move:hover{background:color-mix(in srgb, var(--ks-text-primary) 6%, transparent)}.review-move[aria-current=true]{background:var(--ks-accent);color:var(--ks-on-accent)}.review-move:focus-visible{outline:2px solid var(--ks-accent);outline-offset:1px}.review-legend summary{cursor:pointer;font:var(--ks-type-caption);color:var(--ks-text-secondary)}.review-legend ul{margin:var(--ks-space-sm) 0 0;gap:var(--ks-space-xs);font:var(--ks-type-caption);grid-template-columns:1fr 1fr;padding:0;list-style:none;display:grid}.review-legend .class-badge{margin:0 6px 0 0}.review-empty{max-width:480px;margin:var(--ks-space-xl) auto;padding:var(--ks-space-lg);gap:var(--ks-space-sm);flex-direction:column;align-items:flex-start;display:flex}.review-progress{width:100%;accent-color:var(--ks-accent)}@media (prefers-reduced-motion:reduce){.eval-bar-white{transition:none}}
