:root{color-scheme:dark;--bg:#101014;--panel:#1a1a20;--line:#2c2c36;--fg:#e9e6dc;--muted:#9b98a6;--accent:#ffff55;--ega-blue:#0000aa;--ega-gray:#aaaaaa;--ega-dgray:#555555;--ega-white:#ffffff;--ega-red:#aa0000;--pix:"VT323", ui-monospace, Consolas, monospace;--sans:"Public Sans", Arial, sans-serif;--mono:"IBM Plex Mono", ui-monospace, monospace}*{box-sizing:border-box}body{background:var(--bg);color:var(--fg);font-family:var(--sans);margin:0;line-height:1.5}.wrap{max-width:1040px;margin:0 auto;padding-inline:16px;padding-block:22px 56px;display:grid;gap:14px}#fit{width:100%}.monitor{background:#000;border:8px solid #2a2a2a;border-radius:10px;box-shadow:0 0 0 2px #3a3a3a,0 20px 50px #0009;width:fit-content;max-width:100%;margin-inline:auto}.scorebar{display:flex;justify-content:space-between;gap:8px;background:var(--ega-gray);color:#000;font-family:var(--pix);font-size:clamp(15px,2.2vw,22px);padding:0 10px;line-height:1.25}.screen{position:relative;width:320px;height:190px;overflow:hidden}canvas#room{display:block;width:100%;height:100%;image-rendering:pixelated;image-rendering:crisp-edges}.status{background:#000;color:var(--ega-gray);font-family:var(--pix);font-size:clamp(14px,2vw,20px);padding:0 10px;min-height:1.4em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.icons{display:flex;flex-wrap:wrap;gap:4px;background:var(--ega-gray);padding:5px}.icons button,.inv button{font-family:var(--pix);font-size:clamp(15px,2vw,20px);background:#c8c8c8;color:#000;border:2px solid;border-color:#fff #555 #555 #fff;padding:1px 10px;cursor:pointer;line-height:1.2}.icons button[aria-pressed=true]{background:#000;color:var(--accent);border-color:#555 #fff #fff #555}.icons button:focus-visible,.inv button:focus-visible,.parser input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.inv{display:flex;flex-wrap:wrap;gap:4px;align-items:center;margin-left:auto}.inv span{font-family:var(--pix);font-size:clamp(14px,2vw,18px);color:#000}.inv button.sel{background:#ff5}.parser{display:flex;align-items:center;gap:6px;background:#000;padding:4px 10px;font-family:var(--pix);font-size:clamp(16px,2.2vw,22px);color:#fff}.parser input{flex:1;min-width:0;background:#000;color:#fff;border:none;font:inherit;caret-color:#fff}.ov{position:absolute;inset:0;display:grid;place-items:center;padding:3%;overflow:auto;z-index:3}.ov[hidden]{display:none!important}.msg{background:#fff;color:#000;font-family:var(--pix);font-size:clamp(15px,2.4vw,24px);line-height:1.15;max-width:min(88%,560px);padding:8px 12px;border:3px solid var(--ega-blue);box-shadow:0 0 0 3px #fff,0 0 0 6px var(--ega-red);white-space:pre-wrap;box-sizing:border-box;max-height:100%;overflow-y:auto;overscroll-behavior:contain}.msg .btns{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;position:sticky;bottom:-8px;background:inherit;padding:6px 0 8px}.msg button{font-family:var(--pix);font-size:clamp(15px,2.2vw,22px);background:#fff;border:2px solid #000;padding:0 10px;cursor:pointer;color:#000}.msg input{color:#000;background:#fff;color-scheme:light}.form{color-scheme:light}.form input{color:#111}.msg button:hover,.msg button:focus-visible{background:#000;color:#fff;outline:none}.msg ol{margin:6px 0 0;padding-left:1.3em}.msg ol button{border:none;padding:0;text-align:left;font-size:inherit;background:none;color:#00a;text-decoration:underline}.msg ol button:hover{background:none;color:#a00}.hint{font-size:.8em;color:#555}.sndbtns{display:inline-flex;gap:2px;margin-left:8px}.sndbtns button{font:inherit;background:none;border:none;cursor:pointer;color:#000;padding:0 4px;line-height:1.1}.sndbtns button[aria-pressed=false]{color:#666;text-decoration:line-through}.sndbtns button:focus-visible{outline:2px solid #000}.msg.dark{background:#000;color:#9a9a9a;border-color:#222;box-shadow:none}.msg.dark button{background:#000;color:#ccc;border-color:#555}.msg.dark button:hover,.msg.dark button:focus-visible{background:#ccc;color:#000}.screen.shake{animation:shk .3s steps(4)}@keyframes shk{25%{transform:translate(4px,-3px)}50%{transform:translate(-4px,3px)}75%{transform:translate(3px,2px)}}.crt.on{animation:crton .5s ease-out}@keyframes crton{0%{transform:scale(.7,.02);filter:brightness(4)}55%{transform:scaleY(1.04);filter:brightness(1.6)}to{transform:none;filter:none}}.grant{position:absolute;inset:0;display:grid;place-items:end center;pointer-events:none;overflow:hidden;z-index:2}.grant .paper{position:relative;width:27%;aspect-ratio:3/4;background:#f4f0e0;color:#222;font-family:var(--pix);font-size:clamp(9px,1.5vw,16px);line-height:1.15;padding:4% 5%;box-shadow:0 0 0 2px #111,6px 6px #00000073;transform:translateY(110%);transition:transform .7s steps(10)}.grant .paper.up{transform:translateY(-14%)}.grant .paper.fill{transform:translateY(-18%) scale(3.4);transition:transform 1.6s cubic-bezier(.55,0,.3,1)}.grant .ln{border-bottom:1px solid #9ab;height:1.15em}.grant .stamp{position:absolute;left:50%;top:56%;width:44%;height:24%;background:#4a3420;border-radius:3px;border-bottom:5px solid #b8201a;transform:translate(-50%,-50%) translateY(-320%) scale(1.7);opacity:0}.grant .stamp:before{content:"";position:absolute;left:38%;width:24%;bottom:100%;height:70%;background:#6b4a2a;border-radius:3px 3px 0 0}.grant .stamp.down{animation:stampdown .34s cubic-bezier(.7,0,1,1) forwards}.grant .stamp.lift{opacity:1;transform:translate(-50%,-50%) translateY(-320%) scale(1.7);opacity:0;transition:transform .4s ease-out,opacity .25s .25s}@keyframes stampdown{0%{opacity:1;transform:translate(-50%,-50%) translateY(-320%) scale(1.7)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.grant .ink{position:absolute;left:50%;top:56%;transform:translate(-50%,-50%) rotate(-9deg);color:#c0201a;font-size:4.2em;line-height:.8;border:.08em solid #c0201a;padding:0 .25em;opacity:0;mix-blend-mode:multiply}.grant .ink.show{opacity:.92}.zoom.os{position:absolute;inset:4px;width:auto;max-height:none;display:flex;flex-direction:column;padding:4px 6px;gap:4px}.zoom.os .osbar{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center;justify-content:space-between}.zoom.os .osbar a{color:#5ff}.zoom.os .close{margin-top:0}.zoom.os iframe{flex:1;width:100%;min-height:0;border:0;background:#000}@media(prefers-reduced-motion:reduce){.screen.shake,.crt.on{animation:none}.grant .paper,.grant .paper.fill{transition:none}}.front{background:#000;color:#fff;font-family:var(--pix);font-size:clamp(16px,2.2vw,22px);line-height:1.15}.front[hidden]{display:none!important}.title{display:grid;place-items:center;text-align:center;padding:26px 12px;min-height:190px}.title .pro{color:var(--ega-gray);font-size:clamp(13px,2vw,20px);letter-spacing:.3em}.title .nm{color:#f55;font-size:clamp(40px,9vw,100px);line-height:.85;text-shadow:4px 4px 0 #aa0000,8px 8px 0 #550000}.title .sub{color:#5ff;font-size:clamp(16px,2.6vw,26px)}.menu{display:grid;gap:6px;margin-top:16px;justify-items:center}.menu button{font-family:var(--pix);font-size:clamp(17px,2.4vw,24px);background:#00a;color:#fff;border:2px solid #5555ff;padding:2px 16px;cursor:pointer;min-width:15ch}.menu button:hover,.menu button:focus-visible{background:#ff5;color:#000;border-color:#fff;outline:none}.menu .small{background:none;border:none;color:var(--ega-gray);font-size:clamp(14px,2vw,18px);text-decoration:underline;min-width:0}.build{padding:10px 12px;display:grid;gap:8px;background:#000 linear-gradient(#00005a,#000 70%)}.build h2{margin:0;font-weight:400;color:#ff5;font-size:1.15em}.build .fn{color:var(--ega-gray);font-size:.85em}.build .cols{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-start}.build .pv{display:grid;gap:6px;justify-items:center;flex:0 0 auto}.build .pv canvas{image-rendering:pixelated;background:#2b2a24;border:2px solid #555;width:96px;height:168px}.build .pv .tagname{color:#5ff;min-height:1.2em}.build .rows{display:grid;gap:4px;flex:1 1 240px;min-width:0}.row{display:grid;grid-template-columns:7.5ch 1fr;align-items:center;gap:6px}.row .lab{color:var(--ega-gray)}.row .ctl2{display:flex;flex-wrap:wrap;align-items:center;gap:4px}.cyc{display:flex;align-items:center;gap:2px}.cyc button{font-family:var(--pix);font-size:1em;background:#aaa;color:#000;border:2px solid;border-color:#fff #555 #555 #fff;width:1.6em;line-height:1;padding:1px 0;cursor:pointer}.cyc span{display:inline-block;min-width:9ch;text-align:center;color:#fff}.sw{display:flex;flex-wrap:wrap;gap:3px}.sw button{width:18px;height:18px;border:2px solid #000;outline:1px solid #555;cursor:pointer;padding:0}.sw button[aria-pressed=true]{outline:2px solid #ffff55;outline-offset:1px}.build input[type=text],.build input[type=email],.build input[type=password],.signin input{font-family:var(--pix);font-size:1em;background:#111;color:#5f5;border:2px solid #555;padding:0 6px;width:min(100%,16ch);text-transform:uppercase}.signin input[type=email],.signin input[type=password],.build input[type=email],.build input[type=password]{text-transform:none}.build .acct{display:grid;gap:4px;border-top:1px dashed #444;padding-top:6px}.build .acct[hidden]{display:none}.build .go,.signin .go{font-family:var(--pix);font-size:1.1em;background:#a00;color:#fff;border:2px solid #ff5555;padding:1px 16px;cursor:pointer}.build .alt,.signin .alt{font-family:var(--pix);font-size:1em;background:none;color:var(--ega-gray);border:1px solid #555;padding:0 10px;cursor:pointer}.build .go:focus-visible,.build .alt:focus-visible,.signin .go:focus-visible,.signin .alt:focus-visible,.cyc button:focus-visible,.sw button:focus-visible{outline:2px solid #ffff55;outline-offset:1px}.build .acts{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.signin{padding:14px;display:grid;gap:8px;justify-items:start;min-height:190px;background:#000 linear-gradient(#002a2a,#000 70%)}.signin h2{margin:0;font-weight:400;color:#ff5;font-size:1.15em}.signin label{display:grid;gap:2px;color:var(--ega-gray)}.signin .err{color:#f55;min-height:1.2em}.zoom{background:#000;border:3px solid #fff;box-shadow:0 0 0 3px #00a;width:min(94%,620px);max-height:96%;overflow:auto;color:#fff;font-family:var(--pix);font-size:clamp(15px,2.2vw,22px);line-height:1.15;padding:8px 10px}.zoom h3{margin:0 0 6px;font-weight:400;color:#ff5;font-size:1.1em}.zoom .close{font-family:var(--pix);font-size:inherit;background:#fff;color:#000;border:none;padding:0 10px;cursor:pointer;margin-top:8px}.zoom .tag{display:inline-block;background:#a00;color:#fff;padding:0 6px;margin-top:8px}.zoom button.opt{font-family:var(--pix);font-size:inherit;background:#00a;color:#fff;border:none;padding:0 8px;margin:3px 6px 3px 0;cursor:pointer}.zoom button.opt:hover,.zoom button.opt:focus-visible{background:#55f;outline:none}.crt{aspect-ratio:4/3;max-height:46vh;margin:0 auto;border-radius:14%/18%;overflow:hidden;position:relative;background:#091a66;display:grid;place-items:center;text-align:center;border:10px solid #3d2816}.crt:after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(rgba(0,0,0,.25) 0 2px,transparent 2px 4px);pointer-events:none}.crt .c{font-family:var(--pix);font-size:clamp(34px,8vw,72px);color:#fff;text-shadow:3px 3px 0 #ff3b8b,-2px -2px 0 #3bf0ff;line-height:.9}.crt small{display:block;font-family:var(--pix);color:#fde58a;font-size:.4em;letter-spacing:.2em;margin-top:6px;text-shadow:none}.keypad{display:grid;grid-template-columns:repeat(3,48px);gap:6px;margin:8px 0}.keypad button{font-family:var(--pix);font-size:22px;background:#aaa;color:#000;border:2px solid;border-color:#fff #555 #555 #fff;height:40px;cursor:pointer}.entry{background:#111;color:#5f5;padding:2px 8px;min-height:1.3em;letter-spacing:.2em}.mags{display:flex;flex-wrap:wrap;gap:10px}.mag{width:150px;aspect-ratio:3/4;padding:8px;font-family:var(--sans);color:#111;display:grid;align-content:space-between}.mag b{font-weight:900;font-size:20px;line-height:1}.mag.tvg{background:#ffe14d}.mag.cpr{background:#f6f1e6;border:2px solid #111}.mag small{font-size:11px;line-height:1.2}.form{background:#fff;color:#111;width:min(96%,560px);max-height:96%;overflow:auto;padding:10px 14px;font-family:var(--sans);font-size:13px;border-top:6px solid #aa0000;background-image:repeating-linear-gradient(transparent 0 23px,#8fd3f0 23px 24px)}.form h3{margin:0;font-weight:900;font-size:17px;letter-spacing:.02em}.form .fn{font-family:var(--mono);font-size:11px;color:#555}.form fieldset{border:none;padding:0;margin:8px 0}.form legend{font-weight:700;padding:0}.form label{margin-right:10px;white-space:nowrap}.form input[type=text]{font-family:var(--mono);font-size:13px;border:none;border-bottom:1px solid #111;background:transparent;width:min(100%,280px)}.form .grid{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}.form canvas{border:1px solid #111;image-rendering:pixelated;width:112px;height:112px;cursor:crosshair;touch-action:none;background:#fff}.form .sub{font-family:var(--pix);font-size:20px;background:#a00;color:#fff;border:none;padding:2px 14px;cursor:pointer;margin-top:6px}.form .sub:focus-visible{outline:2px solid #000}.ctl{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;border:1px dashed var(--line);padding:10px 12px;border-radius:4px}.ctl .lab{font-family:var(--mono);font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.ctl button{font-family:var(--mono);font-size:13px;background:var(--panel);color:var(--fg);border:1px solid var(--line);padding:6px 12px;border-radius:3px;cursor:pointer}.ctl button[aria-pressed=true]{background:var(--fg);color:var(--bg)}.ctl button:focus-visible{outline:2px solid var(--accent)}.notes{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.notes div{background:var(--panel);border:1px solid var(--line);padding:12px 14px;border-radius:4px;min-width:0}.notes h2{margin:0 0 6px;font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:600}.notes ul{margin:0;padding-left:1.1em;font-size:14px}.notes code{font-family:var(--mono);color:var(--accent)}.evlog{font-family:var(--mono);font-size:12px;white-space:pre-wrap;max-height:220px;overflow:auto;background:#000;color:#8f8;padding:8px;border-radius:3px;margin:0}.evlog[hidden]{display:none}@media(prefers-reduced-motion:reduce){.title .sub{animation:none}}#spots{min-width:2.2em}#spots[aria-pressed=true]{background:#000;color:var(--accent);border-color:#555 #fff #fff #555}@media(pointer:coarse){.icons button,.inv button{min-height:44px;padding:4px 12px}.msg button,.zoom .close,.zoom button.opt,.menu button,.build .go,.build .alt,.signin .go,.signin .alt{min-height:44px}.cyc button{min-height:40px;width:2em}.sw button{width:28px;height:28px}.keypad{grid-template-columns:repeat(3,64px)}.keypad button{height:52px}.msg ol li{margin:6px 0}.sndbtns button{min-height:36px;padding:0 8px}}@media(max-width:700px){.zoom.os{position:fixed;inset:0;z-index:20;border:none;box-shadow:none}}
