@font-face{font-family:"Baloo 2 Local";font-style:normal;font-display:swap;font-weight:400 800;src:url(../fonts/baloo-2-latin-wght-normal.woff2) format("woff2")}@font-face{font-family:Nunito Local;font-style:normal;font-display:swap;font-weight:200 1000;src:url(../fonts/nunito-latin-wght-normal.woff2) format("woff2")}:root{--navy: #041e42;--navy-2: #0a2d5e;--gold: #fdca00;--gold-edge: #d4a900;--gold-soft: #fff2c2;--red: #ba0c2f;--blue: #1f5aa8;--blue-light: #7ea6e0;--green: #1f9d57;--line: #e7ecf3;--line-strong: #dbe3ed;--muted: #40516c;--muted-2: #5a6d86;--display: "Baloo 2 Local", "Nunito Local", ui-sans-serif, system-ui, sans-serif;--body: "Nunito Local", ui-sans-serif, system-ui, sans-serif}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--navy);color:#fff;font-family:var(--body);overflow:hidden;overscroll-behavior:none;-webkit-text-size-adjust:100%;-webkit-touch-callout:none;user-select:none;-webkit-user-select:none}#app{position:fixed;inset:0;width:100%;height:100%;height:100dvh}#gl{display:block;width:100%;height:100%;touch-action:none;-webkit-tap-highlight-color:transparent;cursor:crosshair}#fx{position:absolute;inset:0;pointer-events:none}#spot{position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .3s}#spot.on{opacity:1}#hud{position:absolute;inset:0;pointer-events:none;padding:max(12px,env(safe-area-inset-top)) 16px max(14px,env(safe-area-inset-bottom));display:flex;flex-direction:column}.hud-top{display:flex;justify-content:space-between;align-items:center;gap:12px}.pill{display:inline-flex;align-items:center;gap:8px;background:#fff;color:var(--navy);border-radius:999px;padding:8px 15px;font-family:var(--display);font-weight:800;text-transform:uppercase;letter-spacing:.03em;font-size:15px;box-shadow:0 3px 0 var(--line-strong),0 8px 24px #00000040}.hud-right{display:flex;align-items:center;gap:10px}.lives{display:flex;gap:6px;margin-right:2px}.life{width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:inset -3px -3px #041e422e,0 2px #0000004d;transition:transform .25s,opacity .25s}.life.lost{opacity:.22;transform:scale(.8)}.icon-btn{pointer-events:auto;appearance:none;border:0;cursor:pointer;background:#ffffff24;color:#fff;font-family:var(--display);font-weight:800;font-size:12px;letter-spacing:.06em;border-radius:999px;padding:7px 11px;min-width:34px}.icon-btn.muted{opacity:.55}.stats{display:flex;justify-content:center;gap:36px;margin-top:14px}.stat{text-align:center;min-width:64px}.stat-val{font-family:var(--display);font-weight:800;font-size:30px;line-height:1;color:var(--gold);text-shadow:0 2px 0 rgba(0,0,0,.3)}.stat-val.bump{animation:bump .32s ease-out}.stat-lbl{margin-top:4px;font-family:var(--body);font-weight:800;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#ffffffd1}.banner{position:absolute;left:16px;right:16px;top:30%;transform:translateY(-50%);text-align:center;opacity:0;pointer-events:none;transition:opacity .25s}.banner.show{animation:pop .3s cubic-bezier(.2,1.5,.4,1) forwards}.banner-main{font-family:var(--display);font-weight:800;font-size:46px;line-height:1;text-transform:uppercase;color:#fff;text-shadow:0 3px 0 rgba(4,30,66,.6),0 12px 32px rgba(0,0,0,.4)}.banner.perfect .banner-main,.banner.milestone .banner-main{color:var(--gold)}.banner.bad .banner-main{color:#ff5d7a}.banner.soft .banner-main{color:var(--blue-light);font-size:28px}.banner-sub{margin-top:8px;font-family:var(--body);font-weight:800;font-size:15px;color:#fff;text-shadow:0 2px 0 rgba(4,30,66,.7)}.hint{position:absolute;left:50%;bottom:max(22px,env(safe-area-inset-bottom));transform:translate(-50%);display:none;align-items:center;gap:10px;background:#fff;color:var(--navy);border-radius:999px;padding:10px 18px 10px 12px;font-family:var(--display);font-weight:800;font-size:16px;text-transform:uppercase;letter-spacing:.02em;box-shadow:0 4px 0 var(--line-strong),0 12px 30px #00000059;white-space:nowrap}.hint.show{display:flex;animation:rise .3s ease-out}.arr{display:inline-block;width:28px;height:28px;color:var(--blue);flex:none}.arr svg{width:100%;height:100%;display:block}.arr-up svg{transform:rotate(180deg)}.arr-right svg{transform:rotate(-90deg)}.arr-left svg{transform:rotate(90deg)}.mini-ball{--s: 44px;position:relative;display:inline-block;flex:none;width:var(--s);height:var(--s);border-radius:50%;overflow:hidden;background:#fffdf7;box-shadow:0 0 0 3px var(--c),0 3px 0 4px #041e421f}.mini-ball:before{content:"";position:absolute;left:-50%;top:-50%;width:200%;height:200%;background:repeating-linear-gradient(to bottom,var(--c) 0 calc(var(--s) * .3),#fffdf7 calc(var(--s) * .3) calc(var(--s) * .6));animation:roll-v .9s linear infinite}.mini-ball.dir-up:before{animation-direction:reverse}.mini-ball.dir-right:before,.mini-ball.dir-left:before{background:repeating-linear-gradient(to right,var(--c) 0 calc(var(--s) * .3),#fffdf7 calc(var(--s) * .3) calc(var(--s) * .6));animation-name:roll-h}.mini-ball.dir-left:before{animation-direction:reverse}.mini-ball:after{content:"";position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle at 32% 28%,#ffffffbf,#fff0 42%),radial-gradient(circle at 70% 78%,#041e4247,#041e4200 55%)}@keyframes roll-v{0%{transform:translateY(0)}to{transform:translateY(calc(var(--s) * .6))}}@keyframes roll-h{0%{transform:translate(0)}to{transform:translate(calc(var(--s) * .6))}}.teach{position:absolute;left:50%;bottom:max(18px,env(safe-area-inset-bottom));transform:translate(-50%);width:min(420px,calc(100% - 32px));background:#fff;color:var(--navy);border-radius:24px;padding:12px 16px 10px;box-shadow:0 5px 0 var(--line-strong),0 16px 40px #0006;border:3px solid transparent;pointer-events:none;animation:rise .3s ease-out}.teach.hidden{display:none}.teach.swipe{border-color:var(--c);top:calc(max(12px,env(safe-area-inset-top)) + 104px);bottom:auto}.teach.nudge{animation:shake .4s ease-in-out}.teach-kicker{font-weight:800;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted-2)}.teach-row{display:flex;align-items:center;gap:14px;margin-top:6px}.teach-ball{display:inline-flex}.teach-title{font-family:var(--display);font-weight:800;font-size:22px;line-height:1.05;color:var(--navy)}.teach-text{font-weight:700;font-size:15px;line-height:1.3;color:var(--muted);margin-top:2px}.teach-text b{color:var(--navy)}.teach .link-btn{pointer-events:auto;margin-top:4px}.link-btn{appearance:none;border:0;background:none;cursor:pointer;pointer-events:auto;font-family:var(--body);font-weight:800;font-size:13px;color:var(--muted-2);text-decoration:underline;text-underline-offset:3px;padding:6px 8px}.link-btn.dark{display:block;margin:10px auto 0;color:var(--blue)}.link-btn.hidden{display:none}.debug{position:absolute;left:12px;bottom:12px;padding:6px 9px;border-radius:10px;background:#0000008c;color:#cfe0ff;font:700 11px/1.35 ui-monospace,monospace;white-space:pre}.debug.hidden{display:none}#flash{position:absolute;inset:0;pointer-events:none;opacity:0;background:var(--red);transition:opacity .4s}#flash.gold{background:var(--gold)}#flash.on{opacity:.18;transition:opacity .04s}.overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:16px;background:#041e429e;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);overflow-y:auto}.overlay.hidden{display:none}.card{pointer-events:auto;width:100%;max-width:420px;margin:auto;background:#fff;color:var(--navy);border-radius:28px;padding:22px 20px 18px;box-shadow:0 6px 0 var(--line-strong),0 26px 60px #0006;text-align:center}.card.small{max-width:340px}.card-kicker{font-family:var(--body);font-weight:800;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-2)}.card h1{font-family:var(--display);font-weight:800;font-size:44px;line-height:1;margin:6px 0 8px}.card h1.big{font-size:76px;color:var(--gold);text-shadow:0 4px 0 var(--gold-edge);margin-bottom:0}.lead{font-family:var(--body);font-weight:700;font-size:15px;color:var(--muted);margin:0 0 14px;line-height:1.4}.lead b{color:var(--navy)}.legend{display:grid;grid-template-columns:1fr 1fr;gap:8px}.legend-item{display:flex;flex-direction:column;align-items:center;gap:3px;background:#f3f6fb;border-radius:18px;padding:12px 8px 10px;border-bottom:4px solid var(--c)}.legend-item .mini-ball{margin-bottom:4px}.legend-item b{font-family:var(--display);font-weight:800;font-size:14px;text-transform:uppercase}.legend-item .txt{font-family:var(--body);font-weight:700;font-size:12px;color:var(--muted-2);line-height:1.2}.swipe-tag{display:inline-flex;align-items:center;gap:4px;margin-top:3px;font-family:var(--display);font-weight:800;font-size:12px;text-transform:uppercase;color:var(--navy)}.swipe-tag .arr{width:18px;height:18px;color:var(--navy)}.btn-gold{pointer-events:auto;display:block;width:100%;margin-top:16px;cursor:pointer;appearance:none;border:0;border-bottom:6px solid var(--gold-edge);background:var(--gold);color:var(--navy);border-radius:20px;padding:15px;font-family:var(--display);font-weight:800;font-size:22px;letter-spacing:.05em;text-transform:uppercase;transition:transform .08s,border-bottom-width .08s}.btn-gold:active{transform:translateY(4px);border-bottom-width:2px}.tiny{margin-top:10px;font-family:var(--body);font-weight:700;font-size:12px;color:var(--muted-2);line-height:1.35}.tip{margin-top:10px;font-weight:800;font-size:13px;color:var(--muted)}.row{display:flex;justify-content:center;gap:30px;margin:4px 0}.mini-val{font-family:var(--display);font-weight:800;font-size:26px;color:var(--navy)}.mini-lbl{font-family:var(--body);font-weight:800;font-size:11px;letter-spacing:.1em;color:var(--muted-2)}.stars{display:flex;justify-content:center;gap:6px;margin:8px 0 2px}.star{width:42px;height:42px;opacity:0;animation:star-in .45s cubic-bezier(.2,1.6,.4,1) forwards}.star svg{width:100%;height:100%;display:block;fill:#dbe3ed}.star.on svg{fill:var(--gold);filter:drop-shadow(0 3px 0 var(--gold-edge))}@keyframes pop{0%{opacity:0;transform:translateY(-50%) scale(.55)}to{opacity:1;transform:translateY(-50%) scale(1)}}@keyframes bump{0%{transform:scale(1)}40%{transform:scale(1.35)}to{transform:scale(1)}}@keyframes rise{0%{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%)}}@keyframes shake{0%,to{transform:translate(-50%)}20%{transform:translate(calc(-50% - 10px))}40%{transform:translate(calc(-50% + 9px))}60%{transform:translate(calc(-50% - 6px))}80%{transform:translate(calc(-50% + 4px))}}@keyframes star-in{0%{opacity:0;transform:scale(.3) rotate(-30deg)}to{opacity:1;transform:scale(1) rotate(0)}}@media(max-width:430px){.banner-main{font-size:38px}.stat-val{font-size:26px}.stats{gap:26px}.card h1{font-size:38px}.card h1.big{font-size:64px}.card{padding:18px 16px 14px}.legend-item{padding:10px 6px 8px}}@media(max-height:700px){.lead{margin-bottom:10px}.legend-item .mini-ball{--s: 36px !important}}@media(orientation:landscape){.teach,.teach.swipe{left:16px;right:auto;top:auto;bottom:max(16px,env(safe-area-inset-bottom));transform:none;width:min(360px,36vw);animation-name:rise-l}.teach.nudge{animation:shake-l .4s ease-in-out}}@keyframes rise-l{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes shake-l{0%,to{transform:none}20%{transform:translate(-10px)}40%{transform:translate(9px)}60%{transform:translate(-6px)}80%{transform:translate(4px)}}@media(prefers-reduced-motion:reduce){.mini-ball:before{animation-duration:2.4s}}
