.tap-page{min-height:100dvh;padding:max(8px, env(safe-area-inset-top)) max(14px, env(safe-area-inset-right)) max(18px, calc(env(safe-area-inset-bottom) + 8px)) max(14px, env(safe-area-inset-left));-webkit-user-select:none;user-select:none;background:radial-gradient(circle at 10% 12%,#3047ff1a,#0000 22%),radial-gradient(circle at 90% 14%,#ff404614,#0000 18%),linear-gradient(#f6f4f2 0%,#f3f0ed 100%);place-items:start center;display:grid}.game-shell{grid-template-rows:auto auto 1fr auto;gap:clamp(10px,1.8vh,14px);width:min(100%,540px);min-height:calc(100dvh - 18px);display:grid}.topbar{z-index:10;justify-content:space-between;align-items:center;gap:12px;display:flex;position:sticky;top:0}.pill,.timer{border:4px solid var(--ink);color:var(--ink);background:var(--paper);box-shadow:4px 4px 0 var(--shadow-red), 8px 8px 0 var(--shadow-blue);border-radius:999px;padding:10px 16px 8px;font-size:clamp(18px,3.8vw,22px);font-weight:1000}.timer{text-align:center;background:var(--yellow);font-variant-numeric:tabular-nums;min-width:84px}.timer.is-ready{background:var(--green)}.score-card,.leaderboard-card,.panel{border:4px solid var(--ink);box-shadow:6px 6px 0 var(--shadow-red), 12px 12px 0 var(--shadow-blue), 0 16px 40px #14142214;background:#ffffffdb;border-radius:28px}.score-card{text-align:center;place-items:center;padding:16px 18px 14px;display:grid;position:relative;overflow:hidden}.score-card:before{content:"";opacity:.08;pointer-events:none;background:url(/assets/fast-character-v3.png) 50%/contain no-repeat;width:160px;height:160px;position:absolute;inset:auto -40px -20px auto;transform:rotate(-8deg)}.score-label{color:#0808169e;text-transform:uppercase;letter-spacing:.14em;font-size:11px;font-weight:1000}.score-card strong{z-index:1;color:var(--blue);text-shadow:3px 3px #ff404647;letter-spacing:-.09em;font-size:clamp(68px,22vw,118px);line-height:.88;position:relative}.speed{color:var(--ink);letter-spacing:-.03em;font-size:clamp(16px,3.7vw,22px);font-weight:1000}.tap-button{isolation:isolate;border:5px solid var(--ink);min-height:clamp(390px,52dvh,520px);color:var(--cream);box-shadow:7px 7px 0 var(--shadow-red), 14px 14px 0 var(--shadow-blue), 0 30px 66px #3047ff29;cursor:pointer;touch-action:manipulation;background:radial-gradient(circle at 28% 28%,#ffffff2e,#0000 22%),linear-gradient(#4158ff 0%,#3047ff 55%,#293fd7 100%);border-radius:38px;align-content:center;align-self:stretch;place-items:center;gap:0;transition:transform 60ms,box-shadow 60ms,filter .12s;display:grid;position:relative;overflow:hidden}.tap-button:before{content:"";pointer-events:none;border:2px solid #ffffff38;border-radius:28px;position:absolute;inset:16px}.tap-button:after{content:"";filter:blur(14px);background:#ffffff1a;border-radius:999px;width:170px;height:56px;position:absolute;inset:auto -12px 10px auto;transform:rotate(-14deg)}.tap-button:active,.tap-button.is-playing:active{box-shadow:2px 2px 0 var(--shadow-red), 5px 5px 0 var(--shadow-blue), 0 18px 44px #3047ff24;transform:translate(6px,6px)scale(.985)}.tap-button:disabled{filter:saturate(.95)brightness(.95);cursor:not-allowed}.tap-button.is-playing{animation:.66s ease-in-out infinite alternate fastPulse}@keyframes fastPulse{0%{transform:rotate(-.5deg)scale(1)}to{transform:rotate(.5deg)scale(1.01)}}.tap-sticker,.tap-badge,.phrase-bubble,.speed-trail,.tap-ring,.tap-character,.tap-button strong,.tap-button em{z-index:2;position:relative}.tap-sticker{border:3px solid var(--ink);background:var(--yellow);color:var(--ink);letter-spacing:.05em;text-transform:uppercase;box-shadow:3px 3px 0 var(--shadow-red), 6px 6px 0 #08081624;border-radius:999px;padding:8px 12px 7px;font-size:13px;font-weight:1000;position:absolute;top:18px;right:18px}.tap-badge{color:#fffffff2;letter-spacing:.1em;text-transform:uppercase;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#ffffff14;border:3px solid #ffffffe0;border-radius:16px;padding:10px 12px 9px;font-size:12px;font-weight:900;position:absolute;bottom:18px;left:18px}.tap-ring{border:12px solid #ffffff1a;border-radius:999px;width:210px;height:210px;position:absolute;top:82px;box-shadow:0 0 0 20px #ffffff12,0 0 0 42px #ffffff0a}.speed-trail{z-index:1;opacity:.86;pointer-events:none;background:#ffffff5c;border-radius:999px;width:36%;height:16px;position:absolute;top:45%;left:24px;transform:rotate(-8deg);box-shadow:0 -42px #ffffff29,-18px 42px #ffffff29,18px 84px #ffffff24}.phrase-bubble{border:4px solid var(--ink);background:var(--paper);max-width:min(72%,292px);color:var(--ink);letter-spacing:-.04em;text-align:center;box-shadow:5px 5px 0 var(--shadow-red), 10px 10px 0 #3047ff38;border-radius:22px;padding:14px 18px 12px;font-size:clamp(15px,2.8vw,22px);font-weight:1000;line-height:1.05;animation:.22s ease-out phrasePop,1.2s ease-in-out phraseFloat;position:absolute;top:142px;left:50%;transform:translate(-50%)}.phrase-bubble:after{content:"";border-right:4px solid var(--ink);border-bottom:4px solid var(--ink);background:var(--paper);width:18px;height:18px;position:absolute;bottom:-14px;left:50%;transform:translate(-50%)rotate(45deg)}@keyframes phrasePop{0%{opacity:0;transform:translate(-50%)scale(.84)}to{opacity:1;transform:translate(-50%)scale(1)}}@keyframes phraseFloat{0%{translate:0 2px}to{translate:0 -4px}}.tap-character{object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none;filter:drop-shadow(8px 8px #0808162e);width:min(296px,64vw);max-height:224px;margin:54px 0 4px;transform:rotate(-4deg)}.tap-button strong{letter-spacing:-.08em;text-shadow:4px 4px #08081633;margin-top:2px;font-size:clamp(60px,18vw,100px);line-height:.82}.tap-button em{letter-spacing:-.03em;color:#fff0b6eb;margin-top:2px;font-size:clamp(20px,4.2vw,24px);font-style:normal;font-weight:1000}.tap-button.is-playing .tap-character{animation:.38s ease-in-out infinite alternate tapRunner}.tap-button.is-playing .speed-trail{animation:.28s linear infinite trailRush}.tap-button.is-playing .tap-ring{animation:.44s ease-in-out infinite alternate ringPulse}@keyframes tapRunner{0%{transform:translate(-2px)translateY(1px)rotate(-6deg)scale(1)}to{transform:translate(5px)translateY(-4px)rotate(3deg)scale(1.03)}}@keyframes trailRush{0%{opacity:.42;transform:translate(0)rotate(-8deg)}to{opacity:.92;transform:translate(26px)rotate(-8deg)}}@keyframes ringPulse{0%{opacity:.76;transform:scale(.98)}to{opacity:1;transform:scale(1.04)}}.panel{text-align:center;padding:18px}.panel h1,.panel h2{letter-spacing:-.06em;text-wrap:balance;margin-bottom:8px;font-size:clamp(42px,9vw,70px);line-height:.92}.panel p{color:var(--muted);text-wrap:balance;font-size:clamp(16px,4vw,20px);line-height:1.36}.warning{font-weight:800;color:#d93643!important;font-size:clamp(14px,3.5vw,17px)!important}.status{text-align:center;color:var(--blue);font-weight:1000}.wide{width:100%}.panel-character-wrap{pointer-events:none;place-items:center;height:142px;margin:0 auto 12px;display:grid;position:relative}.panel-character-wrap:before{content:"";filter:blur(8px);background:#3047ff14;border-radius:999px;width:205px;height:108px;position:absolute}.panel-character{object-fit:contain;filter:drop-shadow(5px 6px #08081626);width:194px;height:166px;animation:1.8s ease-in-out infinite alternate idleRunner;position:relative;transform:rotate(-5deg)}@keyframes idleRunner{0%{transform:translateY(0)rotate(-5deg)}to{transform:translateY(-7px)rotate(3deg)}}.result-tier{background:var(--yellow);border:3px solid var(--ink);box-shadow:3px 3px 0 var(--shadow-red), 6px 6px 0 var(--shadow-blue);border-radius:999px;padding:8px 12px 7px;font-weight:1000;display:inline-flex;color:var(--ink)!important}.actions{grid-template-columns:1fr 1fr;gap:10px;margin-top:16px;display:grid}.battle-screen{min-height:0}.game-shell.mode-battle.battle-playing{grid-template-rows:auto minmax(0,1fr);overflow:hidden}.game-shell.mode-battle.battle-playing .battle-screen{min-height:0}.battle-panel{align-content:center;gap:14px;display:grid}.battle-panel-playing{min-height:0;box-shadow:none;background:0 0;border:0;grid-template-rows:auto minmax(0,1fr);gap:10px;padding:0;display:grid;overflow:hidden}.battle-panel-result{gap:16px;padding:clamp(16px,4vw,22px)}.game-shell.mode-battle.battle-rating{grid-template-rows:auto minmax(0,1fr);overflow:hidden}.game-shell.mode-battle.battle-rating .battle-screen{min-height:0;display:grid}.battle-panel-rating{grid-template-rows:auto minmax(0,1fr) auto auto;align-content:stretch;min-height:0;overflow:hidden}.battle-panel h2{letter-spacing:0;font-size:clamp(30px,7.2vw,52px)}.battle-actions{grid-template-columns:1fr}.battle-versus,.battle-score-grid{gap:10px;display:grid}.battle-live-hud{border:4px solid var(--ink);box-shadow:4px 4px 0 var(--shadow-red), 8px 8px 0 var(--shadow-blue);background:#ffffffeb;border-radius:24px;gap:8px;padding:12px;display:grid}.battle-live-time{justify-content:space-between;align-items:center;gap:10px;display:flex}.battle-live-time small,.battle-live-score small{color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:1000}.battle-live-time strong{color:var(--blue);font-size:clamp(24px,7vw,38px);line-height:1}.battle-live-score{grid-template-columns:1fr 1fr;gap:8px;display:grid}.battle-live-score span{background:#3047ff0f;border:2px solid #3047ff24;border-radius:16px;min-width:0;padding:10px 12px;display:grid}.battle-live-score strong{color:var(--blue);text-overflow:ellipsis;font-size:clamp(34px,11vw,56px);line-height:.95;overflow:hidden}.battle-live-hud .status,.battle-live-hud .warning{margin:0;font-size:clamp(14px,3.4vw,18px)!important}.battle-matchup{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:stretch;gap:8px;display:grid}.battle-matchup b{border:3px solid var(--ink);background:var(--yellow);width:42px;height:42px;color:var(--ink);box-shadow:3px 3px 0 var(--shadow-red);border-radius:999px;align-self:center;place-items:center;font-size:14px;display:grid}.battle-player-card{background:#3047ff0f;border:3px solid #08081633;border-radius:18px;align-content:center;min-width:0;min-height:76px;padding:12px 10px;display:grid}.battle-player-card small,.battle-score-grid small{color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:1000}.battle-player-card strong{min-width:0;color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:clamp(15px,3.8vw,20px);overflow:hidden}.battle-versus span,.battle-score-grid span{min-width:0;color:var(--ink);background:#3047ff0f;border:3px solid #08081629;border-radius:18px;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;font-weight:1000;display:flex}.battle-versus span.battle-opponent-waiting{text-align:center;justify-content:center}.matchmaking-timer{background:#ffe98a61;border:3px solid #0808162e;border-radius:18px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;min-height:58px;padding:12px 14px;font-weight:1000;display:grid;position:relative;overflow:hidden}.matchmaking-timer span{min-width:0;color:var(--muted);text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap;font-size:12px;overflow:hidden}.matchmaking-timer strong{color:var(--blue);font-variant-numeric:tabular-nums;font-size:clamp(26px,7vw,38px);line-height:1}.matchmaking-timer i{background:linear-gradient(90deg, var(--blue), var(--shadow-red));transform-origin:0;height:6px;transition:transform .22s linear;position:absolute;inset:auto 0 0}.battle-score-grid-large{grid-template-columns:1fr 1fr}.battle-score-grid-large span{justify-items:center;gap:2px;min-height:118px;display:grid}.battle-result-scores{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(10px,3vw,16px);display:grid}.battle-result-score-card{background:#3047ff0f;border:3px solid #08081629;border-radius:20px;grid-template-rows:28px 1fr 24px;justify-items:center;min-width:0;min-height:124px;padding:14px 10px 12px;display:grid}.battle-result-score-card span{max-width:100%;color:var(--ink);text-overflow:ellipsis;white-space:nowrap;align-self:start;font-size:clamp(17px,4.8vw,24px);font-weight:1000;line-height:1;overflow:hidden}.battle-result-score-card strong{color:var(--blue);font-variant-numeric:tabular-nums;letter-spacing:0;align-self:center;font-size:clamp(48px,14vw,72px);line-height:.92}.battle-result-score-card small{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;align-self:end;font-size:12px;font-weight:1000}.battle-score-grid strong{color:var(--blue);font-size:clamp(26px,8vw,42px);line-height:1}.battle-countdown{color:var(--blue);text-shadow:5px 5px #ff404647;font-size:clamp(82px,24vw,132px);line-height:.9}.battle-sync-note{margin:0;font-weight:800;color:var(--muted)!important;font-size:clamp(13px,3.3vw,16px)!important}.battle-rating-change{background:#ffe98a57;border:3px solid #08081629;border-radius:18px;grid-template-columns:minmax(72px,1fr) auto minmax(42px,1fr);align-items:center;gap:10px;padding:12px 14px;font-weight:1000;display:grid}.battle-rating-change span,.battle-rating-change em{color:var(--muted)}.battle-rating-change strong{color:var(--ink);text-align:center;white-space:nowrap}.battle-rating-change em{color:var(--blue);text-align:right;white-space:nowrap;font-style:normal;font-weight:1000}.battle-tap-button{touch-action:manipulation;width:100%;height:100%;min-height:0;margin-top:0;overflow:hidden}.battle-tap-button .tap-character{width:min(340px,76vw);max-height:270px;margin-top:clamp(56px,11dvh,96px)}.battle-tap-button .phrase-bubble{z-index:5;max-width:min(68%,280px);padding:10px 14px 9px;font-size:clamp(13px,3.4vw,17px);line-height:1;top:clamp(18px,4dvh,34px)}.battle-tap-button .phrase-bubble:after{width:14px;height:14px;bottom:-11px}.battle-tap-button strong{font-size:clamp(62px,18vw,104px)}.battle-rating-list{gap:8px;max-height:min(44dvh,380px);margin:0;padding:0 2px 0 0;list-style:none;display:grid;overflow-y:auto}.battle-rating-list li{background:#3047ff0f;border:2px solid #3047ff1f;border-radius:14px;align-items:center;gap:10px;padding:11px 12px;display:flex}.battle-rating-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.battle-rating-header h2{margin-bottom:0}.battle-panel-rating .battle-rating-header{text-align:left;justify-self:stretch;gap:8px;width:100%;display:grid}.battle-panel-rating .battle-rating-header>*,.battle-panel-rating .battle-rating-controls>div{min-width:0}.battle-panel.battle-panel-rating h2{font-size:clamp(28px,7.8vw,42px);line-height:.96}.battle-rating-controls{grid-template-columns:minmax(0,1fr) 84px;justify-self:stretch;align-items:flex-start;gap:10px;width:100%;display:grid}.battle-rating-controls .leaderboard-action{margin-top:6px}.battle-rating-action-slot{justify-items:end;width:84px;min-width:0;display:grid}.battle-rating-action-slot .leaderboard-action{text-align:center;width:100%}.leaderboard-action-placeholder{visibility:hidden;pointer-events:none}.battle-panel-rating .leaderboard-subtitle{justify-content:flex-start;margin-top:8px}.battle-panel-rating .battle-rating-list{-webkit-overflow-scrolling:touch;min-height:0;max-height:none}.battle-panel-rating .battle-rating-current{margin-top:0;padding-top:8px}.battle-panel-rating>.secondary-button.wide{margin-top:0}.battle-rating-current .battle-rating-list{max-height:none;overflow:visible}.leaderboard-card{margin-bottom:max(4px, env(safe-area-inset-bottom));padding:16px}.leaderboard-screen{flex:auto;min-height:0}.leaderboard-full-card{min-height:0;max-height:calc(var(--tg-viewport-stable-height,100dvh) - 112px);flex-direction:column;display:flex}.leaderboard-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.leaderboard-card h2{letter-spacing:-.05em;margin:0;font-size:22px}.leaderboard-tabs{background:#ffffffb8;border:2px solid #08081624;border-radius:999px;align-items:center;gap:4px;margin-top:6px;padding:3px;display:inline-flex}.leaderboard-tabs button{min-height:28px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:1000}.leaderboard-tabs button.is-active{color:var(--cream);background:var(--blue);box-shadow:2px 2px 0 var(--shadow-red)}.leaderboard-subtitle{color:var(--muted);flex-wrap:wrap;align-items:center;gap:3px 8px;margin:2px 0 0;font-size:12px;font-weight:800;display:flex}.leaderboard-subtitle span{color:var(--blue);white-space:nowrap;font-weight:1000}.leaderboard-action{border:3px solid var(--ink);min-height:38px;color:var(--ink);background:var(--yellow);box-shadow:3px 3px 0 var(--shadow-red), 6px 6px 0 var(--shadow-blue);cursor:pointer;border-radius:999px;flex:none;padding:8px 12px 7px;font-size:13px;font-weight:1000}.leaderboard-card ol{gap:8px;margin:0;padding:0;list-style:none;display:grid}.leaderboard-list-full{-webkit-overflow-scrolling:touch;padding-right:2px;overflow-y:auto}.leaderboard-list.is-refreshing{opacity:.62;pointer-events:none}.leaderboard-loading{min-height:82px;color:var(--muted);place-items:center;gap:8px;padding:12px;font-weight:900;display:grid}.leaderboard-loading span{border:4px solid #3047ff29;border-top-color:var(--blue);border-right-color:var(--shadow-red);border-radius:50%;width:34px;height:34px;animation:.72s linear infinite leaderboardSpin}.leaderboard-loading p{margin:0;font-size:13px}.leaderboard-card li{background:#3047ff0f;border:2px solid #3047ff1f;border-radius:16px;align-items:center;gap:10px;padding:11px 12px;font-weight:800;display:flex}.leaderboard-rank{color:var(--blue);flex:0 0 42px;font-weight:1000}.leaderboard-player{flex:auto;gap:1px;min-width:0;display:grid}.leaderboard-player>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.leaderboard-player small{color:var(--muted);font-size:11px;font-weight:800}.leaderboard-card li strong{color:var(--blue)}.leaderboard-current{border-top:2px dashed #0808162e;margin-top:12px;padding-top:10px}.leaderboard-current-label{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;margin-bottom:6px;font-size:11px;font-weight:1000;display:block}.leaderboard-card li.is-current{background:#ffe98a80;border-color:#0808164d}.leaderboard-list li.rank-one,.battle-rating-list li.rank-one{background:linear-gradient(135deg,#ffe670c7,#ffffffeb);border-color:#f5b2009e;box-shadow:4px 4px #f5b20038}.leaderboard-list li.rank-two,.battle-rating-list li.rank-two{background:linear-gradient(135deg,#dee8ffeb,#ffffffeb);border-color:#5876be5c;box-shadow:4px 4px #3047ff24}.leaderboard-list li.rank-three,.battle-rating-list li.rank-three{background:linear-gradient(135deg,#ffd0b0db,#ffffffeb);border-color:#dd6f3a6b;box-shadow:4px 4px #ff404621}.leaderboard-list li.rank-one .leaderboard-rank,.battle-rating-list li.rank-one .leaderboard-rank{color:#9b6900}.leaderboard-list li.rank-two .leaderboard-rank,.battle-rating-list li.rank-two .leaderboard-rank{color:#425bb6}.leaderboard-list li.rank-three .leaderboard-rank,.battle-rating-list li.rank-three .leaderboard-rank{color:#a9572b}@keyframes leaderboardSpin{to{transform:rotate(360deg)}}@media (max-width:520px){.tap-page{padding:max(6px, env(safe-area-inset-top)) max(10px, env(safe-area-inset-right)) max(14px, calc(env(safe-area-inset-bottom) + 6px)) max(10px, env(safe-area-inset-left))}.game-shell{gap:10px;width:100%}.pill,.timer{padding:9px 14px 7px;font-size:17px}.pill{white-space:nowrap;text-overflow:ellipsis;max-width:calc(100% - 102px);overflow:hidden}.score-card,.leaderboard-card,.panel{box-shadow:5px 5px 0 var(--shadow-red), 10px 10px 0 var(--shadow-blue), 0 12px 28px #14142214;border-radius:24px}.score-card{padding:14px 16px 12px}.tap-button{border-radius:30px;min-height:clamp(360px,48dvh,460px)}.tap-button:before{border-radius:24px;inset:14px}.tap-sticker{padding:8px 11px 7px;font-size:12px;top:14px;right:14px}.tap-badge{padding:8px 10px 7px;font-size:10px;bottom:14px;left:14px}.tap-ring{width:188px;height:188px;top:98px}.tap-character{width:min(254px,68vw);max-height:194px;margin-top:62px}.tap-button strong{font-size:clamp(54px,18vw,88px)}.tap-button em{font-size:20px}.phrase-bubble{max-width:min(76%,252px);padding:11px 13px 10px;font-size:15px;top:150px}.panel{padding:16px}.panel h1,.panel h2{font-size:clamp(34px,10.5vw,52px)}.panel p{font-size:15px}.panel-character-wrap{height:124px;margin:0 auto 10px}.panel-character{width:168px;height:142px}.leaderboard-card li{padding:10px 12px}.actions{grid-template-columns:1fr}}@media (max-height:760px){.tap-button{min-height:336px}.score-card{padding:14px 16px 12px}.score-card strong{font-size:clamp(52px,19vw,88px)}.tap-ring{width:172px;height:172px;top:92px}.tap-character{width:min(222px,56vw);max-height:164px;margin-top:54px}.panel-character-wrap{height:100px;margin-bottom:8px}.panel-character{width:144px;height:122px}.phrase-bubble{max-width:min(72%,228px);font-size:14px;top:132px}}.game-shell{flex-direction:column;grid-template-rows:none;display:flex}.screen,.screen-pop{width:100%;animation:.32s cubic-bezier(.18,.9,.22,1) both screenIn}.screen{flex:none}.intro-screen,.transition-screen,.countdown-screen,.result-screen,.error-screen{align-items:start;display:grid}.play-screen{flex:auto;grid-template-rows:auto minmax(420px,1fr);gap:12px;min-height:0;display:grid}.intro-panel,.loading-panel,.result-panel{position:relative;overflow:hidden}.intro-panel:after,.loading-panel:after,.result-panel:after{content:"";opacity:.065;pointer-events:none;background:url(/assets/fast-character-v3.png) 50%/contain no-repeat;width:170px;height:150px;position:absolute;bottom:-40px;right:-34px;transform:rotate(-8deg)}.transition-screen .panel{align-content:center;place-items:center;gap:10px;min-height:300px;display:grid}.mini-runner{place-items:center;width:170px;height:120px;display:grid;overflow:hidden}.mini-runner img{object-fit:contain;filter:drop-shadow(5px 6px #08081624);width:150px;height:120px;animation:.42s ease-in-out infinite alternate miniRun}.countdown-screen{place-items:center}.countdown-card{isolation:isolate;border:5px solid var(--ink);width:min(100%,440px);min-height:min(62vh,520px);color:var(--cream);box-shadow:7px 7px 0 var(--shadow-red), 14px 14px 0 var(--shadow-blue), 0 28px 70px #3047ff2e;background:radial-gradient(circle at 34% 24%,#fff3,#0000 24%),linear-gradient(#4158ff 0%,#3047ff 58%,#263edb 100%);border-radius:38px;align-content:center;place-items:center;gap:10px;padding:28px;display:grid;position:relative;overflow:hidden}.countdown-card:before{content:"";pointer-events:none;border:2px solid #ffffff38;border-radius:28px;position:absolute;inset:22px}.countdown-card:after{content:"";pointer-events:none;background:#ffffff52;border-radius:999px;width:72%;height:18px;animation:.44s linear infinite countdownTrail;position:absolute;top:42%;left:-25%;transform:rotate(-8deg);box-shadow:0 -54px #ffffff24,18px 58px #ffffff21}.countdown-label{z-index:1;border:3px solid var(--ink);background:var(--yellow);color:var(--ink);letter-spacing:.12em;text-transform:uppercase;box-shadow:4px 4px 0 var(--shadow-red);border-radius:999px;padding:8px 13px 7px;font-size:13px;font-weight:1000;position:relative}.countdown-card strong{z-index:1;color:var(--cream);letter-spacing:-.1em;text-shadow:6px 6px #08081647,10px 10px #ff404661;font-size:clamp(110px,35vw,190px);line-height:.78;animation:.36s cubic-bezier(.2,1.35,.3,1) both countdownPop;position:relative}.countdown-card img{z-index:1;object-fit:contain;filter:drop-shadow(8px 8px #08081629);width:min(210px,54vw);max-height:160px;animation:.38s ease-in-out infinite alternate tapRunner;position:relative}.state-countdown .timer{color:var(--cream);background:var(--red);min-width:96px}.state-playing .leaderboard-card{display:none}@keyframes screenIn{0%{opacity:0;filter:blur(4px);transform:translateY(18px)scale(.97)rotate(-.35deg)}to{opacity:1;filter:blur();transform:translateY(0)scale(1)rotate(0)}}@keyframes countdownPop{0%{opacity:0;transform:scale(.55)rotate(-8deg)}70%{opacity:1;transform:scale(1.12)rotate(2deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes countdownTrail{0%{opacity:.36;transform:translate(0)rotate(-8deg)}to{opacity:.92;transform:translate(55px)rotate(-8deg)}}@keyframes miniRun{0%{transform:translate(-8px)translateY(2px)rotate(-6deg)}to{transform:translate(10px)translateY(-4px)rotate(3deg)}}@media (max-width:520px){.play-screen{grid-template-rows:auto minmax(380px,1fr)}.countdown-card{border-radius:32px;min-height:min(58vh,430px)}.countdown-card strong{font-size:clamp(92px,34vw,150px)}}@media (max-height:760px){.countdown-card{min-height:310px}.countdown-card img{width:min(170px,46vw);max-height:120px}}.intro-panel{align-content:start;gap:12px;min-height:auto;padding-top:18px;padding-bottom:18px;display:grid}.intro-panel>*{margin:0}.intro-panel .panel-character-wrap{margin:0 auto 6px}.intro-panel h1{margin-top:4px;margin-bottom:4px}.intro-panel .wide{margin-top:10px}.stable-screen{gap:10px}.tap-copy{z-index:2;justify-items:center;display:grid;position:relative}.phase-overlay{text-align:center;z-index:4;pointer-events:none;justify-items:center;gap:10px;width:calc(100% - 52px);display:grid;position:absolute;top:18px;left:50%;transform:translate(-50%)}.overlay-pill{border:3px solid var(--ink);background:var(--yellow);color:var(--ink);letter-spacing:.12em;text-transform:uppercase;box-shadow:4px 4px 0 var(--shadow-red);border-radius:999px;justify-content:center;align-items:center;padding:8px 13px 7px;font-size:13px;font-weight:1000;display:inline-flex}.countdown-overlay strong{color:var(--cream);letter-spacing:-.1em;text-shadow:6px 6px #08081647,10px 10px #ff404661;margin:0;font-size:clamp(94px,30vw,164px);line-height:.82;animation:.36s cubic-bezier(.2,1.35,.3,1) both countdownPop}.loading-overlay h3{color:var(--cream);letter-spacing:-.05em;text-shadow:4px 4px #08081638;margin:0;font-size:clamp(28px,7vw,42px);line-height:.95}.loading-overlay p{color:#fff0b6e6;max-width:280px;margin:0;font-weight:800;line-height:1.2}.tap-button.is-countdown,.tap-button.is-loading{cursor:default}.tap-button.is-countdown .tap-copy,.tap-button.is-loading .tap-copy{opacity:.12;transform:translateY(8px)}.tap-button.is-countdown .tap-badge,.tap-button.is-loading .tap-badge{opacity:.32}.tap-button.is-countdown .speed-trail,.tap-button.is-loading .speed-trail{opacity:.7;animation:.32s linear infinite trailRush}.tap-button.is-countdown .tap-ring,.tap-button.is-loading .tap-ring{animation:.55s ease-in-out infinite alternate ringPulse}@media (max-width:520px){.intro-panel{gap:12px;padding-top:18px;padding-bottom:18px}.intro-panel .panel-character-wrap{height:118px;margin:0 auto 12px}.intro-panel .panel-character{width:164px;height:140px}.phase-overlay{width:calc(100% - 36px);top:16px}.tap-button.is-countdown .tap-character,.tap-button.is-loading .tap-character{margin-top:124px}.loading-overlay h3{font-size:28px}.loading-overlay p{font-size:14px}}@media (max-height:760px){.phase-overlay{top:14px}.phrase-bubble{top:96px}.tap-button.is-countdown .tap-character,.tap-button.is-loading .tap-character{margin-top:100px}.intro-panel{gap:10px;padding-top:16px;padding-bottom:16px}.intro-panel .panel-character-wrap{height:104px;margin-bottom:10px}}:root{--tg-safe-top:0px;--tg-safe-right:0px;--tg-safe-bottom:0px;--tg-safe-left:0px;--tg-content-safe-top:0px;--tg-content-safe-right:0px;--tg-content-safe-bottom:0px;--tg-content-safe-left:0px;--tg-viewport-height:100dvh;--tg-viewport-stable-height:100dvh;--tg-ui-top:0px}body.tap-mini-app-body{overscroll-behavior:none;background:#f6f4f2}body.tap-game-active{height:var(--tg-viewport-stable-height,100dvh);overflow:hidden}.tap-page{width:100%;min-height:100svh;min-height:var(--tg-viewport-stable-height,100dvh);padding:max(8px, var(--tg-ui-top), var(--tg-content-safe-top), var(--tg-safe-top), env(safe-area-inset-top)) max(10px, var(--tg-content-safe-right), var(--tg-safe-right), env(safe-area-inset-right)) max(12px, calc(var(--tg-content-safe-bottom) + 8px), calc(var(--tg-safe-bottom) + 8px), calc(env(safe-area-inset-bottom) + 8px)) max(10px, var(--tg-content-safe-left), var(--tg-safe-left), env(safe-area-inset-left));overscroll-behavior:none;touch-action:manipulation;place-items:stretch center;overflow-x:hidden}.tap-page.is-telegram{padding-right:max(22px, var(--tg-content-safe-right), var(--tg-safe-right), env(safe-area-inset-right));padding-left:max(22px, var(--tg-content-safe-left), var(--tg-safe-left), env(safe-area-inset-left));background:radial-gradient(circle at 12% 8%,#3047ff14,#0000 20%),radial-gradient(circle at 92% 10%,#ff40460f,#0000 18%),linear-gradient(#fff 0%,#f6f4f2 42%,#f3f0ed 100%)}.tap-layout-loader{place-items:center}.loader-mark{border:4px solid var(--ink);background:var(--paper);min-width:138px;min-height:54px;color:var(--ink);box-shadow:4px 4px 0 var(--shadow-red), 8px 8px 0 var(--shadow-blue);border-radius:999px;justify-content:center;place-items:center;gap:10px;padding:10px 20px 8px 16px;font-size:22px;font-weight:1000;animation:.72s ease-in-out infinite alternate loaderBob;display:inline-flex;position:relative;overflow:hidden}.loader-mark:before{content:"";background:#3047ff38;border-radius:999px;width:54px;height:8px;animation:.58s linear infinite loaderTrail;position:absolute;top:50%;left:-24px;transform:translateY(-50%);box-shadow:-18px -14px #3047ff29,-8px 14px #ff40462e}.loader-runner{z-index:1;border:3px solid var(--ink);background:var(--yellow);width:34px;height:34px;color:var(--ink);box-shadow:2px 2px 0 var(--shadow-red);border-radius:999px;place-items:center;line-height:1;animation:.42s ease-in-out infinite alternate loaderRunner;display:grid;position:relative}.loader-mark strong{z-index:1;position:relative}@keyframes loaderBob{0%{opacity:.88;transform:translateY(0)rotate(-.4deg)}to{opacity:1;transform:translateY(-4px)rotate(.4deg)}}@keyframes loaderTrail{0%{opacity:.2;transform:translate(-12px)translateY(-50%)}to{opacity:.9;transform:translate(182px)translateY(-50%)}}@keyframes loaderRunner{0%{transform:translateY(2px)rotate(-8deg)}to{transform:translateY(-2px)rotate(8deg)}}.game-shell{width:min(100%,480px);min-height:calc(var(--tg-viewport-stable-height,100dvh) - max(8px, var(--tg-ui-top), var(--tg-content-safe-top), var(--tg-safe-top)) - max(12px, calc(var(--tg-content-safe-bottom) + 8px), calc(var(--tg-safe-bottom) + 8px)));gap:clamp(10px,1.5dvh,14px);margin:0 auto}.tap-page.is-telegram .game-shell{width:min(100%,420px)}.topbar{padding-top:0}.tap-page.is-telegram .topbar{justify-content:space-between;align-items:center;min-height:48px;padding:0 10px 0 2px}.tap-page.is-telegram .game-shell.state-idle,.tap-page.is-telegram .game-shell.state-finished,.tap-page.is-telegram .game-shell.state-error{padding-top:clamp(8px,1.4dvh,16px)}.pill,.timer{box-shadow:3px 3px 0 var(--shadow-red), 6px 6px 0 var(--shadow-blue);background:#fffffff0;border-width:3px;padding:8px 14px 7px}.tap-page.is-telegram .pill,.tap-page.is-telegram .timer{max-width:calc(50% - 8px);min-height:42px;padding:8px 12px 7px;font-size:clamp(15px,3.9vw,20px)}.tap-page.is-telegram .pill{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.timer{background:var(--yellow);min-width:76px}.tap-page.is-telegram .timer{white-space:nowrap;flex:none;width:clamp(62px,18vw,76px);min-width:0;padding-left:8px;padding-right:8px}.tap-page.is-telegram .timer.is-live{width:clamp(64px,17vw,72px);font-size:clamp(14px,3.4vw,18px)}.panel,.score-card,.leaderboard-card,.tap-button{border-width:4px}.intro-panel{gap:8px;padding:clamp(12px,3vw,16px)}.tap-page.is-telegram .intro-panel{align-content:center;gap:14px;min-height:clamp(430px,52dvh,560px);padding:clamp(20px,4vw,26px) clamp(14px,4vw,22px)}.tap-page.is-telegram .result-panel,.tap-page.is-telegram .error-screen .panel{align-content:center;gap:10px;min-height:clamp(300px,38dvh,420px);display:grid}.intro-panel h1{font-size:clamp(30px,8vw,52px)}.intro-panel p{max-width:390px;margin:0 auto}.primary-button,.secondary-button{min-height:54px;box-shadow:4px 4px 0 var(--shadow-red), 8px 8px 0 var(--shadow-blue);border-width:3px;border-radius:18px;padding:12px 18px 10px}.play-screen{grid-template-rows:auto minmax(360px,1fr);gap:10px;min-height:0}.game-shell.state-countdown,.game-shell.state-playing,.game-shell.state-submitting{overflow:hidden}.game-shell.state-countdown .play-screen,.game-shell.state-playing .play-screen,.game-shell.state-submitting .play-screen{flex:auto}.game-shell.state-countdown .tap-button,.game-shell.state-playing .tap-button,.game-shell.state-submitting .tap-button{height:100%;min-height:0}.tap-page.is-telegram .game-shell.state-countdown,.tap-page.is-telegram .game-shell.state-playing,.tap-page.is-telegram .game-shell.state-submitting{gap:clamp(8px,1.2dvh,12px)}.score-card{box-shadow:4px 4px 0 var(--shadow-red), 8px 8px 0 var(--shadow-blue), 0 10px 24px #14142212;border-radius:22px;padding:10px 14px 9px}.tap-page.is-telegram .score-card{min-height:108px}.score-card strong{font-size:clamp(48px,15dvh,86px)}.speed{font-size:clamp(14px,3.2vw,18px)}.tap-button{min-height:clamp(380px,55dvh,560px);box-shadow:5px 5px 0 var(--shadow-red), 10px 10px 0 var(--shadow-blue), 0 22px 54px #3047ff24;-webkit-user-select:none;-webkit-touch-callout:none;border-radius:30px}.tap-page.is-telegram .tap-button{box-shadow:4px 4px 0 var(--shadow-red), 8px 8px 0 var(--shadow-blue), 0 18px 44px #3047ff1f}.tap-page.is-telegram .tap-button.is-playing{animation:.66s ease-in-out infinite alternate fastPulse}.tap-page.is-telegram .tap-button:active,.tap-page.is-telegram .tap-button.is-playing:active{box-shadow:3px 3px 0 var(--shadow-red), 6px 6px 0 var(--shadow-blue), 0 14px 34px #3047ff1f;transform:scale(.992)}.tap-button:before{border-radius:22px;inset:12px}.tap-character{width:min(310px,72vw);max-height:226px;margin-top:clamp(34px,7dvh,50px)}.tap-page.is-telegram .tap-character{margin-top:clamp(74px,11dvh,104px)}.tap-button.is-countdown .tap-character,.tap-button.is-loading .tap-character{margin-top:clamp(70px,13dvh,98px)}.tap-ring{width:min(178px,44vw);height:min(178px,44vw);top:clamp(70px,12dvh,98px)}.tap-button strong{font-size:clamp(52px,15vw,86px)}.tap-sticker{border-width:3px;padding:7px 10px 6px;font-size:11px;top:14px;right:14px}.tap-badge{padding:8px 10px 7px;font-size:10px;bottom:14px;left:14px}.phrase-bubble{border-radius:20px;max-width:min(68%,260px);padding:10px 14px 9px;font-size:clamp(14px,3.2vw,18px);line-height:1.02;top:clamp(72px,10dvh,96px)}.phase-overlay{width:calc(100% - 34px);top:14px}.countdown-overlay strong{font-size:clamp(82px,26dvh,150px)}.leaderboard-card{box-shadow:4px 4px 0 var(--shadow-red), 8px 8px 0 var(--shadow-blue), 0 12px 28px #14142212;border-radius:22px;padding:12px}.tap-page.is-telegram .leaderboard-card{padding:16px}.leaderboard-card h2{font-size:20px}.game-shell.state-idle,.game-shell.state-finished,.game-shell.state-error{padding-bottom:4px}.leaderboard-card ol{gap:6px}.leaderboard-card li{border-radius:14px;padding:8px 10px;font-size:14px}.leaderboard-action{min-height:34px;padding:7px 10px 6px;font-size:12px}.tap-page.is-telegram .game-shell.mode-battle.battle-playing,.game-shell.mode-battle.battle-playing{grid-template-rows:auto minmax(0,1fr);gap:8px;overflow:hidden}.game-shell.mode-battle.battle-playing .battle-screen{min-height:0;display:grid}.game-shell.mode-battle.battle-playing .battle-panel-playing{min-height:0}.tap-button.battle-tap-button,.tap-page.is-telegram .tap-button.battle-tap-button{height:100%;min-height:0}.battle-panel-result .battle-result-score-card{min-height:116px}.battle-panel-result .battle-rating-change{margin-top:-2px}@media (max-width:430px){.tap-page{padding:max(6px, var(--tg-ui-top), var(--tg-content-safe-top), var(--tg-safe-top), env(safe-area-inset-top)) max(8px, var(--tg-content-safe-right), var(--tg-safe-right), env(safe-area-inset-right)) max(10px, calc(var(--tg-content-safe-bottom) + 6px), calc(var(--tg-safe-bottom) + 6px), calc(env(safe-area-inset-bottom) + 6px)) max(8px, var(--tg-content-safe-left), var(--tg-safe-left), env(safe-area-inset-left))}.tap-page.is-telegram{padding-right:max(20px, var(--tg-content-safe-right), var(--tg-safe-right), env(safe-area-inset-right));padding-left:max(20px, var(--tg-content-safe-left), var(--tg-safe-left), env(safe-area-inset-left))}.game-shell{gap:8px}.tap-page.is-telegram .game-shell{gap:10px;width:min(100%,390px)}.tap-page.is-telegram .topbar{min-height:44px;padding-right:9px}.tap-page.is-telegram .pill,.tap-page.is-telegram .timer{min-height:40px;padding:7px 10px 6px;font-size:clamp(14px,3.8vw,16px)}.pill,.timer{box-shadow:3px 3px 0 var(--shadow-red), 5px 5px 0 var(--shadow-blue);padding:7px 10px 6px;font-size:15px}.pill{max-width:calc(100% - 86px)}.timer{min-width:68px}.tap-page.is-telegram .timer{width:clamp(58px,17vw,68px);min-width:0;padding-left:7px;padding-right:7px}.tap-page.is-telegram .timer.is-live{width:clamp(56px,16vw,64px);font-size:clamp(13px,3.3vw,15px)}.panel-character-wrap{height:88px;margin-bottom:4px}.panel-character{width:128px;height:108px}.intro-panel{border-radius:22px;gap:7px;padding:12px}.tap-page.is-telegram .intro-panel{gap:12px;min-height:clamp(410px,52dvh,500px);padding:18px 14px}.intro-panel h1{margin:0;font-size:clamp(28px,8.2vw,40px)}.intro-panel p{font-size:13px;line-height:1.22}.intro-panel .muted{display:none}.primary-button,.secondary-button{min-height:48px}.tap-page.is-telegram .primary-button,.tap-page.is-telegram .secondary-button{min-height:52px}.score-card{border-radius:20px;padding:8px 12px 7px}.score-card strong{font-size:clamp(44px,13dvh,76px)}.tap-button{border-radius:26px}.tap-page.is-telegram .tap-button{min-height:clamp(390px,54dvh,540px)}.tap-character{width:min(270px,66vw);max-height:196px}.tap-page.is-telegram .tap-character{margin-top:clamp(74px,10dvh,98px)}.tap-button strong{font-size:clamp(48px,14vw,76px)}.tap-button em,.leaderboard-card h2{font-size:18px}.actions{grid-template-columns:1fr}.tap-page.is-telegram .result-panel,.tap-page.is-telegram .error-screen .panel{min-height:clamp(300px,40dvh,410px)}}@media (max-height:700px){.tap-page{padding-top:max(6px, var(--tg-ui-top), var(--tg-content-safe-top), var(--tg-safe-top), env(safe-area-inset-top));padding-bottom:max(8px, calc(var(--tg-content-safe-bottom) + 4px), calc(var(--tg-safe-bottom) + 4px), calc(env(safe-area-inset-bottom) + 4px))}.tap-page.is-telegram{padding-right:max(20px, var(--tg-content-safe-right), var(--tg-safe-right), env(safe-area-inset-right));padding-left:max(20px, var(--tg-content-safe-left), var(--tg-safe-left), env(safe-area-inset-left))}.game-shell{gap:7px}.tap-page.is-telegram .game-shell{gap:8px}.pill,.timer{padding:6px 10px 5px;font-size:14px}.tap-page.is-telegram .timer{width:clamp(56px,16vw,66px);min-width:0;padding-left:7px;padding-right:7px}.score-card{padding:7px 10px 6px}.score-label{font-size:10px}.speed{font-size:13px}.tap-character{width:min(240px,62vw);max-height:174px;margin-top:34px}.tap-page.is-telegram .tap-character{margin-top:70px}.tap-ring{width:154px;height:154px;top:66px}.phrase-bubble{max-width:min(70%,232px);padding:9px 12px 8px;font-size:13px;top:66px}.tap-badge{display:none}.intro-panel .panel-character-wrap{height:84px}.tap-page.is-telegram .intro-panel{gap:8px;min-height:clamp(360px,50dvh,440px);padding-top:14px;padding-bottom:14px}.intro-panel .panel-character{width:124px;height:104px}.intro-panel p{font-size:13px}.leaderboard-card{padding:10px}.leaderboard-card li:nth-child(n+4){display:flex}}
