:root{--v-bg:#14161c;--v-bg-2:#1c1f27;--v-border:#2a2e39;--v-fg:#e4e7ee;--v-fg-2:#a9afbc;--v-dim:#5d6472;--v-line:#1b1e27;--v-sel:#3b3f7a;--v-hit:#6a5712;--v-ins:#3ecf7f;--v-rep:#ff6166;--v-vis:#f0b33c;--v-nor:#8e85ff;--v-old:#ff6166;--v-new:#3ecf7f;--v-op:#5b4ff0;--v-count:#a86400;--v-motion:#0b76a0;--v-object:#117a46;--v-reg:#b82a80;--v-action:#4a4f5c}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--v-bg:#0f1217;--v-bg-2:#171a21;--v-border:#262b34;--v-op:#9d94ff;--v-count:#f0b33c;--v-motion:#5cc8f0;--v-object:#3ecf7f;--v-reg:#f27cc0;--v-action:#b8bdc8}}:root[data-theme=dark]{--v-bg:#0f1217;--v-bg-2:#171a21;--v-border:#262b34;--v-op:#9d94ff;--v-count:#f0b33c;--v-motion:#5cc8f0;--v-object:#3ecf7f;--v-reg:#f27cc0;--v-action:#b8bdc8}.game.v-game{max-width:1180px;height:auto;min-height:100vh;overflow:visible}.v-task{flex-direction:column;gap:12px;width:100%;max-width:1080px;margin:0 auto;padding-bottom:24px;display:flex}.v-say{margin:6px 0 0;font-size:1.14rem;font-weight:600;line-height:1.4}.v-stage{gap:12px;min-width:0;display:grid}.v-stage-split{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.v-editor{--v-mode-c:var(--v-nor);background:var(--v-bg);min-width:0;color:var(--v-fg);border:1px solid var(--v-border);border-radius:var(--radius);box-shadow:var(--shadow);font-family:var(--mono);font-variant-ligatures:none;flex-direction:column;font-size:clamp(14px,1.3vw,17px);line-height:1.55;display:flex;overflow:hidden}.v-mode-insert{--v-mode-c:var(--v-ins)}.v-mode-replace{--v-mode-c:var(--v-rep)}.v-mode-visual,.v-mode-vline,.v-mode-vblock{--v-mode-c:var(--v-vis)}.v-mode-cmd{--v-mode-c:#c9cedb}.v-tab{background:var(--v-bg-2);border-bottom:1px solid var(--v-border);height:30px;color:var(--v-fg-2);flex:none;align-items:center;padding:0 14px;font-size:.76rem;display:flex}.v-buffer{white-space:pre;tab-size:4;scrollbar-color:var(--v-border) transparent;flex:1;max-height:min(54vh,480px);padding:8px 0;position:relative;overflow:auto}.v-line{min-height:1.55em;padding-right:14px;display:flex}.v-line-cur{background:var(--v-line)}.v-nr{color:var(--v-dim);-webkit-user-select:none;user-select:none;flex:none;padding:0 14px 0 12px}.v-line-cur .v-nr{color:var(--v-fg-2)}.v-nr-dif{color:var(--v-old)}.v-nr-new{color:var(--v-new)}.v-text{flex:none}.v-fill .v-text{color:var(--v-dim)}.v-sel{background:var(--v-sel)}.v-hit{background:var(--v-hit);color:#fff3c4}.v-dif{box-shadow:inset 0 -2px 0 var(--v-old);background:#ff616633}.v-goal .v-dif{box-shadow:inset 0 -2px 0 var(--v-new);background:#3ecf7f2e}.v-sel.v-dif:not(.v-cur-block),.v-sel.v-hit:not(.v-cur-block){background:var(--v-sel)}.v-tgt{background:var(--star);color:#14161c;border-radius:2px;animation:1.1s ease-in-out infinite vTarget}@keyframes vTarget{0%,to{box-shadow:0 0 #f2b01e8c}50%{box-shadow:0 0 0 5px #f2b01e00}}.v-cur-block{background:var(--v-fg);color:var(--v-bg);box-shadow:none;border-radius:0;animation:none}.v-cur-bar{box-shadow:inset 2px 0 0 var(--v-ins)}.v-cur-under{box-shadow:inset 0 -3px 0 var(--v-rep)}.v-frozen .v-cur-block{background:var(--v-dim);color:var(--v-fg)}.v-status{background:var(--v-bg-2);border-top:1px solid var(--v-border);flex:none;align-items:center;gap:12px;min-height:30px;padding-right:12px;font-size:.8rem;display:flex}.v-mode{background:var(--v-mode-c);color:#14161c;letter-spacing:.04em;align-self:stretch;align-items:center;padding:0 12px;font-weight:700;transition:background .12s;display:inline-flex}.v-rec{color:var(--v-rep);white-space:nowrap}.v-cmd{text-overflow:ellipsis;white-space:pre;flex:1;min-width:0;overflow:hidden}.v-cmd-cur{background:var(--v-fg);vertical-align:text-bottom;width:.6em;height:1.15em;margin-left:1px;display:inline-block}.v-pend{color:var(--star);text-align:right;white-space:pre;min-width:3ch}.v-pos{color:var(--v-fg-2)}.v-goal{box-shadow:none;border-style:dashed}.v-goal .v-tab-name{color:var(--v-new);font-weight:600}.v-keys{vertical-align:middle;flex-wrap:wrap;align-items:center;gap:4px;display:inline-flex}kbd.v-key{border:1px solid var(--border-strong);background:var(--key-base);min-width:1.9em;height:1.9em;color:var(--text);font-family:var(--mono);white-space:pre;opacity:1;border-bottom-width:2px;border-radius:6px;justify-content:center;align-items:center;margin:0;padding:0 6px;font-size:.85rem;font-weight:500;line-height:1;display:inline-flex}kbd.v-key-wide{padding:0 7px;font-size:.72rem}.v-keys-dim kbd.v-key{border-color:var(--border);color:var(--muted);background:0 0;border-bottom-width:1px}kbd.v-key-chip{white-space:nowrap;min-width:0;height:1.85em;font-size:.8rem}kbd.v-key-say{vertical-align:baseline;border-bottom-width:1px;height:auto;margin:0 1px;padding:.12em .4em;font-size:.86em;font-weight:600;line-height:1.25;display:inline-block}.v-decoder{border:1px dashed var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);flex-wrap:wrap;align-items:center;gap:8px;min-height:58px;padding:8px 12px;display:flex}.v-decoder-hint{color:var(--muted);font-size:.88rem}.v-part{--role:var(--v-action);border:1px solid color-mix(in srgb, var(--role) 32%, transparent);background:color-mix(in srgb, var(--role) 10%, transparent);border-radius:10px;align-items:center;gap:9px;padding:5px 12px 5px 5px;animation:.15s ease-out noteIn;display:inline-flex}.v-role-reg{--role:var(--v-reg)}.v-role-count{--role:var(--v-count)}.v-role-op{--role:var(--v-op)}.v-role-motion{--role:var(--v-motion)}.v-role-object{--role:var(--v-object)}.v-role-arg{--role:var(--muted)}kbd.v-part-key{background:var(--role);min-width:2em;height:2em;color:var(--surface);font-family:var(--mono);white-space:pre;opacity:1;border:none;border-radius:7px;justify-content:center;align-items:center;margin:0;padding:0 7px;font-size:.95rem;font-weight:650;display:inline-flex}.v-part-text{flex-direction:column;font-size:.86rem;line-height:1.2;display:flex}.v-part-text small{color:var(--role);letter-spacing:.07em;text-transform:uppercase;font-size:.66rem;font-weight:700}.v-part-open{color:var(--faint);font-family:var(--mono);font-size:1.2rem;animation:1s steps(2,start) infinite vWait}@keyframes vWait{to{visibility:hidden}}.v-below{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;min-height:30px;display:flex}.v-trail{flex:1;align-items:center;gap:4px;min-width:0;display:flex}.v-trail-more{color:var(--faint)}.v-count{color:var(--muted);white-space:nowrap;font-size:.85rem}.v-count b{color:var(--text);font-family:var(--mono)}.v-lastjump{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;font-size:.85rem;display:inline-flex}.v-good{color:var(--success)}.note.v-note{flex-wrap:wrap;align-self:flex-start;gap:6px;height:auto;min-height:30px;padding:6px 12px;line-height:1.35}.v-tools{align-items:center}.v-need{font-size:.82rem;font-family:var(--mono);margin-left:auto}.v-solution{text-align:left;grid-template-columns:max-content minmax(0,1fr);align-items:center;gap:7px 14px;margin:0;padding:0;font-size:.9rem;list-style:none;display:grid}.v-solution li{display:contents}.v-solved{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex-direction:column;gap:10px;padding:14px 16px;animation:.2s ease-out noteIn;display:flex}.v-solved p{margin:0}.v-solved-good{border-color:var(--success);background:color-mix(in srgb, var(--success) 8%, var(--surface))}.v-solved-head{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.v-reveal{border-radius:var(--radius-sm);background:var(--surface-2);flex-direction:column;gap:8px;padding:12px 14px;display:flex}.results-card.v-intro{text-align:left;align-items:stretch;max-width:660px}.v-intro-text{color:var(--text-2);white-space:pre-line;margin:0;line-height:1.6}.v-keylist{text-align:left;grid-template-columns:max-content minmax(0,1fr);align-items:center;gap:7px 14px;margin:4px 0;padding:0;font-size:.9rem;list-style:none;display:grid}.v-keylist li{display:contents}.v-keylist kbd{justify-self:start}.v-power{border-left:3px solid var(--accent);background:var(--accent-soft);text-align:left;border-radius:0 8px 8px 0;margin:4px 0;padding:10px 14px;font-size:.92rem;line-height:1.5}.v-medal{color:var(--faint);display:inline-flex}.v-medal-gold{color:var(--star)}.v-medal-silber{color:#8d96a8}.v-medal-bronze{color:#b87333}.v-lead{max-width:720px;margin:0 0 16px;line-height:1.55}.v-holes{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;display:grid}.v-hole-say{-webkit-line-clamp:2;line-clamp:2;color:var(--muted);-webkit-box-orient:vertical;font-size:.8rem;line-height:1.35;display:-webkit-box;overflow:hidden}.v-hole .lesson-meta{color:var(--muted);justify-content:flex-start;font-size:.8rem}.v-holeboard{flex-wrap:wrap;gap:8px 18px;margin:0;padding:0;font-size:.88rem;list-style:none;display:flex}.v-holeboard li{align-items:center;gap:6px;display:inline-flex}.v-holeboard li.me{font-weight:650}.v-files{align-items:center}.v-push{margin-left:auto}.v-side{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;display:grid}.v-ideas,.v-regs{flex-direction:column;gap:8px;min-width:0;display:flex}.v-regs ul{gap:4px;margin:0;padding:0;list-style:none;display:grid}.v-regs li{align-items:center;gap:8px;min-width:0;display:flex}.v-regs code{text-overflow:ellipsis;white-space:pre;color:var(--text-2);font-family:var(--mono);font-size:.82rem;overflow:hidden}.v-search{width:min(360px,100%)}.v-cheat{margin-bottom:14px}.v-cheat-grid{grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:18px 28px;display:grid}.v-cheat-lesson h4{align-items:center;gap:6px;margin:0 0 6px;font-size:.9rem;font-weight:600;display:flex}.v-dim{opacity:.45}.v-touch{margin:0 16px 12px;display:none}@media (hover:none) and (pointer:coarse){.note.v-touch{height:auto;padding:8px 12px;line-height:1.35;display:flex}}.v-might-sum{align-items:center;gap:12px;display:flex}.v-might-sum span{flex-direction:column;line-height:1.15;display:flex}.v-might-sum b{font-family:var(--mono);font-size:1.5rem;font-weight:650}.v-might-sum small{color:var(--muted);font-size:.72rem}.v-might-sum i{color:var(--faint);font-size:1.2rem;font-style:normal}.v-might-total b{color:var(--accent)}.v-facts{grid-template-columns:1fr 1fr;gap:8px;margin:0;display:grid}.v-facts div{flex-direction:column;display:flex}.v-facts dt{color:var(--muted);font-size:.75rem}.v-facts dd{margin:0;font-weight:650}.v-mode-extra{color:var(--muted);font-size:.82rem}.lesson .keys-row{flex-wrap:nowrap;min-width:0;overflow:hidden}.lesson kbd.v-key-chip{text-overflow:ellipsis;flex:none;max-width:100%;height:1.75em;padding:0 5px;font-size:.7rem;line-height:1.6;display:inline-block;overflow:hidden}.continue kbd.v-key-chip{font-size:.82rem}@media (width<=860px){.v-stage-split,.v-side{grid-template-columns:minmax(0,1fr)}.v-buffer{max-height:38vh}}@media (prefers-reduced-motion:reduce){.v-tgt,.v-part,.v-part-open,.v-solved{animation:none}}
