@layer reset,vendor,app;@layer reset{*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}}@layer vendor{.cg-wrap{box-sizing:content-box;position:relative;display:block}cg-container{position:absolute;width:100%;height:100%;display:block;top:0}cg-board{position:absolute;top:0;left:0;width:100%;height:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;line-height:0;background-size:cover}.cg-wrap.manipulable cg-board{cursor:pointer}cg-board square{position:absolute;top:0;left:0;width:12.5%;height:12.5%;pointer-events:none}cg-board square.move-dest{pointer-events:auto}cg-board square.last-move{will-change:transform}.cg-wrap piece{position:absolute;top:0;left:0;width:12.5%;height:12.5%;background-size:cover;z-index:2;will-change:transform;pointer-events:none}cg-board piece.dragging{cursor:move;z-index:11!important}piece.anim{z-index:8}piece.fading{z-index:1;opacity:.5}.cg-wrap piece.ghost{opacity:.3}.cg-wrap piece svg{overflow:hidden;position:relative;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:2;opacity:.6}.cg-wrap cg-auto-pieces,.cg-wrap .cg-shapes,.cg-wrap .cg-custom-svgs,.cg-wrap .cg-shapes-below,.cg-wrap .cg-custom-below{overflow:visible;position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.cg-wrap cg-auto-pieces{z-index:2}.cg-wrap cg-auto-pieces piece{opacity:.3}.cg-wrap .cg-shapes{overflow:hidden;opacity:.6;z-index:2}.cg-wrap .cg-shapes-below{overflow:hidden;z-index:1}.cg-wrap .cg-custom-below{z-index:1}.cg-wrap .cg-custom-svgs{z-index:9}.cg-wrap .cg-custom-svgs svg,.cg-wrap .cg-custom-below svg{overflow:visible}.cg-wrap coords{position:absolute;display:flex;pointer-events:none;opacity:.8;font-family:sans-serif;font-size:9px}.cg-wrap coords.ranks{left:4px;top:-20px;flex-flow:column-reverse;height:100%;width:12px}.cg-wrap coords.ranks.black{flex-flow:column}.cg-wrap coords.ranks.left{left:-15px;align-items:flex-end}.cg-wrap coords.files{bottom:-4px;left:24px;flex-flow:row;width:100%;height:16px;text-transform:uppercase;text-align:center}.cg-wrap coords.files.black{flex-flow:row-reverse}.cg-wrap coords coord{flex:1 1 auto}.cg-wrap coords.ranks coord{transform:translateY(39%)}.cg-wrap coords.squares{bottom:0;left:0;text-transform:uppercase;text-align:right;flex-flow:column-reverse;height:100%;width:12.5%}.cg-wrap coords.squares.black{flex-flow:column}.cg-wrap coords.squares.left{text-align:left}.cg-wrap coords.squares coord{padding:6% 4%}.cg-wrap coords.squares.rank2{transform:translate(100%)}.cg-wrap coords.squares.rank3{transform:translate(200%)}.cg-wrap coords.squares.rank4{transform:translate(300%)}.cg-wrap coords.squares.rank5{transform:translate(400%)}.cg-wrap coords.squares.rank6{transform:translate(500%)}.cg-wrap coords.squares.rank7{transform:translate(600%)}.cg-wrap coords.squares.rank8{transform:translate(700%)}}@font-face{font-family:Inter;src:url(/static/dist/fonts/Inter-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Inter;src:url(/static/dist/fonts/Inter-Medium.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Inter;src:url(/static/dist/fonts/Inter-SemiBold.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/static/dist/fonts/JetBrainsMono-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/static/dist/fonts/JetBrainsMono-Medium.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}@layer app{:root{--bg: #0e0d0c;--surface: #161513;--surface-2: #1d1b18;--surface-3: #252320;--border: #2c2a27;--border-2: #3d3a36;--text: #e8e4de;--text-dim: #9c9992;--text-muted: #96908a;--tray-bg: #b0a998;--tray-bg-dark: #726a5a;--tray-border: #8a8070;--gold: #c89b3c;--gold-dim: #7a5e22;--gold-glow: rgba(200, 155, 60, .14);--win: #4ade80;--loss: #f87171;--loss-glow: rgba(248, 113, 113, .14);--draw: #94a3b8;--amber: #d9a441;--blue: #60a5fa;--font-ui: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--board-light: #f0d9b5;--board-dark: #b58863;--board-highlight: rgba(155, 199, 0, .41);--progress-from: #3b82f6;--progress-to: #60a5fa;--pip-black-bg: #1a1816;--pip-black-border: #555;--turn-active-bg: #242220;--text-xs: .75rem;--text-sm: .8125rem;--text-md: .875rem;--text-lg: 1rem;--text-xl: 1.25rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--header-h: calc(3rem + env(safe-area-inset-top, 0px)) ;--thead-row-h: 1.75rem;--thead-root-h: 1.9375rem;--pgn-rank-w: 2.0625rem;--pgn-rank-w-compact: 3.125rem;--control-h: 2rem;--control-h-sm: 1.75rem;--touch-target: 2.75rem;--fen-icon-btn-w: 1.9375rem;--fen-row-gap: .3125rem;--r-sm: .25rem;--r-md: .375rem;--r-lg: .5rem;--shadow: 0 8px 30px rgba(0,0,0,.55);--shadow-pop: 0 8px 24px rgba(0,0,0,.45);--shadow-panel: -6px 10px 32px rgba(0,0,0,.6);--shadow-board: 0 0 0 1px var(--border), 0 14px 38px rgba(0,0,0,.6);--scrim: rgba(0,0,0,.72);--dur: .14s;--tr: var(--dur) ease;--board-size-max: 720px;--board-size-cap: min(var(--board-size-max), clamp(18.75rem, min(23.4375vw, 41.6667vh), 31.5rem));--board-size: var(--board-size-cap);--spare-size: calc(var(--board-size) / 8)}@media (hover: none) and (pointer: coarse){:root{--control-h: 2.75rem;--control-h-sm: 2.75rem}}}@layer app{html{font-size:100%}html,body{height:100%}body{min-height:100%;overflow-y:auto;overflow-x:hidden;font-family:var(--font-ui);font-size:var(--text-lg);line-height:1.5;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}button{cursor:pointer;font:inherit;touch-action:manipulation}a{color:var(--text-dim);text-decoration:none}a:hover{color:var(--text)}:focus-visible{outline:2px solid var(--gold);outline-offset:2px}button,.btn,a{-webkit-tap-highlight-color:transparent}.sr-only{position:absolute;width:.0625rem;height:.0625rem;padding:0;margin:-.0625rem;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}*{scrollbar-width:thin;scrollbar-color:var(--border-2) transparent}::-webkit-scrollbar{width:.375rem;height:.375rem}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-2);border-radius:.1875rem}.icon{width:1rem;height:1rem;flex-shrink:0}}@layer app{@media (min-width: 1181px){html.explorer{font-size:clamp(100%,min(81.25% + .1953vw,78.5% + .442vh),125%)}:root{--content-max: 112rem;--board-height-font-size: clamp(16px, calc(12.56px + .442vh) , 20px);--board-fit-h: calc((100vh - 15.75 * var(--board-height-font-size) - 4px) / 1.25);--board-fit-w: calc(min(100vw, var(--content-max)) - 57rem - var(--pgn-col-w));--board-size: min(var(--board-size-max), max(20.5rem, min(var(--board-fit-h), var(--board-fit-w))))}.right-col,.pgn-col{contain:size}.content{align-content:start}}:root{--pgn-col-w: 16rem}.content{display:grid;grid-template-columns:var(--board-size) minmax(21.25rem,1fr) var(--pgn-col-w);gap:var(--space-5);padding:1.125rem var(--space-6);min-height:calc(100vh - var(--header-h));min-height:calc(100dvh - var(--header-h));max-width:var(--content-max, 96.25rem);margin:0 auto;overflow:visible}.left-col{display:flex;flex-direction:column;gap:.5625rem;min-height:26rem}.right-col{min-width:0;min-height:22rem;display:flex;flex-direction:column}.pgn-col{min-height:22rem;display:flex;flex-direction:column}}@layer app{.site-header{display:flex;align-items:center;gap:.625rem;height:var(--header-h);padding:env(safe-area-inset-top,0px) var(--space-5) 0;background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;-webkit-user-select:none;user-select:none}.site-header__logo{width:1.125rem;height:1.125rem;line-height:1;flex-shrink:0}.site-header__brand{display:flex;align-items:baseline;gap:.625rem;line-height:1}.site-header__title{font-size:var(--text-sm);font-weight:600;letter-spacing:.02em;color:var(--text)}.site-header__sep{color:var(--text-muted);font-size:var(--text-xs)}.site-header__sub{font-size:var(--text-xs);color:var(--text-dim);letter-spacing:.1em;text-transform:uppercase}@media (min-width: 768px){.site-header__brand .site-header__sub{position:relative;top:-.5px}}.site-header__nav{margin-left:auto;flex-shrink:0;display:flex;gap:var(--space-1);align-items:center}.site-header__link{padding:var(--space-1) .625rem;border-radius:var(--r-sm);border:none;background:none;font-size:var(--text-xs);font-weight:500;color:var(--text-dim);transition:background var(--tr),color var(--tr);white-space:nowrap}.site-header__link:hover{background:var(--surface-2);color:var(--text)}.site-header__link--icon{display:inline-flex;align-items:center;justify-content:center;width:min(var(--control-h-sm),12vw);height:var(--control-h-sm);padding:0}.site-header__link--icon svg{opacity:.85}.site-header__link--icon:hover svg{opacity:1}}@layer app{.settings-panel{display:none;position:fixed;top:var(--header-h);right:0;width:18.75rem;max-height:calc(100vh - var(--header-h));max-height:calc(100dvh - var(--header-h));overflow-y:auto;background:var(--surface);border:1px solid var(--border);border-top:none;border-right:none;border-radius:0 0 0 var(--r-lg);box-shadow:var(--shadow-panel);z-index:150;color:var(--text)}.settings-panel.is-open{display:block}.settings-panel__header{display:flex;align-items:center;justify-content:space-between;padding:.625rem .625rem .625rem var(--space-4);border-bottom:1px solid var(--border);background:var(--surface-2)}.settings-panel__title{font-size:var(--text-xs);font-weight:600;letter-spacing:.02em;color:var(--text)}.settings-row{border-bottom:1px solid var(--border)}.settings-row:last-child{border-bottom:none}.settings-row--toggle{padding:var(--space-3) .875rem var(--space-3) var(--space-4)}.settings-toggle{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);cursor:pointer;-webkit-user-select:none;user-select:none}.settings-toggle__label{font-size:var(--text-xs);font-weight:600;color:var(--text)}.toggle-switch{position:relative;display:inline-block;width:2.125rem;height:1.25rem;flex-shrink:0}.toggle-switch__input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.toggle-switch__track{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--surface-3);border:1px solid var(--border-2);border-radius:999px;transition:background var(--tr),border-color var(--tr);pointer-events:none}.toggle-switch__track:before{content:"";position:absolute;top:.0625rem;left:.0625rem;width:1rem;height:1rem;border-radius:50%;background:var(--text-dim);transition:transform var(--tr),background var(--tr)}.toggle-switch__input:checked+.toggle-switch__track{background:var(--gold-glow);border-color:var(--gold-dim)}.toggle-switch__input:checked+.toggle-switch__track:before{transform:translate(.875rem);background:var(--gold)}.toggle-switch__input:focus-visible+.toggle-switch__track{outline:2px solid var(--gold);outline-offset:2px}.settings-row--slider{padding:.8125rem .875rem .8125rem var(--space-4);display:flex;align-items:center;gap:.625rem}.settings-slider__label{font-size:var(--text-xs);font-weight:600;color:var(--text);flex-shrink:0}.settings-slider__control{position:relative;flex:1 1 auto;min-width:0}.settings-slider__value{font-family:var(--font-mono);font-size:.5625rem;font-weight:500;color:var(--gold);flex-shrink:0}.range-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:block;width:100%;height:1rem;background:transparent;cursor:pointer;margin:0}.range-slider::-webkit-slider-runnable-track{height:.375rem;border-radius:999px;background:linear-gradient(to right,var(--gold) var(--range-fill, 0%),var(--surface-3) var(--range-fill, 0%));border:1px solid var(--border-2)}.range-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;box-sizing:border-box;width:1rem;height:1rem;margin-top:-.3125rem;border-radius:50%;background:var(--gold);border:3px solid var(--gold);box-shadow:inset 0 0 0 3px var(--surface);transition:border-color var(--tr)}.range-slider::-moz-range-track{height:.375rem;border-radius:999px;background:linear-gradient(to right,var(--gold) var(--range-fill, 0%),var(--surface-3) var(--range-fill, 0%));border:1px solid var(--border-2)}.range-slider::-moz-range-thumb{box-sizing:border-box;width:1rem;height:1rem;border-radius:50%;background:var(--gold);border:3px solid var(--gold);box-shadow:inset 0 0 0 3px var(--surface);transition:border-color var(--tr)}.range-slider:hover::-webkit-slider-thumb,.range-slider:hover::-moz-range-thumb{border-color:var(--gold-dim)}.range-slider:focus-visible{outline:none}.range-slider:focus-visible::-webkit-slider-thumb{outline:2px solid var(--gold);outline-offset:2px}.range-slider:focus-visible::-moz-range-thumb{outline:2px solid var(--gold);outline-offset:2px}.range-slider__ticks{position:absolute;left:0;right:0;top:100%;display:flex;justify-content:space-between;margin-top:.0625rem}.range-slider__ticks span{display:flex;justify-content:center;width:0;font-size:.5rem;font-weight:500;color:var(--text-muted);white-space:nowrap}@media (max-width: 640px){.settings-panel{width:min(280px,calc(100vw - 24px))}}.settings-row--shortcuts{padding:var(--space-3) var(--space-4)}.settings-shortcuts__title{display:block;margin-bottom:var(--space-2);font-size:var(--text-xs);font-weight:500;color:var(--text)}.settings-shortcuts__list{list-style:none;display:grid;grid-template-columns:repeat(3,auto);justify-content:space-between;gap:var(--space-2) var(--space-3);font-size:.6875rem;color:var(--text-muted)}kbd{display:inline-flex;align-items:center;justify-content:center;padding:.0625rem var(--space-1);font-family:var(--font-ui);font-size:.6875rem;font-weight:600;color:var(--text-dim);background:var(--surface-2);border:1px solid var(--border);border-radius:.1875rem;letter-spacing:.02em;line-height:1.6}@media (hover: none){.settings-row--shortcuts{display:none}}}@layer app{.btn{height:var(--control-h);padding:0 var(--space-3);border-radius:var(--r-md);border:1px solid var(--border);background:var(--surface-2);color:var(--text-dim);font-size:var(--text-xs);font-weight:500;font-family:var(--font-ui);cursor:pointer;display:inline-flex;align-items:center;gap:var(--space-1);white-space:nowrap;transition:background var(--tr),border-color var(--tr),color var(--tr);flex-shrink:0;-webkit-user-select:none;user-select:none}.btn:hover:not(:disabled):not(.is-autoplay-disabled){background:var(--surface-3);border-color:var(--border-2);color:var(--text)}.btn:active:not(:disabled):not(.is-autoplay-disabled){transform:scale(.97)}.btn:disabled{opacity:.38;cursor:not-allowed;pointer-events:none}.btn__icon{width:.75rem;height:.75rem;opacity:.75}.btn--apply{border-color:var(--gold-dim);color:var(--gold)}.btn--apply:hover{background:var(--gold-glow);border-color:var(--gold)}.btn--apply .btn__icon{opacity:1}.btn--grow{flex:1 0 0;justify-content:center;padding:0 .375rem}.btn--icon-only{flex:0 0 auto;padding:0 var(--space-2)}.btn.is-playing{color:var(--amber);border-color:var(--amber)}.btn--compact{height:var(--control-h-sm);padding:0 var(--space-2);font-size:var(--text-xs);flex-shrink:0}}@layer app{.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);display:flex;flex-direction:column;height:100%;overflow:hidden}.panel-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--border);background:var(--surface-2);flex-shrink:0}.panel-header__start{display:flex;align-items:center;gap:.625rem}.panel-header__end{display:flex;align-items:center;gap:var(--space-2)}.panel-header__title{font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);-webkit-user-select:none;user-select:none}.panel-header__count{font-size:var(--text-xs);font-family:var(--font-mono);color:var(--text-muted)}}@layer app{.fen-block{display:flex;flex-direction:column;flex-shrink:0;gap:.375rem}.fen-input-wrap{position:relative;width:100%;display:flex;align-items:center;gap:var(--fen-row-gap)}.fen-input-wrap__label{position:absolute;left:.625rem;top:50%;transform:translateY(-50%);font-size:var(--text-xs);font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--text-muted);pointer-events:none;-webkit-user-select:none;user-select:none;z-index:1}.fen-input{flex:1 1 auto;min-width:0;width:auto;height:var(--control-h);padding:0 .625rem 0 2.75rem;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);outline:none;letter-spacing:.02em;transition:border-color var(--tr),box-shadow var(--tr)}.fen-input:focus{border-color:var(--gold-dim);box-shadow:0 0 0 2px var(--gold-glow)}.fen-input::placeholder{color:var(--text-muted);font-size:var(--text-xs)}.fen-input.is-invalid{border-color:var(--loss)!important;box-shadow:0 0 0 2px #f8717126!important}.fen-actions{display:flex;gap:var(--fen-row-gap);flex-wrap:nowrap}.btn--lock{height:var(--control-h)}.fen-input-wrap>.btn--lock,.fen-actions>.btn--icon-only{flex:0 0 var(--fen-icon-btn-w);width:var(--fen-icon-btn-w);padding:0;justify-content:center}.btn--lock .lock-icon{width:.6875rem;height:.6875rem;transform:scale(1.2727)}.btn--lock.is-locked{border-color:var(--gold);color:var(--gold);background:var(--gold-glow)}.btn--lock.is-locked:hover:not(.is-autoplay-disabled){background:var(--gold-glow);border-color:var(--gold)}.btn--lock.is-locked .btn__icon{opacity:1}.btn--lock.is-autoplay-disabled{opacity:.38;cursor:not-allowed}.lock-icon--unlocked{display:block}.lock-icon--locked,.btn--lock.is-locked .lock-icon--unlocked{display:none}.btn--lock.is-locked .lock-icon--locked{display:block}.spare-tray.is-locked{opacity:.35}.spare-tray.is-locked .spare-piece{cursor:not-allowed}.error-line{flex-shrink:0;min-height:.875rem;font-size:var(--text-xs);font-weight:500;color:var(--loss);padding-left:.125rem;display:flex;align-items:center;gap:.3125rem;line-height:1.4}.error-line:empty{visibility:hidden}.error-line.is-coverage-error{color:var(--amber)}.turn-row{display:flex;gap:.3125rem}.turn-btn{flex:1;height:var(--control-h);display:flex;align-items:center;justify-content:center;gap:.375rem;border-radius:var(--r-md);border:1px solid var(--border);background:var(--surface-2);color:var(--text-dim);font-size:var(--text-xs);font-weight:600;font-family:var(--font-ui);letter-spacing:.03em;cursor:pointer;transition:background var(--tr),border-color var(--tr),color var(--tr);-webkit-user-select:none;user-select:none}.turn-btn:hover{background:var(--surface-3);border-color:var(--border-2);color:var(--text)}.turn-btn:active{transform:scale(.97)}.turn-pip{width:.5rem;height:.5rem;border-radius:50%;flex-shrink:0;transition:background var(--tr),box-shadow var(--tr)}.turn-pip--w{background:var(--board-light);border:1.5px solid var(--board-dark)}.turn-pip--b{background:var(--pip-black-bg);border:1.5px solid var(--pip-black-border)}.turn-btn.is-active{background:var(--turn-active-bg);border-color:var(--gold-dim);color:var(--gold)}.turn-btn.is-active .turn-pip--w{box-shadow:0 0 5px color-mix(in srgb,var(--board-light) 50%,transparent)}.turn-btn.is-active .turn-pip--b{border-color:var(--text-dim)}}@layer app{.move-line{--pgn-rank-width: var(--pgn-rank-w);display:grid;grid-template-columns:var(--pgn-rank-width) 1fr 1fr;align-items:center;font-size:var(--text-xs);padding:0}.move-line__row{display:grid;grid-template-columns:subgrid;grid-column:1 / -1;align-items:baseline;border-bottom:1px solid var(--border)}.move-line__empty{grid-column:1 / -1;margin-top:3rem;text-align:center;color:var(--text-muted);font-size:var(--text-xs);font-style:italic}.move-line__num{color:var(--text-muted);font-family:var(--font-mono);font-size:var(--text-xs);text-align:center;padding:var(--space-1) 0;-webkit-user-select:none;user-select:none}.move-line__cell{position:relative;min-width:0;padding:var(--space-1) var(--space-3)}.move-line__cell--white:before{content:"";position:absolute;inset-block:0;inset-inline-start:0;width:1px;background:var(--border-2);pointer-events:none}.move-line__cell:not(.move-line__cell--empty){border-radius:var(--r-sm);cursor:pointer;transition:background var(--tr),box-shadow var(--tr)}.move-line__cell:not(.move-line__cell--empty):hover{background:var(--surface-2)}.move-line__cell:not(.move-line__cell--empty).is-current{background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--border)}.move-line__cell:not(.move-line__cell--empty).is-current .move-line__move{color:var(--text);font-weight:600}.move-line__cell--placeholder{color:var(--text-muted);font-family:var(--font-mono)}.move-line__move{background:none;border:none;color:var(--text-dim);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:500;padding:0}.move-line__variation{grid-column:1 / -1;padding:var(--space-1) var(--space-3) var(--space-1) 0;border-bottom:1px solid var(--border);color:var(--text-muted);font-size:var(--text-xs);line-height:1.6}.move-line__num--inline{margin-right:.1875rem}.move-line__move--chip{color:inherit;font-size:inherit;font-weight:500;border:1px solid transparent;border-radius:var(--r-sm);padding:.0625rem var(--space-1);margin-right:.125rem;transition:background var(--tr),color var(--tr);cursor:pointer}.move-line__move--chip:hover{background:var(--surface-2);color:var(--text)}.move-line__move--chip.is-current{background:var(--surface-2);border-color:var(--border);color:var(--text);font-weight:600}.pgn-moves-scroll{flex:1;min-height:12rem;overflow-y:auto;overflow-x:hidden;padding:0 0 var(--space-4)}}@layer app{.board-group{margin-top:0;width:var(--board-size);flex-shrink:0;display:flex;flex-direction:column;gap:.375rem}.board-wrap{border-radius:var(--r-md);overflow:hidden;box-shadow:var(--shadow-board);width:var(--board-size);flex-shrink:0}.board-wrap-inner{position:relative;width:var(--board-size);display:flex;flex-direction:column}.board-wrap-inner.orientation-black{flex-direction:column-reverse}#board{width:var(--board-size);height:var(--board-size)}cg-container,cg-board{width:var(--board-size)!important;height:var(--board-size)!important}cg-board{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScyJyBoZWlnaHQ9JzInPgo8cmVjdCB3aWR0aD0nMScgaGVpZ2h0PScxJyBmaWxsPScjZjBkOWI1Jy8+CjxyZWN0IHg9JzEnIHdpZHRoPScxJyBoZWlnaHQ9JzEnIGZpbGw9JyNiNTg4NjMnLz4KPHJlY3QgeT0nMScgd2lkdGg9JzEnIGhlaWdodD0nMScgZmlsbD0nI2I1ODg2MycvPgo8cmVjdCB4PScxJyB5PScxJyB3aWR0aD0nMScgaGVpZ2h0PScxJyBmaWxsPScjZjBkOWI1Jy8+Cjwvc3ZnPg==);background-size:25% 25%}.orientation-white coords.ranks coord:nth-child(odd),.orientation-white coords.files coord:nth-child(odd){color:var(--board-light)!important}.orientation-white coords.ranks coord:nth-child(2n),.orientation-white coords.files coord:nth-child(2n){color:var(--board-dark)!important}.orientation-black coords.ranks coord:nth-child(odd),.orientation-black coords.files coord:nth-child(odd){color:var(--board-dark)!important}.orientation-black coords.ranks coord:nth-child(2n),.orientation-black coords.files coord:nth-child(2n){color:var(--board-light)!important}coords.ranks coord,coords.files coord{font-size:max(.5625rem,calc(var(--board-size) / 56))!important;font-weight:600!important;font-family:var(--font-ui)!important}.cg-wrap coords.ranks{left:0!important;top:0!important;width:max(.875rem,calc(var(--board-size) / 38))!important;height:100%!important;padding-left:.125rem!important;opacity:1!important}.cg-wrap coords.ranks coord{transform:none!important;flex:0 0 12.5%!important;padding-top:.125rem!important}.cg-wrap coords.files{left:0!important;bottom:0!important;width:100%!important;height:max(.875rem,calc(var(--board-size) / 38))!important;text-align:right!important;text-transform:none!important;align-items:flex-end!important;opacity:1!important}.cg-wrap coords.files coord{flex:0 0 12.5%!important;padding-right:.125rem!important;padding-bottom:.125rem!important}cg-board square.last-move{background-color:var(--board-highlight)}cg-board square.check{background-image:radial-gradient(ellipse at center,#ff0000e6,#e70000b3 25%,#a9000000 89%,#9e000000)}.spare-tray{background-color:var(--tray-bg);border:none;padding:.3125rem 0;margin:0;display:flex;justify-content:center;gap:0;width:var(--board-size);box-sizing:border-box}.spare-tray--black{border-bottom:2px solid var(--tray-border)}.spare-tray--white{border-top:2px solid var(--tray-border)}.board-wrap-inner.orientation-black .spare-tray--black{border-bottom:none;border-top:2px solid var(--tray-border)}.board-wrap-inner.orientation-black .spare-tray--white{border-top:none;border-bottom:2px solid var(--tray-border)}.spare-piece{width:var(--spare-size);height:var(--spare-size);border:0;padding:0;margin:0;background:none;cursor:grab}.spare-piece img{width:100%;height:100%;pointer-events:none}.spare-piece.cp-selected{outline:2px solid var(--gold);outline-offset:1px;border-radius:.125rem}#board.cp-active{cursor:crosshair}#board.cp-active square{cursor:crosshair}}@layer app{.results-panel{container:results / inline-size}.results-panel.is-pending .moves-view{pointer-events:none}.results-panel.is-loading .moves-view{opacity:.55;pointer-events:none}.results-panel.is-loading .btn--col-autoplay{pointer-events:auto;opacity:1}.metric-tabs{display:none}.probe-status{align-items:center;gap:.625rem;min-width:0}.probe-progress{width:10.5rem;height:.25rem;border-radius:.125rem;background:var(--border);flex-shrink:0;position:relative;overflow:hidden}.probe-progress__fill{position:absolute;left:0;top:0;bottom:0;background:linear-gradient(90deg,var(--progress-from),var(--progress-to));transition:width .3s ease;width:0%}.probe-progress.is-indeterminate .probe-progress__fill{width:35%;animation:probe-pending 1.4s ease-in-out infinite}@keyframes probe-pending{0%{transform:translate(-100%)}to{transform:translate(290%)}}@media (prefers-reduced-motion: reduce){.probe-progress.is-indeterminate .probe-progress__fill{animation:none;left:32.5%}}.probe-progress-label{font-size:var(--text-xs);color:var(--text-muted);font-family:var(--font-mono);white-space:nowrap;position:relative;top:-.5px}.probe-progress-label:empty{display:none}@media (max-width: 767px){.results-panel .panel-header{flex-wrap:wrap}.results-panel .panel-header__start{display:contents}.probe-status{order:3;flex:0 0 100%}.probe-status .probe-progress{flex:1;width:auto}}.moves-view{flex:1;min-height:17.5rem;display:flex;flex-direction:column}.moves-head{flex:0 0 auto;overflow:hidden}.moves-body-scroll{flex:1;min-height:0;display:flex;flex-direction:column;overflow-x:hidden;overflow-y:auto}.moves-body-scroll.has-vscroll .moves-table--body{width:calc(100% + var(--moves-vscroll-width, 0px))}.moves-table{width:100%;flex:0 0 auto;border-collapse:collapse;table-layout:fixed}.moves-table thead th{height:var(--thead-row-h);background:var(--surface-2)}#root-row td{height:var(--thead-root-h)}.moves-table col.col-rank{width:2rem}.moves-table col.col-move{width:4.25rem}.moves-table col.col-score{width:auto}.moves-table col.group-dtc.col-score{width:9rem}.moves-table thead tr.group-row th{font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);text-align:center;padding:.375rem var(--space-2) var(--space-1);white-space:nowrap}.group-row-inner{display:inline-flex;align-items:center;gap:.3125rem}.moves-table th.group-dtz:not(.col-score),.moves-table th.group-dtc:not(.col-score),.moves-table th.group-dtm:not(.col-score),.moves-table th.group-dtm50:not(.col-score){box-shadow:inset 1px 0 0 var(--border-2)}.moves-table thead tr.col-row th{font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);text-align:left;padding:.1875rem var(--space-2) .4375rem;box-shadow:inset 0 -1px 0 var(--border-2);white-space:nowrap}.moves-table thead tr.col-row th.group-dtz:not(.col-score),.moves-table thead tr.col-row th.group-dtc:not(.col-score),.moves-table thead tr.col-row th.group-dtm:not(.col-score),.moves-table thead tr.col-row th.group-dtm50:not(.col-score){box-shadow:inset 1px 0 0 var(--border-2),inset 0 -1px 0 var(--border-2)}.moves-table thead tr.col-row th.group-dtz:not(.col-score){padding-left:var(--space-2)}.moves-table thead tr.col-row th.group-dtc:not(.col-score){padding-left:var(--space-2)}.moves-table thead tr.col-row th.group-dtm:not(.col-score){padding-left:var(--space-2)}.moves-table thead tr.col-row th.group-dtm50:not(.col-score){padding-left:var(--space-2)}.moves-table thead tr.col-row th.col-move{padding-right:var(--space-1);letter-spacing:.03em}.moves-table thead tr.col-row th.col-rank{padding-left:0;padding-right:0;text-align:center;text-overflow:clip;letter-spacing:0}.moves-table thead tr.col-row th.col-score{text-align:right;padding-right:.875rem}.btn--col-autoplay{position:relative;height:1rem;min-width:1.25rem;padding:0 .3125rem;border-radius:.1875rem;line-height:1;justify-content:center;color:var(--text-dim)}.btn--col-autoplay:after{content:"";position:absolute;top:-.25rem;right:-.25rem;bottom:-.25rem;left:-.25rem}.autoplay-icon{width:.5625rem;height:.5625rem;fill:currentColor}.autoplay-icon--play{display:block}.autoplay-icon--stop,.btn--col-autoplay.is-playing .autoplay-icon--play{display:none}.btn--col-autoplay.is-playing .autoplay-icon--stop{display:block}.moves-table td{padding:.375rem var(--space-2);font-family:var(--font-mono);font-size:var(--text-xs);border-bottom:1px solid var(--border);white-space:nowrap}.moves-table tbody tr:hover{background:var(--surface-2)}.moves-table td.col-rank{color:var(--text-muted);font-size:var(--text-xs);text-align:center;padding-left:.125rem;padding-right:.125rem}.moves-table td.col-move{color:var(--blue);font-weight:500;padding-right:var(--space-1);cursor:pointer}.moves-table td.group-dtz:not(.col-score){box-shadow:inset 1px 0 0 var(--border-2);padding-left:var(--space-2)}.moves-table td.group-dtc:not(.col-score){box-shadow:inset 1px 0 0 var(--border-2);padding-left:var(--space-2)}.moves-table td.group-dtm:not(.col-score){box-shadow:inset 1px 0 0 var(--border-2);padding-left:var(--space-2)}.moves-table td.group-dtm50:not(.col-score){box-shadow:inset 1px 0 0 var(--border-2);padding-left:var(--space-2)}.moves-table td.col-score{text-align:right;font-weight:500;color:var(--text-muted);padding-left:var(--space-1);padding-right:.875rem}.moves-table td.col-score[data-outcome]{color:var(--text-muted)}.moves-table td.col-score[data-outcome=win]{color:var(--win)}.moves-table td.col-score[data-outcome=cursed_win],.moves-table td.col-score[data-outcome=blessed_loss]{color:var(--amber)}.moves-table td.col-score[data-outcome=loss]{color:var(--loss)}.moves-table td.col-score[data-outcome=draw]{color:var(--draw)}.moves-table td.col-score.is-mate{font-weight:700}.moves-table td.is-empty-cell{color:var(--text-muted);text-align:center;opacity:.35}.moves-table td.col-move.is-root{cursor:default;color:var(--gold);font-weight:600}#root-row td{background:var(--surface-3);border:0;box-shadow:inset 0 -1px 0 var(--border-2)}#root-row td.group-dtz:not(.col-score),#root-row td.group-dtc:not(.col-score),#root-row td.group-dtm:not(.col-score),#root-row td.group-dtm50:not(.col-score){box-shadow:inset 1px 0 0 var(--border-2),inset 0 -1px 0 var(--border-2)}#root-row td:first-child{box-shadow:inset 3px 0 0 var(--gold-dim),inset 0 -1px 0 var(--border-2)}#root-row.is-hidden{display:none}.moves-table td.is-pair-hover{background:var(--surface-3)}.moves-table td.is-pair-hover.col-move{color:var(--text)}.moves-table td.col-move[data-san],.moves-table td.col-score[data-san]{cursor:pointer;transition:color var(--tr),background var(--tr)}.moves-table td.col-move[data-san]:active{color:var(--gold);background:var(--surface-3)}.moves-table td.col-score[data-san]:active{background:var(--surface-3)}.info-dot,.warning-dot{display:inline-flex;align-items:center;justify-content:center;width:.8125rem;height:.8125rem;margin-left:var(--space-1);cursor:help;vertical-align:middle;flex-shrink:0}@media (any-pointer: coarse){.moves-table td.col-score{position:relative}.info-dot:after,.warning-dot:after{content:"";position:absolute;top:0;bottom:0;width:var(--touch-target)}}.info-dot__icon,.warning-dot__icon{width:100%;height:100%;display:block;overflow:visible}.info-dot__bg,.warning-dot__bg{fill:var(--text-dim)}.info-dot__mark,.warning-dot__mark{fill:var(--surface)}.moves-empty-state{display:none;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:3rem var(--space-5);color:var(--text-muted);text-align:center;font-size:var(--text-xs);flex:1}.moves-empty-state__icon{font-size:1.75rem;opacity:.18}@keyframes shimmer{0%,to{opacity:.3}50%{opacity:.65}}.is-loading .moves-table td.col-score,.is-loading .moves-table td.col-move{animation:shimmer 1.1s ease-in-out infinite}@container results (width < 49rem){.metric-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));min-height:2rem}.metric-tab{min-width:0;padding:0 var(--space-1);border:0 solid var(--border);border-bottom-width:1px;border-radius:0;background:var(--surface-2);color:var(--text-dim);font:600 var(--text-xs) var(--font-ui);letter-spacing:.03em}.metric-tab+.metric-tab{border-left:1px solid var(--border)}.metric-tab.is-active{color:var(--gold);background:var(--gold-glow);box-shadow:inset 0 0 0 1px var(--gold-dim)}.metric-tab:focus-visible{outline-offset:-2px}.moves-table[data-active-metric] .group-dtz,.moves-table[data-active-metric] .group-dtc,.moves-table[data-active-metric] .group-dtm,.moves-table[data-active-metric] .group-dtm50{display:none}.moves-table[data-active-metric=dtz] .group-dtz,.moves-table[data-active-metric=dtc] .group-dtc,.moves-table[data-active-metric=dtm] .group-dtm,.moves-table[data-active-metric=dtm50] .group-dtm50{display:table-cell}.moves-table[data-active-metric=dtz] th.group-dtz:not(.col-score),.moves-table[data-active-metric=dtz] td.group-dtz:not(.col-score){padding-left:.625rem}.moves-table[data-active-metric] col.group-dtz,.moves-table[data-active-metric] col.group-dtc,.moves-table[data-active-metric] col.group-dtm,.moves-table[data-active-metric] col.group-dtm50{display:none}.moves-table[data-active-metric] col.col-rank{width:14%}.moves-table[data-active-metric=dtz] col.group-dtz,.moves-table[data-active-metric=dtc] col.group-dtc,.moves-table[data-active-metric=dtm] col.group-dtm,.moves-table[data-active-metric=dtm50] col.group-dtm50{display:table-column}.moves-table[data-active-metric] col.col-move{width:26%}.moves-table[data-active-metric] col.col-score{width:60%}}}@layer app{.promotion-dialog{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:var(--scrim);z-index:200;align-items:center;justify-content:center}.promotion-dialog.is-visible{display:flex}.promotion-tray{background:var(--surface-3);border:1px solid var(--border-2);border-radius:var(--r-lg);padding:1.125rem 1.25rem;display:flex;flex-direction:column;align-items:center;gap:.875rem;box-shadow:var(--shadow)}.promotion-tray__title{font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--text-muted);-webkit-user-select:none;user-select:none}.promotion-tray__pieces{display:flex;gap:var(--space-2)}.promotion-piece-btn{width:3.75rem;height:3.75rem;background:var(--tray-bg);border:1px solid var(--border);border-radius:var(--r-md);cursor:pointer;padding:.375rem;display:flex;align-items:center;justify-content:center;transition:background var(--tr),border-color var(--tr),transform var(--tr)}.promotion-piece-btn:hover{background:var(--tray-bg-dark);border-color:var(--gold-dim)}.promotion-piece-btn:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.promotion-piece-btn:active{transform:scale(.94)}.promotion-piece-btn img{width:2.75rem;height:2.75rem;object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none}@media (prefers-reduced-motion: reduce){.promotion-piece-btn{transition:none}}.pgn-dialog{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:var(--scrim);z-index:200;align-items:center;justify-content:center;padding:var(--space-5)}.pgn-dialog.is-open{display:flex}.pgn-dialog__inner{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow);width:100%;max-width:35rem;max-height:80vh;display:flex;flex-direction:column;overflow:hidden}.pgn-dialog__header{display:flex;align-items:center;justify-content:space-between;padding:.875rem 1.125rem .625rem;border-bottom:1px solid var(--border);flex-shrink:0}.pgn-dialog__title{font-size:var(--text-sm);font-weight:600}.pgn-dialog__close{background:none;border:none;color:var(--text-dim);font-size:var(--text-lg);line-height:1;padding:.1875rem .4375rem;border-radius:var(--r-sm);cursor:pointer;transition:background var(--tr),color var(--tr)}.pgn-dialog__close:hover{background:var(--surface-2);color:var(--text)}.pgn-dialog__textarea{flex-shrink:0;margin:var(--space-3) 1.125rem 0;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text);font-family:var(--font-mono);font-size:var(--text-xs);line-height:1.5;padding:var(--space-2) .625rem;resize:vertical;outline:none;transition:border-color var(--tr)}.pgn-dialog__textarea:focus{border-color:var(--border-2)}.pgn-dialog__error{font-size:var(--text-xs);color:var(--loss);padding:var(--space-3) 1.125rem 0}.pgn-dialog__error:empty{display:none}.pgn-dialog__actions{display:flex;flex-shrink:0;padding:1.125rem}.pgn-dialog__moves{flex:1;overflow-y:auto;padding:var(--space-1) 1.125rem var(--space-4);display:flex;flex-wrap:wrap;gap:.1875rem .375rem;align-content:flex-start}.pgn-move-btn{background:var(--surface-2);border:1px solid transparent;border-radius:var(--r-sm);color:var(--text-dim);font-size:var(--text-xs);font-family:var(--font-mono);padding:.1875rem .4375rem;cursor:pointer;transition:background var(--tr),color var(--tr)}.pgn-move-btn:hover{background:var(--border);color:var(--text)}}@layer app{.toast-container{position:fixed;top:calc(var(--header-h) + var(--space-2));left:50%;transform:translate(-50%);width:max-content;max-width:calc(100vw - 2rem);z-index:300;display:flex;flex-direction:column;align-items:center;gap:var(--space-2);pointer-events:none}.toast{padding:var(--space-2) var(--space-4);background:var(--surface-3);border:1px solid var(--border-2);border-radius:var(--r-md);font-size:var(--text-xs);font-weight:500;color:var(--text-dim);box-shadow:var(--shadow-pop);white-space:pre-line;text-align:center;animation:toast-in .2s ease forwards;pointer-events:none}.toast.is-out{animation:toast-out .2s ease forwards}@keyframes toast-in{0%{opacity:0;transform:translateY(-.5rem)}to{opacity:1;transform:translateY(0)}}@keyframes toast-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-.25rem)}}@media (prefers-reduced-motion: reduce){.toast,.toast.is-out{animation:none}.toast.is-out{opacity:0}}}@layer app{.screen-nav{display:none;grid-template-columns:repeat(3,1fr);position:fixed;left:0;right:0;bottom:0;height:var(--screen-nav-h);padding:0 env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px);background:var(--surface);border-top:1px solid var(--border);z-index:100}.screen-nav__item{border:0;background:none;color:var(--text-muted);font:600 var(--text-xs) var(--font-ui);letter-spacing:.06em;text-transform:uppercase;transition:color var(--tr),box-shadow var(--tr)}.screen-nav__item[aria-current=page]{color:var(--gold);box-shadow:inset 0 2px 0 var(--gold)}}@layer app{@media (max-width: 1180px){html,body{height:auto;overflow-y:auto}:root{--pgn-col-w: 18.75rem}.content{grid-template-columns:minmax(0,1fr) var(--pgn-col-w);height:auto;overflow:visible;padding:var(--space-4)}.left-col{grid-column:1 / -1;height:auto}.board-group{margin:0 auto}.right-col,.pgn-col{height:min(60vh,520px)}}@media (max-width: 767px){:root{--screen-nav-h: calc(3rem + env(safe-area-inset-bottom, 0px)) ;--viewport-h: 100vh;--board-fit-h: calc((var(--viewport-h) - var(--header-h) - var(--screen-nav-h) - 5.5rem - 3 * var(--control-h) - 4px) / 1.25);--board-size: max(14rem, min(var(--board-size-cap), var(--board-fit-h)))}@supports (height: 100dvh){:root{--viewport-h: 100dvh}}html,body{overflow-x:hidden}.content{grid-template-columns:repeat(3,100vw);overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;min-height:0;height:calc(100vh - var(--header-h) - var(--screen-nav-h));height:calc(100dvh - var(--header-h) - var(--screen-nav-h));width:100vw;max-width:none;padding:0;gap:0}.left-col,.right-col,.pgn-col{grid-column:auto;max-width:100vw;min-height:0;height:calc(100vh - var(--header-h) - var(--screen-nav-h));height:calc(100dvh - var(--header-h) - var(--screen-nav-h));scroll-snap-align:start;position:relative}.left-col{overflow-y:auto;padding:var(--space-2) var(--space-4)}.board-group{margin:0 auto}.right-col,.pgn-col{padding:var(--space-4);overflow:hidden}.site-header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-rows:auto auto;align-content:center;column-gap:.625rem;row-gap:0}.site-header__logo,.site-header__nav{grid-row:1 / span 2}.site-header__brand{display:contents}.site-header__sep{display:none}.site-header__title,.site-header__sub{grid-column:2;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.2}.site-header__title{grid-row:1;align-self:end}.site-header__sub{grid-row:2;align-self:start;font-size:.6875rem}.screen-nav{display:grid}.toast-container{bottom:calc(var(--screen-nav-h) + var(--space-3))}.moves-body-scroll{touch-action:pan-y;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain}.moves-body-scroll.has-vscroll .moves-table--body{width:100%}.move-line{--pgn-rank-width: var(--pgn-rank-w-compact)}}@media (max-width: 480px){:root{--board-size-cap: min(360px, 88vw)}.left-col,.right-col,.pgn-col{padding-left:max(var(--space-4),env(safe-area-inset-left));padding-right:max(var(--space-4),env(safe-area-inset-right))}.site-header{padding-left:max(var(--space-5),env(safe-area-inset-left));padding-right:max(var(--space-5),env(safe-area-inset-right))}.panel-header,.fen-actions{flex-wrap:wrap;row-gap:6px}}@media (hover: none) and (pointer: coarse){.fen-input,.pgn-dialog__textarea{font-size:var(--text-lg)}.spare-piece,.promotion-piece-btn{touch-action:none}}}
