﻿:root{color-scheme:light;--graphite: #2c2c2c;--wine: #853953;--plum: #612d53;--bg: #f6f3f4;--surface: #ffffff;--surface-2: #f0eaed;--border: #e3d9de;--text: #2c2c2c;--text-muted: #6e6468;--accent: #853953;--accent-hover: #6f2e45;--accent-ink: #853953;--accent-soft: #8539531a;--on-accent: #ffffff;--plum-soft: #612d531f;--logo-plum: #612d53;--plum-ink: #612d53;--win: #266a42;--win-soft: #2f7d4f1a;--draw: #675f62;--draw-soft: #7a72751f;--loss: #a3392f;--loss-soft: #b3453b1a;--tone-time: #2f59a8;--tone-ending: #97500f;--tone-date: #0f6a62;--tone-length: #715a0c;--tone-rating: #6d45c2;--focus: #85395366;--scroll-thumb: #2c2c2c26;--scroll-thumb-hover: #2c2c2c52;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--main-pad: var(--space-5);--pad-y: var(--space-4);--pad-x: var(--space-5);--stack-gap: var(--space-4);--page-gap: var(--space-5);--control-sm: 28px;--control-md: 32px;--control-lg: 36px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-full: 999px;--shadow-sm: 0 1px 2px #1c1b190f;--shadow-md: 0 1px 2px #1c1b190d, 0 6px 20px #1c1b1912;--font: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-pixel: "Jersey 10", var(--font);--font-mono: ui-monospace, "Cascadia Code", "SF Mono", Consolas, monospace;--text-xs: 12px;--text-sm: 13px;--text-md: 15px;--text-lg: 18px;--text-xl: 22px;--text-2xl: 28px;--ease: cubic-bezier(0.2, 0.7, 0.2, 1);--fast: 120ms;--normal: 200ms;--slow: 320ms;--content-width: 1600px;--header-height: 0px;--sidebar: 224px;--sidebar-folded: 72px;--nav-width: var(--sidebar);--board-controls: 36px;--board-chrome: calc(var(--header-height) + 2 * var(--main-pad) + 2 * var(--pad-y) + 2px + var(--space-4) + var(--board-controls));--side-panel-min: 380px;--eval-bar: 18px;--board-size: min( calc(100dvh - var(--board-chrome)), calc(min(100vw - var(--nav-width), var(--content-width)) - 2 * var(--space-5) - var(--space-5) - var(--side-panel-min) - 2 * var(--space-5) - 2px - var(--eval-bar) - var(--space-2)) )}@font-face{font-family:"Jersey 10";src:url(assets/themes/bit/fonts/Jersey10.ttf) format("truetype");font-weight:400;font-display:swap;size-adjust:118%}:root[data-theme=dark]{color-scheme:dark;--bg: #232323;--surface: #2c2c2c;--surface-2: #363335;--border: #433e41;--text: #efeaed;--text-muted: #aba1a7;--accent: #853953;--accent-hover: #9b4562;--accent-ink: #e08fab;--accent-soft: #85395340;--on-accent: #ffffff;--plum-soft: #612d5359;--logo-plum: #8c4379;--plum-ink: #c07fb0;--win: #74c393;--win-soft: #74c39326;--draw: #bdb6b9;--draw-soft: #aea6a926;--loss: #ee9494;--loss-soft: #e57f7f26;--tone-time: #97b6f1;--tone-ending: #e8a15f;--tone-date: #62c7bb;--tone-length: #e2c36f;--tone-rating: #bda2f4;--focus: #e08fab66;--scroll-thumb: #efeaed2b;--scroll-thumb-hover: #efeaed59;--shadow-sm: 0 1px 2px #0000004d;--shadow-md: 0 1px 2px #0000004d, 0 8px 24px #00000066}@media(prefers-color-scheme: dark){:root:not([data-theme=light]){color-scheme:dark;--bg: #232323;--surface: #2c2c2c;--surface-2: #363335;--border: #433e41;--text: #efeaed;--text-muted: #aba1a7;--accent: #853953;--accent-hover: #9b4562;--accent-ink: #e08fab;--accent-soft: #85395340;--on-accent: #ffffff;--plum-soft: #612d5359;--logo-plum: #8c4379;--plum-ink: #c07fb0;--win: #74c393;--win-soft: #74c39326;--draw: #bdb6b9;--draw-soft: #aea6a926;--loss: #ee9494;--loss-soft: #e57f7f26;--tone-time: #97b6f1;--tone-ending: #e8a15f;--tone-date: #62c7bb;--tone-length: #e2c36f;--tone-rating: #bda2f4;--focus: #e08fab66;--scroll-thumb: #efeaed2b;--scroll-thumb-hover: #efeaed59;--shadow-sm: 0 1px 2px #0000004d;--shadow-md: 0 1px 2px #0000004d, 0 8px 24px #00000066}}@media(prefers-reduced-motion: reduce){:root{--fast: 0ms;--normal: 0ms;--slow: 0ms}}*,*::before,*::after{box-sizing:border-box}html,body{margin:0}body{-webkit-user-select:none;user-select:none;display:flex;flex-direction:row;height:100dvh;overflow:hidden;background:var(--bg);color:var(--text);font-family:var(--font);font-size:var(--text-md);line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2,h3,p{margin:0}button{font:inherit}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}@supports selector(::-webkit-scrollbar){::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track,::-webkit-scrollbar-corner{background:rgba(0,0,0,0)}::-webkit-scrollbar-button{display:none}::-webkit-scrollbar-thumb{border:2px solid rgba(0,0,0,0);border-radius:var(--radius-full);background:var(--scroll-thumb) padding-box}:hover::-webkit-scrollbar-thumb{background-color:var(--scroll-thumb-hover)}::-webkit-scrollbar-thumb:active{background-color:var(--text-muted)}}@supports not selector(::-webkit-scrollbar){*{scrollbar-width:thin;scrollbar-color:var(--scroll-thumb) rgba(0,0,0,0)}*:hover{scrollbar-color:var(--scroll-thumb-hover) rgba(0,0,0,0)}}.mono{font-family:var(--font-mono)}.sidebar{flex:none;display:flex;flex-direction:column;gap:var(--space-5);width:var(--sidebar);height:100dvh;padding:var(--space-5) var(--space-3) var(--space-4);border-right:1px solid var(--border);background:radial-gradient(120% 60% at 0% 0%, var(--plum-soft), transparent 60%),var(--surface)}.brand-slot{display:contents}.brand{display:flex;align-items:center;gap:var(--space-3);padding:0 var(--space-2);color:var(--text);text-decoration:none}.brand-text{display:flex;flex-direction:column;min-width:0;line-height:1.2}.brand-sub{color:var(--text-muted);font-size:var(--text-xs)}.brand-name{font-size:var(--text-lg);font-weight:700;letter-spacing:-0.01em}.brand-bit{color:var(--accent-ink)}.brand-base{color:var(--plum-ink)}.logo{flex:none;width:32px;height:32px;overflow:visible}.logo .bit{--logo-fade: 1.2s;rx:3px;stroke-width:2;transition:fill var(--logo-fade) ease-in-out,stroke var(--logo-fade) ease-in-out,fill-opacity var(--logo-fade) ease-in-out,stroke-opacity var(--logo-fade) ease-in-out}.logo .one{fill-opacity:1;stroke-opacity:0}.logo .wine{fill:var(--wine);stroke:var(--wine)}.logo .plum{fill:var(--logo-plum);stroke:var(--logo-plum)}.logo .zero{fill:var(--accent-ink);fill-opacity:0;stroke:var(--accent-ink);stroke-opacity:1}.brand:hover .logo .one{fill-opacity:0;stroke-opacity:1}.brand:hover .logo .zero{fill-opacity:1;stroke-opacity:0}.nav{display:flex;flex-direction:column;gap:var(--space-4)}.nav-group{display:flex;flex-direction:column;gap:var(--space-1)}.nav-heading{padding:0 var(--space-3) var(--space-2);color:var(--text-muted);font-size:var(--text-xs);font-weight:600;letter-spacing:.06em;text-transform:uppercase;opacity:.75}.nav-link{margin-left:var(--space-2)}.nav-link{position:relative;display:flex;align-items:center;gap:var(--space-3);height:40px;padding:0 var(--space-3);border-radius:var(--radius-md);color:var(--text-muted);font-size:var(--text-sm);font-weight:600;text-decoration:none;transition:background var(--fast) var(--ease),color var(--fast) var(--ease)}.nav-link:hover{background:var(--surface-2);color:var(--text)}.nav-link[aria-current=page]{background:var(--accent-soft);color:var(--accent-ink)}.nav-link::before{content:"";position:absolute;left:calc(-1*var(--space-3));top:10px;bottom:10px;width:3px;border-radius:0 var(--radius-full) var(--radius-full) 0;background:var(--accent);scale:1 0;transition:scale var(--normal) var(--ease)}.nav-link[aria-current=page]::before{scale:1 1}.nav-link .icon{width:20px;height:20px}.nav-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.server-status{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-muted);font-size:var(--text-xs);font-variant-numeric:tabular-nums}.status-dot{flex:none;width:8px;height:8px;margin-inline:6px;border-radius:50%;background:var(--text-muted)}.server-status.online .status-dot{background:var(--win);box-shadow:0 0 0 0 var(--win);animation:pulse 2.4s var(--ease) infinite}.server-status.offline .status-dot{background:var(--loss)}.server-status.degraded .status-dot,.server-status.outdated .status-dot{background:var(--tone-ending)}@keyframes pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--win) 60%, transparent)}70%,100%{box-shadow:0 0 0 6px rgba(0,0,0,0)}}.sidebar-top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.topbar,.drawer-backdrop,.sidebar-top .drawer-close{display:none}@media(min-width: 601px)and (max-width: 1200px){:root{--nav-width: var(--sidebar-folded)}.sidebar{width:var(--sidebar-folded);align-items:center;padding-inline:var(--space-2)}.brand{padding:0}.brand-text,.nav-label,.nav-heading{display:none}.nav{gap:var(--space-2)}.nav-group+.nav-group{padding-top:var(--space-2);border-top:1px solid var(--border)}.nav-link{margin-left:0}.nav-link{justify-content:center;width:44px;height:44px;padding:0}.nav-link::before{left:calc(-1*(var(--sidebar-folded) - 44px)/2)}.server-status{justify-content:center;padding:var(--space-2);border:0}}.app-main{flex:1;min-width:0;min-height:0;max-width:var(--content-width);margin:0 auto;padding:var(--main-pad);overflow-y:auto}.columns{height:100%;display:grid;grid-template-columns:auto minmax(var(--side-panel-min), 1fr);grid-template-rows:minmax(0, 100%);gap:var(--space-5);align-items:start}.side-panel{align-self:stretch;display:flex;flex-direction:column;gap:var(--stack-gap);min-height:0;overflow-y:auto;padding:2px;margin:-2px}.side-panel>*{flex:none}.side-panel>.moves-card:not(.folded){flex:1 1 0;min-height:120px;display:flex;flex-direction:column}.side-panel>.popular-card:not(.folded){flex:0 1 auto;min-height:0;display:flex;flex-direction:column}.side-panel>:is(.moves-card,.popular-card)>.card-body{flex:1;min-height:0;overflow-y:auto}.side-panel .popular-card .explorer{height:auto;overflow:visible}.side-panel>.popular-card>.card-body{max-height:calc(240px + var(--pad-y) + var(--space-3) + 24px)}.side-panel.moves-folded>.popular-card:not(.folded){flex:1 1 0}.side-panel.moves-folded>.popular-card>.card-body{max-height:none}.board-controls{flex-wrap:nowrap;min-height:var(--board-controls);margin-top:var(--space-4)}.stack{display:flex;flex-direction:column;gap:var(--stack-gap)}.row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.muted{color:var(--text-muted);font-size:var(--text-sm)}@media(max-width: 900px){:root{--board-size: min( calc(100vw - var(--nav-width) - 2 * var(--main-pad) - 2 * var(--pad-x) - 2px - var(--eval-bar) - var(--space-2)), calc(100dvh - var(--board-chrome)) )}.columns{height:auto;grid-template-columns:minmax(0, 1fr);grid-template-rows:auto}.side-panel{overflow:visible}.side-panel>:is(.moves-card,.popular-card)>.card-body{overflow:visible}.side-panel .explorer{height:auto;overflow:visible}.side-panel>.popular-card>.card-body{max-height:none}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);animation:rise var(--slow) var(--ease) both;transition:box-shadow var(--normal) var(--ease),transform var(--normal) var(--ease)}.card.interactive:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.card-header{display:flex;align-items:center;gap:var(--space-2);padding:var(--pad-y) var(--pad-x) 0}.card-heading{flex:1;min-width:0}.card-actions{display:flex;flex:none;gap:2px}.card-header>:is(.card-actions,.fold-button){position:relative;top:3px}.card.folded>.card-header+.card-body{display:none}.card.folded>.card-header{padding-bottom:var(--pad-y)}.fold-button .icon{transform:rotate(90deg);transition:transform var(--fast) var(--ease)}.fold-button.folded .icon{transform:none}.card-title{font-size:var(--text-md);font-weight:650}.card-subtitle{margin-top:2px;color:var(--text-muted);font-size:var(--text-sm)}.card-body{padding:var(--pad-y) var(--pad-x)}.card-header+.card-body{padding-top:var(--space-3)}.stack>.card:nth-child(2){animation-delay:40ms}.stack>.card:nth-child(3){animation-delay:80ms}.stack>.card:nth-child(n+4){animation-delay:120ms}@keyframes rise{from{opacity:0;transform:translateY(6px)}}.tag{display:inline-flex;align-items:center;gap:var(--space-1);height:24px;padding:0 var(--space-2);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:600;white-space:nowrap;background:var(--surface-2);color:var(--text-muted)}.tag-accent{background:var(--accent-soft);color:var(--accent-ink)}.tag-draw{background:var(--draw-soft);color:var(--draw)}.tag-loss{background:var(--loss-soft);color:var(--loss)}.tone-neutral{--tone: var(--text-muted)}.tone-white{--tone: #f4f3ee;--tone-ink: #1c1b19}.tone-draw{--tone: var(--draw)}.tone-black{--tone: #2b2a27;--tone-ink: #f4f3ee}.tone-time{--tone: var(--tone-time)}.tone-ending{--tone: var(--tone-ending)}.tone-date{--tone: var(--tone-date)}.tone-length{--tone: var(--tone-length)}.tone-rating{--tone: var(--tone-rating)}.tone-check{--tone: var(--loss)}.tag.toned{background:color-mix(in srgb, var(--tone) 16%, transparent);color:var(--tone)}.tag.toned.tag-strong{background:var(--tone);color:var(--tone-ink, var(--surface))}.toned:is(.tone-white,.tone-black){box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--text) 30%, transparent)}.chip.toned:is(.tone-white,.tone-black):not(.active),.tag.toned:is(.tone-white,.tone-black):not(.tag-strong){color:var(--text)}.chip.toned{border-color:color-mix(in srgb, var(--tone) 40%, var(--border));background:color-mix(in srgb, var(--tone) 8%, var(--surface));color:var(--tone)}.chip.toned:hover{background:color-mix(in srgb, var(--tone) 16%, var(--surface))}.chip.toned.active{border-color:var(--tone);background:var(--tone);color:var(--tone-ink, var(--surface))}.chip.toned:is(.tone-white,.tone-black):not(.active){border-color:var(--border);background:var(--surface);box-shadow:none;color:var(--text-muted)}.chip.toned:is(.tone-white,.tone-black).active{border-color:var(--text);box-shadow:0 0 0 1px var(--text)}.button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:var(--control-lg);padding:0 var(--space-4);border:1px solid rgba(0,0,0,0);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:600;white-space:nowrap;cursor:pointer;transition:background var(--fast) var(--ease),border-color var(--fast) var(--ease),transform var(--fast) var(--ease)}.button:active:not(:disabled){transform:scale(0.97)}.button:disabled{opacity:.45;cursor:default}.button-primary{background:var(--accent);color:var(--on-accent)}.button-primary:hover:not(:disabled){background:var(--accent-hover)}.button-secondary{background:var(--surface);border-color:var(--border);color:var(--text)}.button-secondary:hover:not(:disabled){background:var(--surface-2)}.button-ghost{background:rgba(0,0,0,0);color:var(--text-muted)}.button-ghost:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.tabs{display:inline-flex;gap:2px;padding:3px;border-radius:var(--radius-md);background:var(--surface-2)}.tab{display:inline-flex;align-items:center;text-decoration:none;height:var(--control-md);padding:0 var(--space-4);border:0;border-radius:calc(var(--radius-md) - 3px);background:rgba(0,0,0,0);color:var(--text-muted);font-size:var(--text-sm);font-weight:600;cursor:pointer;transition:background var(--normal) var(--ease),color var(--normal) var(--ease),box-shadow var(--normal) var(--ease)}.tab:hover{color:var(--text)}.tab.active,.tab[aria-current=page]{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.spacer{flex:1}.icon{width:18px;height:18px;flex:none}.button.icon-only{width:var(--control-lg);padding:0}.move-list{flex:1;min-width:0;display:flex;flex-wrap:nowrap;align-items:center;gap:2px;overflow-x:auto;overflow-y:hidden;white-space:nowrap;padding-bottom:var(--space-1);font-size:var(--text-sm)}.move-list>*{flex:none}.move-number{color:var(--text-muted);font-variant-numeric:tabular-nums;margin-left:var(--space-1)}.move-number:first-child{margin-left:0}.move{border:0;background:rgba(0,0,0,0);color:var(--text);font:inherit;font-weight:600;padding:2px var(--space-1);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--fast) var(--ease),color var(--fast) var(--ease)}.move:hover{background:var(--accent-soft)}.move.current{background:var(--accent);color:var(--on-accent)}.move.variation,.move-number.variation{font-weight:500;color:var(--text-muted);font-size:var(--text-xs)}.move.variation.current{color:var(--on-accent)}.bracket{color:var(--text-muted);font-size:var(--text-xs)}.side-panel .moves-card .move-list{flex-wrap:wrap;align-content:flex-start;row-gap:2px;height:auto;overflow:visible;white-space:normal}@media(max-width: 900px){.side-panel .moves-card .move-list{max-height:132px;overflow-y:auto}}.board-area{display:flex;justify-content:center;gap:var(--space-2)}.board-area .board{margin-inline:0}.eval-bar{position:relative;flex:none;width:var(--eval-bar);border-radius:var(--radius-sm);overflow:hidden;background:#3a3935;transition:opacity var(--normal) var(--ease)}.eval-bar.off{opacity:.35}.eval-white{position:absolute;left:0;right:0;bottom:0;background:#f4f3ee;transition:height 600ms var(--ease)}.eval-bar.flipped .eval-white{top:0;bottom:auto}.eval-label{position:absolute;left:0;right:0;top:4px;font-size:9px;font-weight:700;text-align:center;color:#f4f3ee;writing-mode:horizontal-tb}.eval-label.white-ahead{top:auto;bottom:4px;color:#3a3935}.eval-bar.flipped .eval-label{top:auto;bottom:4px}.eval-bar.flipped .eval-label.white-ahead{top:4px;bottom:auto}.engine-head{display:flex;align-items:center;gap:var(--space-2)}.engine-head>:first-child{flex:1;min-width:0}.engine-lines{display:flex;flex-direction:column;margin:var(--space-3) calc(-1*var(--space-2)) 0}.engine-lines:empty{display:none}.engine-lines:not(:empty){min-height:87px}.engine-line{display:flex;align-items:baseline;gap:var(--space-3);padding:var(--space-1) var(--space-2);border:0;border-radius:var(--radius-sm);background:rgba(0,0,0,0);color:var(--text);font:inherit;font-size:var(--text-sm);text-align:left;cursor:pointer;animation:rise var(--normal) var(--ease) both}.engine-line:hover{background:var(--accent-soft)}.engine-score{flex:none;min-width:3.6em;padding:1px 6px;border-radius:var(--radius-sm);background:#f4f3ee;color:#34332f;box-shadow:inset 0 0 0 1px var(--border);font-size:var(--text-xs);font-weight:700;text-align:center;font-variant-numeric:tabular-nums}.engine-score.black-ahead{background:#3a3935;color:#f4f3ee}.engine-moves{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-muted)}.switch{position:relative;flex:none;width:40px;height:22px;padding:0;border:0;border-radius:var(--radius-full);background:var(--border);cursor:pointer;transition:background var(--normal) var(--ease)}.switch.on{background:var(--accent)}.switch-knob{position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:var(--shadow-sm);transition:translate var(--normal) var(--ease)}.switch.on .switch-knob{translate:18px 0}.explorer-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-3)}.explorer-eval{margin-left:auto;padding:0 var(--space-2);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:var(--text-sm);font-variant-numeric:tabular-nums}.explorer{display:flex;flex-direction:column;height:300px;margin:0 calc(-1*var(--space-2));overflow-y:auto}.explorer-row{flex:none;min-height:30px}.explorer.loading{opacity:.5;pointer-events:none;transition:opacity var(--fast) var(--ease) 150ms}.explorer .error{padding:0 var(--space-2)}.explorer-row{display:grid;grid-template-columns:3.4em 6.2em 1fr;align-items:center;gap:var(--space-3);padding:var(--space-1) var(--space-2);border:0;border-radius:var(--radius-sm);background:rgba(0,0,0,0);color:var(--text);font:inherit;font-size:var(--text-sm);text-align:left;cursor:pointer;transition:background var(--fast) var(--ease)}.explorer-row:hover{background:var(--accent-soft)}.explorer-move{font-weight:700}.explorer-games{font-variant-numeric:tabular-nums;white-space:nowrap}.results{display:flex;height:20px;border-radius:var(--radius-sm);overflow:hidden;box-shadow:inset 0 0 0 1px var(--border);font-size:11px;font-weight:600;line-height:20px}.result{display:block;text-align:center;overflow:hidden;white-space:nowrap;transition:width var(--slow) var(--ease)}.result.white{background:#f4f3ee;color:#34332f}.result.draw{background:#9c9a93;color:#fff}.result.black{background:#3a3935;color:#f4f3ee}@media(max-width: 600px){.explorer-row{grid-template-columns:3.4em minmax(0, 1fr);row-gap:var(--space-1)}.explorer-row .results{grid-column:1/-1}}.app-main:has(>.games-page){max-width:none;overflow:hidden}.games-page{display:grid;grid-template-columns:minmax(0, 1fr);height:100%}.filters-drawer{container:filters/inline-size;position:fixed;z-index:60;top:0;right:0;bottom:0;display:flex;flex-direction:column;width:max(380px,(100vw - var(--nav-width))/2);max-width:100vw;border-left:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-md);translate:100% 0;visibility:hidden;transition:translate var(--slow) var(--ease),visibility 0s linear var(--slow)}.filters-drawer.open{translate:0 0;visibility:visible;transition:translate var(--slow) var(--ease)}.drawer-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--pad-y) var(--pad-x);border-bottom:1px solid var(--border)}.games-filters{flex:1;display:grid;grid-template-columns:minmax(0, 1fr);align-content:start;gap:var(--space-5);min-height:0;overflow-y:auto;padding:var(--pad-y) var(--pad-x)}@container filters (min-width: 560px){.games-filters{grid-template-columns:repeat(2, minmax(0, 1fr));column-gap:var(--space-6)}.games-filters>:is(.filters-head,.filter-position){grid-column:1/-1}}@media(max-width: 480px){.filters-drawer{width:100vw;border-left:0}}.drawer-foot{padding:var(--space-3) var(--pad-x);border-top:1px solid var(--border)}.drawer-foot .button{width:100%}.filters-backdrop{position:fixed;inset:0;z-index:50;background:color-mix(in srgb, #000 60%, transparent);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);opacity:0;pointer-events:none;transition:opacity var(--slow) var(--ease)}.filters-backdrop.open{opacity:1;pointer-events:auto}.games-toolbar-start{grid-area:tools;display:flex;flex:0 1 auto;align-items:center;gap:var(--space-2);min-width:0}.filters-button{flex:none}.chip-row{display:flex;align-items:center;gap:var(--space-2);min-width:0;padding:var(--space-1) var(--space-2) var(--space-2) 0;margin-bottom:calc(-1*var(--space-1));overflow-x:auto;overflow-y:hidden;scrollbar-width:none;cursor:grab}.chip-row::-webkit-scrollbar{display:none}.chip-row:empty{display:none}.chip-row>*{flex:none}.chip-row-wrap{position:relative;display:flex;min-width:0}.chip-row-wrap::before,.chip-row-wrap::after{content:"";position:absolute;top:0;bottom:0;z-index:1;width:32px;opacity:0;pointer-events:none;transition:opacity var(--fast) var(--ease)}.chip-row-wrap::before{left:0;background:linear-gradient(to right, var(--bg), transparent)}.chip-row-wrap::after{right:0;background:linear-gradient(to left, var(--bg), transparent)}.chip-row-wrap.fade-left::before,.chip-row-wrap.fade-right::after{opacity:1}.filters-button.active{border-color:var(--accent);color:var(--accent-ink)}.filters-button .badge{background:var(--accent);color:var(--on-accent)}.filter{display:flex;flex-direction:column;gap:var(--space-2)}.filter-title{margin:0;color:var(--text-muted);font-size:var(--text-xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase}.filter-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);min-height:var(--control-sm, 24px)}.filter-reset{padding-block:0;font-size:var(--text-xs)}.filter-reset:disabled{visibility:hidden}.filter-chips{display:flex;flex-wrap:wrap;gap:var(--space-2)}.filters-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.filters-head .chip:disabled{opacity:.4;cursor:default}.segments{display:inline-flex;padding:2px;border:1px solid var(--border);border-radius:var(--radius-full);background:var(--surface-2)}.segment{height:calc(var(--control-sm) - 4px);padding:0 var(--space-3);border:0;border-radius:var(--radius-full);background:rgba(0,0,0,0);color:var(--text-muted);font:inherit;font-size:var(--text-xs);font-weight:600;cursor:pointer}.segment.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.filter-range{display:grid;grid-template-columns:minmax(0, 1fr) auto minmax(0, 1fr);align-items:center;gap:var(--space-2)}.filter-range .input{height:var(--control-md);padding:0 var(--space-2);font-variant-numeric:tabular-nums}.opening-matches{max-height:9rem;overflow-y:auto}.opening-matches:empty{display:none}.input:is(.tone-rating,.tone-date,.tone-length){border-color:color-mix(in srgb, var(--tone) 40%, var(--border));background:color-mix(in srgb, var(--tone) 6%, var(--surface));accent-color:var(--tone)}.input:is(.tone-rating,.tone-date,.tone-length):focus{border-color:var(--tone);box-shadow:0 0 0 3px color-mix(in srgb, var(--tone) 22%, transparent)}.games-results{display:flex;flex-direction:column;gap:var(--space-3);min-width:0;min-height:0}.games-head{position:relative;z-index:5;display:grid;grid-template-columns:minmax(0, max-content) 1fr auto;grid-template-areas:"tools total pager";align-items:center;justify-content:flex-start;gap:var(--space-2) var(--space-4)}.games-summary{display:inline-flex;flex:none;align-items:center;margin:0 auto 0 0;white-space:nowrap}.games-head>.games-summary{grid-area:total}.summary-unit{margin-left:.3em}.games-head>.pager{grid-area:pager}@media(max-width: 1372px){.games-head{grid-template-columns:minmax(0, 1fr) auto;grid-template-areas:"tools tools" "total pager";row-gap:var(--space-2)}}.sort{position:relative;flex:none}.sort-button{gap:var(--space-2)}.sort-button.active{border-color:var(--accent);color:var(--accent-ink)}.sort-label{color:var(--text-muted)}.sort-chosen{font-weight:600}.sort-menu{position:absolute;z-index:80;top:calc(100% + var(--space-1));left:0;display:flex;flex-direction:column;gap:2px;min-width:100%;margin:0;padding:var(--space-1);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-md);list-style:none;animation:rise var(--fast) var(--ease) both}.sort-option{display:flex;align-items:center;width:100%;height:var(--control-md);padding:0 var(--space-3);border:1px solid rgba(0,0,0,0);border-radius:var(--radius-sm, var(--radius-md));background:none;color:var(--text);font:inherit;font-size:var(--text-sm);white-space:nowrap;cursor:pointer;text-align:left}.sort-option:hover{background:var(--surface-2)}.sort-option.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-ink);font-weight:600}.icon-chip{justify-content:center;width:var(--control-sm);padding:0}.icon-chip .icon{width:16px;height:16px}.pager{display:flex;align-items:center;gap:var(--space-2)}.pager.hidden{visibility:hidden}.pager .chip:disabled{opacity:.4;cursor:default}.pager-page{display:flex;align-items:center;gap:var(--space-2);color:var(--text-muted);font-size:var(--text-sm);white-space:nowrap}.pager-input{width:64px;height:var(--control-sm);text-align:center;font-variant-numeric:tabular-nums}.game-card{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4) var(--space-5);color:var(--text);font:inherit;text-align:left;cursor:pointer}.game-players{display:flex;flex-direction:column;gap:var(--space-1)}.player{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-md)}.player.winner .player-name{font-weight:700}.player-color{width:12px;height:12px;border-radius:3px;box-shadow:inset 0 0 0 1px var(--border)}.player-color.white{background:#f4f3ee}.player-color.black{background:#3a3935}.player-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-rating{color:var(--text-muted);font-size:var(--text-sm);font-variant-numeric:tabular-nums}.games-grid{flex:1;min-height:0;display:grid;grid-auto-flow:column;grid-template-rows:repeat(var(--rows), var(--card));grid-auto-columns:var(--card);gap:var(--space-4);padding:var(--space-1) var(--space-1) var(--space-3);overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain}.games-grid.loading{opacity:.5;pointer-events:none;transition:opacity var(--fast) var(--ease) 150ms}.games-grid .game-card .game-result{flex-wrap:wrap}.games-grid .game-card{position:relative;width:100%;height:100%;aspect-ratio:1;min-width:0;overflow:hidden;justify-content:space-between;padding:var(--space-3)}.game-card-board{position:absolute;inset:0;pointer-events:none}.game-card-board .board{--board-size: 100%;--piece-move: 90ms;border-radius:0;filter:blur(2px) saturate(0.85);scale:1.04;transition:filter var(--normal) var(--ease),scale var(--normal) var(--ease)}@media(prefers-reduced-motion: reduce){.game-card-board .board{--piece-move: 0ms}}.game-card.playing .board{filter:none;scale:1}.game-card.playing .game-panel{opacity:0}.game-card-move{position:absolute;left:50%;bottom:var(--space-2);translate:-50% 0;padding:2px var(--space-2);border-radius:var(--radius-md);background:color-mix(in srgb, var(--surface) 86%, transparent);box-shadow:var(--shadow-sm);font-size:var(--text-sm);font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;pointer-events:none}.game-card-share{position:absolute;top:var(--space-2);right:var(--space-2);z-index:2;border-radius:var(--radius-md);background:color-mix(in srgb, var(--surface) 88%, transparent);box-shadow:var(--shadow-sm);animation:fade var(--fast) var(--ease) both}.game-panel{position:relative;transition:opacity var(--normal) var(--ease);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:color-mix(in srgb, var(--surface) 86%, transparent);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);box-shadow:var(--shadow-sm)}.game-panel .player-color{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--text) 40%, transparent)}.game-bottom{display:flex;flex-direction:column;gap:var(--space-2)}.game-result{display:flex;align-items:center;gap:var(--space-2)}.game-facts{display:flex;flex-wrap:wrap;gap:var(--space-1);font-variant-numeric:tabular-nums}.empty{padding:var(--space-6) 0;text-align:center}.setup{display:flex;flex-direction:column;gap:var(--space-4)}.palette{display:flex;flex-direction:column;gap:var(--space-1)}.palette-row{display:flex;gap:var(--space-1)}.tool{height:44px;min-width:44px;border:1px solid var(--border);border-radius:var(--radius-md);background-color:var(--surface);background-size:80%;background-position:center;background-repeat:no-repeat;color:var(--text-muted);font:inherit;font-size:var(--text-sm);font-weight:600;cursor:pointer;transition:background-color var(--fast) var(--ease),border-color var(--fast) var(--ease),box-shadow var(--fast) var(--ease)}.tool:hover{background-color:var(--surface-2)}.tool.active{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft);background-color:var(--accent-soft);color:var(--accent-ink)}.tool-text{display:inline-flex;align-items:center;gap:var(--space-1);padding:0 var(--space-3)}.field{display:flex;flex-direction:column;gap:var(--space-2)}.field-label{font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.field .tabs{align-self:flex-start}.chip{display:inline-flex;align-items:center;gap:var(--space-1);height:var(--control-sm);padding:0 var(--space-3);border:1px solid var(--border);border-radius:var(--radius-full);background:var(--surface);color:var(--text-muted);font:inherit;font-size:var(--text-xs);font-weight:600;cursor:pointer;transition:all var(--fast) var(--ease)}.chip:hover{background:var(--surface-2)}.chip.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-ink)}.input{width:100%;height:var(--control-lg);padding:0 var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);color:var(--text);font-size:var(--text-xs);transition:border-color var(--fast) var(--ease),box-shadow var(--fast) var(--ease)}.input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.errors{margin:0;padding:0;list-style:none}.errors:empty{display:none}.error{color:var(--loss);font-size:var(--text-sm)}.errors .error::before{content:"• "}.credits{font-size:var(--text-xs)}.credits a{color:inherit}.view{animation:rise var(--slow) var(--ease) backwards}.position-search{display:grid;grid-template-columns:minmax(0, 1fr);gap:var(--space-4);align-items:start}.position-search-board .board{--board-size: min(100%, 440px);margin-inline:auto}.position-search-side{min-width:0}.position-search-actions{grid-column:1/-1}@container filters (min-width: 620px){.position-search{grid-template-columns:minmax(0, 1fr) minmax(0, 290px);gap:var(--space-5)}.position-search-board .board{--board-size: 100%}}.position-chosen{display:flex;gap:var(--space-3);align-items:flex-start}.position-thumb{flex:none;padding:0;border:1px solid var(--border);border-radius:var(--radius-sm);background:none;overflow:hidden;cursor:pointer}.position-thumb .board{--board-size: 96px;--piece-move: 0ms;border-radius:0}.position-facts{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.position-add{align-self:flex-start}.eval-input{width:9ch;height:var(--control-md);padding:0 var(--space-2);text-align:center}.position-card .game-bottom{margin-top:auto}.position-results{height:8px}.position-card .game-card-board .board{filter:none;scale:1;transition:none}.position-card .game-card-board::after{content:"";position:absolute;inset:0;backdrop-filter:blur(2px) saturate(0.85);-webkit-backdrop-filter:blur(2px) saturate(0.85);transition:opacity var(--normal) var(--ease)}.position-card.playing .game-card-board::after{opacity:0}.position-card-actions{position:absolute;top:var(--space-2);right:var(--space-2);z-index:2;display:flex;align-items:center;border-radius:var(--radius-md);background:color-mix(in srgb, var(--surface) 88%, transparent);box-shadow:var(--shadow-sm);animation:fade var(--fast) var(--ease) both}.players-name{width:100%}.games-grid .player-card{display:flex;flex-direction:column;justify-content:space-between;gap:var(--space-2)}.player-card-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);min-width:0}.player-card-name{min-width:0;overflow:hidden;font-size:var(--text-lg);font-weight:700;text-overflow:ellipsis;white-space:nowrap}.player-card-games{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-1) var(--space-2)}.player-card-count{font-size:2rem;font-weight:700;font-variant-numeric:tabular-nums;line-height:1}.player-card-white{flex-basis:100%;font-size:var(--text-xs)}.player-card-results{display:flex;flex-direction:column;gap:var(--space-1)}.player-colour{display:grid;grid-template-columns:auto minmax(0, 1fr) 7.5em;align-items:center;gap:var(--space-2)}.player-card-openings{margin:0;padding:0;list-style:none;font-size:var(--text-xs)}.player-card-openings li{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-results{height:8px}.player-card-score{text-align:right;font-size:var(--text-sm);font-weight:600;font-variant-numeric:tabular-nums}.result.win{background:var(--win)}.result.loss{background:var(--loss)}.games-page.player-profile{grid-template-columns:minmax(16rem, 21rem) minmax(0, 1fr);grid-template-rows:minmax(0, 1fr);gap:var(--space-5)}.player-profile-side{display:flex;flex-direction:column;gap:var(--stack-gap);min-height:0;overflow-y:auto;padding:var(--space-1) var(--space-2) var(--space-3)}.player-profile-head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.player-profile-name{flex-basis:100%;margin:0;font-size:var(--text-xl);line-height:1.2}.player-profile-stats{display:flex;flex-direction:column;gap:var(--stack-gap)}.player-profile-panel{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3)}.player-profile-list{margin:0;padding:0;list-style:none;font-size:var(--text-sm)}.player-profile-list li+li{margin-top:var(--space-1)}@media(max-width: 1200px){.games-page.player-profile{grid-template-columns:minmax(0, 1fr);grid-template-rows:auto minmax(0, 1fr)}.player-profile-side{max-height:34vh}}.player-profile-link{display:inline-flex;color:var(--text-muted)}.player-profile-link:hover{color:var(--accent-ink)}.player-profile-link .icon{width:14px;height:14px}.app-main:has(>.home){max-width:none}.home{display:flex;flex-direction:column;gap:var(--page-gap)}.home-top{display:grid;grid-template-columns:minmax(0, 3fr) minmax(0, 2fr);grid-template-rows:auto minmax(0, 1fr);grid-template-areas:"intro health" "intro tables";gap:var(--stack-gap);min-height:calc(100dvh - 2*var(--main-pad))}.home-intro{grid-area:intro}.home-health{grid-area:health}.home-tables{grid-area:tables}.panel{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--pad-y) var(--pad-x);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface)}.panel-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3)}.panel-head .chip:disabled{opacity:.6;cursor:default}.panel-title{margin:0;color:var(--text-muted);font-size:var(--text-xs);font-weight:600;letter-spacing:.06em;text-transform:uppercase}.home-title{margin:0;font-size:var(--text-2xl);letter-spacing:-0.02em}.home-lede,.home-text{margin:0;font-size:var(--text-md);line-height:1.55}.home-text{color:var(--text-muted);font-size:var(--text-sm)}.home-aside{color:var(--text-muted)}.home-intro .panel-title{margin-top:var(--space-1)}.tiles{display:grid;grid-template-columns:repeat(3, minmax(0, 1fr));gap:var(--space-2)}.tile{display:flex;flex-direction:column;gap:2px;padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-left:3px solid var(--border);border-radius:var(--radius-md);background:var(--surface-2)}.tile.good{border-left-color:var(--win)}.tile.warn{border-left-color:var(--tone-ending)}.tile.bad{border-left-color:var(--loss)}.tile-label{color:var(--text-muted);font-size:var(--text-xs)}.tile-value{font-size:var(--text-md);font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.table-cards{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0, 1fr);gap:var(--space-3)}.table-card{position:relative;display:grid;grid-template-columns:minmax(0, 1fr) auto;gap:2px var(--space-2);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-2);outline:none}.table-card:is(:hover,:focus-visible){z-index:10;border-color:var(--accent)}.table-name{grid-column:1/-1;overflow:hidden;font-family:var(--font-mono);font-size:var(--text-sm);font-weight:600;text-overflow:ellipsis;white-space:nowrap}.table-schema{color:var(--text-muted);font-weight:400}.table-rows,.table-size{color:var(--text-muted);font-size:var(--text-xs);font-variant-numeric:tabular-nums}.table-size{text-align:right}.size-bar{grid-column:1/-1;height:4px;margin-top:var(--space-1);overflow:hidden;border-radius:var(--radius-full);background:color-mix(in srgb, var(--tone-rating) 55%, transparent)}.size-data{display:block;height:100%;background:var(--accent)}.table-detail{position:absolute;bottom:calc(100% + var(--space-2));left:0;z-index:20;min-width:100%;width:max-content;max-width:340px;padding:var(--space-3) var(--space-4);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-md);font-size:var(--text-sm);opacity:0;translate:0 4px;pointer-events:none;transition:opacity var(--fast) var(--ease),translate var(--fast) var(--ease)}.table-card:is(:hover,:focus-visible) .table-detail{opacity:1;translate:0 0}.table-detail p{margin:0 0 var(--space-2);color:var(--text-muted)}.index-list{display:flex;flex-direction:column;gap:2px;margin:0;padding:0;list-style:none}.index-list li{display:flex;justify-content:space-between;gap:var(--space-4)}.index-name{font-family:var(--font-mono);font-size:var(--text-xs)}.index-size{color:var(--text-muted);font-size:var(--text-xs);font-variant-numeric:tabular-nums}@media(max-width: 900px){.home-top{grid-template-columns:minmax(0, 1fr);grid-template-rows:auto;grid-template-areas:"intro" "health" "tables";min-height:0}.table-cards{grid-auto-flow:row;grid-template-columns:repeat(auto-fill, minmax(160px, 1fr))}}.badge{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:var(--radius-full);background:var(--on-accent);color:var(--accent-ink);font-size:var(--text-xs);font-weight:700}@media(max-width: 600px){:root{--main-pad: var(--space-4);--pad-x: var(--space-4);--nav-width: 0px;--top-bar: 56px;--header-height: var(--top-bar)}body{flex-direction:column}.topbar{flex:none;display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);height:var(--top-bar);padding:0 var(--space-3);border-bottom:1px solid var(--border);background:var(--surface)}.topbar .brand{padding:0}.sidebar-top .drawer-close{display:inline-flex}.sidebar{padding-top:0}.sidebar-top{flex:none;height:var(--top-bar)}.sidebar{position:fixed;z-index:90;inset:0 0 0 auto;width:380px;max-width:100vw;height:100dvh;overflow-y:auto;scrollbar-width:none;border-right:0;border-left:1px solid var(--border);box-shadow:var(--shadow-md);transform:translateX(100%);visibility:hidden;transition:transform var(--normal) var(--ease),visibility 0s linear var(--normal)}.sidebar.open{transform:none;visibility:visible;transition:transform var(--normal) var(--ease)}.drawer-backdrop{position:fixed;z-index:85;inset:0;display:block;background:rgba(0,0,0,.45);opacity:0;pointer-events:none;transition:opacity var(--normal) var(--ease)}.drawer-backdrop.open{opacity:1;pointer-events:auto}.app-main{width:100%}body.drawer-open .app-main{overflow:hidden}.tiles{grid-template-columns:repeat(2, minmax(0, 1fr))}.games-head{grid-template-columns:minmax(0, 1fr) auto;grid-template-areas:"tools total" "pager pager";column-gap:var(--space-2)}.summary-unit{display:none}.pager-page{font-size:var(--text-xs)}.pager-input{width:56px}.board-controls{gap:var(--space-1)}}.skeleton{display:block;border-radius:var(--radius-sm);background:linear-gradient(90deg, transparent 0%, color-mix(in srgb, var(--text) 7%, transparent) 50%, transparent 100%) 0 0/200% 100% no-repeat,var(--surface-2);animation:shimmer 1.4s linear infinite}@keyframes shimmer{from{background-position:150% 0,0 0}to{background-position:-50% 0,0 0}}@media(prefers-reduced-motion: reduce){.skeleton{animation:none}}.skeleton.text{display:inline-block;width:70%;height:.9em;vertical-align:-0.1em}.skeleton.text.short{width:40%}.skeleton.text.wide{width:90%}.skeleton.bar{height:20px}.skeleton.block{height:96px}.skeleton.block.tall{height:180px}.skeleton.board-skeleton{width:calc(var(--board-size) + var(--eval-bar) + var(--space-2));height:calc(var(--board-size) + var(--space-4) + var(--board-controls));border-radius:var(--radius-md)}.engine-line .skeleton.engine-score{height:18px;box-shadow:none}.engine-line:has(>.skeleton){cursor:default;animation:none}.engine-line:has(>.skeleton):hover{background:rgba(0,0,0,0)}.explorer-row:has(>.skeleton){cursor:default}.explorer-row:has(>.skeleton):hover{background:rgba(0,0,0,0)}.game-card-skeleton{cursor:default}.game-card-skeleton .game-panel{display:flex;flex-direction:column;gap:var(--space-2);background:var(--surface-2);box-shadow:none}.table-card .size-bar:empty{background:var(--surface-2)}.spinner{display:inline-block;flex:none;width:12px;height:12px;margin-inline:var(--space-1);border:2px solid color-mix(in srgb, currentColor 25%, transparent);border-top-color:currentColor;border-radius:50%;vertical-align:-1px;animation:spin .7s linear infinite}@keyframes spin{to{rotate:1turn}}.explorer-head .spinner{color:var(--text-muted)}.game-info .card-body{display:flex;flex-direction:column;gap:var(--space-3)}.game-info-head{display:flex;align-items:center;justify-content:space-between}.back-link{display:inline-flex;align-items:center;gap:var(--space-1);margin-left:calc(-1*var(--space-1));color:var(--text-muted);font-size:var(--text-sm);font-weight:600;text-decoration:none}.back-link:hover{color:var(--accent-ink)}.back-link .icon{width:16px;height:16px}.game-info .game-facts{align-items:center;gap:var(--space-2)}.game-info a.chip{text-decoration:none}.tag.active-filter{height:var(--control-sm);padding:0 2px 0 0;gap:0;animation:fade var(--fast) var(--ease) backwards}.active-filter button{display:inline-flex;align-items:center;gap:var(--space-1);height:100%;padding:0;border:0;background:none;color:inherit;font:inherit;cursor:pointer}.active-filter-label{padding-left:var(--space-3) !important;padding-right:var(--space-1) !important}.active-filter-remove{justify-content:center;width:22px;height:22px !important;border-radius:var(--radius-full)}.active-filter-remove:hover{background:color-mix(in srgb, currentColor 18%, transparent)}.active-filter-remove .icon{width:13px;height:13px}.active-filter-board .board{--board-size: 18px;--piece-move: 0ms;border-radius:3px}input,textarea,[contenteditable]{-webkit-user-select:text;user-select:text}[data-copy]{cursor:copy}.copied-bubble{position:fixed;z-index:200;translate:-50% calc(-100% - 10px);padding:var(--space-1) var(--space-2);border-radius:var(--radius-md);background:var(--accent);color:var(--on-accent);box-shadow:var(--shadow-md);font-size:var(--text-xs);font-weight:700;pointer-events:none;animation:bubble 1.1s var(--ease) both}@keyframes bubble{0%{opacity:0;translate:-50% calc(-100% - 2px)}15%,75%{opacity:1;translate:-50% calc(-100% - 10px)}100%{opacity:0;translate:-50% calc(-100% - 14px)}}.games-grid,.games-grid .game-card{cursor:grab}.games-grid.dragging,.games-grid.dragging .game-card{cursor:grabbing}.active-filter{position:relative}.active-filter.stacked{margin-right:6px;box-shadow:3px 3px 0 -1px var(--bg),3px 3px 0 0 color-mix(in srgb, var(--tone) 40%, var(--border)),6px 6px 0 -1px var(--bg),6px 6px 0 0 color-mix(in srgb, var(--tone) 25%, var(--border))}.stack-count{padding:0 5px;border-radius:var(--radius-full);background:color-mix(in srgb, currentColor 18%, transparent);font-size:11px}.chip-fan{position:fixed;z-index:70;display:flex;flex-direction:column;gap:var(--space-1);min-width:160px;margin:0;padding:var(--space-2) 0 0;list-style:none;animation:fan var(--fast) var(--ease) both}.chip-fan::before{content:"";position:absolute;inset:var(--space-1) calc(-1*var(--space-2)) calc(-1*var(--space-2));z-index:-1;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-md)}.tag.fan-value{justify-content:space-between;height:var(--control-sm);padding:0 2px 0 var(--space-3)}.fan-value .active-filter-remove{display:inline-flex;align-items:center;justify-content:center;padding:0;border:0;background:none;color:inherit;cursor:pointer}@keyframes fan{from{opacity:0;translate:0 -4px}}.appearance{position:relative}.appearance-button{width:100%;border:0;background:none;font:inherit;font-size:var(--text-sm);font-weight:600;cursor:pointer}.appearance-button.open{background:var(--surface-2);color:var(--text)}.appearance-menu{position:absolute;z-index:80;left:0;bottom:calc(100% + var(--space-2));display:flex;flex-direction:column;gap:var(--space-4);width:240px;padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-md);animation:rise var(--fast) var(--ease) both}.appearance-menu .segments{align-self:flex-start}@media(min-width: 601px)and (max-width: 1200px){.appearance-button{width:44px}}.sharing-backdrop{position:fixed;z-index:200;inset:0;display:grid;place-items:center;padding:var(--space-4);background:color-mix(in srgb, #000 45%, transparent);animation:fade var(--fast) var(--ease) both}.sharing-popup{display:flex;flex-direction:column;gap:var(--space-4);width:min(880px,100%);height:min(600px,100dvh - 2*var(--space-4));padding:var(--space-5);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-md);animation:rise var(--fast) var(--ease) both}.sharing-head{display:flex;align-items:flex-start;gap:var(--space-3)}.sharing-heading{display:flex;flex:1;flex-direction:column;gap:2px;min-width:0}.sharing-kicker{color:var(--accent-ink);font-size:var(--text-xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase}.sharing-title{margin:0;overflow-wrap:anywhere;font-size:var(--text-lg);font-weight:700}.sharing-place{color:var(--text-muted);font-size:var(--text-sm)}.sharing-tabs{align-self:flex-start}.sharing-main{flex:1;min-height:0;display:grid;grid-template-columns:auto minmax(0, 1fr);gap:var(--space-5)}.sharing-board .tool-board{--board-size: 300px}.sharing-body{display:flex;flex-direction:column;gap:var(--space-3);min-height:0;overflow-y:auto;padding:4px;margin:-4px}.sharing-note{margin:0;color:var(--text-muted);font-size:var(--text-sm);line-height:1.5}.sharing-choice{align-self:flex-start}.sharing-value{display:flex;flex-direction:column;gap:var(--space-1)}.sharing-value.grow{flex:1;min-height:0}.sharing-value.grow>.sharing-text{flex:1;min-height:120px;resize:none}.input.sharing-text{width:100%;height:auto;min-height:0;padding:var(--space-2) var(--space-3);resize:vertical;font-size:var(--text-sm);line-height:1.55;overflow-wrap:anywhere;white-space:pre-wrap}.sharing-size{align-self:flex-end;color:var(--text-muted);font-size:var(--text-xs)}.sharing-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.sharing-group{display:flex;flex-direction:column;gap:var(--space-2)}.sharing-group+.sharing-group{padding-top:var(--space-3);border-top:1px solid var(--border)}.sharing-group-title{margin:0;font-size:var(--text-md);font-weight:700}.sharing-gif{align-self:flex-start;width:min(240px,100%);border-radius:var(--radius-sm)}@media(max-width: 760px){.sharing-popup{height:calc(100dvh - 2*var(--space-4))}.sharing-main{grid-template-columns:minmax(0, 1fr);grid-template-rows:auto minmax(0, 1fr);gap:var(--space-3)}.sharing-board{justify-self:center}.sharing-board .tool-board{--board-size: min(220px, 60vw)}}@media(max-width: 600px){.sharing-popup{padding:var(--space-4)}.sharing-actions>*{flex:1}}:root:not([data-board=classic]){--pixel-frame: color-mix(in srgb, var(--text) 16%, var(--surface));--pixel-shadow: color-mix(in srgb, var(--graphite) 16%, transparent);--pixel-notch: polygon( 0 2px, 2px 2px, 2px 0, calc(100% - 2px) 0, calc(100% - 2px) 2px, 100% 2px, 100% calc(100% - 2px), calc(100% - 2px) calc(100% - 2px), calc(100% - 2px) 100%, 2px 100%, 2px calc(100% - 2px), 0 calc(100% - 2px) );--pixel-card: 0 -2px 0 0 var(--pixel-frame), 0 2px 0 0 var(--pixel-frame), -2px 0 0 0 var(--pixel-frame), 2px 0 0 0 var(--pixel-frame)}:root:not([data-board=classic]) :is(h1,h2,h3,.card-title,.panel-title,.home-title){font-family:var(--font-pixel);font-weight:400;letter-spacing:.02em}:root:not([data-board=classic])[data-theme=dark]{--pixel-shadow: #0000006b}@media(prefers-color-scheme: dark){:root:not([data-board=classic]):not([data-theme]){--pixel-shadow: #0000006b}}:root:not([data-board=classic]) .card{border-color:rgba(0,0,0,0);border-radius:0;box-shadow:var(--pixel-card),4px 4px 0 0 var(--pixel-shadow);transition:box-shadow var(--fast) steps(2),transform var(--fast) steps(2)}:root:not([data-board=classic]) .card.interactive:hover{box-shadow:var(--pixel-card),6px 6px 0 0 var(--pixel-shadow);transform:translate(-2px, -2px)}:root:not([data-board=classic]) .card.interactive:active{box-shadow:var(--pixel-card),2px 2px 0 0 var(--pixel-shadow);transform:translate(2px, 2px)}:root:not([data-board=classic]) .sort-menu{border-color:rgba(0,0,0,0);border-radius:0;box-shadow:var(--pixel-card),4px 4px 0 0 var(--pixel-shadow);animation-timing-function:steps(2)}:root:not([data-board=classic]) .sort-option{border-radius:0;transition:background var(--fast) steps(2)}:root:not([data-board=classic]) .sort-option.active{border-color:rgba(0,0,0,0);box-shadow:0 -2px 0 0 var(--accent), 0 2px 0 0 var(--accent), -2px 0 0 0 var(--accent), 2px 0 0 0 var(--accent)}:root:not([data-board=classic]) :is(.tag,.badge,.chip,.segments,.segment){border-radius:0;clip-path:var(--pixel-notch);font-family:var(--font-pixel);font-weight:400;letter-spacing:.03em}:root:not([data-board=classic]) :is(.chip,.segment):focus-visible{outline-offset:-3px}:root:not([data-board=classic]) .move-list{font-family:var(--font-pixel);font-size:var(--text-md);letter-spacing:.02em}:root:not([data-board=classic]) .move{border-radius:0;clip-path:var(--pixel-notch);font-weight:400;transition:background var(--fast) steps(2),color var(--fast) steps(2),box-shadow var(--fast) steps(2)}:root:not([data-board=classic]) .move:hover{background:rgba(0,0,0,0);box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--accent-ink) 45%, transparent)}:root:not([data-board=classic]) .move.current{background:var(--accent);box-shadow:none}:root:not([data-board=classic]) .move:focus-visible{outline-offset:-3px}:root:not([data-board=classic]) :is(.move.variation,.move-number.variation,.bracket){font-size:var(--text-sm)}:root:not([data-board=classic]) .eval-bar{border-radius:0;box-shadow:var(--pixel-card)}:root:not([data-board=classic]) .eval-bar::after{content:"";position:absolute;left:0;right:0;top:calc(50% - 1px);height:2px;background:#e08fab;opacity:.75;pointer-events:none}:root:not([data-board=classic]) .eval-white{transition:none}:root:not([data-board=classic]) .eval-bar.moving .eval-white::before{content:"";position:absolute;left:0;right:0;top:-3px;height:3px;background:repeating-linear-gradient(90deg, #f4f3ee 0 3px, transparent 3px 6px);animation:eval-edge .12s steps(1) infinite}:root:not([data-board=classic]) .eval-bar.moving.flipped .eval-white::before{top:auto;bottom:-3px}@keyframes eval-edge{50%{background-position:3px 0}}:root:not([data-board=classic]) .eval-label{z-index:1;font-family:var(--font-pixel);font-size:10px;font-weight:400;letter-spacing:-0.05em}:root:not([data-board=classic]) :is(.nav-label,.nav-heading,.server-status,.back-link,.button,.tab,.tool-text,.pager-page,.field-label,.tile-label,.tile-value,.topic-number,.index-name,.index-size,.table-name,.table-rows,.table-size,.engine-score,.engine-moves,.explorer-row,.explorer-games,.player-name,.player-rating,.game-result,.result,.games-summary,.game-card-move,.fan-value,.stack-count,.copied-bubble,.sort-option){font-family:var(--font-pixel);font-weight:400;letter-spacing:.02em}.home-hero{display:flex;align-items:center;gap:var(--space-5)}.home-knight{flex:none;width:64px;height:64px;margin:var(--space-1) 0 var(--space-1) 2px;background:url(assets/themes/bit/pieces/bN.svg) center 50%/84% no-repeat var(--wine);box-shadow:0 -2px 0 0 var(--graphite),0 2px 0 0 var(--graphite),-2px 0 0 0 var(--graphite),2px 0 0 0 var(--graphite),6px 6px 0 0 var(--pixel-shadow, rgba(0, 0, 0, 0.3019607843));image-rendering:pixelated}@media(prefers-reduced-motion: no-preference){:root:not([data-animations=off]) .home-knight{animation:knight-bob 2.4s steps(1) infinite}}@keyframes knight-bob{80%{background-position:center calc(50% - 3px)}}:root:not([data-board=classic]){--radius-sm: 0;--radius-md: 0;--radius-lg: 0;--radius-full: 0}:root:not([data-board=classic]) :is(.brand-name,.brand-sub){font-family:var(--font-pixel);font-weight:400;letter-spacing:.02em}:root:not([data-board=classic]) :is(.status-dot,.switch-knob,.spinner,.player-color,.active-filter-board .board){border-radius:0}:root:not([data-board=classic]) .logo{shape-rendering:crispEdges}:root:not([data-board=classic]) .logo .bit{rx:0}:root:not([data-board=classic]) :is(.button-primary,.button-secondary){--frame: var(--pixel-frame);border-color:rgba(0,0,0,0);box-shadow:0 -2px 0 0 var(--frame),0 2px 0 0 var(--frame),-2px 0 0 0 var(--frame),2px 0 0 0 var(--frame),3px 3px 0 0 var(--pixel-shadow)}:root:not([data-board=classic]) .button-primary{--frame: var(--accent-hover)}:root:not([data-board=classic]) :is(.button-primary,.button-secondary):hover:not(:disabled){transform:translate(-1px, -1px);box-shadow:0 -2px 0 0 var(--frame),0 2px 0 0 var(--frame),-2px 0 0 0 var(--frame),2px 0 0 0 var(--frame),4px 4px 0 0 var(--pixel-shadow)}:root:not([data-board=classic]) .button:active:not(:disabled){transform:translate(2px, 2px)}:root:not([data-board=classic]) :is(.button-primary,.button-secondary):active:not(:disabled){box-shadow:0 -2px 0 0 var(--frame),0 2px 0 0 var(--frame),-2px 0 0 0 var(--frame),2px 0 0 0 var(--frame),1px 1px 0 0 var(--pixel-shadow)}:root:not([data-board=classic]) :is(.button,.chip,.tab,.tool,.nav-link,.icon-chip,.back-link,.engine-line,.explorer-row,.active-filter-remove,.pager button){transition-timing-function:steps(2)}:root:not([data-board=classic]) .input{border-width:2px;border-color:var(--pixel-frame);caret-shape:block;transition-timing-function:steps(2)}:root:not([data-board=classic]) .input:focus{border-color:var(--accent);box-shadow:none}:root:not([data-board=classic]) .input:is(.tone-rating,.tone-date,.tone-length){border-color:color-mix(in srgb, var(--tone) 55%, var(--pixel-frame))}:root:not([data-board=classic]) .input:is(.tone-rating,.tone-date,.tone-length):focus{border-color:var(--tone);box-shadow:none}:root:not([data-board=classic]){font-synthesis-weight:none;--pixel-round: polygon( 0 4px, 2px 4px, 2px 2px, 4px 2px, 4px 0, calc(100% - 4px) 0, calc(100% - 4px) 2px, calc(100% - 2px) 2px, calc(100% - 2px) 4px, 100% 4px, 100% calc(100% - 4px), calc(100% - 2px) calc(100% - 4px), calc(100% - 2px) calc(100% - 2px), calc(100% - 4px) calc(100% - 2px), calc(100% - 4px) 100%, 4px 100%, 4px calc(100% - 2px), 2px calc(100% - 2px), 2px calc(100% - 4px), 0 calc(100% - 4px) )}:root:not([data-board=classic]) .explorer-move{font-weight:400}:root:not([data-board=classic]) :is(.switch,.switch-knob,.segment){transition-duration:90ms;transition-timing-function:var(--ease)}:root:not([data-board=classic]) :is(.switch,.switch-knob){clip-path:var(--pixel-round)}:root:not([data-board=classic]) .switch:focus-visible{outline-offset:-3px}:root:not([data-board=classic]) .player-color{clip-path:var(--pixel-notch)}.tile-bit{display:none}:root:not([data-board=classic]) .panel{border-color:rgba(0,0,0,0);box-shadow:var(--pixel-card),4px 4px 0 0 var(--pixel-shadow)}:root:not([data-board=classic]) .table-card{border-color:rgba(0,0,0,0);box-shadow:var(--pixel-card)}:root:not([data-board=classic]) .tile{--tile-colour: var(--wine);--bit-colour: color-mix(in srgb, var(--text-muted) 55%, transparent);position:relative;border:0;border-left:4px solid var(--tile-colour);box-shadow:var(--pixel-card)}:root:not([data-board=classic]) .tile:nth-child(even){--tile-colour: var(--logo-plum)}:root:not([data-board=classic]) .tile.good{--bit-colour: var(--win)}:root:not([data-board=classic]) .tile.warn{--bit-colour: var(--tone-ending)}:root:not([data-board=classic]) .tile.bad{--bit-colour: var(--loss)}:root:not([data-board=classic]) .tile-bit{display:block;position:absolute;top:var(--space-2);right:var(--space-2);width:8px;height:8px}:root[data-board=classic] .bit-only{display:none}:root:not([data-board=classic]) .status-dot{--bit-colour: var(--text-muted);position:relative;background:none;clip-path:none;box-shadow:none;animation:none}:root:not([data-board=classic]) .server-status.online .status-dot{--bit-colour: var(--win);box-shadow:none;animation:none}:root:not([data-board=classic]) .server-status.offline .status-dot{--bit-colour: var(--loss)}:root:not([data-board=classic]) .server-status.degraded .status-dot,:root:not([data-board=classic]) .server-status.outdated .status-dot{--bit-colour: var(--tone-ending)}:root:not([data-board=classic]) :is(.tile-bit,.status-dot)::before,:root:not([data-board=classic]) :is(.tile-bit,.status-dot)::after{content:"";position:absolute;inset:0;clip-path:var(--pixel-notch)}:root:not([data-board=classic]) :is(.tile-bit,.status-dot)::before{background:var(--bit-colour)}:root:not([data-board=classic]) :is(.tile:is(.good,.warn,.bad) .tile-bit,.server-status .status-dot)::after{border:2px solid var(--bit-colour);clip-path:var(--pixel-round);opacity:0;animation:status-splash 2.4s var(--ease) infinite}@keyframes status-splash{0%{inset:0;opacity:.8}70%,100%{inset:-7px;opacity:0}}@media(prefers-reduced-motion: reduce){:root:not([data-board=classic]) :is(.tile-bit,.status-dot)::after{animation:none}}:root[data-animations=off] :is(.tile-bit,.status-dot)::after{animation:none !important}.home-intro :is(.home-text,.home-lede) a{color:var(--accent-ink);text-underline-offset:2px}.home-jump{align-self:flex-start;text-decoration:none}.home-bits .home-jump{position:absolute;right:var(--space-4);bottom:var(--space-3)}.home-tables .table-cards{grid-auto-flow:row;grid-template-columns:repeat(auto-fill, minmax(180px, 1fr))}.topic-page{display:grid;grid-template-columns:minmax(0, 1fr) 260px;align-items:start;gap:var(--page-gap)}.topic{grid-column:1;grid-row:1;min-width:0}.topic-nav-list{grid-column:2;grid-row:1;position:sticky;top:0;gap:var(--space-2);height:calc(100dvh - 2*var(--main-pad));overflow-y:auto}.topic-nav-head{color:var(--text-muted);font-size:var(--text-xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase}.topic-nav-items,.topic-nav-sections{display:flex;flex-direction:column;gap:2px;margin:0;padding:0;list-style:none}.topic-nav-link{display:flex;align-items:baseline;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:var(--text);font-weight:600;text-decoration:none}.topic-nav-link:hover{background:var(--surface-2)}.topic-nav-item.open>.topic-nav-link{background:color-mix(in srgb, var(--accent) 16%, var(--surface-2));color:var(--accent-ink)}.topic-nav-sections{margin:2px 0 var(--space-2) var(--space-5);padding-left:var(--space-2);border-left:1px solid var(--border)}.topic-nav-section{display:block;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);color:var(--text-muted);font-size:var(--text-sm);text-decoration:none}.topic-nav-section:hover{background:var(--surface-2);color:var(--text)}.topic-section{scroll-margin-top:var(--space-4)}@media(max-width: 900px){.topic-page{grid-template-columns:minmax(0, 1fr)}.topic{grid-row:2}.topic-nav-list{grid-column:1;position:static;height:auto}.topic-nav-items{flex-direction:row;flex-wrap:wrap}.topic-nav-sections{display:none}}.topic{gap:var(--space-4);padding:var(--space-5) var(--space-6)}.topic-number{color:var(--accent-ink);font-size:var(--text-xs);font-weight:700}.topic-title{margin:0;font-size:var(--text-2xl)}.topic-line{margin:calc(-1*var(--space-3)) 0 0;color:var(--text-muted)}.topic-section{display:flex;flex-direction:column;gap:var(--space-2)}.topic-code{margin:var(--space-1) 0 0;padding:var(--space-3) var(--space-4);overflow-x:auto;border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text);font-family:var(--font-mono);font-size:var(--text-xs);line-height:1.6}:root:not([data-board=classic]) .topic-code{box-shadow:var(--pixel-card)}.home-bits{--wedge-top: 77%;--wedge-bottom: 63%;position:relative;isolation:isolate;flex:1 1 0;display:flex;min-height:150px;overflow:hidden;border-radius:var(--radius-sm);background:var(--surface-2)}:root:not([data-board=classic]) .home-bits{box-shadow:var(--pixel-card)}.bits-layers{position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(120deg, transparent 58%, color-mix(in srgb, var(--wine) 26%, transparent) 86%);mask-image:linear-gradient(120deg, transparent 54%, #000 80%);-webkit-mask-image:linear-gradient(120deg, transparent 54%, #000 80%)}.bits-row{position:absolute;left:0;width:max-content;translate:0 -50%;color:var(--accent-ink);font-family:var(--font-pixel);line-height:1;white-space:pre;animation:bits-drift var(--drift) linear infinite}@keyframes bits-drift{to{transform:translateX(-50%)}}@media(prefers-reduced-motion: reduce){.bits-row{animation:none}}:root[data-animations=off] .bits-row{animation:none}.bits-text{display:flex;flex-direction:column;justify-content:flex-start;gap:var(--space-2);width:calc(var(--wedge-bottom) - 2*var(--space-4));padding:10px var(--space-4)}.bits-text .home-text{color:var(--text);font-size:var(--text-sm)}.story-row{font-family:var(--font)}@media(max-width: 600px){.bits-text{width:auto;padding:var(--space-3) var(--space-4)}.home-bits .home-jump{position:static}}:root{--chart-white: #f4f3ee;--chart-black: #2b2a27;--chart-edge: color-mix(in srgb, var(--text) 40%, transparent)}.topic-section:has(.encoding-demo){gap:var(--space-3);padding-top:var(--space-5);border-top:1px solid var(--border)}.encoding-demo{margin-top:var(--space-2)}.encoding-demo .panel{background:var(--bg)}.tool-grid{display:grid;grid-template-columns:minmax(300px, 2fr) minmax(0, 3fr);align-items:start;gap:var(--stack-gap)}@media(max-width: 1000px){.tool-grid{grid-template-columns:minmax(0, 1fr)}}.tool-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.tool-facts{display:grid;grid-template-columns:max-content minmax(0, 1fr);gap:var(--space-1) var(--space-4);margin:0;padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);background:var(--surface-2);font-size:var(--text-sm)}.tool-facts dt{color:var(--text-muted)}.tool-facts dd{margin:0;overflow-wrap:anywhere}.tool-board{--board-size: min(100%, 380px);display:flex;justify-content:center}.hex-input,.pgn-input{height:auto;padding:var(--space-2) var(--space-3);overflow:hidden;line-height:1.6;resize:none;white-space:pre-wrap;overflow-wrap:anywhere;-webkit-user-select:text;user-select:text;field-sizing:content}.byte-count{color:var(--text-muted);font-size:var(--text-xs)}.encoding-demo .chip.active{border-color:var(--accent);color:var(--text)}.share{display:flex;flex-direction:column;gap:var(--space-2)}.share-bar{display:flex;gap:2px;height:10px}.share-segment{min-width:3px;border-radius:2px}.share-legend{display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-4);font-size:var(--text-xs)}.share-item{display:inline-flex;align-items:center;gap:var(--space-1)}.share-swatch{width:10px;height:10px;border-radius:2px}.share-group{color:var(--text)}.share-amount{color:var(--text-muted)}.hex-label{display:flex;flex-direction:column;gap:var(--space-1);color:var(--text-muted);font-size:var(--text-xs)}.hex-dump{display:flex;flex-direction:column;gap:3px;font-size:var(--text-sm)}.dump-row{display:grid;grid-template-columns:5ch repeat(16, minmax(0, 1fr));gap:3px;align-items:center}.dump-offset{color:var(--text-muted);font-size:var(--text-xs)}.dump-byte{padding:2px 0;border-radius:3px;color:var(--text);text-align:center;cursor:default;transition:box-shadow var(--fast) var(--ease)}.dump-byte.lit{box-shadow:inset 0 0 0 1px var(--text-muted)}.dump-byte.lensed{box-shadow:inset 0 0 0 2px var(--accent)}.bit-lens{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--surface-2)}.lens-hint,.lens-offset{margin:0;color:var(--text-muted);font-size:var(--text-xs)}.lens-hint{padding:var(--space-2) var(--space-3)}.lens-runs{display:flex;gap:4px}.lens-run{display:flex;flex-direction:column;align-items:stretch;gap:2px;min-width:0}.lens-bits{display:flex;gap:2px}.lens-bit{flex:1;padding:2px 0;border-radius:2px;background:color-mix(in srgb, var(--tone) 14%, transparent);color:var(--text-muted);font-size:var(--text-sm);text-align:center}.lens-bit.on{background:var(--tone);color:var(--tone-ink, var(--surface))}.lens-name{overflow:hidden;color:var(--text-muted);font-size:var(--text-xs);text-overflow:ellipsis;white-space:nowrap}.field-map{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.field-map td{padding:var(--space-1) var(--space-2);border-top:1px solid var(--border);vertical-align:middle}.field-map tr.lit td{background:var(--surface-2)}.field-name{white-space:nowrap}.field-place{color:var(--text-muted);font-size:var(--text-xs);white-space:nowrap;text-align:right}.field-value{width:100%;overflow-wrap:anywhere}.value-text.muted{color:var(--text-muted)}.encoding-demo .piece-img{display:inline-block;width:22px;height:22px;flex:none;background-size:cover}.value-piece{display:inline-flex;align-items:center;gap:var(--space-1)}.value-rank{display:inline-grid;grid-template-columns:repeat(8, 30px);gap:2px}.rank-square{display:flex;flex-direction:column;align-items:center;border-radius:3px;overflow:hidden;background:var(--surface-2)}.rank-piece{display:grid;place-items:center;width:100%;height:28px;background:var(--board-light)}.rank-square.dark .rank-piece{background:var(--board-dark)}.rank-code{padding:1px 0;color:var(--text-muted);font-size:10px}.value-castling{display:inline-flex;flex-wrap:wrap;gap:var(--space-1)}.castle-right{display:inline-flex;align-items:center;gap:2px;padding:1px var(--space-2) 1px 2px;border-radius:var(--radius-sm);background:var(--surface-2);font-size:var(--text-xs)}.castle-right .piece-img{width:18px;height:18px}.castle-right.off{opacity:.35;text-decoration:line-through}.value-files{display:inline-flex;gap:2px}.file-cell{width:20px;padding:1px 0;border-radius:3px;background:var(--surface-2);color:var(--text-muted);font-family:var(--font-mono);font-size:var(--text-xs);text-align:center}.file-cell.marked{background:var(--tone, var(--accent));color:var(--surface)}.value-square{display:inline-flex;align-items:center;gap:var(--space-2)}.mini-board{display:inline-grid;grid-template-columns:repeat(8, 9px);border-radius:2px;overflow:hidden}.mini-square{width:9px;height:9px;background:var(--board-light)}.mini-square.dark{background:var(--board-dark)}.mini-square.marked{background:var(--tone, var(--accent));box-shadow:inset 0 0 0 1px var(--surface)}.move-chips-section,.clock-chart{display:flex;flex-direction:column;gap:var(--space-2)}.move-chips{display:flex;flex-wrap:wrap;gap:var(--space-1)}.move-chip{display:inline-flex;align-items:center;gap:var(--space-2);padding:2px var(--space-2) 2px 2px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);font-size:var(--text-xs);cursor:default}.move-chip.lit{border-color:var(--tone-time);background:color-mix(in srgb, var(--tone-time) 10%, var(--surface))}.move-chip .piece-img{width:20px;height:20px}.move-bits{color:var(--tone-time)}.move-clock{color:var(--text-muted)}.clock-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3)}.clock-legend{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--text-muted);font-size:var(--text-xs)}.clock-key{width:10px;height:10px;margin-left:var(--space-2);border-radius:2px}.clock-key.white,.clock-bar.white{background:var(--chart-white)}.clock-key.black,.clock-bar.black{background:var(--chart-black)}.clock-key,.clock-bar{box-shadow:inset 0 0 0 1px var(--chart-edge)}.clock-key.black,.clock-bar.black{--chart-edge: color-mix(in srgb, var(--text) 70%, transparent)}.clock-plot{position:relative;padding-top:var(--space-4)}.clock-scale{position:absolute;top:0;left:0;color:var(--text-muted);font-size:var(--text-xs)}.clock-columns{display:flex;gap:2px;height:160px}.clock-column{display:flex;flex:1 1 0;flex-direction:column;min-width:2px}.clock-half{display:flex;flex:1;justify-content:center}.clock-half.up{align-items:flex-end;border-bottom:1px solid var(--border)}.clock-half.down{align-items:flex-start}.clock-bar{width:100%;max-width:10px;min-height:1px}.clock-half.up .clock-bar{border-radius:3px 3px 0 0}.clock-half.down .clock-bar{border-radius:0 0 3px 3px}.clock-bar.lit{box-shadow:inset 0 0 0 1px var(--chart-edge),0 0 0 2px var(--surface),0 0 0 3px var(--text)}.clock-axis{display:flex;justify-content:space-between;color:var(--text-muted);font-size:var(--text-xs)}:root:not([data-board=classic]) .dump-byte,:root:not([data-board=classic]) .lens-bit,:root:not([data-board=classic]) .share-segment,:root:not([data-board=classic]) .share-swatch,:root:not([data-board=classic]) .rank-square,:root:not([data-board=classic]) .file-cell,:root:not([data-board=classic]) .castle-right,:root:not([data-board=classic]) .move-chip,:root:not([data-board=classic]) .clock-key,:root:not([data-board=classic]) .clock-half.up .clock-bar,:root:not([data-board=classic]) .clock-half.down .clock-bar,:root:not([data-board=classic]) .tool-facts,:root:not([data-board=classic]) .bit-lens{border-radius:0}:root:not([data-board=classic]) .dump-byte{transition-timing-function:steps(2)}.admin{display:flex;flex-direction:column;gap:var(--stack-gap);width:100%;max-width:820px;margin-inline:auto}.admin .card-body{display:flex;flex-direction:column;gap:var(--space-3)}.admin-pgn,.admin-uids{width:100%}.admin-key{flex:1 1 16rem;min-width:0}.admin-uids{min-height:6rem;resize:vertical;user-select:text;font-size:var(--text-sm)}.admin-pgn{min-height:12rem;resize:vertical;user-select:text;white-space:pre;font-size:var(--text-sm)}.admin-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3)}.admin-count,.admin-status{color:var(--text-muted);font-size:var(--text-sm)}.admin-status{margin:0}.admin-confirm{flex:1 1 12rem;max-width:16rem}.admin-danger:not(:disabled){border-color:var(--loss);color:var(--loss)}.admin-rejected{margin:0;padding-left:var(--space-4);max-height:16rem;overflow-y:auto;font-size:var(--text-sm);user-select:text}.rebuild-bar{height:8px;overflow:hidden;border-radius:var(--radius-full);background:var(--surface-2)}.rebuild-bar span{display:block;height:100%;background:var(--accent);transition:width var(--normal) var(--ease)}.rebuild-table{margin:var(--space-3) 0 var(--space-1);font-size:var(--text-sm)}.rebuild-kinds{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.rebuild-kinds th,.rebuild-kinds td{padding:2px var(--space-2);text-align:right}.rebuild-kinds th:first-child,.rebuild-kinds td:first-child{text-align:left}.rebuild-kinds th{color:var(--text-muted);font-weight:600}.rebuild-changed td{color:var(--accent-ink)}.tags{display:flex;flex-direction:column;gap:var(--page-gap)}.tag-total{margin:0;font-size:var(--text-sm)}.tag-domain{display:flex;flex-direction:column;gap:var(--space-3)}.tag-domain-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--space-2);margin:0;font-size:var(--text-lg)}.tag-domain-head .muted{font-size:var(--text-sm);font-weight:400}.tag-cards{display:grid;grid-template-columns:repeat(auto-fill, minmax(15rem, 1fr));gap:var(--stack-gap)}.tag-card{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3) var(--space-4);color:inherit;text-decoration:none}.tag-card-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-2)}.tag-card-name{font-weight:650}.tag-shape{flex:none;padding:0 var(--space-2);border-radius:var(--radius-full);background:var(--surface-2);color:var(--accent-ink);font-size:var(--text-xs);font-weight:400}.tag-card-about{flex:1;color:var(--text-muted);font-size:var(--text-sm);line-height:1.45}.tag-card-numbers{display:flex;justify-content:space-between;gap:var(--space-2);font-size:var(--text-xs)}.tag-forecast{display:flex;flex-direction:column;gap:var(--space-1)}.tag-forecast-choice{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm)}.tag-forecast-choice select{width:auto}.tag-forecast-note{max-width:60rem;margin:0;font-size:var(--text-xs)}.tag-kind-head{display:flex;flex-direction:column;gap:var(--space-1)}.tag-kind-head p{margin:0}.tag-kind-title{display:flex;align-items:baseline;gap:var(--space-3);margin:0;font-size:var(--text-xl)}.tag-kind-about{font-size:var(--text-md)}.tag-rows{display:flex;flex-direction:column;gap:var(--space-1);margin:0;padding:0;list-style:none}.tag-row{display:grid;grid-template-columns:minmax(0, 15rem) minmax(0, 1fr) 6.5em 4.5em 5.5em;align-items:center;gap:var(--space-3);font-size:var(--text-sm)}.tag-row-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tag-row-bar{height:8px;border-radius:var(--radius-full);background:var(--surface-2);overflow:hidden}.tag-row-bar>span{display:block;height:100%;min-width:1px;background:var(--accent)}.tag-row-count,.tag-row-share,.tag-row-bytes{color:var(--text-muted);text-align:right}.tag-rows.forecast .tag-row{grid-template-columns:minmax(0, 15rem) minmax(0, 1fr) 6.5em 4.5em 11em}@media(max-width: 600px){.tag-row,.tag-rows.forecast .tag-row{grid-template-columns:minmax(0, 1fr) 4.5em 4em;grid-template-areas:"label bytes bytes" "bar count share";row-gap:2px}.tag-row-label{grid-area:label}.tag-row-bytes{grid-area:bytes;justify-self:end;white-space:nowrap}.tag-row-bar{grid-area:bar}.tag-row-count{grid-area:count}.tag-row-share{grid-area:share}}.devlog{gap:0;padding:var(--space-6) var(--space-7);font-size:var(--text-md);line-height:1.65}.devlog>*{margin:0 0 var(--space-3)}.devlog>:last-child{margin-bottom:0}.devlog h2{margin-top:var(--space-4);font-size:var(--text-xl)}.devlog h3{margin:var(--space-4) 0 var(--space-2);color:var(--accent-ink);font-size:var(--text-lg)}.devlog p,.devlog li{color:var(--text)}.devlog strong{font-weight:700}.devlog :not(pre)>code{padding:0 var(--space-1);border-radius:var(--radius-sm);background:var(--surface-2);font-family:var(--font-mono);font-size:.9em}.devlog blockquote{padding:var(--space-1) 0 var(--space-1) var(--space-4);border-left:3px solid var(--accent);color:var(--text-muted)}.devlog ul{display:flex;flex-direction:column;gap:var(--space-2);padding-left:var(--space-5)}.devlog hr{width:100%;margin:var(--space-5) 0;border:0;border-top:1px solid var(--border)}.devlog-title{font-size:var(--text-2xl);letter-spacing:-0.02em}@media(max-width: 600px){.devlog{padding:var(--pad-y) var(--pad-x)}}:root:not([data-board=classic]) .devlog hr{border-top-style:dashed}.icon{display:inline-block;background-color:currentColor;mask:var(--icon-classic) center/contain no-repeat;-webkit-mask:var(--icon-classic) center/contain no-repeat}:root:not([data-board=classic]) .icon{width:calc(9*var(--icon-cell, 2px));height:calc(9*var(--icon-cell, 2px));mask-image:var(--icon-bit);-webkit-mask-image:var(--icon-bit)}.icon-first{--icon-classic: url(assets/themes/classic/icons/first.svg);--icon-bit: url(assets/themes/bit/icons/first.svg)}.icon-previous{--icon-classic: url(assets/themes/classic/icons/previous.svg);--icon-bit: url(assets/themes/bit/icons/previous.svg)}.icon-next{--icon-classic: url(assets/themes/classic/icons/next.svg);--icon-bit: url(assets/themes/bit/icons/next.svg)}.icon-last{--icon-classic: url(assets/themes/classic/icons/last.svg);--icon-bit: url(assets/themes/bit/icons/last.svg)}.icon-flip{--icon-classic: url(assets/themes/classic/icons/flip.svg);--icon-bit: url(assets/themes/bit/icons/flip.svg)}.icon-edit{--icon-classic: url(assets/themes/classic/icons/edit.svg);--icon-bit: url(assets/themes/bit/icons/edit.svg)}.icon-trash{--icon-classic: url(assets/themes/classic/icons/trash.svg);--icon-bit: url(assets/themes/bit/icons/trash.svg)}.icon-promote{--icon-classic: url(assets/themes/classic/icons/promote.svg);--icon-bit: url(assets/themes/bit/icons/promote.svg)}.icon-copy{--icon-classic: url(assets/themes/classic/icons/copy.svg);--icon-bit: url(assets/themes/bit/icons/copy.svg)}.icon-home{--icon-classic: url(assets/themes/classic/icons/home.svg);--icon-bit: url(assets/themes/bit/icons/home.svg)}.icon-analysis{--icon-classic: url(assets/themes/classic/icons/analysis.svg);--icon-bit: url(assets/themes/bit/icons/analysis.svg)}.icon-games{--icon-classic: url(assets/themes/classic/icons/games.svg);--icon-bit: url(assets/themes/bit/icons/games.svg)}.icon-positions{--icon-classic: url(assets/themes/classic/icons/positions.svg);--icon-bit: url(assets/themes/bit/icons/positions.svg)}.icon-filter{--icon-classic: url(assets/themes/classic/icons/filter.svg);--icon-bit: url(assets/themes/bit/icons/filter.svg)}.icon-close{--icon-classic: url(assets/themes/classic/icons/close.svg);--icon-bit: url(assets/themes/bit/icons/close.svg)}.icon-check{--icon-classic: url(assets/themes/classic/icons/check.svg);--icon-bit: url(assets/themes/bit/icons/check.svg)}.icon-sliders{--icon-classic: url(assets/themes/classic/icons/sliders.svg);--icon-bit: url(assets/themes/bit/icons/sliders.svg)}.icon-share{--icon-classic: url(assets/themes/classic/icons/share.svg);--icon-bit: url(assets/themes/bit/icons/share.svg)}.icon-sort{--icon-classic: url(assets/themes/classic/icons/sort.svg);--icon-bit: url(assets/themes/bit/icons/sort.svg)}.icon-guide{--icon-classic: url(assets/themes/classic/icons/guide.svg);--icon-bit: url(assets/themes/bit/icons/guide.svg)}.icon-players{--icon-classic: url(assets/themes/classic/icons/players.svg);--icon-bit: url(assets/themes/bit/icons/players.svg)}.icon-tags{--icon-classic: url(assets/themes/classic/icons/tags.svg);--icon-bit: url(assets/themes/bit/icons/tags.svg)}.icon-menu{--icon-classic: url(assets/themes/classic/icons/menu.svg);--icon-bit: url(assets/themes/bit/icons/menu.svg)}.icon-devlog{--icon-classic: url(assets/themes/classic/icons/devlog.svg);--icon-bit: url(assets/themes/bit/icons/devlog.svg)}:root{--board-light: #e4dade;--board-dark: #8b5b71;--board-font: var(--font-pixel);--hl-last: rgb(224 143 171 / 0.42);--hl-selected: rgb(224 143 171 / 0.62);--hl-dot: rgb(44 44 44 / 0.26);--hl-check: rgb(214 52 96 / 0.9);--hl-check-halo: rgb(214 52 96 / 0.55);--piece-move: 180ms}:root[data-board=classic]{--board-light: #ebecd0;--board-dark: #779556;--board-font: var(--font);--hl-last: rgb(255 255 51 / 0.42);--hl-selected: rgb(255 255 51 / 0.55);--hl-dot: rgb(0 0 0 / 0.18);--hl-check: rgb(255 0 0 / 0.9);--hl-check-halo: rgb(231 0 0 / 0.55)}@media(prefers-reduced-motion: reduce){:root{--piece-move: 0ms}}.board{position:relative;width:var(--board-size);aspect-ratio:1;margin-inline:auto;border-radius:var(--radius-sm);overflow:hidden;background:var(--board-light);user-select:none;-webkit-user-select:none;touch-action:none}.board::before{content:"";position:absolute;inset:0;background:var(--board-dark);mask:url(assets/shared/board/squares.svg) 0 0/100% 100%;-webkit-mask:url(assets/shared/board/squares.svg) 0 0/100% 100%}.piece,.coord,.hl{position:absolute;top:0;left:0;width:12.5%;height:12.5%;translate:calc(var(--file)*100%) calc((7 - var(--rank))*100%)}.board.flipped :is(.piece,.coord,.hl){translate:calc((7 - var(--file))*100%) calc(var(--rank)*100%)}.sq-a1{--file: 0;--rank: 0}.sq-b1{--file: 1;--rank: 0}.sq-c1{--file: 2;--rank: 0}.sq-d1{--file: 3;--rank: 0}.sq-e1{--file: 4;--rank: 0}.sq-f1{--file: 5;--rank: 0}.sq-g1{--file: 6;--rank: 0}.sq-h1{--file: 7;--rank: 0}.sq-a2{--file: 0;--rank: 1}.sq-b2{--file: 1;--rank: 1}.sq-c2{--file: 2;--rank: 1}.sq-d2{--file: 3;--rank: 1}.sq-e2{--file: 4;--rank: 1}.sq-f2{--file: 5;--rank: 1}.sq-g2{--file: 6;--rank: 1}.sq-h2{--file: 7;--rank: 1}.sq-a3{--file: 0;--rank: 2}.sq-b3{--file: 1;--rank: 2}.sq-c3{--file: 2;--rank: 2}.sq-d3{--file: 3;--rank: 2}.sq-e3{--file: 4;--rank: 2}.sq-f3{--file: 5;--rank: 2}.sq-g3{--file: 6;--rank: 2}.sq-h3{--file: 7;--rank: 2}.sq-a4{--file: 0;--rank: 3}.sq-b4{--file: 1;--rank: 3}.sq-c4{--file: 2;--rank: 3}.sq-d4{--file: 3;--rank: 3}.sq-e4{--file: 4;--rank: 3}.sq-f4{--file: 5;--rank: 3}.sq-g4{--file: 6;--rank: 3}.sq-h4{--file: 7;--rank: 3}.sq-a5{--file: 0;--rank: 4}.sq-b5{--file: 1;--rank: 4}.sq-c5{--file: 2;--rank: 4}.sq-d5{--file: 3;--rank: 4}.sq-e5{--file: 4;--rank: 4}.sq-f5{--file: 5;--rank: 4}.sq-g5{--file: 6;--rank: 4}.sq-h5{--file: 7;--rank: 4}.sq-a6{--file: 0;--rank: 5}.sq-b6{--file: 1;--rank: 5}.sq-c6{--file: 2;--rank: 5}.sq-d6{--file: 3;--rank: 5}.sq-e6{--file: 4;--rank: 5}.sq-f6{--file: 5;--rank: 5}.sq-g6{--file: 6;--rank: 5}.sq-h6{--file: 7;--rank: 5}.sq-a7{--file: 0;--rank: 6}.sq-b7{--file: 1;--rank: 6}.sq-c7{--file: 2;--rank: 6}.sq-d7{--file: 3;--rank: 6}.sq-e7{--file: 4;--rank: 6}.sq-f7{--file: 5;--rank: 6}.sq-g7{--file: 6;--rank: 6}.sq-h7{--file: 7;--rank: 6}.sq-a8{--file: 0;--rank: 7}.sq-b8{--file: 1;--rank: 7}.sq-c8{--file: 2;--rank: 7}.sq-d8{--file: 3;--rank: 7}.sq-e8{--file: 4;--rank: 7}.sq-f8{--file: 5;--rank: 7}.sq-g8{--file: 6;--rank: 7}.sq-h8{--file: 7;--rank: 7}.piece{z-index:2;background-size:cover;will-change:translate;transition:translate var(--piece-move) var(--ease),opacity var(--piece-move) var(--ease),scale var(--piece-move) var(--ease)}.board:not(.dragging) .piece{cursor:pointer}.board.dragging,.piece.dragged{cursor:grabbing}.piece.dragged{z-index:10;scale:1.08;transition:none}.piece.gone{opacity:0;scale:.7;pointer-events:none}:is(.piece,.piece-img).white.king{background-image:url(assets/themes/classic/pieces/wK.svg)}:is(.piece,.piece-img).white.queen{background-image:url(assets/themes/classic/pieces/wQ.svg)}:is(.piece,.piece-img).white.rook{background-image:url(assets/themes/classic/pieces/wR.svg)}:is(.piece,.piece-img).white.bishop{background-image:url(assets/themes/classic/pieces/wB.svg)}:is(.piece,.piece-img).white.knight{background-image:url(assets/themes/classic/pieces/wN.svg)}:is(.piece,.piece-img).white.pawn{background-image:url(assets/themes/classic/pieces/wP.svg)}:is(.piece,.piece-img).black.king{background-image:url(assets/themes/classic/pieces/bK.svg)}:is(.piece,.piece-img).black.queen{background-image:url(assets/themes/classic/pieces/bQ.svg)}:is(.piece,.piece-img).black.rook{background-image:url(assets/themes/classic/pieces/bR.svg)}:is(.piece,.piece-img).black.bishop{background-image:url(assets/themes/classic/pieces/bB.svg)}:is(.piece,.piece-img).black.knight{background-image:url(assets/themes/classic/pieces/bN.svg)}:is(.piece,.piece-img).black.pawn{background-image:url(assets/themes/classic/pieces/bP.svg)}:root:not([data-pieces=classic]) :is(.piece,.piece-img).white.king{background-image:url(assets/themes/bit/pieces/wK.svg)}:root:not([data-pieces=classic]) :is(.piece,.piece-img).white.queen{background-image:url(assets/themes/bit/pieces/wQ.svg)}:root:not([data-pieces=classic]) :is(.piece,.piece-img).white.rook{background-image:url(assets/themes/bit/pieces/wR.svg)}:root:not([data-pieces=classic]) :is(.piece,.piece-img).white.bishop{background-image:url(assets/themes/bit/pieces/wB.svg)}:root:not([data-pieces=classic]) :is(.piece,.piece-img).white.knight{background-image:url(assets/themes/bit/pieces/wN.svg)}:root:not([data-pieces=classic]) :is(.piece,.piece-img).white.pawn{background-image:url(assets/themes/bit/pieces/wP.svg)}:root:not([data-pieces=classic]) :is(.piece,.piece-img).black.king{background-image:url(assets/themes/bit/pieces/bK.svg)}:root:not([data-pieces=classic]) :is(.piece,.piece-img).black.queen{background-image:url(assets/themes/bit/pieces/bQ.svg)}:root:not([data-pieces=classic]) :is(.piece,.piece-img).black.rook{background-image:url(assets/themes/bit/pieces/bR.svg)}:root:not([data-pieces=classic]) :is(.piece,.piece-img).black.bishop{background-image:url(assets/themes/bit/pieces/bB.svg)}:root:not([data-pieces=classic]) :is(.piece,.piece-img).black.knight{background-image:url(assets/themes/bit/pieces/bN.svg)}:root:not([data-pieces=classic]) :is(.piece,.piece-img).black.pawn{background-image:url(assets/themes/bit/pieces/bP.svg)}.coord{z-index:1;padding:2px 4px;font-family:var(--board-font);font-size:clamp(9px,var(--board-size)/45,13px);font-weight:700;line-height:1;pointer-events:none}:root:not([data-board=classic]) .coord{font-size:clamp(11px,var(--board-size)/38,15px);font-weight:400}.coord.on-dark{color:var(--board-light)}.coord.on-light{color:var(--board-dark)}.coord.file{display:flex;align-items:flex-end;justify-content:flex-end}.hl{z-index:1;pointer-events:none}.hl.last-move{background:var(--hl-last)}.hl.selected{background:var(--hl-selected)}.hl.target{background:radial-gradient(circle, var(--hl-dot) 16%, transparent 17%)}.hl.capture{background:radial-gradient(circle, transparent 62%, var(--hl-dot) 63%)}.hl.check{background:radial-gradient(circle, var(--hl-check) 0%, var(--hl-check-halo) 30%, transparent 72%)}.hl.hover{box-shadow:inset 0 0 0 4px hsla(0,0%,100%,.65)}.promotion{position:absolute;inset:0;z-index:20;background:rgba(0,0,0,.4);animation:fade var(--normal) var(--ease) both}.promotion-choice{border:0;padding:0;border-radius:50%;background-color:var(--board-light);box-shadow:0 2px 10px rgba(0,0,0,.35);cursor:pointer;transition:background-color var(--fast) var(--ease),scale var(--fast) var(--ease)}.promotion-choice:hover{background-color:#fff;scale:1.06}@keyframes fade{from{opacity:0}}.board{--brush-green: 21 120 27;--brush-red: 136 32 32;--brush-blue: 0 48 136;--brush-yellow: 230 143 0}.hl.mark.green{background:rgb(var(--brush-green)/0.55)}.hl.mark.red{background:rgb(var(--brush-red)/0.6)}.hl.mark.blue{background:rgb(var(--brush-blue)/0.55)}.hl.mark.yellow{background:rgb(var(--brush-yellow)/0.6)}:root:not([data-board=classic]) .hl.last-move{background-image:url(assets/themes/bit/board/last-move.svg);background-size:100% 100%}:root:not([data-board=classic]) .hl.selected{background-image:url(assets/themes/bit/board/selected.svg);background-size:100% 100%}:root:not([data-board=classic]) .hl.target{background:url(assets/themes/bit/board/target.svg) 0 0/100% 100%}:root:not([data-board=classic]) .hl.capture{background:url(assets/themes/bit/board/capture.svg) 0 0/100% 100%}:root:not([data-board=classic]) .hl.check{background:url(assets/themes/bit/board/check.svg) 0 0/100% 100%}:root:not([data-board=classic]) .hl.hover{box-shadow:none;background:url(assets/themes/bit/board/hover.svg) 0 0/100% 100%}:root:not([data-board=classic]) .board{--brush-green: 245 197 66;--brush-red: 224 72 72;--brush-blue: 65 105 225;--brush-yellow: 244 239 230}:root:not([data-board=classic]) .hl.mark.green{background:url(assets/themes/bit/board/mark-green.svg) 0 0/100% 100%,rgb(var(--brush-green)/0.18)}:root:not([data-board=classic]) .hl.mark.red{background:url(assets/themes/bit/board/mark-red.svg) 0 0/100% 100%,rgb(var(--brush-red)/0.18)}:root:not([data-board=classic]) .hl.mark.blue{background:url(assets/themes/bit/board/mark-blue.svg) 0 0/100% 100%,rgb(var(--brush-blue)/0.18)}:root:not([data-board=classic]) .hl.mark.yellow{background:url(assets/themes/bit/board/mark-yellow.svg) 0 0/100% 100%,rgb(var(--brush-yellow)/0.18)}.arrows{position:absolute;inset:0;z-index:3;width:100%;height:100%;pointer-events:none}.arrow{opacity:.8}.arrow.preview{opacity:.55}.arrow path{fill:none;stroke-width:.17;stroke-linejoin:round}.arrow.green path{stroke:rgb(var(--brush-green))}.arrow.red path{stroke:rgb(var(--brush-red))}.arrow.blue path{stroke:rgb(var(--brush-blue))}.arrow.yellow path{stroke:rgb(var(--brush-yellow))}.arrow.green polygon{fill:rgb(var(--brush-green))}.arrow.red polygon{fill:rgb(var(--brush-red))}.arrow.blue polygon{fill:rgb(var(--brush-blue))}.arrow.yellow polygon{fill:rgb(var(--brush-yellow))}.arrow .pixels{display:none;shape-rendering:crispEdges}:root:not([data-board=classic]) .arrow .smooth{display:none}:root:not([data-board=classic]) .arrow .pixels{display:inline}:root:not([data-board=classic]) .arrow{opacity:.7}:root:not([data-board=classic]) .arrow.preview{opacity:.45}.arrow .pixels .outline{fill:#1c1c1c}.arrow.green .pixels .fill{fill:rgb(var(--brush-green))}.arrow.red .pixels .fill{fill:rgb(var(--brush-red))}.arrow.blue .pixels .fill{fill:rgb(var(--brush-blue))}.arrow.yellow .pixels .fill{fill:rgb(var(--brush-yellow))}@media(prefers-reduced-motion: no-preference){:root:not([data-board=classic]) .hl.check{animation:bit-blink .28s steps(1) 4}:root:not([data-board=classic]) .board:has(.hl.selected.sq-a1) .piece.sq-a1:not(.gone,.dragged),:root:not([data-board=classic]) .board:has(.hl.selected.sq-b1) .piece.sq-b1:not(.gone,.dragged),:root:not([data-board=classic]) .board:has(.hl.selected.sq-c1) .piece.sq-c1:not(.gone,.dragged),:root:not([data-board=classic]) .board:has(.hl.selected.sq-d1) .piece.sq-d1:not(.gone,.dragged),:root:not([data-board=classic]) .board:has(.hl.selected.sq-e1) .piece.sq-e1:not(.gone,.dragged),:root:not([data-board=classic]) .board:has(.hl.selected.sq-f1) .piece.sq-f1:not(.gone,.dragged),:root:not([data-board=classic]) .board:has(.hl.selected.sq-g1) .piece.sq-g1:not(.gone,.dragged),:root:not([data-board=classic]) .board:has(.hl.selected.sq-h1) .piece.sq-h1:not(.gone,.dragged),:root:not([data-board=classic]) .board:has(.hl.selected.sq-a2) .piece.sq-a2:not(.gone,.dragged),:root:not([data-board=classic]) .board:has(.hl.selected.sq-b2) .piece.sq-b2:not(.gone,.dragged),:root:not([data-board=classic]) .board:has(.hl.selected.sq-c2) .piece.sq-c2:not(.gone,.dragged),:root:not([data-board=classic]) .board:has(.hl.selected.sq-d2) .piece.sq-d2:not(.gone,.dragged),:root:not([data-board=classic]) .board:has(.hl.selected.sq-e2) .piece.sq-e2:not(.gone,.dragged),:root:not([data-board=classic]) .board:has(.hl.selected.sq-f2) .piece.sq-f2:not(.gone,.dragged),:root:not([data-board=classic]) .board:has(.hl.selected.sq-g2) .piece.sq-g2:not(.gone,.dragged),:root:not([data-board=classic]) .board:has(.hl.selected.sq-h2) .piece.sq-h2:not(.gone,.dragged),:root:not([data-board=classic]) .board:has(.hl.selected.sq-a3) .piece.sq-a3:not(.gone,.dragged),:root:not([data-board=classic]) .board:has(.hl.selected.sq-b3) .piece.sq-b3:not(.gone,.dragged),:root:not([data-board=classic]) .board:has(.hl.selected.sq-c3) .piece.sq-c3:not(.gone,.dragged),:root:not([data-board=classic]) .board:has(.hl.selected.sq-d3) .piece.sq-d3:not(.gone,.dragged),:root:not([data-board=classic]) .board:has(.hl.selected.sq-e3) .piece.sq-e3:not(.gone,.dragged),:root:not([data-board=classic]) .board:has(.hl.selected.sq-f3) .piece.sq-f3:not(.gone,.dragged),:root:not([data-board=classic]) .board:has(.hl.selected.sq-g3) .piece.sq-g3:not(.gone,.dragged),:root:not([data-board=classic]) .board:has(.hl.selected.sq-h3) .piece.sq-h3:not(.gone,.dragged),:root:not([data-board=classic]) .board:has(.hl.selected.sq-a4) .piece.sq-a4:not(.gone,.dragged),:root:not([data-board=classic]) .board:has(.hl.selected.sq-b4) .piece.sq-b4:not(.gone,.dragged),:root:not([data-board=classic]) .board:has(.hl.selected.sq-c4) .piece.sq-c4:not(.gone,.dragged),:root:not([data-board=classic]) .board:has(.hl.selected.sq-d4) .piece.sq-d4:not(.gone,.dragged),:root:not([data-board=classic]) .board:has(.hl.selected.sq-e4) .piece.sq-e4:not(.gone,.dragged),:root:not([data-board=classic]) .board:has(.hl.selected.sq-f4) .piece.sq-f4:not(.gone,.dragged),:root:not([data-board=classic]) .board:has(.hl.selected.sq-g4) .piece.sq-g4:not(.gone,.dragged),:root:not([data-board=classic]) .board:has(.hl.selected.sq-h4) .piece.sq-h4:not(.gone,.dragged),:root:not([data-board=classic]) .board:has(.hl.selected.sq-a5) .piece.sq-a5:not(.gone,.dragged),:root:not([data-board=classic]) .board:has(.hl.selected.sq-b5) .piece.sq-b5:not(.gone,.dragged),:root:not([data-board=classic]) .board:has(.hl.selected.sq-c5) .piece.sq-c5:not(.gone,.dragged),:root:not([data-board=classic]) .board:has(.hl.selected.sq-d5) .piece.sq-d5:not(.gone,.dragged),:root:not([data-board=classic]) .board:has(.hl.selected.sq-e5) .piece.sq-e5:not(.gone,.dragged),:root:not([data-board=classic]) .board:has(.hl.selected.sq-f5) .piece.sq-f5:not(.gone,.dragged),:root:not([data-board=classic]) .board:has(.hl.selected.sq-g5) .piece.sq-g5:not(.gone,.dragged),:root:not([data-board=classic]) .board:has(.hl.selected.sq-h5) .piece.sq-h5:not(.gone,.dragged),:root:not([data-board=classic]) .board:has(.hl.selected.sq-a6) .piece.sq-a6:not(.gone,.dragged),:root:not([data-board=classic]) .board:has(.hl.selected.sq-b6) .piece.sq-b6:not(.gone,.dragged),:root:not([data-board=classic]) .board:has(.hl.selected.sq-c6) .piece.sq-c6:not(.gone,.dragged),:root:not([data-board=classic]) .board:has(.hl.selected.sq-d6) .piece.sq-d6:not(.gone,.dragged),:root:not([data-board=classic]) .board:has(.hl.selected.sq-e6) .piece.sq-e6:not(.gone,.dragged),:root:not([data-board=classic]) .board:has(.hl.selected.sq-f6) .piece.sq-f6:not(.gone,.dragged),:root:not([data-board=classic]) .board:has(.hl.selected.sq-g6) .piece.sq-g6:not(.gone,.dragged),:root:not([data-board=classic]) .board:has(.hl.selected.sq-h6) .piece.sq-h6:not(.gone,.dragged),:root:not([data-board=classic]) .board:has(.hl.selected.sq-a7) .piece.sq-a7:not(.gone,.dragged),:root:not([data-board=classic]) .board:has(.hl.selected.sq-b7) .piece.sq-b7:not(.gone,.dragged),:root:not([data-board=classic]) .board:has(.hl.selected.sq-c7) .piece.sq-c7:not(.gone,.dragged),:root:not([data-board=classic]) .board:has(.hl.selected.sq-d7) .piece.sq-d7:not(.gone,.dragged),:root:not([data-board=classic]) .board:has(.hl.selected.sq-e7) .piece.sq-e7:not(.gone,.dragged),:root:not([data-board=classic]) .board:has(.hl.selected.sq-f7) .piece.sq-f7:not(.gone,.dragged),:root:not([data-board=classic]) .board:has(.hl.selected.sq-g7) .piece.sq-g7:not(.gone,.dragged),:root:not([data-board=classic]) .board:has(.hl.selected.sq-h7) .piece.sq-h7:not(.gone,.dragged),:root:not([data-board=classic]) .board:has(.hl.selected.sq-a8) .piece.sq-a8:not(.gone,.dragged),:root:not([data-board=classic]) .board:has(.hl.selected.sq-b8) .piece.sq-b8:not(.gone,.dragged),:root:not([data-board=classic]) .board:has(.hl.selected.sq-c8) .piece.sq-c8:not(.gone,.dragged),:root:not([data-board=classic]) .board:has(.hl.selected.sq-d8) .piece.sq-d8:not(.gone,.dragged),:root:not([data-board=classic]) .board:has(.hl.selected.sq-e8) .piece.sq-e8:not(.gone,.dragged),:root:not([data-board=classic]) .board:has(.hl.selected.sq-f8) .piece.sq-f8:not(.gone,.dragged),:root:not([data-board=classic]) .board:has(.hl.selected.sq-g8) .piece.sq-g8:not(.gone,.dragged),:root:not([data-board=classic]) .board:has(.hl.selected.sq-h8) .piece.sq-h8:not(.gone,.dragged){animation:bit-hop .5s steps(1) infinite}:root:not([data-board=classic]) .piece.gone{opacity:1;scale:1;transition:none;mask-size:12.5% 12.5%;-webkit-mask-size:12.5% 12.5%;animation:bit-break .24s steps(1) forwards}}@keyframes bit-blink{50%{opacity:.25}}@keyframes bit-hop{50%{top:-0.390625%}}@keyframes bit-break{0%{mask-image:url(assets/themes/bit/board/dither-75.svg);-webkit-mask-image:url(assets/themes/bit/board/dither-75.svg)}33%{mask-image:url(assets/themes/bit/board/dither-50.svg);-webkit-mask-image:url(assets/themes/bit/board/dither-50.svg)}66%{mask-image:url(assets/themes/bit/board/dither-25.svg);-webkit-mask-image:url(assets/themes/bit/board/dither-25.svg)}100%{opacity:0}}@media(prefers-reduced-motion: no-preference){.board.entering .piece{animation:piece-appear 80ms var(--ease) both;animation-delay:var(--appear-delay, 0ms)}:root:not([data-board=classic]) .board.entering .piece{mask-size:12.5% 12.5%;-webkit-mask-size:12.5% 12.5%;animation:bit-appear 80ms steps(1) both;animation-delay:var(--appear-delay, 0ms)}}@keyframes piece-appear{from{opacity:0;scale:.6}}@keyframes bit-appear{0%{opacity:0}25%{opacity:1;mask-image:url(assets/themes/bit/board/dither-25.svg);-webkit-mask-image:url(assets/themes/bit/board/dither-25.svg)}50%{mask-image:url(assets/themes/bit/board/dither-50.svg);-webkit-mask-image:url(assets/themes/bit/board/dither-50.svg)}75%{mask-image:url(assets/themes/bit/board/dither-75.svg);-webkit-mask-image:url(assets/themes/bit/board/dither-75.svg)}}.board:is(.entering,.leaving) .piece{transition:none}@media(prefers-reduced-motion: no-preference){.board.leaving .piece{animation:piece-leave 80ms var(--ease) both;animation-delay:var(--appear-delay, 0ms)}:root:not([data-board=classic]) .board.leaving .piece{mask-size:12.5% 12.5%;-webkit-mask-size:12.5% 12.5%;animation:bit-leave 80ms steps(1) both;animation-delay:var(--appear-delay, 0ms)}}@keyframes piece-leave{to{opacity:0;scale:.6}}@keyframes bit-leave{25%{mask-image:url(assets/themes/bit/board/dither-75.svg);-webkit-mask-image:url(assets/themes/bit/board/dither-75.svg)}50%{mask-image:url(assets/themes/bit/board/dither-50.svg);-webkit-mask-image:url(assets/themes/bit/board/dither-50.svg)}75%{mask-image:url(assets/themes/bit/board/dither-25.svg);-webkit-mask-image:url(assets/themes/bit/board/dither-25.svg)}100%{opacity:0}}:root[data-animations=off]{--piece-move: 0ms}:root[data-animations=off] :is(.piece,.hl){animation:none !important}:root[data-animations=off] .piece.gone{opacity:0 !important}:root:not([data-board=classic]) .promotion-choice{border-radius:0}
