@font-face{font-family:Fredoka Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/fredoka-hebrew-wght-normal-DdnsCkLr.woff2)format("woff2-variations");unicode-range:U+307-308,U+590-5FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F}@font-face{font-family:Fredoka Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/fredoka-latin-ext-wght-normal-CYrqKuxd.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:Fredoka Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/fredoka-latin-wght-normal-DM6njrJ3.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:#10204a;--navy:#0c1a42d1;--coral:#ff4f6d;--blue:#3aa8ff;--gold:#ffc93c;--green:#46ff8a;--orange:#ff8a3d;--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);--font:"Fredoka Variable", "Fredoka", ui-rounded, "SF Pro Rounded", system-ui, sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{overscroll-behavior:none;color:#fff;height:100%;font-family:var(--font);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;background:#2c8a58;margin:0;overflow:hidden}#app{touch-action:none;position:fixed;inset:0;overflow:hidden}#gl{touch-action:none;width:100%;height:100%;display:block;position:absolute;inset:0}#ui{pointer-events:none;z-index:2;position:absolute;inset:0}#ui button,#ui .interactive{pointer-events:auto}#boot{z-index:20;background:radial-gradient(circle at 50% 35%,#d9f3ff 0%,#8fd3ff 55%,#3fb4ff 100%);flex-direction:column;justify-content:center;align-items:center;gap:22px;transition:opacity .4s;display:flex;position:absolute;inset:0}#boot.hide{opacity:0;pointer-events:none}.boot-logo{text-align:center;color:#fff;text-shadow:0 4px #1d5fd6,0 10px 24px #10204a59;letter-spacing:.5px;font-size:54px;font-weight:700;line-height:.95}.boot-bar{background:#ffffff73;border-radius:6px;width:180px;height:10px;overflow:hidden}.boot-fill{background:#fff;width:0;height:100%;transition:width .25s}.hud-top{top:calc(var(--safe-t) + 10px);left:calc(var(--safe-l) + 10px);right:calc(var(--safe-r) + 10px);justify-content:space-between;align-items:flex-start;gap:8px;display:flex;position:absolute}.score{background:var(--navy);border-radius:14px;min-width:150px;padding:6px 10px;font-size:17px;font-weight:650;line-height:1.35;box-shadow:0 4px #0000002e}.score .row{grid-template-columns:12px 1fr 26px 38px;align-items:center;gap:6px;display:grid}.score .srv{background:0 0;border-radius:50%;width:9px;height:9px}.score .row.serving .srv{background:#dcff3a;box-shadow:0 0 6px #dcff3a}.score .me .name{color:#ff8fa3}.score .cpu .name{color:#8fd0ff}.score .games{text-align:center;color:var(--gold)}.score .pts{text-align:center;background:#ffffff24;border-radius:7px}.score .sub{opacity:.8;text-align:center;margin-top:2px;font-size:12px;font-weight:500}.buttons{gap:6px;display:flex}.btn{appearance:none;background:var(--navy);color:#fff;font-family:var(--font);touch-action:manipulation;border:0;border-radius:12px;min-width:42px;height:42px;padding:0 10px;font-size:15px;font-weight:650;box-shadow:0 4px #0000002e}.btn.pressed{transform:translateY(2px);box-shadow:0 2px #0000002e}.meter{top:calc(var(--safe-t) + 104px);left:calc(var(--safe-l) + 10px);align-items:center;gap:8px;font-weight:700;display:flex;position:absolute}.pips{background:var(--navy);border-radius:10px;gap:5px;padding:6px 8px;display:flex}.pips i{background:#ffffff38;border-radius:50%;width:12px;height:12px;transition:background .15s,transform .15s}.pips i.on{background:var(--green);box-shadow:0 0 8px var(--green);transform:scale(1.15)}.superchip{opacity:0;color:#fff;letter-spacing:1px;text-shadow:0 2px #00000040;background:linear-gradient(90deg,#ff4a1c,#ffc93c);border-radius:10px;padding:5px 10px;font-size:14px;transition:opacity .2s}.superchip.on{opacity:1;animation:.6s ease-in-out infinite alternate superPulse}@keyframes superPulse{0%{filter:brightness();transform:scale(1)}to{filter:brightness(1.25);transform:scale(1.08)}}.heat{top:calc(var(--safe-t) + 4px);background:#ffffff40;border-radius:3px;width:34%;height:4px;position:absolute;left:50%;overflow:hidden;transform:translate(-50%)}.heat .fill{background:linear-gradient(90deg,#ffe14d,#ff4a1c);width:0;height:100%;transition:width .2s}.banner{text-align:center;letter-spacing:1px;color:#fff;text-shadow:0 4px #10204a8c,0 0 22px #10204a59;opacity:0;font-size:46px;font-weight:750;position:absolute;top:38%;left:0;right:0;transform:scale(.6)}.banner .small{margin-top:4px;font-size:20px;font-weight:600;display:block}.banner.show{animation:1.25s cubic-bezier(.2,1.4,.4,1) forwards bannerIn}.banner.good{color:#fff6c8;text-shadow:0 4px #c43b1c,0 0 24px #ff8c2899}.banner.bad{color:#dfe9ff;text-shadow:0 4px #23366e,0 0 18px #10204a80}@keyframes bannerIn{0%{opacity:0;transform:scale(.6)}14%{opacity:1;transform:scale(1.06)}24%{transform:scale(1)}78%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.96)translateY(-10px)}}.pops{position:absolute;inset:0}.pop{white-space:nowrap;text-shadow:0 3px #10204a99;font-size:26px;font-weight:750;animation:.85s ease-out forwards popUp;position:absolute;transform:translate(-50%,-50%)}.pop.perfect{color:var(--green);font-size:32px}.pop.good{color:#fff}.pop.early,.pop.late{color:var(--gold)}.pop.bad{color:#ff8fa3}.pop.super{color:#fff6c8;text-shadow:0 3px #8c1e008c;background:linear-gradient(90deg,#ff4a1c,#ffc93c);border-radius:14px;padding:2px 14px 4px;font-size:34px}.pop .sub{text-align:center;opacity:.9;font-size:13px;font-weight:600;display:block}@keyframes popUp{0%{opacity:0;transform:translate(-50%,-30%)scale(.5)}18%{opacity:1;transform:translate(-50%,-70%)scale(1.12)}70%{opacity:1;transform:translate(-50%,-110%)scale(1)}to{opacity:0;transform:translate(-50%,-140%)scale(.95)}}.aimlabel{letter-spacing:1px;background:var(--navy);border-radius:8px;padding:3px 8px;font-size:14px;font-weight:750;display:none;position:absolute;transform:translate(-50%,-150%)}.aimlabel.lob{color:#9be7ff}.aimlabel.drop{color:#ffd1f0}.hint{left:50%;bottom:calc(var(--safe-b) + 22px);text-align:center;background:var(--navy);opacity:0;border-radius:12px;max-width:88%;padding:8px 14px;font-size:15px;font-weight:600;transition:opacity .25s;position:absolute;transform:translate(-50%)}.hint.on{opacity:1}.debug{right:calc(var(--safe-r) + 10px);top:calc(var(--safe-t) + 60px);white-space:pre;background:#00000073;border-radius:6px;padding:4px 6px;font:11px/1.35 ui-monospace,Menlo,monospace;display:none;position:absolute}.overlay{pointer-events:auto;text-align:center;background:#0a1e5073;flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:24px;display:flex;position:absolute;inset:0}.overlay .title{text-shadow:0 4px #1d5fd6;font-size:44px;font-weight:750;line-height:1}.overlay .card{background:var(--navy);text-align:left;border-radius:16px;max-width:340px;padding:14px 18px;font-size:15px;font-weight:500;line-height:1.45}.overlay .card b{color:var(--gold)}.overlay .cta{font-size:20px;font-weight:700;animation:.8s ease-in-out infinite alternate superPulse}.lil-gui.root{top:calc(var(--safe-t) + 58px);right:calc(var(--safe-r) + 6px);max-height:calc(100% - var(--safe-t) - var(--safe-b) - 70px);-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y;pointer-events:auto;z-index:10;--width:min(330px, 88vw);--font-size:12px;--input-font-size:12px;--widget-height:24px;position:absolute;overflow-y:auto}
