:root{--bg0:#12081f;--bg1:#1a1030;--panel:#1c1330eb;--panel-solid:#1d1430;--border:#3a2c5e;--text:#e8eaf2;--muted:#8b90a5;--mag:#ff2d9b;--cyan:#3de0ff;--accent:#b388ff;--cta:#37236b;--cta-border:#5a3fa0;--good:#4ade80;--bad:#f87171;--sans:Inter, Geist, system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, "Cascadia Mono", Consolas, monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}body{background:var(--bg0);color:var(--text);font-family:var(--sans);margin:0}html,body,#app{height:100dvh}html,body{margin:0;overflow:hidden}#app{flex-direction:column;display:flex}.topbar{border-bottom:1px solid var(--border);background:var(--panel);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:8px 20px;display:flex}.topbar h1{letter-spacing:.35em;margin:0;font-size:15px;font-weight:800}.wordmark{color:inherit;text-decoration:none}.wmark-o{animation:3.2s ease-in-out infinite opulse;display:inline-block}@keyframes opulse{0%,to{text-shadow:none}50%{color:var(--cyan);text-shadow:0 0 12px #3de0ffcc}}.footer a,.menudrop a,.panel a{color:var(--cyan)}.sub{color:var(--muted);letter-spacing:0;margin:2px 0 0;font-size:12px}#loader{align-items:center;gap:8px;display:flex}#loader input{background:var(--bg1);border:1px solid var(--border);width:90px;color:var(--text);border-radius:6px;padding:6px 8px}#loader button[type=submit]{border:1px solid var(--cyan);color:var(--text);cursor:pointer;background:linear-gradient(135deg,#3b256f 0%,#143c54 100%);border-radius:12px;padding:7px 14px;font-weight:700;transition:box-shadow .15s,filter .15s}#loader button[type=submit]:hover{filter:brightness(1.15);box-shadow:0 0 14px #3de0ff8c}.modes{gap:6px;display:flex}.modes button{border:1px solid var(--cyan);color:var(--text);cursor:pointer;background:linear-gradient(135deg,#3b256f 0%,#143c54 100%);border-radius:12px;padding:6px 14px;font-weight:700;transition:box-shadow .15s,filter .15s}.modes button:hover{filter:brightness(1.15);box-shadow:0 0 14px #3de0ff8c}.modes button.on{color:var(--cyan);box-shadow:0 0 14px #3de0ff8c}.prow{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:10px;padding:6px 4px;font-size:13px;display:flex}.prow .pthumb{background:var(--bg1);border:1px solid var(--border);width:48px;height:48px;font-family:var(--mono);border-radius:8px;flex:none;justify-content:center;align-items:center;font-size:11px;font-weight:800;display:flex;overflow:hidden}.prow .pthumb img{object-fit:cover;width:100%;height:100%;display:block}.prow.k-genesis .pthumb{border-color:var(--cyan);color:var(--cyan)}.prow.k-blackout .pthumb{border-color:var(--mag);color:var(--mag)}.prow.k-mini .pthumb,.prow.k-prime .pthumb{border-color:var(--good);color:var(--good)}.prow.k-pass .pthumb{border-color:var(--accent);color:var(--accent)}.prow.k-mayor .pthumb{border-color:var(--cyan);color:var(--cyan)}.prow .pline{flex-direction:column;flex:1;min-width:140px;display:flex}.prow .pid{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.prow .psub{color:var(--muted);font-size:12px}.prow .pact{flex-wrap:wrap;flex:none;justify-content:flex-end;gap:6px;display:flex}.prow button{background:var(--cta);border:1px solid var(--cta-border);color:var(--text);cursor:pointer;white-space:nowrap;border-radius:8px;padding:6px 12px;font-weight:700}.prow button:disabled{opacity:.4;cursor:default}.todaybox,.hoodedge{border-bottom:1px solid var(--border);background:var(--bg1);font-family:var(--mono);flex-wrap:wrap;align-items:center;gap:8px;padding:10px 14px;font-size:12px;display:flex}.todaybox button,.hoodedge button{background:var(--cta);border:1px solid var(--cta-border);color:var(--text);cursor:pointer;border-radius:8px;padding:5px 12px;font-weight:700}.dispatchbox{padding:4px 14px 8px}.dispatchbox h3{color:var(--cyan);letter-spacing:.14em;text-transform:uppercase;margin:8px 0 4px;font-size:12px}.dispatchbox p{margin:2px 0}#discBtn,#srcToggle,#verifyBtn,#bagAdd,#bagDel,#releaseBtn,#shopBtn2{border:1px solid var(--cyan);color:var(--cyan);background:0 0}.hoodtitle{font-weight:700}.hoodbanner{color:var(--good);border:1px solid var(--good);border-radius:6px;padding:4px 8px}.baglabel{font-weight:700}.hunt button,.route button{margin-left:6px}.hunt.off{opacity:.6}.footer{color:var(--muted);border-top:1px solid var(--border);padding:8px 20px;font-size:11px}.topright{align-items:center;gap:8px;display:flex}.topright button{border:1px solid var(--cyan);color:var(--text);cursor:pointer;background:linear-gradient(135deg,#3b256f 0%,#143c54 100%);border-radius:12px;padding:6px 14px;font-weight:700;transition:box-shadow .15s,filter .15s}.topright button:hover{filter:brightness(1.15);box-shadow:0 0 14px #3de0ff8c}.ghostbtn{border:1px solid var(--cyan);color:var(--cyan);cursor:pointer;background:0 0;border-radius:12px;padding:5px 12px;font-weight:700;transition:box-shadow .15s,filter .15s}.ghostbtn:hover{filter:brightness(1.15);box-shadow:0 0 14px #3de0ff8c}.finder{border-bottom:1px solid var(--border);background:var(--bg1);padding:8px 20px}.menudrop{border-bottom:1px solid var(--border);background:var(--bg1);font-family:var(--mono);flex-wrap:wrap;align-items:center;gap:8px;padding:6px 20px;font-size:12px;display:flex}.menudrop input{background:var(--bg0);border:1px solid var(--border);width:70px;color:var(--text);border-radius:6px;padding:5px 8px}.menudrop button{border:1px solid var(--cyan);color:var(--cyan);cursor:pointer;background:0 0;border-radius:6px;padding:5px 10px;font-weight:700}.todaybar{border-bottom:1px solid var(--border);background:var(--panel);color:var(--muted);flex-wrap:wrap;align-items:center;gap:10px;padding:8px 20px;font-size:13px;display:flex}.todaybar button{background:var(--cta);border:1px solid var(--cta-border);color:var(--text);cursor:pointer;border-radius:8px;padding:6px 14px;font-weight:700}.quiet{color:var(--muted);border:1px solid var(--border);border-radius:999px;margin:4px 0;padding:2px 10px;font-size:12px;display:inline-block}.seenbox{font-size:13px}.seenbox p{color:var(--muted)}.tabbar{background:var(--bg1);gap:6px;padding:6px 20px 0;display:flex}.tabbar button{border:1px solid var(--cyan);color:var(--cyan);cursor:pointer;background:0 0;border-bottom:none;border-radius:8px 8px 0 0;padding:6px 18px;font-weight:700;transition:box-shadow .15s,filter .15s}.tabbar button.on{border:1px solid var(--cyan);color:var(--text);background:linear-gradient(135deg,#3b256f 0%,#143c54 100%);border-bottom:none;box-shadow:0 0 14px #3de0ff59}.rail{border-left:1px solid var(--border);background:var(--panel);flex-direction:column;height:100%;min-height:0;display:flex;overflow:hidden}#pin{flex:none}#pinblock:empty{display:none}#pinblock{padding:0 14px 8px}#pinblock h2{letter-spacing:.04em;margin:8px 0}#pinblock .claim,#pinblock .shop{margin:8px 0}.railscroll{flex:1;min-height:0;padding-bottom:96px;overflow-y:auto}#pieces{border-top:1px solid var(--border)}#pieces h3{background:var(--panel);z-index:1;position:sticky;top:0}@media (width<=1000px){.railscroll{overflow:visible}}.pieces{padding:4px 14px 24px}.pieces h2{letter-spacing:.04em;margin:12px 0 4px}.pieces h3{margin:18px 0 8px;font-size:15px}.pieces h3:first-child{margin-top:8px}.meter{cursor:pointer;font-family:var(--mono);border-radius:6px;grid-template-columns:64px 1fr;align-items:center;gap:8px;padding:3px 6px;font-size:12px;display:grid}.meter:hover{background:#3de0ff14}.meter.on{outline:1px solid var(--cyan)}.meter .track{border:1px solid var(--border);background:#0a0616;border-radius:5px;height:10px;overflow:hidden}.meter .fill{background:linear-gradient(#6ff3ff 0%,#3de0ff 45%,#1b8fb0 100%);border-radius:5px;height:100%;box-shadow:0 0 8px #3de0ff73}.modal{z-index:50;background:#07080fb3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modalbox{background:var(--panel-solid);border:1px solid var(--border);border-radius:12px;min-width:280px;max-width:90vw;padding:20px 22px}.modalbox h3{letter-spacing:.04em;margin:0 0 12px}.modalbox button{background:var(--cta);border:1px solid var(--cta-border);width:100%;color:var(--text);cursor:pointer;border-radius:8px;margin:6px 0;padding:8px 12px;font-weight:700;display:block}.claim{border:1px solid var(--border);font-family:var(--mono);background:#12141fe6;border-radius:12px;margin:12px 0;padding:8px 10px;font-size:13px}.claim.lit{border-color:var(--good);color:var(--good)}.claim.ruin{color:var(--muted)}.banner{border:1px solid var(--good);color:var(--good);background:#4ade801f;border-radius:12px;margin:8px 0;padding:8px 10px;font-weight:700}.shop{border:1px solid var(--border);background:#12141fe6;border-radius:12px;margin:12px 0;padding:8px 10px}.shop h3{color:var(--cyan);letter-spacing:.14em;text-transform:uppercase;font-size:12px}.shop .row{gap:8px;margin:8px 0;display:flex}.shop select{background:var(--bg0);color:var(--text);border:1px solid var(--border);border-radius:6px;flex:1;padding:6px 8px}.shop button,.claim button{background:var(--cta);border:1px solid var(--cta-border);color:var(--text);cursor:pointer;border-radius:8px;padding:6px 12px;font-weight:700}#siege h3{color:var(--mag);letter-spacing:.14em;text-transform:uppercase;margin:16px 0 6px;font-size:12px}#siege .row{flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0;display:flex}#siege button{background:var(--cta);border:1px solid var(--cta-border);color:var(--text);cursor:pointer;border-radius:8px;padding:6px 12px;font-weight:700}#siege button:disabled,.claim button:disabled,.shop button:disabled{opacity:.4;cursor:default}.muted{color:var(--muted);font-size:12px}.error{color:var(--bad);font-size:13px}.layout{flex:1;grid-template-columns:minmax(0,1fr) 360px;gap:0;min-height:0;display:grid;overflow:hidden}.leftcol{flex-direction:column;min-width:0;min-height:0;display:flex}.leftcol .canvasWrap{flex:1}.leftcol .footer{flex:none}@media (width<=1000px){html,body,#app{height:auto;overflow:visible}.layout{grid-template-columns:1fr}}.canvasWrap{background:var(--bg1);min-height:0;position:relative;overflow:hidden}.canvasWrap.featured{box-shadow:inset 0 0 80px #3de0ff12}.canvasWrap.featured .stage{transform-origin:50% 60%;animation:4s ease-in-out infinite breathe}@keyframes breathe{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}@media (prefers-reduced-motion:reduce){.canvasWrap.featured .stage,.wmark-o{animation:none}}.stage{width:100%;height:100%}#city{width:100%;height:100%;display:block}.status{font-family:var(--mono);color:var(--muted);border:1px solid var(--border);background:#1c1330e6;border-radius:6px;margin:0;padding:4px 8px;font-size:12px;position:absolute;bottom:10px;left:12px}.tooltip{pointer-events:none;border:1px solid var(--border);font-size:12px;font-family:var(--mono);white-space:nowrap;z-index:5;background:#1c1330f2;border-radius:6px;padding:4px 8px;position:absolute}.hidden{display:none}.panel{border-left:1px solid var(--border);background:var(--panel);min-height:0;padding:12px 14px 24px;font-size:14px}.panel h2{letter-spacing:.04em;margin:0 0 8px}.panel h3{margin:20px 0 6px;font-size:15px}.panel h4{color:var(--cyan);margin:12px 0 2px;font-size:13px}.panel p{color:var(--text);margin:4px 0}.panel .row,#pinblock .row{flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0;display:flex}#tryDemoBtn,a.playdemo{border:1px solid var(--cyan);color:var(--text);cursor:pointer;background:linear-gradient(135deg,#3b256f 0%,#143c54 100%);border-radius:12px;padding:7px 16px;font-weight:700;transition:box-shadow .15s,filter .15s}a.playdemo{text-decoration:none;display:inline-block}#tryDemoBtn:hover,a.playdemo:hover{filter:brightness(1.15);box-shadow:0 0 14px #3de0ff8c}#findOpenBtn{border:1px solid var(--cyan);color:var(--cyan);cursor:pointer;background:0 0;border-radius:12px;padding:7px 16px;font-weight:700;transition:box-shadow .15s,filter .15s}#findOpenBtn:hover{filter:brightness(1.15);box-shadow:0 0 14px #3de0ff8c}details{border:1px solid var(--border);border-radius:6px;margin:6px 0;padding:6px 10px}summary{cursor:pointer}
