@font-face{font-family:Pixelify Sans;font-style:normal;font-display:swap;font-weight:400;src:url(./pixelify-sans-latin-400-normal-DLrIX9QE.woff2)format("woff2"),url(./pixelify-sans-latin-400-normal-JapMNN6Z.woff)format("woff")}@font-face{font-family:Pixelify Sans;font-style:normal;font-display:swap;font-weight:700;src:url(./pixelify-sans-latin-700-normal-D3Xxx3QE.woff2)format("woff2"),url(./pixelify-sans-latin-700-normal-BctWAS0u.woff)format("woff")}:root{--night:#060c0a;--forest:#0d1a14;--surface:#0c1812db;--green:#22c55e;--green-deep:#15803d;--brown:#7c4a2d;--brown-deep:#3d2312;--text:#efe8d2;--text-dim:#b9b39c;--glow:#d8f542;--r-s:14px;--r-m:22px;--r-l:32px;--font:"Pixelify Sans", ui-monospace, monospace;--ease-out:cubic-bezier(.22, 1, .36, 1);--spring:cubic-bezier(.34, 1.56, .64, 1);--s:1;--pad-t:max(env(safe-area-inset-top,0px) + 10px, 3vmin);--pad-r:max(env(safe-area-inset-right,0px) + 12px, 3vmin);--pad-b:max(env(safe-area-inset-bottom,0px) + 12px, 3vmin);--pad-l:max(env(safe-area-inset-left,0px) + 12px, 3vmin)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{background:var(--night);height:100%;color:var(--text);font-family:var(--font);overscroll-behavior:none;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-font-smoothing:antialiased;margin:0;overflow:hidden}canvas#game{touch-action:none;display:block;position:fixed;inset:0}#ui{z-index:2;pointer-events:none;position:fixed;inset:0}body:after{content:"";z-index:1;pointer-events:none;background:radial-gradient(at 50% 45%,#0000 55%,#00000080);position:fixed;inset:0}.screen{padding:var(--pad-t) var(--pad-r) var(--pad-b) var(--pad-l);pointer-events:auto;text-align:center;animation:screen-in .32s var(--ease-out) both;flex-direction:column;justify-content:center;align-items:center;gap:16px;display:flex;position:absolute;inset:0}.screen.dim{background:#0408069e}.screen.leaving{animation:.24s ease-in both screen-out}@keyframes screen-in{0%{opacity:0}}@keyframes screen-out{to{opacity:0}}.panel{border-radius:var(--r-l);background:var(--surface);width:min(100%,440px);max-height:100%;animation:panel-in .42s var(--spring) both;flex-direction:column;align-items:center;gap:16px;padding:24px;display:flex;box-shadow:inset 0 0 0 2px #7c4a2db3,0 24px 60px #00000080}@keyframes panel-in{0%{opacity:0;transform:scale(.92)}}h2{color:var(--text);text-shadow:0 3px #00000080;margin:0;font-size:30px;font-weight:700;line-height:1.1}.sub{color:var(--text-dim);margin:0;font-size:18px}.small{color:var(--text-dim);margin:0;font-size:15px}.stack{flex-direction:column;gap:12px;width:min(100%,320px);display:flex}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation;border:0}.btn{border-radius:var(--r-round,999px);min-height:56px;color:var(--text);transition:transform .14s var(--spring), filter .14s;background:#7c4a2d47;padding:0 24px;font-size:20px;font-weight:700;position:relative;box-shadow:inset 0 0 0 2px #7c4a2de6}.btn .label{z-index:1;position:relative}.btn.primary{min-height:64px;color:var(--brown-deep);background:linear-gradient(180deg, #4ade80 0%, var(--green) 45%, var(--green-deep) 100%);box-shadow:inset 0 0 0 3px var(--brown), inset 0 3px 0 4px #ffffff38, 0 6px 0 var(--brown-deep), 0 0 32px #22c55e59;font-size:24px}.btn.ghost{color:var(--text-dim);background:0 0;box-shadow:inset 0 0 0 2px #7c4a2d99}.btn:active{filter:brightness(1.08);transform:scale(.94)translateY(2px)}.btn.focus,.btn:focus-visible,.icon-btn:focus-visible{outline:3px solid var(--glow);outline-offset:4px}.btn .vine{pointer-events:none;width:64px;height:26px;animation:vine-grow .9s var(--ease-out) both .2s;transform-origin:0 100%;position:absolute;bottom:-10px;left:-10px}.btn .vine.right{transform-origin:50%;animation-name:vine-grow-r;inset:-12px -10px auto auto;transform:scale(-1)}@keyframes vine-grow{0%{opacity:0;transform:scale(.2)}}@keyframes vine-grow-r{0%{opacity:0;transform:scale(-.2)}}.btn.pulse:before{content:"";border-radius:inherit;pointer-events:none;animation:.9s ease-in-out infinite alternate pulse;position:absolute;inset:-6px;box-shadow:0 0 0 3px #22c55e8c,0 0 40px #22c55e80}@keyframes pulse{0%{opacity:.35;transform:scale(.97)}to{opacity:1;transform:scale(1.06)}}.icon-btn{width:48px;height:48px;color:var(--text);pointer-events:auto;transition:transform .14s var(--spring);background:#0c1812b3;border-radius:50%;place-items:center;display:grid;position:absolute;box-shadow:inset 0 0 0 2px #7c4a2dcc}.icon-btn:active{transform:scale(.9)}.icon-btn svg{width:56%;height:56%}.icon-btn.mute{top:var(--pad-t);right:var(--pad-r);z-index:5}.icon-btn.pause{top:var(--pad-t);right:calc(var(--pad-r) + 56px)}.title{flex-direction:column;gap:8px}.logo-wrap{place-items:center;display:grid;position:relative}.moonglow{background:radial-gradient(closest-side,#aad2be52,#aad2be1a 55%,#0000);border-radius:50%;animation:4.5s ease-in-out infinite alternate breathe;position:absolute;inset:-12%}.logo{filter:drop-shadow(0 12px 28px #0009);width:min(84vw,520px,58vh);height:auto;animation:logo-in .7s var(--ease-out) both;position:relative}@keyframes logo-in{0%{opacity:0;transform:translateY(12px)scale(.96)}}@keyframes breathe{to{opacity:.8;transform:scale(1.06)}}.title-actions{animation:screen-in .5s var(--ease-out) both .25s;flex-direction:column;align-items:center;gap:12px;display:flex}.title .btn.primary{min-width:240px;min-height:72px;font-size:28px}.title .btn.ghost{min-height:48px;font-size:18px}@media (orientation:landscape) and (max-height:560px){.title{flex-direction:row;gap:32px}.logo{width:min(74vh,46vw)}}.hud{pointer-events:none;position:absolute;inset:0}.lives{top:var(--pad-t);left:var(--pad-l);align-items:center;gap:4px;height:48px;display:flex;position:absolute}.life svg{filter:drop-shadow(0 0 8px #d8f5428c);width:34px;height:34px;transition:transform .3s var(--spring), filter .3s;display:block}.life .blade{fill:var(--glow);transition:fill .3s}.life.lost svg{filter:none;transform:rotate(18deg)scale(.86)}.life.lost .blade{fill:#4a4a40}.life.falling{z-index:10;pointer-events:none;animation:1s cubic-bezier(.5,0,.8,.6) forwards leaf-fall;position:fixed}@keyframes leaf-fall{30%{transform:translate(10px,20px)rotate(40deg)}to{opacity:0;transform:translate(-30px,60vh)rotate(260deg)}}.progress{top:var(--pad-t);flex-direction:column;align-items:center;gap:6px;width:min(34vw,340px);display:flex;position:absolute;left:50%;transform:translate(-50%)}.district-label{color:var(--text);text-shadow:0 2px #000000b3;white-space:nowrap;font-size:16px}.bar{background:#24170d;border-radius:999px;width:100%;height:10px;overflow:hidden;box-shadow:inset 0 0 0 2px #0a0604,0 2px 8px #00000080}.bar-fill{background:linear-gradient(90deg,#5a3a22,#7c4a2d 20%,#22c55e 55%,#ffcf3a 80%,#ff8a2a);border-radius:999px;width:0;height:100%}.score{top:var(--pad-t);right:calc(var(--pad-r) + 116px);font-variant-numeric:tabular-nums;text-shadow:0 2px #000000b3;align-items:center;gap:6px;height:48px;font-size:26px;font-weight:700;display:flex;position:absolute}.score-num{text-align:right;min-width:2ch;display:inline-block}.score-num.bump{animation:bump .24s var(--spring)}@keyframes bump{50%{transform:scale(1.25)}}.score-leaf svg{filter:drop-shadow(0 0 6px #d8f54299);width:24px;height:24px;display:block}@media (max-width:640px){.progress{top:calc(var(--pad-t) + 58px);width:min(70vw,320px)}}.banner{text-align:center;opacity:0;pointer-events:none;position:absolute;top:26%;left:0;right:0}.banner.on{animation:banner 1.8s var(--ease-out) both}.banner-title{color:var(--glow);text-shadow:0 3px #000000b3,0 0 24px #d8f54273;font-size:34px;font-weight:700}.banner-sub{color:var(--text);text-shadow:0 2px #000000b3;margin-top:4px;font-size:20px}@keyframes banner{0%{opacity:0;transform:scale(.92)}18%{opacity:1;transform:scale(1.03)}28%{transform:scale(1)}75%{opacity:1}to{opacity:0}}.touch{right:var(--pad-r);bottom:var(--pad-b);gap:16px;display:none;position:absolute}@media (pointer:coarse){.touch{display:flex}}.touch-btn{width:76px;height:76px;color:var(--text);pointer-events:auto;touch-action:none;transition:transform .12s var(--spring), background .12s;background:#22c55e47;border-radius:50%;place-items:center;display:grid;position:relative;box-shadow:inset 0 0 0 3px #7c4a2df2,0 6px 18px #0006}.touch-btn.duck{background:#7c4a2d52}.touch-btn>svg:first-child{width:44%;height:44%}.touch-btn .vine{width:48px;height:20px;position:absolute;bottom:-6px;left:-8px}.touch-btn.jump .vine{left:auto;right:-8px;transform:scaleX(-1)}.touch-btn.down{background:#22c55e8c;transform:scale(.9)}.map{gap:12px}.ring-wrap{aspect-ratio:1;width:min(220px,34vh);position:relative}.ring{width:100%;height:100%;overflow:visible}.ring .seg{transform-box:fill-box;transform-origin:50%}.ring .seg.on{animation:seg-in .4s var(--spring) both;animation-delay:var(--d)}.ring .seg.fresh{animation:seg-fresh .9s var(--spring) both .3s}.free .ring .seg.on{animation:.6s ease-in-out .9s 2 alternate both seg-pulse}@keyframes seg-in{0%{transform:scale(.4)}}@keyframes seg-fresh{0%{transform:scale(0)}60%{transform:scale(1.35)}}@keyframes seg-pulse{to{transform:scale(1.18)}}.ring-center{place-content:center;line-height:1.1;display:grid;position:absolute;inset:0}.ring-center b{font-size:32px}.ring-center small{color:var(--text-dim);font-size:15px}.stats{font-variant-numeric:tabular-nums;align-items:center;gap:8px;font-size:20px;display:flex}.stats .count{color:var(--glow);font-size:26px;font-weight:700}.stats .of{color:var(--text-dim)}.badge{color:var(--brown-deep);animation:badge .7s var(--spring) both .7s;background:#ffcf3a;border-radius:999px;padding:6px 16px;font-size:16px;font-weight:700;display:inline-block}@keyframes badge{0%{transform:scale(0)rotate(-10deg)}}@media (max-height:520px){.panel{gap:8px;padding:16px 24px}.map h2,.panel h2{font-size:24px}.ring-wrap{width:120px}.map{grid-template-columns:auto auto;align-items:center;column-gap:24px;width:min(100%,560px);display:grid}.map h2,.map .stack{grid-column:1/-1;justify-self:center}.map .ring-wrap{grid-row:span 2}}.names{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.names span{background:#22c55e2e;border-radius:999px;padding:8px 20px;font-size:22px;font-weight:700;box-shadow:inset 0 0 0 2px #22c55e99}@media (prefers-reduced-motion:reduce){.btn.pulse:before,.moonglow,.free .ring .seg.on{animation:none}.screen,.panel,.banner.on{animation-duration:.15s}}.title-row{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.title-row .btn{min-height:48px;font-size:18px}.chars{--accent:var(--green);gap:12px}.chars h2{font-size:26px}.arc{--slot:clamp(56px, 15vw, 88px);aspect-ratio:3/2;width:min(94vw,540px,150dvh - 450px);min-width:320px;position:relative}.arc .stage{width:40%;height:62%;position:absolute;top:38%;left:30%}.stage-glow{background:radial-gradient(closest-side, color-mix(in srgb, var(--accent) 40%, transparent), transparent);border-radius:50%;height:22%;transition:background .3s;position:absolute;bottom:0;left:22%;right:22%}.slot{width:var(--slot);height:var(--slot);margin:calc(var(--slot) / -2) 0 0 calc(var(--slot) / -2);background:radial-gradient(circle at 50% 40%, color-mix(in srgb, var(--accent) 26%, #13221a), #0a120e 72%);box-shadow:inset 0 0 0 3px var(--brown), 0 6px 0 var(--brown-deep);animation:slot-in .42s var(--spring) both var(--d);transition:transform .18s var(--spring), box-shadow .18s;border-radius:50%;padding:0;position:absolute;overflow:hidden}.slot canvas{pointer-events:none;width:100%;height:100%;display:block}.slot.on{box-shadow:inset 0 0 0 4px var(--green), 0 6px 0 var(--green-deep), 0 0 24px #22c55e8c;transform:scale(1.14)}.slot:active{transform:scale(.92)}.slot.focus{outline:3px solid var(--glow);outline-offset:4px}@keyframes slot-in{0%{opacity:0;transform:translateY(16px)scale(.6)}}.char-info{flex-direction:column;align-items:center;gap:8px;display:flex}.char-name{color:var(--brown-deep);background:linear-gradient(180deg, #4ade80, var(--green) 55%, var(--green-deep));box-shadow:inset 0 0 0 3px var(--brown), 0 4px 0 var(--brown-deep);border-radius:999px;padding:4px 24px;font-size:28px;font-weight:700}.char-name.pop{animation:badge .36s var(--spring) both}.char-line{color:color-mix(in srgb, var(--accent) 45%, var(--text));min-height:1.2em}.char-actions{align-items:center;gap:16px;display:flex}.char-actions .btn.primary{min-width:220px}.icon-btn.back{width:64px;height:64px;position:relative}@media (orientation:landscape) and (max-height:560px){.chars{grid-template-rows:auto auto 1fr;grid-template-columns:auto auto;place-content:center;gap:8px 32px;display:grid}.chars h2{grid-column:2;font-size:24px}.chars .arc{--slot:clamp(52px, 13vh, 80px);grid-area:1/1/span 3;width:min(52vw,150dvh - 60px);min-width:0}.chars .char-info,.chars .char-actions{grid-column:2}.chars .char-actions{align-self:start}}@media (prefers-reduced-motion:reduce){.slot,.char-name.pop{animation-duration:.15s}}
