TITLE: guest@portfolio — a working shell that is also a portfolio PROMPT: Build a single self-contained HTML page: a full-viewport terminal emulator styled as a real desktop window, on a #06080c page ground. The window is min(1080px,100%) wide and min(86dvh,760px) tall, 13px radius, background #0b0e14, 1px #232a35 border, deep drop shadow. Title bar 42px tall with a linear-gradient(180deg,#161c25,#0f141c) fill, three traffic-light dots (#ff5f57, #febc2e, #28c840), a centred ui-monospace 12px title "guest@portfolio — zsh — 96×30" in #8b949e with the shell name in #e6e6e6, and a right-aligned bordered chip button labelled "theme". Below it a scrollable screen region with 14–15px ui-monospace text in #e6e6e6, line-height 1.62, overlaid by two pointer-events:none layers: a radial vignette (transparent centre → rgba(0,0,0,.62) at the edges) and a 3px repeating-linear-gradient scanline layer that drifts 6px over 3.2s. The footer holds a dim 11.5px hint line ("try: help · whoami · ls projects · cat resume · open sunflower · theme") and the prompt row: green "guest@portfolio", dim ":", accent "~", dim "$ ", the typed text, and a blinking block cursor built as a .62em×1.04em span whose background alternates #7ee787/transparent on a 1.06s steps(1) loop; while output streams the cursor turns #58a6ff and the prompt dims. Palette: #0b0e14 terminal, #e6e6e6 text, #58a6ff accent, #7ee787 green, #30363d dim, #f0b429 warn. A .light class on the root flips every custom property to a paper palette (#f8f9fb bg, #1c2128 text, #0a66c2 accent, #146c2e green, #d4dae2 dim) with a .45s colour transition. Implement a real command registry (help, whoami, ls, cat, open, theme, neofetch, history, date, echo, pwd, cd, sudo, exit, clear, banner), a whitespace parser, a history stack with up/down recall, Tab completion of command names and of sub-targets (ls/cat/open/theme), ctrl+L clear, ctrl+C cancel, and a streaming output queue that appends one character at a time into per-segment spans at ~7ms/char with a 42ms gap between lines — no eval anywhere. Boot prints a wordmark, a rule, "shell ready · 12 commands registered" and the hint, then focuses a 1px transparent input that captures all keystrokes. All CSS in one inline style block, all JS in one IIFE in one inline script at the end of body; system monospace stack only; no external resources; no createElementNS. DESCRIPTION: A monochrome terminal that behaves like the real thing. It boots with a small wordmark, registers a dozen commands, and streams its answers character by character like a machine thinking out loud. Every command returns genuinely written content — a curriculum vitae, project cards, a stack table, a neofetch block with a block-character portrait — so the "portfolio" is literally the shell's output rather than a page pretending to be one. One accent blue and one green carry all emphasis; a scanline drift and a radial vignette give it the faint glow of a CRT without any image assets. TECHNIQUES: command registry object plus whitespace parser and dispatch (no eval); streaming output queue with per-character setTimeout typing and per-segment coloured spans; history stack with index recall; Tab completion over command names and argument pools; CSS custom-property theming switched by a single root class; blinking block cursor animated by background-colour steps rather than opacity; static scanline layer drifted with transform only; radial-gradient vignette; smooth scrollback with auto-stick-to-bottom; prefers-reduced-motion switching output to instant and stopping the cursor blink and scanline drift. INTERACTION: Type any command and press Enter — output streams in. Tab completes command names and their arguments. Up/Down recall history. ctrl+L wipes the screen, ctrl+C cancels the current line with a ^C echo. The title-bar chip and the `theme` command both flip the window between dark and light palettes. `ls projects` lists four projects; `open sunflower|tidepool|lantern|drift` prints a project card; `cat resume|about|stack|contact|now` prints documents; `neofetch` draws a block portrait with facts; `help` prints the command table. Clicking anywhere in the window refocuses the input.