:root{--fg:#3f6;--bg:#020a04;--fg-dim:#1fae45;--focus:#ffd54f;--narrator:#e0c060;--font:"VT323", "Courier New", Courier, monospace;--scanline-period:3px;--flicker-opacity:.96;--flicker-duration:.5s;--blink-duration:1s;--text-size:clamp(18px, 2.4vw, 26px);--vignette-end:.55;--screen-radius:3% / 4%;--screen-pad:max(1rem, 3%);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@font-face{font-family:VT323;src:url(/fonts/VT323-Regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}html,body{height:100%;color:var(--fg);font-family:var(--font);font-size:var(--text-size);background:#000;margin:0;padding:0;line-height:1.15;overflow-x:hidden}input,button,select{font-family:var(--font)}.app{inset:0;top:var(--vv-top,0);height:var(--vv-height,100dvh);box-sizing:border-box;background:#000;flex-direction:column;padding:.5rem;display:flex;position:fixed}.crt{box-sizing:border-box;min-height:0;padding:var(--screen-pad);background:var(--bg);color:var(--fg);border-radius:var(--screen-radius);text-shadow:0 0 4px,0 0 10px #33ff6659;animation:flicker var(--flicker-duration) infinite;flex-direction:column;flex:1;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 0 40px #000c,inset 0 0 120px #00000080,0 0 0 4px #0b130d}.crt:before{content:"";z-index:10;pointer-events:none;background:repeating-linear-gradient(to bottom, #00000038 0 1px, transparent 1px var(--scanline-period));position:absolute;inset:0}.crt:after{content:"";z-index:11;pointer-events:none;border-radius:inherit;background:radial-gradient(ellipse at center, transparent 60%, rgba(0, 0, 0, var(--vignette-end)) 100%);position:absolute;inset:0}.controls{text-shadow:none;flex-wrap:wrap;flex:none;align-items:center;gap:.4rem .8rem;padding:0 0 .5rem;font-size:max(16px,.8em);display:flex}.controls [role=radiogroup]{gap:.25rem;display:inline-flex}.controls label{color:var(--fg-dim)}.controls button,.controls select,.controls a{color:var(--fg);background:var(--bg);border:1px solid var(--fg-dim);font-size:inherit;cursor:pointer;border-radius:2px;padding:.1em .5em;line-height:1.2;text-decoration:none}.controls button[aria-checked=true],.controls button[aria-pressed=true]{background:var(--fg);color:var(--bg)}.controls button:hover,.controls select:hover,.controls a:hover{border-color:var(--fg)}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}#transcript,.transcript{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--fg-dim) var(--bg);flex:1;min-height:0;overflow:hidden auto}.line{white-space:pre-wrap;overflow-wrap:anywhere;font-family:var(--font);margin:0}.line:empty:before{content:"​"}.line--original,.line--input{color:var(--fg)}.line--notice{color:var(--fg-dim);font-style:normal}.line--boot{color:var(--fg-dim)}.line--narrator{color:var(--narrator);text-shadow:0 0 4px;border-left:3px solid var(--narrator);opacity:.9;padding-left:.6em}.input-line{flex:none;align-items:baseline;gap:0;padding-top:.25rem;display:flex}.prompt{white-space:pre;flex:none}.input-wrap{flex:1;min-width:0;position:relative}.input-line input,#input{box-sizing:border-box;width:100%;color:var(--fg);caret-color:#0000;font-family:var(--font);text-shadow:inherit;letter-spacing:0;appearance:none;background:0 0;border:0;border-radius:0;outline:none;margin:0;padding:0;font-size:max(16px,1em);line-height:1.15;display:block}.input-line input:disabled{opacity:.5}.cursor{background:var(--fg);width:1ch;height:1em;box-shadow:0 0 6px var(--fg);pointer-events:none;animation:blink var(--blink-duration) steps(1) infinite;position:absolute;top:.1em;left:0}.input-line input:focus-visible{outline:none}@keyframes flicker{0%,to{opacity:1}50%{opacity:var(--flicker-opacity)}}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.sr-only{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=599px){:root{--vignette-end:.25;--screen-radius:1% / 1.5%;--screen-pad:max(1.25rem, 5%)}.app{padding:.25rem}}@media (prefers-reduced-motion:reduce){.crt,.crt:before,.crt:after,.cursor{transition:none!important;animation:none!important}.cursor{opacity:1}}html[data-crt=off] .crt{box-shadow:none;text-shadow:none;background:var(--bg);border-radius:0;animation:none}html[data-crt=off] .crt:before,html[data-crt=off] .crt:after{content:none;display:none}html[data-crt=off] .cursor{box-shadow:none}html[data-crt=off] .line--narrator{text-shadow:none}
