:root{--bg:#101411;--panel:#050705;--text:#d4dfd1;--accent:#c7f4a7;--bright:#c1ed9f;--ps1:#a7d487;--highlight:#ecb873;--err:#e0a26c;--muted:#a8b69f;--dim:#91a581;--border:#34402f;--border-soft:#2d3829;--border-strong:#536149;--underline:#4c5c44;--sel-bg:#edff88;--sel-text:#151515;--focus:#ef591f;--scanline:#a7e79703;--row-hover:#a7e79704;--ascii:#99c67d;--ascii-glow:#90e96b33;color-scheme:dark}
[data-theme="amber"]{--bg:#171006;--panel:#0e0903;--text:#e8d5ab;--accent:#ffb347;--bright:#ffcf7d;--ps1:#e0993f;--highlight:#ff7e5f;--err:#ff6b6b;--muted:#c4ad83;--dim:#97835c;--border:#4d3c1e;--border-soft:#332812;--border-strong:#6e582f;--underline:#5f4c28;--sel-bg:#ffb347;--sel-text:#171006;--focus:#ff7e5f;--scanline:#ffb34714;--row-hover:#ffb3470d;--ascii:#dba24a;--ascii-glow:#ffb3472e;color-scheme:dark}
[data-theme="paper"]{--bg:#f2efe6;--panel:#e7e3d5;--text:#2d2c27;--accent:#1a6b34;--bright:#0e5c2a;--ps1:#3f7d46;--highlight:#b45309;--err:#b3261e;--muted:#5c5b52;--dim:#8b8a7d;--border:#d6d2c2;--border-soft:#e0dccc;--border-strong:#b5b2a0;--underline:#c9c5b2;--sel-bg:#ffe28a;--sel-text:#2d2c27;--focus:#b45309;--scanline:#2d2c2708;--row-hover:#1a6b340d;--ascii:#5c8a4a;--ascii-glow:#1a6b3422;color-scheme:light}
[data-theme="tokyo"]{--bg:#1a1b26;--panel:#11121a;--text:#c0caf5;--accent:#7aa2f7;--bright:#7dcfff;--ps1:#9ece6a;--highlight:#ff9e64;--err:#f7768e;--muted:#9aa5ce;--dim:#565f89;--border:#2f334d;--border-soft:#292e42;--border-strong:#414868;--underline:#3b4261;--sel-bg:#33467c;--sel-text:#c0caf5;--focus:#ff9e64;--scanline:#7aa2f710;--row-hover:#7aa2f70d;--ascii:#5d81c4;--ascii-glow:#7aa2f726;color-scheme:dark}
[data-theme="gruvbox"]{--bg:#282828;--panel:#1d2021;--text:#ebdbb2;--accent:#fabd2f;--bright:#b8bb26;--ps1:#8ec07c;--highlight:#fe8019;--err:#fb4934;--muted:#bdae93;--dim:#7c6f64;--border:#504945;--border-soft:#3c3836;--border-strong:#665c54;--underline:#504945;--sel-bg:#504945;--sel-text:#ebdbb2;--focus:#fe8019;--scanline:#b8bb260d;--row-hover:#b8bb260a;--ascii:#98971a;--ascii-glow:#b8bb2626;color-scheme:dark}
[data-theme="dracula"]{--bg:#282a36;--panel:#1e2029;--text:#f8f8f2;--accent:#bd93f9;--bright:#50fa7b;--ps1:#8be9fd;--highlight:#ffb86c;--err:#ff5555;--muted:#b6b8c9;--dim:#6272a4;--border:#44475a;--border-soft:#363948;--border-strong:#6272a4;--underline:#44475a;--sel-bg:#44475a;--sel-text:#f8f8f2;--focus:#ff79c6;--scanline:#bd93f910;--row-hover:#bd93f90d;--ascii:#7c80ab;--ascii-glow:#bd93f926;color-scheme:dark}
body{background:var(--bg);color:var(--text);font-family:'Space Mono',monospace;background-image:linear-gradient(var(--scanline) 1px,transparent 1px);background-size:100% 4px}.wrap{max-width:1180px}a:focus-visible,#cube:focus-visible{outline:2px solid var(--bright);outline-offset:5px}.masthead{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:28px 0 20px;border-bottom:1px solid var(--border);font-size:12px}.site-name{color:var(--accent);font-weight:700;letter-spacing:.03em}.masthead nav{display:flex;flex-wrap:wrap;gap:24px;color:var(--muted)}.masthead a,.masthead nav button,.actions a{display:inline-flex;align-items:center;min-height:44px}.masthead a:hover,.masthead nav button:hover,.actions a:hover{background:var(--bright);color:var(--bg)}.introduction{padding:54px 0 72px}.command{font:400 12px/1.8 'Space Mono',monospace;color:var(--muted);margin:0 0 28px;overflow-wrap:anywhere}.ps1{color:var(--ps1)}.path{color:var(--accent)}.terminal-hero{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:56px;align-items:center}.terminal-hero h1{font-family:'VT323',monospace;font-size:64px;font-weight:400;line-height:1.02;letter-spacing:-1px;color:var(--accent);margin:0 0 26px;max-width:620px}.terminal-hero h1 span{color:var(--highlight)}.terminal-hero .actions{gap:12px 24px;color:var(--bright);font-size:12px}
.ascii-panel{min-width:0;display:flex;flex-direction:column;justify-content:center}.ascii-panel pre{color:var(--ascii);font:11px/1.2 'Space Mono',monospace;margin:0 auto 24px;text-shadow:0 0 22px var(--ascii-glow);cursor:grab;touch-action:pan-y;user-select:none;-webkit-user-select:none}.ascii-panel pre.spinning{cursor:grabbing}
.directory{padding:0 0 64px}.dir-table{margin-top:8px;border-top:1px solid var(--border-strong)}.project-row{display:grid;grid-template-columns:210px minmax(0,1fr) 128px;gap:32px}.project-row{padding:28px 0;border-bottom:1px solid var(--border-soft);align-items:start}.project-row:hover{background:var(--row-hover)}.project-name h3{font-size:19px;font-weight:400;margin:1px 0 8px}.project-name h3 a{color:var(--bright);text-decoration:underline;text-underline-offset:5px;text-decoration-color:var(--underline)}.project-name h3 a:hover{text-decoration-color:var(--bright)}.project-name span{font-size:10px;color:var(--dim)}.project-row .description{font:12px/1.9 'Space Mono',monospace;color:var(--muted);margin:0;max-width:62ch}.project-row .project-links{flex-direction:column;align-items:flex-start;gap:0;color:var(--bright);font-size:11px;margin-top:-10px}.project-row .project-links a{min-height:44px}
.project-name h3{display:flex;align-items:center;gap:12px}.project-icon{width:24px;height:28px;object-fit:contain;flex-shrink:0}.project-name>span{display:block;padding-left:36px}
@media(min-width:701px) and (max-width:1000px){.project-name h3{font-size:17px}}
.console{padding:0 0 60px}.shell-help{font:11px/1.9 'Space Mono',monospace;color:var(--dim);margin:0 0 24px}.shell-help strong{color:var(--text);font-weight:400}.console-out:empty{display:none}.console-out:empty+.console-form{margin-top:0}.console-out{font-size:12px;line-height:1.75;color:var(--muted)}.sh-line{white-space:pre-wrap;overflow-wrap:anywhere}.sh-echo{color:var(--bright);margin-top:20px}.console-out>*:first-child{margin-top:0}.sh-ps1{color:var(--ps1)}.sh-line.muted{color:var(--dim)}.sh-line.err{color:var(--err)}.sh-line.accent{color:var(--accent)}.sh-ls{color:var(--bright)}.sh-para{margin:2px 0 0;font-size:12px;line-height:1.85;max-width:640px;color:var(--muted)}.sh-link{display:inline-block;color:var(--bright);text-decoration:underline;text-underline-offset:4px;margin-top:8px;overflow-wrap:anywhere}.sh-projects{margin-top:4px}.sh-proj{display:grid;grid-template-columns:160px minmax(0,1fr);gap:1px 18px;padding:11px 0;border-bottom:1px dashed var(--border-soft)}.sh-proj-name{color:var(--bright);text-decoration:underline;text-underline-offset:4px}.sh-proj-type{font-size:11px;color:var(--dim)}.sh-proj-desc{grid-column:2;margin:3px 0 0;font:11px/1.7 'Space Mono',monospace;color:var(--muted);max-width:600px}
.console-form{display:flex;flex-wrap:wrap;align-items:center;gap:0 1ch;margin-top:20px;font:12px 'Space Mono',monospace;min-height:44px;scroll-margin-bottom:24px}.console-form label{color:var(--ps1);overflow-wrap:anywhere;max-width:100%;line-height:1.8}.console-field{flex:1 1 140px;min-width:0;display:flex;min-height:44px;align-items:center;position:relative}.console-field input{width:100%;min-width:0;background:none;border:0;padding:8px 0;color:var(--bright);font:inherit;caret-color:transparent;outline:0}.console-form:focus-within{box-shadow:0 1px var(--border-strong)}.console-caret{position:absolute;top:50%;left:0;width:.6em;height:1.4em;transform:translateY(-50%);font:inherit;background:var(--bright);opacity:.4;pointer-events:none;animation:caret-blink 1.1s step-end infinite}.console-field:focus-within .console-caret{opacity:.75}@keyframes caret-blink{50%{opacity:0}}@media(prefers-reduced-motion:reduce){.console-caret{animation:none}}@media(pointer:coarse){.console-form,.sh-echo{font-size:16px}}
.footer{border-top:1px solid var(--border);color:var(--dim);font-size:10px;align-items:center}.footer a{color:var(--bright);display:inline-flex;align-items:center;min-height:44px}
@media(max-width:1000px){.terminal-hero{gap:32px;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}.terminal-hero h1{font-size:56px}.ascii-panel pre{font-size:9px}.project-row{grid-template-columns:175px minmax(0,1fr) 116px;gap:24px}}
@media(max-width:700px){.masthead{flex-wrap:wrap;gap:0 20px;padding:18px 0 12px}.masthead nav{gap:20px;font-size:11px}.introduction{padding:36px 0 52px}.command{font-size:11px;margin-bottom:24px}.terminal-hero{grid-template-columns:minmax(0,1fr);gap:28px}.terminal-hero h1{font-size:clamp(42px,9vw,56px);line-height:1.04;letter-spacing:-.5px;margin-bottom:20px}.terminal-hero .actions{gap:4px 16px;font-size:11px}.ascii-panel pre{font-size:5.5px;width:fit-content;max-width:100%;margin:0 auto}.directory{padding-bottom:48px}.project-row{grid-template-columns:minmax(0,1fr);gap:12px;padding:24px 0}.project-name h3{margin-bottom:5px}.project-row .project-links{flex-direction:row;gap:24px;margin-top:-4px}.project-row .description{font-size:12px}.console{padding-bottom:40px}.shell-help{font-size:10px}.sh-proj{grid-template-columns:minmax(0,1fr)}.sh-proj-desc{grid-column:1}.footer{flex-direction:row;flex-wrap:wrap;gap:0 20px;padding-top:16px;padding-bottom:16px}}
@media(max-width:360px){.ascii-panel pre{font-size:4.5px}.masthead nav{gap:16px}}
.masthead nav button{background:none;border:0;padding:0;color:inherit;cursor:pointer}
.theme-picker{position:fixed;inset:0;z-index:900;display:flex;align-items:center;justify-content:center;background:#0009;padding:24px}
.theme-picker[hidden]{display:none}
.theme-deck{display:flex;flex-direction:column;align-items:center;gap:14px;font:12px 'Space Mono',monospace}
.theme-row{display:flex;align-items:center;gap:12px}
.theme-card{display:flex;flex-direction:column;gap:10px;align-items:center;background:var(--panel);border:1px solid var(--border-strong);padding:12px;cursor:pointer}
.theme-card img{width:min(70vw,540px);border:1px solid var(--border);background:var(--bg)}
.theme-name{color:var(--accent)}
.theme-count{color:var(--dim)}
.theme-step{background:none;border:1px solid var(--border-strong);color:var(--bright);padding:0 10px;min-height:44px;cursor:pointer;white-space:nowrap;flex:0 0 auto}
.theme-step:hover{background:var(--bright);color:var(--bg)}
.theme-hint{color:var(--dim);margin:0}
@media(max-width:700px){.theme-picker{padding:16px;touch-action:pan-y}.theme-deck{width:100%;max-width:568px}.theme-row{width:100%}.theme-card{flex:1 1 auto;min-width:0}.theme-card img{width:100%}.theme-step{padding:0 8px}.theme-hint{display:none}}
