:root{--bg:#0d1117;--panel:#141b24;--line:#243040;--ok:#39ff14;--err:#ff3b3b;--berry:#ff4d6d;--warn:#ffd23f;--tx:#d7e0ea;--mute:#6b7c90}
*{box-sizing:border-box}
body{margin:0;background:radial-gradient(circle at 20% 0%,#1a1030 0,transparent 40%),radial-gradient(circle at 90% 100%,#2a0d18 0,transparent 45%),var(--bg);color:var(--tx);font-family:'Bricolage Grotesque',sans-serif;min-height:100vh}
.scan{pointer-events:none;position:fixed;inset:0;background:repeating-linear-gradient(0deg,rgba(255,255,255,.025) 0 1px,transparent 1px 3px);z-index:50}
header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:18px 24px;border-bottom:1px solid var(--line);background:#0a0e14cc}
h1{font-family:'JetBrains Mono',monospace;font-weight:800;font-size:clamp(22px,4vw,40px);margin:0;letter-spacing:-1px;position:relative}
.glitch::before,.glitch::after{content:attr(data-text);position:absolute;inset:0;opacity:0}
.glitch::before{color:var(--berry);animation:g1 4s infinite}
.glitch::after{color:#00e5ff;animation:g2 4s infinite}
@keyframes g1{0%,92%,100%{opacity:0;transform:none}93%{opacity:.8;transform:translate(-3px,1px)}95%{opacity:.8;transform:translate(2px,-1px)}}
@keyframes g2{0%,93%,100%{opacity:0}94%{opacity:.7;transform:translate(3px,0)}96%{opacity:.7;transform:translate(-2px,1px)}}
.tag{margin:4px 0 0;color:var(--mute);font-weight:300}
.meterbox{min-width:240px;flex:0 1 320px}
.meterlabel{display:flex;justify-content:space-between;font:400 12px 'JetBrains Mono',monospace;margin-bottom:6px}
.meter{height:14px;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#05080c}
#meterFill{height:100%;width:0;background:linear-gradient(90deg,var(--ok),var(--warn),var(--err));transition:width .15s}
#auth-status a,#auth-status button{color:var(--berry);background:none;border:0;font:inherit;cursor:pointer;padding:0}
main{display:grid;grid-template-columns:1fr 380px;gap:20px;padding:20px 24px}
@media(max-width:900px){main{grid-template-columns:1fr}}
.zone,.panel,.col{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:14px;box-shadow:0 0 30px rgba(255,77,109,.06)}
.toolbar{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;margin-bottom:10px}
#tools{display:flex;gap:8px;flex-wrap:wrap}
.tool{font:800 13px 'JetBrains Mono',monospace;padding:10px 14px;border-radius:10px;border:1px solid var(--line);background:#0b1017;color:var(--tx);cursor:pointer}
.tool.on{border-color:var(--berry);color:var(--berry);box-shadow:0 0 14px rgba(255,77,109,.4)}
.hud{display:flex;gap:14px;font:400 12px 'JetBrains Mono',monospace;color:var(--mute);align-items:center}
.hud b{color:var(--ok)}
.canvaswrap{position:relative;border-radius:10px;overflow:hidden;border:1px solid var(--line)}
canvas{display:block;width:100%;height:clamp(340px,55vh,560px);touch-action:none;cursor:crosshair}
.mascot{position:absolute;right:10px;bottom:10px;max-width:260px;background:#1d0d14ee;border:1px solid var(--berry);border-radius:12px 12px 2px 12px;padding:8px 10px;font-size:12px;line-height:1.35}
.mascot::before{content:"🍓 ";}
.opts{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-top:10px;font:400 12px 'JetBrains Mono',monospace}
.muted{color:var(--mute)}
h2{font:800 18px 'JetBrains Mono',monospace;margin:0 0 10px;color:var(--berry)}
.lbl{font-size:14px;display:block;margin-bottom:6px}
textarea{width:100%;min-height:130px;background:#070a0f;color:var(--tx);border:1px solid var(--line);border-radius:10px;padding:10px;font:400 14px 'JetBrains Mono',monospace;resize:vertical}
textarea:focus{outline:none;border-color:var(--berry)}
.row{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:10px}
button{font:800 13px 'JetBrains Mono',monospace;padding:10px 14px;border-radius:10px;border:1px solid var(--line);background:#0b1017;color:var(--tx);cursor:pointer}
button:hover{border-color:var(--ok)}
button.big{background:var(--berry);color:#120308;border:0;padding:12px 18px}
button:disabled{opacity:.5;cursor:wait}
.duck{font-size:13px}
.out{margin-top:12px;background:#070a0f;border:1px solid var(--ok);border-radius:10px;padding:12px;font:400 13px/1.5 'JetBrains Mono',monospace;white-space:pre-wrap;max-height:360px;overflow:auto}
.hidden{display:none!important}
.saved{margin-top:14px;font-size:13px}
.saved summary{cursor:pointer;color:var(--mute)}
.saved .item{border-top:1px dashed var(--line);padding:6px 0;cursor:pointer}
.hall{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding:0 24px 20px}
@media(max-width:900px){.hall{grid-template-columns:1fr}}
ol{margin:0;padding-left:22px;font:400 13px 'JetBrains Mono',monospace}
ol li{padding:5px 0;border-bottom:1px solid var(--line)}
.rank{color:var(--warn);font-size:11px}
.bug{border:1px solid var(--line);border-radius:10px;padding:10px;margin-bottom:10px;font-size:13px}
.bug h4{margin:0 0 4px;font:800 13px 'JetBrains Mono',monospace;color:var(--ok)}
.bug p{margin:0 0 8px;color:#aab6c4;white-space:pre-wrap;max-height:90px;overflow:hidden}
.bug button{padding:5px 9px;font-size:12px;margin-right:6px}
footer{text-align:center;padding:24px;font:200 12px 'JetBrains Mono',monospace;color:var(--mute);border-top:1px solid var(--line)}
footer a{color:var(--berry)}
.shake{animation:sh .25s}
@keyframes sh{25%{transform:translate(-5px,3px)}50%{transform:translate(4px,-3px)}75%{transform:translate(-3px,-2px)}}
body.rm .glitch::before,body.rm .glitch::after{animation:none}