: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:var(--gold);align-items:center;gap:3px;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}}
