:root{--g:#39ff6a;--d:#0b130d;--r:#ff2a4d;--c:#29e7ff}
*{box-sizing:border-box}
body{margin:0;background:radial-gradient(ellipse at center,#07140b 0%,#000 80%);color:var(--g);font-family:'IBM Plex Mono',monospace;min-height:100vh;overflow-x:hidden}
#crt{pointer-events:none;position:fixed;inset:0;z-index:50;background:repeating-linear-gradient(0deg,rgba(0,0,0,.25) 0 1px,transparent 1px 3px);box-shadow:inset 0 0 160px rgba(0,0,0,.9)}
main{max-width:900px;margin:0 auto;padding:20px 14px 90px}
.title{font-family:VT323,monospace;font-size:clamp(42px,9vw,92px);margin:0;line-height:.9;text-shadow:3px 0 var(--r),-3px 0 var(--c)}
.sub{font-weight:200;opacity:.8;margin:6px 0 4px}
#auth-status{font-size:12px;opacity:.7}
#auth-status a{color:var(--c)}
.panel{border:1px solid #1f4a2a;background:rgba(5,20,10,.7);padding:14px;margin:18px 0}
.ph{display:flex;justify-content:space-between;align-items:center;font-size:12px;opacity:.85;margin-bottom:8px;gap:8px}
#bytes.over{color:var(--r);font-weight:700}
textarea{width:100%;background:#000;color:var(--g);border:1px solid #1f4a2a;font:14px 'IBM Plex Mono',monospace;padding:10px;resize:vertical}
.row{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}
.btn{background:transparent;color:var(--g);border:1px solid var(--g);font:12px 'IBM Plex Mono';padding:8px 12px;cursor:pointer}
.btn:hover{background:var(--g);color:#000}
.sm{padding:2px 8px}
.exec{background:#1a0006;color:var(--r);border:2px solid var(--r);font:28px VT323,monospace;padding:6px 22px;cursor:pointer;animation:blink 1s steps(2) infinite;letter-spacing:2px}
@keyframes blink{50%{box-shadow:0 0 18px var(--r);color:#fff}}
#frame{width:100%;height:120px;border:1px dashed #1f4a2a;background:#000;display:none}
.controls{display:flex;flex-wrap:wrap;gap:10px 18px;font-size:12px;align-items:center}
#fx{display:flex;flex-wrap:wrap;gap:6px 14px}
input[type=range]{accent-color:var(--r);vertical-align:middle}
input[type=checkbox]{accent-color:var(--g)}
.stat{font-size:12px;margin:10px 0 0}
.victim{background:#f4f1ea;color:#222;font-family:Georgia,serif;padding:14px;border-radius:6px;position:relative}
.vnav{display:flex;gap:16px;border-bottom:2px solid #c33;padding-bottom:8px;flex-wrap:wrap}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:12px 0}
.card{background:#fff;border:1px solid #ddd;padding:10px;box-shadow:0 2px 0 #ccc}
.card h2{margin:4px 0 0;color:#c33}
table{width:100%;border-collapse:collapse;font-size:14px}
td,th{border-bottom:1px solid #ddd;padding:6px;text-align:left}
.vform{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}
.vform input{flex:1;padding:8px;border:1px solid #bbb;min-width:150px}
.vform button{background:#c33;color:#fff;border:0;padding:8px 12px}
#hall{font-size:13px;padding-left:22px}
#hall li{margin:6px 0}
#hall code{color:var(--c);word-break:break-all}
footer{text-align:center;font-size:12px;opacity:.7;margin-top:30px}
footer a{color:var(--c)}
#canvas{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:40;display:none}
#bsod{position:fixed;inset:0;background:#0a5bd8;color:#fff;z-index:90;display:none;align-items:center;justify-content:center;font-family:'IBM Plex Mono';padding:30px}
#bsod h1{font-size:120px;margin:0;font-weight:200}
.small{opacity:.7;font-size:12px}
#warn{position:fixed;inset:0;background:rgba(0,0,0,.92);z-index:95;display:flex;align-items:center;justify-content:center;padding:20px}
#warn .box{border:2px solid var(--r);padding:24px;max-width:420px;text-align:center;background:#0a0003}
#warn h2{color:var(--r);font-family:VT323;font-size:34px;margin:0 0 8px}
#controls{position:fixed;right:12px;bottom:12px;z-index:100}
#panic{background:var(--g);color:#000;border:0;font:700 13px 'IBM Plex Mono';padding:12px 14px;cursor:pointer;box-shadow:0 0 20px rgba(57,255,106,.6)}
.shake{animation:shake .08s infinite}
@keyframes shake{0%{transform:translate(3px,-2px) skewX(2deg)}50%{transform:translate(-4px,3px) skewX(-3deg)}100%{transform:translate(2px,1px)}}
.slice{position:absolute;left:0;top:0;width:100%;pointer-events:none}