@font-face{font-family:Bangers;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/bangers-vietnamese-400-normal-BbvBhFjQ.woff2)format("woff2"),url(/assets/bangers-vietnamese-400-normal-Ll9rymNv.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:Bangers;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/bangers-latin-ext-400-normal-7BLmjjiv.woff2)format("woff2"),url(/assets/bangers-latin-ext-400-normal-CzVt_Cgx.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:Bangers;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/bangers-latin-400-normal-DeHY8Ncq.woff2)format("woff2"),url(/assets/bangers-latin-400-normal-BAEm-Pv0.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: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}:root{--ink:#15131a;--paper:#f6edd8;--acid:#9bf03a;--pink:#ff3d7f;--cyan:#35d6ff;--mustard:#ffcb3c}*{box-sizing:border-box}html,body{background:var(--ink);height:100%;color:var(--paper);touch-action:none;overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;margin:0;font-family:Space Grotesk,system-ui,sans-serif;overflow:hidden}#app{position:fixed;inset:0}#stage,#ui{position:absolute;inset:0}#stage canvas{touch-action:none;display:block}#ui{pointer-events:none}#ui .interactive{pointer-events:auto}.ui-root{--pad:14px;--shadow:6px 6px 0 var(--ink);color:var(--ink);font-family:Space Grotesk,system-ui,sans-serif}.ui-root .hidden{display:none!important}.sr,.logo:not(.has-img) .logo-img{display:none}.logo.has-img .logo-text{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.screen{padding:max(var(--pad), env(safe-area-inset-top)) max(var(--pad), env(safe-area-inset-right)) max(var(--pad), env(safe-area-inset-bottom)) max(var(--pad), env(safe-area-inset-left));justify-content:center;align-items:center;display:none;position:absolute;inset:0}.screen.on{display:flex}.screen-title.on,.screen-level.on,.screen-final.on{background:radial-gradient(#15131a26,#15131ab3)}.panel{text-align:center;background-color:var(--paper);border:4px solid var(--ink);width:min(100%,520px);max-height:100%;box-shadow:var(--shadow);background-image:radial-gradient(#15131a24 1.4px,#0000 1.6px);background-size:9px 9px;border-radius:14px;padding:clamp(18px,5vmin,34px);animation:.32s cubic-bezier(.2,1.4,.4,1) both pop-in;position:relative;overflow:auto}.panel p{margin:0}.logo{letter-spacing:.04em;color:var(--pink);-webkit-text-stroke:3px var(--ink);paint-order:stroke fill;margin:0 0 4px;font-family:Bangers,system-ui,sans-serif;font-size:clamp(3.4rem,17vmin,6.5rem);line-height:.95}.logo-img{object-fit:contain;pointer-events:none;width:100%;height:auto;max-height:34vh;display:block}.pitch{font-size:clamp(1rem,3.6vmin,1.25rem);font-weight:700;line-height:1.3;margin:10px 0 22px!important}.kicker{letter-spacing:.06em;color:var(--pink);-webkit-text-stroke:2px var(--ink);paint-order:stroke fill;font-family:Bangers,system-ui,sans-serif;font-size:clamp(1.7rem,6.5vmin,2.4rem)}.rating{--star-max:clamp(40px, 11vmin, 58px);margin-top:12px;container-type:inline-size}.rating-label{letter-spacing:.3em;font-size:.8rem;font-weight:700}.stars{--star:min(var(--star-max), calc(100cqw / (var(--n,5) * 1.14)));justify-content:center;gap:calc(var(--star) * .12);flex-wrap:wrap;margin:6px 0 2px;display:flex}.stars-many{--star-max:36px;gap:calc(var(--star) * .08)}.stars-many .star{animation-delay:calc(.15s + var(--i,0) * 40ms)}.star{width:var(--star);height:var(--star);filter:drop-shadow(2px 2px 0 var(--ink));animation:star-pop .36s calc(.15s + var(--i,0) * 80ms) cubic-bezier(.2, 1.8, .4, 1) both;position:relative}.star svg{width:var(--star);height:var(--star);display:block;overflow:visible}.star path{stroke:var(--ink);stroke-width:1.7px;stroke-linejoin:round}.star-back path{fill:var(--paper)}.star-gold path{fill:#ffc21a}.star-fill{width:0;position:absolute;inset:0 auto 0 0;overflow:hidden}.star.full .star-fill{width:100%}.star.part .star-fill{width:var(--fill,50%)}.rating-num{letter-spacing:.04em;color:var(--ink);background:linear-gradient(transparent 58%, var(--acid) 58% 92%, transparent 92%);padding:0 10px;font-family:Bangers,system-ui,sans-serif;font-size:clamp(2.2rem,9vmin,3.2rem);line-height:1;display:inline-block}.share-thumb{aspect-ratio:1;border:3px solid var(--ink);width:min(170px,26vh);height:auto;box-shadow:4px 4px 0 var(--ink);background:var(--pink);opacity:0;border-radius:10px;margin:0 auto 16px;transition:opacity .25s;display:block;transform:rotate(-2deg)}.share-thumb.ready{opacity:1}@keyframes star-pop{0%{transform:scale(0)rotate(-40deg)}to{transform:none}}.ask{font-size:1.1rem;font-weight:700;margin:18px 0 16px!important}.best{letter-spacing:.08em;font-family:Bangers,system-ui,sans-serif;font-size:1.5rem;margin-top:16px!important}.best:empty{display:none}.new-best .best{color:var(--pink);-webkit-text-stroke:1.5px var(--ink);paint-order:stroke fill;animation:.6s ease-in-out infinite alternate wiggle}.screen-final .best{margin:12px 0 18px!important}.btn-row{flex-wrap:wrap;justify-content:center;gap:14px;display:flex}.btn{letter-spacing:.08em;min-width:150px;min-height:56px;color:var(--ink);background:var(--paper);border:4px solid var(--ink);box-shadow:5px 5px 0 var(--ink);cursor:pointer;border-radius:12px;padding:10px 26px;font-family:Bangers,system-ui,sans-serif;font-size:1.7rem;transition:transform 60ms,box-shadow 60ms}.btn-go{background:var(--acid)}.btn-alt{background:var(--mustard)}.btn:hover{box-shadow:6px 6px 0 var(--ink);transform:translate(-1px,-1px)}.btn:active{box-shadow:1px 1px 0 var(--ink);transform:translate(4px,4px)}.btn:focus-visible,.mute:focus-visible{outline:4px solid var(--cyan);outline-offset:3px}.screen-title .btn{min-width:170px;min-height:60px;font-size:1.9rem}.screen-title .btn-go{min-width:200px}.screen-title .panel{width:min(100%,560px)}.screen-title .logo-img{max-height:24vh}.screen-title .pitch{margin:6px 0 14px!important}.btn:disabled{cursor:default;color:#15131a8c;box-shadow:3px 3px 0 var(--ink);background:#d9cfb8;transform:none}.btn-encore{position:relative}.btn-lock{vertical-align:-.08em;width:.9em;height:.9em;margin-left:.3em;display:inline-block}.btn-lock svg,.lv-mark svg{fill:none;stroke:currentColor;stroke-width:3px;stroke-linecap:round;stroke-linejoin:round;width:100%;height:100%;display:block}.btn-lock rect,.lv-card.locked .lv-mark rect{fill:currentColor}.setlist{text-align:left;flex-direction:column;gap:12px;margin:0 0 18px;display:flex}.set-head{letter-spacing:.1em;justify-content:space-between;align-items:baseline;gap:10px;margin:0 2px 5px;font-family:Bangers,system-ui,sans-serif;display:flex}.set-name{font-size:1.15rem}.set-2 .set-name{color:var(--pink);-webkit-text-stroke:1px var(--ink);paint-order:stroke fill}.set-best{font-variant-numeric:tabular-nums;font-size:1rem}.set-cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.lv-card{border:3px solid var(--ink);min-height:74px;box-shadow:3px 3px 0 var(--ink);background:#fff8e8;border-radius:10px;flex-direction:column;gap:2px;padding:6px 9px 8px;display:flex;position:relative}.lv-num{color:var(--ink);font-family:Bangers,system-ui,sans-serif;font-size:1.7rem;line-height:1}.lv-name{text-wrap:balance;font-size:.82rem;font-weight:700;line-height:1.15}.lv-mark{width:22px;height:22px;position:absolute;top:6px;right:6px}.lv-mark:empty{display:none}.lv-card.cleared{background:var(--acid)}.lv-card.cleared .lv-mark{color:var(--paper);background:var(--ink);border-radius:50%;padding:2px}.lv-card.locked{color:#15131a80;box-shadow:none;background:repeating-linear-gradient(-45deg,#e4d9c0 0 8px,#d9cdb1 8px 16px)}.lv-card.locked .lv-num{color:#15131a73}.lv-card.locked .lv-mark{color:var(--ink)}.snap-line{letter-spacing:.08em;color:var(--paper);background:var(--ink);border-radius:8px;padding:2px 12px 0;font-family:Bangers,system-ui,sans-serif;font-size:1.4rem;animation:.4s cubic-bezier(.2,1.6,.4,1) .2s both pop-in;display:inline-block;transform:rotate(-2deg);margin:6px 0 8px!important}.snap-line:empty{display:none}.snap-line+.rating{margin:8px auto 0;display:block}.ask-encore{letter-spacing:.08em;color:var(--cyan);-webkit-text-stroke:1.5px var(--ink);paint-order:stroke fill;font-family:Bangers,system-ui,sans-serif;font-size:2rem!important}.link-btn{letter-spacing:.1em;color:var(--ink);text-underline-offset:4px;cursor:pointer;background:0 0;border:0;margin-top:16px;padding:6px 10px;font-family:Bangers,system-ui,sans-serif;font-size:1.05rem;text-decoration:underline;text-decoration-thickness:2px}.link-btn:focus-visible{outline:4px solid var(--cyan);outline-offset:2px}.mute{top:max(var(--pad), env(safe-area-inset-top));right:max(var(--pad), env(safe-area-inset-right));background:var(--paper);border:4px solid var(--ink);width:48px;height:48px;box-shadow:3px 3px 0 var(--ink);cursor:pointer;border-radius:50%;padding:8px;position:absolute}.mute svg{width:100%;height:100%;fill:var(--ink);stroke:var(--ink);stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round}.mute .wave{fill:none}.mute:active{box-shadow:1px 1px 0 var(--ink);transform:translate(2px,2px)}.hud{padding:max(var(--pad), env(safe-area-inset-top)) max(var(--pad), env(safe-area-inset-right)) max(var(--pad), env(safe-area-inset-bottom)) max(var(--pad), env(safe-area-inset-left));display:none;position:absolute;inset:0}.hud.on{display:block}.hud-left{top:max(var(--pad), env(safe-area-inset-top));left:max(var(--pad), env(safe-area-inset-left));flex-direction:column;align-items:flex-start;gap:8px;display:flex;position:absolute}.chip{letter-spacing:.08em;color:var(--ink);background:var(--paper);border:3px solid var(--ink);box-shadow:3px 3px 0 var(--ink);border-radius:10px;padding:2px 12px 0;font-family:Bangers,system-ui,sans-serif}.chip-level{background:var(--mustard);font-size:1rem}.chip-timer{font-variant-numeric:tabular-nums;text-align:center;min-width:7.2ch;font-size:1.7rem}.bar-track{background:var(--paper);border:3px solid var(--ink);border-radius:8px;width:100%;height:16px;position:relative;overflow:hidden}.bar-thin{border-width:2px;height:10px}.bar-fill{background:var(--acid);transform-origin:0;position:absolute;inset:0}.battery{background:var(--paper);border:3px solid var(--ink);width:150px;box-shadow:3px 3px 0 var(--ink);border-radius:10px;padding:4px 8px 8px}.battery-label{letter-spacing:.12em;margin-bottom:3px;font-family:Bangers,system-ui,sans-serif;font-size:.85rem;display:block}.battery .bar-track{height:14px}.battery.low .bar-fill{background:var(--pink)}.battery.low,.battery.flash{animation:.5s steps(2,jump-none) infinite blink}.combo{top:max(var(--pad), env(safe-area-inset-top));background:var(--paper);border:3px solid var(--ink);width:150px;box-shadow:3px 3px 0 var(--ink);border-radius:10px;flex-direction:column;align-items:center;gap:6px;margin-left:-75px;padding:8px 10px;display:flex;position:absolute;left:50%}.pips{gap:8px;display:flex}.pip{background:var(--paper);border:3px solid var(--ink);border-radius:50%;width:22px;height:22px;transition:transform .12s}.pip.full{background:var(--pink);transform:scale(1.18)}.combo .bar-track{width:100%}.combo .bar-fill{background:var(--cyan)}.quota{flex-direction:column;align-items:center;gap:3px;width:100%;display:flex}.quota-label{letter-spacing:.12em;font-family:Bangers,system-ui,sans-serif;font-size:.85rem}.quota-pips{gap:3px;width:100%;display:flex}.qpip{background:var(--paper);border:2px solid var(--ink);border-radius:4px;flex:1 1 0;max-width:16px;height:10px;transition:background .12s}.qpip.full{background:var(--acid)}.quota-head{white-space:nowrap;align-items:center;gap:5px;display:flex}.sheep-tag{letter-spacing:.04em;align-items:center;gap:1px;font-family:Bangers,system-ui,sans-serif;font-size:.85rem;display:inline-flex}.sheep-tag svg{width:21px;height:16px}.sheep-tag .wool{fill:#fff;stroke:var(--ink);stroke-width:2px}.sheep-tag .head{fill:var(--ink)}.sheep-tag .legs{fill:none;stroke:var(--ink);stroke-width:2.6px;stroke-linecap:round}.quota.stolen .quota-label{color:var(--pink);animation:.18s linear infinite shake}.loops{letter-spacing:.12em;background:var(--mustard);border:2px solid var(--ink);border-radius:8px;padding:1px 10px 0;font-family:Bangers,system-ui,sans-serif;font-size:1rem}.loops.pop{animation:.3s cubic-bezier(.2,1.8,.4,1) both pop-in}.dave-burst{top:calc(max(var(--pad), env(safe-area-inset-top)) + 64px);letter-spacing:.06em;color:var(--mustard);-webkit-text-stroke:2px var(--ink);text-shadow:3px 3px 0 var(--ink);opacity:0;pointer-events:none;font-family:Bangers,system-ui,sans-serif;font-size:2.6rem;position:absolute;left:50%;transform:translate(-50%)}.dave-burst.show{animation:1.3s ease-out forwards dave-burst}@keyframes dave-burst{0%{opacity:0;transform:translate(-50%)scale(.4)rotate(-8deg)}15%{opacity:1;transform:translate(-50%)scale(1.25)rotate(-4deg)}30%{transform:translate(-50%)scale(1)rotate(-4deg)}80%{opacity:1}to{opacity:0;transform:translate(-50%)scale(1.05)rotate(-4deg)}}.donut-order{top:max(var(--pad), env(safe-area-inset-top));background:var(--paper);border:3px solid var(--ink);box-shadow:3px 3px 0 var(--ink);border-radius:10px;align-items:center;gap:8px;padding:6px 12px 3px;font-family:Bangers,system-ui,sans-serif;display:none;position:absolute;left:50%;transform:translate(-50%)}.donut-order.on{display:flex}.order-arrow{opacity:.6;font-size:1.1rem}.order-num{background:var(--paper);border:3px solid var(--ink);border-radius:50%;place-items:center;width:28px;height:28px;padding-top:2px;font-size:1.3rem;line-height:1;transition:transform .12s;display:grid}.order-num.current{background:var(--mustard);transform:scale(1.25)}.order-num.done{background:var(--acid);opacity:.55}.clips{top:calc(max(var(--pad), env(safe-area-inset-top)) + 62px);right:max(var(--pad), env(safe-area-inset-right));flex-wrap:wrap;justify-content:flex-end;gap:4px;max-width:160px;display:flex;position:absolute}.clip-icon{background:radial-gradient(circle, transparent 0 24%, var(--pink) 26% 100%);border:3px solid var(--ink);border-radius:50%;width:22px;height:22px;animation:.25s cubic-bezier(.2,1.6,.4,1) both pop-in}.hint{letter-spacing:.08em;white-space:nowrap;max-width:92vw;color:var(--ink);background:var(--mustard);border:4px solid var(--ink);box-shadow:var(--shadow);opacity:0;transform-origin:0;border-radius:12px;padding:3px 18px 0;font-family:Bangers,system-ui,sans-serif;font-size:clamp(1.3rem,4.8vmin,2.25rem);transition:opacity .15s,transform .15s;transform:scale(.85)}.hint.show{opacity:1;transform:scale(1)}.hint.soft{background:var(--paper)}.hint.alert{background:var(--pink);color:var(--paper);-webkit-text-stroke:2px var(--ink);paint-order:stroke fill;animation:.18s linear infinite shake}.pit-card{text-align:center;pointer-events:none;visibility:hidden;flex-direction:column;align-items:center;gap:6px;max-width:94vw;display:flex;position:absolute;top:clamp(72px,20%,220px);left:50%;transform:translate(-50%)translate(-120vw)rotate(-4deg)}.pit-card.on{visibility:visible;transition:transform .5s cubic-bezier(.2,1.25,.4,1);transform:translate(-50%)rotate(-3deg)}.pit-card.on.out{transition:transform .45s cubic-bezier(.55,0,.9,.4);transform:translate(-50%)translate(120vw)rotate(-2deg)}.pit-kicker{letter-spacing:.14em;color:var(--ink);background:var(--mustard);border:3px solid var(--ink);box-shadow:3px 3px 0 var(--ink);border-radius:10px;padding:2px 16px 0;font-family:Bangers,system-ui,sans-serif;font-size:clamp(1.1rem,4vw,1.8rem)}.pit-title{letter-spacing:.04em;text-wrap:balance;color:var(--paper);-webkit-text-stroke:.1em var(--ink);paint-order:stroke fill;text-shadow:.07em .07em 0 var(--pink);font-family:Bangers,system-ui,sans-serif;font-size:clamp(2.2rem,8vw,5.5rem);line-height:.95}.briefing{left:max(var(--pad), env(safe-area-inset-left));width:min(380px, calc(100vw - 2 * var(--pad)));pointer-events:none;display:none;position:absolute;bottom:clamp(150px,26vh,260px)}.briefing.on{display:block}.bubble{color:var(--ink);background:var(--paper);border:4px solid var(--ink);box-shadow:var(--shadow);transform-origin:14% 100%;border-radius:22px;padding:14px 16px 10px;position:relative}.bubble.pop{animation:.28s cubic-bezier(.2,1.6,.4,1) both pop-in}.bubble:before,.bubble:after{content:"";border-style:solid;border-color:var(--ink) transparent transparent;position:absolute;left:34px}.bubble:before{border-width:28px 6px 0 26px;bottom:-30px}.bubble:after{border-width:20px 2px 0 16px;border-color:var(--paper) transparent transparent;bottom:-20px;left:38px}.bubble-text{margin:0;font-size:clamp(1rem,4.2vw,1.25rem);font-weight:700;line-height:1.25}.bubble-foot{letter-spacing:.1em;justify-content:space-between;align-items:center;margin-top:8px;font-family:Bangers,system-ui,sans-serif;display:flex}.bubble-step{opacity:.6;font-size:1rem}.bubble-tap{color:var(--ink);background:var(--mustard);border:3px solid var(--ink);border-radius:8px;margin-left:auto;padding:1px 10px 0;font-size:1.2rem;animation:.9s ease-in-out infinite alternate pulse}@keyframes pulse{0%{transform:scale(1)}to{transform:scale(1.12)}}@keyframes dave-burst-right{0%{opacity:0;transform:scale(.4)rotate(-8deg)}15%{opacity:1;transform:scale(1.25)rotate(-4deg)}30%{transform:scale(1)rotate(-4deg)}80%{opacity:1}to{opacity:0;transform:scale(1.05)rotate(-4deg)}}@keyframes pop-in{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}@keyframes blink{50%{opacity:.45}}@keyframes wiggle{0%{transform:rotate(-3deg)scale(1)}to{transform:rotate(3deg)scale(1.1)}}@keyframes shake{25%{margin-left:-3px}75%{margin-left:3px}}@media (prefers-reduced-motion:reduce){.panel,.clip-icon,.hint,.pit-card,.bubble,.bubble-tap,.battery,.snap-line,.loops,.quota.stolen .quota-label,.new-best .best,.star{transition:none!important;animation:none!important}}@media (max-width:600px){.combo{top:calc(max(var(--pad), env(safe-area-inset-top)) + 58px);left:auto;right:max(var(--pad), env(safe-area-inset-right));margin-left:0}.dave-burst{top:calc(max(var(--pad), env(safe-area-inset-top)) + 130px);left:auto;right:max(var(--pad), env(safe-area-inset-right));transform:none}.dave-burst.show{animation-name:dave-burst-right}.screen-title .btn{white-space:nowrap;flex:140px;min-width:0;padding:10px 12px;font-size:1.55rem}.lv-name{font-size:.74rem}.donut-order{left:140px;transform:none}}@media (max-height:460px){.logo{font-size:clamp(2.4rem,14vmin,4rem)}.pitch{margin:4px 0 12px!important}.rating{--star-max:34px}.stars-many{--star-max:24px}.share-thumb,.screen-title .pitch{display:none}.screen-title .logo-img{max-height:18vh}.setlist{gap:6px;margin-bottom:10px}.lv-card{min-height:0;padding:4px 8px 5px}.lv-num{font-size:1.3rem}.screen-title .btn{min-height:50px;font-size:1.6rem}}
