:root{--accent:#67e8f9;--background:#070b14;--muted:#94a3b8;--text:#e5e7eb;color:var(--text);background:radial-gradient(circle at 16% 12%, #67e8f929, transparent 28rem), radial-gradient(circle at 84% 20%, #f973161f, transparent 24rem), var(--background);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0;overflow:hidden}button,canvas{-webkit-tap-highlight-color:transparent}h1,h2,p{margin:0}h1{color:#f8fafc;letter-spacing:-.07em;font-size:clamp(2.35rem,6vw,5.6rem);line-height:.92}h2{color:#f8fafc;letter-spacing:-.05em;font-size:clamp(1.4rem,3vw,2.15rem);line-height:1}.app-shell{--mobile-top-clearance:max(44px, calc(env(safe-area-inset-top,0px) + 14px));place-items:center;width:100vw;height:100svh;min-height:100dvh;padding:0;display:grid;overflow:hidden}.theme-night{--accent:#67e8f9;--muted:#94a3b8;--text:#e5e7eb;--panel:#0f172adb;--panel-soft:#02061794;--button-text:#06111f;--scroll-thumb:#67e8f9ad;--scroll-track:#0f172a6b}.theme-sky{--accent:#0284c7;--muted:#475569;--text:#0f172a;--panel:#f8fafcdb;--panel-soft:#ffffff94;--button-text:#f8fafc;--scroll-thumb:#0284c79e;--scroll-track:#ffffff61}.game-stage{background:#111827;width:min(100vw,160svh);height:min(100svh,62.5vw);position:relative;overflow:hidden;box-shadow:0 30px 90px #00000057}.canvas-wrap,canvas{width:100%;height:100%}.canvas-wrap{position:absolute;inset:0}canvas{cursor:crosshair;display:block}.status-strip,.menu-shell{z-index:2;position:absolute}.status-strip{max-width:calc(100% - 84px);color:var(--muted);background:var(--panel-soft);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);opacity:.72;pointer-events:none;-webkit-user-select:none;user-select:none;border:1px solid #94a3b838;border-radius:999px;flex-wrap:wrap;align-items:center;gap:10px;padding:7px 10px;font-size:.82rem;font-weight:800;display:flex;top:18px;left:18px}.status-strip strong{color:var(--text)}.play-overlay{z-index:3;pointer-events:none;place-items:center;display:grid;position:absolute;inset:0}.game-stage>.score-panel{z-index:3;width:min(260px,100% - 36px);color:var(--text);background:var(--panel);border:1px solid #94a3b838;border-radius:8px;gap:8px;padding:14px;display:grid;position:absolute;top:66px;right:18px;box-shadow:0 18px 54px #00000047}.score-panel strong{color:var(--text);letter-spacing:0;font-size:clamp(2rem,6vw,3.5rem);line-height:.9}.score-breakdown{pointer-events:auto;max-height:min(36vh,300px);color:var(--muted);gap:2px;padding-right:2px;font-size:.8rem;font-weight:650;display:grid;overflow-y:auto}.score-breakdown,.challenge-leaderboard{scrollbar-color:var(--scroll-thumb) var(--scroll-track);scrollbar-width:thin}.score-breakdown::-webkit-scrollbar{width:8px}.challenge-leaderboard::-webkit-scrollbar{width:8px}.score-breakdown::-webkit-scrollbar-track{background:var(--scroll-track);border-radius:999px}.challenge-leaderboard::-webkit-scrollbar-track{background:var(--scroll-track);border-radius:999px}.score-breakdown::-webkit-scrollbar-thumb{background:var(--scroll-thumb);background-clip:padding-box;border:2px solid #0000;border-radius:999px}.challenge-leaderboard::-webkit-scrollbar-thumb{background:var(--scroll-thumb);background-clip:padding-box;border:2px solid #0000;border-radius:999px}.score-line{text-align:left;cursor:default;border-radius:6px;outline:none;justify-content:space-between;align-items:center;gap:8px;padding:4px 6px;display:flex}.score-line:hover,.score-line:focus{background:#94a3b81f}.score-breakdown-grid{grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:8px;max-height:min(26vh,220px);padding:2px}.score-token{aspect-ratio:1;background:color-mix(in srgb, currentColor 24%, transparent);min-width:0;box-shadow:none;border:2px solid;border-radius:50%;place-items:center;padding:0;display:grid;position:relative}.score-token:hover,.score-token:focus{background:color-mix(in srgb, currentColor 34%, transparent)}.score-token-label{color:var(--text);font-size:1.1rem;font-weight:950;line-height:1;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.score-token-score{color:var(--text);opacity:0;white-space:nowrap;font-size:.56rem;font-weight:850;line-height:1;transition:opacity .14s,transform .14s;position:absolute;bottom:7px;left:50%;transform:translate(-50%)translateY(3px)}.score-token:hover .score-token-score,.score-token:focus .score-token-score{opacity:.86;transform:translate(-50%)translateY(0)}.life-pips{align-items:center;gap:4px;display:inline-flex}.life-pips i{border:1px solid #94a3b870;border-radius:50%;width:7px;height:7px}.life-pips i.alive{background:#67e8f9;border-color:#67e8f9}.final-score-menu{z-index:3;pointer-events:none;text-align:center;place-content:center;place-items:center;display:grid;position:absolute;inset:0}.final-score-menu .score-panel{pointer-events:auto;cursor:default;gap:8px;width:100%;min-width:0;max-width:none;display:grid}.final-score-note{width:100%;color:var(--muted);margin:0;padding:8px 10px;font-size:1rem;font-style:italic;font-weight:400;line-height:1.25}.draggable-final-score{width:min(450px,100vw - 44px);color:var(--text);background:var(--panel);pointer-events:auto;touch-action:none;border:1px solid #94a3b83d;border-radius:12px;place-items:stretch center;gap:12px;padding:16px;display:grid;box-shadow:0 24px 72px #00000052}.draggable-final-score.social-results{grid-template-columns:minmax(220px,.78fr) minmax(300px,1fr);grid-template-areas:"score board""note board""actions board";align-items:start;width:min(780px,100vw - 44px)}.social-results>.score-panel{grid-area:score;width:100%;min-width:0;max-width:none}.social-results>.final-score-note{grid-area:note;width:100%;max-width:none}.social-results>.score-actions{grid-area:actions}.social-results>.challenge-panel{grid-area:board;justify-self:stretch;width:100%;max-width:none}.draggable-final-score>.challenge-panel{width:100%;max-width:none;box-shadow:none;background:0 0;border:0;padding:0}.draggable-final-score:not(.social-results)>.challenge-create-panel{justify-self:center;width:min(360px,100%)}.draggable-final-score>.score-actions{border-top:1px solid #94a3b824;flex-direction:column;width:min(360px,100%);padding-top:2px}.draggable-final-score .score-panel{cursor:grab}.draggable-final-score .score-panel:active{cursor:grabbing}.final-score-menu .score-panel strong{font-size:clamp(3rem,10vw,6.5rem)}.score-actions{pointer-events:auto;flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.tutorial-tip{z-index:4;max-width:min(340px,100% - 36px);color:var(--text);background:var(--panel);border:1px solid #94a3b83d;border-radius:8px;align-items:center;gap:10px;padding:10px;font-size:.66rem;font-weight:780;line-height:1.2;animation:.18s both tip-rise;display:flex;position:absolute;top:62px;left:18px;box-shadow:0 18px 54px #00000042}@keyframes tip-rise{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.skip-replay-button{z-index:3;position:absolute;bottom:18px;left:50%;transform:translate(-50%)}.play-overlay button{pointer-events:auto;padding:16px 26px;font-size:1.15rem}.start-card{width:min(410px,100vw - 42px);color:var(--text);background:var(--panel-soft);pointer-events:auto;border:1px solid #94a3b838;border-radius:24px;place-items:center;gap:10px;padding:20px 34px 28px;display:grid;box-shadow:0 18px 54px #0000003d}.theme-sky .start-card{background:var(--panel-soft);box-shadow:0 18px 50px #0f172a29}.ball-knowledge-icon{width:220px;height:104px;margin-bottom:-18px;overflow:visible}.ball-knowledge-icon .bounce-path{fill:none;stroke:#e2e8f085;stroke-linecap:round;stroke-linejoin:round;stroke-width:11px}.theme-sky .ball-knowledge-icon .bounce-path{stroke:#0f172a5c}.ball-knowledge-icon .bounce-ball{fill:var(--accent);filter:drop-shadow(0 0 10px #0f172a38)}.ball-knowledge-icon .bounce-shadow{fill:none;stroke:#67e8f91a;stroke-width:9px}.ball-knowledge-icon .spark{fill:none;stroke:#cbd5e1b3;stroke-linecap:round;stroke-width:2px}.theme-sky .ball-knowledge-icon .spark{stroke:#4755698a}.ball-knowledge-icon .small{opacity:.64}.start-card h1{color:var(--text);text-align:center;text-shadow:none;margin:0;font-size:clamp(2.55rem,8vw,3.45rem);font-weight:900;line-height:.96}.start-tagline{min-height:28px;color:var(--text);opacity:.82;place-items:center;margin:2px 0 8px;font-size:.98rem;font-weight:760;line-height:1.2;display:grid;overflow:hidden}.start-tagline span{grid-area:1/1;transition:opacity .17s,transform .22s cubic-bezier(.2,.8,.2,1)}.start-tagline span:last-child{color:var(--accent);opacity:0;transform:translateY(110%)rotateX(-70deg)}.start-tagline:hover span:first-child{opacity:0;transform:translateY(-110%)rotateX(70deg)}.start-tagline:hover span:last-child{opacity:1;transform:translateY(0)rotateX(0)}.start-card-actions{gap:14px;width:100%;display:grid}.start-menu-button{border-radius:999px;grid-template-columns:58px 1fr 58px;align-items:center;width:100%;height:74px;padding:0 22px;font-size:1.52rem;font-weight:920;display:grid}.primary-start-button{color:#06111f;background:var(--accent)}.daily-start-button{color:var(--text);background:#0f172a4d}.theme-sky .daily-start-button{background:#f8fafc80}.start-icon-flip{justify-self:center;place-items:center;width:34px;height:34px;display:grid;position:relative;overflow:hidden}.start-menu-button .start-icon-flip{grid-column:1}.start-icon-flip svg{grid-area:1/1;justify-self:center;width:30px;height:30px;transition:opacity .17s,transform .22s cubic-bezier(.2,.8,.2,1),color .17s}.start-icon-flip svg:last-child{opacity:0;transform:translateY(110%)rotateX(-70deg)}.start-menu-button:hover:not(:disabled) .start-icon-flip svg:first-child{opacity:0;transform:translateY(-110%)rotateX(70deg)}.start-menu-button:hover:not(:disabled) .start-icon-flip svg:last-child{color:#06111f;opacity:1;transform:translateY(0)rotateX(0)}.primary-start-button .start-icon-flip svg:first-child,.primary-start-button .start-icon-flip svg:last-child{fill:currentColor}.primary-start-button .start-icon-flip svg:last-child,.daily-start-button .start-icon-flip svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2px}.start-label-flip{grid-column:2;justify-self:center;place-items:center;display:grid;overflow:hidden}.start-label-flip span{grid-area:1/1;transition:opacity .17s,transform .22s cubic-bezier(.2,.8,.2,1)}.start-label-flip span:last-child{color:#06111f;opacity:0;transform:translateY(110%)rotateX(-70deg)}.daily-label-flip span:last-child{color:var(--accent);opacity:0;transform:translateY(110%)rotateX(-70deg)}.start-menu-button:hover:not(:disabled) .daily-icon-flip svg:last-child{color:var(--accent);opacity:1;transform:translateY(0)rotateX(0)}.start-menu-button:hover:not(:disabled) .start-label-flip span:first-child{opacity:0;transform:translateY(-110%)rotateX(70deg)}.start-menu-button:hover:not(:disabled) .start-label-flip span:last-child{opacity:1;transform:translateY(0)rotateX(0)}.ready-panel,.challenge-panel{width:min(420px,100vw - 48px);color:var(--text);background:var(--panel);pointer-events:auto;border:1px solid #94a3b838;border-radius:8px;gap:10px;padding:14px;display:grid;box-shadow:0 18px 54px #00000047}.ready-panel{text-align:center;place-items:center}.challenge-lobby{align-content:center}.ready-panel strong,.challenge-panel-heading strong{color:var(--text);font-size:1rem;line-height:1.2}.challenge-panel{max-width:min(420px,100vw - 48px)}.challenge-panel-heading{text-align:left;gap:3px;display:grid}.challenge-create-panel{gap:8px;width:min(360px,100vw - 48px);padding:12px}.challenge-create-row{grid-template-columns:96px minmax(0,1fr);align-items:stretch;gap:8px;display:grid}.challenge-create-row .flip-button{width:100%;padding:2px;font-size:.9rem}.initials-field{color:var(--muted);text-align:left;text-transform:uppercase;align-items:center;font-size:.78rem;font-weight:800}.initials-field input{width:108px;color:var(--text);font:inherit;text-align:center;text-transform:uppercase;background:#0f172a47;border:1px solid #94a3b847;border-radius:8px;padding:8px 9px;font-size:1rem}.initials-field.challenge-create-initials{grid-template-columns:1fr;gap:4px;font-size:.68rem}.initials-field.challenge-create-initials input{width:100%;padding:6px 8px;font-size:.92rem}.challenge-error{color:#fb7185;background:#7f1d1d2e;border:1px solid #fb718552;border-radius:8px;margin:-2px 0 0;padding:7px 9px;font-size:.82rem;font-weight:800;line-height:1.25;position:relative}.challenge-status{color:var(--muted);margin:0;font-size:.82rem;font-weight:800;line-height:1.25}.daily-meta{color:var(--muted);flex-wrap:wrap;justify-content:center;gap:7px;font-size:.78rem;font-weight:850;display:flex}.daily-meta span{background:#94a3b814;border:1px solid #94a3b82e;border-radius:999px;padding:4px 8px}.daily-meta .is-unplayed{opacity:.52}.daily-meta .is-played{color:var(--text);background:#67e8f91a;border-color:#67e8f947}.daily-meta .is-streak{color:var(--accent);background:#94a3b81a;border-color:#94a3b842}.challenge-share-row{background:#94a3b814;border:1px solid #94a3b82e;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:6px;display:grid}.challenge-share-row span{min-width:0;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.76rem;font-weight:750;overflow:hidden}.challenge-leaderboard-wrap{gap:6px;width:100%;display:grid}.challenge-leaderboard-title{color:var(--text);text-align:left;margin:0;font-size:.82rem;font-weight:850}.challenge-leaderboard{gap:4px;max-height:170px;padding-right:2px;display:grid;overflow:auto}.challenge-entry{color:var(--text);background:#94a3b81a;border-radius:6px;grid-template-columns:28px 1fr auto;align-items:center;gap:8px;padding:5px 7px;font-size:.8rem;font-weight:800;display:grid}.challenge-entry>strong{color:var(--accent)}.challenge-entry.is-player{background:#67e8f929;border:1px solid #67e8f97a;box-shadow:inset 0 1px #ffffff14}.challenge-entry.is-player span,.challenge-entry.is-player strong{font-weight:950}.menu-shell{flex-direction:column;place-items:flex-end end;gap:8px;display:flex;top:18px;right:18px}.menu-toggle,.icon-button{color:var(--text);background:var(--panel-soft);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid #94a3b838;place-items:center;display:inline-grid;box-shadow:0 12px 36px #00000047}.icon-button{width:34px;height:34px;color:var(--accent);border-radius:50%;padding:0}.hud{width:max-content;max-height:calc(100svh - 82px);box-shadow:none;transform-origin:100% 0;background:0 0;border:0;flex-direction:column;align-items:flex-end;gap:7px;padding:0;animation:.18s cubic-bezier(.2,.8,.2,1) both settings-drop;display:flex;overflow:visible}@keyframes settings-drop{0%{opacity:0;transform:translateY(-6px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.eyebrow{color:var(--accent);letter-spacing:0;text-transform:uppercase;margin:0;font-size:.72rem;font-weight:800}button{isolation:isolate;color:var(--button-text);background:var(--accent);font:inherit;cursor:pointer;border:1px solid #94a3b83d;border-radius:999px;padding:9px 13px;font-weight:800;transition:opacity .16s,transform .15s,border-color .15s,box-shadow .15s,background .15s;position:relative;overflow:hidden;box-shadow:0 10px 28px #0000002e,0 0 #67e8f900}.flip-button{place-items:center;display:grid}.flip-button>span{grid-area:1/1;justify-content:center;align-items:center;transition:opacity .17s,transform .22s cubic-bezier(.2,.8,.2,1);display:inline-flex}.flip-button>span:last-child{color:var(--button-text);opacity:0;transform:translateY(112%)rotateX(-70deg)}.flip-button:hover:not(:disabled)>span:first-child{opacity:0;transform:translateY(-112%)rotateX(70deg)}.flip-button:hover:not(:disabled)>span:last-child{opacity:1;transform:translateY(0)rotateX(0)}.flip-button i,.start-label-flip i{font-style:normal;display:inline-block}.wave-text.flip-button:hover:not(:disabled) i,.primary-start-button:hover:not(:disabled) .start-label-flip span:last-child i{animation:.52s both letter-wave;animation-delay:calc(var(--letter-index) * 32ms)}@keyframes letter-wave{0%,to{transform:translateY(0)}38%{transform:translateY(-4px)}}button:hover:not(:disabled){border-color:#67e8f975;transform:translateY(-1px);box-shadow:0 14px 34px #0000003d,0 0 0 3px #67e8f91a}button:active:not(:disabled){transform:translateY(0);box-shadow:0 7px 18px #0000002e}.skip-replay-button:hover:not(:disabled){transform:translate(-50%)translateY(-2px)scale(1.025)}button:disabled{cursor:not-allowed;opacity:.38}button.secondary{color:var(--text);background:#94a3b82e;box-shadow:0 10px 24px #0003}.theme-switch,.sound-toggle{background:var(--panel-soft);color:var(--text);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid #94a3b83d;place-items:center;display:inline-grid;box-shadow:inset 0 1px #ffffff14,0 12px 30px #0003}.theme-switch{width:58px;height:32px;padding:0}.switch-track{background:#0f172ab3;border-radius:999px;width:50px;height:24px;transition:background .22s,box-shadow .22s;position:relative;box-shadow:inset 0 2px 8px #00000047}.theme-switch.is-sky .switch-track{background:#0284c738;box-shadow:inset 0 2px 8px #0e749038}.switch-thumb{color:#0f172a;background:#f8fafc;border-radius:50%;place-items:center;width:20px;height:20px;font-size:.78rem;line-height:1;transition:transform .22s cubic-bezier(.2,.8,.2,1),background .22s;display:grid;position:absolute;top:2px;left:2px;box-shadow:0 4px 11px #00000042}.theme-switch.is-sky .switch-thumb{background:var(--accent);color:var(--button-text);transform:translate(26px)}.sound-toggle{width:38px;height:38px;padding:0;font-size:1rem}.sound-toggle.is-muted{opacity:.72}button.ghost{color:var(--muted);background:0 0;border:1px solid #94a3b838}button.compact{padding:7px 10px;font-size:.78rem}@media (width<=680px){.app-shell{grid-template-rows:1fr;padding:8px}.game-stage{width:min(100vw - 16px,160svh - 25.6px);height:min(100svh - 16px,62.5vw - 10px)}.status-strip{gap:7px;max-width:calc(100% - 52px);padding:5px 8px;font-size:.72rem;top:8px;left:8px}.tutorial-tip{max-width:calc(100% - 16px);font-size:.78rem;top:44px;left:8px}.menu-shell{top:8px;right:8px}.icon-button{width:30px;height:30px}.hud{width:max-content;max-height:calc(100svh - 72px)}}@media (width<=900px) and (orientation:portrait){.app-shell{height:100dvh;padding:var(--mobile-top-clearance) 8px 8px;align-items:start}.game-stage{width:min(calc(100vw - 16px), calc((100dvh - var(--mobile-top-clearance) - 8px) * .625));height:min(calc(100dvh - var(--mobile-top-clearance) - 8px), calc((100vw - 16px) / .625))}.canvas-wrap{transform-origin:50%;width:160%;height:62.5%;inset:50% auto auto 50%;transform:translate(-50%,-50%)rotate(90deg)}.status-strip{gap:5px;max-width:calc(100% - 48px);padding:4px 7px;font-size:.62rem;top:8px;left:8px}.life-pips{gap:3px}.life-pips i{width:6px;height:6px}.tutorial-tip{gap:7px;max-width:min(240px,100% - 16px);padding:7px 8px;font-size:.62rem;line-height:1.18;top:42px;left:8px}.game-stage>.score-panel{gap:5px;width:min(210px,100% - 16px);padding:10px;font-size:.72rem;top:48px;right:8px}.score-panel strong{font-size:clamp(1.45rem,8vw,2.2rem)}.score-breakdown{max-height:min(28vh,190px);font-size:.68rem}.score-line{gap:5px;padding:3px 4px}.draggable-final-score{border-radius:10px;gap:9px;width:min(320px,100vw - 34px);padding:11px}.final-score-menu .score-panel{gap:6px}.final-score-menu .score-panel strong{font-size:clamp(2.1rem,15vw,4rem)}.final-score-note{padding:7px 9px;font-size:.68rem}.score-actions{gap:6px}.draggable-final-score>.score-actions{width:100%}.draggable-final-score.social-results{grid-template-columns:1fr;grid-template-areas:"score""board""note""actions"}.social-results>.challenge-panel{width:100%}.score-actions button,.skip-replay-button,.challenge-create-row .flip-button{padding:7px 10px;font-size:.75rem}.ready-panel,.challenge-panel{width:min(300px,100vw - 40px);padding:10px;font-size:.76rem}.challenge-create-row{grid-template-columns:1fr 1fr}.start-card{border-radius:22px;gap:10px;width:min(300px,100vw - 40px);padding:16px 20px 20px}.ball-knowledge-icon{width:150px;height:70px;margin-bottom:-14px}.start-card h1{font-size:clamp(2.15rem,12vw,3.1rem)}.start-tagline{gap:7px;font-size:.82rem}.play-overlay button{padding:11px 18px;font-size:.88rem}.start-menu-button{grid-template-columns:38px 1fr 38px;height:52px;padding:0 14px;font-size:1rem}.start-icon-flip{width:25px;height:25px}.start-icon-flip svg{width:22px;height:22px}.ready-panel strong,.challenge-panel-heading strong{font-size:.88rem}.initials-field,.challenge-error,.challenge-entry,.challenge-share-row span{font-size:.68rem}.menu-shell{top:8px;right:8px}.icon-button{width:30px;height:30px}.theme-switch{width:52px;height:30px}.switch-track{width:44px;height:22px}.switch-thumb{width:18px;height:18px;font-size:.68rem}.theme-switch.is-sky .switch-thumb{transform:translate(22px)}.sound-toggle{width:34px;height:34px;font-size:.86rem}}@media (width<=900px) and (orientation:landscape){.app-shell{grid-template-rows:1fr;grid-template-columns:1fr;padding:8px}.game-stage{width:min(100vw - 16px,160svh - 25.6px);height:min(100svh - 16px,62.5vw - 10px)}.status-strip{max-width:calc(100% - 52px);padding:5px 8px;font-size:.72rem;top:8px;left:8px}.menu-shell{top:8px;right:8px}}
