.tab-bar{position:fixed;bottom:0;left:0;right:0;display:flex;flex-direction:column;z-index:100}.tab-bar-main{display:flex;justify-content:space-around;align-items:center;height:56px;background:#06091af2;backdrop-filter:blur(10px);border-top:1px solid rgba(255,255,255,.06);padding:0 8px}.tab-bar-shelf{height:4px;background:#06091afa}.tab-bar-safe{background:#06091afa;padding-bottom:env(safe-area-inset-bottom,0px)}.tab-item{display:flex;flex-direction:column;align-items:center;gap:3px;flex:1;cursor:pointer;transition:transform .1s ease;-webkit-tap-highlight-color:transparent;background:none;border:none;padding:6px 0;min-height:48px;justify-content:center;position:relative}.tab-item:active{transform:scale(.95)}.tab-icon{font-size:20px;line-height:1;transition:filter .3s}.tab-label{font-family:var(--font-display);font-weight:700;font-size:8px;letter-spacing:.1em;text-transform:uppercase;line-height:1;transition:color .3s;-webkit-text-stroke:0}.tab-item--active .tab-icon{filter:drop-shadow(0 0 6px rgba(34,211,238,.4))}.tab-item--active .tab-label{color:#22d3ee;text-shadow:0 0 8px rgba(34,211,238,.4)}.tab-item--active:before{content:"";position:absolute;top:0;left:20%;right:20%;height:2px;background:linear-gradient(90deg,transparent,#22d3ee,transparent);border-radius:2px}.tab-item--active:after{content:"";position:absolute;top:-1px;left:50%;transform:translate(-50%);width:4px;height:4px;border-radius:50%;background:#22d3ee;box-shadow:0 0 8px #22d3ee}.tab-item--inactive .tab-icon,.tab-item--inactive .tab-label{color:#ffffff4d}.game-mode-panel{position:fixed;right:3%;top:calc(115px + env(safe-area-inset-top,0px));z-index:6;display:flex;flex-direction:column;gap:6px}.game-mode-slot{position:relative;width:62px;padding:8px 4px;border-radius:10px;display:flex;flex-direction:column;align-items:center;gap:3px;cursor:pointer;-webkit-tap-highlight-color:transparent;background:#ffffff08;border:1px solid rgba(255,255,255,.08);transition:all .3s}.game-mode-slot:active{transform:scale(.93)}.game-mode-slot--selected{background:linear-gradient(135deg,#fbbf2426,#fbbf240d);border-color:#fbbf2480;box-shadow:0 0 16px #fbbf2426}.game-mode-slot--selected:before{content:"";position:absolute;left:-4px;top:50%;transform:translateY(-50%);width:5px;height:5px;border-radius:50%;background:#fbbf24;box-shadow:0 0 6px #fbbf24}.game-mode-slot--selected:after{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:48px;height:48px;border-radius:8px;background:linear-gradient(120deg,transparent 0%,transparent 30%,rgba(255,255,255,.3) 45%,rgba(255,255,255,.5) 50%,rgba(255,255,255,.3) 55%,transparent 70%,transparent 100%);background-size:250% 100%;animation:mode-sweep 3s ease-in-out infinite;z-index:2;pointer-events:none}@keyframes mode-sweep{0%,70%{background-position:150% 0}to{background-position:-50% 0}}.game-mode-slot--locked{cursor:default;opacity:.5}.game-mode-slot--locked:active{transform:none}.game-mode-icon{position:relative;width:42px;height:42px;border-radius:8px;object-fit:cover;z-index:1}.game-mode-slot--locked .game-mode-icon{opacity:.3;filter:grayscale(.8)}.game-mode-label{font-family:var(--font-body);font-weight:700;font-size:10px;color:#ffffff80;text-align:center;line-height:1.15;white-space:pre-line;-webkit-text-stroke:0;letter-spacing:.04em}.game-mode-slot--selected .game-mode-label{color:#fbbf24}.game-mode-slot--locked .game-mode-label{color:#ffffff4d}.game-mode-lock-overlay{position:absolute;top:-6px;left:50%;transform:translate(-50%);z-index:3;pointer-events:none}.game-mode-lock-text{font-family:var(--font-display);font-weight:700;font-size:7px;color:#fff;letter-spacing:.1em;text-transform:uppercase;background:linear-gradient(135deg,#7c3aed,#a855f7);padding:1.5px 6px;border-radius:4px;-webkit-text-stroke:0}.game-mode-toast{position:absolute;right:calc(100% + 8px);top:50%;transform:translateY(-50%);white-space:nowrap;font-size:11px;font-weight:500;font-family:var(--font-body);color:#fff;background:#000c;border:1px solid rgba(255,255,255,.15);border-radius:8px;padding:6px 12px;pointer-events:none;animation:game-mode-toast-in .2s ease-out,game-mode-toast-out .3s ease-in 1.5s forwards;z-index:10;-webkit-text-stroke:0}@keyframes game-mode-toast-in{0%{opacity:0;transform:translateY(-50%) translate(8px)}to{opacity:1;transform:translateY(-50%) translate(0)}}@keyframes game-mode-toast-out{0%{opacity:1}to{opacity:0}}.banner{position:relative;display:inline-block;overflow:visible;flex-shrink:0;user-select:none}.banner--interactive{cursor:pointer;transition:transform .2s ease,filter .2s ease}.banner--interactive:hover{transform:scale(1.03);filter:brightness(1.1)}.banner--interactive:active{transform:scale(.98)}.banner--full{max-width:230px}.banner--compact{max-width:300px}.banner--mini{max-width:150px}.banner-planet{image-rendering:auto;z-index:2}.banner-planet-glow{z-index:1}@keyframes banner-sparkle-twinkle{0%,to{opacity:.1}50%{opacity:.9}}@keyframes banner-orbit-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes banner-shimmer-sweep{0%{transform:translate(0)}to{transform:translate(var(--banner-sweep-distance, 800px))}}@keyframes banner-aura-pulse{0%,to{opacity:.3}50%{opacity:.6}}@keyframes banner-float{0%,to{transform:translate(0);opacity:.6}50%{transform:translate(var(--float-dx, 0px),var(--float-dy, -10px));opacity:.3}}@keyframes banner-gem-pulse{0%,to{opacity:.5;r:2}50%{opacity:1;r:3}}@keyframes banner-energy-flow{0%{opacity:.3}50%{opacity:.7}to{opacity:.3}}@keyframes banner-rune-flicker{0%,to{opacity:.2}30%{opacity:.4}70%{opacity:.15}}@keyframes banner-corona-pulse{0%,to{opacity:.15}50%{opacity:.4}}@keyframes banner-sweep-move{0%{transform:translate(-100px) translateY(30px);opacity:0}20%{opacity:.1}80%{opacity:.1}to{transform:translate(100px) translateY(-30px);opacity:0}}@keyframes banner-cosmetic-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.banner-cosmetic-shimmer{background-size:200% 100%;animation:banner-cosmetic-shimmer 4s ease-in-out infinite}@keyframes banner-cosmetic-pulse{0%,to{opacity:.85}50%{opacity:1}}.banner-cosmetic-pulse{animation:banner-cosmetic-pulse 3s ease-in-out infinite}.banner-wrapper{display:inline-block;width:100%;position:relative}@keyframes border-glow-pulse{0%,to{opacity:.3}50%{opacity:.8}}.banner-border-glow-pulse{animation:border-glow-pulse 2.5s ease-in-out infinite}@keyframes border-sweep{to{stroke-dashoffset:-1000}}.banner-border-gradient-sweep{stroke-dashoffset:0;animation:border-sweep 3s linear infinite}@keyframes border-energy-flow-forward{to{stroke-dashoffset:-1000}}@keyframes border-energy-flow-reverse{to{stroke-dashoffset:1000}}.banner-border-energy-flow-a{stroke-dashoffset:0;animation:border-energy-flow-forward 4s linear infinite}.banner-border-energy-flow-b{stroke-dashoffset:0;animation:border-energy-flow-reverse 4s linear infinite}.banner-bgfx{position:absolute;inset:0;pointer-events:none;z-index:-1}.banner-bgfx-radiance:before{content:"";position:absolute;top:50%;left:50%;width:120%;height:140%;transform:translate(-50%,-50%);background:radial-gradient(ellipse,rgba(255,255,255,.15) 0%,transparent 70%);animation:bgfx-radiance-pulse 4s ease-in-out infinite;pointer-events:none}@keyframes bgfx-radiance-pulse{0%,to{transform:translate(-50%,-50%) scale(1);opacity:.6}50%{transform:translate(-50%,-50%) scale(1.1);opacity:1}}.banner-bgfx-sparkle{overflow:visible}.bgfx-sparkle-dot{position:absolute;width:2px;height:2px;border-radius:50%;background:#fff;opacity:0}@keyframes sparkle-float-1{0%,to{transform:translate(20%,30%);opacity:0}30%{opacity:.8}70%{opacity:.6}50%{transform:translate(30%,10%)}}@keyframes sparkle-float-2{0%,to{transform:translate(60%,70%);opacity:0}30%{opacity:.7}70%{opacity:.5}50%{transform:translate(50%,50%)}}@keyframes sparkle-float-3{0%,to{transform:translate(80%,20%);opacity:0}30%{opacity:.8}70%{opacity:.4}50%{transform:translate(70%,40%)}}@keyframes sparkle-float-4{0%,to{transform:translate(40%,80%);opacity:0}30%{opacity:.6}70%{opacity:.7}50%{transform:translate(30%,60%)}}@keyframes sparkle-float-5{0%,to{transform:translate(10%,50%);opacity:0}30%{opacity:.7}70%{opacity:.5}50%{transform:translate(20%,30%)}}.bgfx-sparkle-dot:nth-child(1){animation:sparkle-float-1 4.2s 0s infinite}.bgfx-sparkle-dot:nth-child(2){animation:sparkle-float-2 3.8s .7s infinite}.bgfx-sparkle-dot:nth-child(3){animation:sparkle-float-3 5.1s 1.3s infinite}.bgfx-sparkle-dot:nth-child(4){animation:sparkle-float-4 3.5s .3s infinite}.bgfx-sparkle-dot:nth-child(5){animation:sparkle-float-5 4.7s 1.8s infinite}.banner-bgfx-rays:before{content:"";position:absolute;top:50%;left:50%;width:150%;height:150%;transform:translate(-50%,-50%);background:conic-gradient(from 0deg,transparent 0deg,rgba(255,255,255,.08) 5deg,transparent 10deg,transparent 90deg,rgba(255,255,255,.08) 95deg,transparent 100deg,transparent 180deg,rgba(255,255,255,.08) 185deg,transparent 190deg,transparent 270deg,rgba(255,255,255,.08) 275deg,transparent 280deg);opacity:.6;animation:bgfx-rays-rotate 20s linear infinite;pointer-events:none}@keyframes bgfx-rays-rotate{0%{transform:translate(-50%,-50%) rotate(0)}to{transform:translate(-50%,-50%) rotate(360deg)}}@media(prefers-reduced-motion:reduce){.banner-sparkles circle,.banner-orbit-rings g,.banner-shimmer rect,.banner-aura rect,.banner-floaters circle,.banner-corner-brackets circle,.banner-energy-bar rect,.banner-runic text,.banner-corona line,.banner-diagonal-sweeps line,.banner-cosmetic-shimmer,.banner-cosmetic-pulse,.banner-border-glow-pulse,.banner-border-gradient-sweep,.banner-border-energy-flow-a,.banner-border-energy-flow-b,.banner-bgfx-radiance:before,.banner-bgfx-sparkle .bgfx-sparkle-dot,.banner-bgfx-rays:before{animation:none!important}.banner-sparkles circle{opacity:.5}.banner--interactive:hover{transform:none}}.rank-bar-track{position:relative;width:100%;height:10px;border-radius:5px;background:#ffffff0f;border:1px solid rgba(255,255,255,.04);overflow:hidden}.rank-bar-fill{position:absolute;top:0;left:0;height:100%;border-radius:5px;min-width:0;will-change:width}.rank-bar--animated .rank-bar-fill{transition:width var(--rank-bar-duration, 1.2s) ease-out}.rank-bar-shimmer{position:absolute;inset:0;border-radius:5px;background:linear-gradient(105deg,transparent 40%,rgba(255,255,255,.2) 50%,transparent 60%);background-size:250% 100%;animation:rankBarShimmer 2.5s ease-in-out infinite;pointer-events:none}.rank-bar-spark{position:absolute;top:50%;right:-4px;width:8px;height:8px;border-radius:50%;transform:translateY(-50%);background:radial-gradient(circle,#fff 0%,var(--rank-bar-color, #22d3ee) 50%,transparent 100%);box-shadow:0 0 6px 2px var(--rank-bar-color, #22d3ee),0 0 14px 4px color-mix(in srgb,var(--rank-bar-color, #22d3ee) 50%,transparent);opacity:0;pointer-events:none}.rank-bar--animated .rank-bar-spark{opacity:1;animation:sparkGlow .6s ease-in-out infinite alternate}.rank-bar--animated .rank-bar-spark:before,.rank-bar--animated .rank-bar-spark:after{content:"";position:absolute;width:3px;height:3px;border-radius:50%;background:#fff}.rank-bar--animated .rank-bar-spark:before{top:-2px;left:1px;animation:sparkBurstUp .8s ease-out infinite}.rank-bar--animated .rank-bar-spark:after{bottom:-2px;right:1px;animation:sparkBurstDown .8s ease-out infinite .3s}.rank-bar-ticks{position:absolute;inset:0;display:flex;pointer-events:none}.rank-bar-tick{flex:1;border-right:1px solid rgba(0,0,0,.18)}.rank-bar-tick:last-child{border-right:none}.rank-bar:not(.rank-bar--animated) .rank-bar-spark{opacity:.5;animation:none}.rank-bar:not(.rank-bar--animated) .rank-bar-spark:before,.rank-bar:not(.rank-bar--animated) .rank-bar-spark:after{display:none}@keyframes rankBarShimmer{0%{background-position:-250% center}to{background-position:250% center}}@keyframes sparkGlow{0%{transform:translateY(-50%) scale(.8);opacity:.7}to{transform:translateY(-50%) scale(1.3);opacity:1}}@keyframes sparkBurstUp{0%{transform:translate(0) scale(1);opacity:1}to{transform:translate(-3px,-8px) scale(0);opacity:0}}@keyframes sparkBurstDown{0%{transform:translate(0) scale(1);opacity:1}to{transform:translate(2px,8px) scale(0);opacity:0}}.profile-popup-backdrop{position:fixed;inset:0;background:#0009;z-index:900;animation:profilePopupFadeIn .2s ease}.profile-popup-panel{position:fixed;inset:9vh 3vw;z-index:901;display:flex;flex-direction:column;background:var(--bg-deep, #050810);border-radius:16px;border:1px solid rgba(255,255,255,.1);overflow:hidden;animation:profilePopupSlideIn .25s ease}@keyframes profilePopupFadeIn{0%{opacity:0}to{opacity:1}}@keyframes profilePopupSlideIn{0%{opacity:0;transform:scale(.95) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.profile-popup-close{position:absolute;top:12px;right:12px;z-index:10;width:36px;height:36px;border-radius:50%;background:#00000080;border:1px solid rgba(255,255,255,.2);color:#fff;font-size:18px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .1s ease,background .15s ease}.profile-popup-close:active{transform:scale(.9)}.profile-popup-close:hover{background:#ffffff1a}.profile-popup-content{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;display:flex;flex-direction:column;align-items:center;padding:56px 20px 24px;gap:12px}.profile-popup-banner{position:relative;width:calc(100% + 40px);margin:0 -20px}.profile-popup-banner .banner-wrapper,.profile-popup-banner .banner,.profile-popup-banner .banner--compact,.profile-popup-banner .banner--full,.profile-popup-banner .banner--mini{max-width:none!important;width:100%}.profile-popup-banner .banner-text{display:none}.profile-popup-banner .banner-planet,.profile-popup-banner .banner-planet-glow{display:none!important}.profile-popup-customize-icon{position:absolute;top:50%;right:10px;transform:translateY(-50%);z-index:5;width:36px;height:36px;border-radius:50%;background:#0000008c;border:1px solid rgba(255,255,255,.25);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .1s ease,background .15s ease}.profile-popup-customize-icon:active{transform:translateY(-50%) scale(.9)}.profile-popup-customize-icon:hover{background:#ffffff26}.profile-popup-name-row{display:flex;align-items:center;gap:8px}.profile-popup-name{font-family:var(--font-display);font-weight:900;font-size:20px;letter-spacing:.04em;color:#fff;text-align:center}.profile-popup-hashtag{color:#ffffff59;font-weight:600;font-size:14px}.profile-popup-edit-btn{background:none;border:none;color:#ffffff80;cursor:pointer;padding:4px;display:flex;align-items:center;transition:color .15s}.profile-popup-edit-btn:hover{color:#fff}.profile-popup-edit-row{display:flex;align-items:center;gap:8px}.profile-popup-edit-input{width:160px;padding:8px 12px;font-size:16px;font-family:var(--font-body);text-align:center;border-radius:8px;border:2px solid rgba(100,180,255,.7);background:#0006;color:#fff;outline:none}.profile-popup-edit-confirm,.profile-popup-edit-cancel{background:none;border:none;cursor:pointer;font-size:20px;padding:4px 8px}.profile-popup-edit-confirm{color:#4caf50}.profile-popup-edit-cancel{color:#ff6b6b}.profile-popup-edit-error{color:#ff6b6b;font-size:12px;text-align:center}.profile-popup-badge{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:12px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.profile-popup-badge--guest{background:#ffc10726;color:#ffc107;border:1px solid rgba(255,193,7,.3)}.profile-popup-badge--registered{background:#4caf5026;color:#4caf50;border:1px solid rgba(76,175,80,.3)}.profile-popup-account-info{display:flex;flex-direction:column;align-items:center;gap:4px}.profile-popup-email{font-size:11px;color:#ffffff59}.profile-popup-rank{display:flex;align-items:center;gap:8px}.profile-popup-rank-icon{width:32px;height:32px;object-fit:contain}.profile-popup-rank-label{font-family:var(--font-display);font-weight:700;font-size:14px;color:#ffffffb3;letter-spacing:.04em}.profile-popup-elo{font-family:var(--font-display);font-weight:900;font-size:14px;color:var(--text-cyan, #22d3ee)}.profile-popup-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;width:100%;max-width:400px}.profile-popup-stat{display:flex;flex-direction:column;align-items:center;background:#ffffff0a;border-radius:10px;padding:10px 6px;gap:2px}.profile-popup-stat-value{font-family:var(--font-display);font-weight:900;font-size:18px;color:#fff}.profile-popup-stat-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#fff6;text-align:center}.profile-popup-toggle-btn{background:none;border:none;color:#64b4ffcc;font-size:13px;font-weight:600;cursor:pointer;padding:4px 12px;transition:color .15s}.profile-popup-toggle-btn:hover{color:#64b4ff}.profile-popup-history-btn{width:100%;max-width:300px;height:40px;border:1px solid rgba(255,255,255,.15);border-radius:10px;background:#ffffff0f;color:#fff;font-family:var(--font-display);font-size:14px;cursor:pointer;transition:background .15s,transform .1s}.profile-popup-history-btn:hover{background:#ffffff1a}.profile-popup-history-btn:active{transform:scale(.97)}.profile-popup-history-backdrop{position:fixed;inset:0;background:#00000080;z-index:910;animation:profilePopupFadeIn .15s ease}.profile-popup-history-panel{position:fixed;inset:12vh 5vw;z-index:911;display:flex;flex-direction:column;background:var(--bg-deep, #050810);border-radius:14px;border:1px solid rgba(255,255,255,.12);overflow:hidden;animation:profilePopupSlideIn .2s ease}.profile-popup-history-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid rgba(255,255,255,.08)}.profile-popup-history-title{font-family:var(--font-display);font-weight:800;font-size:16px;color:#fff}.profile-popup-history-close{width:32px;height:32px;border-radius:50%;background:#ffffff14;border:1px solid rgba(255,255,255,.15);color:#fff;font-size:16px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s}.profile-popup-history-close:hover{background:#ffffff26}.profile-popup-history-list{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:8px 16px}.profile-popup-history-empty{text-align:center;color:#fff6;font-size:14px;padding:32px 0}.profile-popup-match{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.06)}.profile-popup-match:last-child{border-bottom:none}.profile-popup-match-result{font-size:18px;width:28px;text-align:center;flex-shrink:0}.profile-popup-match-info{flex:1;min-width:0}.profile-popup-match-opponent{font-size:14px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#fff}.profile-popup-match-detail{font-size:11px;color:#fff6;margin-top:2px}.profile-popup-match-elo{font-size:14px;font-weight:700;flex-shrink:0}.profile-popup-match-elo--positive{color:#4caf50}.profile-popup-match-elo--negative{color:#ff6b6b}.profile-popup-match-elo--neutral{color:#fff6}.profile-popup-match-date{font-size:11px;color:#ffffff4d;flex-shrink:0;text-align:right;min-width:50px}.profile-popup-auth-section{width:100%;max-width:300px;background:#00000040;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:16px;text-align:center}.profile-popup-section-title{font-family:var(--font-display);font-size:14px;font-weight:700;margin-bottom:8px;color:#fffc}.profile-popup-auth-desc{font-size:12px;color:#ffffff73;margin-bottom:12px}.profile-popup-register-btn{width:100%;height:40px;border:none;border-radius:10px;background:linear-gradient(180deg,#ffc107,#f9a825);color:#1a1a1a;font-family:var(--font-display);font-size:14px;cursor:pointer;box-shadow:0 3px 10px #0000004d;transition:transform .1s}.profile-popup-register-btn:active{transform:scale(.97)}.profile-popup-auth-form{display:flex;flex-direction:column;align-items:center;gap:8px;margin-top:8px}.profile-popup-auth-input{width:100%;padding:9px 12px;font-size:14px;font-family:var(--font-body);border-radius:8px;border:2px solid rgba(255,255,255,.15);background:#0006;color:#fff;outline:none;transition:border-color .2s}.profile-popup-auth-input:focus{border-color:#64b4ffb3}.profile-popup-auth-input::placeholder{color:#ffffff4d}.profile-popup-auth-submit{width:100%;height:40px;border:none;border-radius:10px;background:linear-gradient(180deg,#4caf50,#388e3c);color:#fff;font-family:var(--font-display);font-size:14px;cursor:pointer;box-shadow:0 3px 10px #0000004d;transition:transform .1s,opacity .2s}.profile-popup-auth-submit:active{transform:scale(.97)}.profile-popup-auth-submit:disabled{opacity:.5;cursor:default}.profile-popup-auth-error{color:#ff6b6b;font-size:12px}.profile-popup-auth-success{color:#4caf50;font-size:13px;font-weight:700;text-align:center}.profile-popup-auth-switch{margin-top:10px;font-size:12px;color:#ffffff73}.profile-popup-auth-switch-btn{background:none;border:none;color:#64b4ffe6;font-size:12px;cursor:pointer;padding:0;text-decoration:underline}.profile-popup-loading{color:#fff6;font-size:14px;padding:24px 0}.collection-backdrop{position:fixed;inset:0;background:#0009;z-index:910;animation:collectionFadeIn .2s ease}@keyframes collectionFadeIn{0%{opacity:0}to{opacity:1}}@keyframes collectionSlideIn{0%{opacity:0;transform:scale(.95) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.collection-root{position:fixed;inset:9vh 3vw;z-index:911;display:flex;flex-direction:column;background-color:var(--bg-deep, #050810);border-radius:16px;border:1px solid rgba(255,255,255,.1);overflow:hidden;font-family:var(--font-body);color:#fff;-webkit-tap-highlight-color:transparent;touch-action:manipulation;user-select:none;animation:collectionSlideIn .25s ease}.collection-header{display:flex;align-items:center;padding:14px 16px 10px;gap:12px;flex-shrink:0}.collection-close-btn{position:absolute;top:10px;right:10px;z-index:10;width:36px;height:36px;border-radius:50%;background:#00000080;border:1px solid rgba(255,255,255,.2);color:#fff;font-size:18px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .1s ease,background .15s ease}.collection-close-btn:active{transform:scale(.9)}.collection-close-btn:hover{background:#ffffff1a}.collection-title{font-family:var(--font-display);font-weight:900;font-size:18px;letter-spacing:.08em;text-transform:uppercase;margin:0}.collection-tabs{display:flex;flex-shrink:0;border-bottom:1px solid rgba(255,255,255,.08);padding:0 16px;gap:4px}.collection-tab{flex:1;background:none;border:none;padding:10px 0;font-family:var(--font-display);font-weight:700;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted, rgba(255, 255, 255, .4));cursor:pointer;position:relative;transition:color .15s ease}.collection-tab--active{color:var(--text-cyan, #22d3ee)}.collection-tab--active:after{content:"";position:absolute;bottom:0;left:20%;right:20%;height:2px;background:var(--cyan, #22d3ee);border-radius:1px;box-shadow:0 0 8px #22d3ee66}.collection-tab:active{transform:scale(.95)}.collection-subtabs{display:flex;flex-shrink:0;padding:8px 16px;gap:8px}.collection-subtab{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:5px 16px;font-family:var(--font-body);font-weight:600;font-size:12px;color:var(--text-muted, rgba(255, 255, 255, .4));cursor:pointer;transition:all .15s ease}.collection-subtab--active{background:#22d3ee1a;border-color:#22d3ee66;color:var(--text-cyan, #22d3ee)}.collection-subtab:active{transform:scale(.95)}.collection-grid{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:12px 16px calc(12px + var(--sab, 0px));display:grid;grid-template-columns:repeat(3,1fr);gap:10px;align-content:start;align-items:start}.collection-empty{grid-column:1 / -1;text-align:center;padding:48px 16px;color:var(--text-muted, rgba(255, 255, 255, .4));font-size:14px;font-weight:500}.collection-card{position:relative;border-radius:12px;background:#ffffff08;border:2px solid rgba(255,255,255,.08);overflow:hidden;cursor:pointer;transition:transform .1s ease,border-color .15s ease,box-shadow .15s ease;display:flex;flex-direction:column;align-items:center;padding:28px 6px 8px}.collection-card:active{transform:scale(.95)}.collection-card--equipped{border-color:#22c55e;box-shadow:0 0 10px #22c55e33}.collection-card--locked:after{content:"";position:absolute;inset:0;background:#0009;border-radius:10px;pointer-events:none}.collection-card-lock{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:22px;z-index:1;opacity:.7;pointer-events:none}.collection-card-rarity{position:absolute;top:6px;left:6px;border-radius:4px;padding:2px 6px;font-size:10px;font-weight:700;text-transform:uppercase;z-index:2;line-height:1.2;letter-spacing:.03em}.collection-card-check{position:absolute;top:6px;right:6px;width:18px;height:18px;border-radius:50%;background:#22c55e;z-index:2;box-shadow:0 1px 4px #0006}.collection-card-check:after{content:"";display:block;position:absolute;top:4px;left:4px;width:9px;height:5px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg)}.collection-card-thumb{width:70%;aspect-ratio:1;object-fit:contain;display:block;flex-shrink:0}.collection-card-banner-thumb{border-radius:8px;width:80%;aspect-ratio:2 / 1}.collection-card-name{margin-top:6px;font-family:var(--font-display);font-weight:700;font-size:9px;letter-spacing:.04em;text-transform:uppercase;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.collection-card-equipped-text{font-size:11px;font-weight:600;color:#22c55e;margin-top:2px}.collection-card-expand{width:100%;display:flex;justify-content:center;padding-top:8px}.collection-use-btn{background:#22c55e;border:none;border-radius:8px;color:#fff;font-family:var(--font-display);font-weight:900;font-size:12px;letter-spacing:.06em;text-transform:uppercase;padding:8px 16px;width:80%;cursor:pointer;transition:transform .1s ease}.collection-use-btn:active{transform:scale(.96)}.collection-use-btn--disabled{background:#4b5563;opacity:.5;pointer-events:none;cursor:default}.collection-grid.banner-layout{display:flex;flex-direction:column;gap:20px;padding:12px 16px calc(12px + var(--sab, 0px))}.collection-card.banner-layout-card{display:block;padding:0;overflow:hidden;flex-shrink:0;width:100%}.banner-card-preview{width:100%;overflow:hidden}.banner-card-preview .banner-wrapper,.banner-card-preview .banner,.banner-card-preview .banner--compact,.banner-card-preview .banner--full,.banner-card-preview .banner--mini{max-width:none!important;width:100%;display:block}.banner-card-meta{display:flex;align-items:center;gap:8px;padding:8px 12px}.banner-card-name{flex:1;font-family:var(--font-display);font-weight:700;font-size:12px;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.banner-card-rarity{border-radius:4px;padding:2px 6px;font-size:10px;font-weight:700;text-transform:uppercase;line-height:1.4;letter-spacing:.03em;flex-shrink:0}.banner-card-equipped-badge{color:#22c55e;font-size:16px;font-weight:700;flex-shrink:0;line-height:1}.banner-card-lock-icon{font-size:13px;opacity:.6;flex-shrink:0}.banner-expand-area{display:flex;flex-direction:column;align-items:center;padding:4px 12px 12px;gap:8px;flex-shrink:0}.banner-unlock-info{margin:0;font-size:12px;color:var(--text-muted, rgba(255, 255, 255, .45));text-align:center;font-style:italic}@keyframes equipFlash{0%{box-shadow:0 0 #22c55e00}50%{box-shadow:0 0 20px #22c55e80}to{box-shadow:0 0 #22c55e00}}.collection-card--equip-flash{animation:equipFlash .3s ease}.menu-root{position:fixed;inset:0;display:flex;flex-direction:column;background-color:var(--bg-deep);font-family:var(--font-body);overflow:hidden;color:#fff}.menu-bg-banner{position:absolute;inset:0;z-index:-1;width:100%;height:100%;object-fit:cover;opacity:.22;pointer-events:none;animation:bannerDrift 60s ease-in-out infinite alternate}@keyframes bannerDrift{0%{object-position:30% center}to{object-position:70% center}}.menu-bg-banner--gradient{background-size:cover;animation:bannerDriftGradient 60s ease-in-out infinite alternate}@keyframes bannerDriftGradient{0%{background-position:30% center}to{background-position:70% center}}.menu-bg-stars{position:absolute;inset:0;z-index:0;pointer-events:none;background-image:radial-gradient(1px 1px at 15% 20%,rgba(255,255,255,.35),transparent),radial-gradient(1.5px 1.5px at 55% 12%,rgba(255,255,255,.2),transparent),radial-gradient(1px 1px at 80% 55%,rgba(255,255,255,.3),transparent),radial-gradient(.8px .8px at 25% 80%,rgba(255,255,255,.15),transparent),radial-gradient(1.2px 1.2px at 90% 35%,rgba(255,255,255,.25),transparent),radial-gradient(.8px .8px at 45% 65%,rgba(255,255,255,.2),transparent),radial-gradient(1px 1px at 70% 90%,rgba(255,255,255,.15),transparent),radial-gradient(1px 1px at 10% 50%,rgba(255,255,255,.25),transparent),radial-gradient(.7px .7px at 60% 40%,rgba(255,255,255,.18),transparent),radial-gradient(1.3px 1.3px at 35% 10%,rgba(255,255,255,.22),transparent),radial-gradient(.9px .9px at 85% 75%,rgba(255,255,255,.2),transparent),radial-gradient(1px 1px at 5% 95%,rgba(255,255,255,.12),transparent),radial-gradient(1.1px 1.1px at 50% 85%,rgba(255,255,255,.17),transparent),radial-gradient(.6px .6px at 72% 22%,rgba(255,255,255,.2),transparent);background-size:100px 300px;animation:starDrift 50s linear infinite}@keyframes starDrift{0%{background-position:0 0}to{background-position:100px 300px}}.menu-bg-nebula{position:absolute;inset:0;z-index:0;pointer-events:none}.menu-bg-nebula:before{content:"";position:absolute;top:5%;left:-15%;width:60%;height:40%;background:radial-gradient(ellipse,rgba(99,102,241,.08),transparent 70%)}.menu-bg-nebula:after{content:"";position:absolute;bottom:15%;right:-10%;width:50%;height:35%;background:radial-gradient(ellipse,rgba(168,85,247,.06),transparent 70%)}.menu-bg-grid{position:absolute;inset:0;z-index:0;pointer-events:none;background-image:linear-gradient(rgba(96,165,250,.02) 1px,transparent 1px),linear-gradient(90deg,rgba(96,165,250,.02) 1px,transparent 1px);background-size:40px 40px}.menu-topbar{position:relative;z-index:10;display:flex;align-items:center;justify-content:flex-end;padding:calc(12px + env(safe-area-inset-top,0px)) 4% 6px;flex-shrink:0;gap:8px}.menu-level-bar{display:flex;align-items:center;gap:6px;flex:1;min-width:0}.menu-level-label{font-family:var(--font-display);font-weight:700;font-size:10px;color:var(--cyan);letter-spacing:.06em;white-space:nowrap;-webkit-text-stroke:0}.menu-level-track{flex:1;height:6px;background:#ffffff0f;border-radius:3px;border:1px solid rgba(255,255,255,.04);overflow:hidden}.menu-level-fill{height:100%;border-radius:3px;background:linear-gradient(90deg,var(--cyan),#60a5fa);box-shadow:0 0 6px #22d3ee4d;transition:width .5s ease}.menu-banner-row{position:relative;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:0 4% 4px;margin-top:10px;flex-shrink:0;transform:scale(1.15);transform-origin:left center}.menu-profile{display:flex;align-items:center;gap:0;position:relative}.menu-avatar-frame{position:relative;width:46px;height:46px;flex-shrink:0;border-radius:10px;border:2px solid var(--gold-dark);overflow:hidden;box-shadow:0 0 12px #d9770640;z-index:2}.menu-avatar-frame img{width:100%;height:100%;display:block;object-fit:cover}.menu-level-badge{position:absolute;bottom:-6px;left:50%;transform:translate(-50%);background:linear-gradient(135deg,#1d4ed8,#3b82f6);border:1.5px solid #60a5fa;border-radius:6px;padding:1px 6px;z-index:3}.menu-level-badge span{font-family:var(--font-display);font-weight:700;font-size:9px;color:#fff;line-height:1;-webkit-text-stroke:0}.menu-profile-info{display:flex;flex-direction:column;margin-left:-6px;z-index:1}.menu-name-bar{background:var(--bg-panel);border:1px solid rgba(148,163,184,.25);border-radius:0 12px 0 0;padding:3px 14px;min-width:100px}.menu-player-name{font-family:var(--font-display);font-weight:700;font-size:12px;color:#fff;letter-spacing:.04em;-webkit-text-stroke:0}.menu-clan-bar{background:#1e293bb3;border:1px solid rgba(148,163,184,.15);border-top:none;border-radius:0 0 8px;padding:1px 10px 2px 14px;margin-top:-1px;width:fit-content}.menu-clan-name{font-family:var(--font-body);font-weight:500;font-size:10px;color:#ffffff59;letter-spacing:.06em;-webkit-text-stroke:0}.menu-currencies{display:flex;gap:5px;flex-shrink:0}.menu-currency{display:flex;align-items:center;gap:4px;border-radius:8px;padding:4px 8px 4px 5px}.menu-currency--coins{background:#fbbf2414;border:1px solid rgba(251,191,36,.2)}.menu-currency--gems{background:#a855f714;border:1px solid rgba(168,85,247,.2)}.menu-currency-emoji{font-size:14px;line-height:1;-webkit-text-stroke:0}.menu-currency-value{font-family:var(--font-display);font-weight:700;font-size:10px;line-height:1;-webkit-text-stroke:0}.menu-currency--coins .menu-currency-value{color:#fbbf24}.menu-currency--gems .menu-currency-value{color:#c084fc}.menu-mode-title{position:relative;z-index:5;display:flex;flex-direction:column;align-items:center;gap:2px;padding:2% 0 1%;max-width:calc(100% - 90px);margin:10px auto 0}.menu-mode-subtitle{font-family:var(--font-body);font-weight:500;font-size:10px;color:#ffffff59;letter-spacing:.2em;text-transform:uppercase;-webkit-text-stroke:0}.menu-mode-label{font-family:var(--font-display);font-weight:900;font-size:clamp(16px,5vw,22px);color:var(--cyan);letter-spacing:.08em;text-shadow:0 0 20px var(--cyan-glow),0 0 40px rgba(34,211,238,.15);text-transform:uppercase;text-align:center;word-break:break-word}.menu-center{flex:1;display:flex;align-items:center;justify-content:center;position:relative;z-index:5;min-height:0;padding:0 4%}.menu-planet-showcase{width:clamp(180px,58vw,280px);height:clamp(180px,58vw,280px);flex-shrink:0;display:flex;align-items:center;justify-content:center;position:relative}.menu-planet-glow{position:absolute;inset:-20%;border-radius:50%;background:radial-gradient(circle,rgba(96,165,250,.18) 0%,rgba(96,165,250,.05) 40%,transparent 70%);animation:planetGlowPulse 3s ease-in-out infinite;pointer-events:none}@keyframes planetGlowPulse{0%,to{opacity:.5;transform:scale(1)}50%{opacity:.8;transform:scale(1.05)}}.menu-planet-img{width:65%;height:65%;border-radius:50%;object-fit:cover;position:relative;z-index:2;animation:planetFloat 6s ease-in-out infinite;filter:drop-shadow(0 0 16px rgba(96,165,250,.2))}@keyframes planetFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.menu-planet-orbit{position:absolute;border-radius:50%;border:1px solid rgba(96,165,250,.12);pointer-events:none;z-index:1}.menu-planet-orbit--1{width:88%;height:22%;top:50%;left:50%;transform:translate(-50%,-50%) rotate(-15deg);animation:orbitSpin1 30s linear infinite}.menu-planet-orbit--2{width:82%;height:18%;top:50%;left:50%;transform:translate(-50%,-50%) rotate(25deg);border-style:dashed;border-color:#60a5fa0f;animation:orbitSpin2 22s linear infinite}@keyframes orbitSpin1{0%{transform:translate(-50%,-50%) rotate(-15deg)}to{transform:translate(-50%,-50%) rotate(345deg)}}@keyframes orbitSpin2{0%{transform:translate(-50%,-50%) rotate(25deg)}to{transform:translate(-50%,-50%) rotate(-335deg)}}.menu-settings-panel{position:absolute;right:8px;top:calc(105px + env(safe-area-inset-top,0px));z-index:20;display:flex;flex-direction:column;align-items:center;gap:10px}.menu-settings-toggle{position:fixed;right:calc(3% + 7px);top:calc(58px + env(safe-area-inset-top,0px));width:48px;height:48px;border:none;background:none;padding:0;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .1s;z-index:15}.menu-settings-toggle:active{transform:scale(.9)}.menu-settings-toggle img{width:100%;height:100%;object-fit:contain}.menu-settings-items{display:flex;flex-direction:column;align-items:center;gap:12px;padding:10px 8px;background:#00000059;border-radius:14px;border:1px solid rgba(255,255,255,.08);backdrop-filter:blur(8px)}.menu-sound-btn{width:28px;height:28px;border-radius:50%;background:#ffffff1a;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}.menu-sound-btn svg{width:16px;height:16px}.menu-lang-switch{display:flex;align-items:center;gap:4px;font-size:11px;font-family:var(--font-display);background:none;border:none;cursor:pointer;padding:0}.menu-lang-option--active{color:#ffffffb3}.menu-lang-option--inactive{color:#ffffff59}.menu-lang-separator{color:#fff3}.menu-sandbox-pill{display:flex;align-items:center;gap:8px;background:#ffffff0f;border-radius:14px;padding:5px 12px;cursor:pointer;user-select:none;border:none;font-family:var(--font-body)}.menu-sandbox-dot{width:8px;height:8px;border-radius:50%;transition:background .2s}.menu-sandbox-dot--off{background:#ffffff40}.menu-sandbox-dot--on{background:#4ade80}.menu-sandbox-pill span{font-size:10px;color:#ffffff59}.menu-connection-indicator{display:flex;align-items:center;gap:6px;padding:5px 10px}.menu-connection-indicator span{font-size:10px;color:#ffffff59;-webkit-text-stroke:0}.menu-connection-dot{width:7px;height:7px;border-radius:50%;transition:background .3s}.menu-connection-dot--on{background:#4ade80;box-shadow:0 0 4px #4ade8080}.menu-connection-dot--off{background:#ef4444;box-shadow:0 0 4px #ef444480}.menu-bottom{position:relative;z-index:5;display:flex;flex-direction:column;align-items:center;gap:10px;padding:0 5% 12px;flex-shrink:0}.menu-rank-progress{width:100%;display:flex;flex-direction:column;align-items:center;gap:6px}.menu-rank-next-label{font-family:var(--font-body);font-weight:600;font-size:12px;color:#ffffff73;letter-spacing:.08em;-webkit-text-stroke:0}.menu-rank-next-label strong{color:var(--cyan)}.menu-rank-bar-row{display:flex;align-items:center;gap:6px;width:100%}.menu-rank-icon{width:28px;height:28px;flex-shrink:0;border-radius:6px}.menu-rank-icon--next{width:28px;height:28px;filter:drop-shadow(0 0 6px var(--cyan-glow))}.menu-rank-next-icon-wrap{position:relative;flex-shrink:0;display:flex;align-items:center;justify-content:center}.menu-rank-bar-row .rank-bar{flex:1}.menu-battle-btn{position:relative;width:100%;height:clamp(52px,12vw,62px);padding:0;border:none;border-radius:14px;cursor:pointer;overflow:hidden;background:linear-gradient(135deg,#92400e,#b45309,#d97706,#f59e0b);box-shadow:0 0 25px #fbbf244d,inset 0 1px #ffffff26,inset 0 -2px #0003;animation:battlePulse 3s ease-in-out infinite;transition:transform .15s ease;-webkit-tap-highlight-color:transparent}.menu-battle-btn:active{transform:scale(.96)}.menu-battle-btn:after{content:"";position:absolute;inset:3px;border-radius:11px;border:1.5px solid rgba(253,230,138,.35);pointer-events:none}.menu-battle-shimmer{position:absolute;inset:0;background:linear-gradient(105deg,transparent 40%,rgba(255,255,255,.15) 50%,transparent 60%);background-size:200% 100%;animation:battleShimmer 3s ease-in-out infinite;pointer-events:none}.menu-battle-btn{display:flex;align-items:center;justify-content:center}.menu-battle-btn>span{position:relative;z-index:1;font-family:var(--font-display);font-weight:900;font-size:clamp(20px,5.5vw,26px);color:#fff;letter-spacing:.12em;text-shadow:0 2px 4px rgba(0,0,0,.3),0 0 20px rgba(251,191,36,.3)}@keyframes battlePulse{0%,to{box-shadow:0 0 20px #fbbf244d,inset 0 0 20px #fbbf241a}50%{box-shadow:0 0 40px #fbbf2480,inset 0 0 30px #fbbf2426}}@keyframes battleShimmer{0%{background-position:-200% center}to{background-position:200% center}}.menu-tabbar-spacer{height:80px;flex-shrink:0}.menu-battle-btn--searching{background:linear-gradient(135deg,#1e3a5f,#1e4976,#2563a8,#3b82f6);box-shadow:0 0 25px #3b82f64d,inset 0 1px #ffffff1a,inset 0 -2px #0003;animation:searchPulse 2s ease-in-out infinite}.menu-battle-btn--searching:after{border-color:#93c5fd40}@keyframes searchPulse{0%,to{box-shadow:0 0 15px #3b82f640,inset 0 0 15px #3b82f614;transform:scale(1)}50%{box-shadow:0 0 45px #3b82f699,inset 0 0 35px #3b82f633;transform:scale(1.02)}}.menu-battle-btn--searching .menu-battle-shimmer{background:linear-gradient(105deg,transparent 40%,rgba(255,255,255,.1) 50%,transparent 60%);background-size:200% 100%}.menu-battle-searching{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;width:85%;padding:0 4%}.menu-battle-searching-text{font-family:var(--font-display);font-weight:700;font-size:clamp(9px,2.5vw,11px);color:#fff;letter-spacing:.1em;text-shadow:0 2px 4px rgba(0,0,0,.3)}.menu-battle-dots span{display:inline-block;opacity:0;animation:dotFade 1.4s ease-in-out infinite}.menu-battle-dots span:nth-child(1){animation-delay:0s}.menu-battle-dots span:nth-child(2){animation-delay:.3s}.menu-battle-dots span:nth-child(3){animation-delay:.6s}@keyframes dotFade{0%,20%{opacity:0}40%,60%{opacity:1}80%,to{opacity:0}}.menu-battle-searching-timer{font-family:var(--font-display);font-weight:700;font-size:clamp(9px,2.5vw,11px);color:#ffffff73;font-variant-numeric:tabular-nums;text-shadow:0 2px 4px rgba(0,0,0,.3)}.xp-particles-container{position:fixed;inset:0;pointer-events:none;z-index:100;overflow:hidden}.xp-particle{position:absolute;bottom:0;width:5px;height:5px;border-radius:50%;background:#00e5ff;box-shadow:0 0 6px #00e5ffcc,0 0 12px #00e5ff66;animation:xpFlyToBar 1s ease-in forwards}@keyframes xpFlyToBar{0%{transform:translate(0) scale(1);opacity:1}85%{transform:translate(calc(var(--tx) * .85),calc(var(--ty) * .85)) scale(.5);opacity:1}to{transform:translate(var(--tx),var(--ty)) scale(.15);opacity:0}}.xp-gained-text{position:fixed;top:45%;left:50%;transform:translate(-50%,-50%);font-family:var(--font-display);font-weight:900;font-size:28px;color:#00e5ff;text-shadow:0 0 12px rgba(0,229,255,.8),0 0 24px rgba(0,229,255,.3);pointer-events:none;z-index:101;animation:xpTextFloat 1.5s ease-out forwards}@keyframes xpTextFloat{0%{opacity:0;transform:translate(-50%,-50%) scale(.5)}15%{opacity:1;transform:translate(-50%,-50%) scale(1.1)}25%{transform:translate(-50%,-50%) scale(1)}65%{opacity:1}to{opacity:0;transform:translate(-50%,-90%) scale(1)}}.menu-level-absorbing .menu-level-track{animation:xpAbsorbPulse .6s ease-in-out infinite}@keyframes xpAbsorbPulse{0%,to{box-shadow:0 0 6px #00e5ff66,0 0 12px #00e5ff33}50%{box-shadow:0 0 10px #00e5ffcc,0 0 20px #00e5ff66}}.menu-level-flash .menu-level-track{box-shadow:0 0 12px #00e5ffcc,0 0 24px #00e5ff66}.menu-level-flash .menu-level-label{animation:levelLabelBounce .5s ease-out}.menu-level-up-text{font-family:var(--font-display);font-weight:900;font-size:11px;color:#00e5ff;white-space:nowrap;margin-left:6px;text-shadow:0 0 8px rgba(0,229,255,.8);animation:levelUpBounceIn .5s ease-out}@keyframes levelLabelBounce{0%{transform:scale(1)}40%{transform:scale(1.3)}to{transform:scale(1)}}@keyframes levelUpBounceIn{0%{transform:scale(0);opacity:0}60%{transform:scale(1.2);opacity:1}to{transform:scale(1);opacity:1}}.pct-btn{position:absolute;bottom:8px;right:8px;width:68px;height:68px;padding:0;border:none;border-radius:13px;cursor:pointer;outline:none;overflow:hidden;pointer-events:auto;-webkit-tap-highlight-color:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;background:linear-gradient(135deg,#92400e,#b45309,#d97706,#f59e0b);box-shadow:0 0 18px #fbbf2440,inset 0 1px #ffffff26,inset 0 -2px #0003;animation:pctPulse 3s ease-in-out infinite;transition:transform .1s ease}.pct-btn:after{content:"";position:absolute;inset:3px;border-radius:10px;border:1.5px solid rgba(253,230,138,.35);pointer-events:none}.pct-btn--pressed{transform:scale(.9)}.pct-btn-shimmer{position:absolute;inset:0;background:linear-gradient(105deg,transparent 40%,rgba(255,255,255,.15) 50%,transparent 60%);background-size:200% 100%;animation:pctShimmer 3s ease-in-out infinite;pointer-events:none}.pct-btn-flash{position:absolute;inset:0;background:#fff6;border-radius:13px;pointer-events:none;opacity:0;transition:opacity .15s ease-out}.pct-btn-flash--active{opacity:1}.pct-btn-label{position:relative;z-index:1;font-family:var(--font-display, "Orbitron", sans-serif);font-weight:700;font-size:7px;color:#fff;letter-spacing:.08em;text-transform:uppercase;user-select:none;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.3)}.pct-btn-roll{position:relative;z-index:1;overflow:hidden;height:24px}.pct-btn-value{height:24px;line-height:24px;font-family:var(--font-display, "Orbitron", sans-serif);font-weight:900;font-size:20px;color:#fff;user-select:none;text-align:center;text-shadow:0 2px 4px rgba(0,0,0,.3),0 0 12px rgba(251,191,36,.3)}@keyframes pctPulse{0%,to{box-shadow:0 0 14px #fbbf2440,inset 0 0 14px #fbbf2414}50%{box-shadow:0 0 28px #fbbf2466,inset 0 0 22px #fbbf241f}}@keyframes pctShimmer{0%{background-position:-200% center}to{background-position:200% center}}.overlay-vars{--bg-panel: rgba(30, 41, 59, .9)}.overlay-backdrop{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#000000bf;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);pointer-events:auto;font-family:var(--font-body);-webkit-text-stroke:0}.overlay-panel{background:var(--bg-panel);border:1px solid rgba(255,255,255,.1);border-radius:16px;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 8px 32px #0009,inset 0 1px #ffffff0d;display:flex;flex-direction:column;align-items:center}.overlay-btn{display:flex;align-items:center;justify-content:center;gap:8px;height:44px;border-radius:10px;font-family:var(--font-display);font-weight:700;font-size:14px;letter-spacing:.04em;cursor:pointer;border:none;outline:none;color:#fff;-webkit-tap-highlight-color:transparent;-webkit-text-stroke:0;text-shadow:none;transition:transform .1s ease,box-shadow .15s ease}.overlay-btn:active{transform:scale(.96)}.overlay-btn--primary{background:linear-gradient(135deg,#92400e,#b45309,#d97706,#f59e0b);box-shadow:0 0 20px #fbbf2440,inset 0 1px #ffffff26,inset 0 -2px #0003;position:relative;overflow:hidden}.overlay-btn--primary:after{content:"";position:absolute;inset:2px;border-radius:8px;border:1.5px solid rgba(253,230,138,.3);pointer-events:none}.overlay-btn--secondary{background:#ffffff14;border:1px solid rgba(255,255,255,.15)}.overlay-btn--secondary:active{background:#ffffff1f}.overlay-btn--danger{background:#dc262633;border:1px solid rgba(220,38,38,.4);color:#fca5a5}.overlay-btn--danger:active{background:#dc26264d}.overlay-divider{width:100%;height:1px;background:#ffffff1a;flex-shrink:0}.overlay-heading{font-family:var(--font-display);font-weight:900;letter-spacing:.06em;-webkit-text-stroke:0;text-shadow:0 2px 8px rgba(0,0,0,.5)}.overlay-body{font-family:var(--font-body);font-weight:500;-webkit-text-stroke:0;text-shadow:none}.overlay-label{font-family:var(--font-body);font-weight:600;font-size:11px;color:#ffffff80;text-transform:uppercase;letter-spacing:.08em;-webkit-text-stroke:0;text-shadow:none}.settings-backdrop{z-index:50}.settings-panel{padding:28px 24px;min-width:240px;gap:12px}.settings-title{margin-bottom:4px}.settings-btn{width:100%}.settings-btn--resume{height:48px;font-size:15px;letter-spacing:.06em}.settings-btn--surrender{height:44px}.surrender-backdrop{z-index:100}.surrender-panel{padding:32px 24px;min-width:240px;gap:24px}.surrender-message{font-family:var(--font-display);font-weight:700;font-size:17px;color:#fff;text-align:center;line-height:1.4;letter-spacing:.03em;margin:0;-webkit-text-stroke:0;text-shadow:0 2px 8px rgba(0,0,0,.5)}.surrender-actions{display:flex;gap:12px;width:100%}.surrender-btn{flex:1;height:44px;font-size:15px}.surrender-btn--confirm{background:#dc2626bf;border:2px solid rgba(220,38,38,.7);color:#fff}.surrender-btn--confirm:active{background:#dc2626d9}.countdown-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#00000059;pointer-events:none;z-index:20;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}.countdown-num{font-family:Orbitron,system-ui,sans-serif;font-weight:900;font-size:clamp(80px,22vw,120px);color:#fff;text-shadow:0 0 20px rgba(255,255,255,.3),0 4px 8px rgba(0,0,0,.5);line-height:1;opacity:0;transform:scale(2.5);animation:countdownPop .7s cubic-bezier(.34,1.56,.64,1) forwards;user-select:none;will-change:transform,opacity;-webkit-backface-visibility:hidden;backface-visibility:hidden}.countdown-go{font-family:Orbitron,system-ui,sans-serif;font-weight:900;font-size:clamp(64px,18vw,96px);color:#ffd740;text-shadow:0 0 30px rgba(255,215,64,.6),0 0 60px rgba(255,215,64,.3),0 4px 8px rgba(0,0,0,.5);line-height:1;letter-spacing:.1em;opacity:0;transform:scale(2.5);-webkit-text-stroke:2px rgba(180,120,0,.3);animation:countdownPop .5s cubic-bezier(.34,1.56,.64,1) forwards;user-select:none;will-change:transform,opacity;-webkit-backface-visibility:hidden;backface-visibility:hidden}@keyframes countdownPop{0%{opacity:0;transform:scale(2.5)}50%{opacity:1;transform:scale(.9)}70%{transform:scale(1.05)}to{opacity:1;transform:scale(1)}}.result-shatter-root{position:fixed;inset:0;z-index:30;pointer-events:auto}.result-post-overlay{position:fixed;inset:0;background:#000000c7;z-index:0;animation:overlayFadeIn .4s ease-out forwards}@keyframes overlayFadeIn{0%{opacity:0}to{opacity:1}}.result-content-scroll{position:relative;z-index:1;width:100%;height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;display:flex;flex-direction:column;align-items:center;padding:32px 28px calc(env(safe-area-inset-bottom,16px) + 24px);box-sizing:border-box;gap:10px;justify-content:center}.result-tap-hint{font-family:var(--font-body);font-size:14px;color:#ffffff73;letter-spacing:1px;text-align:center;margin-top:24px;animation:tapHintPulse 1.5s ease-in-out infinite}@keyframes tapHintPulse{0%,to{opacity:.35}50%{opacity:.7}}.result-shatter-text{display:flex;flex-direction:column;align-items:center;gap:4px;flex-shrink:0;width:min(84%,320px);box-sizing:border-box;margin-bottom:12px}.result-main-text{font-family:var(--font-display);font-weight:900;font-size:clamp(20px,6.5vw,48px);letter-spacing:.15em;text-align:center;-webkit-text-stroke:2px #000;paint-order:stroke fill;line-height:1.1;white-space:nowrap}.result-shatter-text--victory .result-main-text{color:#fbbf24;text-shadow:0 0 30px rgba(251,191,36,.6),0 4px 12px rgba(0,0,0,.5)}.result-shatter-text--defeat .result-main-text{color:#ef4444;text-shadow:0 0 20px rgba(239,68,68,.4),0 4px 12px rgba(0,0,0,.5)}.result-shatter-text--draw .result-main-text{color:#aaa;text-shadow:0 2px 12px rgba(0,0,0,.6)}.result-sub-text{font-family:var(--font-body);font-size:clamp(10px,3vw,14px);color:#ffffffb3;letter-spacing:2px;text-transform:uppercase;text-shadow:0 2px 8px rgba(0,0,0,.5);-webkit-text-stroke:0}.result-slam{animation:resultSlam .5s cubic-bezier(.17,.89,.32,1.28) forwards}@keyframes resultSlam{0%{transform:scale(3);opacity:0}50%{opacity:1}75%{transform:scale(.92)}to{transform:scale(1);opacity:1}}.result-fade{animation:resultFadeIn .7s ease-out forwards}@keyframes resultFadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.result-elo-change{font-family:var(--font-display);font-weight:900;font-size:clamp(22px,6vw,34px);letter-spacing:2px;text-align:center;-webkit-text-stroke:1.5px #000;paint-order:stroke fill;flex-shrink:0}.result-elo--positive{color:#fbbf24;text-shadow:0 0 16px rgba(251,191,36,.5)}.result-elo--negative{color:#ef4444;text-shadow:0 0 16px rgba(239,68,68,.4)}.result-elo-in{animation:eloIn .4s ease-out forwards}@keyframes eloIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.result-shatter-stats{width:min(84%,320px);display:flex;flex-direction:column;align-items:center;gap:6px;flex-shrink:0}.result-stats-in{animation:statsIn .4s ease-out forwards}@keyframes statsIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.result-banners-area{display:flex;flex-direction:column;align-items:center;gap:4px;width:100%;margin:8px 0}.result-shatter-buttons{width:min(80%,300px);display:flex;flex-direction:column;gap:10px;flex-shrink:0}.result-buttons-in{animation:buttonsIn .4s ease-out forwards}@keyframes buttonsIn{0%{opacity:0}to{opacity:1}}.result-btn{width:100%;height:48px;font-size:15px;letter-spacing:.06em}.result-banner-wrap{width:100%;transition:transform .4s ease,filter .4s ease,opacity .4s ease}.result-banner--winner-local{transform:scale(1.02);filter:drop-shadow(0 0 8px rgba(251,191,36,.4))}.result-banner--winner-opponent{transform:scale(1.02);filter:drop-shadow(0 0 8px rgba(220,50,50,.4))}.result-banner--loser{transform:scale(.96);filter:grayscale(.8) brightness(.6);opacity:.6}.result-banner--draw{opacity:.85}.result-vs{font-family:Orbitron,system-ui,sans-serif;font-weight:900;font-size:clamp(20px,6vw,32px);color:#ffd740;text-shadow:0 0 16px rgba(255,215,64,.5),0 0 30px rgba(255,215,64,.2),0 3px 6px rgba(0,0,0,.5);-webkit-text-stroke:1px rgba(180,120,0,.3);letter-spacing:.15em;line-height:1;user-select:none;text-align:center;margin:-2px 0}.result-win-condition{font-family:var(--font-body);font-size:13px;color:#fff9;text-align:center;-webkit-text-stroke:0;text-shadow:none}.result-stats{width:100%;display:flex;flex-direction:column;gap:4px}.result-stats-heading{font-family:var(--font-body);font-size:11px;color:#ffffff80;text-transform:uppercase;letter-spacing:1px;margin-bottom:2px;-webkit-text-stroke:0;text-shadow:none}.result-stat-row{display:flex;justify-content:space-between;align-items:center;font-size:13px;transition:opacity .2s ease-out,transform .2s ease-out}.result-stat-label{font-family:var(--font-body);color:#fff9;-webkit-text-stroke:0;text-shadow:none}.result-stat-value{font-family:var(--font-display);color:#ffffffe6;font-weight:700;font-size:14px;-webkit-text-stroke:0;text-shadow:none}.result-buttons{width:100%;display:flex;flex-direction:column;gap:12px}.result-backdrop{z-index:30}.result-panel{border-radius:20px;padding:32px 28px;width:min(88%,340px);gap:16px;max-height:85vh;overflow-y:auto}.result-ffa-title{font-family:var(--font-display);font-weight:900;font-size:28px;letter-spacing:2px;text-align:center;-webkit-text-stroke:1.5px #000;paint-order:stroke fill;text-shadow:0 2px 12px rgba(0,0,0,.6)}.result-ffa-subtitle{font-family:var(--font-display);font-weight:700;font-size:20px;letter-spacing:1px;text-align:center;margin-top:-8px;-webkit-text-stroke:0;text-shadow:0 2px 8px rgba(0,0,0,.5)}.result-ffa-placements{width:100%;display:flex;flex-direction:column;gap:4px}.result-ffa-placements-heading{font-family:var(--font-body);font-size:12px;color:#ffffff80;text-transform:uppercase;letter-spacing:1px;margin-bottom:4px;-webkit-text-stroke:0;text-shadow:none}.result-ffa-row{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:8px;border:1px solid transparent}.result-ffa-row--self{background:#22d3ee1f;border-color:#22d3ee4d}.result-ffa-place{font-family:var(--font-display);font-size:14px;font-weight:700;min-width:24px;text-align:center;-webkit-text-stroke:0;text-shadow:none}.result-ffa-color-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.result-ffa-name{flex:1;font-family:var(--font-body);font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;-webkit-text-stroke:0;text-shadow:none}.result-ffa-name--self{font-weight:700;color:#ffffffe6}.result-ffa-name--eliminated{font-weight:400;color:#fff6}.result-ffa-name--active{font-weight:400;color:#ffffffe6}.result-ffa-ships{font-family:var(--font-body);font-size:13px;color:#ffffff80;white-space:nowrap;-webkit-text-stroke:0;text-shadow:none}.elo-runup-title{font-family:var(--font-display);font-weight:900;font-size:clamp(28px,8vw,44px);letter-spacing:3px;text-align:center;-webkit-text-stroke:2px #000;paint-order:stroke fill;text-shadow:0 0 20px rgba(0,0,0,.5);flex-shrink:0}.elo-runup-badge{width:clamp(72px,22vw,104px);height:clamp(72px,22vw,104px);flex-shrink:0;margin:8px 0 4px;transition:transform .5s ease-out}.elo-runup-badge--promoted{animation:badgePromote .6s ease-out}@keyframes badgePromote{0%{transform:scale(1)}40%{transform:scale(1.4)}to{transform:scale(1)}}.elo-runup-rank-name{font-family:var(--font-display);font-weight:700;font-size:clamp(14px,4vw,18px);letter-spacing:1.5px;text-transform:uppercase;text-align:center;flex-shrink:0}.elo-runup-elo-number{font-family:var(--font-display);font-weight:900;font-size:clamp(40px,12vw,64px);color:#fff;letter-spacing:2px;text-align:center;font-variant-numeric:tabular-nums;-webkit-text-stroke:0;text-shadow:0 2px 12px rgba(0,0,0,.4);flex-shrink:0;line-height:1.1}.elo-runup-change-sup{font-family:var(--font-display);font-weight:800;font-size:.4em;letter-spacing:1px;vertical-align:super;margin-left:4px;animation:eloIn .4s ease-out forwards}.elo-runup-change--gain{color:#2ecc71;text-shadow:0 0 10px rgba(46,204,113,.4)}.elo-runup-change--loss{color:#e74c3c;text-shadow:0 0 10px rgba(231,76,60,.4)}.elo-runup-progress{width:min(80%,300px);display:flex;flex-direction:column;align-items:center;gap:6px;flex-shrink:0;margin-top:8px}.elo-runup-next-label{font-family:var(--font-body);font-weight:600;font-size:12px;color:#ffffff73;letter-spacing:.08em;-webkit-text-stroke:0;text-shadow:none}.elo-runup-next-label strong{color:var(--cyan)}.elo-runup-bar-row{display:flex;align-items:center;gap:6px;width:100%}.elo-runup-bar-icon{width:28px;height:28px;flex-shrink:0;border-radius:6px}.elo-runup-bar-icon-wrap{position:relative;flex-shrink:0;display:flex;align-items:center;justify-content:center}.elo-runup-bar-row .rank-bar{flex:1}.elo-runup-promoted-label{font-family:var(--font-display);font-weight:900;font-size:18px;color:gold;letter-spacing:2px;text-shadow:0 0 12px rgba(255,215,0,.5);animation:resultFadeIn .4s ease-out forwards;flex-shrink:0}.elo-runup-demoted-label{font-family:var(--font-body);font-weight:600;font-size:14px;color:#c44;opacity:.8;flex-shrink:0}.xp-gained-section{margin-top:16px;padding:10px 16px;background:#00c8ff0f;border:1px solid rgba(0,200,255,.15);border-radius:8px;opacity:0;transform:translateY(8px);transition:opacity .4s ease,transform .4s ease}.xp-gained-visible{opacity:1;transform:translateY(0)}.xp-gained-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.xp-gained-label{font-family:Orbitron,sans-serif;font-size:12px;font-weight:700;color:#00d4ff}.xp-gained-amount{font-family:Orbitron,sans-serif;font-size:11px;font-weight:600;color:#a0e8ff}.xp-gained-bar-track{height:6px;background:#ffffff14;border-radius:3px;border:1px solid rgba(0,200,255,.15);overflow:hidden}.xp-gained-bar-fill{height:100%;background:linear-gradient(90deg,#00b8d4,#00e5ff);border-radius:3px;box-shadow:0 0 6px #00c8ff80}.xp-level-up-text{text-align:center;margin-top:8px;font-family:Orbitron,sans-serif;font-size:16px;font-weight:900;color:#00e5ff;text-shadow:0 0 12px rgba(0,229,255,.8),0 0 24px rgba(0,229,255,.4);animation:xpLevelUpBounce .5s ease-out}@keyframes xpLevelUpBounce{0%{transform:scale(0);opacity:0}60%{transform:scale(1.2);opacity:1}to{transform:scale(1);opacity:1}}.nickname-root{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:url(/ui/menu-bg.png) center/cover no-repeat;background-color:#0b0b2e;font-family:var(--font-body);color:#fff;padding:24px}.nickname-title{font-family:var(--font-display);font-size:28px;text-align:center;margin-bottom:32px;-webkit-text-stroke:1px rgba(0,0,0,.3);text-shadow:0 2px 8px rgba(0,0,0,.5)}.nickname-form{display:flex;flex-direction:column;align-items:center;gap:16px;width:100%;max-width:320px}.nickname-error{color:#ff6b6b;font-size:13px;min-height:18px;text-align:center}.nickname-play-btn{position:relative;width:100%;max-width:280px;height:56px;border:none;border-radius:12px;background:linear-gradient(180deg,#4caf50,#388e3c);color:#fff;font-family:var(--font-display);font-size:22px;letter-spacing:2px;cursor:pointer;text-shadow:0 2px 4px rgba(0,0,0,.3);box-shadow:0 4px 12px #0000004d;transition:transform .1s,opacity .2s}.nickname-play-btn:active{transform:scale(.97)}.nickname-play-btn:disabled{opacity:.5;cursor:default}.nickname-divider{margin-top:24px;font-size:14px;color:#ffffff80;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.nickname-divider:hover{color:#ffffffb3}.nickname-login-form{display:flex;flex-direction:column;align-items:center;gap:12px;width:100%;max-width:320px;margin-top:16px}.nickname-login-title{font-size:18px;font-family:var(--font-display);margin-bottom:4px}.nickname-login-btn{width:100%;max-width:280px;height:48px;border:none;border-radius:12px;background:linear-gradient(180deg,#2196f3,#1976d2);color:#fff;font-family:var(--font-display);font-size:18px;letter-spacing:1px;cursor:pointer;text-shadow:0 2px 4px rgba(0,0,0,.3);box-shadow:0 4px 12px #0000004d;transition:transform .1s,opacity .2s}.nickname-login-btn:active{transform:scale(.97)}.nickname-login-btn:disabled{opacity:.5;cursor:default}.nickname-back-link{font-size:14px;color:#ffffff80;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.nickname-back-link:hover{color:#ffffffb3}.nickname-lang-switch{position:absolute;top:16px;right:16px;background:none;border:none;cursor:pointer;font-family:var(--font-body);font-size:14px;padding:4px 8px}.nickname-lang-option--active{color:#fff;font-weight:700}.nickname-lang-option--inactive{color:#fff6}.nickname-lang-separator{color:#ffffff4d;margin:0 2px}.ffa-browser-root{position:fixed;inset:0;display:flex;flex-direction:column;background:url(/ui/menu-bg.png) center/cover no-repeat;background-color:#0b0b2e;font-family:var(--font-body);overflow:hidden;color:#fff}.ffa-browser-header{display:flex;align-items:center;padding:16px;gap:12px;flex-shrink:0}.ffa-browser-back{background:#ffffff1a;border:none;border-radius:8px;padding:8px 14px;color:#ffffffb3;font-size:13px;font-family:var(--font-body);cursor:pointer;transition:background .15s}.ffa-browser-back:active{background:#fff3}.ffa-browser-title{font-size:20px;font-weight:500}.ffa-browser-list{flex:1;overflow-y:auto;padding:0 16px;display:flex;flex-direction:column;gap:10px}.ffa-browser-empty{flex:1;display:flex;align-items:center;justify-content:center;color:#fff6;font-size:14px;text-align:center;padding:40px}.ffa-lobby-card{display:flex;align-items:center;justify-content:space-between;background:#ffffff0f;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:14px 16px;cursor:pointer;transition:background .15s}.ffa-lobby-card:active{background:#ffffff1f}.ffa-lobby-card--full{opacity:.5;cursor:default}.ffa-lobby-card--ready-check{border-color:#ffd7004d}.ffa-lobby-card-info{display:flex;flex-direction:column;gap:4px}.ffa-lobby-card-host{font-size:14px;font-weight:500}.ffa-lobby-card-status{font-size:11px;color:#fff6}.ffa-lobby-card-status--starting{color:gold}.ffa-lobby-card-count{font-size:16px;font-weight:500;color:#fff9}.ffa-lobby-card-count--ready{color:#4ade80}.ffa-browser-bottom{padding:16px;flex-shrink:0;display:flex;flex-direction:column;gap:10px}.ffa-browser-bots-btn{width:100%;padding:14px;font-size:16px;font-weight:500;font-family:var(--font-body);color:#fff;background:linear-gradient(135deg,#f39c12,#d68910);border:none;border-radius:12px;cursor:pointer;text-transform:uppercase;transition:filter .15s,transform .1s}.ffa-browser-bots-btn:active{transform:scale(.97)}.ffa-browser-create-btn{width:100%;padding:14px;font-size:16px;font-weight:500;font-family:var(--font-body);color:#fff;background:linear-gradient(135deg,#2e86de,#1a5fa0);border:none;border-radius:12px;cursor:pointer;text-transform:uppercase;transition:filter .15s,transform .1s}.ffa-browser-create-btn:active{transform:scale(.97)}.ffa-browser-create-btn:disabled{opacity:.5;cursor:default}.ffa-lobby-root{position:fixed;inset:0;display:flex;flex-direction:column;background:url(/ui/menu-bg.png) center/cover no-repeat;background-color:#0b0b2e;font-family:var(--font-body);overflow:hidden;color:#fff}.ffa-lobby-header{display:flex;align-items:center;padding:16px;gap:12px;flex-shrink:0}.ffa-lobby-back{background:#ffffff1a;border:none;border-radius:8px;padding:8px 14px;color:#ffffffb3;font-size:13px;font-family:var(--font-body);cursor:pointer;transition:background .15s}.ffa-lobby-back:active{background:#fff3}.ffa-lobby-header-title{font-size:20px;font-weight:500}.ffa-lobby-code{text-align:center;padding:8px 16px;flex-shrink:0}.ffa-lobby-code-label{font-size:11px;color:#fff6}.ffa-lobby-code-value{font-size:22px;font-weight:500;letter-spacing:4px;color:gold}.ffa-lobby-players{flex:1;overflow-y:auto;padding:0 16px;display:flex;flex-direction:column;gap:8px}.ffa-lobby-player{display:flex;align-items:center;gap:12px;background:#ffffff0f;border-radius:10px;padding:12px 14px}.ffa-lobby-player--host{border:1px solid rgba(255,215,0,.2)}.ffa-lobby-player--self{background:#2e86de26}.ffa-lobby-player-skin{width:36px;height:36px;border-radius:50%;object-fit:cover}.ffa-lobby-player-info{flex:1;display:flex;flex-direction:column;gap:2px}.ffa-lobby-player-name{font-size:14px;font-weight:500}.ffa-lobby-player-host-badge{font-size:10px;color:gold}.ffa-lobby-player-elo{font-size:11px;color:#fff6}.ffa-lobby-player-ready{font-size:18px;width:28px;text-align:center}.ffa-lobby-waiting-text{text-align:center;padding:16px;color:#ffffff4d;font-size:13px}.ffa-lobby-status{display:flex;align-items:center;justify-content:center;gap:16px;padding:12px 16px;flex-shrink:0;font-size:13px;color:#ffffff80}.ffa-lobby-status-count{font-weight:500}.ffa-lobby-status-min{color:#4ade80}.ffa-lobby-status-min--not-met{color:#ef4444}.ffa-ready-overlay{position:fixed;inset:0;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;background:#000000d9;backdrop-filter:blur(8px)}.ffa-ready-title{font-size:28px;font-weight:500;color:gold;text-transform:uppercase}.ffa-ready-countdown{font-size:48px;font-weight:500;color:#fffc;font-variant-numeric:tabular-nums}.ffa-ready-btn{padding:16px 48px;font-size:20px;font-weight:500;font-family:var(--font-body);color:#fff;background:linear-gradient(135deg,#27ae60,#1e8e4e);border:none;border-radius:12px;cursor:pointer;text-transform:uppercase;transition:filter .15s,transform .1s}.ffa-ready-btn:active{transform:scale(.97)}.ffa-ready-btn--done{background:#ffffff1a;color:#fff6;cursor:default}.ffa-lobby-bottom{padding:16px;flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:8px}.ffa-lobby-start-btn{width:100%;padding:14px;font-size:16px;font-weight:500;font-family:var(--font-body);color:#fff;background:linear-gradient(135deg,#27ae60,#1e8e4e);border:none;border-radius:12px;cursor:pointer;text-transform:uppercase;transition:filter .15s,transform .1s}.ffa-lobby-start-btn:active{transform:scale(.97)}.ffa-lobby-start-btn:disabled{opacity:.4;cursor:default}.ffa-lobby-waiting-host{font-size:13px;color:#fff6;text-align:center}.vs-root{position:fixed;inset:0;z-index:1000;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(ellipse at center,#1a0a2e,#0a0416 60%,#060210);overflow:hidden;font-family:Rajdhani,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}.vs-stars{position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(1px 1px at 12% 18%,rgba(255,255,255,.3),transparent),radial-gradient(1.5px 1.5px at 50% 8%,rgba(255,255,255,.2),transparent),radial-gradient(1px 1px at 78% 52%,rgba(255,255,255,.25),transparent),radial-gradient(.8px .8px at 22% 76%,rgba(255,255,255,.15),transparent),radial-gradient(1.2px 1.2px at 88% 32%,rgba(255,255,255,.2),transparent),radial-gradient(.7px .7px at 58% 68%,rgba(255,255,255,.18),transparent),radial-gradient(1px 1px at 68% 88%,rgba(255,255,255,.12),transparent),radial-gradient(1.1px 1.1px at 8% 48%,rgba(255,255,255,.22),transparent),radial-gradient(.9px .9px at 42% 38%,rgba(255,255,255,.16),transparent),radial-gradient(1px 1px at 92% 72%,rgba(255,255,255,.14),transparent);background-size:200px 400px;opacity:.6}.vs-banners{position:absolute;inset:0;pointer-events:none}.vs-banner{position:absolute;width:85%;max-width:380px;opacity:0;pointer-events:none;will-change:transform,opacity;-webkit-backface-visibility:hidden;backface-visibility:hidden}.vs-banner--player{left:-100%;bottom:28%}.vs-banner--opponent{right:-100%;top:18%}.vs-banner--player.vs-enter{animation:slideFromLeft .65s cubic-bezier(.34,1.56,.64,1) forwards}.vs-banner--opponent.vs-enter{animation:slideFromRight .65s cubic-bezier(.34,1.56,.64,1) forwards}.vs-banner--player.vs-exit{animation:exitLeft .4s ease-in forwards}.vs-banner--opponent.vs-exit{animation:exitRight .4s ease-in forwards}@keyframes slideFromLeft{0%{left:-100%;opacity:0}to{left:0;opacity:1}}@keyframes slideFromRight{0%{right:-100%;opacity:0}to{right:0;opacity:1}}@keyframes exitLeft{0%{left:0;opacity:1}to{left:-110%;opacity:0}}@keyframes exitRight{0%{right:0;opacity:1}to{right:-110%;opacity:0}}.vs-banner-svg{width:100%;height:auto;display:block;filter:drop-shadow(0 0 12px rgba(0,0,0,.6));transform:translateZ(0)}.vs-banner-svg .banner-wrapper,.vs-banner-svg .banner{display:block;max-width:none;width:100%}.vs-banner-shimmer{animation:bannerShimmer 2.5s ease-in-out infinite}@keyframes bannerShimmer{0%{transform:translate(-200px)}to{transform:translate(600px)}}.vs-banner-planet,.vs-banner-planet-glow{border-radius:50%;pointer-events:none}.vs-speed-lines{position:absolute;inset:0;pointer-events:none;overflow:hidden}.vs-speed-line{position:absolute;height:2px;border-radius:1px;opacity:0}.vs-speed-line--left{left:-100%;background:linear-gradient(90deg,transparent,rgba(255,215,64,.4),transparent);animation:speedLineLeft .4s ease-out forwards}.vs-speed-line--right{right:-100%;background:linear-gradient(270deg,transparent,rgba(255,215,64,.4),transparent);animation:speedLineRight .4s ease-out forwards}@keyframes speedLineLeft{0%{left:-60%;opacity:.8}to{left:120%;opacity:0}}@keyframes speedLineRight{0%{right:-60%;opacity:.8}to{right:120%;opacity:0}}.vs-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:0;z-index:10;pointer-events:none}.vs-divider{width:0;height:2px;background:linear-gradient(90deg,transparent,#ffd740,#fff8e1,#ffd740,transparent);border-radius:1px;box-shadow:0 0 8px #ffd74080;opacity:0;will-change:width,opacity;transform:translateZ(0)}.vs-divider.vs-show{animation:dividerIn .5s ease-out forwards}.vs-divider.vs-hide{animation:dividerOut .3s ease-in forwards}@keyframes dividerIn{0%{width:0;opacity:0}to{width:min(70vw,300px);opacity:1}}@keyframes dividerOut{0%{width:min(70vw,300px);opacity:1}to{width:0;opacity:0}}.vs-text{font-family:Orbitron,system-ui,sans-serif;font-weight:900;font-size:clamp(56px,16vw,80px);color:#ffd740;text-shadow:0 0 20px rgba(255,215,64,.6),0 0 40px rgba(255,215,64,.3),0 4px 8px rgba(0,0,0,.5);letter-spacing:.15em;line-height:1;opacity:0;transform:scale(0);-webkit-text-stroke:2px rgba(180,120,0,.4);will-change:transform,opacity;-webkit-backface-visibility:hidden;backface-visibility:hidden}.vs-text.vs-show{animation:vsTextIn .4s cubic-bezier(.34,1.56,.64,1) forwards}.vs-text.vs-pulse{animation:vsTextIn .4s cubic-bezier(.34,1.56,.64,1) forwards,vsPulse 2s ease-in-out .4s infinite}.vs-text.vs-hide{animation:vsTextOut .3s ease-in forwards}@keyframes vsTextIn{0%{opacity:0;transform:scale(3) rotate(-8deg)}to{opacity:1;transform:scale(1) rotate(0)}}@keyframes vsTextOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(2)}}@keyframes vsPulse{0%,to{text-shadow:0 0 20px rgba(255,215,64,.6),0 0 40px rgba(255,215,64,.3),0 4px 8px rgba(0,0,0,.5)}50%{text-shadow:0 0 30px rgba(255,215,64,.8),0 0 60px rgba(255,215,64,.5),0 4px 8px rgba(0,0,0,.5)}}.vs-flash{position:absolute;top:50%;left:50%;width:300px;height:300px;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,rgba(255,215,64,.3) 0%,transparent 70%);opacity:0;pointer-events:none;z-index:5}.vs-flash.vs-show{animation:flashPulse .6s ease-out forwards}@keyframes flashPulse{0%{opacity:0;transform:translate(-50%,-50%) scale(.3)}40%{opacity:1}to{opacity:0;transform:translate(-50%,-50%) scale(2)}}.vs-root.vs-fade-out{animation:vsFadeOut .5s ease-in forwards}@keyframes vsFadeOut{0%{opacity:1}to{opacity:0}}@keyframes vs-sparkle{0%,to{opacity:.1}50%{opacity:.9}}@keyframes vs-orbit{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
