:root{--g:#39ff6a;--gd:rgba(57,255,106,.42);--fs:15.5px;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;color:var(--g);background:#000}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:#000;overflow:hidden}
.screen{position:relative;min-height:100svh;height:100svh;overflow:hidden;isolation:isolate}
.fx{position:absolute;inset:0;pointer-events:none;z-index:5;
  background:
   repeating-linear-gradient(180deg,rgba(255,255,255,.028) 0 1px,transparent 1px 3px),
   radial-gradient(ellipse at center,transparent 55%,rgba(0,0,0,.55) 100%)}
.term{position:absolute;top:30vh;left:max(5.5vw,env(safe-area-inset-left));right:24px;
  font-size:var(--fs);line-height:1.8;text-shadow:0 0 6px rgba(57,255,106,.45),0 0 1px rgba(57,255,106,.8)}
.line{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;min-height:1.8em}
.js .line[data-pending]{visibility:hidden}
.enter{font:inherit;color:inherit;text-shadow:inherit;background:none;border:0;padding:0;margin:0;cursor:pointer}
.enter:focus-visible{outline:1px dashed var(--gd);outline-offset:3px}
.cursor{display:inline-block;width:.62em;height:1.15em;vertical-align:-.2em;margin-left:.25em;background:var(--g);
  box-shadow:0 0 8px rgba(57,255,106,.6);animation:blink 1.05s steps(1) infinite}
@keyframes blink{50%{opacity:0}}
.signature{position:absolute;left:max(5.5vw,env(safe-area-inset-left));bottom:max(7vh,env(safe-area-inset-bottom));margin:0;
  font-size:var(--fs);color:var(--gd);text-shadow:0 0 4px rgba(57,255,106,.25)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.is-glitching .term,.is-glitching .signature{animation:glitch .4s steps(2) 1}
.is-glitching .fx{animation:flick .4s steps(3) 1}
@keyframes glitch{0%{transform:translate(0)}20%{transform:translate(-3px,1px);filter:hue-rotate(40deg)}
 40%{transform:translate(4px,-1px);clip-path:inset(10% 0 40% 0)}60%{transform:translate(-2px,0);clip-path:inset(50% 0 5% 0)}
 80%{transform:translate(2px,1px);opacity:.6}100%{transform:none;clip-path:none;filter:none}}
@keyframes flick{0%,100%{background-color:transparent}33%{background-color:rgba(57,255,106,.06)}66%{background-color:rgba(255,255,255,.03)}}
@media (max-width:640px){:root{--fs:14px}.term,.signature{left:24px}.term{right:24px;top:28vh}.signature{bottom:max(32px,env(safe-area-inset-bottom))}}
@media (prefers-reduced-motion:reduce){.cursor{animation:none}.is-glitching *{animation:none!important}}
.prompt{position:relative}
.cmd{position:absolute;inset:0;width:100%;font:inherit;color:transparent;caret-color:transparent;background:transparent;border:0;outline:0;padding:0;margin:0;opacity:0;cursor:text}
.prompt:focus-within .cursor{box-shadow:0 0 10px rgba(57,255,106,.8)}
.hint[hidden]{display:none}
.term{bottom:auto;max-height:calc(100svh - 30vh - 12vh);overflow:hidden;display:flex;flex-direction:column}
.term .line{flex:none}
@media (max-width:640px){.term{max-height:calc(100svh - 28vh - 80px)}}

.fatal{color:#ff3b3b;text-shadow:0 0 6px rgba(255,59,59,.55),0 0 1px rgba(255,59,59,.9);font-weight:700}
