@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/space-grotesk-vietnamese-400-normal-B7xT_GF5.woff2)format("woff2"),url(/assets/space-grotesk-vietnamese-400-normal-BIWiOVfw.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:Space Grotesk;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/space-grotesk-latin-ext-400-normal-CfP_5XZW.woff2)format("woff2"),url(/assets/space-grotesk-latin-ext-400-normal-DRPE3kg4.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:Space Grotesk;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/space-grotesk-latin-400-normal-CJ-V5oYT.woff2)format("woff2"),url(/assets/space-grotesk-latin-400-normal-BnQMeOim.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;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/space-grotesk-vietnamese-500-normal-BmEvtly_.woff2)format("woff2"),url(/assets/space-grotesk-vietnamese-500-normal-BTqKIpxg.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:Space Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/space-grotesk-latin-ext-500-normal-DUe3BAxM.woff2)format("woff2"),url(/assets/space-grotesk-latin-ext-500-normal-3dgZTiw9.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:Space Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/space-grotesk-latin-500-normal-lFbtlQH6.woff2)format("woff2"),url(/assets/space-grotesk-latin-500-normal-CNSSEhBt.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;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/space-grotesk-vietnamese-700-normal-DMty7AZE.woff2)format("woff2"),url(/assets/space-grotesk-vietnamese-700-normal-Duxec5Rn.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:Space Grotesk;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/space-grotesk-latin-ext-700-normal-BQnZhY3m.woff2)format("woff2"),url(/assets/space-grotesk-latin-ext-700-normal-HVCqSBdx.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:Space Grotesk;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/space-grotesk-latin-700-normal-RjhwGPKo.woff2)format("woff2"),url(/assets/space-grotesk-latin-700-normal-CwsQ-cCU.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}.logo{letter-spacing:-.035em;text-align:center;background:linear-gradient(120deg,#9ffcff,#6dffa3 45%,#ffd66b);color:#0000;filter:drop-shadow(0 0 40px #6dffa338);text-wrap:balance;-webkit-background-clip:text;background-clip:text;margin:10vh 0 0;font-size:clamp(64px,13vw,176px);font-weight:700;line-height:.95}.primary.play{letter-spacing:.01em;margin-top:clamp(28px,6vh,56px);padding:clamp(18px,2.6vw,26px) clamp(64px,9vw,110px);font-size:clamp(26px,3.6vw,40px);animation:2.4s ease-in-out infinite play-pulse;box-shadow:0 0 50px #6dffa373,0 0 0 6px #6dffa31f}@keyframes play-pulse{50%{box-shadow:0 0 70px #6dffa399,0 0 0 12px #6dffa30f}}.start .secondary{margin-top:18px;font-size:17px}.legal-links{color:var(--ink-dim);gap:10px;margin-top:auto;padding-top:28px;font-size:13px;display:flex}.legal-links a{color:var(--ink-dim);text-decoration:none}.legal-links a:hover,.legal-links a:focus-visible{color:var(--ink);text-decoration:underline}.overlay.legal{z-index:5;-webkit-user-select:text;user-select:text;justify-content:center}.legal-card{background:var(--glass-strong);border:1px solid var(--line);border-radius:20px;width:min(760px,100%);max-height:100%;padding:26px 26px 18px;font-size:14px;line-height:1.55;position:relative;overflow-y:auto}.legal-close{float:right;margin:-8px -8px 0 12px;position:sticky;top:0}.legal-body h2{margin:0 0 14px;font-size:26px}.legal-body h3{margin:20px 0 6px;font-size:16px}.legal-body p,.legal-body ul{color:#d4e2f4;margin:0 0 10px}.legal-body a,.legal-source a{color:var(--cyan)}.legal-body table{border-collapse:collapse;width:100%;margin:8px 0 12px;font-size:13px}.legal-body th,.legal-body td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:6px 8px}.legal-source{color:var(--ink-dim);word-break:break-all;margin:16px 0 0;font-size:12px}.rotate-hint{display:none}@media (orientation:portrait) and (pointer:coarse) and (width<=600px){.rotate-hint{z-index:10;text-align:center;pointer-events:auto;background:radial-gradient(at 50% 40%,#141e46eb,#020309f7);flex-direction:column;justify-content:center;align-items:center;gap:22px;padding:32px;font-size:18px;line-height:1.4;display:flex;position:absolute;inset:0}.rotate-icon svg{fill:none;width:96px;height:96px;stroke:var(--cyan);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;animation:2.4s ease-in-out infinite rotate-phone}}@keyframes rotate-phone{0%,20%{transform:rotate(0)}50%,80%{transform:rotate(-90deg)}to{transform:rotate(0)}}:root{--bg:#020309;--ink:#eaf4ff;--ink-dim:#9fb2cc;--glass:#0e162c9e;--glass-strong:#0e162cdb;--line:#9ffcff2e;--accent:#6dffa3;--cyan:#9ffcff;--gold:#ffd66b;--pink:#ff7aa8;--grey:#5b6478;--font:"Space Grotesk", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;margin:0;overflow:hidden}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.noscript{text-align:center;font-size:18px;position:fixed;inset:40% 16px auto}#scene{touch-action:none;width:100%;height:100%;display:block;position:fixed;inset:0}#ui{pointer-events:none;padding:max(14px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(14px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));position:fixed;inset:0}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}.hud-title{top:max(10px, env(safe-area-inset-top));left:max(16px, env(safe-area-inset-left));max-width:min(440px,100% - 180px);position:absolute}.hud-title .level-num{letter-spacing:-.04em;font-variant-numeric:tabular-nums;background:linear-gradient(160deg,#eaf4ff 20%,#9ffcff 70%,#6dffa3);color:#0000;filter:drop-shadow(0 0 18px #9ffcff2e);-webkit-background-clip:text;background-clip:text;font-size:clamp(56px,9vw,96px);font-weight:700;line-height:.95}.hud-title .hint{color:var(--ink-dim);margin-top:6px;font-size:14px;line-height:1.35}.hud-buttons{top:max(14px, env(safe-area-inset-top));right:max(16px, env(safe-area-inset-right));pointer-events:auto;gap:8px;display:flex;position:absolute}.icon-btn{border:1px solid var(--line);background:var(--glass);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:50%;place-items:center;width:42px;height:42px;font-size:18px;line-height:1;display:grid}.icon-btn:hover{border-color:#9ffcff73}.icon-btn[hidden]{display:none}.icon-btn svg{stroke:currentColor;fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}@media (width<=1100px) and (width>=561px){.gauge-rows{min-width:140px}}.hud-bottom{left:50%;bottom:max(14px, env(safe-area-inset-bottom));background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);white-space:nowrap;border-radius:999px;align-items:center;gap:16px;padding:9px 18px;font-size:14px;display:flex;position:absolute;transform:translate(-50%)}.hud-bottom .label{color:var(--ink-dim);margin-right:5px}.hud-bottom .value{font-weight:700}.stars{letter-spacing:2px;font-size:16px}.star-on{color:var(--gold)}.star-off{color:#ffffff2e}.capsules{vertical-align:middle;gap:4px;display:inline-flex}.capsule{background:var(--gold);border-radius:5px;width:9px;height:16px;box-shadow:0 0 8px #ffd66b99}.capsule.used{background:var(--grey);box-shadow:none}.glimmi-count .dot{vertical-align:-1px;background:#ffd84d;border-radius:50%;width:10px;height:10px;margin-right:5px;display:inline-block}.hud-hint-key{left:50%;bottom:calc(max(14px, env(safe-area-inset-bottom)) + 52px);color:var(--ink-dim);opacity:.75;white-space:nowrap;font-size:12px;position:absolute;transform:translate(-50%)}.banner{opacity:0;text-align:center;width:min(900px,100% - 32px);transition:opacity .25s,transform .4s cubic-bezier(.2,1.4,.4,1);position:absolute;top:14%;left:50%;transform:translate(-50%,-10px)scale(.92)}.banner.show{opacity:1;transform:translate(-50%)scale(1)}.banner .title{letter-spacing:-.02em;text-wrap:balance;text-shadow:0 2px 18px #020309d9,0 0 42px;font-size:clamp(38px,7.5vw,84px);font-weight:700;line-height:1.05}.banner .stars{letter-spacing:6px;text-shadow:0 0 28px #ffd66b8c;margin-top:6px;font-size:clamp(40px,7vw,72px);display:block}.banner.good .title{color:var(--accent)}.banner.info .title{color:var(--cyan)}.banner.bad .title{color:#ffb3a6}.gauge{left:max(16px, env(safe-area-inset-left));bottom:max(14px, env(safe-area-inset-bottom));background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font-variant-numeric:tabular-nums;border-radius:22px;align-items:center;gap:12px;padding:10px 16px 10px 10px;display:flex;position:absolute}.gauge-dial{width:112px;height:112px;overflow:visible}.gauge-dial path{fill:none;stroke-linecap:round}.gauge-dial .track{stroke:#9ffcff1f;stroke-width:6px}.gauge-dial .value{stroke:url(#gauge-grad);stroke-width:6px;filter:drop-shadow(0 0 4px #6dffa373)}.gauge-dial .tick{stroke:#eaf4ff47;stroke-width:1px}.gauge-dial .pull-ring{fill:none;stroke:#9ffcff1a;stroke-width:1px;stroke-dasharray:2 3}.gauge-dial .pull path{fill:var(--pink);stroke:none}.gauge-dial text{text-anchor:middle;fill:var(--ink);font-family:var(--font)}.gauge-dial .speed{font-size:24px;font-weight:700}.gauge-dial .unit{fill:var(--ink-dim);letter-spacing:.08em;font-size:9px}.gauge-rows{gap:5px;min-width:168px;font-size:12px;display:grid}.gauge-row{grid-template-columns:1fr auto;align-items:baseline;column-gap:10px;display:grid}.gauge-row .label{color:var(--ink-dim)}.gauge-row .value{text-align:right;font-weight:700}.gauge-row .bar{background:#9ffcff1a;border-radius:2px;grid-column:1/-1;height:3px;margin-top:3px;overflow:hidden}.gauge-row .bar span{transform-origin:0;background:linear-gradient(90deg,#9ffcff,#ff7aa8);height:100%;display:block;transform:scaleX(0)}.icon-btn.active{color:#04121a;background:var(--gold);border-color:var(--gold);box-shadow:0 0 18px #ffd66b8c}#ui.overlay-mode .hud-title,#ui.overlay-mode .hud-bottom,#ui.overlay-mode .hud-hint-key,#ui.overlay-mode .gauge,#ui.overlay-mode .hud-buttons,#ui.overlay-mode .banner,#ui.finale-mode .hud-title,#ui.finale-mode .hud-bottom,#ui.finale-mode .hud-hint-key,#ui.finale-mode .gauge,#ui.finale-mode .hud-buttons button:not(:last-child){opacity:0;pointer-events:none;transition:opacity .6s}.finale{pointer-events:none;text-align:center;flex-direction:column;justify-content:space-between;align-items:center;padding:max(7vh,40px) 16px max(5vh,24px);display:flex;position:absolute;inset:0}.finale[hidden]{display:none}.finale-title{letter-spacing:-.03em;margin:0;font-size:clamp(56px,13vw,150px);font-weight:700;line-height:1}.finale-letter{background:linear-gradient(120deg,#9ffcff,#6dffa3 45%,#ffd66b 75%,#ff7aa8) 0 0/300% 100%;color:#0000;filter:drop-shadow(0 0 22px #6dffa359);opacity:0;-webkit-background-clip:text;background-clip:text;animation:.9s cubic-bezier(.2,1.6,.4,1) forwards finale-drop,2.6s ease-in-out infinite finale-bob,6s linear infinite finale-shine;display:inline-block;transform:translateY(-.8em)scale(.4)rotate(-12deg)}@keyframes finale-drop{to{opacity:1;transform:translateY(0)scale(1)rotate(0)}}@keyframes finale-bob{0%,to{translate:0}50%{translate:0 -.06em}}@keyframes finale-shine{0%{background-position:0%}to{background-position:300%}}.finale-sub{color:var(--ink);text-shadow:0 2px 16px #020309e6;opacity:0;margin:14px 0 0;font-size:clamp(18px,2.6vw,26px);animation:1.2s 2.4s forwards finale-fade}.finale-card{background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:auto;opacity:0;border-radius:24px;flex-direction:column;align-items:center;gap:16px;padding:18px 22px;animation:1s cubic-bezier(.2,1.2,.4,1) 3.4s forwards finale-rise;display:flex;transform:translateY(24px)}.finale-stats{flex-wrap:wrap;justify-content:center;gap:clamp(14px,4vw,40px);display:flex}.finale-stat{flex-direction:column;align-items:center;display:flex}.finale-stat .v{font-variant-numeric:tabular-nums;font-size:clamp(22px,3.4vw,32px);font-weight:700}.finale-stat .l{color:var(--ink-dim);font-size:13px}.finale-stat.gold .v{color:var(--gold)}.finale-stat.pink .v{color:var(--pink)}.finale-stat.cyan .v{color:var(--cyan)}.finale-buttons{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.finale-buttons .primary,.finale-buttons .secondary{margin-top:0}@keyframes finale-fade{to{opacity:1}}@keyframes finale-rise{to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.finale-letter{animation:10ms forwards finale-drop}}.menu-foot{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.finale-btn{color:var(--gold);border-color:#ffd66b73}.overlay{pointer-events:auto;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);padding:max(24px, env(safe-area-inset-top)) 16px max(24px, env(safe-area-inset-bottom));opacity:0;background:radial-gradient(at 50% 30%,#141e468c,#020309e0);flex-direction:column;align-items:center;transition:opacity .25s;display:flex;position:absolute;inset:0;overflow-y:auto}.overlay.show{opacity:1}.overlay[hidden]{display:none}.logo{letter-spacing:-.02em;background:linear-gradient(120deg,#9ffcff,#6dffa3 45%,#ffd66b);color:#0000;-webkit-background-clip:text;background-clip:text;margin-top:8vh;font-size:clamp(48px,12vw,92px);font-weight:700}.primary{color:#04121a;background:linear-gradient(120deg,#6dffa3,#9ffcff);border:none;border-radius:999px;margin-top:36px;padding:14px 40px;font-size:19px;font-weight:700;box-shadow:0 0 30px #6dffa359}.primary:hover{filter:brightness(1.08)}.secondary{border:1px solid var(--line);background:var(--glass);border-radius:999px;margin-top:12px;padding:10px 26px;font-size:15px}.menu-head{justify-content:space-between;align-items:center;width:min(760px,100%);margin-bottom:10px;display:flex}.menu-head h1{margin:0;font-size:28px}.menu-head .total{color:var(--gold);font-weight:700}.world{background:var(--glass);border:1px solid var(--line);border-radius:18px;width:min(760px,100%);margin-top:16px;padding:14px 16px 16px}.world h2{justify-content:space-between;gap:12px;margin:0 0 10px;font-size:17px;display:flex}.world h2 .need{color:var(--ink-dim);font-size:14px;font-weight:400}.world.locked{opacity:.5}.levels{grid-template-columns:repeat(auto-fill,minmax(78px,1fr));gap:8px;display:grid}.level-btn{aspect-ratio:1;border:1px solid var(--line);background:#1e2c508c;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:4px;display:flex}.level-btn .num{font-size:22px;font-weight:700}.level-btn .stars{letter-spacing:1px;font-size:12px}.level-btn .badges{height:12px;color:var(--gold);font-size:10px}.level-btn:disabled{cursor:default;opacity:.35}.level-btn:not(:disabled):hover{background:#283c6ea6;border-color:#9ffcff80}@media (width<=560px){.hud-title{max-width:calc(100% - 150px)}.hud-title .level-num{font-size:52px}.gauge{bottom:calc(max(14px, env(safe-area-inset-bottom)) + 52px);border-radius:50%;padding:6px}.gauge-dial{width:84px;height:84px}.gauge-rows{display:none}.hud-title .hint{font-size:13px}.hud-bottom{gap:10px;padding:8px 14px;font-size:13px}.hud-bottom .label,.hud-hint-key{display:none}.icon-btn{width:38px;height:38px}}@media (height<=500px){.hud-title .level-num{font-size:40px}.hud-title .hint{max-width:46vw;margin-top:2px;font-size:12px}.hud-buttons{gap:6px}.icon-btn{width:36px;height:36px}.icon-btn svg{width:18px;height:18px}.hud-bottom{gap:10px;padding:6px 14px;font-size:12px}.hud-hint-key{display:none}.gauge{bottom:max(10px, env(safe-area-inset-bottom));border-radius:50%;padding:5px}.gauge-dial{width:72px;height:72px}.gauge-rows{display:none}.banner{top:10%}.banner .title{font-size:min(7vw,12vh)}.banner .stars{font-size:min(6vw,10vh)}.logo{margin-top:4vh;font-size:min(11vw,22vh)}.primary.play{margin-top:4vh;padding:14px 64px;font-size:26px}.legal-links{padding-top:12px}.finale{padding-top:16px}.finale-title{font-size:min(12vw,20vh)}}
