*{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-explorer{width:min(858px,92vw);margin:0 auto;font-size:.82rem}.explorer-toggles{border-top:1px solid #454542;flex-wrap:wrap;gap:10px 18px;padding:12px 0;display:flex}.explorer-toggles label{cursor:pointer;align-items:center;gap:5px;display:inline-flex}.explorer-toggles input{accent-color:#9fbb78}.explorer-divider{border-left:1px solid #555}.explorer-accessible-moves{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.explorer-note{color:#a6a6a0;max-width:780px;font-size:.75rem;line-height:1.55}.game-buttons button[aria-expanded=true]{color:#d2e9bb;background:#3c4633}@media (width<=640px){.explorer-divider{display: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:80dvh;padding:18px;overflow-y:auto}.hint-settings-dialog::backdrop{background:#0004}.hint-settings-dialog .explorer-toggles{border-top:0;grid-template-columns:1fr 1fr;gap:16px;padding:20px 0;display:grid}.hint-settings-dialog .explorer-divider{display:none}.hint-settings-dialog .explorer-toggles label{min-height:28px}.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:Bradley Hand,Segoe Print,cursive;font-size:1rem;line-height:1.45}.move-explanation p{margin:0 0 8px}.explanation-actions{flex-wrap:wrap;gap:8px;display:flex}.game-buttons button[aria-pressed=true]{color:#d2e9bb;background:#3c4633}.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}.app{--eval-space:0px;--board-size:min(76vh, 600px, calc(100vw - 352px - var(--eval-space)), calc(92vw - var(--eval-space)));--move-row-height:28px;flex-direction:column;min-height:100vh;display:flex}.main{flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:18px;padding:28px 18px 18px;display:flex}.board-area{gap:10px;display:flex}.board-col{position:relative}.board-wrap{width:var(--board-size)}@media (width<=640px){.app{--board-size:min(76vh, 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}.side{width:min(240px,92vw);max-height:var(--board-size);flex-direction:column;gap:10px;min-height:0;display:flex}.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{z-index:30;border:1px solid #454542;flex-direction:column;gap:14px;width:min(420px,92vw);max-height:80vh;display:flex;position:fixed;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%);box-shadow:0 12px 40px #0000008c}.setup-backdrop{z-index:29;background:#00000040;position:fixed;inset:0}.set-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.elo-label{flex-direction:column;gap:6px;font-size:.9rem;display:flex}.display-settings{grid-template-columns:1fr 1fr;gap:6px 12px;font-size:.9rem;display:grid}.display-setting{align-items:center;gap:8px;display:flex}.setting{flex-direction:column;gap:6px;display:flex}.setting select{color:#e8e8e5;width:100%;font:inherit;background:#262522;border:1px solid #66665f;border-radius:6px;padding:9px}.setting-note{color:#bdbdb8;margin:0;font-size:.8rem}.game-buttons{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:auto;padding:14px 18px;display:flex}.game-buttons button{color:#aaa;background:0 0}.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}[data-move-explorer-drawing] .opening-info{border-radius:.3px;width:3px;min-width:0;height:3px;min-height:0;padding:.2px;display:flex}[data-move-explorer-drawing] .opening-info svg{width:2.6px;height:2.6px}.opening-label-entry{align-items:center;min-height:0;display:flex}.opening-label-entry>span{flex:1}.opening-label-entry .opening-info{flex-shrink:0}.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:Bradley Hand,Segoe Print,cursive}.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}[data-move-explorer-drawing] .opening-info{position:relative}[data-move-explorer-drawing] .opening-info:after{content:"";position:absolute;inset:-1.5px}.app.has-evaluation{--eval-space:36px}@media (width<=640px){.main{gap:12px;padding-top:16px;padding-bottom:8px}.side{width:92vw}.game-buttons{margin-top:0;padding-top:8px}}
