/* Menu system. Gameplay projection, physics and input dimensions are untouched. */
:root{--club-bg:#0c0c10;--club-panel:#17171d;--club-line:#303039;--club-muted:#b1aebc;--club-pink:#ff2e93}
body:not(.arena-playing){background:#08080b;color:#f7f6fa;padding:0;font-family:Arial,"Segoe UI",sans-serif}
.device-shell{width:min(100%,520px);max-width:520px;background:var(--club-bg);padding:20px 18px calc(92px + env(safe-area-inset-bottom,0px));margin:0 auto;min-height:100dvh;border:0;box-shadow:0 0 90px #0008}
.topbar{padding:0 0 20px;margin:0;gap:12px;border:0;background:none;box-shadow:none}
.identity{min-width:0;gap:10px}.identity>div{min-width:0}.identity strong{font-size:13px;max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.identity small{font-size:8px;color:#b8b4c2;letter-spacing:1.3px}
.avatar-mini{width:38px;height:38px;border-radius:12px;background:#25202a;border:1px solid #684058;color:#ff93c6;font-size:12px}
.mp-balance{min-height:42px;min-width:87px;border:1px solid #4a3542;border-radius:12px;background:#241720;padding:7px 12px;color:white;box-shadow:none}.mp-balance strong{font-size:17px;color:#fff}.mp-balance span{color:#ff90c3;font-size:8px;letter-spacing:.4px}
.mp-balance:before,.mp-balance:after{display:none}
.mp-balance span{display:block;width:auto;height:auto;border:0;border-radius:0;background:none;line-height:1.5;text-align:left}
.hero-content p{display:none}
.menu-modal-backdrop{position:fixed;inset:0;background:#08050bc9;backdrop-filter:blur(5px);z-index:39}.menu-modal-backdrop[hidden]{display:none}
.roster-failed .hero-athletes:after,.roster-failed .store-thumb:has(canvas):after,.roster-failed .product-art:has(canvas):after{content:"Изображение недоступно";display:grid;place-items:center;height:100%;font-size:10px;color:#cdb7ca}.roster-failed [data-menu-athlete]{display:none}
button{font-family:inherit}button:focus-visible,summary:focus-visible{outline:3px solid #ff9fd0;outline-offset:4px}button:disabled{cursor:not-allowed}
.cta{min-height:50px;border-radius:12px;clip-path:none;font-family:Arial,sans-serif;font-size:14px;font-weight:800;letter-spacing:.5px;box-shadow:none}.cta.primary{background:linear-gradient(105deg,#e8157a,#ff489f);color:white;border:1px solid #ff65b0;box-shadow:0 7px 23px #f5238820}.cta.outline{background:#19191f;border:1px solid #44434e;color:#fff}
.cta:disabled{opacity:.45;box-shadow:none}.kicker{font:700 9px/1.5 Arial,sans-serif;letter-spacing:1.8px;color:var(--club-muted)}.kicker.pink{color:#ff78b5}
.arena-hero{height:360px;isolation:isolate;border:1px solid #55404f;border-radius:22px;overflow:hidden;background:radial-gradient(ellipse at 80% 40%,#70405b 0,transparent 55%),linear-gradient(135deg,#25202d,#14131b);margin:0;box-shadow:none}
.arena-hero:before{content:"";position:absolute;inset:0;background:linear-gradient(165deg,transparent 55%,#ff2e930c 55%);z-index:-1}.arena-hero:after{display:none}
.hero-court{inset:150px -100px -170px -40px;transform:rotate(-17deg);opacity:.16;z-index:-1}.hero-court i{border-color:#ffc7e3}
.hero-content{position:relative;inset:auto;padding:25px 22px;width:60%;z-index:2;background:none}.hero-content .kicker{font-size:8px;letter-spacing:1.3px;white-space:nowrap}.hero-content h1{font:italic 800 54px/.94 Arial,sans-serif;letter-spacing:-3px;margin:15px 0 14px;text-shadow:none;color:white}.hero-content h1 em{color:#ff70b3;font-style:normal}.hero-content p{font-size:12px;line-height:1.6;color:#c7c2d0;max-width:200px;margin:0}
.hero-athletes{position:absolute;right:-16px;top:28px;width:64%;height:245px;pointer-events:none;z-index:1}.hero-athletes canvas{position:absolute;bottom:0;width:80%;height:100%;object-fit:contain;filter:drop-shadow(0 10px 12px #0005)}.hero-athletes canvas:first-child{right:0;transform:translateX(10%) scale(.95)}.hero-athletes canvas:last-child{right:30%;transform:translateY(8%) scale(1.08)}
.hero-launch{position:absolute;bottom:0;left:0;right:0;padding:17px 20px;background:#0c0b11e8;border-top:1px solid #ffffff1a;display:grid;gap:12px;z-index:3}.hero-launch>div{display:flex;align-items:center;justify-content:space-between;gap:8px}.hero-launch .kicker{font-size:8px;letter-spacing:1px}.hero-launch b{font-size:10px;color:#d7d1df}.hero-launch .cta{width:100%;min-height:48px;margin:0;display:flex;align-items:center;justify-content:center;gap:16px}.hero-launch svg{width:15px;height:15px;fill:currentColor}
.home-shortcuts{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0 26px}.home-shortcuts button{display:flex;align-items:center;gap:9px;min-height:56px;padding:12px;border-radius:13px;background:#1b1a21;border:1px solid #34323e;color:#e9e5ee;font-size:11px;font-weight:700}.home-shortcuts svg{width:19px;height:19px;fill:#c2a4b6}.home-shortcuts b{margin-left:auto;color:#988795}.coin-icon{display:grid;place-items:center;width:24px;height:24px;border:1px solid #9e557a;border-radius:50%;font-size:8px;color:#ff9ccc}
.section-title{margin:24px 0 13px;gap:10px}.section-title h2{font:800 17px/1.25 Arial,sans-serif;letter-spacing:-.4px;margin:4px 0}.section-title .kicker{font-size:8px;letter-spacing:1.2px}.status-pill{font-size:7px;padding:6px 8px;background:#142820;border:1px solid #37654c;color:#9cddba;white-space:nowrap}
.mode-grid{gap:10px}.mode-card{min-height:97px;padding:16px 12px 14px;text-align:left;border-radius:14px;border:1px solid #36353e;background:#1a1920;overflow:hidden;box-shadow:none;position:relative}.mode-card .court-icon{display:none}.mode-card strong{display:block;font:800 16px/1.2 Arial,sans-serif;letter-spacing:-.4px;margin:9px 0 7px}.mode-card small{font-size:10px;line-height:1.4;color:#b6b0bf}.mode-card.selected{background:linear-gradient(130deg,#432234,#25151f);border-color:#ff4c9f;box-shadow:inset 0 0 0 1px #ff4c9f}.mode-card.selected:after{content:"✓";position:absolute;right:12px;top:12px;font-size:12px;color:#ff7ab8}.mode-card.locked{opacity:.5;filter:none;background:#15151a}.mode-card.locked:after{content:"СКОРО";position:absolute;right:10px;top:10px;color:#b1a7b7;font-size:7px;letter-spacing:.7px}
.difficulty{margin:12px 0;padding:9px 11px;border:1px solid #303039;border-radius:12px;min-height:51px;background:#141419;gap:8px}.difficulty>span{font-size:8px;color:#aaa2b2;letter-spacing:.6px}.difficulty div{display:flex;gap:3px}.difficulty button{min-height:34px;padding:8px 10px;font-size:9px;border-radius:8px}.difficulty button.active{color:#ffa0cf;background:#482037}
.arena-help{background:#141419;border:1px solid #303039;border-radius:12px;padding:13px 15px;margin:12px 0}.arena-help p{font-size:11px;line-height:1.6;color:#bdb6c6}.arena-help summary{font-size:11px;color:#f5ebf5;min-height:28px;padding-top:5px}.padel-format{font-size:10px;line-height:1.6;color:#a69eaf;margin:12px 2px}.start-cta{min-height:46px;margin:12px 0 20px}
.mission-strip{border:1px solid #35313e;border-radius:14px;background:#19171f;margin:0 0 12px;padding:15px;min-height:90px}.streak{border-color:#43394b}.streak strong{color:#ff7bbb}.streak span{color:#a79baa}.mission-details b{font-size:12px;margin:5px 0 8px;color:#e9e3ee}.progress{background:#37313b;border-radius:8px;height:4px}.progress i{background:#ff51a4}.mission-meta{font-size:10px}.mission-details .kicker{font-size:8px}
.training-banner{border:1px solid #624053;border-radius:14px;background:linear-gradient(110deg,#302031,#19151f);padding:18px;min-height:92px;color:white;margin:12px 0}.training-banner small{font-size:8px;color:#d8a4c3}.training-banner strong{font:800 23px/1.2 Arial,sans-serif;letter-spacing:-1px}.training-banner>b{font-size:10px;color:#ff8dc6}
.club-discover{display:block;width:100%;padding:19px;text-align:left;border:1px solid #34303e;border-radius:14px;background:#16141c;color:#fff;margin:12px 0}.club-discover strong{display:flex;justify-content:space-between;font-size:20px;margin:8px 0}.club-discover small{font-size:11px;color:#b7aebf;line-height:1.5}
.bottom-nav{width:min(100%,520px);bottom:0;grid-template-columns:repeat(5,minmax(0,1fr));padding:9px 10px calc(10px + env(safe-area-inset-bottom,0px));border:1px solid #2f2b36;border-bottom:0;border-radius:18px 18px 0 0;background:#121016f5;gap:2px}.nav-button{min-height:44px;padding:6px 0;gap:5px;border-radius:10px;font-size:8px;letter-spacing:.35px;color:#aaa2b2}.nav-button svg{width:21px;height:21px}.nav-button.active{color:#ff71b4;background:#ff2e9312}
.page-heading{padding:12px 0 22px;margin:0}.page-heading h1{font:800 31px/1.08 Arial,sans-serif;letter-spacing:-1.4px;margin:10px 0;color:#fff;text-shadow:none}.page-heading p{font-size:12px;line-height:1.6;color:#b6aebb;max-width:370px}.page-heading .kicker{font-size:8px;letter-spacing:1.4px}
.rank-tabs,.store-tabs{display:flex;gap:6px;padding:5px;border:1px solid #34303d;background:#17151d;border-radius:12px;margin:0 0 18px}.rank-tabs button,.store-tabs button{flex:1;min-height:39px;font-size:9px;border:0;border-radius:8px;background:none;color:#aaa1b4;padding:7px 8px;white-space:nowrap}.rank-tabs button.active,.store-tabs button.active{background:#493044;color:white}.rank-tabs button:disabled{opacity:.45}.rank-row,.wallet-row{min-height:67px;border:1px solid #302c37;background:#17141c;border-radius:12px;margin:8px 0;padding:13px;gap:10px}.rank-row b,.wallet-row b{font-size:12px;line-height:1.4}.rank-row small,.wallet-row small{font-size:10px;color:#b9afc3}.rank-avatar{background:#564156}.rank-row.current{border-color:#db438b;background:#311e2b}.rank-score b{color:#f4e9f5}.rank-score small{font-size:8px}.menu-empty{border:1px dashed #514554;padding:30px 22px;border-radius:16px;color:#bfb2c8;font-size:13px;line-height:1.6}
.store-feature{border:1px solid #4a3748;border-radius:18px;background:radial-gradient(ellipse at center,#42283b,#17121c 75%);overflow:hidden}.drop-label{background:#3b2433;color:#ffabd4;font-size:8px;letter-spacing:1px;padding:10px 15px}.product-meta{padding:16px;background:#17121ad9}.product-meta strong{font-size:17px}.product-meta small{font-size:8px;color:#d0a2bf}.buy-button{border-radius:9px;background:#ff2e93;color:#fff;min-height:42px;min-width:85px;font-size:12px}.store-grid{gap:12px}.store-card{border:1px solid #36303e;border-radius:14px;background:#18141e;padding:13px;overflow:hidden}.store-card>b{font-size:12px;line-height:1.4;min-height:34px}.store-card small{font-size:8px;color:#d4a3c2}.store-card .price{font-size:13px;color:#ffadd4}.store-card button{min-height:38px;border-radius:8px;font-size:9px}.store-thumb{height:130px}.product-art{height:240px}.economy-note{font-size:10px;line-height:1.7;color:#b0a3b9;margin:17px 0}
.store-thumb canvas,.product-art canvas{width:100%;height:100%;object-fit:contain}.club-characters{background:#1a1520}.club-characters button{font-family:Arial,sans-serif;font-size:12px}
.locker-stage{height:340px;border:1px solid #473747;border-radius:22px;overflow:hidden;background:radial-gradient(ellipse at 50% 40%,#55424c,#19131e 70%)}.locker-stage:before{content:"CLUB";position:absolute;left:10px;right:10px;top:48px;font:900 100px Arial,sans-serif;letter-spacing:-7px;text-align:center;color:#ffffff09}.menu-locker-athlete{position:absolute;width:100%;height:280px;left:0;top:5px;object-fit:contain;filter:drop-shadow(0 10px 12px #0007)}.roster-ready .locker-character,.roster-ready .character-visual>img,.roster-ready #try-on-character{visibility:hidden}.locker-label{z-index:3;bottom:18px;left:18px;background:#131019ba;padding:8px 12px;border-radius:8px}.locker-label b{font-size:17px;letter-spacing:0}.locker-label small{font-size:8px;color:#c5a4b9}.locker-item-badge{z-index:2;top:14px;right:14px;font-size:7px;background:#241623;color:#edb9d6;border:1px solid #5b3b54;border-radius:6px;padding:7px}.controlled-ring{border-color:#ff76b3;bottom:50px}.loadout-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:15px 0}.loadout-slot{min-height:64px;border:1px solid #3b3041;border-radius:10px;background:#19151e;padding:12px;text-align:left}.loadout-slot b{font-size:11px;line-height:1.4}.loadout-slot small{font-size:8px;color:#ba9eb3;letter-spacing:.5px}.loadout-slot:disabled{opacity:.55}.loadout-slot.equipped{border-color:#b34681}.player-stats,.result-stats{gap:9px}.player-stats>div,.result-stats>div{border:1px solid #3a303f;border-radius:11px;background:#1c1622;padding:14px 8px}.player-stats small,.result-stats small{font-size:8px;letter-spacing:.5px;color:#bdafc6}.player-stats strong{font-size:22px;color:white}.feedback-settings{margin:22px 0 0;border:1px solid #3d3344;border-radius:13px;background:#18131e;padding:16px}.feedback-settings legend{font-size:9px;letter-spacing:1px;padding:0 7px;color:#f0b5d6}.feedback-settings label{min-height:44px;font-size:13px}.feedback-settings p{font-size:10px;line-height:1.6;color:#b8a8c2}.feedback-settings input{accent-color:#ff2e93;width:19px;height:19px}
.wallet-hero{margin:18px 0 24px;background:radial-gradient(ellipse at 40% 35%,#4c2340,#201320);border:1px solid #643955;border-radius:22px;padding:30px 20px;color:white}.wallet-hero>span{font-size:10px;color:#e8a7d0;letter-spacing:2px}.wallet-hero strong{font:800 64px/1.3 Arial,sans-serif;color:#fff}.wallet-hero i{color:#ff80bd;font-size:16px}.wallet-hero p{font-size:11px;line-height:1.6;color:#d1b3c9;letter-spacing:0}.back-button{min-height:44px;font-size:11px;color:#d5c9dd;gap:5px}.daily-quests,.quest-card{border-radius:13px}.quest-card{padding:15px;background:#1b1421}.wallet-row strong{color:#d1b8dc;font-size:12px}.wallet-row i{background:#322036;color:#ff91c7}
.club-feature{padding:24px;border:1px solid #684158;border-radius:20px;background:linear-gradient(125deg,#45283d,#1f1528);position:relative;overflow:hidden}.club-feature h2{font:800 27px/1.05 Arial;letter-spacing:-1px;margin:16px 0;color:#fff}.club-feature p{color:#d0bfda;font-size:12px;line-height:1.7;margin:0 0 18px}.club-feature .cta{width:100%;font-size:11px}
.future-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.future-card{position:relative;text-align:left;border:1px solid #3b3441;background:linear-gradient(145deg,#241d2c,#17131d);border-radius:16px;padding:18px 14px;min-height:192px;color:#dad0e2;opacity:1}.future-number{display:block;font-size:7px;letter-spacing:1.1px;color:#a693b0}.future-card>svg{position:absolute;right:13px;top:15px;width:14px;height:14px;fill:#817489}.future-card strong{display:block;font-size:19px;letter-spacing:-.6px;margin:27px 0 8px}.future-card p{font-size:11px;line-height:1.6;color:#b1a5bc;margin:0 0 16px}.future-card>small{display:inline-block;font-size:7px;letter-spacing:1.5px;border:1px solid #57425d;border-radius:5px;padding:5px 7px;color:#c49fba}.future-inline{display:grid;gap:10px;margin:20px 0}.future-button{display:flex;gap:12px;align-items:center;border:1px dashed #53405a;background:#1b1422;color:#bfb0c9;padding:16px;text-align:left;border-radius:12px;font-size:13px}.future-button svg{width:18px;height:18px;fill:#ab86a4}.future-button small{display:block;font-size:8px;color:#a690b1;line-height:1.5;margin-top:5px}
.onboarding{position:fixed;overflow-y:auto;max-height:100dvh;min-height:0;inset:0;max-width:520px;margin:auto;padding:38px 20px calc(30px + env(safe-area-inset-bottom,0px));background:radial-gradient(ellipse at 50% 25%,#3f253c,#100d15 70%);z-index:25}.onboarding-copy h1{font:800 36px/1.1 Arial;letter-spacing:-1.5px;margin:15px 0}.onboarding-copy p{font-size:12px;line-height:1.6;color:#c5b3cf}.character-grid{gap:12px;margin:24px 0}.character-card{border:1px solid #5c435e;background:#211624;border-radius:17px;padding:0 8px 20px;min-height:0;box-shadow:none}.character-card.selected{border-color:#ff70b5;box-shadow:inset 0 0 0 1px #ff70b5;background:linear-gradient(#432439,#211624)}.character-visual{height:245px;overflow:hidden}.character-visual canvas{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;z-index:2}.character-visual:after{border-color:#ff81ba;box-shadow:none}.character-card b{font:800 17px Arial;letter-spacing:0}.character-card small{color:#c9adbf;font-size:8px;margin-top:6px}.onboarding .cta{width:100%}
.try-on-preview{width:min(440px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow-y:auto;border:1px solid #845975;border-radius:19px;background:radial-gradient(ellipse at center,#533244,#16101c);padding:45px 18px 22px;z-index:40}.try-on-close{position:sticky;top:0;float:right;margin-top:-33px;right:0;width:36px;height:36px;border-radius:50%;border:1px solid #ad7b98;background:#271928;z-index:5}.try-on-stage{height:min(360px,48dvh);margin:12px 0}.try-on-stage canvas{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.roster-ready .try-on-stage:before,.roster-ready .try-on-stage:after{display:none}.try-on-preview>strong{font-size:19px}.try-on-preview>small{font-size:10px;line-height:1.6;color:#d5bed8}
.training-screen .page-heading h1{font-size:44px}.training-screen .yellow,.mode-tag{color:#ff8ec6;border-color:#70405e}.smash-panel{height:min(410px,50dvh);min-height:240px;border:1px solid #60415a;border-radius:18px;background:radial-gradient(ellipse,#3d1a32,#150e1c)}.smash-hit,.yellow-cta{background:#ff2e93;color:#fff;border-radius:12px;font:800 16px Arial}.smash-feedback{color:#ff83c2}.training-stats{gap:8px;margin:14px 0}.training-stats>div{border-color:#44314b;background:#201427;border-radius:10px}.training-stats small{font-size:8px}.training-stats strong{color:#fff}
.result-screen{background:radial-gradient(ellipse at 50% 20%,#57253f,#100d15 70%);margin:0;min-height:calc(100dvh - 112px);padding:45px 0 20px}.result-screen h1{font:800 44px/1 Arial;letter-spacing:-1.5px}.result-mark{border-color:#ff71b7;box-shadow:none}.final-score{font:800 78px/1 Arial;margin:26px 0}.final-score span:last-child{color:#fff}.result-screen .cta{margin-top:13px;width:100%}.launch-error{padding:70px 15px 20px;text-align:center}.launch-error h1{font:800 37px/1.05 Arial;letter-spacing:-1px}.launch-error p{font-size:13px;line-height:1.7}.toast{border-radius:12px;font-size:12px;line-height:1.5;width:max-content;max-width:calc(100vw - 32px);box-shadow:0 8px 30px #0006}
/* Score hierarchy stays readable without shrinking the playable court. */
#daily-quests{margin:20px 0;padding:18px;border:1px solid #3a303f;border-radius:14px;background:#1c1622;font-size:12px;line-height:1.6;color:#d0c4db}#daily-quests h2{font:800 19px Arial;margin:0 0 10px}#daily-quests>p{font-size:11px;color:#bbaeC4;margin-bottom:12px}#daily-quests button{min-height:44px;border:1px solid #77526d;border-radius:9px;background:#392232;color:#fff;padding:10px 15px;font-size:11px;margin-top:10px}#daily-quests button:disabled{color:#b6a7b9;background:#241c2a}.quest-card{display:flex;align-items:center;justify-content:space-between;gap:10px}.quest-card b{font-size:12px}.quest-card p{font-size:10px}
.hero-athletes{right:0;top:32px;height:198px;width:62%}.hero-athletes canvas:first-child{transform:scale(.95)}
#screen-arena .arena-hud{grid-template-columns:40px 100px minmax(0,1fr);gap:5px;border-radius:10px}#screen-arena #rally-label{font-size:9px;line-height:1.5;white-space:normal;letter-spacing:0}#screen-arena .scoreboard{font:800 32px Arial}#screen-arena .scoreboard span:last-child{color:#fff}
@media(max-width:360px){.device-shell{padding-inline:12px}.hero-content{padding:24px 16px}.hero-content h1{font-size:47px}.hero-content p{font-size:11px}.hero-athletes{right:-26px;width:65%}.hero-launch{padding-inline:14px}.hero-launch b{font-size:9px}.future-card{padding:16px 12px}.future-card strong{font-size:17px}.future-number{letter-spacing:.4px}.page-heading h1{font-size:28px}.store-tabs button{font-size:8px;padding-inline:5px}.character-visual{height:220px}.identity strong{max-width:140px}#screen-arena .arena-hud{grid-template-columns:35px 80px minmax(0,1fr)}}
@media(min-width:700px){body:not(.arena-playing){background:radial-gradient(ellipse at top,#2a1828,#08080b 70%)}.device-shell{margin:24px auto;border:1px solid #38303d;border-radius:24px;min-height:calc(100dvh - 48px)}.bottom-nav{bottom:0}.hero-athletes{right:0;width:60%}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
.store-tabs button,.rank-tabs button,.store-card button,.difficulty button{min-height:44px}.try-on-close{width:44px;height:44px}
.result-screen.active{width:min(100%,520px);display:block;overflow-y:auto;padding:32px 20px calc(24px + env(safe-area-inset-bottom,0px));background:radial-gradient(ellipse at 50% 15%,#57253f,#100d15 75%)}.result-screen.active h1,.result-screen.active .final-score,.result-screen .result-mark{animation:none}.result-screen .final-score{margin:24px 0;font:800 78px/1 Arial}.result-screen .result-stats>div{border:1px solid #4d374e;border-radius:12px;background:#251a2d}.result-screen #result-mp{color:#ffadd4;text-shadow:none}.result-screen #result-near{color:#ff70b3}.result-screen #result-far{color:#fff}.result-screen .result-winner{color:#c9b5d1}
@media(max-width:360px){.hero-athletes{right:0;width:62%}}
@media(max-height:500px) and (min-aspect-ratio:1/1){.device-shell{margin:8px auto;padding-top:12px}.topbar{padding-bottom:12px}.arena-hero{height:232px}.hero-content{padding:20px}.hero-content h1{font-size:36px;margin:10px 0}.hero-athletes{top:4px;height:128px}.hero-launch{padding:12px 18px;gap:8px}}
