:root{--ink:#1f2a1f;--card:#fffdf4;--gold:#ffd23a;--good:#4f9d4a;--bad:#c23b3b}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:none}html,body{height:100%;color:var(--ink);background:#9ad4f0;margin:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif;overflow:hidden}#game{width:100%;height:100%;display:block;position:fixed;inset:0}#hud{top:max(env(safe-area-inset-top),10px);pointer-events:none;flex-wrap:wrap;align-items:center;gap:8px;display:flex;position:fixed;left:10px;right:10px}#hud .pill{pointer-events:auto;background:var(--card);border-radius:999px;padding:6px 14px;font-weight:700;box-shadow:0 2px #00000040}.coins{align-items:center;gap:8px;display:flex}#army{margin-right:auto}.coins .dot{background:var(--gold);border:2px solid #b8860b;border-radius:50%;width:16px;height:16px}.coins.bump{animation:.25s bump}@keyframes bump{50%{transform:scale(1.18)}}#mute{cursor:pointer}#baseBar{background:#00000059;border-radius:6px;flex-basis:100%;height:12px;overflow:hidden}#baseFill{background:linear-gradient(90deg,#e04b3a,#f2a13b 50%,#6fd36f);width:100%;height:100%;transition:width .2s}#banner{text-align:center;color:#fff;text-shadow:0 4px #00000059;opacity:0;pointer-events:none;font-size:clamp(34px,9vw,64px);font-weight:900;position:fixed;top:28%;left:0;right:0}#banner.show{animation:1.6s ease-out banner}#banner.boss{color:#ff6a3a}@keyframes banner{0%{opacity:0;transform:scale(.6)}15%{opacity:1;transform:scale(1.08)}80%{opacity:1}to{opacity:0;transform:scale(1)}}#toast{left:50%;bottom:calc(max(env(safe-area-inset-bottom),12px) + 112px);color:#fff;opacity:0;pointer-events:none;white-space:nowrap;background:#1f2a1fe6;border-radius:999px;padding:8px 16px;font-weight:600;transition:opacity .2s;position:fixed;transform:translate(-50%)}#toast.show{opacity:1}#stick{--size:128px;--edge:max(env(safe-area-inset-left),18px);left:var(--edge);bottom:calc(max(env(safe-area-inset-bottom),12px) + 6px);width:var(--size);height:var(--size);background:#ffffff47;border:3px solid #ffffff8c;border-radius:50%;position:fixed}#knob{background:#ffffffd9;border-radius:50%;width:56px;height:56px;margin:-28px 0 0 -28px;position:absolute;top:50%;left:50%;box-shadow:0 2px #00000040}#end,#menu{background:#141e1499;place-items:center;padding:16px;display:grid;position:fixed;inset:0;overflow:auto}#end[hidden],#menu[hidden]{display:none}.card{background:var(--card);text-align:center;border-radius:20px;width:100%;max-width:420px;padding:24px 26px;box-shadow:0 6px #0000004d}.card.wide{max-width:460px}.card h1{margin:0 0 6px;font-size:26px}.card p{margin:0 0 10px}.sub b{color:#b8860b;margin-left:6px}.bigstars{color:var(--gold);text-shadow:0 3px #0003;letter-spacing:6px;font-size:44px}.actions{flex-direction:column;gap:10px;margin-top:12px;display:flex}.card button,.actions button{background:var(--good);color:#fff;font:inherit;cursor:pointer;border:0;border-radius:999px;padding:12px 24px;font-size:18px;font-weight:800;box-shadow:0 3px #00000040}.actions button.secondary{color:var(--ink);background:#e6e0cf}#stageList{flex-direction:column;gap:10px;margin-top:12px;display:flex}button.stage{text-align:left;color:var(--ink);background:#fff;border:3px solid #e6e0cf;border-radius:16px;grid-template-columns:36px 1fr auto;align-items:center;gap:12px;padding:10px 14px;font-size:16px;display:grid;box-shadow:0 3px #0000002e}button.stage b{background:var(--good);color:#fff;border-radius:50%;place-items:center;width:34px;height:34px;display:grid}button.stage .name{font-weight:800}button.stage small{opacity:.7;font-size:12px;font-weight:500;display:block}button.stage .stars{color:var(--gold);letter-spacing:2px;text-shadow:0 1px #00000040;font-size:20px}button.stage.locked{opacity:.5;cursor:default}button.stage.locked b{background:#9aa39a}@media (width<=440px){#hud{gap:6px}#hud .pill{padding:5px 10px;font-size:14px}.coins{gap:6px}#stick{--size:104px;--edge:14px}#knob{width:46px;height:46px;margin:-23px 0 0 -23px}}#edges{pointer-events:none;position:fixed;inset:0}.edge{color:#fff;letter-spacing:.5px;background:#d8322f;border:2px solid #fff;border-radius:10px;padding:5px 10px;font-size:13px;font-weight:900;animation:.7s infinite alternate pulse;position:absolute;top:0;left:0;box-shadow:0 2px #00000059}@keyframes pulse{to{filter:brightness(1.25)}}.stars i,.bigstars i{color:#d9d3c0;text-shadow:none;font-style:normal}#res{flex-basis:100%;gap:6px;display:flex}#hud .pill.res{align-items:baseline;gap:5px;padding:3px 10px;font-size:13px;display:flex}.res small{opacity:.6;font-weight:500}.res em{font-size:11px;font-style:normal}.res em.pos{color:#2e8b3a}.res em.neg{color:#c23b3b}.res.empty{animation:.6s infinite alternate alarm}@keyframes alarm{to{background:#ffd0cc}}#hud .pill.res.off{display:none}#stick[data-side=left]{left:var(--edge);right:auto}#stick[data-side=center]{left:calc(50% - var(--size) / 2);right:auto}#stick[data-side=right]{left:auto;right:var(--edge)}#settings{z-index:50;background:#141e1459;place-items:start center;padding:14vh 16px 16px;display:grid;position:fixed;inset:0;overflow:auto}#settings[hidden]{display:none}body.settings-open #stick{z-index:60}.segmented{grid-template-columns:repeat(3,1fr);gap:6px;margin:10px 0 6px;display:grid}.segmented button{color:#2f6b3a;font:inherit;background:#fff;border:2px solid #2f6b3a59;border-radius:12px;padding:12px 6px;font-weight:700}.segmented button[aria-checked=true]{color:#fff;background:#2f6b3a;border-color:#2f6b3a}#settings .hint{opacity:.7;margin:8px 0 14px;font-size:13px}#openSettings{margin-top:12px}#touchBase{pointer-events:none;opacity:0;background:#ffffff42;border:4px solid #ffffffeb;border-radius:50%;width:112px;height:112px;transition:opacity .12s;position:fixed;top:0;left:0;box-shadow:0 0 0 2px #1f2a1f66,0 4px 10px #00000040}#touchBase.on{opacity:1}#touchBaseKnob{background:#fffc;border-radius:50%;width:44px;height:44px;margin:-22px 0 0 -22px;position:absolute;top:50%;left:50%;box-shadow:0 2px #00000040}#hud #army.hungry{color:#a82a2a;background:#ffd0cc;animation:.6s infinite alternate alarm}[hidden]{display:none!important}#installBtn{width:100%}#installHint{margin:8px 0 14px}.segmented.two{grid-template-columns:repeat(2,1fr)}@media (width<=420px){#hud{gap:5px}#hud .pill{padding:5px 8px;font-size:13.5px}}#settings .sub{margin-top:14px}
