@font-face{font-family:Sora;src:url(../fonts/Sora-VF.subset.woff2)format("woff2");font-weight:100 800;font-display:swap}@font-face{font-family:Figtree;src:url(../fonts/Figtree-VF.subset.woff2)format("woff2");font-weight:300 900;font-display:swap}@font-face{font-family:Noto Sans SC;src:url(../fonts/NotoSansSC-VF.subset.woff2)format("woff2");font-weight:100 900;font-display:swap}:root{--ink:#1b1838;--ink-2:#2a2552;--ink-3:#3d3673;--cream:#fff7e8;--gold:#ffd35c;--gold-2:#ffb020;--orange:#ff7a45;--cyan:#7ef9ff;--red:#ff2d55;--display:"Sora", "Noto Sans SC", system-ui, sans-serif;--body:"Figtree", "Noto Sans SC", system-ui, sans-serif;--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)}:lang(zh-CN){--display:"Noto Sans SC", "Sora", system-ui, sans-serif;--body:"Noto Sans SC", "Figtree", system-ui, sans-serif}*{box-sizing:border-box}html,body{background:var(--ink);height:100%;color:var(--cream);font-family:var(--body);-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;touch-action:none;margin:0;overflow:hidden}#game{cursor:grab;width:100%;height:100%;display:block;position:fixed;inset:0}#game:active{cursor:grabbing}#ui{pointer-events:none;position:fixed;inset:0}button,input{font:inherit;color:inherit}.is-hidden{display:none!important}.muted{opacity:.72;margin:0}.outlined{font-family:var(--display);paint-order:stroke fill;-webkit-text-stroke:.16em var(--ink);text-shadow:.05em .07em 0 var(--ink);letter-spacing:.01em}.screen{opacity:0;visibility:hidden;transition:opacity .22s,visibility 0s linear .22s;position:absolute;inset:0}.screen.is-active{opacity:1;visibility:visible;transition:opacity .22s}.screen.is-active :is(button,input,a,.modal,form){pointer-events:auto}.screen-boot{background:radial-gradient(120% 90% at 50% 30%, #3b3380 0%, var(--ink) 70%);place-content:center;justify-items:center;gap:22px;display:grid}.boot-logo{font:900 italic clamp(34px, 7vw, 64px) var(--display);color:var(--gold);paint-order:stroke fill;-webkit-text-stroke:.14em var(--ink)}.boot-bar{background:var(--ink-2);border:2px solid var(--ink-3);border-radius:6px;width:min(320px,70vw);height:12px;overflow:hidden}.boot-bar i{background:linear-gradient(90deg, var(--gold-2), var(--gold));transform-origin:0;height:100%;transition:transform .3s;display:block;transform:scaleX(.04)}.boot-label{letter-spacing:.3em;opacity:.7;font-size:12px;font-weight:700}.menu{flex-direction:column;align-items:flex-start;gap:12px;display:flex}.menu-row{flex-flow:wrap;align-items:center;gap:10px}.btn{--skew:-9deg;cursor:pointer;min-width:0;font:800 19px var(--display);letter-spacing:.03em;color:var(--cream);isolation:isolate;background:0 0;border:0;outline:none;flex-direction:column;justify-content:center;align-items:flex-start;padding:12px 26px;text-decoration:none;transition:transform .14s cubic-bezier(.3,1.6,.5,1),color .14s;display:inline-flex;position:relative}.btn:before,.btn:after{content:"";transform:skewX(var(--skew));z-index:-1;border-radius:8px;position:absolute;inset:0}.btn:before{background:var(--ink);translate:5px 6px}.btn:after{border:3px solid var(--ink);background:linear-gradient(#3b3478,#2a2552 60%,#221e47);box-shadow:inset 0 3px #ffffff29,inset 0 -4px #00000040}.btn span{align-items:center;gap:10px;display:inline-flex;position:relative}.btn small{font:700 12px var(--body);opacity:.8;letter-spacing:.02em;margin-top:2px;position:relative}.btn em{font-style:normal}.btn:is(:hover,:focus-visible,:focus){color:var(--ink);transform:translate(-2px,-2px)scale(1.03)}.btn:is(:hover,:focus-visible,:focus):after{background:linear-gradient(180deg, #ffe89a, var(--gold) 55%, var(--gold-2));box-shadow:inset 0 3px #fff9,inset 0 -4px #a05a0059}.btn:is(:hover,:focus-visible,:focus):before{background:var(--orange);translate:7px 8px}.btn:active{transform:translate(3px,4px)scale(.99)}.btn:active:before{translate:1px 2px}.btn-primary{color:var(--ink)}.btn-primary:after{background:linear-gradient(180deg, #ffe89a, var(--gold) 55%, var(--gold-2));box-shadow:inset 0 3px #fff9,inset 0 -4px #a05a0059}.btn-primary:is(:hover,:focus-visible,:focus):after{background:linear-gradient(180deg, #fff3c4, #ffe07a 55%, var(--gold))}.btn-big{padding:16px 40px 14px;font-size:clamp(22px,2.6vw,30px)}.btn-small{padding:9px 18px;font-size:15px}.btn kbd{font-size:.62em}kbd{background:var(--cream);min-width:1.9em;height:1.9em;color:var(--ink);font:800 .72em/1 var(--display);vertical-align:.1em;border-radius:6px;place-items:center;margin:0 .08em;padding:0 .45em;font-style:normal;display:inline-grid;box-shadow:0 3px #b9ad98}kbd.wide{min-width:3.6em}.bottom-bar{padding:14px calc(28px + var(--safe-r)) calc(14px + var(--safe-b)) calc(28px + var(--safe-l));background:linear-gradient(#0000,#13112acc);justify-content:space-between;align-items:center;gap:16px;font-size:13px;font-weight:700;display:flex;position:absolute;bottom:0;left:0;right:0}.bottom-bar small{opacity:.5;font-size:11px;font-weight:500}.prompts{flex-wrap:wrap;gap:22px;display:flex}.prompts span{align-items:center;gap:4px;display:inline-flex}.prompts em{opacity:.85;margin-left:4px;font-style:normal}.title-vignette{background:linear-gradient(90deg,#14112ed1 0%,#14112e66 38%,#0000 60%),radial-gradient(140% 100%,#0000 55%,#13112a80);position:absolute;inset:0}.title-block{left:calc(clamp(22px, 6vw, 100px) + var(--safe-l));flex-direction:column;gap:14px;max-width:min(560px,46vw);display:flex;position:absolute;top:50%;transform:translateY(-56%)}.screen-title.is-active .title-block>*{animation:.55s cubic-bezier(.2,1.2,.4,1) both rise}.screen-title.is-active .title-block>:nth-child(2){animation-delay:60ms}.screen-title.is-active .title-block>:nth-child(3){animation-delay:.1s}.screen-title.is-active .title-block>:nth-child(4){animation-delay:.14s}.logo{align-items:center;gap:14px;margin:0;display:flex}.logo-ball{flex:none;width:clamp(56px,7vw,88px);animation:.62s cubic-bezier(.5,0,.5,1) infinite alternate bounce}.logo-words{flex-direction:column;line-height:.95;display:flex}.logo-main{color:var(--gold);-webkit-text-stroke-width:.13em;text-shadow:.05em .08em 0 var(--ink), 0 0 40px #ffbe3c59;font-size:clamp(44px,6.6vw,92px);font-style:italic;font-weight:900}.logo-sub{letter-spacing:.32em;color:var(--cyan);-webkit-text-stroke-width:.2em;margin-top:6px;font-size:clamp(16px,2vw,26px);font-weight:800}.tagline{max-width:30ch;text-shadow:0 2px 0 var(--ink);margin:0;font-size:clamp(14px,1.5vw,18px);font-weight:700}.challenge-card{border:3px solid var(--ink);box-shadow:6px 7px 0 var(--ink);background:linear-gradient(#ff5f7e,#e0244e);border-radius:12px;grid-template-rows:auto auto;grid-template-columns:auto 1fr;align-items:center;column-gap:14px;max-width:440px;padding:10px 18px;animation:2.4s ease-in-out infinite wiggle;display:grid;position:relative;transform:rotate(-1.5deg)}.challenge-card small{font:800 12px var(--display);letter-spacing:.16em;opacity:.9;grid-column:1/-1}.challenge-card b{color:var(--cream);font-size:40px;font-weight:900;line-height:1}.challenge-card span{font-size:14px;font-weight:800;line-height:1.25}.title-stats{text-shadow:0 2px 0 var(--ink);align-items:center;gap:10px;font-size:15px;font-weight:700;display:flex}.title-stats b{font:800 20px var(--display);color:var(--gold);margin-left:4px}.title-stats i{opacity:.4;font-style:normal}.title-top{right:calc(clamp(18px, 4vw, 60px) + var(--safe-r));top:calc(22px + var(--safe-t));border:3px solid var(--ink);pointer-events:none;background:#1b1838c7;border-radius:14px;width:250px;padding:14px 16px;position:absolute;box-shadow:6px 7px #0a081eb3}.title-top h3{font:800 13px var(--display);letter-spacing:.14em;color:var(--gold);margin:0 0 8px}.title-top ol{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.title-top li{font-variant-numeric:tabular-nums;grid-template-columns:22px 1fr auto;gap:8px;font-size:14px;font-weight:700;display:grid}.title-top li b{font-family:var(--display);color:#fff7e899}.title-top li:first-child b{color:var(--gold)}.title-top li span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.title-top li em{font:800 14px var(--display);color:var(--gold);font-style:normal}.title-top li.is-me{color:var(--cyan)}.title-top .muted{font-size:13px}.title-press{left:50%;bottom:calc(64px + var(--safe-b));font:800 15px var(--display);letter-spacing:.06em;white-space:nowrap;background:#1b1838b3;border:2px solid #fff7e833;border-radius:999px;padding:8px 20px;animation:1.4s ease-in-out infinite pulse;position:absolute;transform:translate(-50%)}.screen-hud{font-variant-numeric:tabular-nums}.hud-top{padding:calc(12px + var(--safe-t)) calc(18px + var(--safe-r)) 0 calc(18px + var(--safe-l));grid-template-columns:1fr auto 1fr;align-items:start;display:grid;position:absolute;top:0;left:0;right:0}.hud-left{flex-wrap:wrap;gap:8px;display:flex}.hud-right{justify-content:flex-end;display:flex}.hud-pill{border:3px solid var(--ink);font:800 14px var(--display);background:#1b1838b8;border-radius:10px;padding:6px 14px;transform:skew(-8deg);box-shadow:3px 4px #0a081e99}.hud-mode{background:var(--cyan);color:var(--ink)}.hud-center{flex-direction:column;align-items:center;display:flex}.hud-score{color:var(--cream);font-size:clamp(48px,7vw,80px);font-weight:900;line-height:1;display:inline-block}.hud-score.bump{animation:.22s cubic-bezier(.2,1.8,.4,1) bump}.hud-best{font:800 13px var(--display);opacity:.8;text-shadow:0 2px 0 var(--ink);margin-top:2px}.hud-best.is-beaten{color:var(--gold);opacity:1}.hud-btn{border:3px solid var(--ink);width:50px;height:50px;box-shadow:4px 5px 0 var(--ink);cursor:pointer;background:linear-gradient(#3b3478,#2a2552);border-radius:12px;place-items:center;display:grid}.hud-btn:active{box-shadow:1px 1px 0 var(--ink);transform:translate(3px,4px)}.hud-target{left:50%;top:calc(118px + var(--safe-t));font:800 13px var(--display);text-shadow:0 2px 0 var(--ink);flex-direction:column;align-items:center;gap:4px;display:flex;position:absolute;transform:translate(-50%)}.hud-target i{border:2px solid var(--ink);background:#1b1838cc;border-radius:6px;width:180px;height:10px;display:block;overflow:hidden}.hud-target b{background:linear-gradient(90deg, #ff5f7e, var(--red));transform-origin:0;height:100%;transition:transform .25s;display:block;transform:scaleX(0)}.hud-target.is-done{color:var(--gold)}.hud-target.is-done b{background:linear-gradient(90deg, var(--gold-2), var(--gold))}.hud-depth{right:calc(24px + var(--safe-r));width:14px;position:absolute;top:22%;bottom:22%}.hud-depth i{border:3px solid var(--ink);background:#1b1838bf;border-radius:8px;position:absolute;inset:0;overflow:hidden}.hud-depth b{background:linear-gradient(180deg, var(--gold), var(--orange));transform-origin:top;transition:transform .2s;position:absolute;inset:0;transform:scaleY(0)}.hud-depth-ball{background:var(--cream);border:3px solid var(--ink);border-radius:50%;width:22px;height:22px;margin:-11px 0 0 -11px;transition:top .2s;position:absolute;top:0;left:50%}.hud-chain{left:calc(7% + var(--safe-l));color:var(--gold);opacity:0;white-space:nowrap;font-size:clamp(30px,4.4vw,54px);font-style:italic;font-weight:900;transition:opacity .2s,transform .2s;position:absolute;top:42%;transform:rotate(-8deg)scale(.6)}.hud-chain.is-on{opacity:1;transform:rotate(-8deg)scale(1)}.hud-chain.pop{animation:.3s cubic-bezier(.2,1.8,.4,1) chainPop}.hud-chain[data-level="3"],.hud-chain[data-level="4"]{color:#ffa34d}.hud-chain[data-level="5"],.hud-chain[data-level="6"]{color:#ff5f7e}.hud-smash{opacity:0;flex-direction:column;align-items:center;transition:all .18s cubic-bezier(.2,1.6,.4,1);display:flex;position:absolute;top:24%;left:50%;transform:translate(-50%)scale(.5)}.hud-smash b{color:#ff8a3c;letter-spacing:.04em;font-size:clamp(34px,5vw,60px);font-style:italic;font-weight:900}.hud-smash small{font:800 14px var(--display);text-shadow:0 2px 0 var(--ink)}.hud-smash.is-on{opacity:1;animation:.5s ease-in-out infinite alternate throb;transform:translate(-50%)scale(1)}.stage-banner{opacity:0;pointer-events:none;white-space:nowrap;font-size:clamp(40px,7vw,84px);font-style:italic;font-weight:900;position:absolute;top:21%;left:50%;transform:translate(-50%,-50%)}.stage-banner.is-on{animation:1.5s cubic-bezier(.2,1,.3,1) both banner}.popups{position:absolute;inset:0;overflow:hidden}.popup{font-family:var(--display);white-space:nowrap;flex-direction:column;align-items:center;animation:1.1s cubic-bezier(.2,.9,.3,1) forwards floatUp;display:flex;position:absolute;transform:translate(-50%,-50%)}.popup b,.popup small{paint-order:stroke fill;-webkit-text-stroke:.16em var(--ink);text-shadow:.05em .07em 0 var(--ink)}.popup b{color:var(--cream);font-size:30px;font-weight:900}.popup small{font-size:20px;font-weight:900}.popup-combo b{color:var(--gold);font-size:36px}.popup-near small{color:#ffe36e;font-size:26px}.popup-near b{color:#ffe36e;font-size:22px}.popup-smash small{color:#ff8a3c;font-size:40px;font-style:italic}.popup-smash b{color:var(--gold);font-size:36px}.popup-stage small{color:var(--cyan);font-size:34px}.popup-stage b{color:var(--cyan)}.popup-danger small{color:#ff5f7e;font-size:44px;font-style:italic}.popup-best small,.popup-target small{color:var(--gold);font-size:40px;font-style:italic}.popup-best,.popup-target,.popup-danger,.popup-stage{animation:1.3s cubic-bezier(.2,1.4,.3,1) forwards bigPop}.flash{opacity:0;pointer-events:none;mix-blend-mode:screen;position:absolute;inset:0}.smash-vignette{opacity:0;pointer-events:none;transition:opacity .2s;position:absolute;inset:0;box-shadow:inset 0 0 120px 30px #ff6e28bf}.smash-vignette.is-on{opacity:1;animation:.5s ease-in-out infinite alternate throbFade}.touch{left:0;right:0;bottom:calc(18px + var(--safe-b));padding:0 calc(22px + var(--safe-r)) 0 calc(22px + var(--safe-l));justify-content:space-between;display:none;position:absolute}.is-touch .touch{display:flex}.touch-btn{border:4px solid var(--ink);width:96px;height:96px;box-shadow:5px 6px 0 var(--ink), inset 0 4px 0 #ffffff2e;color:var(--cream);touch-action:none;background:linear-gradient(#40387cd9,#221e47d9);border-radius:50%;place-items:center;display:grid}.touch-btn.is-down{background:linear-gradient(180deg, #ffe89a, var(--gold));color:var(--ink);box-shadow:2px 2px 0 var(--ink);transform:translate(3px,4px)}.touch-hint{left:50%;bottom:calc(132px + var(--safe-b));font:800 14px var(--display);opacity:0;white-space:nowrap;background:#1b1838bf;border-radius:999px;padding:8px 16px;transition:opacity .3s;position:absolute;transform:translate(-50%)}.touch-hint.is-on{opacity:1;animation:1.4s ease-in-out infinite pulse}.screen-modal,.screen-results{place-items:center;display:grid}.screen-modal{-webkit-backdrop-filter:blur(5px);background:#13112a8c}.screen-results{background:radial-gradient(90% 90%,#13112a59,#13112abf)}.modal{width:min(460px,100vw - 28px);max-height:calc(100vh - 24px - var(--safe-t) - var(--safe-b));border:4px solid var(--ink);scrollbar-width:thin;background:linear-gradient(#332d6a,#231f4b);border-radius:20px;flex-direction:column;align-items:center;gap:14px;padding:24px 26px 22px;display:flex;position:relative;overflow:auto;box-shadow:10px 12px #0a081ecc,inset 0 3px #ffffff1f}.screen.is-active .modal{animation:.34s cubic-bezier(.2,1.4,.4,1) both pop}.modal:before{content:"";background:linear-gradient(90deg, var(--orange), var(--gold));border-radius:0 0 6px 6px;height:6px;position:absolute;top:0;left:16px;right:16px}.modal .menu:not(.menu-row){align-items:stretch;width:100%}.modal .menu:not(.menu-row) .btn{align-items:center}.modal-wide{width:min(700px,100vw - 28px)}.modal-title{color:var(--cream);text-align:center;margin:0;font-size:clamp(30px,4.6vw,46px);font-style:italic;font-weight:900;line-height:1.05}.menu-row.results-actions,.menu-row.results-actions-2,.modal .menu-row{justify-content:center}.results-card{gap:10px;width:min(560px,100vw - 28px)}.screen-results:not(.is-won) .modal-title{color:#ffb3c1}.screen-results.is-won .modal-title{color:var(--gold)}.results-score{flex-direction:column;align-items:center;display:flex;position:relative}.results-score b{color:var(--gold);font-size:clamp(64px,11vw,112px);font-weight:900;line-height:1}.results-best{background:var(--orange);color:var(--ink);border:3px solid var(--ink);font:800 14px var(--display);letter-spacing:.1em;border-radius:999px;margin-top:4px;padding:4px 14px;display:none;transform:rotate(-3deg)}.results-best.is-on{animation:.9s ease-in-out infinite pulse;display:block}.results-note{color:var(--cyan);text-align:center;font-weight:800}.results-stats{grid-template-columns:repeat(4,1fr);gap:6px;width:100%;margin:0;display:grid}.results-stats div{text-align:center;background:#13112a80;border-radius:10px;padding:6px 4px}.results-stats dt{opacity:.75;font-size:12px;font-weight:700}.results-stats dd{font:800 20px var(--display);margin:2px 0 0}.results-online{text-align:center;background:#7ef9ff14;border:2px dashed #7ef9ff59;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:2px;width:100%;min-height:54px;padding:8px 12px;display:flex}.rank-main{font:800 20px var(--display);align-items:baseline;gap:8px;display:flex}.rank-main b{color:var(--gold);paint-order:stroke fill;-webkit-text-stroke:.12em var(--ink);font-size:34px}.rank-main small{opacity:.75;font-size:14px}.rank-pct{font:800 17px var(--display);color:var(--cyan)}.rank-pct b{color:var(--cyan);font-size:24px}.rank-all{opacity:.8;font-size:13px;font-weight:700}.results-name{justify-content:center;align-items:center;gap:10px;width:100%;display:flex}.results-name label{align-items:center;gap:8px;font-size:14px;font-weight:800;display:flex}.results-name input{border:3px solid var(--ink);width:170px;height:40px;color:var(--cream);font:700 16px var(--body);-webkit-user-select:text;user-select:text;background:#15122f;border-radius:10px;outline:none;padding:0 12px}.results-name input:focus{border-color:var(--gold)}.btn-ghost{font-size:14px}.toast{min-height:20px;font:800 14px var(--display);color:var(--gold);opacity:0}.toast.is-on{animation:2.4s both toast}.board-tabs{display:inline-flex}.seg{border:3px solid var(--ink);background:#15122f;border-radius:12px;gap:3px;padding:3px;display:inline-flex}.seg button{cursor:pointer;font:800 15px var(--display);color:#fff7e8a6;background:0 0;border:0;border-radius:8px;outline:none;padding:8px 18px}.seg button[aria-pressed=true]{background:var(--gold);color:var(--ink);box-shadow:inset 0 -3px #a05a0059}.seg button:is(:focus-visible,:focus){box-shadow:0 0 0 3px #ffd35c99}.board{flex-direction:column;gap:5px;width:100%;max-height:min(46vh,420px);margin:0;padding:0;list-style:none;display:flex;overflow:auto}.board li{font-variant-numeric:tabular-nums;background:#13112a8c;border-radius:10px;grid-template-columns:44px 1fr auto;align-items:center;gap:8px;padding:8px 14px;font-weight:700;display:grid}.board li b{font:800 18px var(--display);color:#fff7e899}.board li:first-child b{color:var(--gold)}.board li:nth-child(2) b{color:#d8dcef}.board li:nth-child(3) b{color:#f0a574}.board li em{font:800 18px var(--display);color:var(--gold);font-style:normal}.board li.is-me{outline:2px solid var(--gold);background:#ffd35c29}.board li i{background:var(--gold);color:var(--ink);border-radius:6px;margin-left:4px;padding:1px 6px;font-size:11px;font-style:normal}.board-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.board .board-empty{text-align:center;opacity:.75;background:0 0;padding:22px;display:block}.board-foot{font:800 15px var(--display);color:var(--cyan)}.board-note{opacity:.55;font-size:12px}.modal-share{width:min(520px,100vw - 28px)}.share-preview{aspect-ratio:1080/1350;border:4px solid var(--ink);background:var(--ink-2);border-radius:14px;width:min(300px,60vw);overflow:hidden;box-shadow:6px 7px #0a081ecc}.share-preview img{object-fit:cover;-webkit-user-select:auto;user-select:auto;-webkit-touch-callout:default;pointer-events:auto;width:100%;height:100%;display:block}.share-link{border:3px solid var(--ink);width:100%;height:38px;color:var(--cream);font:600 13px var(--body);-webkit-user-select:text;user-select:text;background:#15122f;border-radius:10px;padding:0 12px}.settings-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:10px 26px;width:100%;display:grid}.row{justify-content:space-between;align-items:center;gap:14px;min-height:46px;font-size:15px;font-weight:800;display:flex}.row .seg button{padding:6px 12px;font-size:14px}input[type=range]{width:150px;accent-color:var(--gold)}.toggle{cursor:pointer;background:0 0;border:0;outline:none;align-items:center;padding:0;display:inline-flex}.toggle i{border:3px solid var(--ink);background:#15122f;border-radius:15px;width:52px;height:30px;transition:all .18s;position:relative}.toggle i:after{content:"";background:#8a84b3;border-radius:50%;width:18px;height:18px;transition:all .18s cubic-bezier(.3,1.5,.5,1);position:absolute;top:3px;left:3px}.toggle[aria-pressed=true] i{background:var(--gold)}.toggle[aria-pressed=true] i:after{background:var(--ink);left:25px}.toggle:focus-visible i,.toggle:focus i{box-shadow:0 0 0 3px #ffd35c80}@keyframes rise{0%{opacity:0;transform:translateY(24px)}}@keyframes pop{0%{opacity:0;transform:scale(.86)translateY(10px)}}@keyframes pulse{50%{opacity:.55}}@keyframes bounce{0%{transform:translateY(-10px)}to{transform:translateY(8px)scale(1.06,.92)}}@keyframes wiggle{50%{transform:rotate(1deg)scale(1.02)}}@keyframes bump{40%{transform:scale(1.18)}}@keyframes chainPop{0%{transform:rotate(-8deg)scale(1.5)}}@keyframes throb{to{transform:translate(-50%)scale(1.08)}}@keyframes throbFade{to{opacity:.6}}@keyframes banner{0%{opacity:0;transform:translate(-50%,-50%)scale(2.2)}15%{opacity:1;transform:translate(-50%,-50%)scale(1)}75%{opacity:1}to{opacity:0;transform:translate(-50%,-80%)scale(.9)}}@keyframes floatUp{0%{opacity:0;transform:translate(-50%,-30%)scale(.6)}15%{opacity:1;transform:translate(-50%,-60%)scale(1.15)}30%{transform:translate(-50%,-70%)scale(1)}to{opacity:0;transform:translate(-50%,-190%)scale(.95)}}@keyframes bigPop{0%{opacity:0;transform:translate(-50%,-50%)scale(2)}14%{opacity:1;transform:translate(-50%,-50%)scale(1)}80%{opacity:1}to{opacity:0;transform:translate(-50%,-90%)scale(1)}}@keyframes toast{0%{opacity:0;transform:translateY(6px)}10%,80%{opacity:1;transform:none}to{opacity:0}}@media (prefers-reduced-motion:reduce){.logo-ball,.challenge-card,.title-press{animation:none}}@media (max-width:900px){.title-top{width:210px}.title-block{max-width:54vw}}@media (max-height:560px){.title-block{gap:8px;transform:translateY(-54%)}.logo-main{font-size:clamp(34px,9vh,60px)}.logo-sub{margin-top:2px;font-size:14px}.logo-ball{width:50px}.tagline{max-width:36ch;font-size:13px}.btn-big{padding:10px 28px;font-size:20px}.btn-small{padding:7px 14px;font-size:13px}.challenge-card{padding:6px 12px}.challenge-card b{font-size:28px}.title-top{top:calc(10px + var(--safe-t));width:200px;padding:10px 12px}.title-top li{font-size:12px}.title-press{bottom:calc(46px + var(--safe-b));font-size:12px}.bottom-bar{padding-top:8px;padding-bottom:calc(8px + var(--safe-b));font-size:11px}.is-touch .bottom-bar .prompts{display:none}.hud-score{font-size:44px}.hud-target{top:calc(78px + var(--safe-t))}.touch-btn{width:80px;height:80px}.touch-hint{bottom:calc(110px + var(--safe-b))}.modal{gap:8px;padding:14px 18px}.modal-title{font-size:26px}.results-card{grid-template-columns:1fr 1.25fr;grid-auto-flow:dense;align-items:center;gap:6px 16px;width:min(760px,100vw - 20px);display:grid}.results-card>.modal-title,.results-card>.results-score,.results-card>.results-note{grid-column:1}.results-card>.results-stats,.results-card>.results-online,.results-card>.results-name,.results-card>.results-actions,.results-card>.results-actions-2,.results-card>.toast{grid-column:2}.results-card>.modal-title{grid-row:1}.results-card>.results-score{grid-row:2/span 3}.results-score b{font-size:64px}.results-stats dd{font-size:16px}.results-online{min-height:40px;padding:4px 8px}.rank-main b{font-size:26px}.results-name input{width:140px;height:32px}.results-card .btn{padding:7px 14px;font-size:13px}.results-card .btn-primary{padding:9px 22px;font-size:16px}.board{max-height:42vh}.share-preview{width:min(170px,30vh)}.modal-share{grid-template-columns:auto 1fr;column-gap:16px;width:min(640px,100vw - 20px);display:grid}.modal-share>.modal-title,.modal-share>.share-link,.modal-share>.menu,.modal-share>.toast{grid-column:2}.modal-share>.share-preview{grid-area:1/1/span 4}}@media (max-width:640px) and (orientation:portrait){.title-block{max-width:none;top:58%;left:18px;right:18px}.title-top{display:none}.title-vignette{background:linear-gradient(#0000,#14112e66 40%,#14112ee6 100%)}.results-stats{grid-template-columns:repeat(2,1fr)}}.is-touch .btn kbd{display:none}
