:root{color-scheme:dark;--phosphor:#a0ff91;--halo:rgba(89,255,94,.48);--haze:rgba(66,255,83,.16);background:#000;color:var(--phosphor);font-family:"Lucida Console","SFMono-Regular",Consolas,"Liberation Mono",monospace;font-size:var(--terminal-font-size,10px);line-height:1.6}
:root[data-phosphor="amber"]{--phosphor:#ffd18b;--halo:rgba(255,172,62,.5);--haze:rgba(255,146,36,.16)}
*{box-sizing:border-box}
html{width:100%;min-height:100%;margin:0;padding:0;overflow-x:clip;scrollbar-width:none;background:#000;scroll-behavior:auto;overflow-anchor:none}
body{position:relative;width:100%;min-height:100dvh;overflow:clip;margin:0;padding:0;background:#000;touch-action:manipulation;-webkit-touch-callout:none;user-select:none;-webkit-user-select:none;-webkit-text-size-adjust:100%;text-size-adjust:100%;cursor:grab}
html::-webkit-scrollbar,body::-webkit-scrollbar{display:none}
body[data-dragging="true"]{cursor:grabbing}
#root{position:relative;min-height:100dvh;margin:0;padding:0}
#phosphor-field{position:absolute;top:-15lvh;left:0;width:100%;height:130lvh;pointer-events:none;z-index:2;overflow:visible;translate:0 var(--page-top,0px)}
#tube{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;pointer-events:none;background:transparent}
#tube canvas{display:block;width:100%;height:100%;margin:0;padding:0}
#monitor{position:relative;width:100%;min-height:100dvh;margin:0;padding:12px max(12px,env(safe-area-inset-right)) max(1em,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));overflow-anchor:none;color:var(--phosphor);text-align:left;text-shadow:0 0 .08em var(--phosphor),0 0 .28em var(--halo),0 0 .7em var(--halo),0 0 1.5em var(--haze)}
#stream{font:inherit;line-height:inherit;white-space:pre;overflow-wrap:normal;word-break:normal;width:100%;max-width:82ch;min-width:0;margin:0;padding:0;display:block;letter-spacing:0;text-align:left}
.entry{animation:phosphor-charge .2s ease-out}
#cursor{font:inherit;animation:pulse 1.1s steps(1,end) infinite}
noscript{display:block;margin:0;padding:12px}
@keyframes pulse{0%,49%{opacity:.9}50%,100%{opacity:0}}
@keyframes phosphor-charge{from{opacity:1;filter:brightness(1.16)}to{opacity:1;filter:brightness(1)}}

@media(prefers-reduced-motion:reduce){#cursor,.entry{animation:none}}
@keyframes field-origin{from{translate:0 0}to{translate:0 var(--root-range,1px)}}
@supports(animation-timeline:scroll(root block)){#phosphor-field{animation:field-origin 1s linear both;animation-timeline:scroll(root block);animation-range:0px var(--root-range,1px)}}
