:root{--bg:#0f1420;--glass:#0f1521cc;--glass-2:#ffffff12;--line:#ffffff21;--text:#eef2f9;--muted:#9ba7bd;--accent:#ffcf4a;--accent-ink:#231a00;--danger:#ff6464;--blue:#4c8dff;--r:14px;--font:system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--text);font-family:var(--font);overscroll-behavior:none;-webkit-tap-highlight-color:transparent;margin:0;overflow:hidden}#app{position:fixed;top:0;bottom:0;left:0;right:0}.stage{top:0;left:0;right:0;bottom:var(--dock-h,0px);position:fixed;overflow:hidden}canvas.game{touch-action:none;outline:none;width:100%;height:100%;display:block}[hidden]{display:none!important}kbd{font:700 11px/1 var(--font);border:1px solid var(--line);color:var(--text);background:#ffffff29;border-bottom-width:2px;border-radius:6px;padding:3px 6px}.muted{color:var(--muted)}.small{font-size:12px}.hud{inset:0 0 var(--dock-h,0px) 0;pointer-events:none;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);position:fixed}.hud>*{pointer-events:auto}.hud-top{pointer-events:none;justify-content:space-between;align-items:flex-start;gap:10px;display:flex;position:absolute;top:12px;left:12px;right:12px}.hud-top>*{pointer-events:auto}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{background:var(--glass);-webkit-backdrop-filter:blur(10px);border:1px solid var(--line);white-space:nowrap;border-radius:999px;align-items:center;gap:8px;padding:7px 13px;font-size:13px;display:flex}.chip .ico{font-size:15px}.chip.taxi{background:var(--accent);color:var(--accent-ink);border-color:#0000;font-weight:700}.actions{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.hbtn{font:600 13px var(--font);color:var(--text);background:var(--glass);-webkit-backdrop-filter:blur(10px);border:1px solid var(--line);cursor:pointer;border-radius:10px;align-items:center;gap:8px;padding:8px 11px;display:flex}.hbtn:hover{background:#28344ee6}.hbtn.sq{justify-content:center;width:34px;padding:8px 0}.prompt{gap:8px;display:flex;position:absolute;bottom:26px;left:50%;transform:translate(-50%)}.pr{font:600 14px var(--font);color:var(--text);background:var(--glass);-webkit-backdrop-filter:blur(10px);border:1px solid var(--line);cursor:pointer;border-radius:12px;align-items:center;gap:10px;padding:10px 14px;display:flex;box-shadow:0 8px 28px #00000059}.pr.sec{opacity:.85;font-weight:500}.pr kbd{background:var(--accent);color:var(--accent-ink);border-color:#0000}.toasts{pointer-events:none;flex-direction:column;align-items:center;gap:8px;width:min(92vw,520px);display:flex;position:absolute;top:62px;left:50%;transform:translate(-50%)}.toast{border:1px solid var(--line);text-align:center;background:#0f1521eb;border-radius:12px;padding:10px 16px;font-size:14px;animation:.22s tin;box-shadow:0 8px 28px #00000059}.toast.out{opacity:0;transition:all .45s;transform:translateY(-6px)}@keyframes tin{0%{opacity:0;transform:translateY(-8px)}}.dialog{background:var(--glass);-webkit-backdrop-filter:blur(12px);border:1px solid var(--line);border-radius:var(--r);width:min(92vw,520px);padding:12px 16px 14px;position:absolute;bottom:84px;left:50%;transform:translate(-50%)}.dialog .who{align-items:baseline;gap:8px;display:flex}.dialog .who span{color:var(--muted);font-size:12px}.dialog p{margin:6px 0 0;font-size:15px;line-height:1.45}.minimap{pointer-events:none;z-index:5;background:#262c3b;border:2px solid #ffffff38;border-radius:16px;width:168px;height:168px;position:fixed;bottom:12px;left:12px;overflow:hidden;box-shadow:0 10px 30px #0006}.minimap-cv{width:168px;height:168px;display:block}.fade{opacity:0;pointer-events:none;z-index:40;background:#000;position:fixed;top:0;bottom:0;left:0;right:0}.fade.on{opacity:1;pointer-events:auto}.touch{display:none}@media (pointer:coarse){.touch{pointer-events:none;display:block;position:absolute;top:0;bottom:0;left:0;right:0}.joy{pointer-events:auto;touch-action:none;background:#ffffff1a;border:2px solid #ffffff40;border-radius:50%;place-items:center;width:124px;height:124px;display:grid;position:absolute;bottom:28px;right:22px}.knob{background:#ffffff73;border-radius:50%;width:54px;height:54px}.minimap{width:120px;height:120px;bottom:12px}.minimap-cv{width:120px;height:120px}.prompt{bottom:170px}.dialog{bottom:180px}}.btn{font:600 14px var(--font);color:var(--text);background:var(--glass-2);border:1px solid var(--line);cursor:pointer;border-radius:10px;padding:10px 16px}.btn:hover{background:#ffffff21}.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:#0000}.btn.primary:hover{filter:brightness(1.06)}.btn.danger{color:var(--danger);border-color:#ff646466}.btn.ghost{background:0 0}.btn.sq{text-align:center;width:36px;padding:8px 0;font-size:18px;line-height:1}.btn.small{margin-top:8px;padding:6px 10px;font-size:12px}.btn.big{border-radius:12px;padding:14px 26px;font-size:16px}.row{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.row.end{justify-content:flex-end}.splash{z-index:30;background:radial-gradient(1200px 700px at 50% 30%,#0f15218c,#0f1521e6);place-items:center;padding:16px;display:grid;position:fixed;top:0;bottom:0;left:0;right:0;overflow:auto}.splash-card{border:1px solid var(--line);text-align:center;background:#0f1521e0;border-radius:22px;width:min(94vw,520px);padding:28px 28px 22px;box-shadow:0 30px 80px #00000080}.brandmark{background:var(--accent);width:52px;height:52px;color:var(--accent-ink);font:900 20px var(--font);letter-spacing:-.5px;border-radius:14px;place-items:center;margin:0 auto 12px;display:grid}.splash h1{letter-spacing:-.5px;margin:0 0 8px;font-size:30px}.lead{color:var(--muted);margin:0 0 18px;font-size:15px;line-height:1.5}.keys{text-align:left;gap:8px;margin:0 0 20px;padding:0;list-style:none;display:grid}.keys li{align-items:center;gap:12px;font-size:14px;display:flex}.keys kbd{text-align:center;min-width:58px}.modal-back{z-index:20;background:#05080e9e;place-items:center;padding:14px;display:grid;position:fixed;top:0;bottom:0;left:0;right:0;overflow:auto}.modal{border:1px solid var(--line);background:#131a28;border-radius:20px;width:min(96vw,760px);padding:22px;box-shadow:0 30px 80px #0000008c}.modal header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.modal h2{letter-spacing:-.3px;margin:0;font-size:22px}.meta{color:var(--muted);margin:4px 0 0;font-size:13px}.claim-grid{grid-template-columns:1.15fr 1fr;gap:22px;display:grid}@media (max-width:680px){.claim-grid{grid-template-columns:1fr}}form{gap:14px;display:grid}label,.field{color:var(--muted);gap:6px;font-size:13px;display:grid}label span,.field>span{font-weight:600}input[type=text],input[type=url]{font:500 15px var(--font);color:var(--text);border:1px solid var(--line);background:#ffffff0f;border-radius:10px;outline:none;width:100%;padding:11px 12px}input[type=text]:focus,input[type=url]:focus{border-color:var(--accent);box-shadow:0 0 0 3px #ffcf4a33}.colors{align-items:center;gap:8px;display:flex}.color-input{border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:8px;width:44px;height:38px;padding:0}.hex{max-width:110px;font-family:ui-monospace,Menlo,Consolas,monospace!important}.swatches{flex-wrap:wrap;gap:6px;display:flex}.sw{cursor:pointer;border:2px solid #0000;border-radius:50%;width:26px;height:26px}.sw.on{border-color:#fff;box-shadow:0 0 0 2px #ffffff40}.file{color:var(--muted);font-size:13px}.err{color:var(--danger);min-height:0;margin:0;font-size:13px}.err:empty{display:none}.notice{color:var(--muted);background:#ffcf4a14;border:1px solid #ffcf4a40;border-radius:10px;margin:0;padding:10px 12px;font-size:12.5px;line-height:1.5}.notice b{color:var(--accent)}.preview{align-content:start;gap:10px;display:grid}.preview .label{color:var(--muted);font-size:13px;font-weight:600}.pv-roof{text-align:center;border:3px solid #ffffff59;border-radius:14px;align-content:center;justify-items:center;gap:8px;min-height:170px;padding:26px 16px;transition:background .15s;display:grid;box-shadow:inset 0 0 0 3px #ffffff1f}.pv-logo img{max-width:84px;max-height:84px;display:block}.pv-name{font:800 22px var(--font);letter-spacing:-.3px;word-break:break-word}.pv-tag{font:500 13px var(--font);opacity:.85;word-break:break-word}.map-overlay{z-index:15;background:#1b2130;position:fixed;top:0;bottom:0;left:0;right:0}.map-cv{touch-action:none;cursor:grab;position:absolute;top:0;bottom:0;left:0;right:0}.map-cv:active{cursor:grabbing}.map-bar{background:var(--glass);-webkit-backdrop-filter:blur(10px);border:1px solid var(--line);pointer-events:auto;border-radius:14px;align-items:center;gap:8px;padding:8px 10px 8px 16px;display:flex;position:absolute;top:12px;left:12px;right:12px}.map-bar .sub{color:var(--muted);font-size:12px}.map-bar .grow{flex:1}@media (max-width:720px){.map-bar .sub{display:none}}.map-side{background:var(--glass);-webkit-backdrop-filter:blur(12px);border:1px solid var(--line);pointer-events:auto;border-radius:16px;width:min(320px,100vw - 24px);padding:14px;position:absolute;top:70px;bottom:12px;right:12px;overflow:auto}@media (max-width:720px){.map-side{height:42vh;top:auto}}.map-side h3{margin:0 0 2px;font-size:18px}.map-side h4{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:18px 0 8px;font-size:12px}.hint{color:var(--accent);margin:0 0 12px;font-size:13px}.place-card{border:1px solid var(--line);background:var(--glass-2);border-radius:12px;padding:12px}.place-card .tag{margin:6px 0 0;font-size:13px}.claims{gap:6px;margin:0;padding:0;list-style:none;display:grid}.claim-row{text-align:left;background:var(--glass-2);border:1px solid var(--line);width:100%;color:var(--text);cursor:pointer;font:inherit;border-radius:10px;align-items:center;gap:10px;padding:8px;display:flex}.claim-row:hover{background:#ffffff1f}.claim-row .logo,.claim-row .swatch{object-fit:contain;background:#ffffff14;border-radius:8px;flex:none;width:34px;height:34px}.claim-row .txt{min-width:0;display:grid}.claim-row b,.claim-row small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.claim-row small{color:var(--muted)}.rail{background:var(--glass);-webkit-backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:4px;flex-direction:column;display:flex;position:absolute;top:64px;overflow:hidden}.rail.left{left:12px}.rail.right{right:12px}.rbtn{border:0;border-bottom:1px solid var(--line);width:46px;height:46px;color:var(--text);cursor:pointer;background:0 0;place-items:center;display:grid}.rbtn:last-child{border-bottom:0}.rbtn:hover{background:#ffffff1a}.rbtn:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}.rbtn.on{background:var(--accent);color:var(--accent-ink)}@media (max-width:520px){.rail{top:96px}.rbtn{width:42px;height:42px}}:root{--dock-h:0px}.dock{z-index:12;border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);--pad:max(14px, calc((100% - 760px) / 2));background:#101612;flex-direction:column;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -10px 30px #00000059}.dock.open{max-height:min(80vh,800px)}.dock-head{padding:10px var(--pad);background:#0d120f;align-items:center;gap:8px;display:flex}.dock .stat{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);gap:1px;min-width:0;font:600 10px ui-monospace,Menlo,Consolas,monospace;display:grid}.dock .stat b{color:#d8f27a;letter-spacing:.02em;font-variant-numeric:tabular-nums;font-size:17px}.dock-head .grow{flex:1}.dock-cta{letter-spacing:.08em;text-transform:uppercase;min-width:0;color:var(--text);cursor:pointer;background:#ffffff12;border:0;border-radius:4px;flex:1;padding:11px 8px;font:600 11px ui-monospace,Menlo,Consolas,monospace}.dock-cta:hover{background:#ffffff21}.dock-toggle{color:#14200a;cursor:pointer;background:#d8f27a;border:0;border-radius:4px;flex:none;align-items:center;gap:6px;padding:9px 12px;font:700 13px ui-monospace,Menlo,Consolas,monospace;display:flex}.dock-toggle:hover{filter:brightness(1.05)}.ticker{padding:9px var(--pad);color:#14200a;background:#d8f27a;align-items:center;gap:10px;min-width:0;font-size:14px;display:flex}.ticker.idle{color:var(--muted);background:#1a231b}.ticker i{background:#e4572e;border-radius:50%;flex:none;width:11px;height:11px}.ticker.idle i{background:#5b6b5d}.ticker .tk-text{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.ticker time{letter-spacing:.12em;opacity:.7;flex:none;font:600 11px ui-monospace,Menlo,Consolas,monospace}.dock-top{margin:0;padding:0;list-style:none}.crow{width:100%;padding:6px var(--pad);border:0;border-top:1px solid var(--line);color:var(--text);text-align:left;cursor:pointer;font:inherit;background:0 0;grid-template-columns:auto 40px 1fr auto;align-items:center;gap:10px;display:grid}.crow:hover{background:#ffffff0d}.crow .rank{color:#14200a;background:#d8f27a;border-radius:5px;padding:2px 5px;font:700 11px ui-monospace,Menlo,Consolas,monospace}.crow .clogo img,.crow .clogo .initial{object-fit:cover;color:#fff;width:36px;height:36px;font:800 16px var(--font);border:2px solid #ffffffd9;border-radius:8px;place-items:center;display:grid}.crow .cname{white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:16px;font-weight:600;overflow:hidden}.crow .cval{color:#d8f27a;font-variant-numeric:tabular-nums;font:700 16px ui-monospace,Menlo,Consolas,monospace}.dock-empty{padding:10px var(--pad);color:var(--muted);border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;font-size:13px;display:flex}.dock-empty .btn{flex:none;margin:0}.dock-scroll{flex:1;min-height:0;overflow-y:auto}.board-list{border-inline:1px solid var(--line);max-width:760px;margin:0 auto;padding:0;list-style:none}.brow{border-bottom:1px solid var(--line);grid-template-columns:84px 1fr;grid-template-areas:"logo info""act act";display:grid;position:relative}.brow .rank{z-index:1;color:#14200a;background:#d8f27a;border-radius:6px;padding:3px 6px;font:700 13px ui-monospace,Menlo,Consolas,monospace;position:absolute;top:8px;left:8px}.brow .logo{border:0;border-right:1px solid var(--line);cursor:pointer;background:0 0;grid-area:logo;place-items:center;padding:38px 10px 14px;display:grid}.brow .logo img,.brow .logo .initial{object-fit:cover;color:#fff;width:64px;height:64px;font:800 28px var(--font);border:2px solid #ffffffd9;border-radius:12px;place-items:center;display:grid}.brow .info{grid-area:info;min-width:0;padding:14px 16px 12px}.brow h3{letter-spacing:-.2px;overflow-wrap:anywhere;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 4px;font-size:19px;display:flex}.brow h3 em{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line);border-radius:5px;padding:2px 5px;font:600 10px ui-monospace,Menlo,Consolas,monospace}.brow .desc{color:var(--muted);overflow-wrap:anywhere;margin:0 0 8px;font-size:15px;line-height:1.4}.brow .facts{letter-spacing:.08em;color:#8e9bb0;font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:4px 14px;margin:0;font:600 12px ui-monospace,Menlo,Consolas,monospace;display:flex}.brow-act{border-top:1px solid var(--line);grid-area:act;grid-template-columns:1fr 1fr;display:grid}.brow-act .act{letter-spacing:.14em;text-transform:uppercase;color:var(--text);border:0;border-right:1px solid var(--line);cursor:pointer;background:0 0;justify-content:center;align-items:center;gap:10px;padding:14px 10px;font:700 13px ui-monospace,Menlo,Consolas,monospace;text-decoration:none;display:flex}.brow-act .act:hover{background:#ffffff0f}.brow-act .gl{font-size:15px}.brow-act .val{letter-spacing:.2em;text-transform:uppercase;color:var(--muted);align-content:center;justify-items:center;padding:10px;font:700 11px ui-monospace,Menlo,Consolas,monospace;display:grid}.brow-act .val b{color:#d8f27a;letter-spacing:.02em;font-variant-numeric:tabular-nums;font-size:18px}.board-empty{max-width:760px;color:var(--muted);gap:14px;margin:0 auto;padding:26px 18px;line-height:1.5;display:grid}.board-empty p{margin:0}.board-empty .row{flex-wrap:wrap;gap:10px;display:flex}.board-foot{padding:10px var(--pad);border-top:1px solid var(--line);background:#0d120f;justify-content:space-between;align-items:center;gap:12px;display:flex}.board-foot p{color:var(--muted);margin:0;font-size:12px;line-height:1.4}.board-foot .btn{flex:none;margin:0}.minimap{left:auto;right:12px;bottom:calc(var(--dock-h,0px) + 12px)!important}@media (max-width:700px){.dock.open{max-height:84vh}.minimap{display:none!important}.brow{grid-template-columns:74px 1fr}}.dock .stat.plots b{color:#fff}@media (max-width:700px){.dock .stat.plots{display:none}}.map-bar .tabs{background:#ffffff14;border-radius:8px;gap:2px;margin-left:6px;padding:2px;display:flex}.map-bar .tab{-webkit-appearance:none;appearance:none;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:6px 12px;font:700 12px system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.map-bar .tab.on{color:#1b2230;background:#f2c94c}.city-card{cursor:pointer;margin-bottom:10px}.city-card.sel{border-color:#fff}.city-card .you{text-transform:uppercase;letter-spacing:.08em;color:#1b2230;vertical-align:middle;background:#ffd028;border-radius:4px;margin-left:8px;padding:2px 6px;font:700 10px system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.steps{gap:6px;margin:6px 0 14px;display:flex}.steps .dot{color:var(--muted);cursor:pointer;background:#ffffff0f;border:0;border-bottom:3px solid #ffffff1f;border-radius:4px 4px 0 0;flex:1;align-items:center;gap:8px;padding:8px;font:600 12px system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;display:flex}.steps .dot i{background:#ffffff1f;border-radius:50%;flex:none;place-items:center;width:20px;height:20px;font-size:11px;font-style:normal;display:grid}.steps .dot.on{color:var(--text);border-bottom-color:var(--accent)}.steps .dot.on i,.steps .dot.done i{background:var(--accent);color:var(--accent-ink)}.steps .dot.done{color:var(--text);border-bottom-color:#fff6}@media (max-width:520px){.steps .dot span{display:none}.steps .dot{justify-content:center}}.wiz-body{align-content:start;gap:14px;min-height:220px;display:grid}.wiz-lead{color:var(--muted);margin:0;font-size:14px}.wiz-foot{align-items:center;margin-top:12px}.wiz-foot .grow{flex:1}.dropzone{color:var(--text);cursor:pointer;background:#ffffff0a;border:2px dashed #ffffff47;border-radius:8px;place-items:center;gap:4px;min-height:110px;padding:16px;font:700 14px system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;display:grid}.dropzone:hover{border-color:var(--accent)}.dropzone img{object-fit:contain;max-width:100%;max-height:90px}.dropzone small{color:var(--muted);font-weight:500}.dz-ico{font-size:28px;line-height:1}.pv-board{color:#1b2230;background:#f7f8fa;border:4px solid #888;border-radius:4px;align-items:center;gap:12px;min-height:86px;padding:10px 12px;display:flex;box-shadow:0 6px 16px #0000004d}.pv-blogo{flex:none;place-items:center;width:66px;height:66px;display:grid}.pv-blogo img{object-fit:contain;max-width:100%;max-height:100%}.pv-ph{color:#fff;background:#1b2230;border-radius:6px;place-items:center;width:100%;height:100%;font:800 30px system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;display:grid}.pv-btext{gap:2px;min-width:0;display:grid}.pv-btext b{text-overflow:ellipsis;white-space:nowrap;font:800 20px system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;overflow:hidden}.pv-btext small{color:#4a5565;text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.modal{width:min(96vw,540px)}.brow{grid-template-columns:auto 52px 1fr;grid-template-areas:"rank logo info""act act act";align-items:center;column-gap:10px;padding:10px 12px 0}.brow .rank{border-radius:999px;grid-area:rank;padding:3px 7px;font-size:12px;position:static}.brow .logo{border:0;padding:0}.brow .logo img,.brow .logo .initial{border-radius:10px;width:46px;height:46px;font-size:22px}.brow .info{padding:0}.brow h3{margin:0 0 2px;font-size:16px}.brow .desc{margin:0 0 6px;font-size:12px;line-height:1.35}.brow .facts{letter-spacing:.03em;flex-wrap:wrap;gap:7px;font-size:13px}.brow .facts span{color:#b6c1d3;background:#ffffff14;border-radius:999px;padding:6px 13px;font-weight:600}.brow .facts span:first-child{color:#d8f27a;background:#d8f27a29}.brow-act{margin:10px -12px 0}.brow-act .act{padding:8px 10px;font-size:12px}.brow-act .val{padding:6px 10px;font-size:10px}.brow-act .val b{font-size:16px}@media (max-width:700px){.brow{grid-template-columns:auto 52px 1fr}}
