: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,#cards,#talents,#skills,#pause{overscroll-behavior:contain;background:#141e1499;padding:16px;display:flex;position:fixed;inset:0;overflow-y:auto}#end>.card,#menu>.card,#cards>.card,#talents>.card,#skills>.card,#pause>.card{margin:auto}:is(#end,#menu,#cards,#talents,#skills,#pause,#settings),:is(#end,#menu,#cards,#talents,#skills,#pause,#settings) *{touch-action:pan-y}#end[hidden],#menu[hidden],#cards[hidden],#talents[hidden],#skills[hidden],#pause[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:#141e1499;padding:16px;display:flex;position:fixed;inset:0}#settings>.card{flex-direction:column;max-height:calc(100dvh - 32px);margin:auto;padding:18px 20px 16px;display:flex}#settings .card h1{flex:none;margin:0;font-size:24px}#settings .body{overscroll-behavior:contain;flex:auto;min-height:0;margin:0 -8px;padding:0 8px;overflow-y:auto}#closeSettings{flex:none;align-self:center;margin-top:12px}#settings[hidden]{display:none}.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:6px 0 8px;font-size:12px}#settings .segmented button{padding:9px 4px;font-size:15px}#modeChoice{margin:4px 0 6px}#modeChoice button{white-space:nowrap;padding:10px 2px;font-size:15px}#heroChoice{margin:4px 0 2px}#heroChoice button{white-space:nowrap;padding:10px 2px;font-size:15px}#heroHint{opacity:.75;min-height:2.6em;margin:6px 0 4px;font-size:13px}#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,#updateBtn{width:100%;padding:10px 14px;font-size:16px}#newVersion{left:50%;top:calc(max(env(safe-area-inset-top),8px) + 96px);z-index:20;color:#fff;white-space:nowrap;background:#1f2a1ff0;border-radius:999px;align-items:center;gap:10px;padding:6px 6px 6px 16px;font-weight:700;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 3px #0000004d}body:has(:is(#menu,#settings,#end,#cards,#talents,#skills,#pause):not([hidden])) #newVersion{top:auto;bottom:calc(max(env(safe-area-inset-bottom),8px) + 16px)}#newVersion button{background:var(--good);color:#fff;font:inherit;cursor:pointer;border:0;border-radius:999px;padding:8px 16px;font-weight:800}#installHint{margin:6px 0 8px}.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:12px 0 4px;font-size:15px}#cards{z-index:15}#cardList{flex-direction:column;gap:10px;margin:12px 0 6px;display:flex}#cardList .pick{color:#1f2a1f;width:100%;font:inherit;text-align:left;cursor:pointer;background:#fff;border:2px solid #2f6b3a59;border-radius:16px;align-items:center;gap:12px;padding:12px 14px;display:flex;box-shadow:0 3px #0000002e}#cardList .pick:active{transform:translateY(2px);box-shadow:0 1px #0000002e}#cardList .icon{font-size:34px;line-height:1}#cardList .what b{font-size:18px;display:block}#cardList .what small{opacity:.75;font-size:14px;font-weight:600;display:block}#cardList .own{color:#2f6b3a;margin-left:auto;font-weight:800}#cardsTaken{opacity:.7;min-height:1.3em;margin:6px 0 0;font-size:13px}#talents{z-index:16}#talentList,#skillList{flex-direction:column;gap:8px;margin:10px 0 4px;display:flex}#talentList .talent,#skillList .talent{text-align:left;background:#fff;border:2px solid #e6e0cf;border-radius:14px;grid-template-columns:40px 1fr auto;align-items:center;gap:10px;padding:8px 10px;display:grid}#talentList .icon,#skillList .icon{text-align:center;font-size:28px}#talentList .what b,#skillList .what b{font-size:16px;display:block}#talentList .what small,#skillList .what small{opacity:.7;font-size:13px;font-weight:600;display:block}#talentList .what i,#skillList .what i{letter-spacing:3px;color:#2f6b3a;font-size:13px;font-style:normal;display:block}#talentList .talent button,#skillList .talent button{white-space:nowrap;padding:8px 14px;font-size:15px}#talentList .talent button:disabled,#skillList .talent button:disabled{color:#6b756b;box-shadow:none;cursor:default;background:#cfd6cf}#endShards{color:#2f6b3a;min-height:1.3em;margin:6px 0 10px;font-weight:800}.menuActions{grid-template-columns:1fr 1fr;gap:8px;margin-top:10px;display:grid}.menuActions button{white-space:nowrap;text-overflow:ellipsis;min-width:0;height:48px;padding:0 6px;font-size:16px;line-height:48px;display:block;overflow:hidden}#report{left:50%;top:calc(max(env(safe-area-inset-top),8px) + 130px);z-index:12;color:#fff;text-align:center;white-space:nowrap;opacity:0;pointer-events:none;background:#1f2a1feb;border-radius:16px;flex-direction:column;align-items:center;gap:1px;padding:8px 18px;font-weight:700;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 3px #00000040}#report b{font-size:17px}#report span{opacity:.92;font-size:14px}#report .ok{color:#9be36a}#report .hurt{color:#ffb0a8}#report.show{animation:3.6s ease-out report}@keyframes report{0%{opacity:0;transform:translate(-50%,-10px)}8%,82%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,-4px)}}#flash{z-index:11;pointer-events:none;opacity:0;background:radial-gradient(#d6282800 38%,#d6282899 100%);position:fixed;inset:0}#flash.show{animation:.95s ease-out flash}@keyframes flash{0%{opacity:0}14%{opacity:1}to{opacity:0}}#hapticsRow .segmented button,#statsChoice button,#soundChoice button{white-space:nowrap}#callWave{right:max(env(safe-area-inset-right), 14px);bottom:calc(max(env(safe-area-inset-bottom), 12px) + 160px);z-index:20;background:var(--good);color:#fff;font:inherit;cursor:pointer;border:3px solid #ffffffb3;border-radius:999px;padding:10px 16px;font-size:15px;font-weight:800;position:fixed;box-shadow:0 3px #0000004d}#callWave[hidden]{display:none}body:has(#stick[data-side=right]) #callWave{right:auto;left:max(env(safe-area-inset-left), 14px)}button.stage small.goals{opacity:.85;grid-column:1/-1;margin-top:-2px}button.stage .goals .g{white-space:nowrap;margin-right:8px;display:inline-block}button.stage .goals .ok{color:#2f6b3a;font-weight:700}#endChallenges{text-align:left;margin:4px 0 6px;padding:0;font-size:15px;list-style:none;display:inline-block}#endChallenges li{padding:2px 0}#endChallenges li.met{color:#2f6b3a;font-weight:800}#endChallenges li.miss{opacity:.6}#endChallenges:empty{display:none}#menuNext{color:#8a6a10;text-align:center;min-height:0;margin:10px 0 0;font-size:13px;font-weight:700}#menuNext:empty{display:none}#skills{z-index:16}#skillsXp{background:#e6e0cf;border-radius:999px;height:10px;margin:6px 0 10px;overflow:hidden}#skillsXpFill{background:linear-gradient(90deg,#8fd37a,#2f9e44);width:0;height:100%}#skillList .talent.owned{border-color:#8fd37a}#skillList .talent.closed{opacity:.6}#skillList .what i{letter-spacing:0}#endLevel{color:#6a4bb0;min-height:0;margin:0 0 10px;font-weight:800}#endLevel:empty{display:none}.menuActions #openSkills{grid-column:1/-1}#skillBar{right:max(env(safe-area-inset-right), 14px);bottom:calc(max(env(safe-area-inset-bottom), 12px) + 216px);z-index:20;flex-direction:column;align-items:flex-end;gap:8px;display:flex;position:fixed}#skillBar[hidden]{display:none}body:has(#stick[data-side=right]) #skillBar{right:auto;left:max(env(safe-area-inset-left), 14px);align-items:flex-start}#skillBar button{color:#fff;font:inherit;cursor:pointer;opacity:.85;background:#4b4f6a;border:3px solid #ffffffb3;border-radius:999px;padding:10px 16px;font-size:15px;font-weight:800;box-shadow:0 3px #0000004d}#skillBar button[data-state=waiting]{background:#8a6a10}#skillBar button[data-state=ready]{opacity:1;background:#7a3fd1;animation:1s ease-in-out infinite skillReady}#skillBar button:disabled{cursor:default}@keyframes skillReady{50%{transform:scale(1.07);box-shadow:0 0 14px #a064ffe6}}
