:root{--bg:#070b1c;--panel:#0d1432db;--panel-border:#96aaff38;--text:#f4f6ff;--dim:#dce4ffb8;--ball:#ffd23f;--barrier:#f57;--ok:#47e5bc;--font:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{background:var(--bg);height:100%;color:var(--text);font-family:var(--font);overscroll-behavior:none;margin:0;overflow:hidden}.app{padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);display:flex;position:fixed;inset:0}.surface{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;cursor:pointer;--u:1px;--arena-left:0px;--arena-top:0px;--arena-w:360px;--arena-h:640px;flex:1;min-width:0;min-height:0;position:relative;overflow:hidden}.game-canvas{display:block;position:absolute;inset:0}.arena-ui{left:var(--arena-left);top:var(--arena-top);width:var(--arena-w);height:var(--arena-h);pointer-events:none;font-size:calc(var(--u) * 16);position:absolute}.arena-ui>*{pointer-events:auto}.icon-btn{top:calc(var(--u) * 6);left:calc(var(--u) * 8);width:max(44px, calc(var(--u) * 40));height:max(44px, calc(var(--u) * 40));border:1px solid var(--panel-border);color:var(--text);cursor:pointer;background:#0d14328c;border-radius:999px;place-items:center;display:grid;position:absolute}.panel{background:var(--panel);border:1px solid var(--panel-border);-webkit-backdrop-filter:blur(6px);text-align:center;cursor:default;overscroll-behavior:contain;touch-action:pan-y;border-radius:1.2em;flex-direction:column;align-items:center;gap:.7em;max-height:calc(100% - 1.2em);padding:1.4em 1.2em 1.2em;animation:.16s ease-out pop;display:flex;position:absolute;top:50%;left:7%;right:7%;overflow-y:auto;transform:translateY(-50%);box-shadow:0 1.2em 3em #00000073}.menu{background:#0d1432b8}@keyframes pop{0%{opacity:0;transform:translateY(-50%)scale(.96)}}.title{letter-spacing:-.02em;flex-direction:column;margin:0;font-size:2.6em;font-weight:900;line-height:.95;display:flex}.title-accent{color:var(--ball);text-shadow:0 0 .4em #ffd23f73}.panel-title{margin:0;font-size:1.7em;font-weight:900}.howto{color:var(--dim);margin:0;font-size:1em;line-height:1.45}.howto strong{color:var(--text)}.demo{border-left:2px dashed #96aaff40;border-right:2px dashed #96aaff40;width:3.2em;height:3.4em;position:relative}.demo-ball{background:var(--ball);border-radius:50%;width:1.2em;height:1.2em;margin-left:-.6em;animation:1.6s cubic-bezier(.45,0,.55,1) infinite alternate bob;position:absolute;left:50%;box-shadow:0 0 .8em #ffd23f99}@keyframes bob{0%{top:0}to{top:calc(100% - 1.2em)}}.btn{font:inherit;cursor:pointer;touch-action:manipulation;border:0;border-radius:999px;min-height:48px;font-weight:800}.btn-primary{letter-spacing:.06em;color:#1a1300;background:linear-gradient(180deg, #ffe17a, var(--ball));width:100%;padding:.85em 1em;font-size:1.35em;box-shadow:0 .3em #c79a00,0 .6em 1.4em #ffd23f4d}.btn-primary:active{transform:translateY(.15em);box-shadow:0 .15em #c79a00}.btn-secondary{width:100%;color:var(--text);border:1px solid var(--panel-border);background:#ffffff14;padding:.7em 1em;font-size:1em}.btn-link{color:var(--dim);text-underline-offset:.2em;background:0 0;min-height:44px;padding:0 1em;font-size:.95em;font-weight:600;text-decoration:underline}.best{color:var(--dim);margin:0;font-size:1em}.best strong{color:var(--text);font-variant-numeric:tabular-nums}.final-score{flex-direction:column;align-items:center;margin:.2em 0 0;display:flex}.final-score .label{letter-spacing:.14em;text-transform:uppercase;color:var(--dim);font-size:.8em}.final-score .value{font-variant-numeric:tabular-nums;font-size:3.4em;font-weight:900;line-height:1}.gameover .badge{letter-spacing:.1em;color:#052b22;background:var(--ok);border-radius:999px;margin:0;padding:.3em .9em;font-size:.85em;font-weight:900}.toggles{flex-wrap:wrap;justify-content:center;gap:.4em;margin-top:.3em;display:flex}.chip{font:inherit;color:var(--dim);border:1px solid var(--panel-border);cursor:pointer;background:#ffffff0f;border-radius:999px;min-height:36px;padding:.5em .9em;font-size:.78em;font-weight:600}.chip[aria-pressed=true]{color:var(--text);border-color:#ffd23f80}button:focus-visible{outline-offset:3px;outline:3px solid #8fb0ff}.rotate-hint{background:var(--panel);border:1px solid var(--panel-border);color:var(--dim);pointer-events:none;white-space:nowrap;border-radius:999px;padding:8px 14px;font-size:13px;position:absolute;bottom:12px;left:50%;transform:translate(-50%)}.menu-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:.5em;width:100%;display:flex}.btn-inline{flex:8em;width:auto;min-height:44px;padding:.55em 1em}.btn-tiny{min-height:36px;padding:0 .6em;font-size:.85em}.who{color:var(--dim);flex-wrap:wrap;justify-content:center;align-items:center;gap:.2em;margin:0;font-size:.9em;display:flex}.who strong{color:var(--text)}.save-box{border:1px dashed var(--panel-border);background:#ffffff0a;border-radius:.9em;flex-direction:column;align-items:center;gap:.45em;width:100%;padding:.8em;display:flex}.save-box.is-saved{background:#47e5bc14;border-style:solid;border-color:#47e5bc80}.save-box .btn-link{min-height:36px}.save-title{margin:0;font-size:1em;font-weight:800}.is-saved .save-title{color:var(--ok)}.save-sub{color:var(--dim);margin:0;font-size:.85em}.form-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:.5em;width:100%;display:flex}.btn-save{color:#052b22;background:var(--ok);flex:8em;min-height:44px;padding:.55em 1em}.name-form{text-align:left;flex-direction:column;gap:.45em;width:100%;display:flex}.name-label{font-size:.95em;font-weight:800}.name-input{font:inherit;border:1px solid var(--panel-border);width:100%;color:var(--text);-webkit-user-select:text;user-select:text;touch-action:manipulation;background:#0000004d;border-radius:.6em;padding:.6em .8em;font-size:max(16px,1em)}.name-input:focus{outline-offset:1px;outline:3px solid #8fb0ff}.name-input[aria-invalid=true]{border-color:var(--barrier)}.name-hint{color:var(--dim);margin:0;font-size:.78em;line-height:1.35}.name-hint.is-error{color:#ff9db0}.ranking .panel-title{margin-bottom:-.2em}.rank-scope{color:var(--dim);margin:0;font-size:.8em}.rank-empty{color:var(--dim);margin:.6em 0;line-height:1.5}.rank-list{flex-direction:column;gap:.2em;width:100%;margin:0;padding:0;list-style:none;display:flex}.rank-list li{background:#ffffff08;border-radius:.55em;grid-template-columns:2.4em 1fr auto;align-items:center;gap:.5em;padding:.38em .7em;font-size:.95em;display:grid}.rank-list li[data-pos="1"] .rank-pos{color:var(--ball)}.rank-list li.is-you{background:#47e5bc24;outline:1px solid #47e5bc8c}.rank-pos{color:var(--dim);font-variant-numeric:tabular-nums;font-weight:900}.rank-name{white-space:nowrap;text-align:left;align-items:center;min-width:0;font-weight:600;display:flex}.rank-nick{text-overflow:ellipsis;min-width:0;overflow:hidden}.rank-name>:not(.rank-nick){flex-shrink:0}.rank-seen{color:var(--dim);white-space:nowrap;margin-left:.5em;font-size:.62em;font-weight:600}.rank-tag{opacity:.45;vertical-align:middle;margin-left:.35em;font-size:.6em}.rank-live{color:var(--ok);vertical-align:middle;white-space:nowrap;align-items:center;gap:.3em;margin-left:.45em;font-size:.62em;font-weight:700;display:inline-flex}.rank-live-dot{background:var(--ok);width:.62em;height:.62em;box-shadow:0 0 0 0 color-mix(in srgb, var(--ok) 60%, transparent);border-radius:50%;animation:1.6s ease-out infinite rank-live-pulse;display:inline-block}.rank-online{color:var(--ok);white-space:nowrap;align-items:center;gap:.3em;margin-left:.45em;font-size:.62em;font-weight:700;display:inline-flex}.rank-online-dot{background:var(--ok);border-radius:50%;width:.55em;height:.55em;display:inline-block}.rank-live-count{color:var(--ok);justify-content:center;align-items:center;gap:.45em;margin:0 0 .5em;font-size:.85em;font-weight:700;display:flex}@keyframes rank-live-pulse{70%{box-shadow:0 0 0 .45em color-mix(in srgb, var(--ok) 0%, transparent)}to{box-shadow:0 0 0 0 color-mix(in srgb, var(--ok) 0%, transparent)}}@media (prefers-reduced-motion:reduce){.rank-live-dot{animation:none}}.rank-score{font-variant-numeric:tabular-nums;font-weight:900}@media (prefers-reduced-motion:reduce){.panel,.demo-ball{animation:none}.demo-ball{top:calc(50% - .6em)}}.hub-back{top:calc(var(--u,1px) * 6);right:calc(var(--u,1px) * 8);min-width:44px;height:max(44px, calc(var(--u,1px) * 40));border:1px solid var(--panel-border);color:var(--text);background:#0d14328c;border-radius:999px;align-items:center;gap:.35em;padding:0 .9em;font-size:.85em;font-weight:700;text-decoration:none;display:inline-flex;position:absolute}.rank-me{color:var(--dim);margin:0;font-size:.85em}.rank-me strong{color:var(--text)}.account-switch{border-top:1px solid #ffffff24;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;margin-top:6px;padding-top:10px;display:flex}.account-switch-q{color:var(--dim);font-size:.9em}.account-switch-btn{min-height:44px}.save-sub.is-error{color:#ff9db0}.btn-save:disabled{opacity:.6}.lives{justify-content:center;gap:.35em;margin:0;font-size:1.5em;line-height:1;display:flex}.lives .heart{color:#0000;-webkit-text-stroke:1.5px var(--dim)}.lives .heart.is-full{color:var(--barrier);-webkit-text-stroke:0}.continue-hint{color:var(--dim);margin:0;font-size:.85em;line-height:1.4}.btn-primary:disabled{opacity:.7}.coin-icon{vertical-align:-.12em;background:radial-gradient(circle,#fc3 0 58%,#b8860b 60% 100%);border-radius:50%;width:.95em;height:.95em;display:inline-block;box-shadow:inset 0 0 0 .08em #fff1a899}.run-coins{color:#ffd66b;margin:0;font-size:.95em;font-weight:700}.shop{gap:.6em;max-height:92%;overflow-y:auto}.shop-head{justify-content:space-between;align-items:center;width:100%;display:flex}.shop-coins{color:#ffd66b;margin:0;font-size:1.1em}.shop-tabs{gap:.4em;display:flex}.shop-tabs .chip[aria-selected=true]{color:var(--text);background:#ffd23f2e;border-color:#ffd23fb3}.shop-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.45em;width:100%;margin:0;padding:0;list-style:none;display:grid}.shop-item{border:1px solid var(--panel-border);background:#ffffff0a;border-radius:.8em;flex-direction:column;align-items:center;gap:.2em;padding:.45em .25em .5em;display:flex}.shop-item.is-using{background:#47e5bc1a;border-color:#47e5bcb3}.shop-preview{width:56px;height:56px}.shop-name{font-size:.8em;font-weight:700}.shop-state{height:36px;color:var(--ok);flex:none;align-items:center;min-height:36px;font-size:.75em;font-weight:700;display:inline-flex}.shop-btn{border-radius:.6em;flex:none;width:100%;height:36px;min-height:36px;padding:0 .4em;font-size:.8em}.shop-btn:disabled{opacity:.45}.shop-hint{color:var(--dim);margin:0;font-size:.75em}.shop-open{white-space:nowrap}.rank-tabs{justify-content:center}.rank-tabs .chip[aria-selected=true]{color:var(--text);background:#ffd23f2e;border-color:#ffd23fb3}.rank-champion{color:#ffd66b;margin:0;font-size:.8em}.weekly-callout{font:inherit;color:#ffe9a3;cursor:pointer;text-align:center;background:#ffd23f1a;border:1px solid #ffd23f73;border-radius:.7em;width:100%;padding:.5em .7em;font-size:.82em;line-height:1.35}.save-box.is-champion{background:#ffd23f1f;border-color:#ffd23fcc}.is-champion .save-title{color:#ffd23f}.shop-msg{color:#ffd66b;margin:0;font-size:.8em}
