@font-face{font-family:Gruezi;src:url(/fonts/RL-Gruezi-C-Regular.otf) format("opentype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Gruezi;src:url(/fonts/RL-Gruezi-C-Bold.otf) format("opentype");font-weight:700;font-style:normal;font-display:swap}:root{--bg:#f1eee8;--bg2:#ffffff;--bg3:#ece7df;--border:rgba(22,20,15,0.14);--border2:rgba(22,20,15,0.3);--contour:#16140f;--txt:#16140f;--txt-dim:#6e6657;--txt-faint:#a89e8e;--green:#2e8b57;--green-soft:rgba(124,227,160,0.22);--yellow:#9a7a1f;--red:#f44e48;--red-soft:rgba(244,78,72,0.12);--blue:#16140f;--cyan:#5b6e63;--sq-l:#f8f7f5;--sq-d:#8fae86;--lm-l:#e8e08a;--lm-d:#d2c45f;--coral:#f44e48;--mint:#7ce3a0;--lemon:#e8e373;--font:"Gruezi","Helvetica Neue",Arial,sans-serif;--fs-micro:11px;--fs-base:13px;--fs-title:18px;--fs-big:24px;--fs-display:30px;--fw-reg:400;--fw-bold:700;--track-caps:0.14em;--ease-snap:cubic-bezier(0.2,0.9,0.2,1)}html[data-theme=dark]{--bg:#16140f;--bg2:#211e17;--bg3:#2c2820;--border:rgba(244,238,240,0.14);--border2:rgba(244,238,240,0.3);--contour:#f4eef0;--txt:#f4eef0;--txt-dim:#b3a992;--txt-faint:#7a7160;--green:#7ce3a0;--green-soft:rgba(124,227,160,0.14);--yellow:#e8e373;--red:#f86a63;--red-soft:rgba(248,106,99,0.14);--blue:#f4eef0;--cyan:#9fd8b5;--sq-l:#6e7c62;--sq-d:#4a5544;--lm-l:#8c7e48;--lm-d:#6e6234;--coral:#f86a63;--mint:#7ce3a0;--lemon:#e8e373;color-scheme:dark}::selection{background:var(--lemon);color:#16140f}*{box-sizing:border-box;margin:0;padding:0}body,html{height:100%}body{font-family:var(--font);background:var(--bg);color:var(--txt);overflow:hidden;font-size:var(--fs-base);line-height:1.4}button{cursor:pointer}button,input,select{font-family:inherit}.app-root{height:100vh;display:flex;flex-direction:column}.topbar{height:48px;flex-shrink:0;gap:16px;padding:0 16px;border-bottom:1px solid var(--contour);background:var(--bg)}.brand-pad,.topbar{display:flex;align-items:center}.brand-pad{gap:9px;color:var(--txt)}.brand-mark{width:20px;height:20px;display:block;flex-shrink:0}.brand-word{font-family:var(--font);font-weight:var(--fw-bold);font-size:var(--fs-title);letter-spacing:-.01em;line-height:1;text-transform:lowercase}.brand-word .dot{color:var(--coral)}.topbar-toggle{background:none;border:1px solid transparent;color:var(--txt-dim);padding:4px 6px;border-radius:3px;display:flex;align-items:center;justify-content:center}.topbar-toggle:hover{color:var(--txt);border-color:var(--border);background:var(--bg2)}.stats-strip{display:flex;align-items:baseline;gap:14px;margin-left:auto;background:none;border:1px solid transparent;padding:5px 9px;border-radius:3px;cursor:pointer}.stats-strip:hover{border-color:var(--border);background:var(--bg2)}.stat{display:flex;align-items:baseline;gap:5px;font-size:var(--fs-micro);color:var(--txt-dim)}.stat .v{font-size:var(--fs-base);font-weight:var(--fw-bold);color:var(--txt);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.stat .v.pos{color:var(--green)}.stat .v.neg{color:var(--red)}.stat .lbl{text-transform:uppercase;letter-spacing:var(--track-caps);font-size:var(--fs-micro)}.topbar-prefs{gap:8px;padding-left:16px;margin-left:16px;border-left:1px solid var(--border)}.icon-btn,.topbar-prefs{display:flex;align-items:center}.icon-btn{background:none;border:1px solid transparent;color:var(--txt-dim);padding:5px 7px;border-radius:3px;gap:6px;font-size:var(--fs-micro)}.icon-btn:hover{color:var(--txt);border-color:var(--border);background:var(--bg2)}.icon-btn.on{color:#16140f;border-color:var(--contour);background:var(--lemon)}.body-row{flex:1 1;display:flex;min-height:0}.side{width:320px;flex-shrink:0;border-right:1px solid var(--contour);display:flex;flex-direction:column;background:var(--bg);overflow:hidden}.body-row.side-closed .side{display:none}.main{flex:1 1;overflow-y:auto;min-width:0;display:flex;flex-direction:column;align-items:center;padding:24px}.main::-webkit-scrollbar{width:8px}.main::-webkit-scrollbar-track{background:var(--bg)}.main::-webkit-scrollbar-thumb{background:var(--border2)}.side-block{padding:14px 16px;border-bottom:1px solid var(--border);flex-shrink:0}.side-h{font-size:var(--fs-micro);color:var(--txt-dim);text-transform:uppercase;letter-spacing:var(--track-caps);margin-bottom:8px}.side-h .active-count{margin-left:8px;color:var(--green)}.import-bar{display:flex;flex-direction:column;gap:8px}.username-row{display:flex;gap:6px}.username-input{flex:1 1;min-width:0;background:var(--bg2);border:1px solid var(--border);color:var(--txt);padding:7px 10px;font-size:var(--fs-micro);outline:none;border-radius:3px}.username-input:focus{border-color:var(--coral)}.imp-btn{background:var(--coral);color:#16140f;border:1px solid var(--contour);padding:7px 12px;font-size:var(--fs-micro);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--track-caps);border-radius:2px;white-space:nowrap;transition:all .12s var(--ease-snap)}.imp-btn:hover:not(:disabled){background:var(--contour);color:var(--bg2)}.imp-btn:disabled{opacity:.5;cursor:wait}.imp-progress{height:3px;background:var(--bg2);border-radius:2px;overflow:hidden;position:relative}.imp-progress .bar{position:absolute;left:0;top:0;bottom:0;background:var(--green);transition:width .3s}.imp-status{font-size:var(--fs-micro);color:var(--txt-dim);line-height:1.4}.imp-status.err{color:var(--red)}.imp-row{display:flex;gap:6px}.imp-link{background:none;border:0;padding:0;color:var(--txt-dim);font-size:var(--fs-micro);text-transform:uppercase;letter-spacing:var(--track-caps);text-decoration:underline;text-underline-offset:2px}.imp-link:hover:not(:disabled){color:var(--txt)}.imp-link.danger:hover:not(:disabled){color:var(--red)}.imp-link:disabled{opacity:.5;cursor:not-allowed}.imp-sep{color:var(--border2);font-size:var(--fs-micro)}.seg-tabs{display:flex;background:var(--bg2);border:1px solid var(--contour);border-radius:2px;overflow:hidden}.seg-tab{flex:1 1;background:none;border:0;border-right:1px solid var(--contour);color:var(--txt);padding:8px 6px;font-size:var(--fs-micro);font-weight:var(--fw-bold);letter-spacing:var(--track-caps);text-transform:uppercase;display:flex;align-items:center;justify-content:center;gap:5px;transition:background .1s}.seg-tab:last-child{border-right:0}.seg-tab:hover:not(.on){background:var(--bg3)}.seg-tab.on{background:var(--coral);color:#16140f}.seg-tab .ct{font-size:var(--fs-micro);opacity:.55;font-weight:var(--fw-bold)}.seg-tab.on .ct{opacity:.75}.chip-row{display:flex;flex-wrap:wrap;gap:6px}.chip{padding:7px 11px;border:1px solid var(--contour);border-radius:2px;background:var(--bg2);color:var(--txt);font-size:var(--fs-micro);font-weight:var(--fw-bold);letter-spacing:var(--track-caps);text-transform:uppercase;display:inline-flex;align-items:center;gap:6px;transition:all .1s}.chip:hover{background:var(--bg3)}.chip.on{background:var(--coral);color:#16140f;border-color:var(--contour)}.chip .x{opacity:.6;font-size:var(--fs-base);line-height:1}.chip.add{color:var(--txt-dim);border-style:dashed}.filter-popover{position:absolute;z-index:50;top:calc(100% + 4px);left:0;background:var(--bg2);border:1px solid var(--contour);border-radius:2px;padding:4px;min-width:200px;box-shadow:2px 2px 0 0 var(--contour);display:flex;flex-direction:column;gap:1px;max-height:280px;overflow-y:auto}.filter-popover .opt{padding:7px 10px;font-size:var(--fs-base);color:var(--txt);border-radius:0;background:none;border:0;text-align:left;cursor:pointer}.filter-popover .opt:hover{background:var(--contour);color:var(--bg2)}.filter-popover .opt.on{color:#16140f;background:var(--lemon)}.filter-popover-h{padding:6px 10px 4px}.filter-popover-h,.qcount{font-size:var(--fs-micro);color:var(--txt-dim);text-transform:uppercase;letter-spacing:var(--track-caps)}.qcount{padding:8px 16px;background:var(--bg2);border-bottom:1px solid var(--border);flex-shrink:0}.qcount em{color:var(--coral);font-style:normal;font-weight:var(--fw-bold)}.queue{flex:1 1;overflow-y:auto;min-height:0}.queue::-webkit-scrollbar{width:8px}.queue::-webkit-scrollbar-track{background:var(--bg)}.queue::-webkit-scrollbar-thumb{background:var(--border2)}.queue-empty{padding:24px;font-size:var(--fs-micro);color:var(--txt-dim);text-align:center}.qcard{padding:10px 16px;border-bottom:1px solid var(--border);cursor:pointer;display:flex;align-items:center;gap:10px;transition:background .08s}.qcard:hover{background:var(--bg2)}.qcard.cur{background:rgba(232,227,115,.32);box-shadow:inset 3px 0 0 0 var(--coral);padding-left:14px}.qcard .ava{width:28px;height:28px;border-radius:0;background:var(--bg2);border:1px solid var(--contour);display:flex;align-items:center;justify-content:center;font-size:var(--fs-micro);font-weight:var(--fw-bold);color:var(--txt-dim);flex-shrink:0}.qcard.solved-ok .ava{background:var(--mint);color:#16140f;border-color:var(--contour)}.qcard.solved-fail .ava{background:var(--coral);color:#16140f;border-color:var(--contour)}.qcard .qinfo{flex:1 1;min-width:0}.qcard .qopp{font-size:var(--fs-base);color:var(--txt);font-weight:var(--fw-reg)}.qcard .qmeta,.qcard .qopp{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.qcard .qmeta{font-size:var(--fs-micro);color:var(--txt-dim);margin-top:2px}.qcard .qdrop{font-size:var(--fs-base);font-weight:var(--fw-bold);color:var(--red);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;flex-shrink:0}.qcard.solved-ok .qdrop{color:var(--green)}.board-col{width:100%;max-width:808px;display:flex;flex-direction:column;gap:18px}.ctx-line{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:6px 2px;flex-wrap:wrap}.ctx-l{display:flex;flex-direction:column;gap:4px;min-width:0}.ctx-title{font-size:var(--fs-title);font-weight:var(--fw-bold);color:var(--txt);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ctx-title .vs{color:var(--txt-dim);font-weight:var(--fw-reg);margin-right:4px}.ctx-meta{font-size:var(--fs-micro);color:var(--txt-dim);text-transform:uppercase;letter-spacing:var(--track-caps);display:flex;gap:10px;flex-wrap:wrap}.ctx-meta .sep{color:var(--border2)}.turn-chip{display:inline-flex;align-items:center;gap:8px;padding:5px 12px;border-radius:100px;background:var(--bg2);border:1px solid var(--border);font-size:var(--fs-micro);color:var(--txt);font-weight:var(--fw-reg);text-transform:uppercase;letter-spacing:var(--track-caps);flex-shrink:0}.turn-chip .dot{width:10px;height:10px;border-radius:50%;border:1px solid var(--txt)}.turn-chip.white .dot{background:#fff}.turn-chip.black .dot{background:var(--txt);border-color:var(--txt)}.board-row{gap:18px;flex-wrap:wrap;justify-content:center}.board-row,.bwrap{display:flex;align-items:flex-start}.bwrap{--sq-size:60px;gap:8px}.ranks{display:flex;flex-direction:column;justify-content:space-around;font-size:var(--fs-micro);color:var(--txt-dim);padding-right:2px;font-weight:var(--fw-bold)}.ranks span{height:var(--sq-size);display:flex;align-items:center}.bcol{display:flex;flex-direction:column}.board-grid{display:grid;grid-template-columns:repeat(8,var(--sq-size));grid-template-rows:repeat(8,var(--sq-size));border:1px solid var(--contour);box-shadow:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;font-size:0;line-height:0}.files{display:flex;justify-content:space-around;padding-top:5px;font-size:var(--fs-micro);color:var(--txt-dim);font-weight:var(--fw-bold)}.files span{text-align:center}.files span,.sq{width:var(--sq-size)}.sq{height:var(--sq-size);display:flex;align-items:center;justify-content:center;position:relative;cursor:pointer}.sq-l{background:var(--sq-l)}.sq-d{background:var(--sq-d)}.sq-l.lm{background:var(--lm-l)}.sq-d.lm{background:var(--lm-d)}.sq.sel{box-shadow:inset 0 0 0 3px var(--coral);z-index:2}.sq-dot-hint{position:absolute;width:18px;height:18px;border-radius:50%;background:rgba(22,20,15,.25);pointer-events:none;z-index:3;top:50%;left:50%;transform:translate(-50%,-50%)}html[data-theme=dark] .sq-dot-hint{background:rgba(244,238,240,.3)}.sq.cap-ring{box-shadow:inset 0 0 0 3px rgba(22,20,15,.35)}html[data-theme=dark] .sq.cap-ring{box-shadow:inset 0 0 0 3px rgba(244,238,240,.35)}.sq.drop-target{box-shadow:inset 0 0 0 4px var(--coral);z-index:2}.sq.drag-origin{z-index:50}.sq.flash-ok{background:var(--mint)!important}.sq.flash-fail{background:var(--coral)!important}.piece{width:90%;height:90%;pointer-events:none;position:relative;z-index:2}.piece-wrap{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;z-index:2;cursor:-webkit-grab;cursor:grab;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-touch-callout:none}.piece-wrap:active{cursor:-webkit-grabbing;cursor:grabbing}@keyframes piece-slide-in{0%{transform:translate(calc(var(--bx) * var(--sq-size, 60px)),calc(var(--by) * var(--sq-size, 60px)))}to{transform:translate(0)}}.piece-wrap.animating{animation:piece-slide-in .22s var(--ease-snap);cursor:default;pointer-events:none}.piece-wrap.dragging{z-index:50;cursor:-webkit-grabbing;cursor:grabbing;transition:none;filter:drop-shadow(0 4px 6px rgba(0,0,0,.35));pointer-events:none}.result-slot{width:280px;flex-shrink:0}.pre-result,.result{border:1px solid var(--contour);background:var(--bg2);padding:16px;display:flex;flex-direction:column;gap:12px}.verdict{gap:10px}.verdict,.verdict-ico{display:flex;align-items:center}.verdict-ico{width:32px;height:32px;border-radius:0;justify-content:center;font-weight:var(--fw-bold);font-size:var(--fs-title);flex-shrink:0}.verdict.ok .verdict-ico{background:var(--mint);color:#16140f;border:1px solid var(--contour)}.verdict.bad .verdict-ico{background:var(--coral);color:#16140f;border:1px solid var(--contour)}.verdict.idle .verdict-ico{background:var(--bg3);color:var(--txt-dim);border:1px solid var(--border)}.verdict-text{font-size:var(--fs-title);font-weight:var(--fw-bold)}.verdict.ok .verdict-text{color:var(--green)}.verdict.bad .verdict-text{color:var(--red)}.verdict-title{font-size:var(--fs-base);font-weight:var(--fw-bold)}.verdict-sub{font-size:var(--fs-micro);color:var(--txt-dim);margin-top:2px;text-transform:uppercase;letter-spacing:var(--track-caps)}.eval-bar{display:flex;flex-direction:column;gap:6px}.eval-bar-h{display:flex;justify-content:space-between;align-items:baseline;font-size:var(--fs-micro);color:var(--txt-dim);text-transform:uppercase;letter-spacing:var(--track-caps)}.eval-bar-h .drop{font-size:var(--fs-base);font-weight:var(--fw-bold);color:var(--red);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.eval-track{height:8px;background:var(--bg3);border:1px solid var(--border);border-radius:4px;position:relative;overflow:hidden}.eval-fill{position:absolute;top:0;bottom:0;background:var(--red);opacity:.5}.eval-marker{position:absolute;top:-2px;width:2px;height:12px;background:var(--txt)}.eval-vals{display:flex;justify-content:space-between;font-size:var(--fs-micro);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--txt-dim)}.eval-vals .before{color:var(--green)}.eval-vals .after{color:var(--red);font-weight:var(--fw-bold)}.move-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:6px;gap:6px}.move-cell{border:1px solid var(--border);background:var(--bg);padding:8px 10px}.move-cell .lbl{font-size:var(--fs-micro);color:var(--txt-dim);text-transform:uppercase;letter-spacing:var(--track-caps)}.move-cell .v{font-size:var(--fs-base);font-weight:var(--fw-bold);margin-top:3px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.move-cell.best{border-color:var(--green)}.move-cell.best .v{color:var(--green)}.move-cell.bad{border-color:var(--red)}.move-cell.bad .v{color:var(--red);text-decoration:line-through;opacity:.7}.move-cell.user-ok{border-color:var(--green)}.move-cell.user-ok .v{color:var(--green)}.blunder-line{font-size:var(--fs-micro);color:var(--txt-dim);text-transform:uppercase;letter-spacing:var(--track-caps);padding:6px 0;border-top:1px solid var(--border)}.blunder-line .v{color:var(--txt);font-weight:var(--fw-reg);margin-left:6px;letter-spacing:0;text-transform:none}.tries-line{font-size:var(--fs-micro);color:var(--txt-dim);text-transform:uppercase;letter-spacing:var(--track-caps)}.tries-line .v{color:var(--red);text-transform:none;letter-spacing:0}.engine-line{padding:6px 0;border-top:1px solid var(--border)}.engine-line-h{font-size:var(--fs-micro);color:var(--txt-dim);text-transform:uppercase;letter-spacing:var(--track-caps);margin-bottom:3px}.engine-line-moves{font-size:var(--fs-sm,13px);color:var(--txt);line-height:1.5;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.analysis-note{font-size:var(--fs-micro);color:var(--mint-ink,var(--txt-dim));font-style:italic}.actions{display:flex;flex-direction:column;gap:6px}.btn{background:var(--bg2);border:1px solid var(--contour);color:var(--txt);padding:9px 12px;border-radius:2px;font-size:var(--fs-micro);font-weight:var(--fw-reg);text-align:center;transition:all .12s var(--ease-snap)}.btn:hover:not(:disabled){background:var(--contour);color:var(--bg2)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.prim{background:var(--coral);color:#16140f;border-color:var(--contour);font-weight:var(--fw-bold)}.btn.prim:hover:not(:disabled){background:var(--contour);color:var(--bg2)}.btn.ghost{background:transparent}.btn-row{display:flex;gap:6px}.btn-row .btn{flex:1 1}.pre-result .help{font-size:var(--fs-micro);color:var(--txt-dim);line-height:1.5}.pre-result .help em{color:var(--yellow);font-style:normal}.empty{padding:60px 20px;color:var(--txt-dim);font-size:var(--fs-base);gap:6px}.empty,.onboarding{display:flex;flex-direction:column;align-items:center;text-align:center}.onboarding{width:100%;max-width:520px;margin:auto;padding:32px 24px;gap:28px}.onb-hero{display:flex;flex-direction:column;gap:14px}.onb-eyebrow{font-size:var(--fs-micro);color:var(--coral);text-transform:uppercase;letter-spacing:var(--track-caps)}.onb-eyebrow,.onb-title{font-weight:var(--fw-bold)}.onb-title{font-size:var(--fs-display);line-height:1.15;color:var(--txt)}.onb-title em{color:var(--coral);font-style:normal}.onb-sub{font-size:var(--fs-base);color:var(--txt-dim);line-height:1.55;max-width:440px}.onb-steps{display:flex;flex-direction:column;gap:12px;width:100%;max-width:420px;text-align:left}.onb-step{display:grid;grid-template-columns:28px 1fr;grid-gap:12px;gap:12px;align-items:start;padding:10px 12px;border:1px solid var(--contour);border-radius:2px;background:var(--bg2);transition:all .15s}.onb-step.active{border-color:var(--contour);background:rgba(232,227,115,.32)}.onb-step.done{opacity:.7}.onb-step .n{width:22px;height:22px;border-radius:0;background:var(--bg);border:1px solid var(--contour);color:var(--txt-dim);font-size:var(--fs-micro);font-weight:var(--fw-bold);display:flex;align-items:center;justify-content:center;margin-top:1px}.onb-step.active .n{background:var(--coral)}.onb-step.active .n,.onb-step.done .n{color:#16140f;border-color:var(--contour)}.onb-step.done .n{background:var(--mint)}.onb-step h4{font-size:var(--fs-base);font-weight:var(--fw-bold);margin-bottom:2px}.onb-step p{font-size:var(--fs-micro);color:var(--txt-dim);line-height:1.4}.onb-form{display:flex;flex-direction:column;gap:10px;width:100%;max-width:380px}.onb-input{width:100%;padding:12px 14px;font-size:var(--fs-base);border:1px solid var(--contour);border-radius:2px;background:var(--bg2);color:var(--txt);text-align:center;outline:none}.onb-input:focus{border-color:var(--coral)}.onb-go{background:var(--coral);color:#16140f;border:1px solid var(--contour);padding:12px 24px;font-size:var(--fs-base);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--track-caps);border-radius:2px;transition:all .12s var(--ease-snap)}.onb-go:hover:not(:disabled){background:var(--contour);color:var(--bg2)}.onb-go:disabled{opacity:.5;cursor:not-allowed}.onb-or{display:flex;align-items:center;gap:12px;font-size:var(--fs-micro);color:var(--txt-faint);text-transform:uppercase;letter-spacing:var(--track-caps)}.onb-or:after,.onb-or:before{content:"";flex:1 1;height:1px;background:var(--contour);opacity:.5}.onb-famous{display:flex;flex-direction:column;align-items:center;gap:2px;background:var(--mint);color:#0d1f14;border:1px solid var(--mint);padding:11px 24px;font-size:var(--fs-base);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--track-caps);border-radius:2px;cursor:pointer;transition:filter .12s var(--ease-snap)}.onb-famous:hover{filter:brightness(1.06)}.onb-famous .sub{font-weight:var(--fw-base);opacity:.7}.onb-alt,.onb-famous .sub{font-size:var(--fs-micro);letter-spacing:var(--track-caps)}.onb-alt{color:var(--txt-faint);text-transform:uppercase}.onb-alt a{color:var(--blue);text-decoration:none;cursor:pointer}.onb-alt a:hover{text-decoration:underline}.onb-running{display:flex;flex-direction:column;gap:12px;width:100%;max-width:380px}.onb-running .progress-track{height:6px;background:var(--bg2);border:1px solid var(--border);border-radius:3px;overflow:hidden;position:relative}.onb-running .progress-fill{position:absolute;left:0;top:0;bottom:0;background:var(--green);transition:width .4s}.onb-running .progress-text{font-size:var(--fs-micro);color:var(--txt-dim);display:flex;justify-content:space-between;gap:8px}.onb-running .progress-note{font-size:var(--fs-micro);color:var(--txt-faint);text-align:center;text-transform:uppercase;letter-spacing:var(--track-caps)}.onb-done{font-size:var(--fs-base);color:var(--green);font-weight:var(--fw-bold)}.stats-sheet{position:absolute;top:48px;right:16px;z-index:60;width:360px;max-width:calc(100vw - 24px);background:var(--bg);border:1px solid var(--border2);border-radius:6px;box-shadow:0 8px 32px rgba(0,0,0,.16);padding:16px;display:flex;flex-direction:column;gap:14px;animation:sheet-in .16s var(--ease-snap)}@keyframes sheet-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.stats-sheet h3{font-size:var(--fs-micro);color:var(--txt-dim);text-transform:uppercase;letter-spacing:var(--track-caps)}.stats-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px}.stat-card{border:1px solid var(--border);padding:10px;border-radius:3px}.stat-card .lbl{font-size:var(--fs-micro);color:var(--txt-dim);text-transform:uppercase;letter-spacing:var(--track-caps)}.stat-card .v{font-size:var(--fs-big);font-weight:var(--fw-bold);margin-top:4px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.stat-card .delta{font-size:var(--fs-micro);margin-top:2px;color:var(--green)}.stat-card .delta.down{color:var(--red)}.spark-h{font-size:var(--fs-micro);color:var(--txt-dim);text-transform:uppercase;letter-spacing:var(--track-caps);margin-bottom:6px}.spark{display:flex;align-items:flex-end;gap:2px;height:40px}.spark .b{flex:1 1;background:var(--green);border-radius:1px 1px 0 0;min-height:3px;opacity:.5}.spark .b.miss{background:var(--red);opacity:.4}.spark .b.today{opacity:1}@media (max-width:900px){.topbar{gap:8px;padding:0 10px}.stats-strip{gap:10px}.stat .lbl{display:none}.topbar-prefs{padding-left:8px;margin-left:8px}.body-row{position:relative}.side{position:absolute;top:0;bottom:0;left:0;z-index:80;width:min(85%,320px);box-shadow:4px 0 24px rgba(0,0,0,.25)}.body-row.side-closed .scrim,.body-row.side-closed .side{display:none}.scrim{position:absolute;inset:0;background:rgba(0,0,0,.4);z-index:70}.main{padding:12px}.bwrap{--sq-size:min(44px,calc((100vw - 40px) / 8))}.board-row{flex-direction:column;align-items:center}.result-slot{width:100%;max-width:480px}}@media (max-width:480px){.stats-strip .stat:not(.s-streak){display:none}.bwrap{--sq-size:calc((100vw - 36px) / 8)}}.about-back{font-size:var(--fs-micro);color:var(--txt-dim);text-decoration:none;text-transform:uppercase;letter-spacing:var(--track-caps);font-weight:var(--fw-bold)}.about-back:hover{color:var(--coral)}.about-scroll{flex:1 1;overflow-y:auto}.about-page{width:100%;max-width:600px;margin:0 auto;padding:40px 24px 64px;gap:32px}.about-hero,.about-page{display:flex;flex-direction:column}.about-hero{gap:14px}.about-eyebrow{font-size:var(--fs-micro);color:var(--coral);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--track-caps)}.about-title{font-size:var(--fs-display);font-weight:var(--fw-bold);line-height:1.15;color:var(--txt);margin:0}.about-title em{color:var(--coral);font-style:normal}.about-lead{font-size:var(--fs-base);color:var(--txt-dim);line-height:1.6;margin:0}.about-lead strong{color:var(--txt);font-weight:var(--fw-bold)}.about-section{display:flex;flex-direction:column;gap:14px}.about-h{font-size:var(--fs-micro);text-transform:uppercase;letter-spacing:var(--track-caps);color:var(--txt-faint);font-weight:var(--fw-bold)}.about-steps{display:flex;flex-direction:column;gap:14px}.about-step{display:grid;grid-template-columns:24px 1fr;grid-gap:12px;gap:12px;align-items:start}.about-step .n{width:24px;height:24px;display:flex;align-items:center;justify-content:center;border:1px solid var(--contour);border-radius:2px;color:var(--coral);font-weight:var(--fw-bold);font-size:var(--fs-micro);background:var(--bg2)}.about-step h4{font-size:var(--fs-base);font-weight:var(--fw-bold);color:var(--txt);margin:0}.about-step p{font-size:var(--fs-base);color:var(--txt-dim);line-height:1.5;margin:3px 0 0}.about-author{border:1px solid var(--contour);border-radius:2px;background:var(--bg2);padding:16px;display:flex;flex-direction:column;gap:10px}.about-author .who{font-size:var(--fs-base);color:var(--txt-dim)}.about-author .who strong{color:var(--txt);font-weight:var(--fw-bold)}.about-links{display:flex;gap:18px;flex-wrap:wrap}.about-link{color:var(--coral);font-size:var(--fs-base);text-decoration:none;font-weight:var(--fw-bold)}.about-link:hover{text-decoration:underline}.about-foot{color:var(--txt-faint);line-height:1.7;border-top:1px solid var(--border);padding-top:18px}.about-foot,.about-foot .about-link{font-size:var(--fs-micro)}@font-face{font-family:Gruezi;src:url(/fonts/RL-Gruezi-C-SemiBold.otf) format("opentype");font-weight:600;font-style:normal;font-display:swap}.xray{--paper:#f6f3ec;--paper2:#ffffff;--paper3:#efeae0;--ink:#1c1a14;--ink-dim:#6e6657;--ink-faint:#a89e8e;--line:rgba(28,26,20,0.12);--line2:rgba(28,26,20,0.22);--contour:#1c1a14;--green:#3c9a66;--green-soft:rgba(60,154,102,0.12);--amber:#cf9326;--perf-red:#c2564e;--red-soft:rgba(194,86,78,0.1);--blunder:#f4342c;--blunder-glow:rgba(244,52,44,0.3);--xblue:#5e7ba3;--sq-l:#ece4d4;--sq-d:#8194ad;--amber-ov:rgba(244,189,77,0.66);--xfont:"Gruezi","Helvetica Neue",Arial,sans-serif;--fs-micro:11px;--fs-small:12px;--fs-base:13px;--fs-title:18px;--fs-big:24px;--fw-reg:400;--fw-semi:600;--fw-bold:700;--track-caps:0.14em;height:100vh;font-family:var(--xfont);background:var(--paper);color:var(--ink);font-size:var(--fs-base);line-height:1.4;overflow:hidden}.xray button{font-family:inherit;cursor:pointer;border:0;background:none;color:inherit}.xray .num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.xray .avatar{width:30px;height:30px;border-radius:50%;background:var(--paper3);border:1px solid var(--line2);display:flex;align-items:center;justify-content:center;font-size:var(--fs-micro);font-weight:var(--fw-bold);color:var(--ink-dim);flex-shrink:0}.xray .site-root{height:100vh;display:flex}.xray .sidebar{width:222px;flex-shrink:0;background:var(--paper2);border-right:1px solid var(--contour);display:flex;flex-direction:column;padding:16px 12px}.xray .side-brand{display:flex;align-items:center;gap:9px;padding:6px 8px 18px}.xray .brand-word{font-weight:var(--fw-bold);font-size:var(--fs-title)}.xray .side-nav{display:flex;flex-direction:column;gap:2px}.xray .side-item{display:flex;align-items:center;gap:11px;padding:9px 10px;border-radius:4px;font-size:var(--fs-base);font-weight:var(--fw-semi);color:var(--ink-dim);text-align:left;transition:background .12s ease,color .12s ease;text-decoration:none}.xray .side-item svg{flex-shrink:0;opacity:.85}.xray .side-item:hover{background:var(--paper3);color:var(--ink)}.xray .side-item.on{background:var(--ink);color:var(--paper)}.xray .side-item.on svg{opacity:1}.xray .side-count{margin-left:auto;min-width:20px;height:18px;padding:0 6px;border-radius:9px;background:var(--blunder);color:#fff;font-size:10px;font-weight:var(--fw-bold);display:inline-flex;align-items:center;justify-content:center}.xray .side-foot{margin-top:auto;display:flex;align-items:center;gap:10px;padding:12px 8px 4px;border-top:1px solid var(--line)}.xray .su-name{font-size:var(--fs-small);font-weight:var(--fw-bold)}.xray .su-rate{font-size:10px;color:var(--ink-dim);text-transform:uppercase;letter-spacing:.08em}.xray .site-main{flex:1 1;min-width:0;display:flex;flex-direction:column}.xray .site-head{flex-shrink:0;display:flex;align-items:center;gap:22px;padding:16px 24px;background:var(--paper2);border-bottom:1px solid var(--contour)}.xray .sh-eyebrow{font-size:var(--fs-micro);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--track-caps);color:var(--ink-dim);margin-bottom:3px}.xray .sh-title{font-size:var(--fs-big);font-weight:var(--fw-bold);letter-spacing:-.02em;line-height:1}.xray .sh-title .vs{color:var(--ink-dim);font-weight:var(--fw-reg)}.xray .sh-title .sh-note{color:var(--ink-faint);font-weight:var(--fw-reg);font-size:var(--fs-title)}.xray .sh-stats{margin-left:auto;display:flex;gap:20px}.xray .sh-stat{display:flex;flex-direction:column;align-items:flex-start}.xray .sh-stat .v{font-size:var(--fs-big);font-weight:var(--fw-bold);line-height:1;letter-spacing:-.02em}.xray .sh-stat .v.red{color:var(--blunder)}.xray .sh-stat .k{font-size:10px;font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--track-caps);color:var(--ink-dim);margin-top:3px}.xray .seg{display:inline-flex;border:1px solid var(--contour);border-radius:3px;overflow:hidden}.xray .seg button{padding:7px 13px;font-size:var(--fs-micro);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--track-caps);color:var(--ink-dim);border-right:1px solid var(--contour)}.xray .seg button:last-child{border-right:0}.xray .seg button.on{background:var(--ink);color:var(--paper)}.xray .site-cols{flex:1 1;display:flex;min-height:0}.xray .tree-wrap{flex:1 1;min-width:0;overflow:auto;position:relative;background:radial-gradient(circle at center,rgba(28,26,20,.05) 1px,transparent 1.4px) 0 0 /24px 24px,var(--paper)}.xray .tree-canvas{position:relative;margin:8px auto 40px}.xray .conn-svg{position:absolute;inset:0;pointer-events:none;overflow:visible}.xray .ply-mark{position:absolute;left:6px;font-size:10px;font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--track-caps);color:var(--ink-faint);white-space:nowrap}.xray .empty-xray{margin:auto;max-width:360px;text-align:center;color:var(--ink-dim);padding:40px}.xray .empty-xray h2{font-size:var(--fs-big);color:var(--ink);margin-bottom:8px;letter-spacing:-.02em}.xray .empty-xray a{color:var(--ink);font-weight:var(--fw-bold)}.xray .xnode{position:absolute}.xray .xnode-board-btn{display:block;width:100%}.xray .xframe{position:relative;padding:4px;border-radius:3px;width:92px;margin:0 auto;border:3px solid var(--green);background:var(--paper2);transition:transform .12s ease,box-shadow .12s ease}.xray .xframe.perf-green{border-color:var(--green)}.xray .xframe.perf-amber{border-color:var(--amber)}.xray .xframe.perf-red{border-color:var(--perf-red)}.xray .xframe.gap{border:2px dashed var(--ink-faint);background:rgba(255,255,255,.5);padding:5px}.xray .xframe.hotspot{box-shadow:0 0 0 1px var(--perf-red),0 6px 20px -6px var(--blunder-glow)}.xray .xnode-board-btn:hover .xframe.hotspot{transform:translateY(-2px);box-shadow:0 0 0 1px var(--perf-red),0 10px 24px -5px var(--blunder-glow)}.xray .xboard{display:grid;grid-template-columns:repeat(8,var(--xsq,10px));line-height:0}.xray .xboard .sq{width:var(--xsq,10px);height:var(--xsq,10px);position:relative}.xray .xboard .sq.l{background:var(--sq-l)}.xray .xboard .sq.d{background:var(--sq-d)}.xray .xboard .sq .lm{position:absolute;inset:0;background:var(--amber-ov)}.xray .xboard .sq .pc{position:absolute;inset:0;width:100%;height:100%}.xray .badge-blunder{top:-10px;left:-10px;gap:2px;height:19px;padding:0 6px 0 4px;border-radius:10px;background:var(--blunder);color:#fff;border:1.5px solid var(--paper2);box-shadow:0 0 0 1px var(--blunder),0 2px 7px var(--blunder-glow)}.xray .badge-blunder,.xray .badge-collapse{position:absolute;z-index:3;display:inline-flex;align-items:center;font-size:10px;font-weight:var(--fw-bold)}.xray .badge-collapse{top:-9px;right:-9px;min-width:21px;height:18px;padding:0 6px;border-radius:9px;justify-content:center;background:var(--paper2);color:var(--xblue);border:1.5px solid var(--xblue)}.xray .xnode-board-btn:hover .badge-collapse{background:var(--xblue);color:#fff}.xray .badge-drill{position:absolute;bottom:-9px;left:50%;transform:translateX(-50%);z-index:3;display:inline-flex;align-items:center;gap:3px;height:18px;padding:0 8px;border-radius:9px;background:var(--blunder);color:#fff;border:1.5px solid var(--paper2);box-shadow:0 0 0 1px var(--blunder);font-size:9px;font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.1em;white-space:nowrap}.xray .xlabel{padding:9px 2px 0;text-align:center}.xray .xname{font-size:var(--fs-small);font-weight:var(--fw-bold);color:var(--ink);line-height:1.15;letter-spacing:-.01em}.xray .xname .mv{color:var(--ink-dim);font-weight:var(--fw-semi)}.xray .xstat{margin-top:2px;font-size:10px;color:var(--ink-dim);text-transform:uppercase;letter-spacing:.05em;display:flex;align-items:center;justify-content:center;gap:5px}.xray .xstat .score.green{color:var(--green);font-weight:var(--fw-bold)}.xray .xstat .score.amber{color:var(--amber);font-weight:var(--fw-bold)}.xray .xstat .score.red{color:var(--perf-red);font-weight:var(--fw-bold)}.xray .xstat .dot-sep{width:3px;height:3px;border-radius:50%;background:var(--ink-faint)}.xray .gap-tag{display:inline-flex;align-items:center;gap:5px;margin-top:5px;padding:2px 7px;border:1px dashed var(--ink-faint);border-radius:2px;font-size:9px;font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--track-caps);color:var(--ink-dim)}.xray .gap-tag .gdot{width:5px;height:5px;border-radius:50%;background:var(--ink-faint)}.xray .puzzles-rail{width:314px;flex-shrink:0;background:var(--paper2);border-left:1px solid var(--contour);display:flex;flex-direction:column;overflow:hidden}.xray .pr-head{padding:18px 20px 14px;border-bottom:1px solid var(--line)}.xray .pr-eyebrow{display:inline-flex;align-items:center;gap:7px;font-size:var(--fs-micro);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--track-caps);color:var(--ink)}.xray .pr-eyebrow svg{color:var(--blunder)}.xray .pr-lead{margin-top:7px;font-size:var(--fs-small);color:var(--ink-dim);line-height:1.5}.xray .pr-list{flex:1 1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:10px}.xray .pr-empty{padding:24px 12px;font-size:var(--fs-small);color:var(--ink-faint);text-align:center}.xray .pz-card{display:flex;align-items:center;gap:12px;padding:11px;text-align:left;width:100%;border:1px solid var(--line);border-radius:5px;background:var(--paper);transition:border-color .12s ease,transform .12s ease,box-shadow .12s ease}.xray .pz-card:hover{border-color:var(--line2);transform:translateY(-1px)}.xray .pz-card.hot{border:1.5px solid var(--perf-red);background:linear-gradient(180deg,rgba(194,86,78,.06),rgba(194,86,78,0))}.xray .pz-card.hot:hover{box-shadow:0 6px 18px -8px var(--blunder-glow)}.xray .pz-thumb{padding:3px;border:2px solid var(--green);border-radius:3px;background:var(--paper2);flex-shrink:0;line-height:0}.xray .pz-thumb.hot{border-color:var(--perf-red)}.xray .pz-meta{flex:1 1;min-width:0}.xray .pz-name{font-size:var(--fs-base);font-weight:var(--fw-bold);letter-spacing:-.01em}.xray .pz-name .mv{color:var(--ink-dim);font-weight:var(--fw-semi)}.xray .pz-tag{margin-top:1px;font-size:9px;font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--track-caps);color:var(--ink-faint)}.xray .pz-rec{margin-top:5px;font-size:10px;color:var(--ink-dim);text-transform:uppercase;letter-spacing:.04em}.xray .pz-rec b{color:var(--ink);font-weight:var(--fw-bold)}.xray .pz-rec b.bad{color:var(--blunder)}.xray .pz-badge{flex-shrink:0;min-width:24px;height:22px;padding:0 7px;border-radius:11px;display:inline-flex;align-items:center;justify-content:center;gap:3px;background:var(--paper3);color:var(--ink-dim);font-size:10px;font-weight:var(--fw-bold)}.xray .pz-badge.hot{background:var(--blunder);color:#fff;box-shadow:0 2px 8px var(--blunder-glow)}.xray .pr-foot{padding:14px 16px;border-top:1px solid var(--line)}.xray .start-btn{width:100%;display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--ink);color:var(--paper);border:1px solid var(--contour);border-radius:3px;padding:12px;font-size:var(--fs-micro);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--track-caps);transition:transform .1s ease,filter .1s ease}.xray .start-btn:hover{transform:translateY(-1px);filter:brightness(1.12)}.xray .start-btn svg{width:14px;height:14px}.xray .start-btn:disabled{opacity:.4;cursor:default}.xray .start-btn:disabled:hover{transform:none;filter:none}.xray .pr-foot-note{margin-top:9px;text-align:center;font-size:10px;color:var(--ink-dim);text-transform:uppercase;letter-spacing:var(--track-caps)}