:root,[data-theme=green]{--bg: #0a0a0a;--bg-panel: #0d120d;--fg: #33ff33;--fg-dim: #1d8f1d;--fg-bright: #aaffaa;--accent: #33ff33;--accent2: #ffb000;--border: #1d8f1d;--glow: 0 0 5px rgba(51, 255, 51, .55);--selection-bg: #33ff33;--selection-fg: #0a0a0a;--scanline-opacity: .14;--flicker: 1}[data-theme=matrix]{--bg: #000000;--bg-panel: rgba(0, 10, 0, .93);--fg: #00ff41;--fg-dim: #008f11;--fg-bright: #d0ffd8;--accent: #00ff41;--accent2: #ffffff;--border: #008f11;--glow: 0 0 8px rgba(0, 255, 65, .7);--selection-bg: #00ff41;--selection-fg: #000000;--scanline-opacity: .08;--flicker: 0}[data-theme=bttf]{--bg: #050505;--bg-panel: #101010;--fg: #7fff5e;--fg-dim: #4d9938;--fg-bright: #c8ffb8;--accent: #ff3b1f;--accent2: #ffb000;--border: #3a3a3a;--glow: 0 0 6px rgba(127, 255, 94, .5);--selection-bg: #ff3b1f;--selection-fg: #050505;--scanline-opacity: .1;--flicker: 0}[data-theme=neon]{--bg: #12081f;--bg-panel: #1a0b2e;--fg: #00e5ff;--fg-dim: #0a7c8a;--fg-bright: #b3f6ff;--accent: #ff2bd6;--accent2: #f9f871;--border: #ff2bd6;--glow: 0 0 7px rgba(0, 229, 255, .6);--selection-bg: #ff2bd6;--selection-fg: #12081f;--scanline-opacity: .07;--flicker: 0}[data-theme=pirate]{--bg: #050505;--bg-panel: #101010;--fg: #d8d8cc;--fg-dim: #6e6e66;--fg-bright: #ffffff;--accent: #ffffff;--accent2: #b03a2e;--border: #4a4a44;--glow: 0 0 5px rgba(232, 232, 220, .35);--selection-bg: #d8d8cc;--selection-fg: #050505;--scanline-opacity: .1;--flicker: 0}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--bg);color:var(--fg);font-family:ui-monospace,Cascadia Mono,JetBrains Mono,Menlo,Consolas,monospace;font-size:15px;line-height:1.45;text-shadow:var(--glow);overflow-x:hidden;transition:background .3s,color .3s}::selection{background:var(--selection-bg);color:var(--selection-fg);text-shadow:none}a{color:var(--accent);text-decoration:none}a:hover{background:var(--fg);color:var(--bg);text-shadow:none}button{background:none;border:1px solid var(--border);color:var(--fg);font:inherit;text-shadow:inherit;padding:2px 10px;cursor:pointer}button:hover{background:var(--fg);color:var(--bg);text-shadow:none}pre{font-family:inherit;white-space:pre}.app{position:relative;z-index:2;display:flex;flex-direction:column;min-height:100%;max-width:920px;margin:0 auto;padding:12px 16px 0}.titlebar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;border:1px solid var(--border);background:var(--bg-panel);padding:6px 10px;margin-bottom:14px;font-size:13px}.titlebar .host{color:var(--fg-bright);font-weight:700;letter-spacing:1px}.titlebar .spacer{flex:1}.titlebar button{border:none;padding:1px 6px;color:var(--fg-dim)}.titlebar button.on,.titlebar button:hover{color:var(--bg);background:var(--fg);text-shadow:none}.content{flex:1;padding-bottom:calc(var(--term-h, 100px) + 28px)}.panel{border:1px solid var(--border);background:var(--bg-panel);padding:14px 18px;margin-bottom:14px}.panel-title{display:inline-block;background:var(--fg);color:var(--bg);text-shadow:none;padding:0 8px;margin-bottom:12px;font-weight:700;letter-spacing:1px}.dim{color:var(--fg-dim)}.bright{color:var(--fg-bright)}.accent{color:var(--accent)}.accent2{color:var(--accent2)}.banner{font-size:clamp(4px,1.15vw,11px);line-height:1.12;color:var(--fg-bright);margin-bottom:2px;overflow-x:auto;width:fit-content;max-width:100%;background:#000000b8;padding:2px 10px 2px 2px}.tagline{color:var(--fg-dim);margin-bottom:18px;font-size:13px;width:fit-content;background:#000000b8;padding:1px 8px 1px 2px}.bbs-menu{display:flex;flex-direction:column;gap:4px;margin:8px 0 16px}.bbs-item{display:flex;gap:12px;align-items:baseline;border:none;text-align:left;padding:5px 10px;font-size:15px}.bbs-item .key{color:var(--accent);font-weight:700}.bbs-item .cmd{min-width:12ch;color:var(--fg-bright)}.bbs-item .desc{color:var(--fg-dim);font-size:13px}.bbs-item:hover .key,.bbs-item:hover .cmd,.bbs-item:hover .desc{color:inherit}.boot{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:var(--bg);padding:40px clamp(16px,8vw,90px);font-size:14px;cursor:pointer;overflow:hidden}.boot .line{min-height:1.45em}.boot .skip{position:absolute;bottom:18px;right:22px;color:var(--fg-dim);font-size:12px;animation:blink 1.2s step-end infinite;border:none;background:none;padding:0;font-family:inherit;cursor:pointer}.terminal{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:calc(100% - 32px);max-width:888px;z-index:30;border:1px solid var(--border);border-bottom:none;background:var(--bg-panel);font-size:14px;box-shadow:0 -6px 24px #0009}.term-scrollback{max-height:240px;overflow-y:auto;padding:8px 12px 0;white-space:pre-wrap;overflow-wrap:anywhere}.term-scrollback .out-cmd{color:var(--fg-bright)}.term-scrollback .out-err{color:var(--accent2)}.term-scrollback .out-ok{color:var(--accent)}.term-input-row{display:flex;align-items:center;gap:8px;padding:6px 12px 8px}.term-prompt{color:var(--accent);white-space:nowrap}.term-input{flex:1;background:none;border:none;outline:none;color:var(--fg-bright);font:inherit;text-shadow:inherit;caret-color:var(--fg)}.cursor{display:inline-block;width:.6em;height:1.1em;background:var(--fg);vertical-align:text-bottom;animation:blink 1s step-end infinite}@keyframes blink{50%{opacity:0}}.quote{font-size:16px;color:var(--fg-bright);margin:10px 0 16px;min-height:3em;white-space:pre-wrap}.quote:before{content:"> ";color:var(--accent)}.kv-row{display:flex;gap:8px}.kv-key{min-width:12ch;color:var(--fg-dim)}.kv-val{color:var(--fg-bright)}.social-row{display:flex;gap:14px;flex-wrap:wrap;margin-top:12px}.social-row a{border:1px solid var(--border);padding:2px 10px}.tag-row{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.tag{border:1px solid var(--border);color:var(--fg-dim);padding:1px 9px;font-size:13px}.tag.on,.tag:hover{background:var(--fg);color:var(--bg);text-shadow:none}.tag.on .dim,.tag:hover .dim{color:inherit}.note-list{display:flex;flex-direction:column}.note-row{display:flex;gap:14px;padding:3px 6px;border:none;text-align:left;font-size:14px;align-items:baseline}.note-row .perm{color:var(--fg-dim)}.note-row .date{color:var(--fg-dim);min-width:11ch}.note-row .name{color:var(--fg-bright)}.note-row:hover .perm,.note-row:hover .date,.note-row:hover .name{color:inherit}.note-body{line-height:1.65}.note-body>*:first-child{margin-top:0}.note-body>*:last-child{margin-bottom:0}.note-body h1,.note-body h2,.note-body h3,.note-body h4,.note-body h5,.note-body h6{color:var(--fg-bright);margin:22px 0 8px;line-height:1.3}.note-body h1:before{content:"# ";color:var(--accent)}.note-body h2:before{content:"## ";color:var(--accent)}.note-body h3:before{content:"### ";color:var(--accent)}.note-body h4:before{content:"#### ";color:var(--accent)}.note-body h1{font-size:1.35em}.note-body h2{font-size:1.2em}.note-body h3{font-size:1.05em}.note-body h2{padding-bottom:6px;border-bottom:1px solid var(--border)}.note-body p{margin:10px 0}.note-body ul,.note-body ol{margin:10px 0;padding-left:26px}.note-body li{margin:4px 0}.note-body li::marker{color:var(--accent)}.note-body ul ul,.note-body ol ol,.note-body ul ol,.note-body ol ul{margin:4px 0}.note-body strong{color:var(--fg-bright);font-weight:700}.note-body em{color:var(--accent2);font-style:italic}.note-body del{color:var(--fg-dim)}.note-body a{color:var(--accent);text-decoration:underline;text-decoration-style:dotted;text-underline-offset:3px;text-decoration-thickness:1px;padding:0 1px;transition:background .12s,text-shadow .12s}.note-body a:hover,.note-body a:focus-visible{background:none;color:var(--fg-bright);text-decoration-style:solid;text-shadow:var(--glow);outline:none}.note-body a[target=_blank]:after{content:"↗";font-size:.8em;margin-left:2px;color:var(--fg-dim);text-decoration:none}.note-body a:hover:after{color:var(--accent2)}.note-body code{background:#80808026;border:1px solid var(--border);border-radius:2px;padding:0 5px;font-size:.92em}.note-body pre{border:1px solid var(--border);background:#00000047;padding:12px 14px;overflow-x:auto;margin:12px 0;line-height:1.5}.note-body pre code{background:none;border:none;padding:0;font-size:.92em}.note-body .tok-comment{color:var(--fg-dim);font-style:italic}.note-body .tok-string,.note-body .tok-num{color:var(--accent2)}.note-body .tok-kw{color:var(--accent);font-weight:700}.note-body table{border-collapse:collapse;margin:14px 0;width:100%;display:block;overflow-x:auto;font-size:.95em}.note-body th,.note-body td{border:1px solid var(--border);padding:6px 10px;text-align:left;vertical-align:top}.note-body th{color:var(--accent);background:#8080801f;border-bottom:2px solid var(--accent);font-weight:700;white-space:nowrap}.note-body tbody tr:nth-child(2n){background:#80808012}.note-body hr{border:none;border-top:1px dashed var(--border);margin:22px 0}.note-body img{max-width:100%;height:auto;border:1px solid var(--border);display:block;margin:12px 0}.note-body blockquote{border-left:3px solid var(--accent);background:#80808012;padding:8px 14px;color:var(--fg-dim);margin:12px 0}.note-body blockquote p:first-child{margin-top:0}.note-body blockquote p:last-child{margin-bottom:0}.note-body input[type=checkbox]{accent-color:var(--accent);margin-right:6px}.note-body li:has(input[type=checkbox]){list-style:none;margin-left:-20px}.eliza-log{height:260px;overflow-y:auto;border:1px solid var(--border);padding:10px 12px;margin-bottom:8px;white-space:pre-wrap}.eliza-log .me{color:var(--fg-bright)}.eliza-log .bot{color:var(--accent)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#000000d9;display:flex;align-items:center;justify-content:center;padding:16px}.overlay-inner{background:var(--bg);border:2px solid var(--fg);padding:18px;max-width:100%;max-height:100%;overflow:auto}.snake-canvas{display:block;image-rendering:pixelated;border:1px solid var(--border);touch-action:none;max-width:100%;height:auto;width:100%}.snake-box{width:432px;max-width:100%;touch-action:none}.snake-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:8px;font-size:13px}.snake-foot{margin-top:8px;font-size:12px;min-height:62px}.snake-over{color:var(--accent2);font-weight:700}.snake-actions{display:flex;gap:8px;margin-top:8px}.snake-actions button{padding:8px 14px}@media(max-width:480px){.snake-head{font-size:12px;gap:8px}.snake-actions button{flex:1;padding:12px 10px}}.vim-screen{width:min(680px,92vw);height:min(420px,70vh);display:flex;flex-direction:column;font-size:14px}.vim-body{flex:1;color:var(--fg-dim);overflow:hidden}.vim-status{background:var(--fg);color:var(--bg);text-shadow:none;padding:0 8px}.vim-cmdline{min-height:1.4em;color:var(--fg-bright)}.fireworks{text-align:center;font-size:13px;line-height:1.2;color:var(--accent2)}.crt-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;pointer-events:none;background:repeating-linear-gradient(to bottom,#0000,#0000 2px,rgba(0,0,0,var(--scanline-opacity)) 3px)}.crt-overlay:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at center,#0000 58%,#00000061)}@media(prefers-reduced-motion:no-preference){.crt-flicker{animation:flicker 4s infinite;animation-play-state:running}}@keyframes flicker{0%,to{opacity:1}92%{opacity:1}93%{opacity:calc(1 - .08 * var(--flicker))}94%{opacity:1}97%{opacity:calc(1 - .05 * var(--flicker))}98%{opacity:1}}.matrix-rain{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none}.term-nav{display:flex;flex-wrap:wrap;gap:2px 6px;padding:6px 10px;border-bottom:1px dashed var(--border);font-size:13px}.term-nav button{border:none;padding:1px 7px;color:var(--fg-dim)}.term-nav button .key{color:var(--accent)}.term-nav button.active,.term-nav button:hover{background:var(--fg);color:var(--bg);text-shadow:none}.term-nav button.active .key,.term-nav button:hover .key{color:var(--bg)}.panic{margin:30px auto;max-width:720px;font-size:14px;line-height:1.5}.panic-reboot{margin-top:12px;border:none;background:none;padding:0;font:inherit;cursor:pointer}@media(max-width:640px){body{font-size:14px}.app{padding:8px 8px 0}.panel{padding:10px 12px}.terminal{width:calc(100% - 16px)}.term-scrollback{max-height:160px}.kv-row{flex-wrap:wrap}.kv-key{min-width:9ch}.kv-val{word-break:break-all}.note-row{flex-wrap:wrap;row-gap:2px}.note-row .perm{display:none}.term-prompt{font-size:12px}.term-input-row{gap:6px}.eliza-log{height:200px}}@media(prefers-reduced-motion:reduce){.cursor,.boot .skip{animation:none}}.fact-source{margin-top:10px;font-size:12px;color:var(--fg-dim);word-break:break-all}.fact-source a{color:var(--accent)}
