@import "https://fonts.googleapis.com/css2?family=JetBrains+Mono:ital,wght@0,100..800;1,100..800&display=swap";:root{--transition-speed:.4s;--typewriter-speed:25ms;--font-mono:"JetBrains Mono", "Fira Code", "Cascadia Code", "Consolas", monospace;--font-size-base:15px;--font-size-sm:13px;--font-size-lg:17px;--font-size-ascii:10px;--line-height:1.65;--terminal-padding:24px;--chip-padding:6px 16px;--chip-gap:8px;--nav-height:48px}[data-theme=dark]{--bg-primary:#0a0a0a;--bg-secondary:#0d1117;--bg-terminal:#050505;--bg-input:#0a120a;--bg-nav:#0a0a0aeb;--bg-chip:#00ff4114;--bg-chip-hover:#00ff412e;--text-primary:#00ff41;--text-secondary:#0c3;--text-dim:#23b356;--text-muted:#178a3f;--text-accent:#39ff14;--text-highlight:#7dff6a;--text-error:#f33;--text-warning:#fc0;--text-info:#00bfff;--border-color:#0a3d1a;--border-glow:#00ff414d;--cursor-color:#00ff41;--selection-bg:#00ff4133;--scrollbar-thumb:#0a6e2a;--scrollbar-track:#050505;--link-color:#39ff14;--link-hover:#7dff6a;--shadow-glow:0 0 20px #00ff4126;--shadow-glow-strong:0 0 40px #00ff4140;--text-shadow-glow:0 0 8px #00ff4199;--scanline-opacity:.04;--crt-flicker:1}[data-theme=light]{--bg-primary:#f5f5f0;--bg-secondary:#eeeee8;--bg-terminal:#fafaf5;--bg-input:#efefe8;--bg-nav:#f5f5f0f2;--bg-chip:#2d6a4f14;--bg-chip-hover:#2d6a4f29;--text-primary:#1a1a2e;--text-secondary:#2d3748;--text-dim:#718096;--text-muted:#a0aec0;--text-accent:#2d6a4f;--text-highlight:#1b4332;--text-error:#c53030;--text-warning:#b7791f;--text-info:#2b6cb0;--border-color:#d4d4c8;--border-glow:#2d6a4f33;--cursor-color:#2d6a4f;--selection-bg:#2d6a4f26;--scrollbar-thumb:#c4c4b8;--scrollbar-track:#eeeee8;--link-color:#2d6a4f;--link-hover:#1b4332;--shadow-glow:0 2px 12px #0000000f;--shadow-glow-strong:0 4px 24px #0000001a;--text-shadow-glow:none;--scanline-opacity:0;--crt-flicker:0}[data-theme=amber]{--bg-primary:#050300;--bg-secondary:#0a0700;--bg-terminal:#030200;--bg-input:#0c0800;--bg-nav:#050300eb;--bg-chip:#ffb00014;--bg-chip-hover:#ffb0002e;--text-primary:#ffb000;--text-secondary:#cc8e00;--text-dim:#cc9110;--text-muted:#9c7310;--text-accent:#fc0;--text-highlight:#fd4;--text-error:#f33;--text-warning:#ffb000;--text-info:#00bfff;--border-color:#593e00;--border-glow:#ffb0004d;--cursor-color:#ffb000;--selection-bg:#ffb00033;--scrollbar-thumb:#996a00;--scrollbar-track:#030200;--link-color:#fc0;--link-hover:#fd4;--shadow-glow:0 0 20px #ffb00026;--shadow-glow-strong:0 0 40px #ffb00040;--text-shadow-glow:0 0 8px #ffb00099;--scanline-opacity:.05;--crt-flicker:1}[data-theme=cyberpunk]{--bg-primary:#0f051d;--bg-secondary:#1a0832;--bg-terminal:#090312;--bg-input:#1b0933;--bg-nav:#0f051deb;--bg-chip:#00fff014;--bg-chip-hover:#ff007f26;--text-primary:#0ff;--text-secondary:#0cc;--text-dim:#19b8b8;--text-muted:#22c9c9;--text-accent:#ff007f;--text-highlight:#fff;--text-error:#f33;--text-warning:#fc0;--text-info:#0ff;--border-color:#5c0099;--border-glow:#00fff04d;--cursor-color:#ff007f;--selection-bg:#00fff033;--scrollbar-thumb:#088;--scrollbar-track:#090312;--link-color:#ff007f;--link-hover:#fff;--shadow-glow:0 0 20px #00fff033;--shadow-glow-strong:0 0 40px #ff007f4d;--text-shadow-glow:0 0 8px #00fff099;--scanline-opacity:.03;--crt-flicker:1}[data-theme] *{transition:background-color var(--transition-speed) ease, color var(--transition-speed) ease, border-color var(--transition-speed) ease, box-shadow var(--transition-speed) ease}:root{--bezel:22px;--deck:66px;--screen-radius:18px;--screen-top:calc(var(--bezel) + env(safe-area-inset-top,0px));--screen-left:calc(var(--bezel) + env(safe-area-inset-left,0px));--screen-right:calc(var(--bezel) + env(safe-area-inset-right,0px));--screen-bottom:calc(var(--deck) + env(safe-area-inset-bottom,0px))}#terminal{top:var(--screen-top);left:var(--screen-left);right:var(--screen-right);bottom:var(--screen-bottom);max-width:920px;padding:var(--terminal-padding);padding-top:calc(var(--nav-height) + var(--terminal-padding));box-sizing:border-box;font-family:var(--font-mono);font-size:var(--font-size-base);line-height:var(--line-height);color:var(--text-primary);cursor:text;scroll-behavior:smooth;z-index:20;margin:0 auto;position:fixed;overflow:hidden auto}#terminal-output{white-space:pre-wrap;word-wrap:break-word;padding-bottom:20px}.output-line{min-height:1.65em;margin:0;padding:0}.output-line.blank{min-height:.8em}.t-green{color:var(--text-primary)}.t-bright{color:var(--text-accent)}.t-dim{color:var(--text-dim)}.t-muted{color:var(--text-muted)}.t-secondary{color:var(--text-secondary)}.t-error{color:var(--text-error)}.t-warning{color:var(--text-warning)}.t-info{color:var(--text-info)}.t-highlight{color:var(--text-highlight);font-weight:600}.t-bold{font-weight:700}.t-underline{text-underline-offset:3px;text-decoration:underline}.ascii-art{font-size:var(--font-size-ascii);color:var(--text-accent);text-shadow:var(--text-shadow-glow);letter-spacing:.5px;-webkit-user-select:none;user-select:none;line-height:1.1}[data-theme=dark] .ascii-art{animation:3s ease-in-out infinite alternate ascii-glow}@keyframes ascii-glow{0%{text-shadow:0 0 4px #00ff4166}to{text-shadow:0 0 12px #00ff41b3,0 0 24px #00ff414d}}.ascii-art.book-art{font-size:var(--font-size-base);text-shadow:none;color:var(--text-accent);letter-spacing:0;line-height:1.35;animation:none}.book-link{font-size:var(--font-size-base);padding:4px 0;display:inline-block}#input-area{z-index:10;background:var(--bg-primary);border-top:1px solid var(--border-color);padding:8px 0 12px;position:sticky;bottom:0}#input-line{align-items:center;margin-top:4px;display:flex;position:relative}.prompt{color:var(--text-secondary);white-space:nowrap;-webkit-user-select:none;user-select:none;margin-right:8px}#command-input{color:var(--text-primary);font-family:var(--font-mono);font-size:var(--font-size-base);caret-color:var(--cursor-color);line-height:var(--line-height);background:0 0;border:none;outline:none;flex:1;padding:0}#command-input::selection{background:var(--selection-bg)}.cursor-block{background:var(--cursor-color);vertical-align:text-bottom;width:9px;height:1.2em;margin-left:1px;animation:1s step-end infinite blink;display:inline-block}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}#autocomplete-wrapper{position:relative}#autocomplete-list{max-height:0;margin:0;padding:0;list-style:none;transition:max-height .15s;overflow:hidden}#autocomplete-list.active{max-height:300px;margin-bottom:6px;overflow-y:auto}#autocomplete-list li{font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--text-dim);cursor:pointer;border-left:2px solid #0000;align-items:center;gap:8px;padding:6px 12px;transition:all .12s;display:flex}#autocomplete-list li:before{content:"▸";color:var(--text-muted);transition:color .12s}#autocomplete-list li:hover,#autocomplete-list li.active{color:var(--text-accent);background:var(--bg-chip);border-left-color:var(--text-accent)}#autocomplete-list li:hover:before,#autocomplete-list li.active:before{color:var(--text-accent)}#autocomplete-list li .ac-match{color:var(--text-highlight);font-weight:700}#autocomplete-list li .ac-desc{color:var(--text-muted);margin-left:auto;font-size:.85em}#persistent-chips{gap:var(--chip-gap);flex-wrap:wrap;margin:0 0 8px;padding:0;display:flex}.command-chips{gap:var(--chip-gap);flex-wrap:wrap;margin:12px 0 4px;display:flex}.command-chip{padding:var(--chip-padding);background:var(--bg-chip);color:var(--text-accent);border:1px solid var(--border-color);font-family:var(--font-mono);font-size:var(--font-size-sm);cursor:pointer;-webkit-user-select:none;user-select:none;box-sizing:border-box;border-radius:4px;align-items:center;min-height:44px;text-decoration:none;transition:all .2s;display:inline-flex}.command-chip:hover,.command-chip:focus-visible{background:var(--bg-chip-hover);border-color:var(--text-accent);box-shadow:var(--shadow-glow);outline:none;transform:translateY(-1px)}.command-chip:active{transform:translateY(0)}.command-chip:before{content:"▸ ";color:var(--text-dim)}.inline-link{color:var(--link-color);text-underline-offset:3px;cursor:pointer;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;transition:color .2s}.inline-link:hover{color:var(--link-hover);text-shadow:var(--text-shadow-glow);text-decoration-style:solid}.terminal-divider{color:var(--text-dim);-webkit-user-select:none;user-select:none}.terminal-header{color:var(--text-accent);text-transform:uppercase;letter-spacing:1px;font-weight:700}.section-box{border:1px solid var(--border-color);background:var(--bg-secondary);border-radius:4px;margin:8px 0;padding:12px 16px}#crt-overlay{top:var(--screen-top);left:var(--screen-left);right:var(--screen-right);bottom:var(--screen-bottom);border-radius:var(--screen-radius);pointer-events:none;z-index:9999;background:repeating-linear-gradient(0deg, rgba(0, 0, 0, var(--scanline-opacity)) 0px, rgba(0, 0, 0, var(--scanline-opacity)) 1px, transparent 1px, transparent 3px);position:fixed;overflow:hidden}@keyframes crt-flicker{0%{opacity:.985}25%{opacity:1}50%{opacity:.978}75%{opacity:.995}to{opacity:.985}}[data-theme=dark] #terminal,[data-theme=amber] #terminal,[data-theme=cyberpunk] #terminal{animation:.15s infinite crt-flicker}@keyframes scanline-roll{0%{transform:translateY(-100%)}to{transform:translateY(100vh)}}#crt-overlay:before{content:" ";pointer-events:none;z-index:10000;background:linear-gradient(#fff0 0%,#ffffff08 30% 70%,#fff0 100%);width:100%;height:80px;animation:16s linear infinite scanline-roll;display:block;position:absolute;top:0;left:0}#terminal::-webkit-scrollbar{width:6px}#terminal::-webkit-scrollbar-track{background:var(--scrollbar-track)}#terminal::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:3px}#terminal::-webkit-scrollbar-thumb:hover{background:var(--text-dim)}#matrix-rain{top:var(--screen-top);left:var(--screen-left);right:var(--screen-right);bottom:var(--screen-bottom);border-radius:var(--screen-radius);z-index:2;opacity:0;pointer-events:none;width:auto;height:auto;transition:opacity 1s;position:fixed}#matrix-rain.active{opacity:.15}#nav-bar{top:var(--screen-top);left:var(--screen-left);right:var(--screen-right);height:var(--nav-height);background:var(--bg-nav);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border-color);border-top-left-radius:var(--screen-radius);border-top-right-radius:var(--screen-radius);z-index:1000;box-shadow:var(--shadow-glow);justify-content:center;align-items:center;gap:4px;padding:0 16px;display:flex;position:fixed;overflow:hidden}.nav-btn{color:var(--text-secondary);font-family:var(--font-mono);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:3px;padding:6px 14px;font-size:14px;font-weight:500;transition:all .2s}.nav-btn:hover,.nav-btn:focus-visible{color:var(--text-accent);border-color:var(--border-color);background:var(--bg-chip);outline:none}.nav-btn.active{color:var(--text-accent);border-color:var(--text-accent);background:var(--bg-chip-hover)}.nav-separator{color:var(--text-muted);-webkit-user-select:none;user-select:none;font-size:10px}#theme-toggle{border:1px solid var(--border-color);margin-left:auto;padding:6px 10px;font-size:18px}@media (width<=768px){:root{--font-size-base:13px;--font-size-sm:11px;--font-size-ascii:6.5px;--terminal-padding:14px;--nav-height:44px;--bezel:12px;--deck:56px;--screen-radius:13px}.crt-brand{letter-spacing:3px;font-size:12px}#command-input{font-size:16px}#nav-bar{-webkit-overflow-scrolling:touch;scrollbar-width:none;justify-content:flex-start;gap:2px;overflow:auto hidden}#nav-bar::-webkit-scrollbar{display:none}.nav-btn{padding:5px 10px;font-size:11px}.nav-separator{display:none}#terminal{padding-top:calc(var(--nav-height) + 12px)}.command-chip{min-height:44px;padding:8px 14px;font-size:12px}.ascii-art{letter-spacing:0;font-size:5.5px}}@media (width<=480px){:root{--font-size-base:12px;--font-size-ascii:5px;--terminal-padding:10px;--bezel:9px;--deck:52px;--screen-radius:11px}.ascii-art{font-size:4.2px}.crt-brand{letter-spacing:2px;font-size:11px}}#crt-screen{top:var(--screen-top);left:var(--screen-left);right:var(--screen-right);bottom:var(--screen-bottom);border-radius:var(--screen-radius);z-index:1;pointer-events:none;background:radial-gradient(125% 130% at 50% 42%,#0c130c 0%,#060a06 62%,#020402 100%);position:fixed;box-shadow:inset 0 0 26px 10px #000000d9,inset 0 0 120px #0000008c,0 0 0 3px #6f6a58,0 0 0 7px #c7bd9f,0 0 0 9px #8f866e,0 14px 34px #00000080}#crt-vignette{top:var(--screen-top);left:var(--screen-left);right:var(--screen-right);bottom:var(--screen-bottom);border-radius:var(--screen-radius);pointer-events:none;z-index:9998;background:radial-gradient(135% 125%,#0000 52%,#0006 100%),linear-gradient(#ffffff12 0%,#0000 10%);position:fixed}#crt-standby{top:var(--screen-top);left:var(--screen-left);right:var(--screen-right);bottom:var(--screen-bottom);text-align:center;font-family:var(--font-mono);font-size:var(--font-size-sm);letter-spacing:3px;color:var(--text-dim);text-shadow:var(--text-shadow-glow);z-index:25;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:8px;animation:.15s infinite crt-flicker;display:flex;position:fixed}#crt-standby .standby-dot{color:#ff5a5a;text-shadow:0 0 10px #ff3333b3;font-size:22px}#crt-standby .standby-hint{letter-spacing:2px;color:var(--text-muted);font-size:11px}body.terminal-active #crt-standby,body:not(.terminal-active) #nav-bar{display:none}#crt-deck{height:calc(var(--deck) + env(safe-area-inset-bottom,0px));padding-left:var(--screen-left);padding-right:var(--screen-right);padding-bottom:env(safe-area-inset-bottom,0px);z-index:40;justify-content:space-between;align-items:center;display:flex;position:fixed;bottom:0;left:0;right:0}.crt-brand{font-family:var(--font-mono);letter-spacing:4px;color:#6b6353;text-shadow:0 1px #ffffff73,0 -1px #00000040;-webkit-user-select:none;user-select:none;font-size:14px;font-weight:700}.crt-controls{align-items:center;gap:14px;display:flex}#crt-deck .indicator-label{color:#5f5849}.power-indicator-group{flex-direction:column;align-items:center;gap:8px;display:flex}#power-led{border-radius:50%;width:12px;height:12px;transition:all .3s}.led-standby{background-color:#f33;animation:2s infinite alternate led-pulse;box-shadow:0 0 10px #f33c,0 0 20px #f336}.led-on{background-color:#3f3;box-shadow:0 0 10px #3f3c,0 0 20px #3f36}@keyframes led-pulse{0%{opacity:.4}to{opacity:1}}.indicator-label{color:#777;letter-spacing:1px;font-size:9px}.power-knob{cursor:pointer;color:#d9d9d9;background:radial-gradient(circle at 50% 34%,#4c4c4c 0%,#262626 55%,#141414 100%);border:2px solid #7c745f;border-radius:50%;outline:none;place-items:center;width:44px;height:44px;padding:0;transition:transform .12s,box-shadow .2s,color .3s;display:grid;box-shadow:0 3px 5px #00000080,inset 0 1px 2px #fff3,inset 0 -2px 4px #0009}.power-knob:hover{color:#fff}.power-knob:focus-visible{border-color:var(--text-accent)}.power-knob:active{transform:translateY(2px);box-shadow:inset 0 2px 5px #000000b3}.power-knob.on{color:#3f3;border-color:#4a8f4a;box-shadow:0 0 10px #33ff3380,0 3px 5px #00000080,inset 0 1px 2px #fff3}.power-glyph{text-shadow:0 0 6px;pointer-events:none;font-size:22px;line-height:1}#cathode-bloom{top:var(--screen-top);left:var(--screen-left);right:var(--screen-right);bottom:var(--screen-bottom);border-radius:var(--screen-radius);transform-origin:50%;z-index:16000;pointer-events:none;opacity:0;background:0 0;position:fixed;overflow:hidden}#cathode-bloom.active{animation:.75s cubic-bezier(.25,.46,.45,.94) forwards cathode-startup}@keyframes cathode-startup{0%{opacity:0;filter:brightness(3);background:#fff;transform:scaleY(.005)scaleX(0);box-shadow:0 0 100px #fff}15%{opacity:1;filter:brightness(3);background:#fff;transform:scaleY(.005)scaleX(1.2);box-shadow:0 0 120px #fff,0 0 200px #00ff4180}40%{opacity:1;background:var(--text-accent);filter:brightness(2);box-shadow:0 0 200px var(--text-accent), 0 0 400px #00ff41cc;transform:scaleY(1.1)scaleX(1.1)}to{opacity:0;filter:none;box-shadow:none;background:0 0;transform:scaleY(1)scaleX(1)}}#cathode-bloom.shutdown{animation:.55s cubic-bezier(.25,.46,.45,.94) forwards cathode-shutdown}@keyframes cathode-shutdown{0%{opacity:1;filter:none;box-shadow:none;background:0 0;transform:scaleY(1)scaleX(1)}15%{opacity:1;filter:brightness(2);background:#fff;transform:scaleY(1.05)scaleX(1.05);box-shadow:0 0 100px #fff}45%{opacity:1;filter:brightness(3);background:#fff;transform:scaleY(.005)scaleX(1.1);box-shadow:0 0 120px #fff,0 0 200px #00ff4180}85%{opacity:1;filter:brightness(4);background:#fff;transform:scaleY(.005)scaleX(.01);box-shadow:0 0 150px #fff}to{opacity:0;filter:none;box-shadow:none;background:0 0;transform:scaleY(0)scaleX(0)}}.vim-editor{top:calc(var(--screen-top) + var(--nav-height));left:var(--screen-left);right:var(--screen-right);bottom:var(--screen-bottom);background:var(--bg-terminal);border-bottom-left-radius:var(--screen-radius);border-bottom-right-radius:var(--screen-radius);z-index:100;box-sizing:border-box;width:auto;max-width:920px;font-family:var(--font-mono);font-size:var(--font-size-base);color:var(--text-primary);-webkit-user-select:none;user-select:none;flex-direction:column;margin:0 auto;padding:16px;display:flex;position:fixed}.vim-viewport{flex:1;min-height:0;display:flex;position:relative}.vim-content{white-space:pre;scroll-behavior:smooth;scrollbar-width:none;flex:1;min-height:0;padding-right:12px;line-height:1.4;overflow:hidden auto}.vim-content::-webkit-scrollbar{width:0;height:0}.vim-scrollrail{background:var(--border-color);opacity:.6;border-radius:3px;width:5px;position:absolute;top:2px;bottom:2px;right:0}.vim-scrollrail-thumb{background:var(--text-accent);height:100%;box-shadow:0 0 8px var(--border-glow);border-radius:3px;transition:top 80ms linear,height 80ms linear;position:absolute;top:0;left:0;right:0}.vim-toc{border:1px solid var(--border-color);background:var(--bg-chip);white-space:normal;border-radius:4px;margin:2px 0 16px 52px;padding:10px 14px}.vim-toc-title{color:var(--text-dim);font-size:var(--font-size-sm);letter-spacing:2px;-webkit-user-select:none;user-select:none;margin-bottom:6px}.vim-toc-item{color:var(--text-accent);cursor:pointer;border-radius:3px;padding:3px 0;text-decoration:none;display:block}.vim-toc-item:hover,.vim-toc-item:focus-visible{color:var(--text-highlight);text-underline-offset:3px;outline:none;text-decoration:underline}.vim-line{width:100%;min-height:1.45em;display:flex}.vim-line.active-line{background:#00ff410f}[data-theme=amber] .vim-line.active-line{background:#ffb0000f}[data-theme=cyberpunk] .vim-line.active-line{background:#00fff00f}.vim-line-num{text-align:right;width:40px;color:var(--text-muted);-webkit-user-select:none;user-select:none;padding-right:12px}.vim-line.active-line .vim-line-num{color:var(--text-accent);font-weight:700}.vim-line-text{color:var(--text-primary);flex:1}.vim-status-line{background:var(--border-color);color:var(--bg-terminal);font-weight:700;font-size:var(--font-size-sm);-webkit-user-select:none;user-select:none;justify-content:space-between;margin-top:8px;padding:2px 8px;display:flex}.vim-command-bar{height:24px;font-size:var(--font-size-base);color:var(--text-primary);-webkit-user-select:none;user-select:none;align-items:center;padding-top:4px;display:flex}.vim-mode{color:var(--text-accent);font-weight:700}.vim-command-text{color:var(--text-highlight);margin-left:4px}.vim-cursor-blink{background:var(--cursor-color);vertical-align:middle;width:8px;height:15px;margin-left:2px;animation:1s step-end infinite blink;display:inline-block}.vim-newbie-bar{border-top:1px dashed var(--border-color);font-size:var(--font-size-sm);color:var(--text-muted);-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;margin-top:8px;padding-top:12px;display:flex}.vim-newbie-keys{align-items:center;gap:6px;display:flex}.vim-newbie-keys kbd{background:var(--bg-chip);border:1px solid var(--border-color);color:var(--text-accent);font-family:var(--font-mono);border-radius:3px;padding:1px 5px;font-size:10px;box-shadow:0 1px #00000080}.vim-newbie-actions{gap:8px;display:flex}.vim-btn{background:var(--bg-chip);border:1px solid var(--border-color);color:var(--text-accent);font-family:var(--font-mono);font-size:var(--font-size-sm);cursor:pointer;-webkit-user-select:none;user-select:none;box-sizing:border-box;border-radius:4px;min-height:28px;padding:4px 10px;transition:all .2s}.vim-btn:hover,.vim-btn:focus-visible{background:var(--bg-chip-hover);border-color:var(--text-accent);box-shadow:var(--shadow-glow);outline:none}.vim-btn:active{transform:translateY(1px)}.vim-btn-quit{color:var(--text-error);background:#ff33331a;border-color:#f336}.vim-btn-quit:hover,.vim-btn-quit:focus-visible{border-color:var(--text-error);background:#f333;box-shadow:0 0 10px #f336}@media (width<=600px){.vim-newbie-bar{flex-direction:column;align-items:stretch;gap:8px}.vim-newbie-keys,.vim-newbie-actions{justify-content:center}}@media (width<=700px){.vim-editor{font-size:var(--font-size-sm);padding:10px}.vim-content{white-space:normal;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;overflow-y:auto}.vim-line-text{white-space:pre-wrap;overflow-wrap:break-word;min-width:0}.vim-line-num{flex-shrink:0;width:26px;padding-right:8px}.vim-status-line{font-size:10px}.vim-toc{margin-left:34px;padding:8px 12px}}.hero-canvas-container{border:1px solid var(--border-color);background:#020202;border-radius:6px;width:100%;max-width:680px;margin:0 auto 12px;position:relative;overflow:hidden;box-shadow:inset 0 0 15px #000c}#hero-canvas{width:100%;height:220px;display:block}.hero-menu-container{flex-direction:column;flex:1;justify-content:center;align-items:center;padding:12px 0;display:flex;overflow-y:auto}.hero-menu-title{font-size:var(--font-size-lg);color:var(--text-accent);text-shadow:var(--text-shadow-glow);text-transform:uppercase;letter-spacing:1px;margin-bottom:20px;font-weight:700}.hero-menu-grid{grid-template-columns:repeat(2,1fr);gap:16px;width:100%;max-width:640px;display:grid}.hero-song-card{border:1px solid var(--border-color);background:var(--bg-secondary);cursor:pointer;box-sizing:border-box;border-radius:6px;flex-direction:column;gap:8px;padding:16px;transition:all .2s;display:flex}.hero-song-card:hover{border-color:var(--text-accent);background:var(--bg-chip-hover);box-shadow:var(--shadow-glow);transform:translateY(-2px)}.hero-song-card:active{transform:translateY(0)}.hero-song-title{font-size:var(--font-size-base);color:var(--text-accent);margin:0;font-weight:700}.hero-song-meta{color:var(--text-muted);justify-content:space-between;font-size:11px;display:flex}.hero-song-difficulty{color:var(--text-warning);text-transform:uppercase;font-weight:700}.hero-song-high{color:var(--text-highlight)}.hero-song-btn{text-align:center;width:100%;margin-top:8px}.hero-hud-panel{border:1px solid var(--border-color);background:var(--bg-secondary);font-family:var(--font-mono);border-radius:4px;justify-content:space-between;align-items:center;margin-bottom:12px;padding:8px 16px;display:flex}.hero-hud-stat{flex-direction:column;gap:2px;display:flex}.hero-hud-label{color:var(--text-muted);text-transform:uppercase;font-size:9px}.hero-hud-value{font-size:var(--font-size-base);color:var(--text-accent);font-weight:700}.hero-hud-value.combo-active{color:var(--text-highlight);text-shadow:var(--text-shadow-glow)}@media (width<=600px){.hero-menu-grid{grid-template-columns:1fr}}.synth-container{top:var(--nav-height);width:100%;max-width:920px;height:calc(100vh - var(--nav-height));height:calc(100dvh - var(--nav-height));background:var(--bg-terminal);z-index:100;box-sizing:border-box;font-family:var(--font-mono);color:var(--text-primary);-webkit-user-select:none;user-select:none;flex-direction:column;padding:24px;display:flex;position:fixed;left:50%;transform:translate(-50%)}.synth-header-section{text-align:center;margin-bottom:12px}.synth-title{font-size:var(--font-size-lg);color:var(--text-accent);text-shadow:var(--text-shadow-glow);text-transform:uppercase;margin:0 0 4px;font-weight:700}.synth-subtitle{font-size:var(--font-size-sm);color:var(--text-dim);margin:0}.synth-dashboard{border:1px solid var(--border-color);background:var(--bg-secondary);border-radius:4px;justify-content:space-between;align-items:center;margin-bottom:20px;padding:12px 18px;display:flex}.synth-dashboard-panel{flex-direction:column;gap:4px;display:flex}.synth-panel-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;font-size:10px}.synth-panel-value{font-size:var(--font-size-base);color:var(--text-accent);font-weight:700}.synth-wave-presets{gap:8px;display:flex}.synth-preset-pill{font-size:var(--font-size-sm);color:var(--text-dim);border:1px solid var(--border-color);background:var(--bg-chip);cursor:pointer;border-radius:4px;padding:4px 10px;transition:all .2s}.synth-preset-pill:hover{background:var(--bg-chip-hover);border-color:var(--text-accent)}.synth-preset-pill.active{color:var(--bg-terminal);background:var(--text-accent);border-color:var(--text-accent);box-shadow:var(--shadow-glow);font-weight:700}.synth-piano-board{border:4px solid var(--border-color);width:100%;max-width:680px;height:200px;box-shadow:var(--shadow-glow-strong);background:#050505;border-radius:6px;margin:0 auto 24px;position:relative;overflow:hidden}.synth-keyboard{width:100%;height:100%;position:relative}.synth-key.white-key{float:left;border-right:1px solid var(--border-color);box-sizing:border-box;cursor:pointer;width:9.09091%;height:100%;color:var(--text-secondary);z-index:1;background:#ffffff0a;flex-direction:column;justify-content:flex-end;align-items:center;padding-bottom:12px;transition:background .1s;display:flex;position:relative}.synth-key.white-key:last-child{border-right:none}.synth-key.white-key:hover{background:#ffffff14}.synth-key.white-key.active{box-shadow:inset 0 -12px #00000026;background:var(--text-accent)!important;color:var(--bg-terminal)!important}.synth-key.white-key.active .synth-key-kbd,.synth-key.white-key.active .synth-key-label{color:var(--bg-terminal)!important}.synth-key.black-key{border:2px solid var(--border-color);box-sizing:border-box;cursor:pointer;z-index:2;width:28px;height:60%;color:var(--text-muted);background:#000;border-top:none;border-bottom-right-radius:4px;border-bottom-left-radius:4px;flex-direction:column;justify-content:space-between;align-items:center;padding:8px 0;transition:all .1s;display:flex;position:absolute;top:0;box-shadow:0 4px 6px #0009}.synth-key.black-key:hover{border-color:var(--text-accent);background:#111}.synth-key.black-key.active{box-shadow:0 0 15px var(--border-glow);background:var(--text-accent)!important;border-color:var(--text-accent)!important;color:var(--bg-terminal)!important}.synth-key.black-key.active .synth-key-kbd,.synth-key.black-key.active .synth-key-label{color:var(--bg-terminal)!important}.synth-key.black-key[data-note=C\#4]{left:calc(9.09091% - 14px)}.synth-key.black-key[data-note=D\#4]{left:calc(18.1818% - 14px)}.synth-key.black-key[data-note=F\#4]{left:calc(36.3636% - 14px)}.synth-key.black-key[data-note=G\#4]{left:calc(45.4545% - 14px)}.synth-key.black-key[data-note=A\#4]{left:calc(54.5455% - 14px)}.synth-key.black-key[data-note=C\#5]{left:calc(72.7273% - 14px)}.synth-key.black-key[data-note=D\#5]{left:calc(81.8182% - 14px)}.synth-key-kbd{opacity:.8;font-size:10px;font-weight:700}.synth-key-label{opacity:.5;margin-top:4px;font-size:9px}.black-key .synth-key-kbd{color:var(--text-accent)}.black-key .synth-key-label{font-size:8px}.synth-legend-bar{border-top:1px dashed var(--border-color);font-size:var(--font-size-sm);color:var(--text-muted);justify-content:space-between;align-items:center;margin-top:auto;padding-top:16px;display:flex}.synth-legend-keys{flex-wrap:wrap;gap:12px;display:flex}.synth-legend-keys span{align-items:center;gap:6px;display:flex}.synth-legend-keys kbd{background:var(--bg-chip);border:1px solid var(--border-color);color:var(--text-accent);font-family:var(--font-mono);border-radius:3px;padding:1px 6px;font-size:10px;box-shadow:0 1px #00000080}.synth-exit-btn{color:var(--text-error);font-family:var(--font-mono);font-size:var(--font-size-sm);cursor:pointer;box-sizing:border-box;background:#ff33331a;border:1px solid #f336;border-radius:4px;align-items:center;min-height:32px;padding:6px 14px;transition:all .2s;display:inline-flex}.synth-exit-btn:hover{border-color:var(--text-error);background:#f333;box-shadow:0 0 10px #f336}@media (width<=768px){.synth-piano-board{height:160px}.synth-key.black-key{width:22px}.synth-key.black-key[data-note=C\#4]{left:calc(9.09091% - 11px)}.synth-key.black-key[data-note=D\#4]{left:calc(18.1818% - 11px)}.synth-key.black-key[data-note=F\#4]{left:calc(36.3636% - 11px)}.synth-key.black-key[data-note=G\#4]{left:calc(45.4545% - 11px)}.synth-key.black-key[data-note=A\#4]{left:calc(54.5455% - 11px)}.synth-key.black-key[data-note=C\#5]{left:calc(72.7273% - 11px)}.synth-key.black-key[data-note=D\#5]{left:calc(81.8182% - 11px)}.synth-legend-bar{flex-direction:column;align-items:stretch;gap:12px}.synth-legend-keys{justify-content:center}.synth-exit-btn{align-self:center}}.hero-score-table{border-collapse:collapse;width:100%;font-family:var(--font-mono);font-size:var(--font-size-sm);margin:12px 0}.hero-score-table th,.hero-score-table td{text-align:left;border-bottom:1px dotted var(--border-color);padding:6px 12px}.hero-score-table th{color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;border-bottom:2px solid var(--border-color);font-size:10px;font-weight:700}.hero-score-row{transition:background .2s}.hero-score-row:hover{background:#00ff4108}.hero-rank-1st{color:var(--text-warning);text-shadow:var(--text-shadow-glow);font-weight:700}.hero-rank-2nd{color:var(--text-highlight);font-weight:700}.hero-rank-3rd{color:var(--text-accent)}.hero-rank-other{color:var(--text-muted)}@keyframes cabinet-flash{0%,to{opacity:1;text-shadow:0 0 15px var(--border-glow)}50%{opacity:.4;text-shadow:none}}.hero-entry-title{color:var(--text-accent);text-transform:uppercase;margin-bottom:16px;font-weight:700;animation:1s ease-in-out infinite cabinet-flash}.hero-entry-blocks{justify-content:center;gap:12px;margin:20px 0;display:flex}.hero-entry-char{border-bottom:4px solid var(--border-color);width:44px;height:56px;color:var(--text-primary);text-transform:uppercase;justify-content:center;align-items:center;font-size:28px;font-weight:700;transition:all .15s;display:flex}@keyframes char-blink{0%,to{border-bottom-color:var(--text-accent)}50%{border-bottom-color:var(--border-color)}}.hero-entry-char.blinking{color:var(--text-accent);text-shadow:var(--text-shadow-glow);animation:.8s step-end infinite char-blink}.type-academy{top:calc(var(--screen-top) + var(--nav-height));left:var(--screen-left);right:var(--screen-right);bottom:var(--screen-bottom);background:var(--bg-terminal);border-bottom-left-radius:var(--screen-radius);border-bottom-right-radius:var(--screen-radius);z-index:100;box-sizing:border-box;width:auto;max-width:920px;font-family:var(--font-mono);color:var(--text-primary);-webkit-user-select:none;user-select:none;flex-direction:column;margin:0 auto;padding:16px 18px;display:flex;position:fixed}.type-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;gap:12px;padding-bottom:10px;display:flex}.type-title{color:var(--text-accent);letter-spacing:1px;text-shadow:var(--text-shadow-glow);font-weight:700}.type-sub{color:var(--text-dim);font-size:var(--font-size-sm);margin-left:10px}.type-music{background:var(--bg-chip);border:1px solid var(--border-color);color:var(--text-dim);font-family:var(--font-mono);font-size:var(--font-size-sm);cursor:pointer;white-space:nowrap;border-radius:4px;padding:5px 10px}.type-music.on{color:var(--text-accent);border-color:var(--text-accent);box-shadow:var(--shadow-glow)}.type-kbd{background:var(--bg-chip);border:1px solid var(--border-color);color:var(--text-accent);border-radius:3px;margin:0 1px;padding:0 5px;font-size:10px;line-height:16px;display:inline-block}.type-body{scrollbar-width:thin;flex:1;min-height:0;padding:14px 2px;overflow:hidden auto}.type-lead{color:var(--text-secondary);font-size:var(--font-size-sm);margin-bottom:14px;line-height:1.6}.type-lead strong{color:var(--text-accent)}.type-center{text-align:center;margin-top:14px}.type-footer{border-top:1px dashed var(--border-color);font-size:var(--font-size-sm);color:var(--text-dim);justify-content:space-between;align-items:center;gap:12px;padding-top:10px;display:flex}.type-exit{color:var(--text-error);font-family:var(--font-mono);font-size:var(--font-size-sm);cursor:pointer;background:#ff33331a;border:1px solid #f336;border-radius:4px;padding:5px 12px}.type-exit:hover{border-color:var(--text-error);background:#f333}.type-menu{flex-direction:column;gap:8px;display:flex}.type-menu-item{text-align:left;background:var(--bg-chip);border:1px solid var(--border-color);color:var(--text-secondary);font-family:var(--font-mono);cursor:pointer;border-radius:5px;grid-template-columns:32px 160px 1fr;align-items:center;gap:12px;padding:12px 14px;transition:all .12s;display:grid}.type-menu-item.active,.type-menu-item:hover{border-color:var(--text-accent);background:var(--bg-chip-hover);box-shadow:var(--shadow-glow)}.type-menu-num{color:var(--text-accent);font-weight:700}.type-menu-label{color:var(--text-primary);font-weight:600}.type-menu-hint{color:var(--text-dim);font-size:var(--font-size-sm)}.type-lesson-list{flex-direction:column;gap:6px;display:flex}.type-lesson-item{text-align:left;background:var(--bg-chip);border:1px solid var(--border-color);color:var(--text-secondary);font-family:var(--font-mono);cursor:pointer;border-radius:5px;grid-template-columns:34px 1fr auto;align-items:center;gap:12px;padding:10px 14px;transition:all .12s;display:grid}.type-lesson-item.active,.type-lesson-item:hover:not(.locked){border-color:var(--text-accent);background:var(--bg-chip-hover)}.type-lesson-item.locked{opacity:.5;cursor:not-allowed}.type-lesson-num{color:var(--text-accent);font-weight:700}.type-lesson-title{color:var(--text-primary)}.type-lesson-meta{color:var(--text-dim);font-size:var(--font-size-sm)}.type-play-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.type-play-title{color:var(--text-accent);font-weight:600}.type-hud{font-size:var(--font-size-sm);color:var(--text-dim);gap:18px;display:flex}.type-hud b{color:var(--text-accent);margin-left:4px;font-weight:700}.type-progress{background:var(--border-color);border-radius:3px;height:6px;margin-bottom:16px;overflow:hidden}.type-progress-fill{background:var(--text-accent);height:100%;box-shadow:0 0 8px var(--border-glow);transition:width .1s linear}.type-target{letter-spacing:1px;white-space:pre-wrap;word-break:break-word;border:1px solid var(--border-color);background:#00000040;border-radius:6px;margin-bottom:18px;padding:18px 20px;font-size:22px;line-height:1.9}.tc{color:var(--text-muted);transition:color 50ms}.tc.done{color:var(--text-accent)}.tc.pend{color:var(--text-dim)}.tc.cur{color:var(--bg-terminal);background:var(--text-accent);box-shadow:0 0 8px var(--border-glow);border-radius:2px}.tc.cur.err{background:var(--text-error);color:#fff;box-shadow:0 0 10px #f339}.type-keyboard{flex-direction:column;align-items:center;gap:5px;display:flex}.tk-row{gap:5px;display:flex}.tk-row-bottom{margin-top:2px}.tk-key{border:1px solid var(--border-color);background:var(--bg-chip);width:40px;height:40px;color:var(--text-secondary);text-transform:uppercase;box-sizing:border-box;border-bottom:3px solid #0000;border-radius:5px;justify-content:center;align-items:center;font-size:13px;display:inline-flex;position:relative}.tk-space{width:240px}.tk-shift{width:68px;font-size:10px}.tk-key.home{color:var(--text-primary);font-weight:700}.tk-key.home:after{content:"";background:var(--text-accent);border-radius:2px;width:12px;height:2px;position:absolute;bottom:4px;left:50%;transform:translate(-50%)}.tk-key.next{background:var(--text-accent);color:#000;border-color:var(--text-accent);box-shadow:0 0 14px var(--border-glow);transform:translateY(-2px)}.f-lp{border-bottom-color:#ff6b6b}.f-lr{border-bottom-color:#ffa94d}.f-lm{border-bottom-color:#ffe066}.f-li{border-bottom-color:#8ce99a}.f-ri{border-bottom-color:#66d9e8}.f-rm{border-bottom-color:#74c0fc}.f-rr{border-bottom-color:#b197fc}.f-rp{border-bottom-color:#f783ac}.f-th{border-bottom-color:#ced4da}.type-finger-cue{text-align:center;color:var(--text-secondary);font-size:var(--font-size-sm);margin-top:12px}.type-finger-cue b{color:var(--text-accent)}.type-finger-name{font-weight:700}.tut-piano{gap:4px;max-width:620px;height:150px;margin:8px auto 4px;display:flex}.tut-pkey{border:1px solid var(--border-color);color:var(--text-secondary);background:#ffffff0d;border-radius:0 0 5px 5px;flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:6px;padding-bottom:12px;transition:all 80ms;display:flex}.tut-pkey.next{background:var(--text-accent);color:#000;box-shadow:0 0 16px var(--border-glow)}.tut-pkey.lit{background:var(--text-highlight);color:#000}.tut-pkey.wrong{background:var(--text-error);color:#fff}.tut-pkey-note{font-size:13px;font-weight:700}.tut-pkey-kbd{opacity:.8;font-size:11px}.note-prompt{text-align:center;color:var(--text-secondary);margin:6px 0 14px;font-size:18px}.note-target{color:var(--text-accent);text-shadow:var(--text-shadow-glow);margin-left:6px;font-size:28px;font-weight:700}.echo-status{text-align:center;color:var(--text-accent);letter-spacing:1px;min-height:22px;margin:10px 0 14px;font-weight:600}.type-results{text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.type-result-title{color:var(--text-accent);text-shadow:var(--text-shadow-glow);margin:10px 0 18px;font-size:24px}.type-result-stats{gap:32px;margin-bottom:12px;display:flex}.type-result-stats>div{flex-direction:column;gap:4px;display:flex}.type-result-stats .rl{color:var(--text-dim);text-transform:uppercase;letter-spacing:1px;font-size:11px}.type-result-stats .rv{color:var(--text-accent);font-size:26px;font-weight:700}.type-unlock{color:var(--text-warning);margin-top:10px;font-weight:600}.type-result-actions{gap:12px;margin-top:22px;display:flex}@media (width<=700px){.type-academy{font-size:var(--font-size-sm);padding:10px 12px}.type-sub{display:none}.type-target{padding:12px;font-size:18px}.tk-key{width:26px;height:30px;font-size:10px}.tk-space{width:130px}.tk-shift{width:44px}.type-menu-item{grid-template-columns:24px 1fr}.type-menu-item .type-menu-hint{display:none}.type-hud{gap:10px;font-size:11px}.tut-piano{height:120px}}@media (prefers-reduced-motion:reduce){[data-theme] *{transition:none!important;animation:none!important}.cursor-block{opacity:1;animation:none}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth;font-size:16px}body{font-family:var(--font-mono);color:var(--text-primary);background:radial-gradient(120% 90% at 50% 0,#ddd4c1 0%,#0000 60%),#c7bda2 linear-gradient(160deg,#d6cdb8 0%,#c7bda2 52%,#b0a688 100%);height:100dvh;margin:0;padding:0;overflow:hidden}::selection{background:var(--selection-bg);color:var(--text-primary)}.skip-link{background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-color);font-family:var(--font-mono);font-size:var(--font-size-sm);z-index:10000;border-radius:4px;padding:8px 16px;text-decoration:none;position:absolute;top:-100%;left:16px}.skip-link:focus{top:8px}#seo-content{max-width:800px;font-family:var(--font-mono);margin:0 auto;padding:48px 24px;line-height:1.7}#seo-content h1{color:var(--text-accent);margin-bottom:16px;font-size:1.8rem}#seo-content h2{color:var(--text-secondary);border-bottom:1px solid var(--border-color);margin-top:32px;margin-bottom:12px;padding-bottom:8px;font-size:1.3rem}#seo-content h3{color:var(--text-accent);margin-top:20px;margin-bottom:8px;font-size:1.1rem}#seo-content p{color:var(--text-primary);margin-bottom:12px}#seo-content ul{margin-bottom:12px;margin-left:20px}#seo-content li{margin-bottom:6px}#seo-content a{color:var(--link-color)}body.crt-ready #seo-content,body.terminal-active #seo-content{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}
