:root{--bg:hsl(0 12% 8%);--surface:hsl(0 10% 12%);--border:hsl(0 8% 20%);--text:hsl(0 5% 94%);--muted:hsl(0 5% 60%);--neon:hsl(0 70% 65%);--neon-2:hsl(45 85% 60%);--accent-3:hsl(210 65% 60%);--ink:hsl(0 20% 5%);--paper:hsl(45 30% 95%);--speech-bubble:hsl(0 0% 100%);--radius:8px;--radius-bubble:20px;--shadow:0 4px 20px hsl(0 70% 65%/0.15);--shadow-panel:4px 4px 0 var(--ink);--font-display:"Bebas Neue","Impact",sans-serif;--font-body:"Inter",system-ui,sans-serif;--font-comic:"Comic Neue","Comic Sans MS",cursive;--motion-fast:140ms;--motion:220ms;--ease:cubic-bezier(0.22,1,0.36,1);--ease-bounce:cubic-bezier(0.68,-0.55,0.265,1.55)}*{box-sizing:border-box;margin:0;padding:0}body{background:radial-gradient(circle at 20% 80%,hsl(0 70% 65%/.05) 0,transparent 50%),radial-gradient(circle at 80% 20%,hsl(45 85% 60%/.03) 0,transparent 50%),linear-gradient(180deg,var(--bg) 0,hsl(0 12% 10%) 100%);color:var(--text);font-family:var(--font-body)}.shell,body{min-height:100dvh}.shell{display:grid;place-items:center;padding:24px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:40px;max-width:520px;width:100%}.badge{display:inline-block;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--neon);border:1px solid var(--border);border-radius:999px;padding:4px 12px;margin-bottom:16px}h1{font-size:28px;background:linear-gradient(90deg,var(--neon),var(--neon-2));-webkit-background-clip:text;background-clip:text;color:transparent;margin-bottom:12px}p{color:var(--muted);line-height:1.6}.row{display:flex;gap:12px;margin-top:24px;flex-wrap:wrap}.pill{color:var(--text);text-decoration:none;border:1px solid var(--border);border-radius:999px;padding:8px 16px;font-size:14px;transition:border-color .2s,transform .2s}.pill:hover{border-color:var(--neon);transform:translateY(-1px)}.form{display:flex;flex-direction:column;gap:8px;margin-top:20px}.form label{font-size:13px;color:var(--text);margin-top:8px}.form input{background:#0d0f17;border:1px solid var(--border);border-radius:10px;padding:10px 12px;color:var(--text);font-size:15px}.form input::placeholder{color:#5b6070}.form input:focus-visible{outline:2px solid var(--neon);outline-offset:1px;border-color:var(--neon)}.form button{margin-top:16px;background:linear-gradient(90deg,var(--neon),var(--neon-2));color:#06070a;font-weight:700;font-size:15px;border:0;border-radius:10px;padding:11px 14px;cursor:pointer}.form button:focus-visible{outline:2px solid var(--text);outline-offset:2px}.empty{text-align:center;max-width:420px;margin:0 auto;padding:32px 20px}.empty-i{font-size:40px;display:block;margin-bottom:12px}.empty-t{font-size:20px;margin-bottom:8px;color:var(--text)}.empty-d{color:var(--muted);line-height:1.6}.empty-a{display:inline-block;margin-top:18px;background:linear-gradient(90deg,var(--neon),var(--neon-2));color:#06070a;font-weight:700;border:0;border-radius:10px;padding:10px 18px;cursor:pointer;text-decoration:none}.onb{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:16px}.onb-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.onb-pct{color:var(--neon);font-size:13px;font-weight:700}.onb-bar{height:6px;background:var(--border);border-radius:999px;overflow:hidden}.onb-bar span{display:block;height:100%;background:linear-gradient(90deg,var(--neon),var(--neon-2));transition:width .3s}.onb-list{list-style:none;margin-top:12px;display:flex;flex-direction:column;gap:8px}.onb-list li{display:flex;gap:8px;align-items:center;font-size:14px;color:var(--text)}.onb-list li.onb-done{color:var(--muted);text-decoration:line-through}.onb-list a{color:var(--neon);text-decoration:none}.toaster{position:fixed;bottom:20px;right:20px;display:flex;flex-direction:column;gap:8px;z-index:50}.toast{padding:12px 16px;border-radius:10px;font-size:14px;font-weight:600;color:#06070a;box-shadow:var(--shadow);animation:toastin .2s ease}.toast-success{background:#6ee7b7}.toast-error{background:#fca5a5}.toast-info{background:var(--neon)}@keyframes toastin{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}