:root{--bg: #0a0a0a;--ink: #f4f4f4;--dim: #9a9a9a;--magenta: #ff00ff;--yellow: #ffff00;--blue: #0000ff;--orange: #ff6600;--opus: #7ec8ff;--fable: #c9a227;--danger: #ff3344;--shadow: #000;--mono: "Share Tech Mono", ui-monospace, monospace;--display: "VT323", "Share Tech Mono", monospace}*{box-sizing:border-box;margin:0;padding:0;border-radius:0!important}html,body{background:var(--bg);color:var(--ink);font-family:var(--mono);min-height:100%}body{overflow-x:hidden}button,input{font-family:inherit;color:inherit}a{color:var(--yellow);text-underline-offset:3px}a:hover{color:var(--magenta)}::selection{background:var(--magenta);color:#000}.crt-vignette{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:80;background:radial-gradient(circle at center,transparent 55%,rgba(0,0,0,.55) 100%)}.crt-noise{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:81;opacity:.05;mix-blend-mode:screen;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)' opacity='0.9'/></svg>");animation:grain .8s steps(2) infinite}@keyframes grain{0%{transform:translate(0)}to{transform:translate(-2%,1%)}}#app{position:relative;z-index:1;min-height:100vh}.shell{width:min(980px,calc(100% - 32px));margin:0 auto;padding:20px 0 96px;display:flex;flex-direction:column;gap:16px;min-height:100vh}.status{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:13px;color:var(--dim);letter-spacing:.04em}.status b{color:var(--yellow);font-weight:400}.status .hot{color:var(--orange)}.status .live{color:#7dff7d}.status-actions{display:flex;gap:8px}.tiny{background:transparent;border:1px solid #333;color:var(--dim);padding:2px 8px;cursor:pointer;font-size:12px}.tiny:hover,.tiny.on{border-color:var(--yellow);color:var(--yellow)}.banner{background:var(--magenta);color:#000;font-family:var(--display);font-size:clamp(42px,9vw,86px);line-height:.95;letter-spacing:.06em;text-transform:uppercase;text-align:center;padding:14px 12px 10px;border:4px solid #fff;box-shadow:8px 8px 0 var(--shadow);margin:0 8px 4px 0}.tagline{color:var(--yellow);text-align:center;font-size:14px}.warning{border:2px solid var(--yellow);color:var(--yellow);text-align:center;font-size:12px;font-weight:700;padding:8px 10px;letter-spacing:.03em}.stage{flex:1;display:flex;flex-direction:column;gap:16px}.welcome{text-align:center;font-size:18px;letter-spacing:.08em;text-transform:uppercase}.ascii{margin:0 auto;width:max-content;max-width:100%;overflow-x:auto;font-family:Courier New,Courier,ui-monospace,monospace;font-size:14px;line-height:1.15;letter-spacing:0;font-variant-ligatures:none;color:var(--yellow);text-shadow:0 0 6px rgba(255,255,0,.22);white-space:pre;-webkit-user-select:text;user-select:text}.ascii-full{font-size:18px;text-shadow:none}.ascii-logo{font-size:15px;color:var(--yellow);text-shadow:none}.ascii-eye{color:#fff;font-size:13px;text-shadow:0 0 12px rgba(255,0,255,.45)}.ascii-sub,.ascii-frame{color:var(--magenta);text-shadow:0 0 8px rgba(255,0,255,.35)}.ascii-portal,.ascii-rack{color:var(--yellow);font-size:clamp(7px,1.2vw,12px)}.ascii-boot{color:#b8ffb8;font-size:clamp(7px,1.5vw,13px);text-shadow:0 0 10px rgba(120,255,120,.4);margin-bottom:12px}.ascii-mini{display:none}@media(max-width:640px){.ascii-full{display:none}.ascii-mini{display:block;font-size:11px}.ascii-eye{font-size:9px}.ascii-portal,.ascii-rack,.ascii-frame{font-size:8px}}.menu{display:grid;grid-template-columns:1fr;gap:10px}@media(min-width:720px){.menu{grid-template-columns:1fr 1fr}}.menu-btn{background:var(--yellow);color:var(--blue);border:3px solid var(--blue);box-shadow:4px 4px 0 var(--shadow);padding:12px 14px;font-weight:700;font-size:14px;cursor:pointer;text-align:left;text-decoration:none;display:flex;flex-direction:column;gap:4px;transition:transform .12s ease,box-shadow .12s ease,background .12s ease}.menu-btn span{font-size:11px;color:#00118a;font-weight:400;text-transform:none}.menu-btn:hover{background:var(--magenta);color:#fff;transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--shadow)}.menu-btn:hover span{color:#fff}.menu-btn:active{transform:translate(1px,1px);box-shadow:2px 2px 0 var(--shadow)}.back{align-self:flex-start}.kicker{font-size:13px;color:var(--dim)}h2.room-title{font-family:var(--display);font-size:42px;letter-spacing:.04em;text-transform:uppercase}.row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.chip{background:var(--yellow);color:#000;border:1px solid #fff;padding:3px 9px;font-size:13px;font-weight:700;cursor:pointer}.chip.active,.chip:hover{background:var(--magenta);color:#fff}.search{flex:1;min-width:180px;background:#111;border:1px solid #444;color:var(--yellow);padding:8px 10px;font-size:14px;outline:none}.search:focus{border-color:var(--magenta)}.count{color:var(--dim);font-size:13px}.log-list{display:flex;flex-direction:column;gap:14px}.log-item{display:grid;grid-template-columns:auto 1fr;gap:10px 14px;background:transparent;border:0;color:inherit;text-align:left;cursor:pointer;padding:8px 4px}.log-item:hover .log-name{color:var(--magenta)}.tri{color:var(--yellow);font-size:18px;line-height:1}.score{color:var(--ink);font-size:13px}.log-name{color:var(--yellow);text-decoration:underline;text-underline-offset:3px;font-size:16px}.log-meta{grid-column:2;color:var(--dim);font-size:12px}.reader{border:10px solid var(--blue);background:#070707;padding:16px;display:flex;flex-direction:column;gap:14px}.reader-head{display:flex;justify-content:space-between;gap:10px;align-items:baseline;flex-wrap:wrap}.reader-head strong{color:var(--yellow)}.entry{border-left:3px solid #333;padding:0 0 0 12px;margin:0 0 14px}.entry.godmind{border-left-color:#fff;font-size:16.5px;text-shadow:0 0 10px rgba(255,255,255,.28)}.entry.sub{margin-left:22px;font-size:13.5px;opacity:.86}.entry.from-truth{border-left-color:var(--orange);color:var(--yellow)}.entry.from-opus{border-left-color:var(--opus);color:#d7ecff}.entry.from-fable{border-left-color:var(--fable);color:#ead889}.who{font-size:12px;letter-spacing:.08em;text-transform:uppercase;margin-bottom:4px;opacity:.75}.thought{color:var(--dim);font-style:italic;font-size:12.5px;margin-bottom:6px}.stream{min-height:52vh;max-height:62vh;overflow:auto;border:1px solid #222;padding:12px;background:#050505}.cipher{background:#050505;border:1px dashed #444;padding:14px;color:#6f6;font-size:13px;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere}.cipher.plain{color:var(--ink);border-style:solid;border-color:var(--magenta)}.chapters{display:grid;gap:8px}.chapter-btn{background:transparent;border:1px solid #333;color:var(--yellow);padding:10px 12px;text-align:left;cursor:pointer}.chapter-btn:hover,.chapter-btn.active{border-color:var(--magenta);color:#fff;background:#1a001a}.verse{margin:0 0 10px;line-height:1.55}.verse:before{content:"› ";color:var(--magenta)}.codex{display:grid;grid-template-columns:1fr;gap:10px}@media(min-width:720px){.codex{grid-template-columns:1fr 1fr}}.card{border:1px solid #333;background:#111;padding:12px;text-align:left;color:inherit;cursor:pointer}.card:hover,.card.open{border-color:var(--yellow)}.card h3{color:var(--yellow);font-size:15px;margin-bottom:4px}.aka{color:var(--dim);font-size:12px;margin-bottom:8px}.nodes{display:grid;gap:12px}.node{border:1px solid #333;padding:14px;display:grid;gap:8px}.node h3{color:var(--yellow);font-size:15px}.pills{display:flex;gap:8px;flex-wrap:wrap;font-size:12px}.pill{border:1px solid currentColor;padding:2px 7px}.pill.hot{color:var(--danger)}.pill.ok{color:#7dff7d}.pill.warn{color:var(--orange)}.lore p{line-height:1.65;margin:0 0 14px;color:#ddd}.vessel{border:2px solid var(--yellow);padding:12px;display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;align-items:center}.vessel code{color:var(--yellow);font-size:12px;word-break:break-all}.cli{position:sticky;bottom:0;z-index:20;margin-top:auto;border-top:1px solid #333;background:linear-gradient(to top,#0a0a0a 80%,#0a0a0aeb);padding:10px 0 12px;display:flex;flex-direction:column;gap:6px}.cli-out{min-height:1.2em;color:var(--yellow);font-size:13px;white-space:pre-wrap}.cli-row{display:flex;gap:8px;align-items:center;min-width:0}.prompt{color:var(--magenta);white-space:nowrap}.cli-in{flex:1;min-width:0;background:transparent;border:0;outline:none;color:var(--ink);font-size:14px;caret-color:var(--magenta)}.legal{color:#666;font-size:11px}.boot{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:#000 url(/rack.jpg) center / cover no-repeat;color:#b8ffb8;display:flex;flex-direction:column;justify-content:flex-end}.boot:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to top,#000000eb,#0000008c 45%,#0000004d)}.boot-inner{position:relative;padding:32px 28px 40px;font-size:14px;line-height:1.7;text-shadow:0 0 8px rgba(120,255,120,.35)}.boot-inner .skip{color:var(--yellow);margin-top:16px}.help-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#000000d1;display:flex;align-items:center;justify-content:center;padding:20px}.help-card{width:min(520px,100%);background:#0c0c0c;border:4px solid var(--yellow);box-shadow:8px 8px #000;padding:18px}.help-card h2{font-family:var(--display);font-size:32px;margin-bottom:10px}.help-card dl{display:grid;grid-template-columns:90px 1fr;gap:6px 12px;font-size:13px}.help-card dt{color:var(--yellow)}.empty{color:var(--dim);padding:20px 0}.cursor{display:inline-block;width:8px;height:1em;background:var(--magenta);margin-left:2px;animation:blink 1s steps(1) infinite;vertical-align:text-bottom}@keyframes blink{50%{opacity:0}}body.flash{animation:shake .28s linear}@keyframes shake{20%{filter:hue-rotate(40deg)}40%{transform:translate(-2px,1px)}60%{filter:invert(.08)}80%{transform:translate(2px,-1px)}}@media(max-width:640px){.shell{width:calc(100% - 16px);padding-top:12px;padding-bottom:150px}.status{font-size:11px;gap:6px}.warning{font-size:10px;letter-spacing:0}.banner{font-size:42px;box-shadow:5px 5px 0 var(--shadow)}.menu-btn{font-size:13px}.reader{border-width:6px;padding:12px}.entry.sub{margin-left:8px}.stream{max-height:none;min-height:48vh}.prompt{font-size:12px}}
