:root{--bg:#0a0e1a;--panel:#121829;--green:#33ff66;--amber:#ffb000;--mag:#ff3399;--dim:#1f8a44;}
html,body{background:var(--bg);color:var(--green);font-family:'JetBrains Mono',monospace;margin:0;}
body{background:radial-gradient(ellipse at top,#13203a 0%,#0a0e1a 60%) fixed;min-height:100vh;}
body::after{content:"";position:fixed;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(0,0,0,.18) 0 1px,transparent 1px 3px);z-index:50;}
.vt{font-family:'VT323',monospace;}
.panel{background:var(--panel);border:1px solid rgba(51,255,102,.25);box-shadow:0 0 12px rgba(51,255,102,.06) inset,0 0 8px rgba(51,255,102,.05);border-radius:4px;}
.panel>summary{cursor:pointer;list-style:none;padding:6px 10px;font-size:11px;letter-spacing:.2em;color:var(--amber);border-bottom:1px solid rgba(51,255,102,.15);}
.panel>summary::-webkit-details-marker{display:none}
.panel>summary::before{content:"▸ ";}
.panel[open]>summary::before{content:"▾ ";}
.btn{background:#0d1322;border:1px solid var(--green);color:var(--green);padding:8px 10px;font-weight:800;font-size:12px;border-radius:3px;box-shadow:0 3px 0 #0b5a26;transition:transform .05s,background .15s;}
.btn:hover{background:#163020}
.btn:active{transform:translateY(2px);box-shadow:0 1px 0 #0b5a26}
.btn.amber{border-color:var(--amber);color:var(--amber);box-shadow:0 3px 0 #7a5400}
.btn.mag{border-color:var(--mag);color:var(--mag);box-shadow:0 3px 0 #7a1446}
.crt{border-radius:18px;padding:14px;background:#05070d;box-shadow:0 0 0 2px #1d2538,0 0 40px rgba(51,255,102,.15),inset 0 0 30px #000;}
.crt canvas{width:100%;image-rendering:pixelated;border-radius:10px;filter:saturate(1.2) contrast(1.1);box-shadow:0 0 24px rgba(51,255,102,.25);}
.shake{animation:shake .5s linear 2}
@keyframes shake{0%,100%{transform:translate(0)}20%{transform:translate(-6px,3px) rotate(-1deg)}40%{transform:translate(5px,-4px) rotate(1deg)}60%{transform:translate(-4px,-2px)}80%{transform:translate(4px,4px)}}
.blink{animation:bl 1s steps(1) infinite}
@keyframes bl{50%{opacity:0}}
.flash{animation:fl .6s ease-out}
@keyframes fl{0%{background:var(--amber);color:#000}100%{background:transparent}}
.drop{border:2px dashed rgba(51,255,102,.4);transition:all .2s}
.drop.over{border-color:var(--amber);background:rgba(255,176,0,.07);transform:scale(1.01)}
input,select{background:#070b15;border:1px solid rgba(51,255,102,.3);color:var(--green);padding:4px 6px;border-radius:3px;font-family:inherit;font-size:12px}
input[type=range]{accent-color:var(--green);padding:0;border:none}
.fadein{animation:fi .6s ease-out both}
@keyframes fi{from{opacity:0;transform:translateY(10px)}to{opacity:1}}
.kbd:focus{outline:1px solid var(--amber);box-shadow:0 0 14px rgba(255,176,0,.3)}
::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-thumb{background:#1f8a44}