.board{aspect-ratio:1;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--board-light);width:100%;position:relative;overflow:hidden;container-type:inline-size}.board-grid{grid-template-rows:repeat(8,1fr);grid-template-columns:repeat(8,1fr);width:100%;height:100%;display:grid}.board-arrows{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.board-square{font:inherit;color:inherit;background:0 0;border:none;border-radius:0;justify-content:center;align-items:center;margin:0;padding:0;display:flex;position:relative}button.board-square{cursor:pointer}.board-square.is-light{background:var(--board-light)}.board-square.is-dark{background:var(--board-dark)}.board-square.is-lastmove:before,.board-square.is-selected:before,.board-square.is-check:before{content:"";pointer-events:none;position:absolute;inset:0}.board-square.is-lastmove:before{background:var(--board-lastmove)}.board-square.is-selected:before{background:var(--board-highlight)}.board-square.is-check:before{background:var(--board-check)}.board-square[data-mark]:after{content:"";box-shadow:inset 0 0 0 .9cqw var(--board-mark,var(--c-green-500));pointer-events:none;position:absolute;inset:0}.board-square[data-mark=plan]{--board-mark:var(--c-green-500)}.board-square[data-mark=threat]{--board-mark:var(--c-red-500)}.board-square[data-mark=note]{--board-mark:var(--c-amber-500)}.board-square.is-dragover:after{content:"";pointer-events:none;position:absolute;inset:0;box-shadow:inset 0 0 0 .6cqw #ffffffb8}.board-piece{-webkit-user-select:none;user-select:none;pointer-events:none;filter:drop-shadow(0 .22cqw .3cqw #1b243747);width:96%;height:96%;transition:transform 90ms ease-out;position:relative}@media (hover:hover) and (pointer:fine){button.board-square:hover .board-piece:not(.is-lifted){transform:translateY(-2%)scale(1.03)}}.board-piece.is-lifted{opacity:.28;filter:none}.board-piece.is-dragged{z-index:4;pointer-events:none;will-change:transform;filter:drop-shadow(0 .6cqw .7cqw #1b24376b);transition:none;position:absolute;top:0;left:0}.board-ghost{z-index:3;pointer-events:none;will-change:transform;width:12.5%;height:12.5%;animation:.16s ease-out both board-ghost-slide;position:absolute}@keyframes board-ghost-slide{0%{transform:translate(calc(var(--dx) * 100%), calc(var(--dy) * 100%))}to{transform:translate(0)}}.board-piece.is-ghosted{visibility:hidden}@media (prefers-reduced-motion:reduce){.board-ghost{animation:none}}.board-grid{touch-action:none;-webkit-user-select:none;user-select:none}.board-grid.is-dragging{cursor:grabbing}@media (hover:hover) and (pointer:fine){button.board-square:has(.board-piece){cursor:grab}.board-grid.is-dragging button.board-square{cursor:grabbing}}.board-target{pointer-events:none;background:#1b243742;border-radius:50%;width:3.4cqw;height:3.4cqw;margin:auto;position:absolute;inset:0}.board-target.is-capture{background:0 0;border:1.1cqw solid #1b243742;width:11cqw;height:11cqw}.board-badge{z-index:2;pointer-events:none;filter:drop-shadow(0 1px 2px #1b243759);width:34%;height:34%;display:flex;position:absolute;top:-8%;right:-8%}.board-badge .cls-icon,.board-badge .cls-icon svg{width:100%!important;height:100%!important}.board-coord{font-size:2.1cqw;font-weight:var(--weight-semibold);pointer-events:none;-webkit-user-select:none;user-select:none;line-height:1;position:absolute}.board-coord-rank{top:.7cqw;left:.9cqw}.board-coord-file{bottom:.7cqw;right:.9cqw}.board-square.is-light .board-coord{color:var(--board-coord-light,var(--board-dark))}.board-square.is-dark .board-coord{color:var(--board-coord-dark,var(--board-light))}.board-square:focus-visible{outline:2px solid var(--border-focus);outline-offset:-2px;z-index:1}.landing{--display-xl:clamp(2.5rem, 6vw, 4.25rem);--display-lg:clamp(1.9rem, 3.2vw, 2.75rem);--display-md:clamp(1.15rem, 1.8vw, 1.45rem);--radius-card:0;min-height:100%;color:var(--fg-default)}.landing [id],.landing a,.landing button,.landing input,.landing select{scroll-margin-top:5rem}.reveal.is-shown>:not(.doors,.faq,.club-strip,.book-strip,.learn-list),.reveal.is-shown .doors>li,.reveal.is-shown .club-strip>li,.reveal.is-shown .book-strip>li,.reveal.is-shown .learn-list>li,.reveal.is-shown .faq>*{animation:reveal-in var(--transition-reveal) backwards}.reveal.is-shown :is(.doors,.club-strip,.book-strip,.learn-list)>li:nth-child(2),.reveal.is-shown .faq>:nth-child(2){animation-delay:60ms}.reveal.is-shown :is(.doors,.club-strip,.book-strip,.learn-list)>li:nth-child(3),.reveal.is-shown .faq>:nth-child(3){animation-delay:.12s}.reveal.is-shown :is(.club-strip,.book-strip)>li:nth-child(4),.reveal.is-shown .faq>:nth-child(4){animation-delay:.18s}.reveal.is-shown :is(.club-strip,.book-strip)>li:nth-child(n+5),.reveal.is-shown .faq>:nth-child(n+5){animation-delay:.24s}@keyframes reveal-in{0%{opacity:0;transform:translateY(.5rem)}}.hero{border-bottom:var(--rule-slab) solid var(--accent)}.hero-split{width:min(var(--prose-max-width), 100%);grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);align-items:stretch;margin:0 auto;display:grid}.hero-plate{justify-content:center;gap:var(--space-4);padding:clamp(1.25rem, 2.5vw, var(--space-8));background-color:var(--surface-dark);background-image:var(--grit);color:var(--fg-on-dark);flex-direction:column;margin:0;display:flex}.hero-plate .demo-board{width:min(22rem,100%)}.hero-plate-copy{gap:var(--space-2);flex-direction:column;display:flex}.hero-plate-title{font-size:var(--display-md);font-weight:var(--weight-bold);letter-spacing:0;color:var(--fg-on-dark);margin:0}.hero-plate-body{font-size:var(--text-sm);line-height:var(--leading-normal);color:var(--chrome-fg-muted);margin:0}.hero-inner{justify-content:center;gap:var(--space-4);padding:clamp(1.5rem, 3vw, var(--space-8));flex-direction:column;display:flex}.hero-title{font-size:var(--display-xl);font-weight:var(--weight-bold);letter-spacing:0;margin:0;line-height:1.05}.hero-title-lead{display:block}.hero-title-drama{color:var(--fg-on-accent);background:var(--accent);box-shadow:.25em 0 0 var(--accent), -.25em 0 0 var(--accent);margin-top:.15em;display:inline-block}.hero-lede{max-width:34rem;font-size:var(--text-lg);line-height:var(--leading-normal);color:var(--fg-muted);margin:0}.hero-assurance{font-size:var(--text-base);color:var(--fg-subtle);margin:0}@media (width<=60rem){.hero-split{grid-template-columns:minmax(0,1fr)}.hero-plate{order:2}}.hero-search{max-width:34rem}.hero-search .player-search{padding:var(--space-2);background:var(--surface-raised);border:var(--rule-strong) solid var(--accent-border);border-radius:var(--radius-card)}.hero-recent{align-items:center;gap:var(--space-2);margin-top:var(--space-4);flex-wrap:wrap;display:flex}.hero-recent-label{font-size:var(--text-xs);color:var(--fg-subtle)}.hero-alt{margin:var(--space-4) 0 0;font-size:var(--text-sm);color:var(--fg-muted)}.hero-search .form-error{margin-top:var(--space-4)}.hero-results{padding:var(--space-6) var(--space-4);background:var(--surface-panel);border-bottom:var(--rule-strong) solid var(--border-strong)}.hero-results-inner{width:min(var(--prose-max-width), 100%);margin:0 auto}.hero-results-head{margin:0 0 var(--space-3);font-size:var(--text-xs);color:var(--fg-subtle)}.section{padding:clamp(var(--space-8), 4vw, var(--space-12)) var(--space-4)}.section-inner{width:min(var(--prose-max-width), 100%);margin:0 auto}.section-inner.is-split{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:clamp(2rem,4vw,3.5rem);display:grid}.section-title{font-size:var(--display-lg);font-weight:var(--weight-bold);letter-spacing:0;padding-bottom:var(--space-3);border-bottom:var(--rule-slab) solid var(--accent);display:inline-block}.section-title.is-centred{text-align:center;margin-bottom:var(--space-6);display:block}.section-body{margin:var(--space-4) 0 0;font-size:var(--text-md);color:var(--fg-muted)}.section-note{margin:var(--space-4) 0 0;font-size:var(--text-sm);color:var(--fg-subtle)}@media (width<=54rem){.section-inner.is-split{grid-template-columns:minmax(0,1fr)}}.demo{padding:var(--space-4);border-radius:var(--radius-card);background:var(--surface-raised);border:var(--rule-strong) solid var(--accent-border)}.demo-board{width:min(24rem,100%);margin:0 auto}.demo-caption{margin-top:var(--space-4);text-align:center;flex-direction:column;gap:2px;display:flex}.demo-players{font-size:var(--text-sm);font-weight:var(--weight-medium)}.demo-event{font-size:var(--text-xs);color:var(--fg-subtle)}.demo-move{margin-top:var(--space-1);font-family:var(--font-mono);font-size:var(--text-sm);color:var(--accent-text);justify-content:center;align-items:center;gap:var(--space-2);min-height:1.4em;display:inline-flex}.demo-verdict{align-items:center;gap:var(--space-1);font-family:var(--font-sans,inherit);font-weight:var(--weight-semibold);color:var(--fg-default);display:inline-flex}.doors{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));margin:0;padding:0;list-style:none;display:grid}.doors>li{display:flex}.door{gap:var(--space-2);padding:var(--space-5) var(--space-4);background:var(--surface-panel);border:var(--rule-strong) solid var(--accent-border);color:inherit;transition:transform var(--transition-base), box-shadow var(--transition-base), border-color var(--transition-base);flex-direction:column;flex:1;text-decoration:none;display:flex}.door:hover{transform:var(--lift-card);box-shadow:var(--shadow-md);border-color:var(--accent-ink)}.door-title{font-size:var(--display-md);font-weight:var(--weight-bold)}.door-body{font-size:var(--text-base);line-height:var(--leading-normal);color:var(--fg-muted)}.door-badges{gap:var(--space-1);flex-wrap:wrap;display:flex}.door-cta{padding-top:var(--space-2);font-weight:var(--weight-semibold);color:var(--accent-text);margin-top:auto}.door-cta:after{content:" →"}.section-lede{max-width:40rem;margin:calc(-1 * var(--space-3)) auto var(--space-6);text-align:center;color:var(--fg-muted)}.club-strip,.book-strip,.learn-list{gap:var(--space-4);margin:0;padding:0;list-style:none;display:grid}.club-strip{grid-template-columns:repeat(6,minmax(0,1fr))}.book-strip{grid-template-columns:repeat(5,minmax(0,1fr))}.learn-list{grid-template-columns:repeat(3,minmax(0,1fr))}.club-strip>li,.book-strip>li,.learn-list>li{display:flex}.club-card,.book-card,.learn-card{gap:var(--space-1);padding:var(--space-3);background:var(--surface-panel);border:var(--rule-strong) solid var(--accent-border);color:inherit;transition:transform var(--transition-base), box-shadow var(--transition-base), border-color var(--transition-base);flex-direction:column;flex:1;text-decoration:none;display:flex}.club-card:hover,.book-card:hover,.learn-card:hover{transform:var(--lift-card);box-shadow:var(--shadow-md);border-color:var(--accent-ink)}.club-card{text-align:center;align-items:center}.club-group{width:min(52rem,100%);margin:0 auto var(--space-8);border:var(--rule-strong) solid var(--accent-ink);background:var(--surface-dark);box-shadow:10px 10px 0 var(--accent);display:block;position:relative;overflow:hidden}.club-group img{width:100%;height:auto;transition:transform .9s var(--ease-out);display:block;transform:scale(1.01)}.club-group:hover img{transform:scale(1.05)}.club-group:after{content:"";pointer-events:none;background:linear-gradient(105deg,#0000 35%,#fff3 48%,#0000 62%);position:absolute;inset:0;transform:translate(-120%)}.reveal.is-shown .club-group:after{animation:club-sheen 1.6s .35s var(--ease-out) forwards}@keyframes club-sheen{to{transform:translate(120%)}}@media (width<=40rem){.club-group{width:min(24rem,100% - 10px);box-shadow:6px 6px 0 var(--accent)}}@media (prefers-reduced-motion:reduce){.club-group img,.club-group:hover img{transition:none;transform:none}.reveal.is-shown .club-group:after{animation:none}}.club-card-portrait{aspect-ratio:1;width:100%;height:auto;margin-bottom:var(--space-2);background:var(--surface-dark);object-fit:cover}.club-card-name,.book-card-name,.learn-card-title{font-weight:var(--weight-bold)}.club-card-style,.book-card-blurb,.learn-card-body{font-size:var(--text-sm);line-height:var(--leading-normal);color:var(--fg-muted)}.club-card-rating{padding-top:var(--space-1);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--accent-text);margin-top:auto}.book-card-cover{aspect-ratio:2/3;width:100%;height:auto;margin-bottom:var(--space-2);object-fit:contain;border:var(--rule-strong) solid var(--accent-border)}.learn-card{gap:var(--space-2);padding:var(--space-4)}.learn-card-title{font-size:var(--text-md)}.learn-card-title:after{content:" →";color:var(--accent-text)}.learn-all{margin:var(--space-4) 0 0;text-align:center;font-weight:var(--weight-semibold)}@media (width<=60rem){.club-strip{grid-template-columns:repeat(3,minmax(0,1fr))}.book-strip{overscroll-behavior-x:contain;scroll-snap-type:x mandatory;padding-bottom:var(--space-2);grid-template-columns:none;grid-auto-columns:minmax(9.5rem,1fr);grid-auto-flow:column;overflow-x:auto}.book-strip>li{scroll-snap-align:start}.learn-list{grid-template-columns:minmax(0,1fr)}}@media (width<=30rem){.club-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}.faq{gap:var(--space-2);flex-direction:column;width:min(48rem,100%);margin:0 auto;display:flex}.faq-item{border:var(--rule-strong) solid var(--accent-border);border-radius:var(--radius-md);background:var(--surface-panel);overflow:hidden}.faq-question{padding:var(--space-3) var(--space-4);font-family:var(--font-display);font-size:var(--text-md);font-weight:var(--weight-bold);cursor:pointer;transition:background var(--transition-fast);list-style:none}.faq-question::-webkit-details-marker{display:none}.faq-question:after{content:"+";float:right;font-family:var(--font-mono);color:var(--fg-subtle)}.faq-item[open] .faq-question:after{content:"−"}.faq-question:hover{background:var(--surface-hover)}.faq-answer{padding:0 var(--space-4) var(--space-4);font-size:var(--text-sm);color:var(--fg-muted);margin:0}.landing-footer{padding:var(--space-6) var(--space-4);background:var(--surface-panel);border-top:var(--rule-slab) solid var(--accent-ink)}.landing-footer-inner{width:min(var(--prose-max-width), 100%);justify-content:space-between;align-items:center;gap:var(--space-4);flex-wrap:wrap;margin:0 auto;display:flex}.landing-footer-brand{align-items:center;gap:var(--space-3);display:flex}.landing-footer-tagline{font-size:var(--text-sm);color:var(--fg-muted);margin:0}.landing-footer-links{gap:var(--space-2) var(--space-4);font-size:var(--text-sm);gap:var(--space-2) var(--space-4);font-size:var(--text-sm);flex-wrap:wrap;display:flex}.landing-footer-cookie{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}@media (width<=34rem){.landing-footer-brand{flex-direction:column;flex-basis:100%;align-items:flex-start}}:root{--c-bone-0:#fff;--c-bone-50:#fbfbfb;--c-bone-100:#f1e0cb;--c-bone-150:#ded3cb;--c-bone-200:#cfc3b4;--c-bone-300:#a39d8d;--c-bone-400:#7b756a;--c-ink-900:#00112f;--c-ink-800:#16263f;--c-ink-700:#2b3a52;--c-ink-500:#3c4759;--c-ink-400:#4f5a6b;--c-navy-900:#00112f;--c-navy-800:#041a3b;--c-navy-700-rgb:25 53 73;--c-navy-700:rgb(var(--c-navy-700-rgb));--c-navy-600:#27506b;--c-navy-300:#8ba3b5;--c-navy-100:#d7e0e8;--c-navy-50:#eef2f6;--c-yellow-500:#ffc600;--c-yellow-600:#e8b400;--c-yellow-700:#81610c;--c-orange-600:#c46823;--c-board-light:#ecd9b9;--c-board-dark:#b98b5e;--c-highlight-rgb:238 139 61;--c-green-600:#39814a;--c-green-500:#438d52;--c-green-300:#619251;--c-amber-500:#b07d0f;--c-red-500-rgb:209 84 79;--c-red-500:rgb(var(--c-red-500-rgb));--c-blue-500:#4a7fb5;--c-teal-500:#209495;--c-white:#fff;--grit:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23g)' opacity='0.35'/%3E%3C/svg%3E");--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-12:3rem;--space-20:5rem;--rule:1px;--rule-strong:2px;--rule-slab:10px;--radius-sm:0;--radius-md:0;--radius-lg:0;--radius-full:999px;--font-display:"radnika", "Radnika Next", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;--font-mono:"HCo Operator Mono", "Operator Mono", "JetBrains Mono", "Cascadia Mono", ui-monospace, "SF Mono", Menlo, monospace;--font-body:var(--font-mono);--text-xs:.6875rem;--text-sm:.8125rem;--text-base:.9375rem;--text-md:1rem;--text-lg:1.0625rem;--text-xl:1.375rem;--weight-regular:400;--weight-medium:500;--weight-semibold:500;--weight-bold:700;--leading-tight:1.15;--leading-normal:1.45;--shadow-sm:none;--shadow-md:6px 6px 0 #00112f1f;--duration-fast:.12s;--duration-base:.18s;--transition-fast:var(--duration-fast) ease;--transition-base:var(--duration-base) ease;--ease-out:cubic-bezier(.22, 1, .36, 1);--transition-reveal:.28s var(--ease-out);--lift-hover:translateY(-1px);--lift-card:translateY(-3px);--surface-app:var(--c-bone-100);--surface-panel:var(--c-bone-50);--surface-raised:var(--c-bone-0);--surface-sunken:var(--c-bone-150);--surface-hover:var(--c-bone-150);--surface-selected:var(--c-navy-100);--surface-dark:var(--c-navy-900);--fg-default:var(--c-ink-900);--fg-muted:var(--c-ink-500);--fg-subtle:var(--c-ink-400);--fg-on-accent:var(--c-ink-900);--fg-on-dark:var(--c-bone-0);--border-default:var(--c-bone-200);--border-strong:var(--c-bone-300);--border-focus:var(--c-ink-900);--accent:var(--c-yellow-500);--accent-hover:var(--c-yellow-600);--accent-border:var(--c-ink-900);--accent-text:var(--c-yellow-700);--accent-ink:var(--c-navy-700);--accent-soft:var(--c-navy-100);--accent-faint:var(--c-navy-50);--chrome-bg:var(--c-navy-900);--chrome-fg:var(--c-bone-0);--chrome-fg-muted:var(--c-navy-300);--chrome-border:var(--c-navy-600);--chrome-hover:var(--c-navy-700);--chrome-active:var(--c-navy-600);--board-light:var(--c-board-light);--board-dark:var(--c-board-dark);--board-highlight:rgb(var(--c-highlight-rgb) / 55%);--board-lastmove:rgb(var(--c-highlight-rgb) / 38%);--board-check:rgb(var(--c-red-500-rgb) / 55%);--graph-white:var(--c-bone-0);--graph-black:var(--c-navy-900);--graph-axis:var(--c-bone-300);--graph-curve:var(--c-navy-300);--graph-marker:var(--accent-ink);--status-positive:var(--c-green-500);--status-warning:var(--c-amber-500);--status-negative:var(--c-red-500);--status-neutral:var(--c-ink-400);--topbar-height:3.25rem;--panel-gap:var(--space-3);--app-max-width:100rem;--prose-max-width:75rem;--board-chrome:4rem}@media (prefers-reduced-motion:reduce){:root{--duration-fast:0s;--duration-base:0s;--transition-fast:0s;--transition-base:0s}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}[data-board=brown]{--board-light:#f0d9b5;--board-dark:#b58863;--board-highlight:#ee8b3d8c;--board-lastmove:#ee8b3d61;--board-check:#d1544f8c;--board-coord-light:#b58863;--board-coord-dark:#f0d9b5}[data-board=green]{--board-light:#eeeed2;--board-dark:#769656;--board-highlight:#ffd60080;--board-lastmove:#ffd6005c;--board-check:#d1544f8c;--board-coord-light:#769656;--board-coord-dark:#eeeed2}[data-board=blue]{--board-light:#dee3e6;--board-dark:#788a94;--board-highlight:#ffa83a8c;--board-lastmove:#ffa83a61;--board-check:#d1544f94;--board-coord-light:#788a94;--board-coord-dark:#dee3e6}[data-board=purple]{--board-light:#e8e2f0;--board-dark:#8476a6;--board-highlight:#ffc5428c;--board-lastmove:#ffc54261;--board-check:#d64a4594;--board-coord-light:#8476a6;--board-coord-dark:#e8e2f0}[data-board=grey]{--board-light:#dcdcdc;--board-dark:#8f8f8f;--board-highlight:#508cdc80;--board-lastmove:#508cdc57;--board-check:#d1544f94;--board-coord-light:#8f8f8f;--board-coord-dark:#dcdcdc}[data-board=walnut]{--board-light:#e8cfa9;--board-dark:#9c6644;--board-highlight:#ffbe508c;--board-lastmove:#ffbe5061;--board-check:#c6464199;--board-coord-light:#9c6644;--board-coord-dark:#e8cfa9}[data-board=contrast]{--board-light:#fff;--board-dark:#5c5c5c;--board-highlight:#0078ff73;--board-lastmove:#0078ff4d;--board-check:#dc00008c;--board-coord-light:#5c5c5c;--board-coord-dark:#fff}*{box-sizing:border-box}html,body,#root{height:100%}body{background-color:var(--surface-app);background-image:var(--grit);color:var(--fg-default);font-family:var(--font-body);font-size:var(--text-base);line-height:var(--leading-normal);-webkit-font-smoothing:antialiased;margin:0}h1,h2,h3{font-family:var(--font-display);font-weight:var(--weight-bold);line-height:var(--leading-tight);letter-spacing:0;margin:0}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.skip-link{top:var(--space-2);left:var(--space-2);z-index:100;padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);background:var(--surface-raised);color:var(--fg-default);font-size:var(--text-base);font-weight:var(--weight-medium);box-shadow:var(--shadow-md);transition:transform var(--transition-fast);text-decoration:none;position:absolute;transform:translateY(-200%)}.skip-link:focus-visible{transform:translateY(0)}main:focus{outline:none}.muted{color:var(--fg-muted)}.app{height:100%;max-width:var(--app-max-width);flex-direction:column;margin:0 auto;display:flex}.app-main{gap:var(--panel-gap);min-height:0;padding:var(--panel-gap);flex:1;grid-template-columns:minmax(20rem,1fr) minmax(14rem,.62fr) minmax(17rem,.86fr);align-items:start;display:grid;overflow:auto}.app-column{gap:var(--panel-gap);flex-direction:column;min-width:0;display:flex}@media (width>=761px){.app-main{align-items:stretch;overflow:hidden}.app-column{min-height:0}.app-column.is-board{max-width:calc(100dvh - var(--topbar-height) - var(--panel-gap) * 2 - var(--board-chrome));align-self:start;overflow-y:auto}.app-column.is-moves,.app-column.is-rail{scrollbar-gutter:stable;overflow-y:auto}.app-column.is-rail>*{flex-shrink:0}.app-column.is-moves{overflow-y:hidden}.app-column.is-moves>.panel-header{flex-shrink:0}.app-column.is-moves .panel-moves{flex-direction:column;flex:1;min-height:0;display:flex}.app-column.is-moves .panel-moves .panel-body{flex:1;min-height:0;max-height:none}}.topbar{background-image:var(--grit);align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);min-height:var(--topbar-height);background:var(--chrome-bg);color:var(--chrome-fg);flex-wrap:wrap;display:flex}.topbar-brand{color:inherit;flex-shrink:0;text-decoration:none}.logo{align-items:center;gap:var(--space-2);--logo-ink:var(--accent-ink);display:inline-flex}.topbar .logo{--logo-ink:var(--c-bone-0);--logo-point:var(--c-yellow-500)}.logo-wordmark{font-size:var(--text-lg);font-weight:var(--weight-bold);letter-spacing:-.01em;color:var(--fg-default);white-space:nowrap}.topbar .logo-wordmark{color:var(--chrome-fg)}.topbar .btn{color:var(--chrome-fg);border-color:var(--chrome-border);background:0 0}.topbar .btn:hover:not(:disabled){background:var(--chrome-hover);border-color:var(--chrome-active)}.topbar .btn-primary{color:var(--c-navy-900);background:var(--chrome-fg);border-color:var(--chrome-fg)}.topbar .btn-primary:hover:not(:disabled){background:var(--c-bone-0);border-color:var(--c-bone-0)}.topbar .select-input{color:var(--chrome-fg);border-color:var(--chrome-border);background:0 0}.topbar .select-input option{color:var(--fg-default);background:var(--surface-raised)}.topbar .select-chevron{color:var(--chrome-fg-muted)}.topbar :focus-visible{outline-color:var(--accent)}.topbar-sections{align-items:center;gap:var(--space-1);display:flex}.topbar-section{padding:var(--space-1) var(--space-3);font-size:var(--text-sm);color:var(--chrome-fg-muted);border-radius:var(--radius-md);white-space:nowrap;transition:background var(--transition-fast), color var(--transition-fast);text-decoration:none}.topbar-section:hover{color:var(--chrome-fg);background:var(--chrome-hover)}.topbar-section.is-active{color:var(--accent);font-weight:var(--weight-bold);box-shadow:inset 0 calc(-1 * var(--rule-slab) / 2) 0 var(--accent);background:0 0}.topbar-actions{align-items:center;gap:var(--space-2);flex-wrap:wrap;margin-left:auto;display:flex}.games{padding:var(--space-6) var(--space-4) var(--space-8)}.games-inner{width:min(var(--prose-max-width), 100%);gap:var(--space-4);flex-direction:column;margin:0 auto;display:flex}.games-head{margin-bottom:var(--space-1)}.page-title{font-size:clamp(1.5rem,2.6vw,2rem);line-height:1.15;font-weight:var(--weight-bold);letter-spacing:-.02em;margin:0}.games-lede{margin:var(--space-2) 0 0;font-size:var(--text-md);color:var(--fg-muted)}.games .game-list{max-height:none}.app-banner{margin:0 var(--panel-gap);margin-top:var(--panel-gap);padding:var(--space-3) var(--space-4);border:var(--rule-strong) solid var(--status-negative);border-radius:var(--radius-md);background:var(--surface-panel);font-size:var(--text-sm)}.topbar-drawer{display:contents}.topbar-actions{order:1}.topbar-language{order:2;align-items:center;display:flex}.topbar .topbar-burger{order:3;display:none}@media (width<=52rem){.topbar{flex-wrap:nowrap;position:relative}.topbar .topbar-burger{flex-shrink:0;display:inline-flex}.topbar-drawer{display:none}.topbar.is-open .topbar-drawer{z-index:30;gap:var(--space-3);padding:var(--space-2) var(--space-3) var(--space-4);background-color:var(--chrome-bg);background-image:var(--grit);border-bottom:var(--rule-slab) solid var(--accent);box-shadow:var(--shadow-md);display:grid;position:absolute;top:100%;left:0;right:0}.topbar.is-open .topbar-sections{gap:0;display:grid}.topbar.is-open .topbar-section{padding:var(--space-3) var(--space-2);font-size:var(--text-md);border-bottom:var(--rule) solid var(--chrome-hover);border-radius:0}.topbar.is-open .topbar-section.is-active{box-shadow:none}.topbar-actions{flex-wrap:nowrap;min-width:0;padding-block:2px;overflow-x:auto}.topbar-actions>*{flex-shrink:0}}@media (width<=40rem){.topbar-brand .logo-wordmark{display:none}}.btn{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);font:inherit;font-size:var(--text-sm);color:var(--fg-default);background:var(--surface-raised);border:var(--rule-strong) solid var(--border-strong);border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;transition:background var(--transition-fast), border-color var(--transition-fast), transform var(--transition-fast);text-decoration:none;display:inline-flex}.btn:hover:not(:disabled){background:var(--surface-hover);border-color:var(--border-strong);transform:var(--lift-hover)}.btn:active:not(:disabled){transform:none}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-sm{padding:var(--space-1) var(--space-2);font-size:var(--text-xs)}.btn-icon{padding:var(--space-2)}.btn-link{font:inherit;font-size:var(--text-xs);color:var(--fg-muted);padding:0 var(--space-2);cursor:pointer;background:0 0;border:none;align-items:center;min-height:24px;text-decoration:underline;display:inline-flex}.btn-link:hover{color:var(--fg-default)}.btn-primary{color:var(--fg-on-accent);background:var(--accent);border-color:var(--accent-border);font-weight:var(--weight-bold)}.btn-primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-border)}.btn-danger{color:var(--status-negative);border-color:var(--status-negative)}.btn-danger:hover:not(:disabled){color:var(--fg-on-accent);background:var(--status-negative);border-color:var(--status-negative)}.btn.is-busy{justify-content:center}.btn-spinner-slot{flex:none;width:.875em;height:.875em;display:inline-flex}.spinner{border:2px solid;border-top-color:#0000;border-radius:50%;flex:none;width:.875em;height:.875em;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{opacity:.6;animation:none}}.progressbar{background:var(--surface-sunken);border:var(--rule) solid var(--border-strong);border-radius:var(--radius-sm);height:.5rem;overflow:hidden}.progressbar-fill{background:var(--accent);transform-origin:0;height:100%;transition:transform var(--transition-base)}.dialog-capture{max-width:min(34rem,92vw)}.capture-preview{margin-bottom:var(--space-3);justify-content:center;display:flex}.capture-canvas{border:var(--rule) solid var(--border-strong);width:auto;max-width:100%;max-height:min(24rem,42vh);display:block}.capture-canvas[hidden]{display:none}.capture-animate-row{justify-content:flex-end;align-items:center;gap:var(--space-2) var(--space-3);margin:calc(var(--space-2) * -1) 0 var(--space-3);font-size:var(--text-sm);flex-wrap:wrap;display:flex}.capture-animate{align-items:center;gap:var(--space-2);cursor:pointer;display:flex}.capture-animate:has(input:disabled){color:var(--fg-muted);cursor:default}.capture-animate-hint{font-size:var(--text-xs);color:var(--fg-muted)}.capture-verdict{align-items:baseline;gap:var(--space-2);min-height:2.25rem;padding:var(--space-2) var(--space-3);margin-bottom:var(--space-4);background:var(--surface-sunken);border:var(--rule) solid var(--border-strong);font-size:var(--text-sm);flex-wrap:wrap;display:flex}.capture-verdict[data-state=known]{border-color:currentColor}.capture-verdict .spinner{align-self:center}.capture-verdict-label{font-weight:600}.capture-verdict-reason{color:var(--fg-muted)}.capture-controls{gap:var(--space-4);margin-bottom:var(--space-4);flex-direction:column;display:flex}.capture-size{font-size:var(--text-xs);color:var(--fg-muted);font-variant-numeric:tabular-nums;margin-right:auto}.capture-outcome{font-size:var(--text-xs);color:var(--fg-muted)}.capture-group{border:0;margin:0;padding:0}.capture-legend{margin-bottom:var(--space-2);font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--fg-muted);padding:0;display:block}.capture-segmented{border:var(--rule) solid var(--border-focus);display:flex}.capture-segment{text-align:center;padding:var(--space-2) var(--space-1);font-size:var(--text-xs);border-right:var(--rule) solid var(--border-focus);cursor:pointer;flex:1 1 0;position:relative}.capture-segment:last-child{border-right:0}.capture-segment input{clip-path:inset(50%);width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}.capture-segment[data-active=true]{background:var(--accent);font-weight:600}.capture-segment:has(input:focus-visible){outline:2px solid var(--border-focus);outline-offset:2px}.capture-field{flex-direction:column;display:flex}.capture-caption{font:inherit;font-size:var(--text-sm);padding:var(--space-2);background:var(--surface-raised);color:var(--fg-default);border:var(--rule) solid var(--border-strong);border-radius:var(--radius-sm);resize:none}.capture-actions{flex-wrap:wrap}.settings-profile{margin:calc(var(--space-1) * -1) 0 var(--space-3);font-size:var(--text-xs);color:var(--fg-muted)}.review-scan{height:7rem;margin-bottom:var(--space-3);background:var(--surface-sunken);border:var(--rule) solid var(--border-strong);border-radius:var(--radius-sm);position:relative;overflow:hidden}.review-scan-read{background:var(--accent-soft);transition:width var(--transition-base);position:absolute;inset:0 auto 0 0;overflow:hidden}.review-scan-sheen{background:linear-gradient(90deg, transparent 0%, var(--surface-raised) 50%, transparent 100%);opacity:.7;width:40%;animation:1.8s linear infinite review-sheen;position:absolute;top:0;bottom:0;left:0}@keyframes review-sheen{0%{transform:translate(-100%)}to{transform:translate(300%)}}.review-scan-axis{border-top:var(--rule) dashed var(--border-strong);position:absolute;top:50%;left:0;right:0}.review-scan-edge{background:var(--accent-ink);width:2px;transition:left var(--transition-base);margin-left:-1px;animation:1.2s ease-in-out infinite review-edge;position:absolute;top:0;bottom:0}@keyframes review-edge{0%,to{opacity:1}50%{opacity:.3}}@media (prefers-reduced-motion:reduce){.review-scan-sheen{opacity:0;animation:none}.review-scan-edge{animation:none}}.skeleton{background:linear-gradient(90deg, var(--surface-sunken) 25%, var(--surface-panel) 37%, var(--surface-sunken) 63%);border-radius:var(--radius-sm);background-size:400% 100%;animation:1.4s ease-in-out infinite skeleton-sweep}@keyframes skeleton-sweep{0%{background-position:100% 0}to{background-position:0 0}}@media (prefers-reduced-motion:reduce){.skeleton{background:var(--surface-sunken);animation:none}}.skeleton-wrap{display:contents}.skeleton-list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.skeleton-row{border:var(--rule) solid var(--border-default);border-radius:var(--radius-md);height:3rem}.select{align-items:center;display:inline-flex;position:relative}.select-input{appearance:none;font:inherit;font-size:var(--text-sm);color:var(--fg-default);background:var(--surface-raised);border:var(--rule-strong) solid var(--border-strong);border-radius:var(--radius-md);padding:var(--space-2) calc(var(--space-3) + 1rem) var(--space-2) var(--space-3);cursor:pointer}.select.is-compact .select-input{padding-left:var(--space-2)}.select-input:hover{border-color:var(--border-strong)}.select-chevron{right:var(--space-2);pointer-events:none;color:var(--fg-muted);position:absolute}.panel{background:var(--surface-panel);border:var(--rule-strong) solid var(--border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.panel-head{justify-content:space-between;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-bottom:var(--rule) solid var(--border-default);display:flex}.panel-title{font-size:var(--text-md);font-weight:var(--weight-semibold)}.panel-actions{align-items:center;gap:var(--space-2);display:flex}.panel-body{padding:var(--space-3) var(--space-4);max-height:32rem;overflow:auto}.empty-state{padding:var(--space-6) var(--space-2);color:var(--fg-muted);font-size:var(--text-sm);text-align:center;margin:0}.board-controls{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.board-controls-group{align-items:center;gap:var(--space-2);display:flex}.control-btn{width:2.75rem;height:2.5rem;color:var(--fg-default);background:var(--surface-raised);border:1px solid var(--border-default);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast);justify-content:center;align-items:center;display:inline-flex}.control-btn:hover:not(:disabled){background:var(--surface-hover)}.control-btn:disabled{opacity:.45;cursor:not-allowed}.control-btn.is-accent{color:var(--fg-on-accent);background:var(--accent);border-color:var(--accent-border)}.control-btn.is-accent:hover:not(:disabled){background:var(--accent-hover)}.tab{padding:var(--space-2);color:var(--fg-muted);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;flex:1;justify-content:center;align-items:center;display:inline-flex}.tab:hover{background:var(--surface-hover)}.tab.is-active{color:var(--fg-default);background:var(--surface-sunken)}.movelist{font-variant-numeric:tabular-nums;margin:0;padding:0;list-style:none}.ml-pair{align-items:center;gap:var(--space-1);border-radius:var(--radius-sm);grid-template-columns:2.25rem 1fr 1fr;display:grid}.ml-pair:nth-child(odd of .ml-pair){background:var(--surface-sunken)}.ml-number{color:var(--fg-subtle);font-size:var(--text-xs);text-align:right;padding-right:var(--space-1)}.ml-slot{min-width:0}.ml-move{align-items:center;gap:var(--space-1);width:100%;min-width:0;min-height:1.6rem;padding:.15rem var(--space-2);font:inherit;font-size:var(--text-sm);color:var(--fg-default);border-radius:var(--radius-sm);text-align:left;cursor:pointer;background:0 0;border:none;display:flex}.ml-move:hover{background:var(--surface-hover)}.ml-move.is-selected{background:var(--accent);color:var(--fg-on-accent);font-weight:var(--weight-bold);box-shadow:inset 0 0 0 var(--rule) var(--accent-border)}.ml-san{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ml-line{margin:.15rem 0 .15rem calc(.4rem + var(--depth,1) * .6rem);padding-left:var(--space-2);border-left:2px solid var(--border-default);font-size:var(--text-xs);color:var(--fg-muted);flex-wrap:wrap;align-items:center;gap:0 .1rem;display:flex}.ml-item{align-items:baseline;gap:.15rem;display:inline-flex}.ml-line .ml-move{width:auto;min-height:1.3rem;font-size:var(--text-xs);color:inherit;padding:.05rem .3rem}.ml-number.is-inline{text-align:left;padding-right:0}.cls-icon{border-radius:var(--radius-full);background:linear-gradient(180deg, #ffffff3d 0%, #fff0 45%, #00000024 100%), var(--badge,var(--c-bone-400));flex-shrink:0;justify-content:center;align-items:center;line-height:0;display:inline-flex;box-shadow:inset 0 1px #ffffff59,inset 0 0 0 1px #00000014,0 1px 2px #1b24374d}.cls-icon.is-pending{--badge:var(--c-bone-400);opacity:.75}.cls-icon.is-pending svg{animation:.9s linear infinite cls-spin}@keyframes cls-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.cls-icon.is-pending svg{animation:none}}.board-badge .cls-icon{box-shadow:inset 0 1px #ffffff59,inset 0 0 0 1px #00000014}.panel-title .cls-icon{margin-right:var(--space-2);vertical-align:-3px}.detail-list{gap:var(--space-2) var(--space-3);padding:var(--space-3) var(--space-4);grid-template-columns:1fr auto;margin:0;display:grid}.detail-list dt{color:var(--fg-default);font-size:var(--text-sm)}.detail-list dd{text-align:right;font-size:var(--text-sm);font-variant-numeric:tabular-nums;margin:0}.detail-tag{color:var(--fg-muted);font-size:var(--text-xs)}.detail-pv{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--fg-muted);text-align:left!important}.criticality{align-items:center;gap:var(--space-2);padding:0 var(--space-4) var(--space-3);display:flex}.criticality-bar{background:var(--surface-sunken);border-radius:var(--radius-full);width:3rem;height:.25rem;position:relative;overflow:hidden}.criticality-fill{background:var(--accent-ink);position:absolute;inset:0 auto 0 0}.criticality-label{font-size:var(--text-xs);color:var(--fg-muted)}.graph-frame{padding:var(--space-3) var(--space-4);flex-direction:column;min-height:9rem;display:flex;position:relative}.graph-axis-label{left:var(--space-4);font-size:var(--text-xs);pointer-events:none;position:absolute}.graph-axis-label.is-top{top:var(--space-2);color:var(--graph-white);text-shadow:0 0 2px var(--graph-black)}.graph-axis-label.is-bottom{bottom:var(--space-2);color:var(--fg-default);text-shadow:0 0 2px var(--graph-white)}.graph-svg{width:100%;height:7rem;display:block}.graph-band.is-white{fill:var(--graph-white)}.graph-band.is-black{fill:var(--graph-black)}.graph-line{fill:none;stroke:var(--graph-curve);stroke-width:1.25px}.graph-draw{stroke-dasharray:1;animation:.9s ease-out both graph-draw}@keyframes graph-draw{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}.graph-band-draw{animation:.8s ease-out both graph-wipe}@keyframes graph-wipe{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}@media (prefers-reduced-motion:reduce){.graph-draw,.graph-band-draw{animation:none}.graph-draw{stroke-dasharray:none}}.graph-zero{stroke:var(--graph-axis);stroke-width:1px;opacity:.6}.graph-critical{stroke:var(--accent);stroke-width:2px;opacity:.6}.graph-cursor{stroke:var(--accent);stroke-width:2.5px}.graph-hit{fill:#0000;cursor:pointer}.engine-options{gap:var(--space-2);padding:var(--space-3) var(--space-4);flex-direction:column;display:flex}.engine-option-head{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.engine-option input[type=radio]{accent-color:var(--accent);cursor:pointer;margin:0}.engine-option[data-disabled=true] .engine-option-label{color:var(--fg-subtle)}.engine-option-label{align-items:baseline;gap:var(--space-1);font-size:var(--text-sm);cursor:pointer;display:inline-flex}.engine-option-name{font-weight:var(--weight-medium)}.engine-option-meta{color:var(--fg-muted);font-size:var(--text-xs)}.engine-badge{font-size:var(--text-xs);color:var(--fg-muted);margin-left:auto}.engine-option-body{padding:var(--space-2) 0 0 var(--space-5)}.engine-note{font-size:var(--text-xs);color:var(--status-warning);margin:0}.engine-ready,.engine-error{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-top:1px solid var(--border-default);font-size:var(--text-sm);margin:0;display:flex}.engine-ready{color:var(--fg-default)}.engine-error{color:var(--status-negative)}.download-row{align-items:center;gap:var(--space-2);display:flex}.segbar{flex:1;gap:2px;display:flex}.segbar-cell{border:1px dashed var(--border-strong);background:0 0;border-radius:1px;flex:1;height:.75rem}.segbar-cell.is-filled{background:var(--fg-default);border-style:solid;border-color:var(--fg-default)}.download-percent{font-size:var(--text-xs);font-variant-numeric:tabular-nums;color:var(--fg-default);text-align:right;min-width:2.5rem}.download-meta,.download-status{margin:var(--space-1) 0 0;font-size:var(--text-xs);color:var(--fg-default)}.download-status{align-items:center;gap:var(--space-1);color:var(--fg-muted);display:flex}.board-area{gap:var(--space-2);align-items:stretch;display:flex;position:relative}.board-area .board{flex:1;min-width:0}.evalbar{border:1px solid var(--border-strong);border-radius:var(--radius-sm);aspect-ratio:1/8;flex-shrink:0;align-self:stretch;width:1.5rem;position:relative;overflow:hidden}.evalbar-track{background:var(--graph-black);flex-direction:column-reverse;display:flex;position:absolute;inset:0}.evalbar.is-flipped .evalbar-track{flex-direction:column}.evalbar-white{background:var(--graph-white);transition:height var(--transition-base);width:100%}.evalbar-label{text-align:center;font-size:.5625rem;font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums;letter-spacing:-.03em;pointer-events:none;white-space:nowrap;text-overflow:clip;position:absolute;left:0;right:0;overflow:hidden}.evalbar-label.is-white-side{bottom:var(--space-1);color:var(--fg-default)}.evalbar-label.is-black-side{top:var(--space-1);color:var(--graph-white)}.evalbar.is-flipped .evalbar-label.is-white-side{bottom:auto;top:var(--space-1)}.evalbar.is-flipped .evalbar-label.is-black-side{top:auto;bottom:var(--space-1)}.analysis-body{padding:var(--space-3) var(--space-4)}.analysis-status{margin:var(--space-2) 0 0;font-size:var(--text-sm);font-weight:var(--weight-medium)}.analysis-detail{margin:var(--space-1) 0 var(--space-3);font-size:var(--text-xs);color:var(--fg-muted);font-variant-numeric:tabular-nums}.analysis-error{margin:0 0 var(--space-3);color:var(--status-negative);font-size:var(--text-sm)}.accuracy{margin:var(--space-3) 0;padding:var(--space-3);border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-sunken)}.accuracy-title{margin:0 0 var(--space-2);font-size:var(--text-xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.04em;color:var(--fg-muted)}.accuracy-pair{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));margin:0;display:grid}.accuracy-side{min-width:0}.accuracy-side dt{font-size:var(--text-xs);color:var(--fg-muted);overflow-wrap:anywhere}.accuracy-side dd{font-size:var(--text-xl,1.25rem);font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums;margin:0}.accuracy-side dt:before{content:"";width:.6em;height:.6em;margin-right:var(--space-1);border:1px solid var(--border-strong);vertical-align:baseline;border-radius:2px;display:inline-block}.accuracy-side[data-side=w] dt:before{background:var(--graph-white)}.accuracy-side[data-side=b] dt:before{background:var(--graph-black,var(--c-navy-900))}.accuracy-phases{width:100%;margin-top:var(--space-3);border-collapse:collapse;table-layout:fixed;font-size:var(--text-xs);font-variant-numeric:tabular-nums}.accuracy-phases col.is-figure,.accuracy-phases th:not(:first-child),.accuracy-phases td{width:4.5rem}.accuracy-phases tbody th{overflow-wrap:anywhere}.accuracy-phases caption{margin-bottom:var(--space-1);text-align:left;font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.04em;color:var(--fg-muted)}.accuracy-phases th,.accuracy-phases td{padding:var(--space-1) var(--space-2) var(--space-1) 0;text-align:right;font-weight:var(--weight-regular)}.accuracy-phases thead th,.accuracy-phases tbody th{text-align:left}.accuracy-phases thead th{color:var(--fg-muted);border-bottom:1px solid var(--border-default)}.accuracy-phase-count{color:var(--fg-subtle)}.live-body{padding:var(--space-2) var(--space-3) var(--space-3)}.live-depth{margin:0 0 var(--space-2);font-size:var(--text-xs);color:var(--fg-subtle);font-variant-numeric:tabular-nums}.live-note,.live-error{margin:0 0 var(--space-2);font-size:var(--text-xs)}.live-note{color:var(--accent-text)}.live-error{color:var(--status-negative)}.live-lines{gap:var(--space-1);margin:0;padding:0;list-style:none;display:grid}.live-line{align-items:baseline;gap:var(--space-2);width:100%;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-sm);text-align:left;border:1px solid #0000;display:flex}.live-line:hover{border-color:var(--border-default);background:var(--surface-hover)}.live-move-item{white-space:nowrap;display:inline}.live-move-item+.live-move-item{margin-left:.3em}.live-move-number{color:var(--fg-subtle);font-variant-numeric:tabular-nums;margin-right:.1em}.live-move{min-height:24px;font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:3px;align-items:center;margin:0;padding:0 .15em;display:inline-flex}.live-move:hover:not(:disabled){background:var(--accent-soft,var(--surface-sunken));color:var(--fg-default)}.live-move:disabled{cursor:default}.live-score{min-width:3.5rem;font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums;flex-shrink:0}.live-lines>li,.live-line{min-width:0}.live-moves{white-space:nowrap;text-overflow:ellipsis;min-width:0;color:var(--fg-muted);flex:1;overflow:hidden}.online{gap:var(--space-3);flex-direction:column;min-height:0;display:flex}.btn.is-active{background:var(--accent);color:var(--fg-on-accent);border-color:var(--accent-border)}.player-search{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.player-search-input{min-width:10rem;padding:var(--space-2) var(--space-3);font:inherit;font-size:var(--text-sm);color:var(--fg-default);background:var(--surface-raised);border:var(--rule-strong) solid var(--border-strong);border-radius:var(--radius-md);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);flex:1}.player-search-input:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px var(--accent);outline:none}.segmented{background:var(--surface-sunken);border:1px solid var(--border-default);border-radius:var(--radius-md);flex-wrap:wrap;gap:2px;padding:2px;display:inline-flex}.segmented-option{font:inherit;font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--fg-muted);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-3);cursor:pointer;white-space:nowrap;transition:background var(--transition-fast), color var(--transition-fast);background:0 0;border:none}.segmented-option:hover{color:var(--fg-default)}.segmented-option.is-active{color:var(--fg-on-accent);background:var(--accent);box-shadow:inset 0 0 0 var(--rule) var(--accent-border)}.chip{align-items:baseline;gap:var(--space-2);font:inherit;font-size:var(--text-xs);color:var(--fg-default);background:var(--surface-raised);border:var(--rule-strong) solid var(--border-strong);border-radius:var(--radius-full);padding:var(--space-1) var(--space-3);cursor:pointer;transition:background var(--transition-fast), border-color var(--transition-fast), transform var(--transition-fast);display:inline-flex}.chip:hover{background:var(--surface-hover);border-color:var(--border-strong);transform:translateY(-1px)}.chip-note{color:var(--fg-subtle);font-size:.625rem}.form-error{font-size:var(--text-sm);color:var(--status-negative);margin:0}.online-filters{align-items:flex-end;gap:var(--space-2) var(--space-3);flex-wrap:wrap;display:flex}.online-filter{font-size:var(--text-xs);flex-direction:column;gap:2px;display:flex}.online-filter-label{color:var(--fg-muted)}.online-filter select{padding:var(--space-1) var(--space-2);font:inherit;font-size:var(--text-sm);border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--surface-raised);color:var(--fg-default)}.online-more{margin-top:var(--space-4);justify-content:center;display:flex}.online-count{font-size:var(--text-xs);color:var(--fg-subtle);margin:0}.game-list{scrollbar-gutter:stable;flex-direction:column;gap:2px;max-height:22rem;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.game-row{align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2);font:inherit;font-size:var(--text-sm);text-align:left;color:var(--fg-default);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast), border-color var(--transition-fast);background:0 0;border:1px solid #0000;grid-template-columns:4.5rem minmax(0,1fr) minmax(0,.9fr) auto auto;display:grid}.game-row:hover{background:var(--surface-hover);border-color:var(--border-default)}.game-outcome{font-size:var(--text-xs);font-weight:var(--weight-semibold)}.game-outcome.is-win{color:var(--status-positive)}.game-outcome.is-loss{color:var(--status-negative)}.game-outcome.is-draw,.game-outcome.is-unfinished,.game-outcome.is-none{color:var(--fg-subtle)}.game-players{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.game-meta,.game-date{font-size:var(--text-xs);color:var(--fg-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.game-date{font-variant-numeric:tabular-nums}.game-accuracy{padding:1px var(--space-2);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--c-white);background:var(--accuracy-colour,var(--status-neutral));align-items:baseline;gap:1px;display:inline-flex}.game-accuracy-unit{font-size:.625rem;font-weight:var(--weight-medium);opacity:.85}@media (width<=640px){.game-row{grid-template-columns:4.5rem minmax(0,1fr)}}.editor{width:min(56rem,100%);max-height:calc(100dvh - var(--space-6));background:var(--surface-raised);border:var(--rule-strong) solid var(--accent-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:0;overflow:hidden}.editor::backdrop{background:#00112f8c}.editor-inner{min-height:0;max-height:inherit;flex-direction:column;display:flex}.editor-head,.editor-foot{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);flex-shrink:0;display:flex}.editor-head{border-bottom:1px solid var(--border-default)}.editor-foot{border-top:1px solid var(--border-default);justify-content:flex-end}.editor-body{gap:var(--space-4);padding:var(--space-4);grid-template-columns:minmax(16rem,22rem) minmax(0,1fr);min-height:0;display:grid;overflow-y:auto}@media (width<=720px){.editor-body{grid-template-columns:1fr}}.editor-board{align-self:start}.editor-controls{gap:var(--space-3);flex-direction:column;min-width:0;display:flex}.editor-group{border:none;margin:0;padding:0}.editor-row{gap:var(--space-2) var(--space-3);flex-wrap:wrap;display:flex}.editor-palette{gap:var(--space-1);grid-template-columns:repeat(6,1fr);max-width:22rem;display:grid}.editor-brush{aspect-ratio:1;padding:var(--space-1);background:var(--surface-sunken);border-radius:var(--radius-sm);cursor:pointer;font:inherit;font-size:var(--text-xs);color:var(--fg-muted);border:1px solid #0000;justify-content:center;align-items:center;display:flex}.editor-brush img{object-fit:contain;width:100%;height:100%}.editor-brush:hover{background:var(--surface-hover)}.editor-brush.is-selected{border-color:var(--accent-border);box-shadow:inset 0 0 0 var(--rule-strong) var(--accent)}.editor-brush.is-eraser{aspect-ratio:auto;padding:var(--space-2);grid-column:span 6}.editor-fen{width:100%;padding:var(--space-2);font-family:var(--font-mono,monospace);font-size:var(--text-xs);color:var(--fg-default);background:var(--surface-sunken);border:1px solid var(--border-default);border-radius:var(--radius-sm)}.editor-fen[aria-invalid=true]{border-color:var(--status-negative)}.editor-problem{font-size:var(--text-xs);color:var(--status-negative);margin:0}.crash{min-height:100dvh;padding:var(--space-4);background:var(--surface-app);justify-content:center;align-items:center;display:flex}.crash-card{max-width:28rem;padding:var(--space-6);background:var(--surface-raised);border:1px solid var(--border-default);border-radius:var(--radius-md);text-align:center}.crash-title{margin:0 0 var(--space-3);font-size:var(--text-lg)}.crash-body{margin:0 0 var(--space-4);color:var(--fg-muted);font-size:var(--text-sm);line-height:var(--leading-normal)}.crash-detail{margin:var(--space-4) 0 0;color:var(--fg-subtle);font-size:var(--text-xs);overflow-wrap:anywhere}.appearance-group{margin:0 0 var(--space-4);border:none;padding:0}.appearance-legend{margin-bottom:var(--space-2);font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--fg-muted);text-transform:uppercase;letter-spacing:.04em;padding:0}.theme-grid,.pieceset-grid{gap:var(--space-2);display:grid}.theme-grid{grid-template-columns:repeat(auto-fill,minmax(5.5rem,1fr))}.pieceset-grid{grid-template-columns:repeat(auto-fill,minmax(7.5rem,1fr))}.theme-option,.pieceset-option{align-items:center;gap:var(--space-1);padding:var(--space-2);border:1px solid var(--border-default);border-radius:var(--radius-sm);cursor:pointer;text-align:center;flex-direction:column;min-width:0;display:flex;position:relative}.theme-option:hover,.pieceset-option:hover{background:var(--surface-hover)}.theme-option.is-selected,.pieceset-option.is-selected{border-color:var(--accent-border);box-shadow:inset 0 0 0 var(--rule-strong) var(--accent)}.theme-option:focus-within,.pieceset-option:focus-within{outline:2px solid var(--border-focus);outline-offset:1px}.theme-swatch{border-radius:var(--radius-sm);border:1px solid var(--border-strong);grid-template-columns:1fr 1fr;width:2.75rem;height:2.75rem;display:grid;overflow:hidden}.theme-name,.pieceset-name{font-size:var(--text-xs);color:var(--fg-default);overflow-wrap:anywhere}.pieceset-preview{grid-template-columns:repeat(4,1fr);gap:1px;width:100%;max-width:6rem;display:grid}.pieceset-preview img{aspect-ratio:1;object-fit:contain;width:100%}.pieceset-credit{color:var(--fg-subtle);overflow-wrap:anywhere;font-size:.625rem;line-height:1.3}.appearance-toggles{gap:var(--space-3);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.appearance-toggle{align-items:center;gap:var(--space-2);font-size:var(--text-sm);cursor:pointer;display:flex}.appearance-credit{font-size:var(--text-xs);color:var(--fg-subtle);margin:0}.promotion-backdrop{z-index:5;border-radius:var(--radius-md);background:#1b243773;place-items:center;display:grid;position:absolute;inset:0}.promotion{gap:var(--space-1);padding:var(--space-2);border-radius:var(--radius-md);background:var(--surface-panel);display:flex;box-shadow:0 6px 20px #1b243759}.promotion-choice{border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:1px solid #0000;place-items:center;width:3rem;height:3rem;padding:0;display:grid}.promotion-choice:hover,.promotion-choice:focus-visible{border-color:var(--accent-border);background:var(--accent-faint)}.promotion-choice img{width:82%;height:82%}.critical-list{padding:var(--space-2) var(--space-3) var(--space-3);gap:var(--space-1);margin:0;list-style:none;display:grid}.critical-item{align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2);border-radius:var(--radius-md);font:inherit;font-size:var(--text-sm);text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;display:flex}.critical-item:hover{background:var(--surface-hover)}.critical-item[aria-current=true]{border-color:var(--accent-border);background:var(--accent-faint)}.critical-move{font-variant-numeric:tabular-nums;flex:1}.critical-best{color:var(--fg-subtle);font-size:var(--text-xs)}.critical-best:before{content:"→ "}.critical-more{padding:0 var(--space-3) var(--space-3);font-size:var(--text-xs);color:var(--fg-subtle);margin:0}.board-progress{padding:0 0 var(--space-1)}.analysis-provisional{margin:var(--space-2) 0;font-size:var(--text-xs);color:var(--accent-text)}.analysis-provenance{margin:0 0 var(--space-2);font-size:var(--text-xs);color:var(--fg-subtle);font-variant-numeric:tabular-nums}.analysis-stale{margin:0 0 var(--space-2);padding:var(--space-2);border:var(--rule) solid var(--status-warning);background:var(--surface-sunken);font-size:var(--text-xs);color:var(--fg-default)}.settings-engine{margin:var(--space-1) 0 var(--space-3);font-size:var(--text-sm);color:var(--fg-muted)}.settings-grid{gap:var(--space-4);margin-bottom:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));display:grid}.settings-field{gap:var(--space-1);flex-direction:column;display:flex}.settings-label{font-size:var(--text-sm);font-weight:var(--weight-medium)}.settings-hint{font-size:var(--text-xs);color:var(--fg-muted)}.settings-note{padding:var(--space-2);background:var(--surface-sunken);border-radius:var(--radius-sm);font-size:var(--text-xs);color:var(--fg-muted);margin:0}.gameheader{padding:var(--space-3) var(--space-4)}.gameheader-players{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.gameheader-player{align-items:center;gap:var(--space-2);min-width:0;display:inline-flex}.gameheader-dot{border-radius:var(--radius-full);border:1px solid var(--border-strong);flex-shrink:0;width:.625rem;height:.625rem}.gameheader-dot.is-white{background:var(--c-white)}.gameheader-dot.is-black{background:var(--fg-default)}.gameheader-name{font-weight:var(--weight-medium);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gameheader-elo{color:var(--fg-muted);font-size:var(--text-xs);font-variant-numeric:tabular-nums}.gameheader-result{font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums}.gameheader-meta,.gameheader-note,.gameheader-verdict{margin:var(--space-1) 0 0;font-size:var(--text-xs);color:var(--fg-muted)}.gameheader-facts{gap:var(--space-1) var(--space-3);margin:var(--space-2) 0 0;display:grid}.gameheader-fact{gap:var(--space-2);font-size:var(--text-xs);grid-template-columns:6.5rem 1fr;align-items:baseline;display:grid}.gameheader-fact dt{color:var(--fg-subtle);text-transform:uppercase;letter-spacing:.04em;font-size:.6875rem}.gameheader-fact dd{color:var(--fg-default);overflow-wrap:anywhere;min-width:0;margin:0}.gameheader-fact:first-child dd{font-size:var(--text-sm);font-weight:var(--weight-medium)}@media (width<=30rem){.gameheader-fact{grid-template-columns:1fr;gap:0}}.detail-movenum{align-items:center;gap:var(--space-2);color:var(--fg-muted);font-size:var(--text-sm);font-variant-numeric:tabular-nums;flex:none;display:inline-flex}.detail-movesan{color:var(--fg-default);font-weight:var(--weight-semibold);white-space:nowrap}.detail-noanalysis{margin:0 0 var(--space-2);padding-bottom:var(--space-2);border-bottom:1px solid var(--border-default);color:var(--fg-muted);font-size:var(--text-xs);grid-column:1/-1;text-align:left!important}.detail-pv{grid-column:1/-1}.detail-comment{padding:0 var(--space-4) var(--space-3);color:var(--fg-muted);font-size:var(--text-sm);margin:0;font-style:italic}.dialog{width:min(40rem,100vw - 2rem);padding:var(--space-4);background:var(--surface-panel);color:var(--fg-default);border:1px solid var(--border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.dialog::backdrop{background:#1b243759}.toasts{right:var(--space-4);bottom:var(--space-4);z-index:200;gap:var(--space-2);pointer-events:none;flex-direction:column;align-items:flex-end;display:flex;position:fixed}.toast{align-items:center;gap:var(--space-3);max-width:min(26rem, calc(100vw - 2 * var(--space-4)));padding:var(--space-2) var(--space-2) var(--space-2) var(--space-3);pointer-events:auto;color:var(--fg-on-dark);background:var(--surface-dark);border:var(--rule-strong) solid var(--border-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-md);font-size:var(--text-sm);animation:toast-in var(--duration-base) var(--ease-out);display:flex}.toast.is-success{border-color:var(--status-positive)}.toast.is-failure{border-color:var(--status-negative)}.toast-message{flex:1}.toast-dismiss{min-width:24px;min-height:24px;font:inherit;font-size:var(--text-md);color:var(--chrome-fg-muted);border-radius:var(--radius-sm);cursor:pointer;transition:color var(--transition-fast);background:0 0;border:none;flex:none;justify-content:center;align-items:center;line-height:1;display:inline-flex}.toast-dismiss:hover{color:var(--fg-on-dark)}@keyframes toast-in{0%{opacity:0;transform:translateY(.5rem)}}@media (prefers-reduced-motion:reduce){.toast{animation:none}}@media (width<=30rem){.toasts{left:var(--space-4);align-items:stretch}}.field-label{margin:var(--space-3) 0 var(--space-1);font-size:var(--text-sm);color:var(--fg-muted);display:block}.pgn-input{width:100%;padding:var(--space-2);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--fg-default);background:var(--surface-raised);border:var(--rule-strong) solid var(--border-strong);border-radius:var(--radius-sm);resize:vertical;line-height:1.5}.pgn-choices{margin-top:var(--space-4)}.pgn-choices-head{margin:0 0 var(--space-2);font-size:var(--text-sm);color:var(--fg-muted)}.pgn-choice-list{border:var(--rule-strong) solid var(--border-strong);max-height:16rem;margin:0;padding:0;list-style:none;overflow-y:auto}.pgn-choice{width:100%;padding:var(--space-2) var(--space-3);font:inherit;text-align:left;color:var(--fg-default);background:var(--surface-raised);border:none;border-bottom:var(--rule) solid var(--border-default);cursor:pointer;flex-direction:column;gap:2px;display:flex}.pgn-choice:hover{background:var(--surface-hover)}.pgn-choice-players{font-size:var(--text-sm);font-weight:var(--weight-medium)}.pgn-choice-meta{font-size:var(--text-xs);color:var(--fg-subtle)}.dialog-row{margin-top:var(--space-3)}.file-btn{cursor:pointer;display:inline-flex}.dialog-error{margin:var(--space-3) 0 0;color:var(--status-negative);font-size:var(--text-sm)}.settings-reset{align-items:flex-start;gap:var(--space-2);margin-top:var(--space-4);padding-top:var(--space-4);border-top:var(--rule) solid var(--border-default);flex-direction:column;display:flex}.dialog-actions{justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-4);display:flex}@media (width<=1200px){.app-main{grid-template-columns:minmax(18rem,1.1fr) minmax(13rem,1fr);align-items:start;overflow:auto}.app-column{min-height:auto}.app-column.is-board,.app-column.is-moves,.app-column.is-rail{overflow-y:visible}.app-column.is-rail{grid-column:1/-1;grid-template-columns:repeat(auto-fit,minmax(17rem,1fr));display:grid}}@media (width<=760px){.app-main{grid-template-columns:1fr}.app-column.is-rail{grid-column:auto;grid-template-columns:1fr}.topbar{gap:var(--space-2)}}@media print{.topbar,.toasts,.skip-link,.board-controls,.panel-appearance,.panel-engine,.panel-actions,.board-progress,dialog{display:none!important}:root{--surface-app:#fff;--surface-panel:#fff;--surface-raised:#fff;--surface-sunken:#fff;--shadow-sm:none;--shadow-md:none}body{background:#fff}.app-main{padding:0;display:block}.app-column{display:block}.panel{break-inside:avoid;margin-bottom:var(--space-4)}.panel-body{max-height:none;overflow:visible}.board-area{max-width:12cm}}.puzzle-library,.puzzle-book-page,.puzzle-chapter-page,.puzzle-session{max-width:64rem;padding:var(--space-4) var(--space-4) var(--space-8);margin:0 auto}.puzzle-intro,.puzzle-hint{color:var(--fg-muted);font-size:var(--text-sm);max-width:44rem;margin:var(--space-2) 0 var(--space-4)}.puzzle-books{grid-template-columns:repeat(auto-fill, minmax(min(12rem, calc(50% - var(--space-3) / 2)), 1fr));gap:var(--space-3);margin:0;padding:0;list-style:none;display:grid}.puzzle-book{gap:var(--space-1);height:100%;padding:var(--space-3);background:var(--surface-raised);border:var(--rule) solid var(--border-strong);border-radius:var(--radius-md);flex-direction:column;display:flex}.puzzle-book[data-available=false]{background:var(--surface-sunken);color:var(--fg-muted)}.puzzle-book{position:relative;overflow:hidden}.puzzle-book-title a:after{content:"";position:absolute;inset:0}.book-cover{width:calc(100% + 2 * var(--space-3));aspect-ratio:2/3;height:auto;margin:calc(-1 * var(--space-3)) calc(-1 * var(--space-3)) var(--space-2);border-bottom:var(--rule) solid var(--border-strong);object-fit:cover;transition:transform var(--transition-fast);display:block}.puzzle-book[data-available=true]:hover .book-cover{transform:scale(1.02)}.puzzle-book[data-available=false] .book-cover{filter:grayscale();opacity:.6}.book-cover-drawn{background:var(--c-navy-900);color:var(--c-bone-0);flex-direction:column;display:flex;container-type:inline-size}.book-cover-band{background:var(--c-yellow-500);color:var(--c-navy-900);font-family:var(--font-mono);font-size:5cqw;font-weight:var(--weight-bold);letter-spacing:.04em;align-items:center;gap:4cqw;padding:6cqw 7cqw;display:flex}.book-cover-mark{background:var(--c-navy-900);--logo-ink:var(--c-bone-0);--logo-point:var(--c-yellow-500);padding:1.5cqw;display:inline-flex}.book-cover-mark svg{width:9cqw;height:9cqw}.book-cover-board{background:repeating-conic-gradient(var(--c-bone-100) 0 25%, transparent 0 50%) 0 0 / 25% 25%;opacity:.85;flex:1;margin:10cqw 0 4cqw;-webkit-mask-image:linear-gradient(#0000,#000 40% 70%,#0000);mask-image:linear-gradient(#0000,#000 40% 70%,#0000)}.book-cover-title{font-family:var(--font-display);font-size:11cqw;font-weight:var(--weight-bold);padding:0 7cqw;line-height:1.05}.book-cover-volume{background:var(--c-yellow-500);color:var(--c-navy-900);font-family:var(--font-mono);font-size:4.5cqw;font-weight:var(--weight-bold);align-self:flex-end;margin:6cqw 7cqw 7cqw;padding:2cqw 4cqw}.puzzle-book-title{font-size:var(--text-lg);margin:0}.puzzle-book-title a{color:inherit}.puzzle-book-blurb,.puzzle-book-count,.puzzle-book-solved,.puzzle-book-state{font-size:var(--text-sm);margin:0}.puzzle-book-state{font-style:italic}.puzzle-crumbs{font-size:var(--text-sm);color:var(--fg-muted);margin-bottom:var(--space-2)}.puzzle-crumbs a,.puzzle-back{color:var(--fg-default);font-weight:var(--weight-bold);text-underline-offset:3px;text-decoration:none}.puzzle-crumbs a:hover,.puzzle-back:hover{text-decoration:underline}.puzzle-back{align-items:center;gap:2px;min-height:24px;display:inline-flex}.puzzle-session-band{margin:var(--space-1) 0 0;color:var(--fg-muted);font-size:var(--text-xs)}.puzzle-tiles-title{margin:var(--space-5) 0 0;font-size:var(--text-sm)}.puzzle-key{margin-left:var(--space-2);border:var(--rule) solid currentColor;font:inherit;opacity:.55;padding:0 4px;font-size:.85em;line-height:1.3}@media (hover:none){.puzzle-key{display:none}}.puzzle-analyse[aria-pressed=true]{background:var(--accent);border-color:var(--accent-border);color:var(--fg-on-accent)}.puzzle-analysis{gap:var(--space-2);display:grid}.puzzle-analysis-status{color:var(--fg-muted);font-size:var(--text-xs);font-variant-numeric:tabular-nums;margin:0}.puzzle-analysis-status a{color:inherit}.puzzle-actions .puzzle-reveal:not(:disabled){color:var(--fg-muted);border-color:var(--border-strong)}.puzzle-tree,.puzzle-chapters,.puzzle-band-list{margin:var(--space-3) 0 0;gap:var(--space-1);flex-direction:column;padding:0;list-style:none;display:flex}.puzzle-tree-link,.puzzle-chapter-link,.puzzle-band-link{justify-content:space-between;align-items:baseline;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--surface-raised);border:var(--rule) solid var(--border-default);border-radius:var(--radius-sm);color:inherit;flex-wrap:wrap;text-decoration:none;display:flex}.puzzle-tree-link:hover,.puzzle-chapter-link:hover,.puzzle-band-link:hover{background:var(--surface-hover)}.puzzle-band-link[aria-current=true]{border-color:var(--accent-border);background:var(--accent);color:var(--fg-on-accent)}.puzzle-band-list .puzzle-band-link{background-image:linear-gradient(var(--accent), var(--accent));background-position:0 100%;background-repeat:no-repeat;background-size:var(--band-progress,0%) 3px}.puzzle-tree-leaf{color:var(--fg-muted)}.puzzle-chapter-name{font-weight:600}.puzzle-chapter-link{flex-wrap:nowrap}.puzzle-chapter-link .puzzle-chapter-solved{text-align:right;white-space:nowrap;margin-left:auto}.puzzle-chapter-count,.puzzle-chapter-solved,.puzzle-chapter-attempted{font-size:var(--text-xs);color:var(--fg-muted);font-variant-numeric:tabular-nums}.puzzle-bands{margin:var(--space-4) 0;border:0;padding:0}.puzzle-bands legend{font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--fg-muted);margin-bottom:var(--space-2)}.puzzle-session-body{gap:var(--space-4);grid-template-columns:minmax(0,36rem) minmax(16rem,1fr);align-items:start;display:grid}.puzzle-board-wrap{position:relative}@media (width>=721px){.puzzle-board-wrap{width:min(100%,max(18rem,100dvh - 17rem))}}.puzzle-side{gap:var(--space-3);padding:var(--space-4);border:var(--rule-strong) solid var(--c-navy-900);background:var(--surface-raised);box-shadow:0 3px 0 var(--c-navy-900);flex-direction:column;display:flex}.puzzle-meta{gap:var(--space-1) var(--space-3);font-size:var(--text-xs);flex-wrap:wrap;margin:0;display:flex}.puzzle-result{gap:var(--space-1);padding:var(--space-3);border:var(--rule) solid var(--border-default);background:var(--surface-sunken);display:grid}.puzzle-result[data-solved=true]{border-color:var(--accent-border);background:var(--accent-soft)}.puzzle-result-verdict{font-size:var(--text-lg,1.125rem);font-weight:var(--weight-bold);margin:0}.puzzle-result-score{align-items:center;gap:var(--space-3);font-size:var(--text-sm);flex-wrap:wrap;margin:0;display:flex}.puzzle-result-crowns{gap:2px;display:inline-flex}.puzzle-line{font-size:var(--text-sm);font-variant-numeric:tabular-nums;margin:0;line-height:1.5}.puzzle-line-label{color:var(--fg-muted);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em}.puzzle-settings{border-top:var(--rule) solid var(--border-default);padding-top:var(--space-2)}.puzzle-settings>summary{align-items:center;gap:var(--space-1);min-height:32px;color:var(--fg-muted);font-size:var(--text-sm);cursor:pointer;display:inline-flex}.puzzle-settings[open]>summary{color:var(--fg-default)}.puzzle-setting{align-items:center;gap:var(--space-2);margin:var(--space-2) 0 var(--space-3);font-size:var(--text-sm);display:flex}.puzzle-settings .panel{box-shadow:none;background:0 0;border:0;padding:0}.puzzle-feedback{min-height:2.5rem;padding:var(--space-2) var(--space-3);background:var(--surface-sunken);border:var(--rule) solid var(--border-strong);font-size:var(--text-sm);margin:0}.puzzle-feedback[data-feedback=correct],.puzzle-feedback[data-feedback=solved]{border-color:var(--accent-border)}.puzzle-mistakes,.puzzle-practice,.puzzle-facts,.puzzle-progress-note{font-size:var(--text-xs);color:var(--fg-muted);margin:0}.puzzle-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.puzzle-solution,.puzzle-summary{padding:var(--space-3);background:var(--surface-raised);border:var(--rule) solid var(--border-default);border-radius:var(--radius-sm);font-size:var(--text-sm)}.puzzle-solution-title{font-size:var(--text-sm);margin:0 0 var(--space-1)}.puzzle-solution-moves{margin:var(--space-2) 0 var(--space-2);padding-left:var(--space-5);font-variant-numeric:tabular-nums}.puzzle-solution-move{padding:var(--space-1) var(--space-2);border:var(--rule) solid transparent;border-radius:var(--radius-sm);min-height:32px;color:inherit;font:inherit;cursor:pointer;background:0 0}.puzzle-solution-move:hover{border-color:var(--border-default)}.puzzle-solution-move[aria-current=step]{border-color:var(--border-default);background:var(--surface-sunken);font-weight:600}.puzzle-complete{margin:0;font-weight:600}.puzzle-retry-mistakes{margin-bottom:var(--space-3);justify-self:start}.puzzle-summary{gap:var(--space-2);margin-top:var(--space-2);display:grid}.puzzle-loading,.puzzle-empty,.puzzle-session-empty{padding:var(--space-4);color:var(--fg-muted)}.puzzle-tiles{--tile-slab:3px;gap:var(--space-2);margin:var(--space-3) 0 var(--space-4);padding:0 0 var(--tile-slab);grid-template-columns:repeat(auto-fill,minmax(52px,1fr));list-style:none;display:grid}.puzzle-tile{--tile-edge:var(--border-default);border:var(--rule-strong) solid var(--tile-edge);background:var(--surface-raised);height:56px;box-shadow:0 var(--tile-slab) 0 var(--tile-edge);color:var(--fg-muted);font-size:var(--text-sm);font-weight:var(--weight-bold);font-variant-numeric:tabular-nums;transition:transform var(--transition-fast), box-shadow var(--transition-fast);flex-direction:column;justify-content:center;align-items:center;gap:4px;line-height:1;text-decoration:none;display:flex}.puzzle-tile:hover{box-shadow:0 calc(var(--tile-slab) + 1px) 0 var(--tile-edge);transform:translateY(-1px)}.puzzle-tile:active{box-shadow:0 1px 0 var(--tile-edge);transform:translateY(2px)}.puzzle-tile:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.puzzle-tile[data-state=solved]{--tile-edge:var(--c-navy-900);color:var(--fg-default)}.puzzle-tile[data-crowns="3"]{background:var(--accent);color:var(--fg-on-accent)}.puzzle-tile[data-state=failed]{--tile-edge:var(--status-negative);color:var(--fg-default)}.puzzle-tile[aria-current=step]{outline:var(--rule-strong) solid var(--c-navy-900);outline-offset:3px}.puzzle-tile-mark{align-items:center;gap:1px;height:14px;display:flex}.puzzle-crown{color:var(--c-navy-900);fill:none;opacity:.22}.puzzle-crown[data-earned=true]{fill:var(--accent);opacity:1}.puzzle-tile[data-crowns="3"] .puzzle-crown{fill:var(--c-navy-900)}.puzzle-tile-miss{color:var(--status-negative)}.puzzle-tile-strip{gap:var(--space-1);min-width:0;margin:var(--space-3) 0 var(--space-4);grid-template-columns:minmax(0,1fr);display:grid}.puzzle-strip-position{color:var(--fg-muted);font-size:var(--text-xs);font-variant-numeric:tabular-nums;margin:0}.puzzle-strip-row{align-items:flex-start;gap:var(--space-2);min-width:0;display:flex}.puzzle-strip-row .puzzle-tiles{scrollbar-width:none;flex-wrap:nowrap;min-width:0;margin:0;padding:5px;display:flex;position:relative;overflow-x:auto}.puzzle-strip-row .puzzle-tiles>li{flex:none}.puzzle-strip-row .puzzle-tile{width:52px}.puzzle-strip-arrow{border:var(--rule-strong) solid var(--c-navy-900);background:var(--surface-raised);width:44px;height:56px;box-shadow:0 3px 0 var(--c-navy-900);color:var(--c-navy-900);cursor:pointer;flex:none;justify-content:center;align-self:center;align-items:center;display:flex}.puzzle-strip-arrow:hover:not(:disabled){background:var(--accent)}.puzzle-strip-arrow:active:not(:disabled){box-shadow:0 1px 0 var(--c-navy-900);transform:translateY(2px)}.puzzle-strip-arrow:disabled{border-color:var(--border-default);box-shadow:0 3px 0 var(--border-default);color:var(--border-strong);cursor:default}.puzzle-band-complete{color:var(--status-positive);font-size:var(--text-xs);font-weight:600}.puzzle-streak{font-size:var(--text-sm);color:var(--status-warning);margin:0;font-weight:600}.puzzle-reset{margin:var(--space-12) 0 0;font-size:var(--text-sm);color:var(--fg-muted);justify-self:start}.puzzle-front-door{margin:var(--space-4) 0 var(--space-6)}.puzzle-mark{border:.45cqw solid var(--c-bone-0);width:100%;height:100%;color:var(--c-bone-0);border-radius:50%;justify-content:center;align-items:center;animation:.18s ease-out puzzle-mark-in;display:flex}.puzzle-mark svg{width:62%;height:62%}.puzzle-mark[data-mark=correct]{background:var(--status-positive)}.puzzle-mark[data-mark=wrong]{background:var(--status-negative)}.puzzle-mark[data-mark=solved]{background:var(--accent);color:var(--c-navy-900)}.puzzle-mark[data-mark=solved] svg{fill:var(--c-navy-900)}@keyframes puzzle-mark-in{0%{opacity:0;transform:scale(.4)}}@media (prefers-reduced-motion:reduce){.puzzle-mark{animation:none}}@media (width<=720px){.puzzle-session-body{grid-template-columns:minmax(0,1fr)}.puzzle-side{gap:var(--space-2);padding:var(--space-2) var(--space-3) 0}.puzzle-session{padding-top:var(--space-2)}.puzzle-strip-position{display:none}.puzzle-tile-strip{margin:var(--space-2) 0}.puzzle-session-body{gap:var(--space-2)}.puzzle-side .puzzle-actions{z-index:1;margin:0 calc(-1 * var(--space-3));padding:var(--space-2) var(--space-3);border-top:var(--rule) solid var(--border-default);background:var(--surface-raised);order:-1;position:sticky;bottom:0}.puzzle-side .puzzle-feedback{order:-2}.puzzle-library .btn,.puzzle-book-page .btn,.puzzle-chapter-page .btn,.puzzle-session .btn,.puzzle-solution-move,.puzzle-tree-link,.puzzle-chapter-link,.puzzle-band-link{align-items:center;min-height:44px}.puzzle-session .btn-sm{padding-inline:var(--space-3)}.puzzle-crumbs a,.puzzle-session-empty a,.puzzle-book-title a{align-items:center;min-height:44px;display:inline-flex}}.puzzle-lessons{gap:var(--space-2);min-width:0;margin-top:var(--space-2);display:grid}.puzzle-chapter-page .puzzle-lessons{margin-top:var(--space-5)}.puzzle-lessons-title{align-items:center;gap:var(--space-2);font-size:var(--text-sm);font-weight:var(--weight-bold);letter-spacing:.06em;text-transform:uppercase;margin:0;display:flex}.puzzle-lessons-tabs{gap:var(--space-1);flex-wrap:wrap;display:flex}.puzzle-lessons-tab{align-items:center;gap:var(--space-2);min-height:32px;padding:0 var(--space-2);border:var(--rule-strong) solid var(--border-strong);background:var(--surface-raised);color:var(--fg-muted);font:inherit;font-size:var(--text-xs);font-weight:var(--weight-bold);cursor:pointer;display:inline-flex}.puzzle-lessons-tab:hover{color:var(--fg-default);border-color:var(--c-navy-900)}.puzzle-lessons-tab[aria-selected=true]{background:var(--c-navy-900);border-color:var(--c-navy-900);color:var(--c-bone-0)}.puzzle-lessons-count{font-variant-numeric:tabular-nums;opacity:.7}.puzzle-lessons-row{gap:var(--space-3);padding:0 0 var(--space-3);overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:thin;grid-auto-columns:minmax(180px,46%);grid-auto-flow:column;margin:0;list-style:none;display:grid;overflow-x:auto}.puzzle-chapter-page .puzzle-lessons-row{grid-auto-columns:minmax(200px,240px)}.puzzle-lessons-row>li{scroll-snap-align:start;min-width:0}.lesson-card{gap:var(--space-1);width:100%;padding:0 0 var(--space-2);border:var(--rule-strong) solid var(--border-default);background:var(--surface-raised);box-shadow:0 3px 0 var(--border-default);color:var(--fg-default);font:inherit;text-align:left;cursor:pointer;transition:transform var(--transition-fast), box-shadow var(--transition-fast), border-color var(--transition-fast);display:grid}.lesson-card:hover{border-color:var(--c-navy-900);box-shadow:0 4px 0 var(--c-navy-900);transform:translateY(-1px)}.lesson-card:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.lesson-thumb{aspect-ratio:16/9;background:var(--surface-sunken);display:block;position:relative;overflow:hidden}.lesson-thumb img{object-fit:cover;width:100%;height:100%;display:block}.lesson-duration{background:var(--c-navy-900);color:var(--c-bone-0);font-size:var(--text-xs);font-variant-numeric:tabular-nums;padding:1px 4px;position:absolute;bottom:4px;right:4px}.lesson-play{background:var(--accent);width:44px;height:44px;color:var(--fg-on-accent);border:var(--rule-strong) solid var(--accent-border);opacity:0;transition:opacity var(--transition-fast), transform var(--transition-fast);place-items:center;margin:auto;display:grid;position:absolute;inset:0;transform:scale(.9)}.lesson-card:hover .lesson-play,.lesson-card:focus-visible .lesson-play{opacity:1;transform:none}.lesson-title{padding:0 var(--space-2);font-size:var(--text-xs);font-weight:var(--weight-bold);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;line-height:1.35;display:-webkit-box;overflow:hidden}.lesson-channel{padding:0 var(--space-2);color:var(--fg-muted);font-size:var(--text-xs);text-overflow:ellipsis;white-space:nowrap;margin:0;overflow:hidden}.puzzle-lessons-note{color:var(--fg-muted);font-size:var(--text-xs);margin:0}.lesson-player{border:var(--rule-strong) solid var(--c-navy-900);background:var(--c-navy-900);width:min(960px,100vw - 32px);max-height:calc(100vh - 32px);box-shadow:8px 8px 0 var(--accent);color:var(--c-bone-0);padding:0}.lesson-player::backdrop{background:#00112fb8}.lesson-player-frame{aspect-ratio:16/9;background:#000}.lesson-player-frame iframe{border:0;width:100%;height:100%;display:block}.lesson-player-bar{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3);flex-wrap:wrap;display:flex}.lesson-player-text{flex:280px;min-width:0}.lesson-player-title{font-size:var(--text-sm);font-weight:var(--weight-bold);margin:0 0 2px}.lesson-player .lesson-channel{color:var(--c-bone-200);padding:0}.lesson-player-actions{gap:var(--space-2);display:flex}.lesson-player-actions .btn{align-items:center;gap:var(--space-1);min-height:36px;display:inline-flex}@media (prefers-reduced-motion:reduce){.lesson-card,.lesson-play{transition:none}}.bot-club,.bot-game{max-width:76rem;padding:var(--space-4) var(--space-4) var(--space-8);margin:0 auto}.bot-club-intro{color:var(--fg-muted);font-size:var(--text-sm);max-width:44rem;margin:var(--space-2) 0 var(--space-4)}.bot-club-stage{position:relative}.club-frame{border:var(--rule-strong) solid var(--surface-dark);background:var(--surface-dark);box-shadow:8px 8px 0 var(--accent);scrollbar-width:thin;overflow-x:auto}.club-room{aspect-ratio:16/9;background:var(--surface-dark);min-width:46rem;position:relative;overflow:hidden}.club-room canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.club-room:after{content:"";pointer-events:none;position:absolute;inset:0;box-shadow:inset 0 0 140px #0009}.club-hotspot{z-index:1;cursor:pointer;justify-content:center;align-items:flex-end;text-decoration:none;display:flex;position:absolute}.club-hotspot[data-row=front]{z-index:2}.club-hotspot[data-row=front] .club-plaque{margin-bottom:1%}.club-plaque{padding:2px var(--space-2);font-family:var(--font-mono);font-size:clamp(.6rem,.9vw,.8rem);font-weight:var(--weight-bold);color:var(--fg-on-dark);border:1px solid var(--chrome-border);white-space:nowrap;transition:transform var(--transition-fast), background var(--transition-fast), color var(--transition-fast);background:#00112fd1;margin-bottom:4%}.club-plaque[data-lit=true]{color:var(--fg-on-accent);background:var(--accent);border-color:var(--accent-border)}.club-says{z-index:3;width:max-content;max-width:min(16rem,220%);padding:var(--space-2) var(--space-3);font-family:var(--font-mono);text-align:left;white-space:normal;color:var(--c-navy-900);background:var(--c-bone-100);border:var(--rule-strong) solid var(--c-navy-900);box-shadow:4px 4px 0 var(--accent);pointer-events:none;font-size:clamp(.62rem,.85vw,.78rem);line-height:1.4;position:absolute;top:0;left:50%;transform:translate(-50%,calc(.5rem - 100%))}.club-says:before{content:"“"}.club-says:after{content:"”"}.club-plaque-rating{color:var(--accent)}.club-plaque[data-lit=true] .club-plaque-rating{color:var(--fg-on-accent)}.bot-roster{gap:var(--space-3);margin:var(--space-6) 0 0;grid-template-columns:repeat(3,minmax(0,1fr));padding:0;list-style:none;display:grid}.bot-card{align-items:center;gap:var(--space-3);height:100%;padding:var(--space-2) var(--space-3) var(--space-2) var(--space-2);color:var(--fg-default);background:var(--surface-raised);border:var(--rule-strong) solid var(--border-default);box-shadow:0 3px 0 var(--border-default);transition:transform var(--transition-fast), box-shadow var(--transition-fast), border-color var(--transition-fast);text-decoration:none;display:flex}.bot-card:hover,.bot-card:focus-visible,.bot-card[aria-current=true]{border-color:var(--surface-dark);box-shadow:4px 4px 0 var(--accent)}.bot-card .bot-portrait{filter:grayscale()contrast(1.15);transition:filter var(--transition-base)}.bot-card:hover .bot-portrait,.bot-card:focus-visible .bot-portrait,.bot-card[aria-current=true] .bot-portrait{filter:none}.bot-card-text{gap:2px;min-width:0;display:grid}.bot-card-name{font-family:var(--font-display);font-weight:var(--weight-bold)}.bot-card-rating,.bot-card-style{font-size:var(--text-xs);color:var(--fg-muted)}.bot-portrait{object-fit:cover;background:var(--surface-dark);border:3px solid var(--status-positive);flex:none;width:72px;height:72px;display:block}.bot-portrait[data-tier=medium]{border-color:var(--accent)}.bot-portrait[data-tier=hard]{border-color:var(--c-orange-600)}.bot-portrait[data-tier=master]{border-color:var(--status-negative)}.bot-portrait-lg{border-width:4px;width:120px;height:120px}.bot-portrait-sm{border-width:2px;width:44px;height:44px}.bot-portrait-you{font-family:var(--font-display);font-weight:var(--weight-bold);color:var(--fg-on-dark);border-color:var(--border-strong);place-items:center;display:grid}.bot-tier{padding:0 var(--space-2);font-size:var(--text-xs);font-weight:var(--weight-bold);text-transform:uppercase;letter-spacing:.06em;color:var(--fg-on-dark);background:var(--status-positive);display:inline-block}.bot-tier[data-tier=medium]{color:var(--fg-on-accent);background:var(--accent)}.bot-tier[data-tier=hard]{background:var(--c-orange-600)}.bot-tier[data-tier=master]{background:var(--status-negative)}.bot-setup{z-index:3;top:var(--space-4);right:var(--space-4);gap:var(--space-4);width:min(24rem, calc(100% - 2 * var(--space-4)));max-height:calc(100% - 2 * var(--space-4));padding:var(--space-4);background:var(--surface-raised);border:var(--rule-strong) solid var(--surface-dark);box-shadow:8px 8px 0 var(--surface-dark);animation:bot-setup-in var(--duration-base) var(--ease-out);display:grid;position:absolute;overflow-y:auto}@keyframes bot-setup-in{0%{opacity:0;transform:translate(24px)}}@keyframes bot-sheet-in{0%{opacity:0;transform:translateY(40px)}}.bot-setup-close{top:var(--space-2);right:var(--space-2);width:2rem;height:2rem;color:var(--fg-default);border:var(--rule) solid var(--border-strong);background:var(--surface-raised);place-items:center;display:grid;position:absolute}.bot-setup-close:hover{background:var(--surface-hover)}.bot-setup-who{align-items:center;gap:var(--space-3);padding-right:var(--space-8);display:flex}.bot-setup-name{font-size:var(--text-xl)}.bot-setup-name:focus{outline:none}.bot-setup-rating{margin:var(--space-1) 0 0;font-family:var(--font-mono);font-weight:var(--weight-bold)}.bot-setup-style{margin:var(--space-1) 0 0;font-size:var(--text-xs);color:var(--fg-muted)}.bot-setup-bio{font-size:var(--text-sm);color:var(--fg-muted);margin:0;font-style:italic}.bot-choice{gap:var(--space-2);border:0;margin:0;padding:0;display:grid}.bot-choice legend{margin-bottom:var(--space-2);font-size:var(--text-xs);font-weight:var(--weight-bold);text-transform:uppercase;letter-spacing:.06em;color:var(--fg-muted);padding:0}.bot-segmented{border:var(--rule-strong) solid var(--surface-dark);display:flex}.bot-segment{justify-content:center;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-1);font-size:var(--text-xs);font-weight:var(--weight-bold);text-align:center;cursor:pointer;background:var(--surface-raised);flex:1;display:inline-flex;position:relative}.bot-segment+.bot-segment{border-left:var(--rule) solid var(--surface-dark)}.bot-segment:has(input:checked){color:var(--fg-on-accent);background:var(--accent)}:is(.bot-segment:has(input:focus-visible),.bot-help-level:has(input:focus-visible)){outline:2px solid var(--border-focus);outline-offset:2px}.bot-segment input,.bot-help-level input{opacity:0;pointer-events:none;position:absolute}.bot-color-chip{border:1px solid var(--surface-dark);background:var(--c-bone-0);width:.8rem;height:.8rem}.bot-segment[data-color=black] .bot-color-chip{background:var(--surface-dark)}.bot-segment[data-color=random] .bot-color-chip{background:linear-gradient(135deg, var(--c-bone-0) 50%, var(--surface-dark) 50%)}.bot-help-levels{gap:var(--space-2);display:grid}.bot-help-level{padding:var(--space-2) var(--space-3);cursor:pointer;background:var(--surface-raised);border:var(--rule-strong) solid var(--border-default);gap:2px;display:grid;position:relative}.bot-help-level:has(input:checked){background:var(--accent);border-color:var(--accent-border);color:var(--fg-on-accent)}.bot-help-level:has(input:checked) .bot-help-detail{color:var(--fg-on-accent)}.bot-help-name:before{content:"";width:.6rem;height:.6rem;margin-right:var(--space-2);background:var(--status-positive);display:inline-block}.bot-help-level[data-help=hints] .bot-help-name:before{background:var(--accent);outline:1px solid var(--accent-border)}.bot-help-level[data-help=serious] .bot-help-name:before{background:var(--status-negative)}.bot-help-name{font-weight:var(--weight-bold);font-size:var(--text-sm)}.bot-help-detail{font-size:var(--text-xs);color:var(--fg-muted)}.bot-play{padding:var(--space-3);font-size:var(--text-md);box-shadow:0 calc(-1 * var(--space-4)) 0 var(--surface-raised);justify-content:center;position:sticky;bottom:0}.bot-game-top{margin-bottom:var(--space-4)}.bot-game-layout{gap:var(--space-6);grid-template-columns:minmax(0,1fr) 20rem;align-items:start;display:grid}.bot-game-board{gap:var(--space-2);justify-self:center;width:min(100%,max(18rem,100dvh - 19rem));display:grid}.bot-player{align-items:center;gap:var(--space-2);display:flex}.bot-player-who{flex:1;min-width:0;display:grid}.bot-player-name{font-weight:var(--weight-bold)}.bot-voice{min-height:2.6em;font-size:var(--text-xs);line-height:1.3;display:block}.bot-bubble{max-width:100%;padding:1px var(--space-2);background:var(--surface-raised);border:var(--rule) solid var(--surface-dark);box-shadow:3px 3px 0 var(--accent);-webkit-line-clamp:2;line-clamp:2;width:fit-content;animation:bot-voice 8s var(--ease-out) forwards;-webkit-box-orient:vertical;margin-top:2px;display:-webkit-box;overflow:hidden}@keyframes bot-voice{0%{opacity:0;transform:translateY(3px)}5%,85%{opacity:1;transform:none}to{opacity:0}}.bot-player-rating{font-family:var(--font-mono);font-weight:var(--weight-regular);color:var(--fg-muted)}.bot-clock{padding:var(--space-1) var(--space-3);font-family:var(--font-mono);font-size:var(--text-lg);font-weight:var(--weight-bold);color:var(--fg-on-dark);background:var(--surface-dark)}.bot-player[data-side=you] .bot-clock{color:var(--fg-default);background:var(--surface-raised);border:var(--rule) solid var(--surface-dark)}.bot-game-panel{gap:var(--space-3);padding:var(--space-4);background:var(--surface-raised);border:var(--rule-strong) solid var(--surface-dark);box-shadow:6px 6px 0 var(--accent);display:grid}.bot-game-panel-head{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.bot-help-badge{padding:2px var(--space-2);font-size:var(--text-xs);font-weight:var(--weight-bold);text-transform:uppercase;letter-spacing:.06em;color:var(--fg-on-dark);background:var(--status-positive)}.bot-help-badge[data-help=hints]{color:var(--fg-on-accent);background:var(--accent)}.bot-help-badge[data-help=serious]{background:var(--status-negative)}.bot-game-untimed{font-size:var(--text-xs);color:var(--fg-muted)}.bot-panel-part{gap:var(--space-3);display:grid}.bot-game-heading{padding-top:var(--space-2);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--fg-muted);border-top:var(--rule) solid var(--border-default)}.bot-game-empty{font-size:var(--text-sm);color:var(--fg-subtle);margin:0}.bot-game-help{gap:var(--space-2);display:grid}.bot-help-button{justify-content:flex-start}.bot-help-count{font-size:var(--text-xs);color:var(--fg-muted);margin-left:auto}.bot-game-actions{gap:var(--space-2);padding-top:var(--space-3);border-top:var(--rule) solid var(--border-default);flex-wrap:wrap;display:flex}@media (width<=52rem){.bot-setup{width:100%;max-height:85dvh;box-shadow:0 -8px 0 var(--accent);animation-name:bot-sheet-in;position:fixed;inset:auto 0 0}.bot-game-layout{gap:var(--space-4);grid-template-columns:minmax(0,1fr) 16rem}}@media (width<=40rem){.bot-game-layout{grid-template-columns:1fr}.bot-game-board{width:min(100%,max(18rem,100dvh - 13rem))}.bot-game-top .bot-game-title{font-size:var(--text-md);flex:100%;order:3}.bot-game-panel{padding:var(--space-3);box-shadow:4px 4px 0 var(--accent);flex-direction:column;display:flex}.bot-panel-part[data-part=help]{order:1}.bot-game-actions{order:2}.bot-panel-part[data-part=moves]{order:3}.bot-panel-part[data-part=chat]{order:4}.bot-game-help{grid-template-columns:repeat(auto-fit,minmax(6.5rem,1fr))}.bot-game-help .bot-hint,.bot-game-help .bot-game-note{grid-column:1/-1}.bot-help-button{padding:var(--space-2);font-size:var(--text-xs);justify-content:center}.bot-help-count{margin-left:0}.bot-moves{max-height:8rem}}@media (width<=30rem){.bot-club,.bot-game{padding:var(--space-3) var(--space-3) var(--space-6)}.bot-game-tools .btn{padding:var(--space-1) var(--space-2)}}@media (prefers-reduced-motion:reduce){.bot-setup,.bot-card,.club-plaque{transition:none;animation:none}}.bot-game-loading{color:var(--fg-muted)}.bot-game-top{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.bot-game-title{font-size:var(--text-lg);flex:1}.bot-game-tools{gap:var(--space-2);display:flex}.bot-game-tools .btn[aria-pressed=false]{color:var(--fg-muted)}.bot-game[data-fullscreen=true]{background-color:var(--surface-app);background-image:var(--grit);max-width:none;height:100dvh;overflow-y:auto}.bot-game[data-fullscreen=true] .bot-game-board{width:min(100%,max(18rem,100dvh - 9rem))}.bot-board-row{gap:var(--space-2);display:flex}.bot-board-wrap{flex:1;min-width:0;position:relative}.bot-player{position:relative}.bot-thinking{margin-left:var(--space-2);vertical-align:middle;gap:3px;display:inline-flex}.bot-thinking:before,.bot-thinking:after{content:"";background:var(--fg-muted);width:5px;height:5px;animation:1s infinite bot-dot}.bot-thinking:after{animation-delay:.3s}@keyframes bot-dot{50%{opacity:.2}}.bot-clock[data-running=true]{color:var(--fg-on-accent);background:var(--accent);border-color:var(--accent-border)}.bot-clock[data-low=true][data-running=true]{color:var(--fg-on-dark);background:var(--status-negative)}.bot-mark-badge{aspect-ratio:1;width:100%;font-family:var(--font-mono);font-size:11cqi;font-weight:var(--weight-bold);color:var(--fg-on-dark);background:var(--status-positive);border:2px solid var(--c-white);border-radius:var(--radius-full);place-items:center;display:grid}.bot-mark-badge[data-mark=inaccuracy]{color:var(--fg-on-accent);background:var(--accent)}.bot-mark-badge[data-mark=mistake]{background:var(--c-orange-600)}.bot-mark-badge[data-mark=blunder]{background:var(--status-negative)}.bot-board-card{z-index:5;gap:var(--space-2);width:min(22rem,88%);padding:var(--space-4);text-align:center;background:var(--surface-raised);border:var(--rule-strong) solid var(--surface-dark);box-shadow:8px 8px 0 var(--accent);display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.bot-board-card h2{font-size:var(--text-xl)}.bot-board-card p{font-size:var(--text-sm);margin:0}.bot-board-card-actions{justify-content:center;gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.bot-end-reason,.bot-end-moment{color:var(--fg-muted)}.bot-end-accuracy strong{font-family:var(--font-mono);font-size:var(--text-lg)}.bot-end-next{font-size:var(--text-sm);font-weight:var(--weight-bold);color:var(--fg-default)}.bot-moves{max-height:14rem;font-family:var(--font-mono);font-size:var(--text-sm);gap:2px;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.bot-moves li{grid-template-columns:2.5rem 1fr 1fr;display:grid}.bot-move-number{color:var(--fg-subtle)}.bot-move-glyph{font-weight:var(--weight-bold);margin-left:2px}.bot-move[data-mark=best] .bot-move-glyph{color:var(--status-positive)}.bot-move[data-mark=inaccuracy] .bot-move-glyph{color:var(--accent-text)}.bot-move[data-mark=mistake] .bot-move-glyph{color:var(--c-orange-600)}.bot-move[data-mark=blunder] .bot-move-glyph{color:var(--status-negative)}.bot-hint{gap:var(--space-2);padding:var(--space-2) var(--space-3);font-size:var(--text-sm);background:var(--accent-faint);border:var(--rule) solid var(--border-strong);margin:0;display:flex}.bot-hint svg{flex:none;margin-top:2px}.bot-help-button[aria-pressed=true]{background:var(--accent);border-color:var(--accent-border);color:var(--fg-on-accent)}.bot-game-note{font-size:var(--text-xs);color:var(--fg-muted);margin:0}.bot-chat-log{gap:var(--space-1);max-height:9rem;font-size:var(--text-xs);color:var(--fg-muted);margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.bot-chat-log li:last-child{color:var(--fg-default)}.bot-confirm{align-items:center;gap:var(--space-2);font-size:var(--text-sm);flex-wrap:wrap;display:flex}.bot-resume,.bot-deleted{justify-content:space-between;align-items:center;gap:var(--space-3);margin:0 0 var(--space-4);padding:var(--space-2) var(--space-3);font-size:var(--text-sm);background:var(--surface-raised);border:var(--rule-strong) solid var(--surface-dark);flex-wrap:wrap;display:flex}.bot-card-record{align-items:center;gap:var(--space-1);font-family:var(--font-mono);font-size:var(--text-xs);display:inline-flex}.bot-card-beaten{width:1rem;height:1rem;color:var(--fg-on-dark);background:var(--status-positive);place-items:center;display:inline-grid}.bot-games{margin:0 0 var(--space-6)}.bot-games-title{margin-bottom:var(--space-3);font-size:var(--text-md)}.bot-games-list{border-top:var(--rule) solid var(--border-strong);margin:0;padding:0;list-style:none;display:grid}.bot-games-row{align-items:center;gap:var(--space-3);padding:var(--space-2) 0;border-bottom:var(--rule) solid var(--border-default);flex-wrap:wrap;display:flex}.bot-games-who{flex:1;min-width:10rem;display:grid}.bot-games-name{font-weight:var(--weight-bold)}.bot-games-meta{font-size:var(--text-xs);color:var(--fg-muted)}.bot-games-outcome{min-width:5rem;font-family:var(--font-mono);font-size:var(--text-sm);font-weight:var(--weight-bold)}.bot-games-row[data-outcome=player] .bot-games-outcome{color:var(--status-positive)}.bot-games-row[data-outcome=bot] .bot-games-outcome{color:var(--status-negative)}.bot-games-actions{gap:var(--space-2);display:flex}.legal{max-width:var(--prose-max-width,46rem);padding:var(--space-6) var(--space-4) var(--space-12);margin:0 auto}.legal-title{font-size:var(--text-xl);margin-bottom:var(--space-4)}.legal h2{margin:var(--space-8) 0 var(--space-2);font-size:var(--text-lg)}.legal h3{margin:var(--space-4) 0 var(--space-2);font-size:var(--text-md)}.legal p,.legal-list{font-size:var(--text-sm);line-height:var(--leading-normal)}.legal-lede{color:var(--fg-muted)}.legal-list{gap:var(--space-2);padding-left:var(--space-4);display:grid}.legal-links{gap:var(--space-1) var(--space-3);margin-top:var(--space-1);font-size:var(--text-xs);flex-wrap:wrap;display:flex}.legal a,.landing-footer-legal{color:var(--fg-default)}.landing-footer-legal{font-size:var(--text-sm)}.puzzle-lessons-consent{align-items:center;gap:var(--space-2) var(--space-3);padding:var(--space-3);font-size:var(--text-sm);background:var(--surface-raised);border:var(--rule) solid var(--border-strong);flex-wrap:wrap;display:flex}.puzzle-lessons-consent p{flex:18rem;margin:0}.puzzle-lessons-consent a{font-size:var(--text-xs);color:var(--fg-muted)}.route-error{justify-items:start;gap:var(--space-3);max-width:34rem;margin:var(--space-12) auto;padding:var(--space-4);display:grid}.route-error-title{font-size:var(--text-xl)}.route-error p{color:var(--fg-muted);margin:0}.topbar-more{display:none;position:relative}.topbar-menu{z-index:20;top:calc(100% + var(--space-1));min-width:12rem;padding:var(--space-1);background:var(--surface-raised);border:var(--rule-strong) solid var(--surface-dark);box-shadow:4px 4px 0 var(--accent);display:grid;position:absolute;left:0}.topbar-menu button{padding:var(--space-2) var(--space-3);font:inherit;font-size:var(--text-sm);text-align:left;color:var(--fg-default);cursor:pointer;background:0 0;border:0}.topbar-menu button:hover:not(:disabled),.topbar-menu button:focus-visible{background:var(--surface-hover)}.topbar-menu button:disabled{color:var(--fg-subtle);cursor:default}@media (width<=52rem){.topbar-wide{display:none}.topbar-more{display:block}.topbar-menu{left:auto;right:0}}.settings-advanced{margin:var(--space-3) 0}.settings-advanced summary{font-size:var(--text-sm);cursor:pointer}.settings-advanced[open] summary{margin-bottom:var(--space-3)}a.game-row{text-decoration:none}@media (width<=52rem){.topbar-actions{overflow:visible}.puzzle-side .puzzle-actions{padding:var(--space-2) 0;order:0;margin:0;position:static}}@media (width<=40rem){.game-row{grid-template-columns:4rem minmax(0,1fr) auto;grid-template-areas:"outcome players players""outcome meta date";row-gap:2px}.game-row .game-outcome{grid-area:outcome}.game-row .game-players{grid-area:players}.game-row .game-meta{grid-area:meta}.game-row .game-date{grid-area:date}.game-row .game-accuracy{display:none}.bot-game-tools .btn-label{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}@media (orientation:landscape) and (height<=32rem){.bot-game{padding-top:var(--space-2)}.bot-game-top{margin-bottom:var(--space-2)}.bot-game-top .bot-game-title{display:none}.bot-game-layout{gap:var(--space-3);grid-template-columns:auto minmax(14rem,1fr)}.bot-game-board{gap:var(--space-1);width:max(12rem,100dvh - 10.5rem)}.bot-game-board .bot-portrait-sm{width:32px;height:32px}.bot-game-board .bot-clock{font-size:var(--text-md);padding-block:2px}.bot-voice{min-height:0}.bot-game-panel{max-height:calc(100dvh - 5rem);overflow-y:auto}}@media (width<=48rem){.bot-roster{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=30rem){.bot-roster{grid-template-columns:minmax(0,1fr)}}.review-guide{margin-top:var(--space-3);font-size:var(--text-sm)}.review-guide summary{font-weight:var(--weight-semibold);cursor:pointer}.review-guide p{margin:var(--space-2) 0 0;color:var(--fg-muted)}.review-guide-badges{gap:var(--space-1) var(--space-3);margin:var(--space-2) 0 0;font-size:var(--text-xs);flex-wrap:wrap;padding:0;list-style:none;display:flex}.review-guide-badges li{align-items:center;gap:var(--space-1);display:inline-flex}.route-loading{min-height:50vh}.route-progress{z-index:1000;height:3px;animation:1ms .15s backwards route-appear;position:fixed;inset:0 0 auto;overflow:hidden}.route-progress:before{content:"";background:var(--accent);width:40%;animation:route-progress 1.1s var(--ease-out) infinite;position:absolute;inset:0 auto 0 0}.route-loading-mark{z-index:999;pointer-events:none;place-items:center;animation:1ms .15s backwards route-appear,1.4s ease-in-out .15s infinite route-breathe;display:grid;position:fixed;inset:0}@keyframes route-appear{0%{opacity:0}}@keyframes route-progress{0%{transform:translate(-100%)}to{transform:translate(250%)}}@keyframes route-breathe{0%,to{opacity:.35;transform:scale(.94)}50%{opacity:1;transform:scale(1)}}main#main{animation:page-in .22s var(--ease-out)}@keyframes page-in{0%{opacity:0}}@media (prefers-reduced-motion:reduce){main#main,.route-loading-mark,.route-progress:before{animation:none}}
