@font-face{font-family:Bedstead;src:url(/fonts/bedstead.otf) format("opentype");font-display:swap}:root{--c-k:#000000;--c-r:#ff0000;--c-g:#00ff00;--c-y:#ffff00;--c-b:#0000ff;--c-m:#ff00ff;--c-c:#00ffff;--c-w:#ffffff;--fs:min(3.4vh,calc((100vw - 36px) / 25),22px)}*{margin:0;padding:0;box-sizing:border-box}body,html{background:#111;min-height:100%}body{font-family:Bedstead,Menlo,Consolas,monospace;color:var(--c-w)}.set,body{display:flex;flex-direction:column;align-items:center}.set{margin-top:2vh;padding:1.2em 1.4em 1.6em;background:#1d1d1f;border-radius:14px;box-shadow:0 12px 40px rgba(0,0,0,.7)}.screen-shell{position:relative;background:#000;overflow:hidden}.screen{position:relative;font-size:var(--fs);line-height:1.15;background:var(--c-k);padding:.4em .5em;width:calc(40ch + 1em)}.row{white-space:pre;height:calc(var(--fs) * 1.15)}.row.dh{transform:scaleY(2);transform-origin:top left}.row span{display:inline-block;white-space:pre}.row.unpainted span{visibility:hidden}.row.linked{cursor:pointer}.crt-full .screen{text-shadow:0 0 5px currentColor,0 0 1px currentColor}.crt-full .screen,.crt-full .screen-shell{border-radius:18px/26px}.crt-full .screen-shell:after,.crt-subtle .screen-shell:after{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(180deg,rgba(0,0,0,0) 0,rgba(0,0,0,0) 2px,rgba(0,0,0,.28) 3px)}.crt-subtle .screen-shell:after{background:repeating-linear-gradient(180deg,rgba(0,0,0,0) 0,rgba(0,0,0,0) 3px,rgba(0,0,0,.12) 4px)}.crt-full .screen-shell:before{content:"";position:absolute;inset:0;pointer-events:none;z-index:2;border-radius:18px/26px;background:radial-gradient(ellipse at center,rgba(0,0,0,0) 62%,rgba(0,0,0,.35) 100%)}.crt-subtle .screen{text-shadow:0 0 2px currentColor}.controls{margin-top:1em;display:flex;flex-wrap:wrap;gap:.6em;justify-content:center;align-items:center;max-width:calc(40ch + 1em);font-size:min(2vh,14px)}.controls button{font-family:inherit;font-size:1em;background:#333;color:#eee;border:1px solid #555;border-radius:6px;padding:.45em .8em;cursor:pointer;min-width:2.6em}.controls button:hover{background:#444}.controls button:active{background:#222}.controls .hold[data-on=true]{background:var(--c-y);color:#000}.fastext{display:flex;gap:.6em;width:100%;justify-content:center}.fastext button{flex:1 1;max-width:10ch;color:#000;font-weight:700;border:none}.fastext .ft-r{background:var(--c-r);color:#fff}.fastext .ft-g{background:var(--c-g)}.fastext .ft-y{background:var(--c-y)}.fastext .ft-c{background:var(--c-c)}.fastext .ft-b{background:var(--c-b);color:#fff}.fastext .ft-m{background:var(--c-m)}.fastext .ft-w{background:var(--c-w)}.statusline{width:100%;text-align:center;color:#888;font-size:.9em;min-height:1.2em}.keypad{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:.5em;gap:.5em;width:min(100%,300px)}.keypad button{font-size:1.3em;padding:.55em 0;min-width:0}.keypad button:disabled{opacity:.35;cursor:default}.navrow{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:.5em;gap:.5em;width:min(100%,300px)}.navrow button{padding:.55em 0;min-width:0}.setkeys{display:flex;gap:.6em;width:100%;justify-content:center}.setkeys button{background:#26263a;border-color:#4a4a6a;color:var(--c-c);font-weight:700}@media (min-width:900px){:root{--fs:min(3.1vh,calc((100vw - 410px) / 25),26px)}.set{flex-direction:row;align-items:center;gap:1.6em;margin-top:max(2vh,calc((100vh - 46em) / 2))}.fastext{display:grid;grid-template-columns:1fr 1fr;grid-gap:.5em;gap:.5em}.fastext button{max-width:none;padding:.6em 0}.controls{margin-top:0;width:15em;align-self:center;align-content:flex-start;background:#17171a;border-radius:10px;padding:1em .9em 1.1em}.keypad,.navrow{width:100%}.keypad button{padding:.45em 0;font-size:1.15em}}@media (max-width:640px){.set{margin-top:0;padding:.4em .3em 1em;border-radius:0;width:100vw;min-height:100vh;min-height:100dvh}.controls{gap:.6em;font-size:min(2.2vh,15px)}.fastext button{padding:.7em 0;max-width:none}.keypad{width:min(100%,340px);gap:.55em}.keypad button{font-size:1.5em;padding:max(.55em,min(1.5vh,.9em)) 0}.navrow{width:min(100%,340px)}.navrow button{padding:.8em 0}}.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}