:root{--g:#33ff66;--gd:#1a7a35;--am:#ffb000;--bg:#050805;}
html,body{background:var(--bg);color:var(--g);font-family:'VT323',monospace;font-size:18px;margin:0}
body{background-image:radial-gradient(ellipse at center,#0a1a0d 0%,#030503 80%);min-height:100vh}
body::after{content:"";pointer-events:none;position:fixed;inset:0;background:repeating-linear-gradient(0deg,rgba(0,0,0,.18) 0 1px,transparent 1px 3px);z-index:50}
.glow{text-shadow:0 0 6px var(--g),0 0 14px rgba(51,255,102,.4);animation:flick 4s infinite}
@keyframes flick{0%,96%,100%{opacity:1}97%{opacity:.75}98%{opacity:.95}}
.panel{border:1px dashed var(--gd);background:rgba(0,20,5,.55);padding:10px;border-radius:2px}
.ptitle{color:var(--am);letter-spacing:2px;font-size:16px;margin-bottom:6px}
.btn{border:1px solid var(--g);padding:2px 10px;color:var(--g);background:transparent;cursor:pointer}
.btn:hover{background:var(--g);color:#000}
.btn.on{background:var(--g);color:#000}
input,select{background:#000;border:1px solid var(--gd);color:var(--g);font-family:inherit;font-size:18px;padding:0 4px}
.drop{border:2px dashed var(--gd);padding:22px 8px;text-align:center;cursor:pointer;transition:.2s}
.drop.over{border-color:var(--am);color:var(--am);background:rgba(255,176,0,.06)}
.crt{border:14px solid #1a1d1a;border-radius:18px;box-shadow:0 0 0 2px #333,0 0 40px rgba(51,255,102,.25),inset 0 0 30px #000;position:relative;overflow:hidden;background:#000}
.crt canvas{display:block;width:100%;image-rendering:pixelated}
.crt::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at center,transparent 60%,rgba(0,0,0,.6) 100%),repeating-linear-gradient(0deg,rgba(0,0,0,.25) 0 1px,transparent 1px 3px)}
.flash{color:var(--am);text-shadow:0 0 8px var(--am)}
.dline{cursor:pointer;white-space:pre}
.dline:hover{background:rgba(51,255,102,.1)}
.dline.cur{background:var(--g);color:#000}
.fire{position:fixed;inset:0;z-index:60;pointer-events:none;background:linear-gradient(0deg,rgba(255,60,0,.8),rgba(255,160,0,.35) 40%,transparent 75%);animation:burn .3s infinite alternate}
@keyframes burn{from{opacity:.75;transform:scaleY(1)}to{opacity:1;transform:scaleY(1.04)}}
.toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);z-index:70;background:#000;border:2px solid #ff5a00;color:#ff9a3a;padding:10px 18px;font-size:22px}
.meter{height:8px;border:1px solid var(--gd)}
.meter>div{height:100%;background:var(--am)}
a{color:var(--am)}