@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(./nunito-cyrillic-ext-wght-normal-D4X5GqEv.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(./nunito-cyrillic-wght-normal-CY6AOgYE.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(./nunito-vietnamese-wght-normal-U01xdrZh.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:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(./nunito-latin-ext-wght-normal-CXYtwYOx.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:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(./nunito-latin-wght-normal-BzFMHfZw.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{--bg:#0b1026;--bg2:#1d2b64;--primary:#ffd23f;--secondary:#5ad1ff;--accent:#ff5c8a;--text:#fff;--text-dim:#ffffffb8;--radius:22px;--font:system-ui, sans-serif;--s:1;--safe-t:env(safe-area-inset-top,0px);--safe-r:env(safe-area-inset-right,0px);--safe-b:env(safe-area-inset-bottom,0px);--safe-l:env(safe-area-inset-left,0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{background:var(--bg);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{pointer-events:none;position:fixed;inset:0}.screen{justify-content:center;align-items:center;gap:calc(14px * var(--s));padding:calc(var(--safe-t) + 20px) calc(var(--safe-r) + 20px) calc(var(--safe-b) + 24px) calc(var(--safe-l) + 20px);pointer-events:auto;text-align:center;flex-direction:column;animation:.38s cubic-bezier(.2,.9,.25,1.1) both screen-in;display:flex;position:absolute;inset:0}.screen.dim{background:color-mix(in srgb, var(--bg) 62%, transparent);-webkit-backdrop-filter:blur(10px)saturate(1.2)}.screen.leaving{animation:.22s ease-in both screen-out}@keyframes screen-in{0%{opacity:0;transform:scale(.96)translateY(10px)}}@keyframes screen-out{to{opacity:0;transform:scale(1.02)}}.logo{width:min(72vw, calc(300px * var(--s)), 44vh);aspect-ratio:1;object-fit:contain;filter:drop-shadow(0 18px 30px #00000059);animation:4.5s ease-in-out infinite float}@keyframes float{50%{transform:translateY(-8px)rotate(-1.5deg)}}h1{font-size:calc(40px * var(--s));letter-spacing:-.02em;text-shadow:0 4px #0000002e;margin:0;font-weight:900;line-height:1.05}h2{font-size:calc(30px * var(--s));letter-spacing:-.01em;margin:0;font-weight:900}.tagline{margin:0 0 calc(10px * var(--s));max-width:28ch;font-size:calc(17px * var(--s));color:var(--text-dim);font-weight:650}.stack{gap:calc(12px * var(--s));width:min(100%, calc(320px * var(--s)));flex-direction:column;display:flex}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation;border:0}.btn{min-height:calc(56px * var(--s));padding:0 calc(26px * var(--s));border-radius:var(--radius);font-size:calc(20px * var(--s));background:#ffffff1f;font-weight:850;transition:transform .14s cubic-bezier(.3,1.6,.5,1),filter .14s;box-shadow:inset 0 0 0 1.5px #ffffff2e}.btn.primary{background:var(--primary);color:color-mix(in srgb, var(--bg) 90%, black);box-shadow:0 6px 0 color-mix(in srgb, var(--primary) 55%, black), 0 14px 30px color-mix(in srgb, var(--primary) 30%, transparent);font-size:calc(24px * var(--s));min-height:calc(64px * var(--s))}.btn.hero{justify-content:center;align-items:center;gap:calc(12px * var(--s));min-height:calc(88px * var(--s));margin-bottom:calc(10px * var(--s));font-size:calc(34px * var(--s));letter-spacing:.01em;background:linear-gradient(180deg, color-mix(in srgb, var(--primary) 70%, white) 0%, var(--primary) 55%, color-mix(in srgb, var(--primary) 85%, var(--accent)) 100%);box-shadow:0 7px 0 color-mix(in srgb, var(--primary) 55%, black), 0 0 0 3px color-mix(in srgb, var(--primary) 40%, white) inset, 0 14px 34px color-mix(in srgb, var(--primary) 45%, transparent);font-weight:900;animation:2.2s ease-in-out infinite hero-glow;display:flex;position:relative}.btn.hero:active{transform:scale(.95)translateY(3px)}@keyframes hero-glow{50%{filter:brightness(1.06);box-shadow:0 7px 0 color-mix(in srgb, var(--primary) 55%, black), 0 0 0 3px color-mix(in srgb, var(--primary) 40%, white) inset, 0 0 46px 6px color-mix(in srgb, var(--primary) 60%, transparent)}}.btn.hero .shine{border-radius:inherit;pointer-events:none;position:absolute;inset:0;overflow:hidden}.btn.hero .shine:before{content:"";background:linear-gradient(100deg,#0000 0%,#ffffffd9 50%,#0000 100%);width:38%;animation:2.6s cubic-bezier(.5,0,.3,1) infinite shine;position:absolute;top:-20%;bottom:-20%;left:0;transform:translate(-140%)skew(-18deg)}@keyframes shine{0%,35%{transform:translate(-140%)skew(-18deg)}75%,to{transform:translate(380%)skew(-18deg)}}.btn.hero .hero-star{width:calc(30px * var(--s));height:calc(30px * var(--s));color:#fff;filter:drop-shadow(0 0 6px #ffffffe6);animation:2.2s ease-in-out infinite hero-star;display:grid}.btn.hero .hero-star svg,.sparkle svg{width:100%;height:100%}@keyframes hero-star{50%{transform:rotate(90deg)scale(1.15)}}.sparkle{width:var(--size);height:var(--size);margin:calc(var(--size) / -2) 0 0 calc(var(--size) / -2);color:#fff;filter:drop-shadow(0 0 5px color-mix(in srgb, var(--primary) 80%, white));pointer-events:none;opacity:0;animation:2s ease-in-out infinite both twinkle;position:absolute}.sparkle:nth-of-type(3n){color:color-mix(in srgb, var(--secondary) 60%, white)}.sparkle:nth-of-type(4n){color:color-mix(in srgb, var(--accent) 50%, white)}@keyframes twinkle{0%,to{opacity:.15;transform:scale(.45)rotate(0)}30%{opacity:1;transform:scale(1.1)rotate(45deg)}60%{opacity:.35;transform:scale(.6)rotate(90deg)}}.sparkle.pop{animation:.52s cubic-bezier(.2,.8,.3,1) both pop-out}@keyframes pop-out{0%{opacity:1;transform:translate(0)scale(.4)}60%{opacity:1}to{opacity:0;transform:translate(var(--dx), var(--dy)) scale(1.1) rotate(120deg)}}.btn:active{filter:brightness(1.08);transform:scale(.94)translateY(2px)}.btn:focus-visible,.icon-btn:focus-visible{outline:3px solid var(--secondary);outline-offset:3px}.icon-btn{width:calc(48px * var(--s));height:calc(48px * var(--s));-webkit-backdrop-filter:blur(8px);pointer-events:auto;background:#ffffff24;border-radius:50%;place-items:center;transition:transform .14s cubic-bezier(.3,1.6,.5,1);display:grid;position:absolute}.icon-btn:active{transform:scale(.9)}.icon-btn svg{width:58%;height:58%}.top-right{top:calc(var(--safe-t) + 14px);right:calc(var(--safe-r) + 14px)}.top-right-2{top:calc(var(--safe-t) + 14px);right:calc(var(--safe-r) + 14px + 58px * var(--s))}.hud{pointer-events:none;position:absolute;inset:0}.hud .score{top:calc(var(--safe-t) + 12px);left:calc(var(--safe-l) + 18px);font-size:calc(38px * var(--s));font-variant-numeric:tabular-nums;text-shadow:0 3px #00000040;font-weight:900;position:absolute}.hud .score.bump{animation:.22s cubic-bezier(.3,1.8,.5,1) bump}@keyframes bump{40%{transform:scale(1.22)}}.hud .combo{top:calc(var(--safe-t) + 60px * var(--s));left:calc(var(--safe-l) + 20px);font-size:calc(17px * var(--s));color:var(--primary);opacity:0;font-weight:900;transition:opacity .16s;position:absolute}.hud .combo.on{opacity:1}.hud .lives{top:calc(var(--safe-t) + 74px * var(--s));right:calc(var(--safe-r) + 16px);gap:4px;display:flex;position:absolute}.hud .lives svg{width:calc(26px * var(--s));height:calc(26px * var(--s));transition:transform .26s cubic-bezier(.3,1.6,.5,1),opacity .26s}.hud .lives svg.lost{opacity:.25;transform:scale(.5)}.big-score{font-size:calc(72px * var(--s));font-variant-numeric:tabular-nums;color:var(--primary);text-shadow:0 5px #0003;font-weight:900;line-height:1}.muted-line{color:var(--text-dim);font-weight:700;font-size:calc(17px * var(--s))}.badge{background:var(--accent);color:#fff;font-weight:900;font-size:calc(15px * var(--s));border-radius:999px;padding:6px 14px;animation:1.2s ease-in-out infinite wiggle;display:inline-block}@keyframes wiggle{50%{transform:rotate(-4deg)scale(1.06)}}.letters{gap:calc(10px * var(--s));justify-content:center;display:flex}.letter{flex-direction:column;align-items:center;gap:4px;display:flex}.letter .char{width:calc(58px * var(--s));height:calc(66px * var(--s));border-radius:calc(var(--radius) * .7);font-size:calc(38px * var(--s));background:#ffffff24;place-items:center;font-weight:900;display:grid}.letter button{width:calc(58px * var(--s));height:calc(40px * var(--s));font-size:calc(18px * var(--s));background:#ffffff14;border-radius:12px;font-weight:900}.letter button:active{background:#ffffff38}.board{width:min(100%, calc(320px * var(--s)));counter-reset:rank;margin:0;padding:0;list-style:none}.board li{padding:calc(9px * var(--s)) calc(14px * var(--s));font-size:calc(19px * var(--s));font-variant-numeric:tabular-nums;border-radius:14px;justify-content:space-between;font-weight:800;display:flex}.board li:nth-child(odd){background:#ffffff12}.board li:before{counter-increment:rank;content:counter(rank) ".";text-align:left;width:2.2em;color:var(--text-dim)}.board li span:first-of-type{text-align:left;letter-spacing:.12em;flex:1}.board li.me{background:color-mix(in srgb, var(--primary) 30%, transparent)}.names{flex-wrap:wrap;justify-content:center;gap:10px;max-width:340px;display:flex}.names span{font-weight:850;font-size:calc(19px * var(--s));background:#ffffff1f;border-radius:999px;padding:8px 16px}.small{font-size:calc(14px * var(--s));color:var(--text-dim);font-weight:650}@media (prefers-reduced-motion:reduce){.logo,.badge,.btn.hero,.btn.hero .hero-star,.btn.hero .shine:before{animation:none}.sparkle:not(.pop){animation-name:twinkle-soft;animation-duration:3.2s}@keyframes twinkle-soft{0%,to{opacity:.25}30%{opacity:.9}}}
