@font-face{font-family:Bungee;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/bungee-vietnamese-400-normal-B6gKbkHm.woff2)format("woff2"),url(/assets/bungee-vietnamese-400-normal-CmjDSWyd.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bungee;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/bungee-latin-ext-400-normal-DWzJMwsA.woff2)format("woff2"),url(/assets/bungee-latin-ext-400-normal-DXe9_7Rr.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bungee;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/bungee-latin-400-normal-Dfnurram.woff2)format("woff2"),url(/assets/bungee-latin-400-normal-DA8IEVW_.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/space-grotesk-vietnamese-wght-normal-D0rl6rjA.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/space-grotesk-latin-ext-wght-normal-D9tNdqV9.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/space-grotesk-latin-wght-normal-BhU9QXUp.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ink:#10240f;--leaf:#7ed321;--leaf-dark:#2f6b1f;--bandana:#d8262c;--gold:#ff9a1f;--ice:#9ff3ff;--paper:#fff8e6;--display:"Bungee", "Impact", system-ui, sans-serif;--ui:"Space Grotesk Variable", system-ui, sans-serif;--safe-t:env(safe-area-inset-top,0px);--safe-b:env(safe-area-inset-bottom,0px);--safe-l:env(safe-area-inset-left,0px);--safe-r:env(safe-area-inset-right,0px)}*{box-sizing:border-box}html,body{height:100%;color:var(--paper);font-family:var(--ui);touch-action:none;overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;background:#14301d;margin:0;overflow:hidden}#app,#stage,#touch,#ui{position:fixed;inset:0}#stage canvas{width:100%;height:100%;display:block}#touch{touch-action:none}#ui{pointer-events:none}#ui button,#ui .screen.visible{pointer-events:auto}#loading{text-align:center;font-family:var(--display);z-index:10;background:#14301d;place-content:center;gap:1rem;font-size:1.4rem;transition:opacity .6s;display:grid;position:fixed;inset:0}#loading.done{opacity:0;pointer-events:none}#loading .bar{border:3px solid var(--paper);border-radius:99px;width:min(320px,70vw);height:14px;overflow:hidden}#loading .bar span{background:linear-gradient(90deg, var(--leaf), var(--ice));width:0;height:100%;transition:width .2s;display:block}.btn{border:3px solid var(--ink);background:var(--paper);width:100%;min-height:52px;color:var(--ink);font:1.15rem var(--display);letter-spacing:.04em;box-shadow:0 5px 0 var(--ink);cursor:pointer;border-radius:14px;padding:.7rem 1.4rem;transition:transform 80ms;display:block}.btn:hover{transform:translateY(-2px)}.btn:active{box-shadow:0 2px 0 var(--ink);transform:translateY(3px)}.btn.primary{background:linear-gradient(180deg, #a6f04a, var(--leaf));font-size:1.5rem}.btn+.btn{margin-top:.8rem}.icon-btn{width:44px;height:44px;color:var(--paper);cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#10240f8c;border:2px solid #fff9;border-radius:50%;font-size:1.1rem;position:fixed}.mute-btn{top:calc(12px + var(--safe-t));right:calc(12px + var(--safe-r));z-index:5}.mute-btn.muted{opacity:.5;text-decoration:line-through}.pause-btn{top:calc(12px + var(--safe-t));right:calc(64px + var(--safe-r));font-size:.8rem}.screen{opacity:0;visibility:hidden;transition:opacity .5s,visibility .5s;position:fixed;inset:0}.screen.visible{opacity:1;visibility:visible}.title{overflow:hidden}.title-art{background:var(--art-wide) 60% 35% / cover no-repeat;animation:30s ease-in-out infinite alternate drift;position:absolute;inset:-3%}.title:after{content:"";pointer-events:none;background:linear-gradient(90deg,#0a140abf,#0a140a1a 55%,#0000);position:absolute;inset:0}.title-hero{filter:drop-shadow(0 0 22px #ffd68c80)drop-shadow(0 18px 30px #280a0059);z-index:1;width:min(30vw,56vh,560px);animation:3.2s ease-in-out infinite hover;position:absolute;top:37%;left:69%;transform:translate(-50%,-50%)}.title-panel{left:calc(5vw + var(--safe-l));z-index:2;gap:1rem;width:min(520px,46vw);display:grid;position:absolute;top:50%;transform:translateY(-50%)}.title-logo{filter:drop-shadow(0 8px #00000059);width:100%;animation:.8s cubic-bezier(.2,1.6,.4,1) both pop-in}.title .btn{width:min(280px,100%)}.best{font:1rem var(--display);color:var(--gold);text-shadow:0 2px 0 var(--ink);margin:0}.controls{opacity:.85;text-shadow:0 1px 2px var(--ink);margin:0;font-weight:600}@media (height<=500px) and (aspect-ratio>=1){.title-panel{gap:.5rem;width:min(400px,42vw)}.title-logo{width:min(100%,62vh)}.title .btn{min-height:44px;padding-block:.4rem}.controls{font-size:.8rem}}@media (aspect-ratio<=1),(width<=700px){.title-art{background-image:var(--art-tall);background-position:50% 30%}.title-hero{width:min(72vw,36vh,440px);top:30%;left:50%}.title-panel{top:auto;left:50%;bottom:calc(4vh + var(--safe-b));text-align:center;justify-items:center;gap:min(2vh,1rem);width:min(440px,86vw);transform:translate(-50%)}.title-logo{width:min(100%,44vh)}.controls{font-size:.9rem}.title:after{background:linear-gradient(#0000 45%,#08120859 62%,#081208d9)}}.pause,.over{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#08140a99;place-items:center;display:grid}.card{border:3px solid var(--ink);width:min(360px,88vw);box-shadow:0 10px 0 var(--ink);text-align:center;background:linear-gradient(#24502b,#173a1e);border-radius:22px;padding:1.6rem}.card h2{font:2rem var(--display);color:var(--leaf);text-shadow:0 3px 0 var(--ink);margin:0 0 1rem}.card p{font-size:1.1rem;line-height:1.5}.card b{font:1.8rem var(--display);color:var(--gold)}.card .boss{width:130px;margin-top:-80px;animation:2.4s ease-in-out infinite hover}.hud{opacity:0;font-family:var(--display);text-shadow:0 2px 0 var(--ink);transition:opacity .4s;position:fixed;inset:0}.hud.visible{opacity:1}.hud-left{top:calc(14px + var(--safe-t));left:calc(16px + var(--safe-l));position:absolute}.hud-centre{top:calc(14px + var(--safe-t));font-size:1.1rem;position:absolute;left:50%;transform:translate(-50%)}.hud-right{top:calc(64px + var(--safe-t));right:calc(16px + var(--safe-r));text-align:right;position:absolute}.score{color:var(--paper);font-size:1.9rem}.combo{color:var(--gold);font-size:.95rem}.hearts{gap:4px;display:flex}.heart{width:26px;height:24px;clip-path:path("M13 23 C 4 16 0 11 0 6.5 A6.5 6.5 0 0 1 13 4 A6.5 6.5 0 0 1 26 6.5 C 26 11 22 16 13 23 Z");background:#00000059}.heart.full{background:linear-gradient(180deg, #ff6b6b, var(--bandana))}.bombs{gap:2px;margin-top:6px;display:flex}.bombs img{width:26px}.upgrades{bottom:calc(14px + var(--safe-b));gap:8px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.chip{opacity:.35;filter:grayscale();justify-items:center;transition:all .3s;display:grid}.chip.owned{opacity:1;filter:none}.chip img{width:40px}.pips{letter-spacing:1px;color:var(--ice);font-size:.55rem}.banner{text-align:center;opacity:0;pointer-events:none;position:fixed;top:26%;left:0;right:0}.banner strong{font:clamp(2.4rem, 8vw, 5rem) var(--display);color:var(--leaf);-webkit-text-stroke:3px var(--ink);paint-order:stroke fill;text-shadow:0 6px 0 var(--ink);display:block}.banner span{font:1.1rem var(--display);text-shadow:0 2px 0 var(--ink)}.banner.show{animation:2.2s both banner}.toast{bottom:calc(84px + var(--safe-b));border:3px solid var(--ink);background:var(--paper);color:var(--ink);opacity:0;pointer-events:none;border-radius:99px;align-items:center;gap:10px;padding:8px 18px 8px 8px;transition:all .25s cubic-bezier(.2,1.6,.4,1);display:flex;position:fixed;left:50%;transform:translate(-50%,20px)}.toast.show{opacity:1;transform:translate(-50%)}.toast img{width:44px}.toast strong{font:1rem var(--display);display:block}.toast span{font-size:.85rem}@media (width<=700px),(height<=500px){.toast{top:calc(52px + var(--safe-t));border-width:2px;gap:6px;padding:3px 12px 3px 3px;bottom:auto;transform:translate(-50%,-12px)}.toast img{width:26px}.toast strong{font-size:.75rem}.toast span{display:none}}.popup{font:1.1rem var(--display);color:var(--gold);text-shadow:0 2px 0 var(--ink);pointer-events:none;animation:.9s ease-out forwards float-up;position:absolute;transform:translate(-50%,-50%)}.touch-buttons{display:none}.is-touch .touch-buttons.visible{display:block}.touch-btn{width:72px;height:72px;color:var(--paper);font:.85rem var(--display);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);touch-action:none;background:#10240f73;border:3px solid #ffffffb3;border-radius:50%;position:fixed}.touch-btn:active{background:#9ff3ff80}.touch-btn.dash{right:calc(18px + var(--safe-r));bottom:calc(96px + var(--safe-b))}.touch-btn.bomb{right:calc(18px + var(--safe-r));bottom:calc(14px + var(--safe-b))}.touch-btn img{width:44px}@media (width<=700px),(height<=500px){.touch-btn{width:60px;height:60px;font-size:.75rem}.touch-btn.dash{bottom:calc(80px + var(--safe-b))}.touch-btn img{width:36px}}.is-touch .upgrades{bottom:calc(8px + var(--safe-b))}.is-touch .upgrades img{width:30px}.stick{opacity:0;pointer-events:none;background:#10240f40;border:3px solid #ffffff80;border-radius:50%;width:120px;height:120px;transition:opacity .15s;position:fixed;top:-60px;left:-60px}.stick.active{opacity:1}.stick-right{border-color:#9ff3ffd9}.stick-knob{background:#ffffffbf;border-radius:50%;width:50px;height:50px;position:absolute;top:32px;left:32px}.coach{opacity:0;pointer-events:none;text-shadow:0 2px 3px var(--ink);font-weight:600;transition:opacity .6s;position:fixed;inset:0}.coach.show{opacity:1}.coach b{font-family:var(--display);color:var(--ice);font-weight:400}.coach-centre{bottom:calc(80px + var(--safe-b));text-align:center;font-size:1.05rem;line-height:1.6;position:absolute;left:0;right:0}.coach-left,.coach-right{bottom:calc(9% + var(--safe-b));text-align:center;width:50%;font-size:1.2rem;position:absolute}.coach-left{left:0}.coach-right{right:0}.coach-left:before,.coach-right:before{content:"";border:3px dashed #ffffffb3;border-radius:50%;width:64px;height:64px;margin:0 auto 8px;display:block}.coach-right:before{border-color:var(--ice)}@media (width<=500px){.hud-centre{top:calc(74px + var(--safe-t));left:calc(16px + var(--safe-l));font-size:.8rem;transform:none}.heart{margin-right:-3px;scale:.85}.coach-left,.coach-right{width:calc(50% - 40px);font-size:1rem}.coach-right{right:calc(80px + var(--safe-r))}}@keyframes drift{0%{transform:scale(1.04)translate(-1%)}to{transform:scale(1.1)translate(1%,-1%)}}@keyframes hover{50%{translate:0 -14px}}@keyframes pop-in{0%{opacity:0;transform:scale(.6)rotate(-6deg)}}@keyframes banner{0%{opacity:0;transform:scale(1.6)}12%{opacity:1;transform:scale(1)}80%{opacity:1}to{opacity:0;transform:translateY(-20px)}}@keyframes float-up{to{opacity:0;transform:translate(-50%,-180%)}}@media (prefers-reduced-motion:reduce){.title-art,.title-hero,.card .boss{animation:none}}
