:root{--bg:#2b2440;--panel:#1a1822ee;--ink:#f4f1e8;--muted:#a9a5bd;--line:#57536a;--accent:#ffe066;--go:#46e05a;--bad:#ff3b3b;--p-red:#d63a2f;--p-teal:#2bb39a;--p-purple:#8a4fd9;--p-yellow:#f5c52a;--p-blue:#3a78d9;--p-orange:#f07a24;--p-graphite:#8a86a0;--p-white:#e6e3ef;font-family:"Press Start 2P",Courier New,monospace}html,body{background:var(--bg);height:100%;color:var(--ink);touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;margin:0;overflow:hidden}#game{position:fixed;inset:0}canvas{image-rendering:pixelated;display:block}#ui{pointer-events:none;font-size:10px;line-height:1.6;position:fixed;inset:0}[hidden]{display:none!important}.hud{text-align:right;gap:12px;display:flex;position:absolute;top:44px;right:16px}.hud small{color:var(--muted);font-size:8px;display:block}.hud b{font-size:14px}.hint{text-align:center;color:var(--accent);text-shadow:2px 2px #000;font-size:12px;position:absolute;top:22%;left:0;right:0}.feedback{text-align:center;opacity:0;text-shadow:3px 3px #000;font-size:18px;transition:opacity .25s,transform .25s;position:absolute;top:30%;left:0;right:0;transform:translateY(6px)}.feedback.show{opacity:1;transition:none;transform:none}.r-perfect{color:var(--accent)}.r-good{color:var(--go)}.r-early,.r-late{color:#ff9a9a}.feedback.r-perfect{font-size:24px;animation:.35s steps(4,end) pop}@keyframes pop{0%{transform:scale(1.6)}to{transform:scale(1)}}.panel{pointer-events:auto;box-sizing:border-box;background:var(--panel);border:4px solid var(--line);width:min(560px,100vw - 32px);max-height:calc(100vh - 32px);padding:16px;position:absolute;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%);box-shadow:0 0 0 4px #141219,8px 8px 0 4px #0006}.panel h1{color:var(--accent);text-shadow:3px 3px #000;margin:0 0 4px;font-size:20px}.panel h1.win{color:var(--go)}.panel h1.loss{color:var(--bad)}.panel h2{color:var(--muted);margin:16px 0 8px;font-size:11px}.panel h3{color:var(--muted);margin:16px 0 6px;font-size:10px}.sub{color:var(--muted);margin:4px 0;font-size:8px}.cards{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;display:grid}.card{font:inherit;color:var(--ink);text-align:left;border:3px solid #141219;border-left:8px solid var(--paint);cursor:pointer;background:#24222b;padding:8px;font-size:9px}.card.sel{border-color:var(--accent);border-left-color:var(--paint);background:#34304a}.card strong{margin-bottom:2px;display:block}.card small{color:var(--muted);min-height:10px;font-size:7px;display:block}.stat{color:var(--muted);grid-template-columns:1fr 50px 22px;align-items:center;gap:4px;font-size:7px;display:grid}.stat i{background:linear-gradient(90deg, var(--paint) calc(var(--v) * 1%), #141219 0);height:5px;display:block}.stat b{color:var(--ink);text-align:right}button.go,button.alt{font:inherit;cursor:pointer;color:#141219;background:var(--go);border:3px solid #141219;margin-top:14px;padding:10px 14px;font-size:11px;box-shadow:inset -3px -3px #1f8a33}button.go{width:100%;display:block}button.alt{background:var(--muted);box-shadow:inset -3px -3px 0 var(--line);margin-top:8px;padding:8px 10px;font-size:8px}button:active{transform:translateY(2px)}.buttons{flex-wrap:wrap;gap:8px;display:flex}.buttons .go{flex:2;width:auto}.buttons .alt{flex:1;margin-top:14px}table{border-collapse:collapse;width:100%;margin-top:12px;font-size:9px}th{text-align:left;color:var(--muted);padding:4px 0;font-weight:400}td{text-align:right;padding:4px 0 4px 8px}tr+tr{border-top:2px solid #24222b}.ratings{margin-top:10px;font-size:8px;line-height:2}.tuning{z-index:2;width:min(380px,100vw - 24px);top:12px;left:auto;right:12px;transform:none}.tuning fieldset{border:2px solid var(--line);grid-template-columns:1fr 1fr;gap:6px;margin:0 0 8px;padding:6px 8px;display:grid}.tuning legend{color:var(--accent);font-size:8px}.tuning label{color:var(--muted);flex-direction:column;gap:2px;font-size:7px;display:flex}.tuning input{font:inherit;color:var(--ink);border:2px solid var(--line);box-sizing:border-box;background:#141219;width:100%;padding:4px;font-size:9px}.runs{margin:0;padding:0;font-size:7px;list-style:none}.runs li{border-top:2px solid #24222b;justify-content:space-between;align-items:center;gap:6px;display:flex}.runs .alt{flex:none;margin:4px 0;padding:4px 6px;font-size:7px}.warn{color:#ff9a9a;font-size:7px}@media (width<=420px){#ui{font-size:9px}.panel{padding:12px}.panel h1{font-size:16px}}:root{--r-common:#b8b4c8;--r-uncommon:#46e05a;--r-rare:#4aa3ff;--r-epic:#c26bff;--r-legendary:#ffb02e;--solid:#1a1822;--card:#24222b;--edge:#141219}.rc-common{color:var(--r-common)}.rc-uncommon{color:var(--r-uncommon)}.rc-rare{color:var(--r-rare)}.rc-epic{color:var(--r-epic)}.rc-legendary{color:var(--r-legendary)}.muted{color:var(--muted)}em{font-style:normal}button:disabled{cursor:default;opacity:.45}button.go:disabled,button.alt:disabled{transform:none}button.busy{opacity:.6}.hub{pointer-events:auto;background:var(--solid);border-left:4px solid var(--edge);border-right:4px solid var(--edge);box-sizing:border-box;flex-direction:column;max-width:760px;height:100dvh;margin:0 auto;display:flex;position:absolute;inset:0}.topbar{padding:8px 12px;padding-top:max(8px, env(safe-area-inset-top));border-bottom:4px solid var(--edge);background:#12101a;align-items:center;gap:10px;font-size:9px;display:flex}.topbar .nick{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--accent);font:inherit;text-align:left;cursor:pointer;text-underline-offset:4px;background:0 0;border:0;flex:1;padding:0;-webkit-text-decoration:underline #ffe06688;text-decoration:underline #ffe06688;text-decoration-thickness:2px;overflow:hidden}.topbar .nick:hover,.topbar .nick:focus-visible{-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.topbar .cash{color:var(--go);white-space:nowrap}.lvl{flex-direction:column;flex:none;gap:3px;width:112px;display:flex}.lvl-row{justify-content:space-between;align-items:baseline;gap:4px;display:flex}.lvl small{color:var(--muted);white-space:nowrap;font-size:6px}.xpbar{background:var(--edge);border:2px solid var(--edge);height:6px;display:block}.xpbar i{background:var(--accent);height:100%;display:block}.tabs{background:var(--edge);border-bottom:4px solid var(--edge);grid-template-columns:repeat(4,1fr);gap:2px;display:grid}.tabs button{font:inherit;color:var(--muted);cursor:pointer;background:var(--card);border:0;padding:10px 2px;font-size:9px;box-shadow:inset 0 -3px #0d0c12}.tabs button.on{color:var(--accent);box-shadow:inset 0 -3px 0 var(--accent);background:#34304a}.tabs .short{display:none}.hub-body{overscroll-behavior:contain;flex:1;padding:4px 12px 16px;position:relative;overflow-y:auto}.hub-body h2{color:var(--muted);margin:16px 0 8px;font-size:10px}.hub-body h3{color:var(--muted);margin:12px 0 4px;font-size:8px}.picon{image-rendering:pixelated;background-repeat:no-repeat;flex:none;display:inline-block}.picon.fb{box-sizing:border-box;border:3px solid var(--edge);color:var(--edge);background:var(--r-common);justify-content:center;align-items:center;display:inline-flex}.picon.fb.r-uncommon{background:var(--r-uncommon)}.picon.fb.r-rare{background:var(--r-rare)}.picon.fb.r-epic{background:var(--r-epic)}.picon.fb.r-legendary{background:var(--r-legendary)}.picon.fb.empty{border-style:dashed;border-color:var(--line);color:var(--line);background:0 0}.picon.sil{filter:brightness(0) drop-shadow(1px 0 0 var(--line)) drop-shadow(-1px 0 0 var(--line)) drop-shadow(0 1px 0 var(--line)) drop-shadow(0 -1px 0 var(--line))}.picon.fb.sil{background:#000}.car-head{align-items:center;gap:8px;margin-top:12px;display:flex}.car-head h2{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;margin:0;font-size:12px;overflow:hidden}.swatch{background:var(--paint);border:3px solid var(--edge);flex:none;width:16px;height:16px}.badge{color:var(--muted);background:var(--card);border:2px solid var(--edge);white-space:nowrap;padding:4px 6px;font-size:8px}.badge b{color:var(--accent)}.statbars{gap:4px;margin-top:8px;display:grid}.statbars .stat{grid-template-columns:74px 1fr 26px 28px;font-size:8px}.statbars .stat i{height:8px;position:relative}.statbars .stat u{top:0;bottom:0;left:calc(var(--a) * 1%);width:calc((var(--b) - var(--a)) * 1%);position:absolute}.statbars .stat u.up{background:var(--go)}.statbars .stat u.down{background:var(--bad)}.diff{text-align:right;font-size:8px}.diff.up,.chip.up{color:var(--go)}.diff.down,.chip.down{color:var(--bad)}.slots{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:6px;display:grid}.slot,.inv,.opp{min-width:0}.slot,.inv{font:inherit;color:var(--ink);text-align:left;cursor:pointer;background:var(--card);border:3px solid var(--edge);align-items:center;gap:8px;padding:4px 6px;display:flex}.slot:disabled{opacity:1;cursor:default}.slot span{flex-direction:column;gap:2px;min-width:0;display:flex}.slot b{text-overflow:ellipsis;white-space:nowrap;font-size:8px;font-weight:400;overflow:hidden}.slot small{color:var(--muted);font-size:7px}.slot.sel,.inv.sel{border-color:var(--accent);background:#34304a}.invlist{gap:4px;display:grid}.inv{padding:3px 6px;font-size:8px}.inv b{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:400;overflow:hidden}.inv em,.inv .count{flex:none;font-size:7px}.inv .count{color:var(--accent);text-align:right;min-width:22px}.hint-line{margin-top:16px}.actionbar{border-top:4px solid var(--line);background:#12101a;margin:16px -12px -16px;padding:10px 12px 14px;position:sticky;bottom:-16px}.actionbar.r-edge-uncommon{border-top-color:var(--r-uncommon)}.actionbar.r-edge-rare{border-top-color:var(--r-rare)}.actionbar.r-edge-epic{border-top-color:var(--r-epic)}.actionbar.r-edge-legendary{border-top-color:var(--r-legendary)}.ab-head{align-items:center;gap:8px;display:flex}.ab-head span{flex-direction:column;gap:3px;min-width:0;display:flex}.ab-head b{font-size:9px;font-weight:400}.ab-head small{color:var(--muted);font-size:7px}.chips{flex-wrap:wrap;gap:6px;margin-top:6px;font-size:7px;display:flex}.chip{background:var(--card);border:2px solid var(--edge);padding:2px 4px}.actionbar .buttons button{flex:30%;margin-top:8px;padding:8px 6px;font-size:8px}.actionbar .sub{margin-top:6px}.opps{gap:6px;display:grid}.opp{font:inherit;color:var(--ink);text-align:left;cursor:pointer;background:var(--card);border:3px solid var(--edge);border-left:8px solid var(--paint);grid-template-columns:52px 1fr auto;align-items:center;gap:8px;padding:8px;display:grid}.opp:not(:disabled):hover{background:#34304a}.opp .tier{color:var(--muted);font-size:7px}.opp .who{flex-direction:column;gap:3px;min-width:0;display:flex}.opp .who b{text-overflow:ellipsis;white-space:nowrap;font-size:9px;font-weight:400;overflow:hidden}.opp small{color:var(--muted);font-size:7px}.opp .meta{flex-direction:column;align-items:flex-end;gap:3px;display:flex}.opp .prize{color:var(--go);white-space:nowrap;font-size:9px;font-weight:400}.opp.locked{filter:grayscale();opacity:.5}.opp.locked .lock{color:var(--muted)}.kinds{grid-template-columns:repeat(3,1fr);gap:6px;margin-top:8px;display:grid}.kind{font:inherit;color:var(--ink);cursor:pointer;background:var(--card);border:3px solid var(--edge);flex-direction:column;align-items:center;gap:6px;padding:12px 4px;display:flex;box-shadow:inset 0 -4px #0d0c12}.kind b{color:var(--accent);font-size:10px;font-weight:400}.kind .dur{font-size:9px}.kind small{color:var(--muted);font-size:7px}.search{background:var(--card);border:3px solid var(--edge);text-align:center;margin-top:12px;padding:12px}.search-head{justify-content:space-between;align-items:baseline;display:flex}.search-head b{color:var(--accent);font-size:10px;font-weight:400}.countdown{text-shadow:3px 3px #000;margin:16px 0 10px;font-size:22px}.countdown.ready{color:var(--go);animation:.5s steps(4,end) infinite alternate pop}.progress{background:var(--edge);border:2px solid var(--edge);height:10px}.progress i{background:var(--accent);width:0;height:100%;transition:width 1s linear;display:block}.reveal{pointer-events:auto;z-index:5;background:#000c;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.reveal-card{box-sizing:border-box;text-align:center;background:var(--solid);border:4px solid var(--line);width:min(320px,100vw - 32px);box-shadow:0 0 0 4px var(--edge);padding:16px;position:relative;overflow:hidden}.reveal.r-uncommon .reveal-card{border-color:var(--r-uncommon)}.reveal.r-rare .reveal-card{border-color:var(--r-rare)}.reveal.r-epic .reveal-card{border-color:var(--r-epic)}.reveal.r-legendary .reveal-card{border-color:var(--r-legendary)}.reveal-card h2{margin:10px 0 4px;font-size:12px}.reveal-card .name{margin:0;font-size:10px}.reveal-card .picon{margin-top:6px}.reveal .flash{pointer-events:none;opacity:0;background:#fff;position:absolute;inset:0}.reveal.anim .reveal-card{animation:.35s steps(5,end) reveal-in}.reveal.anim .flash{animation:.4s steps(4,end) flash}.reveal.big.anim .reveal-card{animation:.35s steps(5,end) reveal-in,.5s steps(8,end) .35s shake}.reveal.big.anim .flash{animation:.9s steps(6,end) flash}.reveal.big.r-legendary .flash{background:var(--r-legendary)}.reveal.big.r-epic .flash{background:var(--r-epic)}.reveal.big{background:radial-gradient(circle,#fff2,#000d 70%)}@keyframes reveal-in{0%{transform:scale(.3)}to{transform:scale(1)}}@keyframes flash{0%{opacity:.9}to{opacity:0}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-6px,2px)}50%{transform:translate(5px,-3px)}75%{transform:translate(-3px,3px)}}.milestone{color:var(--accent);font-size:9px}.acat{margin-top:8px}.acat-head{justify-content:space-between;align-items:baseline;display:flex}.acat-head b{color:var(--accent);font-size:11px;font-weight:400}.abar{background:var(--edge);border:2px solid var(--edge);height:10px;margin-bottom:18px;position:relative}.abar>i{background:linear-gradient(90deg, var(--r-rare), var(--r-epic));height:100%;display:block}.abar .mark{top:-4px;left:calc(var(--at) * 1% - 2px);background:var(--line);width:4px;height:18px;position:absolute}.abar .mark.paid{background:var(--accent)}.abar .mark small{color:var(--muted);font-size:6px;position:absolute;top:20px;left:50%;transform:translate(-50%)}.abar .mark:last-child small{left:auto;right:0;transform:none}.abar .mark.paid small{color:var(--accent)}.legend{color:var(--muted);flex-wrap:wrap;gap:4px 10px;font-size:6px;display:flex}.legend .paid{color:var(--accent);text-decoration:line-through}.agrid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:6px;margin-top:8px;display:grid}.aitem{text-align:center;background:var(--card);border:3px solid var(--edge);flex-direction:column;align-items:center;gap:4px;padding:6px 4px;display:flex}.aitem b{font-size:7px;font-weight:400;line-height:1.4}.aitem small{font-size:6px}.rewards{border-top:2px solid var(--card);margin-top:8px;padding-top:4px}.rewards h3{margin-top:6px}.rewards.pending .sub{animation:.6s steps(2,end) infinite alternate pop}.rw-row{flex-wrap:wrap;gap:6px 12px;font-size:10px;display:flex}.rw.cash{color:var(--go)}.rw.xp{color:var(--r-rare)}.rw.lvl,.rw.best{color:var(--accent)}.drop{background:var(--card);border:3px solid var(--edge);align-items:center;gap:8px;margin-top:8px;padding:6px;display:flex}.drop span{flex-direction:column;gap:3px;font-size:8px;display:flex}.drop b{font-weight:400}.drop small{color:var(--muted);font-size:7px}.login form{flex-direction:column;gap:6px;margin-top:12px;display:flex}.login label{color:var(--muted);font-size:9px}.login input{font:inherit;background:var(--edge);color:var(--ink);border:3px solid var(--line);-webkit-user-select:text;user-select:text;padding:10px;font-size:12px}.login input:focus{border-color:var(--accent);outline:none}.err{color:#ff9a9a;min-height:12px;margin:0;font-size:8px}.fatal{text-align:center}.toasts{z-index:10;pointer-events:none;flex-direction:column;gap:6px;width:min(440px,100vw - 24px);display:flex;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.toast{background:var(--solid);border:3px solid var(--line);padding:8px 10px;font-size:8px;line-height:1.6;transition:opacity .3s;animation:.25s steps(3,end) toast-in;box-shadow:4px 4px #0008}.toast.out{opacity:0}.toast.t-first{border-color:var(--r-legendary);color:var(--r-legendary)}.toast.t-find{border-color:var(--r-epic)}.toast.t-level,.toast.t-milestone{border-color:var(--accent);color:var(--accent)}.toast.t-error{border-color:var(--bad);color:#ff9a9a}@keyframes toast-in{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:none}}@media (width<=480px){.hub{border:0}.tabs .long{display:none}.tabs .short{display:inline}.tabs button{font-size:8px}.topbar{gap:8px;padding-left:8px;padding-right:8px;font-size:8px}.lvl{width:92px}.slots{grid-template-columns:repeat(2,minmax(0,1fr))}.slot{flex-direction:column;align-items:flex-start;gap:4px}.slot span{width:100%}.kinds{grid-template-columns:1fr}.kind{flex-direction:row;justify-content:space-between;padding:10px}.opp{grid-template-columns:1fr auto}.opp .tier{grid-column:1/-1}.statbars .stat{grid-template-columns:82px 1fr 24px 24px;font-size:7px}}@media (height<=420px){.topbar{padding-top:4px;padding-bottom:4px}.tabs button{padding:6px 2px}.toasts{top:40px}}.overlay{pointer-events:auto;z-index:6;background:#000c;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.overlay .panel{text-align:center;width:min(340px,100vw - 32px);position:relative;top:auto;left:auto;transform:none}.devices .qr{width:min(220px,60vw);image-rendering:pixelated;background:#fff;margin:12px auto;padding:8px}.devices .qr svg{width:100%;height:auto;display:block}.devices .code{letter-spacing:4px;color:var(--accent);-webkit-user-select:all;user-select:all;margin:8px 0;font-size:22px}.login .switch{width:100%;display:block}.login input#code{text-transform:uppercase;letter-spacing:3px}
