:root{--bg:#050505;--mag:#ff2bd6;--cy:#00f0ff;--gr:#7CFF00;--fg:#e8e8e8;--dim:#666;--panel:#0c0c10}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--fg);font-family:'JetBrains Mono',monospace;
background-image:radial-gradient(circle at 20% 0%,#ff2bd61a,transparent 40%),radial-gradient(circle at 90% 30%,#00f0ff14,transparent 40%),repeating-linear-gradient(0deg,#ffffff05 0 1px,transparent 1px 4px);min-height:100vh}
header{text-align:center;padding:32px 12px 10px}
h1{font-family:'Press Start 2P',monospace;font-size:clamp(20px,5vw,44px);margin:0;line-height:1.3;color:#111;
-webkit-text-stroke:1px var(--mag);text-shadow:0 0 18px var(--mag);animation:pulse 2.4s ease-in-out infinite}
h1 span{color:#000;-webkit-text-stroke:1px var(--cy);text-shadow:0 0 22px var(--cy)}
@keyframes pulse{50%{text-shadow:0 0 40px var(--mag),0 0 4px #fff;transform:scale(1.015)}}
.sub{color:var(--gr);font-weight:200;letter-spacing:.1em}
h2{font-family:'Press Start 2P';font-size:12px;color:var(--cy);margin:0 0 14px}
main{max-width:1200px;margin:auto;padding:12px;display:grid;grid-template-columns:1fr 1.3fr;gap:14px}
.panel{background:var(--panel);border:1px solid #222;border-radius:4px;padding:16px;animation:rise .6s both}
.panel:nth-child(2){animation-delay:.1s}.panel:nth-child(3){animation-delay:.2s}.panel:nth-child(4){animation-delay:.3s}
@keyframes rise{from{opacity:0;transform:translateY(16px)}}
.wide{grid-column:1/-1}
@media(max-width:800px){main{grid-template-columns:1fr}}
#drop{border:2px dashed var(--mag);padding:36px 12px;text-align:center;cursor:pointer;transition:.2s;border-radius:4px}
#drop.over,#drop:hover{background:#ff2bd615;border-color:var(--cy)}
.dropBig{font-family:'Press Start 2P';font-size:12px;line-height:1.6;color:var(--mag)}
.dropSmall{color:var(--dim);margin-top:8px;font-size:12px}
.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:10px}
.between{justify-content:space-between;margin-top:0;margin-bottom:8px}
button{font-family:'JetBrains Mono';font-weight:800;background:#111;color:var(--fg);border:1px solid #333;padding:9px 12px;cursor:pointer;border-radius:3px;transition:.15s}
button:hover:not(:disabled){border-color:var(--cy);color:var(--cy);box-shadow:0 0 10px #00f0ff55}
button:disabled{opacity:.35;cursor:not-allowed}
button.big{width:100%;font-family:'Press Start 2P';font-size:16px;padding:18px;margin-top:14px;background:#000;color:var(--mag);border:2px solid var(--mag);box-shadow:0 0 20px #ff2bd644}
button.big:hover{background:var(--mag);color:#000}
.presets{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:12px}
.presets button{font-size:11px}
label{display:block;font-size:12px;margin:10px 0;color:#bbb}
label b{color:var(--gr);float:right}
input[type=range]{width:100%;accent-color:var(--mag)}
select{width:100%;background:#111;color:var(--fg);border:1px solid #333;padding:6px;font-family:inherit;margin-top:4px}
.chk{display:flex;gap:8px;align-items:center}
.stats{margin-top:12px;font-size:12px;line-height:1.8;color:#aaa;white-space:pre-wrap}
.stats em{color:var(--cy);font-style:normal;font-weight:800}
.estimate{margin-top:14px;font-size:13px;color:var(--fg)}
.estimate b{color:var(--mag);font-size:18px}
.meter{height:10px;background:#1a1a1a;margin-top:8px;border-radius:5px;overflow:hidden}
#meterFill{height:100%;width:0;background:linear-gradient(90deg,#888,#333,#000);box-shadow:inset 0 0 0 1px var(--mag);transition:width .3s}
.meterLabel{font-family:'Press Start 2P';font-size:9px;color:var(--mag);margin-top:6px}
.progress{height:6px;background:#1a1a1a;margin-top:10px}
#progFill{height:100%;width:0;background:var(--gr);box-shadow:0 0 10px var(--gr)}
.progText{font-size:11px;color:var(--gr);min-height:16px;margin-top:6px}
canvas{width:100%;height:min(60vh,520px);display:block;background:#000;border:1px solid #222}
.hud{font-size:11px;color:var(--gr);text-align:right}
.cull{font-size:11px;color:var(--mag);min-height:15px;margin-top:4px}
footer{text-align:center;padding:30px;color:var(--dim);font-size:12px}
footer a{color:var(--cy)}