:root{--ink:#fff7ea;--chip:#1c162ec7;--chip-line:#ffd6784d;--gold:#ffd34d;--main:#ffb53b;--main-ink:#4a2600;--btn:#3a3058;--btn-line:#594b86;--panel:#181228e6;--pad:max(12px, env(safe-area-inset-left))}*{box-sizing:border-box}html,body{height:100%;color:var(--ink);-webkit-tap-highlight-color:transparent;background:#9fc6e8;margin:0;font-family:Nunito,system-ui,sans-serif;overflow:hidden}#app,.stage{position:fixed;inset:0}.stage canvas{touch-action:none;display:block}.ui{pointer-events:none;position:fixed;inset:0}.ui>*,.ui button,.ui .card,.ui .chip{pointer-events:auto}.ui .chips,.ui .bottom,.ui .speed,.ui .hint,.ui .loading{pointer-events:none}.ui .chips>*,.ui .bottom>*>*,.ui .speed>*{pointer-events:auto}.icon{flex:none;width:1.15em;height:1.15em}.chips{flex-wrap:wrap;align-items:center;gap:8px;max-width:calc(100vw - 24px);display:flex;position:absolute;top:12px}.chips.left{left:var(--pad);max-width:calc(100vw - 2 * var(--pad) - 56px)}.chips.right{right:var(--pad);justify-content:flex-end}.screen-pits .chips.right,.screen-tree .chips.right,.screen-setup .chips.right{max-width:calc(50vw - var(--pad))}.chip{background:var(--chip);border:2px solid var(--chip-line);font-variant-numeric:tabular-nums;white-space:nowrap;border-radius:11px;align-items:center;gap:6px;padding:6px 11px;font-size:16px;font-weight:800;display:flex}.chip.gold{color:var(--gold);font-family:Lilita One,system-ui;font-size:19px;font-weight:400}.chip.rim{gap:7px}.rim-bar{background:#ffffff2e;border-radius:5px;width:90px;height:10px;overflow:hidden}.rim-bar>div{background:linear-gradient(90deg,#ff5a6e,#ff9a6e);height:100%;transition:width .2s}.btn{color:var(--ink);background:var(--btn);border:2px solid var(--btn-line);cursor:pointer;white-space:nowrap;border-radius:12px;justify-content:center;align-items:center;gap:7px;padding:10px 16px;font:800 16px Nunito,system-ui;transition:transform 60ms;display:inline-flex;box-shadow:0 4px #00000059}.btn:active:not(:disabled){transform:translateY(2px);box-shadow:0 2px #00000059}.btn:disabled{opacity:.45;cursor:default}.btn.main{background:var(--main);color:var(--main-ink);letter-spacing:.02em;border-color:#ffd68a;font-family:Lilita One,system-ui;font-size:20px;font-weight:400}.btn.small{padding:7px 12px;font-size:14px}.btn.icon{padding:9px}.btn.on{background:#6a58a8;border-color:#b9a6ff}.btn.wide{width:100%}.btn.quiet{box-shadow:none;opacity:.75;background:0 0}.btn.danger{background:#b5374a;border-color:#ff8a9a}.panel-screen{background:radial-gradient(#140e2859,#140e28bf);flex-direction:column;justify-content:center;align-items:center;gap:18px;padding:64px 12px 16px;display:flex;position:absolute;inset:0}.logo{color:#fff;text-shadow:0 6px #5a2a90,0 10px 24px #0006;letter-spacing:.02em;margin:0;font:400 clamp(44px,9vw,88px) Lilita One,system-ui}.pit-cards{flex-wrap:wrap;justify-content:center;gap:14px;max-width:100%;display:flex}.pit-card{background:var(--panel);border:2px solid var(--chip-line);border-radius:16px;flex-direction:column;align-items:center;gap:8px;width:220px;padding:14px;display:flex}.pit-card.locked{opacity:.7}.pit-glyph{width:150px;height:78px}.pit-name{font:400 22px Lilita One,system-ui}.pit-meta{gap:12px;font-weight:800;display:flex}.pit-meta span{align-items:center;gap:4px;display:flex}.pit-meta .dim{opacity:.25;filter:grayscale()}.lock{opacity:.85;text-align:center;align-items:center;gap:6px;min-height:44px;font-size:14px;font-weight:700;display:flex}.bottom{left:var(--pad);right:var(--pad);bottom:max(12px, env(safe-area-inset-bottom));flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:10px;display:flex;position:absolute}.bar{background:var(--chip);border:2px solid var(--chip-line);border-radius:14px;flex-wrap:wrap;align-items:center;gap:8px;padding:8px;display:flex}.bar .chip{background:0 0;border:none;padding:4px 6px}.sep{background:var(--chip-line);align-self:stretch;width:2px}.tower-btn{background:var(--btn);border:2px solid var(--btn-line);min-width:58px;color:var(--ink);cursor:pointer;border-radius:10px;flex-direction:column;align-items:center;gap:2px;padding:6px 8px;font:800 13px Nunito,system-ui;display:flex}.tower-btn .icon{width:28px;height:28px}.tower-btn.on{background:#6a58a8;border-color:#fff}.tower-btn.off{opacity:.5;cursor:default}.tower-btn .price{color:#ffe27a;text-shadow:0 1px #0009;align-items:center;gap:3px;font-weight:800;display:flex}.tower-btn .price .icon{width:13px;height:13px}.actions{gap:10px;display:flex}.hint{background:var(--chip);white-space:nowrap;border:2px solid #fff;border-radius:12px;align-items:center;gap:8px;padding:8px 14px;font-weight:800;display:flex;position:absolute;top:64px;left:50%;transform:translate(-50%)}.loading{background:var(--chip);border-radius:12px;padding:10px 18px;font-weight:800;position:absolute;top:45%;left:50%;transform:translate(-50%,-50%)}.card{background:var(--panel);border:2px solid var(--chip-line);border-radius:16px;flex-direction:column;gap:10px;padding:16px;display:flex;box-shadow:0 10px 30px #00000059}.card-title{align-items:center;gap:8px;font:400 24px Lilita One,system-ui;display:flex}.card-title .icon{width:30px;height:30px}.card-text{font-weight:700;line-height:1.35}.stats{color:#d8ccff;flex-wrap:wrap;gap:6px 12px;font-size:14px;font-weight:800;display:flex}.row{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.tower-card{right:var(--pad);width:min(300px,100vw - 24px);position:absolute;top:64px}.speed{right:var(--pad);bottom:max(12px, env(safe-area-inset-bottom));gap:6px;display:flex;position:absolute}.modal{background:#140e2873;place-items:center;padding:12px;display:grid;position:absolute;inset:0}.modal .card{align-items:stretch;width:min(380px,100%)}.result{text-align:center}.result-title{color:#fff;text-shadow:0 4px #5a2a90;font:400 44px Lilita One,system-ui}.result.overrun .result-title{text-shadow:0 4px #9a1f30}.rows{flex-direction:column;gap:4px;font-weight:800;display:flex}.rows .r{justify-content:space-between;align-items:center;padding:4px 6px;display:flex}.rows .r span{align-items:center;gap:5px;display:flex}.rows .total{border-top:2px solid var(--chip-line);color:var(--gold);font:400 22px Lilita One,system-ui}.awards{flex-direction:column;gap:6px;display:flex}.award{background:#b46bff33;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:8px;font-weight:800;display:flex}.tree-screen{justify-content:center}.tree{align-items:flex-start;gap:clamp(8px,3vw,34px);display:flex}.branch{flex-direction:column;align-items:center;display:flex}.branch-name{align-items:center;gap:4px;margin-bottom:6px;font:400 17px Lilita One,system-ui;display:flex}.node{cursor:pointer;background:#2a2340;border:3px solid #4a3f6e;border-radius:50%;place-items:center;width:46px;height:46px;padding:0;display:grid}.node .icon{width:24px;height:24px}.node.can{border-color:var(--gold);box-shadow:0 0 12px #ffd34d80}.node.poor{opacity:.8}.node.off{opacity:.4}.node.got{background:#6a58a8;border-color:#b9a6ff}.node.sel{outline-offset:2px;outline:3px solid #fff}.node.star{border-style:dashed}.link{background:#4a3f6e;width:4px;height:10px}.link.got{background:#b9a6ff}.node-card{text-align:center;align-items:center;width:min(360px,100vw - 24px)}.node-card .owned{color:#b9a6ff;font-weight:800}.why{opacity:.8;font-size:13px}.pops{pointer-events:none;position:fixed;inset:0;overflow:hidden}.pop{color:var(--gold);text-shadow:0 2px #5a2a00,0 0 8px #00000080;white-space:nowrap;font:400 18px Lilita One,system-ui;position:absolute}.pop.big{color:#fff3a0;font-size:28px}@media (width<=640px),(height<=480px){.chip{padding:4px 8px;font-size:13px}.chip.gold{font-size:16px}.rim-bar{width:56px}.btn{padding:8px 12px;font-size:14px}.btn.main{font-size:17px}.tower-btn{min-width:46px;padding:4px 5px;font-size:11px}.tower-btn .icon{width:22px;height:22px}.pit-card{gap:5px;width:160px;padding:10px}.pit-glyph{width:110px;height:56px}.pit-name{font-size:17px}.node{width:38px;height:38px}.node .icon{width:20px;height:20px}.link{height:6px}.hint{font-size:13px;top:52px}.tower-card{top:auto;bottom:150px;left:var(--pad);right:var(--pad);width:auto}.panel-screen{gap:10px;padding-top:56px}}@media (height<=480px){.logo{font-size:36px}.pit-card{width:150px}.pit-glyph{height:40px}.branch-name{margin-bottom:2px;font-size:13px}.node{width:32px;height:32px}.link{height:4px}.result-title{font-size:30px}.modal .card{gap:6px;padding:10px}}:root{--panel-w:300px}.chip.level{gap:4px;padding:3px 6px;font:400 18px Lilita One,system-ui}.chip.level small{opacity:.7;margin-left:4px;font:700 12px Nunito,system-ui}.mini{background:var(--btn);width:30px;height:30px;color:var(--ink);cursor:pointer;border:none;border-radius:8px;place-items:center;padding:0;display:grid}.mini:disabled{opacity:.3;cursor:default}.mini .icon{width:16px;height:16px}.chip.waves{gap:6px}.chip.waves i{background:#ffffff40;border-radius:50%;width:11px;height:11px;display:inline-block}.chip.waves i.done{background:var(--gold)}.chip.waves i.now{background:var(--gold);animation:1s infinite alternate pulse;box-shadow:0 0 0 3px #ffd34d59}@keyframes pulse{to{opacity:.5}}.ui .chips.left{right:calc(var(--panel-w) + 2 * var(--pad));max-width:none}.panel{top:12px;right:var(--pad);width:var(--panel-w);background:var(--panel);border:2px solid var(--chip-line);pointer-events:auto;border-radius:16px;flex-direction:column;display:flex;position:absolute;bottom:12px;overflow:hidden}.panel .sheet-toggle{display:none}.panel-body{flex-direction:column;flex:1;gap:6px;padding:10px;display:flex;overflow-y:auto}.sec{align-items:center;gap:6px;margin-top:4px;font:400 17px Lilita One,system-ui;display:flex}.sec small{opacity:.7;margin-left:auto;font:700 12px Nunito,system-ui}.towers{flex-wrap:wrap;gap:6px;display:flex}.up{background:#2a2340;border-radius:10px;align-items:center;gap:8px;padding:6px 8px;display:flex}.up>.icon{width:20px;height:20px}.up .n{flex:1;font-size:14px;font-weight:800}.up .n small{opacity:.65;margin-left:4px;font-size:12px}.buy{cursor:pointer;background:var(--main);color:#2e1600;border:none;border-radius:9px;justify-content:center;align-items:center;gap:4px;min-width:64px;padding:6px 10px;font:400 15px Lilita One,system-ui;display:inline-flex}.buy .icon{width:14px;height:14px}.buy.off{color:#bdb4dc;cursor:default;background:#4a3f6e}.auto{color:var(--ink);cursor:pointer;background:#2a2340;border:none;border-radius:10px;align-items:center;gap:10px;margin-bottom:4px;padding:10px;font:800 14px Nunito,system-ui;display:flex}.auto:disabled{opacity:.5;cursor:default}.auto .sw{background:#4a3f6e;border-radius:10px;flex:none;width:36px;height:20px;position:relative}.auto .sw:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:left .15s;position:absolute;top:2px;left:2px}.auto.on .sw{background:#9be35a}.auto.on .sw:after{left:18px}.start{left:calc((100vw - var(--panel-w) - var(--pad)) / 2);pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:absolute;bottom:24px;transform:translate(-50%)}.start>*{pointer-events:auto}.btn.big{padding:14px 26px;font-size:26px}.new-kind{background:#b46bffd9;border-radius:10px;padding:6px 12px;font-weight:800}.ui .speed{right:auto;left:var(--pad)}.ui .hint,.ui .loading{left:calc((100vw - var(--panel-w) - var(--pad)) / 2)}.ui .tower-card{right:calc(var(--panel-w) + 2 * var(--pad))}.banner-wrap{inset:0 calc(var(--panel-w) + 2 * var(--pad)) 0 0;pointer-events:none;place-items:center;padding:64px 12px 12px;display:grid;position:absolute}.banner{pointer-events:auto;text-align:center;align-items:center;width:min(400px,100%)}.gold-line{color:var(--gold);flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;font:400 26px Lilita One,system-ui;display:flex}.gold-line small{color:var(--ink);opacity:.8;font:800 13px Nunito,system-ui}.auto-note{opacity:.8;font-weight:800}@media (width<=760px),(height<=520px){:root{--panel-w:0px}.ui .chips.left{right:calc(var(--pad) + 56px)}.panel{top:auto;left:var(--pad);right:var(--pad);bottom:max(10px, env(safe-area-inset-bottom));border-radius:14px;width:auto;max-height:56px;transition:max-height .2s}.panel.open{max-height:min(62vh,520px)}.panel .sheet-toggle{flex:none;justify-content:space-between;margin:6px;display:flex}.panel .sheet-toggle .price{color:var(--gold);align-items:center;gap:4px;display:flex}.panel:not(.open) .panel-body{display:none}.start{bottom:80px;left:50%}.ui .speed{bottom:80px}.banner-wrap{padding:56px 12px 76px;inset:0}.sheet-open .start,.sheet-open .banner-wrap,.sheet-open .speed,.card-open .start{display:none}.ui .tower-card{left:var(--pad);right:var(--pad);width:auto;top:auto;bottom:80px}.btn.big{padding:10px 18px;font-size:20px}}@media (height<=520px){.ui .chips.left{gap:4px}.start,.ui .speed{bottom:74px}}
