*{box-sizing:border-box}button,input{touch-action:manipulation}body{-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none;color:#e8e8e5;-webkit-font-smoothing:antialiased;background:#262522;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;overflow-x:hidden}.game-over{z-index:22;pointer-events:none;position:absolute;inset:0}.result-banner{box-sizing:border-box;color:#282b24;pointer-events:auto;text-align:center;background:#f4f1e7;border:1px solid #b8bda7;border-radius:12px;flex-direction:column;align-items:center;gap:8px;width:min(290px,82%);padding:20px 16px 16px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 8px 28px #0004}.result-banner strong{font-size:clamp(22px,5cqw,32px);line-height:1.1}.result-emblem{color:#737765}.won .result-emblem{color:#92701f}.result-detail{text-transform:capitalize;font-size:14px}.result-actions{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:8px;display:flex}.result-actions button{color:#fff;background:#3d5934}.result-actions button:first-child{color:#282b24;background:#e1e3d7}.result-close{color:#555;background:0 0;padding:5px;display:flex;position:absolute;top:5px;right:5px}.result-close:hover:not(:disabled){background:#e1e3d7}.result-king{aspect-ratio:1;color:#fff;background:#686c62;border:1px solid #fff;border-radius:50%;place-items:center;width:5%;display:grid;position:absolute;box-shadow:0 2px 5px #0005}.result-king.winner{color:#3b321e;background:#e9be55}.result-king svg{width:65%;height:65%}.win-confetti{position:absolute;inset:0;overflow:hidden}.win-confetti i{top:-5%;left:var(--x);background:var(--color);width:7px;height:12px;animation:win-fall 1.8s var(--delay) ease-in both;position:absolute}@keyframes win-fall{0%{opacity:1;transform:translate(0)rotate(0)}to{transform:translate(var(--drift), 620px) rotate(560deg);opacity:0}}@media (prefers-reduced-motion:reduce){.win-confetti{display:none}}.move-concepts{flex-wrap:wrap;align-items:center;gap:6px;min-width:0;font-size:.78rem;display:flex}.concept-move{color:#adb5a3;font-variant-numeric:tabular-nums}.concept-chip{color:#def0cc;text-align:left;background:#394532;padding:7px 9px;font-size:.78rem;line-height:1.35}.concept-more{color:#bdc6b5;background:0 0;padding:7px;font-size:.78rem}.glossary-dialog{box-sizing:border-box;color:#20251e;background:#eeeede;border:1px solid #777c70;border-radius:10px;width:min(600px,94vw);max-height:86dvh;padding:18px;font:.92rem/1.5 system-ui,sans-serif;overflow-y:auto}.glossary-dialog::backdrop{background:#0005}.glossary-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.glossary-head strong{font-size:1.1rem}.glossary-dialog button{min-height:40px}.glossary-search{flex-direction:column;gap:4px;margin-top:16px;display:flex}.glossary-search input{min-width:0;font:inherit;color:#20251e;background:#fffef7;border:1px solid #8f9787;border-radius:6px;padding:9px}.glossary-filters{flex-wrap:wrap;gap:5px;margin:12px 0;display:flex}.glossary-filters button{padding:6px 10px;font-size:.78rem}.glossary-filters button[aria-pressed=true]{color:#fff;background:#3e622d}.glossary-note,.glossary-aliases,.glossary-count{color:#59624f;font-size:.8rem}.glossary-list{flex-direction:column;gap:5px;display:flex}.glossary-list button{text-align:left;color:#20251e;background:#e0e4d4;padding:10px}.glossary-list button:hover:not(:disabled){background:#d1dbc0}.glossary-list span{color:#535e49;margin-top:3px;font-size:.8rem;display:block}.glossary-article h2{margin:12px 0;font-size:1.25rem}.glossary-back{margin-top:12px}.concept-evidence{background:#dfe8d3;border-left:3px solid #6f8d4f;padding:2px 12px}.glossary-dialog a{color:#315b24}.glossary-board{width:min(320px,100%);margin:14px auto}.glossary-board .board-wrap{width:100%}.move-explanation .concept-chip{color:#243f17;background:#dce7cf}.move-explanation .concept-more{color:#3b5530}.concept-chip.concept-positive{color:#dbf0cf;background:#30482e}.concept-chip.concept-negative{color:#ffd5cc;background:#592f2b}.concept-chip.concept-neutral{color:#deded5;background:#3d3e39}.concept-chip.concept-strong-positive{color:#edffe8;background:#225c35}.concept-chip.concept-strong-negative{color:#fff0eb;background:#862f2e}.concept-chip>span{text-align:center;min-width:.65em;font-weight:800;display:inline-block}.move-explanation .concept-chip.concept-positive{color:#243f17;background:#dce7cf}.move-explanation .concept-chip.concept-negative{color:#802c25;background:#f0d4cc}.move-explanation .concept-chip.concept-strong-positive{color:#174315;background:#b8dda6}.move-explanation .concept-chip.concept-strong-negative{color:#701c18;background:#ebada3}.move-explanation .concept-chip.concept-neutral{color:#3c4237;background:#dedfd7}@media (width<=640px){.concept-chip,.concept-more{min-height:36px}}.concept-line{font-variant-numeric:tabular-nums;margin-top:6px;display:block}.concept-line em{font-style:normal;display:block}.concept-chip.concept-unknown{color:#deded5;background:#3d3e39}.move-explanation .concept-chip.concept-unknown{color:#3c4237;background:#dedfd7}.concept-link{margin:4px 0;display:block}.concept-continuations{margin-top:12px}.recent-moves{flex-direction:column;flex:0 auto;gap:4px;min-height:0;display:flex;overflow-y:auto}.recent-move{background:#2b2b28;border-radius:6px;flex-shrink:0;min-width:0;padding:6px 8px}.recent-move-heading{flex-wrap:nowrap;align-items:center;gap:6px;min-width:0;min-height:26px;margin-bottom:3px;font-size:.8rem;display:flex}.recent-move-heading strong{white-space:nowrap;font-variant-numeric:tabular-nums;flex-shrink:0;font-size:.85rem}.recent-move-grade{white-space:nowrap;flex-shrink:0;font-size:.72rem}.recent-move .opening-info,.recent-opening-name{color:#ddd5ac;text-align:left;text-overflow:ellipsis;white-space:nowrap;flex:1 1 0;min-width:0;margin:0;padding:0;font-size:.75rem;line-height:1.4;display:block;overflow:hidden}.recent-move .opening-info:hover:not(:disabled){color:#f4ecc7;background:#3a3a33}.recent-stats-toggle{font-variant-numeric:tabular-nums;color:#b9beb0;white-space:nowrap;background:0 0;flex-shrink:0;min-height:26px;margin-left:auto;padding:2px 0 2px 4px;font-size:.72rem}.recent-move .move-concepts{gap:3px 4px}.recent-move .concept-chip,.recent-move .concept-more{border-radius:4px;min-height:26px;padding:3px 6px;font-size:.75rem}.recent-book-stats{color:#b9beb0;overflow-wrap:anywhere;margin-top:5px;font-size:.72rem;line-height:1.45}.recent-book-stats p{margin:2px 0}.recent-book-stats small{color:#929889;font-size:.68rem}.recent-book-retry{margin-top:6px;font-size:.75rem}.move-explorer{width:min(858px,92vw);margin:0 auto;font-size:.82rem}.explorer-accessible-moves{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.explorer-error{text-align:center;color:#bbb}.move-explanation{box-sizing:border-box;color:#e8e8dd;background:#30342b;border-radius:8px;width:min(560px,100%);margin:0 auto 16px;padding:10px 12px;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:1rem;line-height:1.45}.move-explanation p{margin:0 0 8px}.explanation-actions{flex-wrap:wrap;gap:8px;display:flex}.move-explanation{padding-top:14px;padding-right:34px;position:relative}.explanation-close{background:0 0;padding:4px 8px;font-size:24px;line-height:1;position:absolute;top:2px;right:4px}.explanation-compare{gap:8px;margin-bottom:10px;display:flex}.explanation-compare button[aria-pressed=true]{color:#fff;background:#61764b}.comparison-note{color:#cccfc3;font-family:inherit;font-size:.9rem}.explanation-evidence{color:#b7bcaf;margin-top:12px;font-family:system-ui,sans-serif;font-size:.78rem}.explanation-evidence summary{cursor:pointer}.explanation-evidence p{margin-top:8px}.explanation-line{margin:10px 0}.explanation-line-controls{align-items:center;gap:8px;margin-bottom:6px;display:flex}.explanation-line-controls span{text-align:center;flex:1;font:.8rem system-ui,sans-serif}.explanation-line-controls button{min-width:44px;min-height:44px}.hint-explain-target{pointer-events:auto;cursor:pointer}.hint-explain-target:focus-visible{stroke:#255f36;stroke-width:.5px;outline:none}.coverage-panel{color:#d5d7cf;width:100%;margin:0;font-size:.82rem}.coverage-key{border-radius:2px;flex-shrink:0;width:10px;height:10px;display:inline-block}.coverage-key.w{background:#57a7eb}.coverage-key.b{background:#f08e5e}.coverage-sources{background:#30342b;border-radius:6px;margin:8px 0;padding:8px 12px}.coverage-source-row{flex-wrap:wrap;align-items:center;gap:8px;min-height:30px;display:flex}.coverage-piece{align-items:center;gap:2px;display:inline-flex}.coverage-piece img{background:#eeeede;border-radius:3px;width:24px;height:24px}.coverage-target{pointer-events:auto;cursor:pointer;outline:none}.coverage-target:focus-visible{stroke:#fff;stroke-width:.8px;outline:none}.hint-settings-dialog{box-sizing:border-box;color:#e8e8e5;background:#33332f;border:1px solid #66665f;border-radius:10px;width:min(420px,92vw);max-height:86dvh;padding:18px;overflow-y:auto}.hint-settings-dialog::backdrop{background:#0004}.hint-options{grid-template-columns:1fr;gap:4px;padding:12px 0;display:grid}.hint-options .flat-toggle{padding:6px 9px}.hint-options .flat-toggle small{color:#c5c9be;margin-top:2px;font-size:.72rem;font-weight:400;line-height:1.25;display:block}.hint-help{color:#bdc1b5;margin:14px 0 0;font-size:.8rem;line-height:1.5}.app{--eval-space:0px;--board-size:min(calc(100dvh - 234px), 600px, calc(100vw - 352px - var(--eval-space)), calc(92vw - var(--eval-space)));--move-row-height:28px;flex-direction:column;height:100dvh;min-height:0;display:flex;overflow:hidden}.main{flex-wrap:nowrap;flex:auto;justify-content:center;align-items:flex-start;gap:18px;min-height:0;padding:28px 18px 18px;display:flex;overflow:hidden}.goal-progress{color:#d7dbd0;flex-shrink:0;order:-3;width:min(858px,92vw);margin:16px auto 0;font-size:.85rem}.goal-progress>div{justify-content:space-between;align-items:center;gap:16px;display:flex}.goal-progress strong{color:#c3df9f;font-variant-numeric:tabular-nums}.goal-progress progress{appearance:none;background:#45483e;border:0;border-radius:2px;width:100%;height:4px;margin-top:8px;display:block;overflow:hidden}.goal-progress progress::-webkit-progress-bar{background:#45483e}.goal-progress progress::-webkit-progress-value{background:#a0c47b}.goal-progress progress::-moz-progress-bar{background:#a0c47b}.board-area{flex-shrink:0;gap:10px;display:flex}.board-col{position:relative}.board-wrap{width:var(--board-size)}@media (width<=640px){.app{--board-size:min(max(80px, calc(100dvh - 260px)), calc(92vw - var(--eval-space)))}}.board-face{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;position:relative;container-type:inline-size}.eval-bar{background:#403d39;border-radius:4px;flex-direction:column-reverse;align-self:stretch;width:26px;display:flex;position:relative;overflow:hidden}.eval-bar.flipped{flex-direction:column}.eval-white{background:#f0f0f0;transition:height .4s}.eval-num{text-align:center;color:#999;mix-blend-mode:difference;font-size:.55rem;position:absolute;bottom:4px;left:0;right:0}.controls{justify-content:center;align-items:center;gap:8px;margin-top:0;display:flex}.controls button,.game-buttons button{align-items:center;gap:5px;display:inline-flex}.grow{flex:1}button{color:#e8e8e5;cursor:pointer;background:#454542;border:none;border-radius:6px;padding:7px 12px;font-size:.85rem}button:hover:not(:disabled){background:#55554f}button:disabled{opacity:.45;cursor:default}.ann-labels{z-index:5;pointer-events:none;flex-direction:column;justify-content:center;gap:2px;width:12.5%;height:12.5%;padding:2px;display:flex;position:absolute;overflow:hidden}.ann-label{text-align:center;color:#39432d;text-shadow:0 0 2px #ebecd0,0 0 3px #ebecd0;flex-direction:column;min-height:0;font-size:clamp(7px,1.7cqw,10px);font-weight:700;line-height:1.25;display:flex;overflow:hidden}.ann-label span{-webkit-line-clamp:2;overflow-wrap:anywhere;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.ann-label:only-child span{-webkit-line-clamp:3}.ann-label.bright{color:#17210e}.board-group{flex-direction:column;gap:8px;min-height:0;max-height:100%;display:flex}.move-details{width:min(300px,92vw);min-height:0;max-height:100%;overflow-y:auto}.move-details .recent-moves{overflow:visible}.move-details .move-explorer{width:100%}.side{flex-direction:column;gap:10px;width:100%;min-height:0;max-height:none;display:flex;overflow:hidden}.side>.controls{flex-shrink:0}.movelist{background:#2b2b28;border-radius:8px;flex:0 auto;min-height:0;padding:8px;font-size:.88rem;overflow-y:auto}.movelist .empty{color:#8a8a85;padding:6px}.move-row{height:var(--move-row-height);grid-template-columns:34px 1fr 1fr;align-items:center;gap:4px;display:grid}.move-no{color:#8a8a85;text-align:right;padding-right:4px}.move-cell{text-align:left;color:#e8e8e5;background:0 0;border-radius:4px;justify-content:space-between;padding:4px 8px;line-height:20px;display:flex}@media (width<=640px){.side{max-height:none}.movelist{max-height:calc(5 * var(--move-row-height) + 16px)}}.move-cell.current{background:#454542}.move-cell .glyph{font-weight:700}.move-cell.v-blunder .glyph{color:#e0433d}.move-cell.v-mistake .glyph{color:#e8973d}.move-cell.v-inaccuracy .glyph{color:#d9b83a}.move-cell.v-best .glyph,.move-cell.v-excellent .glyph{color:#7fb347}.move-cell.v-book .glyph{color:#b3a06b}.card{background:#33332f;border-radius:8px;padding:12px 14px;font-size:.92rem;line-height:1.45}.setup-pop{color:#e8e8e5;background:#33332f;border:1px solid #66665f;border-radius:10px;width:min(420px,92vw);max-height:86dvh;margin:auto;padding:18px;overflow-y:auto}.setup-pop[open]{flex-direction:column;gap:14px;display:flex}.setup-pop::backdrop{background:#0004}.option-row{border:0;min-width:0;margin:0;padding:0}.option-row legend{color:#cccfc5;margin-bottom:7px;padding:0;font-size:.85rem}.option-buttons{grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:6px;display:grid}.player-options .option-buttons{grid-template-columns:1fr 1fr;grid-auto-flow:row}.option-buttons label{cursor:pointer;min-width:0;position:relative}.option-buttons input{opacity:0;width:1px;height:1px;position:absolute}.option-buttons span{text-align:center;border:1px solid #66665f;border-radius:6px;justify-content:center;align-items:center;height:100%;min-height:44px;padding:7px;font-size:.83rem;display:flex}.option-buttons input:checked+span{color:#eff5e7;background:#465639;border-color:#a0bd7e}.option-buttons input:focus-visible+span{outline-offset:2px;outline:2px solid #e4f1d1}.flat-toggle{cursor:pointer;border:1px solid #66665f;border-radius:6px;align-items:center;gap:8px;min-height:44px;padding:9px;font-size:.85rem;display:flex}.flat-toggle:has(input:checked){background:#465639;border-color:#a0bd7e}.flat-toggle input{accent-color:#9fbb78;margin:0}.settings-actions{flex-wrap:wrap;gap:8px;display:flex}.set-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.elo-label{flex-direction:column;gap:6px;font-size:.9rem;display:flex}.game-buttons{flex-wrap:wrap;flex-shrink:0;justify-content:center;gap:8px;margin-top:auto;padding:14px 18px;display:flex}.game-buttons button{color:#aaa;background:0 0;justify-content:center;min-width:44px;min-height:44px}.game-buttons button[aria-pressed=true],.game-buttons button[aria-expanded=true]{color:#d2e9bb;background:#3c4633}.opening-info{color:#20221e;pointer-events:auto;background:0 0;justify-content:center;align-items:center;min-width:24px;min-height:24px;padding:3px;display:inline-flex}.opening-info:hover:not(:disabled){background:#eeeede}.opening-info:focus-visible{outline:2px solid #20221e}.move-explanation .opening-info{color:inherit}.opening-document{box-sizing:border-box;color:#20221e;background:#eeeede;border:1px solid #66665f;border-radius:10px;width:min(560px,92vw);max-height:80dvh;padding:20px;line-height:1.65;overflow-y:auto}.opening-document::backdrop{background:#0005}.opening-document-head{align-items:flex-start;gap:16px;display:flex}.opening-document h2{flex:1;margin:0;font-size:1.15rem;line-height:1.4}.opening-document-text{white-space:pre-line}.opening-document-source{font-size:.85rem}.opening-document a{color:#255f36}.ann-label{color:#20221e;text-shadow:none;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.ann-labels.occupied{background:#172019c2}.ann-labels.occupied .ann-label,.ann-labels.occupied .opening-info,[data-occupied] .opening-info{color:#fff}.ann-labels.occupied .opening-info:hover,[data-occupied] .opening-info:hover{background:#394b3d}.app.has-evaluation{--eval-space:36px}.mobile-board-setting{display:none}.chess-piece-dragging [data-coverage-map],.chess-piece-dragging [data-coverage-map] *,.chess-piece-dragging [data-move-explorer-drawing],.chess-piece-dragging [data-move-explorer-drawing] *,.chess-piece-dragging .ann-labels,.chess-piece-dragging .ann-labels *{pointer-events:none!important}@media (width<=640px){.mobile-board-setting{display:block}.main{flex-direction:column;justify-content:flex-start;align-items:center;gap:8px;padding:12px 0 4px}.side{flex:0 auto;gap:6px;width:100%}.board-group{width:92vw;max-height:calc(var(--board-size) + 104px);flex-shrink:0}.board-area{justify-content:center}.move-details{flex:1 1 0;width:92vw}.app[data-mobile-board-position=bottom] .move-details{order:-1}.game-buttons{padding-top:4px;padding-bottom:max(8px, env(safe-area-inset-bottom));margin-top:0}.app[data-mobile-board-position=bottom] .game-buttons{order:-2;padding-top:16px}.app[data-mobile-board-position=bottom] .main{padding-inline:0;padding-bottom:max(16px, env(safe-area-inset-bottom));flex-direction:column;order:2;justify-content:flex-end;align-items:center;margin-top:auto}}
