:root{--g:#39ff7a;--a:#ffb000;--bg:#050b07;--beige:#d8d0b8}
*{box-sizing:border-box}
body{margin:0;background:radial-gradient(ellipse at center,#0d1a10 0%,#020402 100%);color:var(--g);font-family:'VT323',monospace;font-size:20px;min-height:100vh}
.crt{max-width:980px;margin:0 auto;padding:16px;position:relative}
.crt::after{content:"";position:fixed;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(0,0,0,.25) 0 1px,transparent 1px 3px);box-shadow:inset 0 0 120px rgba(0,0,0,.9)}
header{text-align:center}
h1{font-family:'Press Start 2P';font-size:clamp(20px,5vw,40px);margin:12px 0 4px;text-shadow:0 0 8px var(--g),0 0 22px #1a8a3f}
.sub{color:var(--a);margin:0}
.status{display:inline-flex;gap:8px;align-items:center;margin-top:6px}
#statusDot{width:12px;height:12px;border-radius:50%;background:#600;box-shadow:0 0 6px #f00;animation:blink 1s infinite}
#statusDot.on{background:var(--g);box-shadow:0 0 10px var(--g)}
@keyframes blink{50%{opacity:.3}}
.modem{margin:16px auto;background:linear-gradient(180deg,#e6dfc9,var(--beige) 50%,#c4b98f);border-radius:14px 14px 30px 30px;padding:14px 18px 22px;color:#3a3326;box-shadow:0 8px 0 #9c9270,0 14px 30px #000}
.brand{font-family:'Press Start 2P';font-size:10px;margin-bottom:10px}
.leds{display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px}
.led{text-align:center;font-family:'Press Start 2P';font-size:9px}
.led i{display:block;width:16px;height:16px;margin:0 auto 5px;border-radius:50%;background:#4a1010;border:2px solid #776a4a}
.led.on i{background:#ff3030;box-shadow:0 0 10px #f33,0 0 3px #fff inset}
.scope{border:2px solid #1f5a33;border-radius:10px;background:#010401;padding:6px}
canvas{width:100%;display:block}
#wave{height:120px;border-bottom:1px dashed #1f5a33}
#spec{height:170px}
.axis{display:flex;justify-content:space-between;font-size:15px;color:#2f9a55}
.controls{margin-top:14px}
.row{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:10px}
input,select{background:#000;color:var(--g);border:1px solid var(--g);font:inherit;padding:4px 8px}
#num{width:150px}
.chk input{accent-color:var(--g)}
button{font:inherit;cursor:pointer}
.big{font-family:'Press Start 2P';font-size:12px;padding:12px 16px;background:var(--g);color:#000;border:none;border-radius:4px;box-shadow:0 4px 0 #157a38}
.big:active{transform:translateY(3px);box-shadow:0 1px 0 #157a38}
.red{background:#ff4d4d;box-shadow:0 4px 0 #8a1a1a}
.timeline{display:flex;gap:2px;flex-wrap:wrap}
.timeline button{flex:1 1 90px;background:#031a0b;color:var(--g);border:1px solid #1f5a33;padding:5px;font-size:15px}
.timeline button.act{background:var(--g);color:#000}
.win98{background:#c0c0c0;color:#000;font-family:Tahoma,sans-serif;font-size:13px;border:2px outset #fff;margin:14px 0;max-width:420px}
.tbar{background:linear-gradient(90deg,#000080,#1084d0);color:#fff;padding:3px 6px;font-weight:bold;display:flex;justify-content:space-between}
.wbody{padding:14px}
.term{height:240px;overflow-y:auto;background:#000;border:1px solid #1f5a33;padding:8px;font-size:18px;white-space:pre-wrap}
.term .t{color:#2f9a55}.term .j{color:var(--a)}
footer{text-align:center;margin:20px 0;color:#2f9a55}
footer a{color:var(--a)}