:root{--bg:#0a0d14;--panel:#141821;--panel-2:#0b0f18;--line:#2b3446;--ink:#e8ecf4;--dim:#8b94a8;--faint:#5c6478;--accent:#4ade80;--gold:#fbbf24;--danger:#f87171;--blue:#7ad1ff;--font:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;--mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--shadow:0 2px 10px #000000d9, 0 0 2px #000000e6}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg);width:100%;height:100%;font-family:var(--font);color:var(--ink);-webkit-font-smoothing:antialiased;overscroll-behavior:none;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%;overflow:hidden}canvas{touch-action:none;outline:none;display:block}#ui{pointer-events:none;z-index:5;-webkit-user-select:none;user-select:none;position:fixed;top:0;bottom:0;left:0;right:0}#scrim-top,#scrim-bottom,#vignette{position:absolute;left:0;right:0}#scrim-top{background:linear-gradient(#06090f8c,#06090f00);height:150px;top:0}#scrim-bottom{background:linear-gradient(#06090f00,#06090f80);height:180px;bottom:0}#vignette{background:radial-gradient(80% 72%,#0000 62%,#0000004d 100%);top:0;bottom:0}#hud-tl{position:absolute;top:20px;left:28px}#hud-tc{text-align:center;position:absolute;top:16px;left:50%;transform:translate(-50%)}#needs{gap:7px;display:grid;position:absolute;bottom:26px;left:28px}#money{font-family:var(--mono);letter-spacing:-.02em;color:var(--ink);text-shadow:var(--shadow);font-size:30px;font-weight:700;line-height:1}#hud-tl .row{letter-spacing:.13em;text-transform:uppercase;align-items:center;gap:9px;margin-top:7px;font-size:11px;display:flex}#job{color:var(--dim);text-shadow:var(--shadow)}#loot{color:var(--gold);letter-spacing:.06em;text-transform:none;background:#fbbf241a;border:1px solid #fbbf2466;border-radius:999px;padding:2px 9px;display:none}#loot.show{display:inline-block}#clock{font-family:var(--mono);letter-spacing:.06em;text-shadow:var(--shadow);font-size:25px;font-weight:700;line-height:1}#day{color:var(--dim);letter-spacing:.22em;text-transform:uppercase;text-shadow:var(--shadow);margin-top:6px;font-size:10px}#stars{opacity:0;gap:6px;transition:opacity .25s;display:flex;position:absolute;top:22px;right:28px}#stars.show{opacity:1}#stars i{clip-path:polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);background:var(--danger);filter:drop-shadow(0 0 7px #f87171bf);width:23px;height:23px;display:none}#stars i.on{display:block}#stars i.pop{animation:.42s cubic-bezier(.2,1.5,.4,1) both starPop}@keyframes starPop{0%{opacity:0;transform:scale(2.4)rotate(-22deg)}60%{opacity:1;transform:scale(.92)rotate(3deg)}to{opacity:1;transform:scale(1)rotate(0)}}.need{align-items:center;gap:10px;display:flex}.need .label{letter-spacing:.16em;text-transform:uppercase;width:62px;color:var(--dim);text-shadow:var(--shadow);font-size:10px}.need .bar{background:#06090fb8;border:1px solid #ffffff14;border-radius:5px;width:154px;height:9px;overflow:hidden;box-shadow:0 1px 5px #0009}.need .bar i{border-radius:5px;height:100%;transition:width .25s linear,background .3s;display:block}.need.low .label{color:var(--gold)}.need.low .bar i{background:var(--gold)!important}.need.crit .label{color:var(--danger)}.need.crit .bar i{background:var(--danger)!important}.need.crit .bar{animation:1.1s ease-in-out infinite needPulse}@keyframes needPulse{0%,to{box-shadow:0 1px 5px #0009}50%{box-shadow:0 0 12px #f87171d9}}#prompt{border:1px solid var(--line);white-space:nowrap;opacity:0;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0b0f18e6;border-radius:11px;padding:11px 19px;font-size:15px;transition:opacity .14s,transform .14s;position:absolute;bottom:104px;left:50%;transform:translate(-50%)translateY(6px);box-shadow:0 8px 26px #00000080}#prompt.show{opacity:1;transform:translate(-50%)translateY(0)}#prompt kbd{font-family:var(--mono);color:var(--accent);background:#222a38;border:1px solid #38435a;border-bottom-width:2px;border-radius:5px;margin-right:9px;padding:2px 7px;font-size:12px;font-weight:700}#toasts{flex-direction:column;align-items:flex-end;gap:7px;display:flex;position:absolute;top:92px;right:28px}.toast{border:1px solid var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0b0f18e0;border-radius:9px;padding:8px 14px;font-size:13.5px;animation:.22s both toastIn;box-shadow:0 6px 20px #00000073}.toast.out{animation:.5s both toastOut}@keyframes toastIn{0%{opacity:0;transform:translate(18px)}}@keyframes toastOut{to{opacity:0;transform:translate(18px)}}#help{color:var(--dim);letter-spacing:.06em;text-shadow:var(--shadow);white-space:nowrap;opacity:.85;font-size:11px;transition:opacity .8s;position:absolute;bottom:20px;left:50%;transform:translate(-50%)}#help.faded{opacity:.3}#crosshair{opacity:0;background:#ffffff80;border-radius:50%;width:5px;height:5px;margin:-2.5px 0 0 -2.5px;transition:opacity .2s;position:absolute;top:50%;left:50%;box-shadow:0 0 4px #000000e6}#crosshair.show{opacity:1}#speedo{opacity:0;align-items:baseline;gap:8px;transition:opacity .2s;display:flex;position:absolute;bottom:26px;right:30px}#speedo.show{opacity:1}#speedo .n{font-family:var(--mono);letter-spacing:-.03em;text-shadow:var(--shadow);font-size:40px;font-weight:700;line-height:1}#speedo .u{color:var(--dim);letter-spacing:.22em;text-transform:uppercase;text-shadow:var(--shadow);font-size:10px}.overlay{z-index:20;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);pointer-events:auto;background:#05070db8;justify-content:center;align-items:center;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.overlay.hidden{display:none}.panel{background:var(--panel);border:1px solid var(--line);border-radius:18px;width:540px;max-width:calc(100vw - 40px);padding:26px 28px 24px;position:relative;overflow:hidden;box-shadow:0 24px 70px #0009}.panel:before{content:"";background:var(--accent);height:3px;position:absolute;top:0;left:0;right:0}.panel h2{letter-spacing:.26em;text-transform:uppercase;color:var(--accent);font-size:11px;font-weight:700}.panel h1{letter-spacing:-.01em;margin-top:8px;font-size:25px;font-weight:700}.panel .hint{color:var(--dim);margin-top:18px;font-size:13px;line-height:1.6}.panel .esc{color:var(--faint);font-size:12px;position:absolute;top:26px;right:28px}.stage{min-height:150px;margin-top:22px}.pips{gap:7px;margin-top:12px;display:flex}.pip{background:#2b3446;border-radius:50%;width:10px;height:10px}.pip.on{background:var(--accent)}.pip.bad{background:var(--danger)}.lp-bar{background:var(--panel-2);border:1px solid var(--line);border-radius:9px;height:38px;position:relative}.lp-zone{background:#4ade8042;border:1.5px solid #4ade80cc;border-radius:6px;position:absolute;top:3px;bottom:3px}.lp-pin{background:#fff;border-radius:3px;width:5px;position:absolute;top:-6px;bottom:-6px;box-shadow:0 0 12px #fff9}.sc-wrap{align-items:center;gap:30px;display:flex}.sc-dial{border:2px solid var(--line);background:radial-gradient(circle at 50% 42%,#202839,#10151f);border-radius:50%;flex:none;width:158px;height:158px;position:relative}.sc-needle{transform-origin:50% 0;background:#fff;border-radius:2px;width:4px;height:62px;margin-left:-2px;position:absolute;top:50%;left:50%}.sc-hub{background:var(--gold);border-radius:50%;width:26px;height:26px;margin:-13px 0 0 -13px;position:absolute;top:50%;left:50%}.sc-meter{background:var(--panel-2);border:1px solid var(--line);border-radius:10px;flex:1;height:132px;position:relative;overflow:hidden}.sc-fill{background:#3a7bd5;transition:height 60ms linear,background .12s;position:absolute;bottom:0;left:0;right:0}.sc-fill.hot{background:var(--accent)}.wires{background:var(--panel-2);border:1px solid var(--line);border-radius:11px;justify-content:space-around;align-items:stretch;height:116px;padding:12px;display:flex}.wire{cursor:pointer;border-radius:7px;width:34px;position:relative}.wire i{border-radius:4px;width:8px;margin-left:-4px;position:absolute;top:8px;bottom:8px;left:50%}.wire.sel{outline-offset:2px;outline:2px solid #fff}.clue{color:var(--gold);margin-top:14px;font-size:15px}.keys{justify-content:center;gap:14px;display:flex}.key{background:var(--panel-2);border:1px solid var(--line);width:58px;height:58px;color:var(--faint);border-radius:11px;justify-content:center;align-items:center;font-size:22px;display:flex}.key.done{color:var(--accent);background:#16301f;border-color:#2b6b43}.key.active{border-color:var(--accent);color:var(--ink);border-width:2px}.key.wide{width:180px}.timer{background:var(--panel-2);border-radius:4px;height:8px;margin-top:18px;overflow:hidden}.timer i{background:var(--accent);border-radius:4px;height:100%;display:block}.timer i.low{background:var(--danger)}.task{text-align:center;margin-bottom:16px;font-size:19px;font-weight:700}.score{font-family:var(--mono);color:var(--dim);font-size:13px;position:absolute;top:54px;right:28px}.flash-ok{animation:.3s flashOk}.flash-bad{animation:.34s flashBad}@keyframes flashOk{0%{box-shadow:inset 0 0 #4ade808c}to{box-shadow:none}}@keyframes flashBad{0%,to{transform:translate(0)}25%{transform:translate(-7px)}75%{transform:translate(7px)}}#menu{z-index:30;background:radial-gradient(ellipse 70% 60% at 50% 42%, #4ade8012, transparent 70%), var(--bg)}#menu .wrap{text-align:center}#menu h1{letter-spacing:.06em;text-shadow:0 0 60px #4ade8029;font-size:clamp(56px,12vw,118px);font-weight:800;line-height:.95}#menu .tag{color:var(--dim);letter-spacing:.3em;text-transform:uppercase;margin-top:14px;font-size:11px}#menu .rule{background:var(--accent);border-radius:2px;width:68px;height:4px;margin:26px auto 0}#menu .opts{justify-items:center;gap:6px;margin-top:52px;display:grid}#menu button{pointer-events:auto;font-family:var(--font);letter-spacing:.18em;text-transform:uppercase;color:var(--dim);cursor:pointer;background:0 0;border:none;border-radius:9px;padding:12px 30px;font-size:14px;font-weight:600;transition:background .15s,color .15s,letter-spacing .2s}#menu button:hover{color:var(--ink);letter-spacing:.24em;background:#ffffff0f}#menu button.primary{color:var(--accent)}#menu .foot{color:var(--faint);letter-spacing:.04em;margin-top:60px;font-size:11px;line-height:2.1}#pause .panel{text-align:center;width:420px}#pause .stat{color:var(--dim);margin-top:14px;font-size:13px;line-height:1.8}#loading{z-index:40;background:var(--bg);color:var(--dim);flex-direction:column;justify-content:center;align-items:center;gap:15px;transition:opacity .5s;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}#loading h1{color:var(--ink);letter-spacing:.04em;font-size:44px;font-weight:800}#loading .bar{background:#1b2130;border-radius:2px;width:190px;height:3px;overflow:hidden}#loading .bar i{background:var(--accent);border-radius:2px;width:40%;height:100%;animation:1.1s ease-in-out infinite slide;display:block}@keyframes slide{0%{transform:translate(-100%)}to{transform:translate(350%)}}#loading.gone{opacity:0;pointer-events:none}#lockhint{z-index:15;pointer-events:auto;cursor:pointer;background:#05070d80;justify-content:center;align-items:center;display:none;position:fixed;top:0;bottom:0;left:0;right:0}#lockhint.show{display:flex}#lockhint span{border:1px solid var(--line);background:#0b0f18eb;border-radius:11px;padding:14px 26px;font-size:15px}#touch{z-index:19;pointer-events:none;opacity:0;transition:opacity .2s;position:fixed;top:0;bottom:0;left:0;right:0}#touch.show{opacity:1}#touch.show #t-look,#touch.show #t-stickzone,#touch.show .tbtn{pointer-events:auto}#t-look{position:absolute;top:0;bottom:0;left:0;right:0}#t-stickzone{width:46%;height:62%;position:absolute;bottom:0;left:0}#t-stick{opacity:0;background:#0a0e164d;border:2px solid #ffffff38;border-radius:50%;width:124px;height:124px;margin:-62px 0 0 -62px;transition:opacity .12s;position:absolute}#t-stick.show{opacity:1}#t-stick i{background:#e8ecf480;border-radius:50%;width:54px;height:54px;margin:-27px 0 0 -27px;position:absolute;top:50%;left:50%;box-shadow:0 2px 12px #00000080}.tbtn{font-family:var(--font);letter-spacing:.12em;color:var(--ink);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);cursor:pointer;background:#0c111a9e;border:1px solid #fff3;border-radius:50%;justify-content:center;align-items:center;width:70px;height:70px;font-size:12px;font-weight:700;transition:background .1s,transform .1s;display:flex}.tbtn.on{background:#4ade8057;transform:scale(.93)}.tbtn.tiny{letter-spacing:.16em;width:auto;height:34px;color:var(--dim);border-radius:999px;padding:0 15px;font-size:10px}#t-actions{right:calc(20px + env(safe-area-inset-right));bottom:calc(24px + env(safe-area-inset-bottom));grid-template-columns:repeat(2,auto);place-items:center;gap:12px;display:grid;position:absolute}#t-actions .t-use{width:84px;height:84px;color:var(--accent);border-color:#4ade8080;font-size:19px}#t-actions .t-run.on{background:#7ad1ff52}#t-system{right:calc(16px + env(safe-area-inset-right));top:calc(14px + env(safe-area-inset-top));gap:8px;display:flex;position:absolute}.mg-pad{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:center;gap:10px;margin-top:22px;padding-top:20px;display:flex}.mg-pad .tbtn{pointer-events:auto;width:62px;height:62px;font-size:17px}.mg-pad .tbtn.wide{border-radius:31px;width:132px;font-size:12px}.mg-pad .tbtn.ghost{width:auto;height:40px;color:var(--dim);border-color:var(--line);border-radius:999px;padding:0 18px;font-size:10px}#rotate{z-index:60;text-align:center;background:var(--bg);justify-content:center;align-items:center;padding:30px;display:none;position:fixed;top:0;bottom:0;left:0;right:0}#rotate b{margin-bottom:8px;font-size:21px;display:block}#rotate span{color:var(--dim);letter-spacing:.18em;text-transform:uppercase;font-size:12px}body.touch #rotate{display:none}@media (orientation:portrait){body.touch #rotate{display:flex}}body.touch #lockhint{display:none!important}@media (max-width:820px),(max-height:500px){#hud-tl{top:calc(12px + env(safe-area-inset-top));left:calc(14px + env(safe-area-inset-left))}#hud-tc{top:calc(10px + env(safe-area-inset-top))}#money{font-size:21px}#clock{font-size:18px}#day{margin-top:4px;font-size:9px}#hud-tl .row{margin-top:5px;font-size:9.5px}#needs{bottom:auto;top:calc(58px + env(safe-area-inset-top));left:calc(14px + env(safe-area-inset-left));gap:5px}.need .label{letter-spacing:.1em;width:46px;font-size:8.5px}.need .bar{width:92px;height:7px}#stars{top:calc(12px + env(safe-area-inset-top));right:calc(14px + env(safe-area-inset-right))}#stars i{width:17px;height:17px}body.touch #stars{top:calc(58px + env(safe-area-inset-top))}#toasts{top:calc(50px + env(safe-area-inset-top));right:calc(14px + env(safe-area-inset-right))}.toast{max-width:46vw;padding:6px 11px;font-size:11.5px}body.touch #toasts{top:calc(88px + env(safe-area-inset-top))}#prompt{padding:9px 15px;font-size:13px;bottom:118px}#speedo{right:auto;left:calc(16px + env(safe-area-inset-left));bottom:calc(20px + env(safe-area-inset-bottom))}#speedo .n{font-size:28px}body.touch #help{display:none}#help{font-size:9.5px;bottom:14px}#scrim-top{height:110px}#scrim-bottom{height:130px}.panel{border-radius:14px;width:min(540px,100vw - 28px);padding:20px 20px 18px}.panel h1{font-size:20px}.stage{min-height:0;margin-top:16px}#menu h1{font-size:clamp(44px,13vw,72px)}#menu .opts{margin-top:32px}#menu .foot{margin-top:34px;font-size:10px}}@media (max-height:460px){#minigame{align-items:flex-start;padding:10px 0;overflow-y:auto}.tbtn{width:58px;height:58px;font-size:11px}#t-actions .t-use{width:68px;height:68px;font-size:16px}.mg-pad{margin-top:14px;padding-top:12px}.mg-pad .tbtn{width:52px;height:52px}}
