@import"https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;600;700;900&family=Rajdhani:wght@500;600;700&display=swap";*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--gold: #FFD700;--gold-glow: rgba(255, 215, 0, .4);--green: #00ff88;--green-glow: rgba(0, 255, 136, .35);--blue: #3b9eff;--red: #ff4444;--glass: rgba(255, 255, 255, .06);--glass-border: rgba(255, 255, 255, .12);--glass-strong: rgba(0, 0, 0, .55);--text: #f0f4ff;--text-muted: rgba(240, 244, 255, .5);--text-dim: rgba(240, 244, 255, .3);--shadow: 0 8px 32px rgba(0, 0, 0, .6);--font: "Outfit", sans-serif;--font-display: "Rajdhani", sans-serif}html,body,#root{width:100%;height:100%;overflow:hidden;background:#050518;color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased}.game-root{position:relative;width:100vw;height:100vh;overflow:hidden}.three-container{position:absolute;inset:0;width:100%;height:100%}.hud{position:absolute;inset:0;pointer-events:none;z-index:10}.hud>*{pointer-events:auto}.glass{background:var(--glass);backdrop-filter:blur(16px) saturate(180%);-webkit-backdrop-filter:blur(16px) saturate(180%);border:1px solid var(--glass-border);border-radius:16px;box-shadow:var(--shadow)}.glass-dark{background:var(--glass-strong);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:16px;box-shadow:var(--shadow)}.top-bar{position:absolute;top:16px;left:16px;right:16px;display:flex;align-items:center;gap:12px;pointer-events:none}.top-bar>*{pointer-events:auto}.top-icon-btn{padding:6px 10px;cursor:pointer;border:none;background:var(--glass);border-radius:10px;color:var(--text);font-size:1rem;min-width:36px;min-height:36px;display:flex;align-items:center;justify-content:center}.top-bar-row2{position:absolute;top:52px;left:16px;right:16px;display:flex;align-items:flex-start;gap:8px;pointer-events:none}.top-bar-row2>*{pointer-events:auto}.venue-badge{display:flex;align-items:center;gap:8px;padding:8px 16px;font-family:var(--font-display);font-size:1rem;font-weight:600;color:var(--gold);letter-spacing:.05em}.weather-badge{display:flex;align-items:center;gap:6px;padding:6px 12px;font-size:.85rem;color:var(--text-muted)}.spacer{flex:1}.stat-pill{display:flex;align-items:center;gap:6px;padding:6px 14px;font-family:var(--font-display);font-size:.9rem;font-weight:600}.wind-indicator{position:relative;width:90px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;background:var(--glass);border:1px solid var(--glass-border);border-radius:12px;padding:6px;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.wind-compass{position:relative;width:80px;height:80px}.wind-compass-ring{width:80px;height:80px;border-radius:50%;border:2px solid var(--glass-border);background:radial-gradient(circle,rgba(255,255,255,.04),transparent);display:flex;align-items:center;justify-content:center;position:relative}.wind-arrow{position:absolute;width:3px;height:32px;border-radius:2px;background:linear-gradient(to top,transparent,var(--gold));transform-origin:bottom center;bottom:50%;left:calc(50% - 1.5px);transition:transform .6s cubic-bezier(.34,1.56,.64,1);filter:drop-shadow(0 0 6px var(--gold-glow))}.wind-label{font-family:var(--font-display);font-size:.8rem;font-weight:600;color:var(--gold);text-align:center;letter-spacing:.03em}.wind-label.tailwind{color:var(--green)}.wind-label.headwind{color:var(--red)}.wind-speed-text{font-size:.72rem;color:var(--text-muted);text-align:center}.compass-labels{position:absolute;inset:0;font-size:.6rem;font-weight:700;color:var(--text-dim)}.compass-labels span{position:absolute}.compass-labels .n{top:3px;left:50%;transform:translate(-50%);color:var(--red)}.compass-labels .s{bottom:3px;left:50%;transform:translate(-50%)}.compass-labels .e{right:3px;top:50%;transform:translateY(-50%)}.compass-labels .w{left:3px;top:50%;transform:translateY(-50%)}.power-meter-wrap{position:absolute;bottom:120px;left:50%;transform:translate(-50%);width:320px;display:flex;flex-direction:column;align-items:center;gap:10px}.circular-meter{position:relative;width:140px;height:140px;display:flex;align-items:center;justify-content:center}.meter-svg{width:100%;height:100%;transform:rotate(-90deg)}.meter-track{fill:none;stroke:#ffffff1a;stroke-width:12}.meter-fill{fill:none;stroke:url(#power-gradient);stroke:var(--gold);stroke-width:12;stroke-linecap:round;stroke-dasharray:251.2;transition:stroke-dashoffset .05s linear;filter:drop-shadow(0 0 8px var(--gold-glow))}.meter-center-value{position:absolute;font-family:var(--font-display);font-size:2.2rem;font-weight:900;color:var(--text);text-shadow:0 0 15px var(--gold-glow);display:flex;align-items:baseline}.meter-center-value span{font-size:1.2rem;color:var(--gold);margin-left:2px}.power-meter-label{font-family:var(--font-display);font-size:1.1rem;font-weight:700;color:var(--text);letter-spacing:.08em;text-shadow:0 0 20px rgba(255,215,0,.5)}.power-bar-outer{width:100%;height:20px;border-radius:10px;background:#ffffff14;border:1px solid var(--glass-border);overflow:hidden;position:relative}.power-bar-inner{height:100%;border-radius:10px;background:linear-gradient(90deg,#00c853,gold,#f60,red);position:absolute;left:0;top:0;transition:width .04s linear;box-shadow:0 0 16px #ff960099}.power-bar-marker{position:absolute;top:-3px;bottom:-3px;width:3px;background:#fff;border-radius:2px;box-shadow:0 0 8px #fff}.power-value{font-family:var(--font-display);font-size:2rem;font-weight:900;color:var(--gold);text-shadow:0 0 20px var(--gold-glow)}.accuracy-meter-wrap{position:absolute;bottom:160px;left:50%;transform:translate(-50%);width:320px;display:flex;flex-direction:column;align-items:center;gap:8px}.accuracy-bar-outer{width:100%;height:14px;border-radius:7px;background:#ffffff14;border:1px solid var(--glass-border);overflow:visible;position:relative}.accuracy-zone{position:absolute;top:0;height:100%;background:#0f83;border-radius:7px;left:35%;width:30%}.accuracy-needle{position:absolute;width:4px;height:22px;background:#fff;border-radius:2px;top:-4px;transform:translate(-50%);transition:left .03s linear;box-shadow:0 0 10px #fff}.accuracy-label{font-family:var(--font-display);font-size:.8rem;font-weight:600;color:var(--text-muted);letter-spacing:.08em}.shoot-btn-wrap{position:absolute;bottom:max(32px,calc(env(safe-area-inset-bottom,0px) + 16px));left:50%;transform:translate(-50%);z-index:100;touch-action:manipulation}.shoot-btn{width:90px;height:90px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff8dc,var(--gold) 60%,#c8860a);border:4px solid rgba(255,215,0,.5);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;font-family:var(--font-display);font-size:1.2rem;font-weight:900;color:#1a0a00;box-shadow:0 0 30px var(--gold-glow),0 4px 20px #0009;transition:transform .1s,box-shadow .1s;display:flex;align-items:center;justify-content:center;letter-spacing:.05em}.shoot-btn:active{transform:scale(.93);box-shadow:0 0 15px var(--gold-glow)}.shoot-btn:hover{transform:scale(1.05);box-shadow:0 0 40px var(--gold-glow)}.shoot-btn.night{background:radial-gradient(circle at 35% 30%,#80ffcc,var(--green) 60%,#00804a);color:#001a0a;border-color:#00ff8880;box-shadow:0 0 30px var(--green-glow)}.shoot-btn.powering{animation:pulse-btn .5s ease-in-out infinite alternate}.result-card{position:absolute;bottom:140px;left:50%;transform:translate(-50%) scale(0);width:360px;padding:24px 28px;display:flex;flex-direction:column;align-items:center;gap:16px;transition:transform .4s cubic-bezier(.34,1.56,.64,1)}.result-card.visible{transform:translate(-50%) scale(1)}.result-distance-main{font-family:var(--font-display);font-size:4rem;font-weight:900;color:var(--gold);line-height:1;text-shadow:0 0 30px var(--gold-glow)}.result-distance-main.night{color:var(--green);text-shadow:0 0 30px var(--green-glow)}.result-yards{font-size:1.2rem;font-weight:400;color:var(--text-muted)}.result-stats{display:flex;gap:20px;width:100%;justify-content:center}.result-stat{display:flex;flex-direction:column;align-items:center;gap:2px}.result-stat-value{font-family:var(--font-display);font-size:1.2rem;font-weight:700;color:var(--text)}.result-stat-label{font-size:.72rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em}.result-ob{padding:6px 20px;border-radius:20px;background:#f443;border:1px solid var(--red);color:var(--red);font-weight:700;font-size:.9rem;letter-spacing:.05em}.result-personal-best{padding:6px 20px;border-radius:20px;background:#ffd70026;border:1px solid var(--gold);color:var(--gold);font-weight:700;font-size:.9rem;animation:shimmer 1.5s ease-in-out infinite alternate}.menu-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;z-index:20;background:radial-gradient(ellipse at 50% 30%,rgba(255,215,0,.05),transparent 60%),radial-gradient(ellipse at 80% 80%,rgba(0,100,255,.04),transparent 50%)}.menu-logo{font-family:var(--font-display);font-size:5rem;font-weight:900;background:linear-gradient(135deg,gold,#ff9000,gold);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:.02em;line-height:1;filter:drop-shadow(0 0 30px rgba(255,180,0,.5));animation:logo-pulse 3s ease-in-out infinite alternate}.menu-subtitle{font-family:var(--font-display);font-size:1.1rem;font-weight:500;color:var(--text-muted);letter-spacing:.25em;text-transform:uppercase}.menu-buttons{display:flex;flex-direction:column;gap:14px;width:280px;margin-top:16px}.menu-btn{padding:16px 28px;border-radius:14px;cursor:pointer;border:none;font-family:var(--font-display);font-size:1.15rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;transition:transform .15s,box-shadow .15s;position:relative;overflow:hidden}.menu-btn:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.15),transparent);opacity:0;transition:opacity .2s}.menu-btn:hover:before{opacity:1}.menu-btn:hover{transform:translateY(-2px)}.menu-btn:active{transform:translateY(0) scale(.98)}.menu-btn-primary{background:linear-gradient(135deg,#c8860a,var(--gold),#c8860a);color:#1a0a00;box-shadow:0 4px 24px #ffb40066,0 0 0 1px #ffd7004d}.menu-btn-secondary{background:var(--glass);color:var(--text);border:1px solid var(--glass-border);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.menu-btn-contest{background:linear-gradient(135deg,#3a0080,#7b00d4,#3a0080);color:#e0b0ff;box-shadow:0 4px 24px #7800c866,0 0 0 1px #9632ff4d}.contest-banner{position:absolute;top:70px;left:16px;width:220px;padding:14px 16px;display:flex;flex-direction:column;gap:8px}.contest-round{font-family:var(--font-display);font-size:.75rem;font-weight:700;color:#9b59b6;letter-spacing:.15em;text-transform:uppercase}.contest-opponent{font-size:.9rem;font-weight:600;color:var(--text)}.contest-scores{display:flex;justify-content:space-between;align-items:center}.contest-score-you{font-family:var(--font-display);font-size:1.8rem;font-weight:900;color:var(--gold)}.contest-score-vs{font-size:.8rem;color:var(--text-dim)}.contest-score-opp{font-family:var(--font-display);font-size:1.8rem;font-weight:900;color:#e74c3c}.contest-balls{display:flex;gap:4px}.contest-ball-pip{width:10px;height:10px;border-radius:50%;background:var(--gold)}.contest-ball-pip.used{background:#ffffff26}.shot-clock{position:absolute;top:70px;right:140px;width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:1.4rem;font-weight:900;color:var(--text)}.shot-clock.urgent{color:var(--red);animation:urgent-pulse .5s ease-in-out infinite alternate}.pb-bar{position:absolute;top:70px;left:50%;transform:translate(-50%);padding:8px 20px;display:flex;align-items:center;gap:10px;font-family:var(--font-display)}.pb-label{font-size:.75rem;color:var(--text-muted);letter-spacing:.1em;text-transform:uppercase}.pb-value{font-size:1.3rem;font-weight:900;color:var(--gold)}.pb-unit{font-size:.75rem;color:var(--text-muted)}.equip-badge{position:absolute;bottom:140px;right:16px;padding:10px 14px;display:flex;flex-direction:column;gap:4px}.equip-row{display:flex;align-items:center;gap:6px}.equip-icon{font-size:.9rem}.equip-name{font-size:.75rem;color:var(--text-muted)}.history-strip{position:absolute;bottom:24px;left:16px;right:16px;display:flex;gap:6px;justify-content:flex-start;align-items:center;overflow-x:auto;padding-bottom:2px}.history-pill{flex-shrink:0;padding:4px 10px;border-radius:20px;font-family:var(--font-display);font-size:.8rem;font-weight:700;background:#ffffff12;border:1px solid rgba(255,255,255,.12);color:var(--text-muted);white-space:nowrap}.history-pill.in-bounds{color:var(--green);border-color:#00ff884d}.history-pill.ob{color:var(--red);border-color:#ff44444d}.venue-modal-overlay{position:absolute;inset:0;z-index:30;background:#000000bf;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center}.venue-modal{width:min(90vw,500px);max-height:80vh;overflow-y:auto;padding:24px;display:flex;flex-direction:column;gap:16px}.venue-modal-title{font-family:var(--font-display);font-size:1.5rem;font-weight:900;color:var(--gold);letter-spacing:.05em}.venue-card{padding:16px;border-radius:12px;background:var(--glass);border:1px solid var(--glass-border);cursor:pointer;transition:border-color .2s,transform .15s}.venue-card:hover{border-color:var(--gold);transform:translate(4px)}.venue-card.selected{border-color:var(--gold);background:#ffd7000f}.venue-card.locked{opacity:.45;cursor:not-allowed;filter:grayscale(.5)}.venue-name{font-family:var(--font-display);font-size:1.1rem;font-weight:700;color:var(--text)}.venue-hole{font-size:.8rem;color:var(--text-muted);margin-top:2px}.venue-desc{font-size:.8rem;color:var(--text-dim);margin-top:6px;line-height:1.4}.venue-meta{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}.venue-tag{padding:3px 10px;border-radius:20px;font-size:.7rem;font-weight:600;background:#ffffff14;color:var(--text-muted);border:1px solid var(--glass-border)}.venue-tag.tier-premium{background:#9c27b026;color:#ce93d8;border-color:#9c27b04d}.venue-tag.tier-legendary{background:#ff440026;color:#ff8c66;border-color:#ff44004d}.xp-popup{position:absolute;top:40%;left:50%;transform:translate(-50%,-50%);text-align:center;pointer-events:none;animation:xp-float 1.8s ease-out forwards}.xp-popup-text{font-family:var(--font-display);font-size:1.8rem;font-weight:900;color:var(--gold);text-shadow:0 0 20px var(--gold-glow)}@keyframes pulse-btn{0%{box-shadow:0 0 20px var(--gold-glow)}to{box-shadow:0 0 50px var(--gold-glow),0 0 100px #ffb40033}}@keyframes shimmer{0%{box-shadow:0 0 10px var(--gold-glow)}to{box-shadow:0 0 25px var(--gold-glow)}}@keyframes logo-pulse{0%{filter:drop-shadow(0 0 20px rgba(255,180,0,.4))}to{filter:drop-shadow(0 0 50px rgba(255,180,0,.8))}}@keyframes urgent-pulse{0%{color:var(--red)}to{color:#f88;text-shadow:0 0 15px var(--red)}}@keyframes xp-float{0%{opacity:1;transform:translate(-50%,-50%)}70%{opacity:1;transform:translate(-50%,-80%)}to{opacity:0;transform:translate(-50%,-110%)}}@keyframes fadeInUp{0%{opacity:0;transform:translate(-50%) translateY(20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:translateY(0)}}html,body{touch-action:manipulation;-webkit-tap-highlight-color:transparent;overscroll-behavior:none}.hud{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}@media(max-width:768px){.top-bar{top:max(8px,env(safe-area-inset-top,8px));left:8px;right:8px;gap:6px;flex-wrap:nowrap}.top-bar-row2{top:44px;left:8px;right:8px}.venue-badge{padding:6px 10px;font-size:.8rem;gap:4px;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.weather-badge{padding:4px 8px;font-size:.72rem;gap:4px}.stat-pill{padding:4px 8px;font-size:.75rem;gap:4px}.wind-indicator{width:70px;padding:4px}.wind-compass,.wind-compass-ring{width:50px;height:50px}.wind-arrow{height:22px}.wind-label{font-size:.65rem}.wind-speed-text{font-size:.6rem}.compass-labels{font-size:.5rem}.power-meter-wrap{width:240px;bottom:140px!important}.circular-meter{width:100px;height:100px}.meter-center-value{font-size:1.6rem}.meter-center-value span{font-size:.9rem}.accuracy-meter-wrap{width:240px;bottom:160px!important}.accuracy-bar-outer{height:12px}.accuracy-needle{height:18px;width:3px}.shoot-btn-wrap{bottom:max(36px,calc(env(safe-area-inset-bottom,0px) + 20px))}.shoot-btn{width:74px;height:74px;font-size:1rem;border-width:3px}.result-card{width:min(92vw,320px);bottom:100px;padding:18px 20px;gap:12px}.result-distance-main{font-size:3rem}.result-yards{font-size:1rem}.result-stats{gap:12px;flex-wrap:wrap}.result-stat-value{font-size:1rem}.result-stat-label{font-size:.65rem}.menu-logo{font-size:3.2rem}.menu-subtitle{font-size:.85rem;letter-spacing:.15em}.menu-buttons{width:min(85vw,260px);gap:10px}.menu-btn{padding:14px 20px;font-size:1rem}.contest-banner{top:52px;left:8px;width:180px;padding:10px 12px;gap:6px}.contest-round{font-size:.65rem}.contest-opponent{font-size:.75rem}.contest-score-you,.contest-score-opp{font-size:1.4rem}.shot-clock{top:52px;right:96px;width:44px;height:44px;font-size:1.1rem}.pb-bar{top:52px;padding:5px 12px;gap:6px}.pb-label{font-size:.65rem}.pb-value{font-size:1rem}.equip-badge{bottom:100px;right:8px;padding:6px 10px}.equip-name{font-size:.65rem}.history-strip{bottom:90px;left:8px;right:8px}.history-pill{padding:3px 8px;font-size:.7rem}.venue-modal{width:min(95vw,440px);max-height:85vh;padding:16px;gap:12px}.venue-modal-title{font-size:1.2rem}.venue-card{padding:12px}.venue-name{font-size:.95rem}.venue-hole,.venue-desc{font-size:.7rem}.customizer-panel{width:min(95vw,380px);max-height:90vh;padding:18px;gap:14px}.customizer-header h2{font-size:1.3rem}.customizer-swatch{width:36px;height:36px}.customizer-outfit-grid{grid-template-columns:repeat(3,1fr);gap:6px}.customizer-outfit{padding:8px 4px;font-size:.65rem}.customizer-save{padding:12px;font-size:1rem}}@media(max-width:480px){.top-bar{gap:4px}.top-bar-row2{top:40px;left:6px;right:6px}.venue-badge{max-width:90px;font-size:.72rem;padding:5px 8px}.weather-badge{display:none}.menu-logo{font-size:2.6rem}.menu-subtitle{font-size:.75rem}.power-meter-wrap{width:200px;bottom:120px!important}.circular-meter{width:80px;height:80px}.meter-center-value{font-size:1.3rem}.accuracy-meter-wrap{width:200px;bottom:140px!important}.shoot-btn{width:64px;height:64px;font-size:.9rem}.result-card{width:min(95vw,290px);bottom:80px;padding:14px 16px}.result-distance-main{font-size:2.5rem}.wind-indicator{width:60px;padding:3px}.wind-compass,.wind-compass-ring{width:40px;height:44px}.wind-arrow{height:16px}}@media(max-width:480px){.daily-challenge-chip{top:88px!important;font-size:.62rem!important;padding:4px 8px!important;max-width:55vw!important}}@media(max-height:500px)and (orientation:landscape){.menu-logo{font-size:2rem}.menu-overlay{gap:8px}.menu-buttons{flex-direction:row;width:auto;gap:8px}.menu-btn{padding:10px 16px;font-size:.85rem}.shoot-btn{width:56px;height:56px;font-size:.85rem}.power-meter-wrap{bottom:80px!important;width:180px}.circular-meter{width:70px;height:70px}.accuracy-meter-wrap{bottom:130px!important;width:180px}.result-card{bottom:60px}}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffd7004d;border-radius:3px}.night-mode .power-bar-inner{background:linear-gradient(90deg,#004d30,var(--green),#00ff88);box-shadow:0 0 16px var(--green-glow)}.night-mode .shoot-btn-wrap .shoot-btn{background:radial-gradient(circle at 35% 30%,#80ffcc,var(--green))}.customizer-overlay{position:absolute;inset:0;z-index:40;background:#000c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center}.customizer-panel{width:min(92vw,420px);max-height:85vh;overflow-y:auto;padding:24px;background:#0a0f1ef2;border:1px solid rgba(255,215,0,.2);border-radius:20px;box-shadow:0 20px 60px #000c,0 0 40px #ffd70014;display:flex;flex-direction:column;gap:20px}.customizer-header{display:flex;justify-content:space-between;align-items:center}.customizer-header h2{font-family:var(--font-display);font-size:1.6rem;font-weight:900;background:linear-gradient(135deg,gold,#ff9000);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:.03em}.customizer-close{width:36px;height:36px;border-radius:50%;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);color:var(--text-muted);font-size:1.1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s}.customizer-close:hover{background:#ffffff1f}.customizer-section{display:flex;flex-direction:column;gap:8px}.customizer-section label{font-family:var(--font-display);font-size:.8rem;font-weight:600;color:var(--text-muted);letter-spacing:.12em;text-transform:uppercase}.customizer-toggle-row{display:flex;gap:8px}.customizer-toggle{flex:1;padding:10px 16px;border-radius:12px;background:#ffffff0a;border:1px solid rgba(255,255,255,.1);color:var(--text-muted);cursor:pointer;font-family:var(--font-display);font-size:.95rem;font-weight:600;transition:all .2s}.customizer-toggle:hover{background:#ffffff14}.customizer-toggle.active{background:#ffd7001f;border-color:var(--gold);color:var(--gold);box-shadow:0 0 12px #ffd70026}.customizer-color-row{display:flex;gap:10px}.customizer-swatch{width:42px;height:42px;border-radius:50%;border:3px solid transparent;cursor:pointer;transition:transform .2s,border-color .2s;box-shadow:0 2px 8px #0006}.customizer-swatch:hover{transform:scale(1.15)}.customizer-swatch.active{border-color:var(--gold);box-shadow:0 0 12px var(--gold-glow),0 2px 8px #0006;transform:scale(1.1)}.customizer-outfit-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.customizer-outfit{padding:10px 6px;border-radius:12px;background:#ffffff08;border:1px solid rgba(255,255,255,.08);cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:6px;transition:all .2s;color:var(--text-muted);font-size:.7rem;font-family:var(--font-display)}.customizer-outfit:hover{background:#ffffff12}.customizer-outfit.active{background:#ffd7001a;border-color:var(--gold);color:var(--gold)}.outfit-preview{display:flex;flex-direction:column;align-items:center;gap:2px}.outfit-shirt{width:28px;height:18px;border-radius:4px 4px 0 0}.outfit-pants{width:22px;height:14px;border-radius:0 0 3px 3px}.customizer-save{width:100%;padding:14px;border-radius:14px;background:linear-gradient(135deg,#c8860a,var(--gold),#c8860a);border:none;cursor:pointer;font-family:var(--font-display);font-size:1.15rem;font-weight:900;color:#1a0a00;letter-spacing:.08em;box-shadow:0 4px 24px #ffb40066;transition:transform .15s,box-shadow .15s}.customizer-save:hover{transform:translateY(-2px);box-shadow:0 6px 30px #ffb40080}.customizer-save:active{transform:translateY(0) scale(.98)}.hub-overlay{position:absolute;inset:0;z-index:200;background:#000000d9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;align-items:flex-start;justify-content:center;overflow-y:auto;padding:20px 10px}.hub-panel{position:relative;width:min(95vw,440px);background:linear-gradient(170deg,#1a1a2eeb,#0d0d1af2);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:1px solid rgba(255,215,0,.18);border-radius:20px;padding:24px 20px 30px;box-shadow:0 20px 60px #0009,0 0 40px #ffd7000f,inset 0 1px #ffffff0d;animation:hub-appear .35s cubic-bezier(.16,1,.3,1)}@keyframes hub-appear{0%{opacity:0;transform:translateY(20px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.hub-close{position:absolute;top:12px;right:14px;background:#ffffff14;border:1px solid rgba(255,255,255,.15);color:var(--text-muted);width:32px;height:32px;border-radius:50%;font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.hub-close:hover{background:#ffffff26;color:#fff;transform:scale(1.1)}.hub-close:active{transform:scale(.9)}.hub-header{display:flex;align-items:center;gap:14px;margin-bottom:16px}.hub-avatar-ring{width:56px;height:56px;border-radius:50%;border:3px solid;display:flex;align-items:center;justify-content:center;background:#ffffff0d;flex-shrink:0;box-shadow:0 0 16px #ffd70026;animation:avatar-glow 3s ease-in-out infinite alternate}@keyframes avatar-glow{0%{box-shadow:0 0 12px #ffd7001a}to{box-shadow:0 0 22px #ffd70040}}.hub-avatar-icon{font-size:1.6rem}.hub-header-info{display:flex;flex-direction:column;gap:2px}.hub-player-name{font-family:var(--font-display);font-size:1.3rem;font-weight:800;color:#fff;letter-spacing:.02em}.hub-division{font-family:var(--font-display);font-size:.8rem;font-weight:600;letter-spacing:.08em}.hub-level-section{margin-bottom:16px}.hub-level-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.hub-level-badge{font-family:var(--font-display);font-size:.7rem;font-weight:800;letter-spacing:.1em;padding:3px 10px;border-radius:10px;color:#000}.hub-xp-text{font-size:.75rem;color:var(--text-muted);font-family:var(--font-display)}.hub-xp-bar{height:8px;background:#ffffff14;border-radius:4px;overflow:hidden}.hub-xp-fill{height:100%;border-radius:4px;transition:width .5s ease;position:relative;overflow:hidden}.hub-xp-fill:after{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);animation:xp-shimmer 2.5s ease-in-out infinite}@keyframes xp-shimmer{0%{left:-100%}to{left:200%}}.hub-next-div{font-size:.7rem;color:var(--text-dim);margin-top:4px;text-align:right}.hub-stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:16px}.hub-stat-box{text-align:center;padding:10px 4px;background:var(--glass);border:1px solid var(--glass-border);border-radius:10px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:all .25s}.hub-stat-box:hover{background:#ffffff14;border-color:#ffd70033;transform:translateY(-1px)}.hub-stat-num{font-family:var(--font-display);font-size:1.1rem;font-weight:800;color:var(--gold)}.hub-stat-title{font-size:.6rem;color:var(--text-dim);letter-spacing:.08em;margin-top:2px;text-transform:uppercase}.hub-tabs{display:flex;gap:4px;margin-bottom:16px;background:#ffffff0a;border-radius:12px;padding:3px}.hub-tab{flex:1;padding:8px;border:none;background:transparent;color:var(--text-muted);font-family:var(--font-display);font-size:.8rem;font-weight:600;letter-spacing:.06em;border-radius:10px;cursor:pointer;transition:all .25s;text-transform:uppercase}.hub-tab:hover:not(.active){color:var(--text);background:#ffffff0f}.hub-tab:active{transform:scale(.95)}.hub-tab.active{background:linear-gradient(135deg,#ffd70026,#ffd70014);color:var(--gold);box-shadow:0 0 12px #ffd7001f,inset 0 1px #ffd70026;text-shadow:0 0 8px rgba(255,215,0,.3)}.hub-content{min-height:200px}.hub-loadout{display:flex;flex-direction:column;gap:16px}.hub-slot-label{font-family:var(--font-display);font-size:.7rem;color:var(--text-dim);letter-spacing:.12em;margin-bottom:8px}.hub-equip-grid{display:flex;flex-direction:column;gap:12px}.hub-equip-card{position:relative;padding:16px;background:var(--glass);border:2px solid var(--glass-border);border-radius:14px;cursor:pointer;transition:all .3s cubic-bezier(.16,1,.3,1);overflow:hidden}.hub-equip-card:before{content:"";position:absolute;top:0;left:-100%;width:50%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.04),transparent);transition:left .6s ease;pointer-events:none}.hub-equip-card:hover:before{left:150%}.hub-equip-card:hover{background:#ffffff14;transform:translateY(-2px);box-shadow:0 8px 24px #0000004d}.hub-equip-card:active{transform:translateY(0) scale(.98);transition-duration:.1s}.hub-equip-card.equipped{background:#ffd7000d;border-color:#ffd70033}.hub-equip-rarity{font-family:var(--font-display);font-size:.6rem;font-weight:800;letter-spacing:.15em;margin-bottom:8px}.hub-equip-image{display:flex;justify-content:center;margin-bottom:10px}.hub-equip-image img{width:120px;height:120px;object-fit:contain;transition:transform .3s ease}.hub-equip-card:hover .hub-equip-image img{transform:scale(1.05)}.hub-equip-name{font-family:var(--font-display);font-size:1rem;font-weight:700;color:#fff;margin-bottom:4px}.hub-equip-desc{font-size:.75rem;color:var(--text-muted);line-height:1.3;margin-bottom:10px}.hub-equip-stats{display:flex;flex-direction:column;gap:4px}.hub-stat-bar{display:flex;align-items:center;gap:6px}.hub-stat-label{font-family:var(--font-display);font-size:.6rem;font-weight:700;letter-spacing:.1em;color:var(--text-dim);width:32px}.hub-stat-track{flex:1;height:6px;background:#ffffff14;border-radius:3px;overflow:hidden}.hub-stat-fill{height:100%;border-radius:3px;transition:width .5s cubic-bezier(.16,1,.3,1);box-shadow:0 0 6px currentColor}.hub-stat-value{font-family:var(--font-display);font-size:.7rem;font-weight:700;color:var(--text-muted);width:28px;text-align:right}.hub-equip-no-bonus{font-size:.7rem;color:var(--text-dim);text-align:center;padding:4px}.hub-equipped-badge{position:absolute;top:10px;right:10px;font-family:var(--font-display);font-size:.55rem;font-weight:800;letter-spacing:.12em;color:var(--gold);background:linear-gradient(135deg,#ffd7002e,#ffd70014);border:1px solid rgba(255,215,0,.35);padding:3px 8px;border-radius:6px;box-shadow:0 0 10px #ffd7001f;animation:badge-pulse 2s ease-in-out infinite alternate}@keyframes badge-pulse{0%{box-shadow:0 0 6px #ffd7001a}to{box-shadow:0 0 14px #ffd70040}}.hub-customize-btn{width:100%;padding:12px;background:linear-gradient(135deg,#ffffff14,#ffffff0a);border:1px solid var(--glass-border);color:var(--text);font-family:var(--font-display);font-size:.85rem;font-weight:600;letter-spacing:.04em;border-radius:12px;cursor:pointer;transition:all .25s;text-transform:uppercase}.hub-customize-btn:hover{background:linear-gradient(135deg,#ffd7001f,#ffd7000d);border-color:#ffd70040;color:var(--gold);box-shadow:0 4px 16px #ffd70014;transform:translateY(-1px)}.hub-customize-btn:active{transform:translateY(0) scale(.98)}.hub-logout-btn{width:100%;padding:10px;background:transparent;border:1px solid rgba(255,68,68,.2);color:#ff646499;font-family:var(--font);font-size:.75rem;border-radius:10px;cursor:pointer;transition:all .25s;margin-top:4px}.hub-logout-btn:active{background:#ff44441a;color:#ff6b6b}.hub-skill-tier{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:10px;font-family:var(--font-display);font-size:.65rem;font-weight:800;letter-spacing:.1em;color:#000;margin-left:8px;text-transform:uppercase;box-shadow:0 0 10px #ffffff1a;animation:tier-glow 3s ease-in-out infinite alternate}@keyframes tier-glow{0%{filter:brightness(1)}to{filter:brightness(1.2)}}.carousel-container{position:relative;width:100%;overflow:hidden;padding:8px 0 20px}.carousel-track{display:flex;will-change:transform}.carousel-track>.carousel-card{flex:0 0 85%;max-width:85%;margin:0;box-sizing:border-box}.carousel-card{position:relative;padding:20px 18px 16px;background:linear-gradient(170deg,#1e1e32d9,#0f0f1ee6);backdrop-filter:blur(16px) saturate(160%);-webkit-backdrop-filter:blur(16px) saturate(160%);border:2px solid var(--glass-border);border-radius:18px;overflow:hidden;transition:all .35s cubic-bezier(.16,1,.3,1)}.carousel-card:before{content:"";position:absolute;top:0;left:-100%;width:60%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.03),transparent);pointer-events:none;transition:left .7s ease}.carousel-card:hover:before{left:160%}.carousel-card.equipped{border-color:#ffd70059;background:linear-gradient(170deg,#28230fd9,#141208e6);box-shadow:0 0 24px #ffd7001f,inset 0 0 20px #ffd7000a}.carousel-card.locked{filter:grayscale(.85) brightness(.5);pointer-events:none;-webkit-user-select:none;user-select:none}.carousel-card.locked .carousel-card-inner{opacity:.45}.carousel-lock-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;z-index:5;pointer-events:none}.carousel-lock-icon{font-size:2.2rem;filter:drop-shadow(0 0 12px rgba(255,255,255,.3))}.carousel-lock-text{font-family:var(--font-display);font-size:.7rem;font-weight:800;letter-spacing:.12em;color:#ffffffb3;text-transform:uppercase;text-shadow:0 0 8px rgba(0,0,0,.8);background:#00000080;padding:4px 12px;border-radius:8px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.carousel-card-rarity{font-family:var(--font-display);font-size:.6rem;font-weight:800;letter-spacing:.15em;text-transform:uppercase;margin-bottom:4px}.carousel-card-image{display:flex;justify-content:center;margin:8px 0 12px}.carousel-card-image img{width:140px;height:140px;object-fit:contain;transition:transform .4s cubic-bezier(.16,1,.3,1)}.carousel-card:hover .carousel-card-image img{transform:scale(1.06) translateY(-2px)}.carousel-card.equipped .carousel-card-image img{filter:drop-shadow(0 0 16px rgba(255,215,0,.3))}.carousel-card-name{font-family:var(--font-display);font-size:1.15rem;font-weight:800;color:#fff;margin-bottom:4px;letter-spacing:.02em}.carousel-card-desc{font-size:.75rem;color:var(--text-muted);line-height:1.35;margin-bottom:12px}.carousel-card-stats{display:flex;flex-direction:column;gap:5px;margin-bottom:14px}.carousel-equip-btn{width:100%;padding:11px;border-radius:12px;border:none;cursor:pointer;font-family:var(--font-display);font-size:.9rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;background:linear-gradient(135deg,#c8860a,var(--gold),#c8860a);color:#1a0a00;box-shadow:0 4px 18px #ffb40059;transition:all .2s}.carousel-equip-btn:hover{transform:translateY(-1px);box-shadow:0 6px 24px #ffb40080}.carousel-equip-btn:active{transform:translateY(0) scale(.97)}.carousel-equipped-badge{width:100%;padding:11px;border-radius:12px;border:1px solid rgba(255,215,0,.25);background:linear-gradient(135deg,#ffd7001f,#ffd7000a);font-family:var(--font-display);font-size:.8rem;font-weight:800;letter-spacing:.12em;color:var(--gold);text-align:center;text-transform:uppercase;animation:badge-pulse 2s ease-in-out infinite alternate}.carousel-dots{display:flex;justify-content:center;align-items:center;gap:7px;padding-top:14px}.carousel-dot{width:8px;height:8px;border-radius:50%;background:#ffffff26;border:none;padding:0;cursor:pointer;transition:all .3s}.carousel-dot:hover{background:#ffffff4d}.carousel-dot.active{background:var(--gold);box-shadow:0 0 8px var(--gold-glow);transform:scale(1.25)}.carousel-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:10;width:36px;height:36px;border-radius:50%;background:#ffffff14;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.15);color:var(--text);font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;opacity:.7}.carousel-arrow:hover{background:#ffd70026;border-color:#ffd7004d;color:var(--gold);opacity:1;transform:translateY(-50%) scale(1.08)}.carousel-arrow:active{transform:translateY(-50%) scale(.92)}.carousel-arrow-left{left:2px}.carousel-arrow-right{right:2px}.carousel-arrow:disabled{opacity:.2;pointer-events:none}@media(max-width:480px){.carousel-track>.carousel-card{flex:0 0 92%;max-width:92%}.carousel-card-image img{width:110px;height:110px}.carousel-card{padding:16px 14px 14px}.carousel-card-name{font-size:1rem}.carousel-arrow{width:30px;height:30px;font-size:.85rem}}@media(max-width:480px){.hub-panel{padding:18px 14px 24px;border-radius:16px}.hub-equip-image img{width:90px;height:90px}.hub-stats-row{gap:6px}.hub-stat-num{font-size:.95rem}}.avatar-picker-overlay{position:absolute;inset:0;z-index:210;background:#000000e0;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);display:flex;align-items:flex-start;justify-content:center;overflow-y:auto;padding:20px 10px}.avatar-picker-panel{position:relative;width:min(95vw,440px);background:linear-gradient(170deg,#1a1a2ef0,#0d0d1af5);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:1px solid rgba(255,215,0,.18);border-radius:20px;padding:24px 20px 30px;box-shadow:0 20px 60px #0009,0 0 40px #ffd7000f,inset 0 1px #ffffff0d;animation:hub-appear .35s cubic-bezier(.16,1,.3,1)}.avatar-picker-title{font-family:var(--font-display);font-size:1.4rem;font-weight:800;color:var(--gold);text-align:center;letter-spacing:.04em;margin-bottom:4px;text-shadow:0 0 20px rgba(255,215,0,.2)}.avatar-picker-subtitle{font-size:.75rem;color:var(--text-muted);text-align:center;margin-bottom:20px}.avatar-picker-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.avatar-picker-item{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px 4px;background:var(--glass);border:2px solid var(--glass-border);border-radius:14px;cursor:pointer;transition:all .25s cubic-bezier(.16,1,.3,1);overflow:hidden}.avatar-picker-item img{width:64px;height:64px;border-radius:50%;object-fit:cover;object-position:center 15%;transition:transform .25s;border:2px solid rgba(255,255,255,.1)}.avatar-picker-item:hover{background:#ffffff14;border-color:#ffd70040;transform:translateY(-2px)}.avatar-picker-item:hover img{transform:scale(1.05)}.avatar-picker-item:active{transform:translateY(0) scale(.96);transition-duration:.1s}.avatar-picker-item.selected{background:#ffd70014;border-color:var(--gold);box-shadow:0 0 16px #ffd70026,inset 0 0 12px #ffd7000d}.avatar-picker-item.selected img{border-color:var(--gold);box-shadow:0 0 10px #ffd7004d}.avatar-picker-name{font-family:var(--font-display);font-size:.6rem;font-weight:600;color:var(--text-muted);letter-spacing:.06em;text-transform:uppercase}.avatar-picker-item.selected .avatar-picker-name{color:var(--gold)}.avatar-picker-check{position:absolute;top:4px;right:4px;width:18px;height:18px;background:var(--gold);color:#000;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.6rem;font-weight:900;box-shadow:0 0 8px #ffd70066}.hub-avatar-ring.clickable{cursor:pointer;transition:all .25s}.hub-avatar-ring.clickable:hover{transform:scale(1.08);box-shadow:0 0 24px #ffd7004d}.hub-avatar-ring.clickable:active{transform:scale(.95)}.hub-avatar-img{width:100%;height:100%;border-radius:50%;object-fit:cover;object-position:center 15%}.hub-avatar-edit-hint{position:absolute;bottom:-2px;right:-2px;width:20px;height:20px;background:var(--gold);color:#000;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.55rem;font-weight:900;border:2px solid #0d0d1a;box-shadow:0 0 6px #ffd7004d}@media(max-width:480px){.avatar-picker-grid{grid-template-columns:repeat(3,1fr);gap:10px}.avatar-picker-item img{width:56px;height:56px}.avatar-picker-panel{padding:18px 14px 24px}}.auth-overlay{position:fixed;inset:0;z-index:300;display:flex;align-items:center;justify-content:center;background:#050510;padding:20px;overflow-y:auto}.auth-cinema-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:0}.auth-container{position:relative;z-index:1;width:100%;max-width:420px;display:flex;flex-direction:column;align-items:center;gap:16px;opacity:0;transform:translateY(30px);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1)}.auth-container.auth-entered{opacity:1;transform:translateY(0)}.auth-logo-section{text-align:center;position:relative;padding:10px 0 4px}.auth-logo-glow{position:absolute;top:50%;left:50%;transform:translate(-50%,-55%);width:280px;height:120px;background:radial-gradient(ellipse,rgba(255,215,0,.12) 0%,transparent 70%);pointer-events:none;animation:authLogoBreath 4s ease-in-out infinite}@keyframes authLogoBreath{0%,to{opacity:.7;transform:translate(-50%,-55%) scale(1)}50%{opacity:1;transform:translate(-50%,-55%) scale(1.15)}}.auth-logo{font-family:var(--font-display);font-size:4rem;font-weight:900;letter-spacing:.2em;line-height:1;background:linear-gradient(180deg,#ffe566,gold 40%,#c90);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;filter:drop-shadow(0 0 30px rgba(255,215,0,.35)) drop-shadow(0 4px 8px rgba(0,0,0,.8));animation:authLogoShine 6s ease-in-out infinite}@keyframes authLogoShine{0%,to{filter:drop-shadow(0 0 30px rgba(255,215,0,.35)) drop-shadow(0 4px 8px rgba(0,0,0,.8))}50%{filter:drop-shadow(0 0 50px rgba(255,215,0,.5)) drop-shadow(0 4px 8px rgba(0,0,0,.8))}}.auth-subtitle{font-family:var(--font-display);font-size:.78rem;color:#ffd700d9;letter-spacing:.35em;text-transform:uppercase;margin-top:4px;text-shadow:0 0 12px rgba(255,215,0,.4),0 1px 6px rgba(0,0,0,.8)}.auth-tagline{font-family:var(--font-display);font-size:1.1rem;font-weight:700;letter-spacing:.12em;margin-top:10px;background:linear-gradient(135deg,#fffffff2,#06b6d4e6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;filter:drop-shadow(0 1px 6px rgba(0,0,0,.7));animation:authTagFade 3s ease-in-out infinite alternate}@keyframes authTagFade{0%{opacity:.6}to{opacity:1}}.auth-card{width:100%;padding:20px;border-radius:20px;background:#080c1cbf;border:1px solid rgba(255,215,0,.08);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);box-shadow:0 0 0 1px #ffd70008,0 20px 60px #0006,inset 0 1px #ffffff0a;display:flex;flex-direction:column;gap:14px}.auth-tabs{display:flex;width:100%;border-radius:12px;overflow:hidden;border:1px solid rgba(255,215,0,.08);background:#ffffff05}.auth-tab{flex:1;padding:12px;border:none;background:transparent;color:#ffffff4d;font-family:var(--font-display);font-size:.88rem;font-weight:600;letter-spacing:.06em;cursor:pointer;transition:all .3s;position:relative}.auth-tab.active{background:linear-gradient(135deg,#ffd7001f,#ffd7000a);color:var(--gold)}.auth-tab.active:after{content:"";position:absolute;bottom:0;left:20%;right:20%;height:2px;background:linear-gradient(90deg,transparent,#FFD700,transparent)}.auth-form{width:100%;display:flex;flex-direction:column;gap:11px}.auth-input{width:100%;padding:13px 16px;border-radius:12px;border:1px solid rgba(255,255,255,.07);background:#ffffff08;color:var(--text);font-family:var(--font);font-size:.92rem;outline:none;transition:all .3s}.auth-input:focus{border-color:#ffd70059;background:#ffffff0f;box-shadow:0 0 20px #ffd7000d}.auth-input::placeholder{color:#ffffff2e}.auth-password-wrap{position:relative;width:100%}.auth-password-wrap .auth-input{padding-right:48px}.auth-eye-btn{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;font-size:1.1rem;cursor:pointer;padding:4px;opacity:.5}.auth-pw-rules{display:flex;gap:12px;font-size:.68rem;color:#fff3;font-family:var(--font);padding:0 4px}.auth-pw-rules span{transition:color .25s}.auth-pw-rules span.met{color:var(--green)}.auth-error{padding:10px 14px;border-radius:10px;background:#ff444414;border:1px solid rgba(255,68,68,.2);color:#ff6b6b;font-size:.82rem;text-align:center}.auth-submit-btn{width:100%;padding:15px;border:none;border-radius:14px;background:linear-gradient(135deg,#ffe066,gold,#c90);color:#000;font-family:var(--font-display);font-size:1.05rem;font-weight:700;letter-spacing:.1em;cursor:pointer;transition:all .2s;box-shadow:0 4px 24px #ffd70040,inset 0 1px #ffffff4d;margin-top:4px;position:relative;overflow:hidden}.auth-submit-btn:before{content:"";position:absolute;top:0;left:-100%;width:60%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);animation:authBtnShimmer 3s infinite}@keyframes authBtnShimmer{0%{left:-100%}50%,to{left:150%}}.auth-submit-btn:active{transform:scale(.97);box-shadow:0 2px 12px #ffd7004d}.auth-submit-btn:disabled{opacity:.5;cursor:not-allowed}.auth-guest-btn{background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:13px 24px;color:#ffffff73;font-family:var(--font);font-size:.85rem;cursor:pointer;transition:all .25s;width:100%;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.auth-guest-btn:active{background:#ffffff14;color:#ffffffb3}.auth-footer{font-size:.65rem;color:#ffd70040;letter-spacing:.06em}.auth-dev-link{font-size:.65rem;color:#06b6d459;text-decoration:none;letter-spacing:.06em;font-family:var(--font);transition:color .25s ease;margin-top:2px;background:none;border:none;cursor:pointer;padding:0}.auth-dev-link:hover{color:#06b6d4b3;text-decoration:underline}@media(max-width:480px){.auth-logo{font-size:3rem}.auth-container{gap:12px}.auth-tagline{font-size:.85rem}.auth-card{padding:16px;border-radius:16px}.auth-input{padding:12px 14px;font-size:.88rem}.auth-submit-btn{padding:13px;font-size:.95rem}}.chat-edge-tab{position:fixed;right:0;top:50%;transform:translateY(-50%);z-index:240;display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 8px;border:none;border-radius:12px 0 0 12px;background:linear-gradient(180deg,#06b6d42e,#8b5cf61f);border-left:1px solid rgba(6,182,212,.25);border-top:1px solid rgba(6,182,212,.15);border-bottom:1px solid rgba(6,182,212,.15);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);cursor:pointer;transition:all .3s cubic-bezier(.16,1,.3,1);box-shadow:-4px 0 20px #06b6d414}.chat-edge-tab:active{transform:translateY(-50%) scale(.95);background:linear-gradient(180deg,#06b6d447,#8b5cf633)}.chat-edge-tab.has-unread{animation:chatTabPulse 2s infinite;box-shadow:-4px 0 24px #06b6d440}@keyframes chatTabPulse{0%,to{box-shadow:-4px 0 20px #06b6d426}50%{box-shadow:-4px 0 30px #06b6d459}}.chat-edge-dot{width:8px;height:8px;border-radius:50%;background:#06b6d4;box-shadow:0 0 8px #06b6d499;animation:chatEdgePulse 2.5s infinite}@keyframes chatEdgePulse{0%,to{opacity:1;box-shadow:0 0 8px #06b6d499}50%{opacity:.6;box-shadow:0 0 4px #06b6d44d}}.chat-edge-label{writing-mode:vertical-rl;text-orientation:mixed;font-family:var(--font-display);font-size:.65rem;font-weight:700;letter-spacing:.15em;color:#e0f2fecc}.chat-edge-badge{width:18px;height:18px;border-radius:50%;background:linear-gradient(135deg,#06b6d4,#8b5cf6);color:#fff;font-size:.6rem;font-weight:700;display:flex;align-items:center;justify-content:center;box-shadow:0 0 10px #06b6d480}.chat-modal-overlay{position:fixed;inset:0;z-index:260;display:flex;align-items:center;justify-content:center;animation:chatOverlayIn .25s ease-out}@keyframes chatOverlayIn{0%{opacity:0}to{opacity:1}}.chat-modal-backdrop{position:absolute;inset:0;background:#0009;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.chat-modal{position:relative;width:420px;max-width:95vw;height:85vh;max-height:700px;display:flex;flex-direction:column;border-radius:20px;background:linear-gradient(165deg,#080c1cfa,#040814fc);border:1px solid rgba(6,182,212,.15);box-shadow:0 0 0 1px #06b6d40d,0 20px 60px #00000080,0 0 80px #06b6d40f,inset 0 1px #ffffff0a;overflow:hidden;animation:chatModalIn .35s cubic-bezier(.16,1,.3,1)}@keyframes chatModalIn{0%{transform:scale(.9) translateY(20px);opacity:0}to{transform:scale(1) translateY(0);opacity:1}}.chat-modal-header{position:relative;padding:16px 20px 12px;background:linear-gradient(180deg,rgba(6,182,212,.06),transparent);border-bottom:1px solid rgba(6,182,212,.1)}.chat-modal-title-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.chat-modal-brand{display:flex;align-items:center;gap:10px}.chat-modal-dot{width:10px;height:10px;border-radius:50%;background:linear-gradient(135deg,#06b6d4,#8b5cf6);box-shadow:0 0 12px #06b6d480;animation:chatEdgePulse 2.5s infinite}.chat-modal-title{font-family:var(--font-display);font-size:1.1rem;font-weight:700;letter-spacing:.08em;background:linear-gradient(135deg,#e0f2fe,#06b6d4);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.chat-modal-status{font-size:.72rem;font-family:var(--font)}.chat-modal-online{display:flex;align-items:center;gap:5px;color:#00ff88b3}.chat-modal-online-dot{width:6px;height:6px;border-radius:50%;background:#0f8;box-shadow:0 0 6px #00ff8880}.chat-modal-offline{color:#ffffff4d}.chat-modal-channels{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}.chat-modal-channels::-webkit-scrollbar{display:none}.chat-channel-pill{padding:5px 12px;border-radius:20px;border:1px solid rgba(6,182,212,.1);background:#06b6d40a;color:#e0f2fe80;font-family:var(--font);font-size:.72rem;font-weight:500;cursor:pointer;transition:all .2s;white-space:nowrap;flex-shrink:0}.chat-channel-pill.active{background:linear-gradient(135deg,#06b6d426,#8b5cf61a);border-color:#06b6d44d;color:#06b6d4;box-shadow:0 0 12px #06b6d41a}.chat-channel-pill:active{transform:scale(.95)}.chat-modal-close{position:absolute;top:14px;right:14px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:10px;width:34px;height:34px;display:flex;align-items:center;justify-content:center;color:#fff6;cursor:pointer;transition:all .2s}.chat-modal-close:active{background:#ffffff1a;color:#fff;transform:scale(.9)}.chat-messages{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px;scrollbar-width:thin;scrollbar-color:rgba(6,182,212,.15) transparent}.chat-messages::-webkit-scrollbar{width:4px}.chat-messages::-webkit-scrollbar-thumb{background:#06b6d433;border-radius:2px}.chat-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;margin:auto;text-align:center;color:#06b6d466;font-size:.85rem}.chat-empty-icon{width:56px;height:56px;border-radius:16px;background:#06b6d40f;border:1px solid rgba(6,182,212,.1);display:flex;align-items:center;justify-content:center;color:#06b6d44d;margin-bottom:4px}.chat-empty-sub{font-size:.72rem;color:#06b6d440}.chat-message-item{display:flex;gap:10px;align-items:flex-start;animation:chatMsgIn .2s ease-out}@keyframes chatMsgIn{0%{transform:translateY(8px);opacity:0}to{transform:translateY(0);opacity:1}}.chat-message-item.own{flex-direction:row-reverse}.chat-msg-avatar{width:30px;height:30px;border-radius:10px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:.75rem;font-weight:700;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.3)}.chat-msg-body{max-width:78%}.chat-msg-header{display:flex;align-items:baseline;gap:6px;margin-bottom:3px}.chat-message-item.own .chat-msg-header{flex-direction:row-reverse}.chat-msg-username{font-size:.72rem;font-weight:600;font-family:var(--font-display);letter-spacing:.02em}.chat-msg-time{font-size:.58rem;color:#fff3}.chat-msg-content{padding:10px 14px;border-radius:14px 14px 14px 4px;background:#06b6d40f;border:1px solid rgba(6,182,212,.08);color:#ffffffe0;font-size:.83rem;line-height:1.45;word-break:break-word}.chat-message-item.own .chat-msg-content{border-radius:14px 14px 4px;background:linear-gradient(135deg,#06b6d41f,#8b5cf614);border-color:#06b6d426}.chat-typing{padding:6px 18px 10px;font-size:.7rem;color:#06b6d473;display:flex;align-items:center;gap:6px}.chat-typing-dots{display:flex;gap:3px}.chat-typing-dots span{width:4px;height:4px;border-radius:50%;background:#06b6d466;animation:typingBounce 1.4s infinite}.chat-typing-dots span:nth-child(2){animation-delay:.2s}.chat-typing-dots span:nth-child(3){animation-delay:.4s}@keyframes typingBounce{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-4px);opacity:1}}.chat-input-bar{display:flex;gap:8px;padding:14px 16px;border-top:1px solid rgba(6,182,212,.08);background:#04081499}.chat-input{flex:1;padding:11px 16px;border-radius:12px;border:1px solid rgba(6,182,212,.1);background:#ffffff08;color:#e0f2fe;font-family:var(--font);font-size:.85rem;outline:none;transition:all .25s}.chat-input:focus{border-color:#06b6d459;background:#ffffff0d;box-shadow:0 0 20px #06b6d40f}.chat-input::placeholder{color:#ffffff2e}.chat-send-btn{width:42px;height:42px;border-radius:12px;border:none;background:linear-gradient(135deg,#06b6d4,#8b5cf6);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0;box-shadow:0 4px 16px #06b6d433}.chat-send-btn:active{transform:scale(.9)}.chat-send-btn:disabled{opacity:.2;cursor:default;box-shadow:none}.chat-login-section{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:32px 24px}.chat-login-hero{display:flex;flex-direction:column;align-items:center;gap:8px;margin-bottom:8px}.chat-login-hero-dot{width:20px;height:20px;border-radius:50%;background:linear-gradient(135deg,#06b6d4,#8b5cf6);box-shadow:0 0 24px #06b6d44d;animation:chatEdgePulse 2.5s infinite}.chat-login-hero-title{font-family:var(--font-display);font-size:1.3rem;font-weight:700;letter-spacing:.06em;background:linear-gradient(135deg,#e0f2fe,#06b6d4);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.chat-login-hero-sub{font-size:.72rem;color:#06b6d466}.chat-login-tabs{display:flex;width:100%;border-radius:10px;overflow:hidden;border:1px solid rgba(6,182,212,.12);background:#06b6d408}.chat-login-tab{flex:1;padding:10px;border:none;background:transparent;color:#ffffff59;font-family:var(--font-display);font-size:.75rem;font-weight:600;letter-spacing:.08em;cursor:pointer;transition:all .25s}.chat-login-tab.active{background:linear-gradient(135deg,#06b6d41f,#8b5cf614);color:#06b6d4}.chat-login-fields{width:100%;display:flex;flex-direction:column;gap:10px}.chat-login-input{width:100%;padding:12px 16px;border-radius:10px;border:1px solid rgba(6,182,212,.1);background:#ffffff08;color:#e0f2fe;font-family:var(--font);font-size:.85rem;outline:none;transition:all .25s}.chat-login-input:focus{border-color:#06b6d44d;background:#ffffff0d;box-shadow:0 0 16px #06b6d40f}.chat-login-input::placeholder{color:#ffffff2e}.chat-login-error{width:100%;padding:10px 14px;border-radius:10px;background:#ff44440f;border:1px solid rgba(255,68,68,.15);color:#ff6b6b;font-size:.78rem;text-align:center}.chat-login-submit{width:100%;padding:13px;border:none;border-radius:12px;background:linear-gradient(135deg,#06b6d4,#8b5cf6);color:#fff;font-family:var(--font-display);font-size:.95rem;font-weight:600;letter-spacing:.04em;cursor:pointer;transition:all .2s;box-shadow:0 4px 20px #06b6d433}.chat-login-submit:active{transform:scale(.97)}.chat-login-submit:disabled{opacity:.4;cursor:default;box-shadow:none}.chat-login-hint{font-size:.62rem;color:#06b6d440;letter-spacing:.04em}@media(max-width:480px){.chat-modal{width:100vw;height:100vh;max-height:100vh;border-radius:0}.chat-edge-tab{top:auto;bottom:120px;transform:none}.chat-edge-tab:active{transform:scale(.95)}}.auth-sso-divider{display:flex;align-items:center;gap:12px;width:100%;color:var(--text-dim);font-size:.75rem}.auth-sso-divider:before,.auth-sso-divider:after{content:"";flex:1;height:1px;background:var(--glass-border)}.auth-sso-btn{width:100%;padding:13px;border:1px solid rgba(6,182,212,.25);border-radius:12px;background:linear-gradient(135deg,#06b6d41a,#8b5cf614);color:#e0f2fe;font-family:var(--font-display);font-size:.95rem;font-weight:600;letter-spacing:.04em;cursor:pointer;transition:all .25s;display:flex;align-items:center;justify-content:center;gap:8px}.auth-sso-btn:active{transform:scale(.97);background:linear-gradient(135deg,#06b6d42e,#8b5cf624)}.auth-sso-btn:disabled{opacity:.5;cursor:default}.auth-sso-dot{width:8px;height:8px;border-radius:50%;background:#06b6d4;box-shadow:0 0 6px #06b6d480}.analytics-overlay{position:fixed;inset:0;z-index:255;display:flex;align-items:center;justify-content:center;animation:chatOverlayIn .25s ease-out}.analytics-backdrop{position:absolute;inset:0;background:#000000a6;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.analytics-modal{position:relative;width:440px;max-width:95vw;max-height:88vh;display:flex;flex-direction:column;border-radius:20px;background:linear-gradient(165deg,#080c1cfa,#040814fc);border:1px solid rgba(255,215,0,.1);box-shadow:0 0 0 1px #ffd70008,0 20px 60px #00000080,0 0 80px #ffd7000a,inset 0 1px #ffffff0a;overflow:hidden;animation:chatModalIn .35s cubic-bezier(.16,1,.3,1)}.analytics-header{display:flex;align-items:center;justify-content:space-between;padding:18px 20px 14px;background:linear-gradient(180deg,rgba(255,215,0,.04),transparent);border-bottom:1px solid rgba(255,215,0,.08)}.analytics-header-left{display:flex;align-items:center;gap:12px}.analytics-header-icon{width:40px;height:40px;border-radius:12px;background:linear-gradient(135deg,#ffd7001a,#ffa5000f);border:1px solid rgba(255,215,0,.15);display:flex;align-items:center;justify-content:center;color:gold}.analytics-title{font-family:var(--font-display);font-size:.95rem;font-weight:700;letter-spacing:.1em;background:linear-gradient(135deg,gold,orange);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.analytics-subtitle{font-size:.68rem;color:#ffd70066;margin-top:2px}.analytics-close{background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:10px;width:34px;height:34px;display:flex;align-items:center;justify-content:center;color:#fff6;cursor:pointer;transition:all .2s}.analytics-close:active{background:#ffffff1a;color:#fff;transform:scale(.9)}.analytics-tabs{display:flex;padding:0 16px;border-bottom:1px solid rgba(255,255,255,.04)}.analytics-tab{flex:1;padding:12px 8px;border:none;background:none;color:#ffffff4d;font-family:var(--font-display);font-size:.72rem;font-weight:600;letter-spacing:.12em;cursor:pointer;transition:all .25s;position:relative}.analytics-tab.active{color:gold}.analytics-tab.active:after{content:"";position:absolute;bottom:-1px;left:20%;right:20%;height:2px;background:linear-gradient(90deg,transparent,#FFD700,transparent);border-radius:1px}.analytics-body{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:14px;scrollbar-width:thin;scrollbar-color:rgba(255,215,0,.1) transparent}.analytics-body::-webkit-scrollbar{width:4px}.analytics-body::-webkit-scrollbar-thumb{background:#ffd70026;border-radius:2px}.analytics-hero-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.analytics-hero-card{padding:20px 16px;border-radius:16px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:4px;position:relative;overflow:hidden}.analytics-hero-card:before{content:"";position:absolute;inset:0;border-radius:16px;padding:1px;background:linear-gradient(135deg,rgba(255,215,0,.2),transparent,rgba(255,215,0,.1));-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude}.analytics-hero-gold{background:linear-gradient(165deg,#ffd7000f,#ffa50005)}.analytics-hero-cyan{background:linear-gradient(165deg,#06b6d40f,#8b5cf605)}.analytics-hero-cyan:before{background:linear-gradient(135deg,rgba(6,182,212,.2),transparent,rgba(139,92,246,.1));-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude}.analytics-hero-label{font-family:var(--font-display);font-size:.62rem;font-weight:600;letter-spacing:.14em;color:#fff6}.analytics-hero-value{font-family:var(--font-display);font-size:2.2rem;font-weight:900;line-height:1;background:linear-gradient(135deg,#fff,#ffd700e6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.analytics-hero-cyan .analytics-hero-value{background:linear-gradient(135deg,#fff,#06b6d4e6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.analytics-hero-unit{font-family:var(--font-display);font-size:.55rem;font-weight:600;letter-spacing:.15em;color:#ffffff40;margin-top:2px}.analytics-chart-card{padding:14px 16px;border-radius:14px;background:#ffffff05;border:1px solid rgba(255,255,255,.05)}.analytics-chart-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.analytics-chart-title{font-family:var(--font-display);font-size:.65rem;font-weight:600;letter-spacing:.12em;color:#ffffff59}.analytics-chart-avg{font-family:var(--font);font-size:.7rem;color:#ffd70099}.analytics-mini-chart{width:100%;height:64px;display:block}.analytics-total-distance{font-family:var(--font-display);font-size:2rem;font-weight:900;text-align:center;background:linear-gradient(135deg,gold,#ff8c00);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin:8px 0 4px}.analytics-total-unit{font-size:.8rem;font-weight:600}.analytics-total-sub{text-align:center;font-size:.7rem;color:#ffffff40}.analytics-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.analytics-stat-card{display:flex;align-items:center;gap:10px;padding:14px;border-radius:14px;background:#ffffff05;border:1px solid rgba(255,255,255,.04);transition:all .2s}.analytics-stat-icon{width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.analytics-stat-content{min-width:0}.analytics-stat-label{font-size:.6rem;color:#ffffff4d;letter-spacing:.04em;margin-bottom:2px}.analytics-stat-value{font-family:var(--font-display);font-size:.95rem;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(max-width:480px){.analytics-modal{width:100vw;max-height:100vh;border-radius:0}.analytics-hero-value{font-size:1.8rem}.analytics-grid{gap:8px}.analytics-stat-card{padding:10px}.analytics-stat-value{font-size:.85rem}}.analytics-hero-purple{background:linear-gradient(165deg,#8b5cf60f,#06b6d405)}.analytics-hero-purple:before{background:linear-gradient(135deg,rgba(139,92,246,.2),transparent,rgba(6,182,212,.1));-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude}.analytics-hero-purple .analytics-hero-value{background:linear-gradient(135deg,#fff,#8b5cf6e6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.analytics-hero-live{background:linear-gradient(165deg,#00ff8814,#06b6d408)}.analytics-hero-live:before{background:linear-gradient(135deg,rgba(0,255,136,.25),transparent,rgba(6,182,212,.1));-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude}.analytics-hero-live .analytics-hero-value{background:linear-gradient(135deg,#fff,#00ff88e6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.analytics-pulse{animation:analyticsPulse 2s ease-in-out infinite}@keyframes analyticsPulse{0%,to{opacity:1}50%{opacity:.7}}.analytics-device-pie{display:flex;align-items:center;gap:20px;padding:8px 0}.analytics-device-legend{display:flex;flex-direction:column;gap:6px;flex:1}.analytics-legend-item{display:flex;align-items:center;gap:8px;font-size:.72rem}.analytics-legend-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.analytics-legend-label{color:#ffffff80;flex:1;text-transform:capitalize}.analytics-legend-val{color:#ffffffb3;font-weight:600;font-family:var(--font-display)}.analytics-table{display:flex;flex-direction:column;gap:0}.analytics-table-row{display:flex;justify-content:space-between;align-items:center;padding:8px 4px;border-bottom:1px solid rgba(255,255,255,.04)}.analytics-table-row:last-child{border-bottom:none}.analytics-table-label{font-size:.72rem;color:#ffffff80;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:70%}.analytics-table-value{font-family:var(--font-display);font-size:.78rem;font-weight:700;color:#ffd700d9}.analytics-loading{text-align:center;padding:40px 20px;color:#ffffff4d;font-size:.8rem;font-family:var(--font-display);letter-spacing:.1em}.devportal-overlay{position:fixed;inset:0;z-index:300;background:#050518eb;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;overflow-y:auto}.devportal-pin-card{width:min(90vw,380px);padding:40px 32px;background:#0a0a1ad9;backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);border:1px solid rgba(6,182,212,.25);border-radius:20px;box-shadow:0 8px 48px #0009,0 0 60px #06b6d414;display:flex;flex-direction:column;align-items:center;gap:20px;animation:devPinBreathe 3s ease-in-out infinite alternate}@keyframes devPinBreathe{0%{box-shadow:0 8px 48px #0009,0 0 30px #06b6d40f}to{box-shadow:0 8px 48px #0009,0 0 60px #06b6d426}}.devportal-pin-card h2,.devportal-pin-title{font-family:var(--font-display);font-size:1.6rem;font-weight:900;letter-spacing:.12em;background:linear-gradient(135deg,#06b6d4,#8b5cf6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.devportal-pin-card p,.devportal-pin-subtitle{font-size:.85rem;color:var(--text-muted);text-align:center}.devportal-pin-icon{font-size:2.5rem;line-height:1}.devportal-pin-btn{width:200px;padding:12px 24px;background:linear-gradient(135deg,#06b6d4,#8b5cf6);color:#050518;border:none;border-radius:12px;font-family:var(--font-display);font-size:.95rem;font-weight:800;letter-spacing:.08em;cursor:pointer;transition:transform .15s,box-shadow .2s}.devportal-pin-btn:hover{transform:translateY(-1px);box-shadow:0 4px 20px #06b6d44d}.devportal-pin-btn:active{transform:scale(.97)}.devportal-pin-close{background:none;border:none;color:var(--text-dim);font-family:var(--font);font-size:.8rem;cursor:pointer;transition:color .2s;padding:4px 12px}.devportal-pin-close:hover{color:var(--text-muted)}.devportal-close-btn{position:absolute;top:14px;right:16px;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);color:var(--text-muted);width:36px;height:36px;border-radius:10px;font-size:1.2rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s}.devportal-close-btn:hover{background:#ff444426;color:var(--red)}.devportal-pin-input{width:200px;padding:14px 20px;background:#ffffff0a;border:1px solid rgba(6,182,212,.3);border-radius:12px;color:var(--text);font-family:Courier New,Courier,monospace;font-size:2rem;font-weight:700;letter-spacing:.6em;text-align:center;outline:none;transition:border-color .2s,box-shadow .2s}.devportal-pin-input:focus{border-color:#06b6d4;box-shadow:0 0 20px #06b6d433}.devportal-pin-input::placeholder{color:#ffffff26;letter-spacing:.4em}.devportal-pin-error{animation:devShake .4s ease-in-out}.devportal-pin-error .devportal-pin-input{border-color:var(--red);box-shadow:0 0 20px #ff44444d}@keyframes devShake{0%,to{transform:translate(0)}20%{transform:translate(-12px)}40%{transform:translate(10px)}60%{transform:translate(-8px)}80%{transform:translate(6px)}}.devportal-container{width:min(95vw,900px);max-height:90vh;overflow-y:auto;display:flex;flex-direction:column;gap:0;background:#0a0a1ab3;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:1px solid rgba(6,182,212,.15);border-radius:20px;box-shadow:0 12px 60px #000000b3,0 0 80px #06b6d40f}.devportal-container::-webkit-scrollbar{width:6px}.devportal-container::-webkit-scrollbar-track{background:transparent}.devportal-container::-webkit-scrollbar-thumb{background:#06b6d44d;border-radius:3px}.devportal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;background:linear-gradient(135deg,#06b6d41a,#8b5cf614);border-bottom:1px solid rgba(6,182,212,.12);border-radius:20px 20px 0 0;position:sticky;top:0;z-index:2;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.devportal-header h1{font-family:var(--font-display);font-size:1.3rem;font-weight:900;letter-spacing:.15em;background:linear-gradient(135deg,#06b6d4,#8b5cf6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.devportal-header button{width:36px;height:36px;border-radius:10px;border:1px solid rgba(255,255,255,.1);background:#ffffff0d;color:var(--text-muted);font-size:1.2rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s}.devportal-header button:hover{background:#ff444426;color:var(--red)}.devportal-tabs{display:flex;gap:6px;padding:12px 24px;border-bottom:1px solid rgba(255,255,255,.06);overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.devportal-tabs::-webkit-scrollbar{display:none}.devportal-tab{flex-shrink:0;padding:8px 16px;border-radius:20px;border:1px solid transparent;background:#ffffff0a;color:var(--text-muted);font-family:var(--font-display);font-size:.82rem;font-weight:600;letter-spacing:.06em;cursor:pointer;transition:all .2s;white-space:nowrap}.devportal-tab:hover{background:#06b6d41a;color:var(--text)}.devportal-tab.active{background:linear-gradient(135deg,#06b6d44d,#8b5cf633);border-color:#06b6d44d;color:#06b6d4;box-shadow:0 0 16px #06b6d426}.devportal-content{padding:24px;display:flex;flex-direction:column;gap:16px;min-height:300px}.devportal-card{background:#ffffff08;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:20px;box-shadow:0 4px 20px #0000004d;transition:border-color .3s}.devportal-card:hover{border-color:#06b6d433}.devportal-card h3{font-family:var(--font-display);font-size:1rem;font-weight:700;color:#06b6d4;letter-spacing:.08em;margin-bottom:12px}.devportal-stat{display:flex;flex-direction:column;gap:2px}.devportal-stat small{font-size:.7rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em}.devportal-stat strong{font-family:var(--font-display);font-size:1.3rem;font-weight:900;color:var(--text)}.devportal-stat.gold strong{color:gold;text-shadow:0 0 12px rgba(255,215,0,.3)}.devportal-stat.cyan strong{color:#06b6d4;text-shadow:0 0 12px rgba(6,182,212,.3)}.devportal-stat.purple strong{color:#8b5cf6;text-shadow:0 0 12px rgba(139,92,246,.3)}.devportal-table{width:100%;border-collapse:collapse;font-size:.82rem}.devportal-table thead tr{background:linear-gradient(135deg,#06b6d41f,#8b5cf614)}.devportal-table th{padding:10px 12px;text-align:left;font-family:var(--font-display);font-weight:700;font-size:.72rem;color:#06b6d4;letter-spacing:.1em;text-transform:uppercase;border-bottom:1px solid rgba(6,182,212,.15)}.devportal-table td{padding:10px 12px;color:var(--text);border-bottom:1px solid rgba(255,255,255,.04)}.devportal-table tbody tr:nth-child(2n){background:#ffffff05}.devportal-table tbody tr:hover{background:#06b6d40d}.devportal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.devportal-grid .devportal-card{padding:14px}.devportal-grid .devportal-card h4{font-family:var(--font-display);font-size:.9rem;font-weight:700;color:var(--text);margin-bottom:6px}.devportal-grid .devportal-card p{font-size:.72rem;color:var(--text-muted);line-height:1.4}.devportal-badge{display:inline-block;padding:2px 10px;border-radius:12px;font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.devportal-badge.verified{background:#00ff881f;color:#0f8;border:1px solid rgba(0,255,136,.25)}.devportal-badge.pending{background:#ffbf001f;color:#ffbf00;border:1px solid rgba(255,191,0,.25)}.devportal-badge.error{background:#ff44441f;color:#f44;border:1px solid rgba(255,68,68,.25)}.devportal-hash{font-family:Courier New,Courier,monospace;font-size:.72rem;color:var(--text-muted);max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block}.devportal-header-title{display:flex;align-items:center;gap:10px}.devportal-header-title span{font-family:var(--font-display);font-size:1.3rem;font-weight:900;letter-spacing:.15em;background:linear-gradient(135deg,#06b6d4,#8b5cf6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.devportal-card-title{font-family:var(--font-display);font-size:1rem;font-weight:700;color:#06b6d4;letter-spacing:.08em;margin-bottom:14px;display:flex;align-items:center;gap:8px}.devportal-info-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:14px}.devportal-stat-label{font-size:.68rem;color:var(--text-dim);letter-spacing:.1em;text-transform:uppercase;font-family:var(--font-display);margin-bottom:4px}.devportal-stat-value{font-family:var(--font-display);font-size:1.1rem;font-weight:700;color:var(--text)}.devportal-tab-content{display:flex;flex-direction:column;gap:16px}.devportal-loading{text-align:center;padding:40px 20px;color:var(--text-dim);font-family:var(--font);font-size:.9rem}.devportal-hash-section{margin-top:14px;padding-top:14px;border-top:1px solid rgba(255,255,255,.06);display:flex;flex-direction:column;gap:10px}.devportal-hash-section .devportal-hash{max-width:300px;font-size:.78rem}.devportal-app-card{text-align:center;padding:16px 12px}.devportal-app-prefix{font-family:var(--font-display);font-size:1.4rem;font-weight:900;color:#8b5cf6;margin-bottom:4px}.devportal-app-name{font-family:var(--font-display);font-size:.82rem;font-weight:600;color:var(--text);letter-spacing:.04em;text-transform:capitalize;margin-bottom:4px}.devportal-app-domain{font-size:.65rem;color:#06b6d499;font-family:var(--font);margin-bottom:4px}.devportal-app-genesis{font-size:.6rem;margin-top:2px}.devportal-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}@media(max-width:768px){.devportal-grid{grid-template-columns:repeat(2,1fr)}.devportal-header h1{font-size:1.1rem;letter-spacing:.1em}.devportal-content{padding:16px}}@media(max-width:480px){.devportal-container{width:100vw;max-height:100vh;border-radius:0;border:none}.devportal-header{border-radius:0}.devportal-grid{grid-template-columns:1fr}.devportal-tabs{padding:10px 16px;gap:4px}.devportal-tab{padding:6px 12px;font-size:.75rem}.devportal-content{padding:12px;gap:12px}.devportal-card{padding:14px}.devportal-table{font-size:.75rem}.devportal-table th,.devportal-table td{padding:8px}.devportal-pin-card{width:95vw;padding:32px 20px}}.club-selector-overlay{position:fixed;inset:0;z-index:200;background:#000000b3;display:flex;align-items:flex-end;justify-content:center;animation:fadeIn .2s ease}.club-selector-panel{width:100%;max-width:420px;max-height:75vh;background:#0a0a1ef2;-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);border:1px solid rgba(255,255,255,.08);border-radius:24px 24px 0 0;padding:20px;overflow-y:auto;animation:slideUp .3s cubic-bezier(.34,1.56,.64,1)}.club-selector-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.club-selector-title{font-family:var(--font-display);font-size:1.2rem;font-weight:700;color:var(--text);letter-spacing:.08em}.club-selector-dtp{display:flex;align-items:baseline;gap:4px}.club-selector-body{display:flex;flex-direction:column;gap:16px}.club-category-label{font-family:var(--font-display);font-size:.7rem;font-weight:700;color:var(--text-dim);letter-spacing:.15em;margin-bottom:8px}.club-category-items{display:flex;flex-direction:column;gap:4px}.club-item{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:12px;border:1px solid transparent;background:#ffffff08;cursor:pointer;transition:all .15s ease;font-family:var(--font);color:var(--text)}.club-item:hover{background:#ffffff0f;border-color:#ffffff1a}.club-item.active{background:#00e5ff14;border-color:#00e5ff4d}.club-item.suggested{box-shadow:0 0 12px #00e5ff26}.club-item-icon{font-size:1.3rem;width:32px;text-align:center}.club-item-info{flex:1}.club-item-name{font-weight:600;font-size:.9rem}.club-item-dist{font-size:.7rem;color:var(--text-dim)}.club-item-badge{font-family:var(--font-display);font-size:.6rem;font-weight:700;padding:2px 8px;border-radius:6px;background:#00e5ff33;color:#00e5ff;letter-spacing:.1em}.club-item-check{color:#00e5ff;font-size:1.1rem;font-weight:700}.scorecard-overlay{position:fixed;inset:0;z-index:200;background:#000000bf;display:flex;align-items:center;justify-content:center;animation:fadeIn .2s ease}.scorecard-panel{width:95vw;max-width:600px;max-height:85vh;background:#0a0a1ef2;-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);border:1px solid rgba(255,255,255,.08);border-radius:20px;padding:24px;overflow-y:auto;position:relative;animation:scaleIn .3s cubic-bezier(.34,1.56,.64,1)}.scorecard-header{display:flex;align-items:center;gap:14px;margin-bottom:20px}.scorecard-course-icon{font-size:2.2rem}.scorecard-course-name{font-family:var(--font-display);font-size:1.4rem;font-weight:700;color:var(--gold)}.scorecard-course-desc{font-size:.75rem;color:var(--text-dim)}.scorecard-summary{display:flex;justify-content:space-around;margin-bottom:20px;padding:12px;background:#ffffff08;border-radius:12px}.scorecard-stat{text-align:center}.scorecard-stat-value{font-family:var(--font-display);font-size:1.8rem;font-weight:900;color:var(--text)}.scorecard-stat-label{font-size:.65rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.1em}.scorecard-grid{margin-bottom:16px;overflow-x:auto}.scorecard-row{display:flex;min-width:max-content}.scorecard-row.header .scorecard-cell{font-family:var(--font-display);font-weight:700;color:var(--text-muted);font-size:.8rem}.scorecard-row.par-row .scorecard-cell{color:var(--text-dim);font-size:.75rem}.scorecard-row.score-row .scorecard-cell{font-family:var(--font-display);font-size:1.1rem}.scorecard-row.label-row .scorecard-cell{font-family:var(--font-display)}.scorecard-cell{flex:1;min-width:36px;padding:6px 4px;text-align:center;border-bottom:1px solid rgba(255,255,255,.04)}.scorecard-cell.hole-num{min-width:40px;text-align:left;font-family:var(--font-display);font-weight:700;color:var(--text-dim);font-size:.7rem;letter-spacing:.05em}.scorecard-cell.current{background:#00e5ff14;border-radius:6px;color:#00e5ff}.scorecard-cell.empty{color:#ffffff1a}.scorecard-details{display:flex;gap:8px;overflow-x:auto;padding:8px 0}.scorecard-hole-detail{flex-shrink:0;padding:8px 12px;border-radius:10px;background:#ffffff08;border:1px solid transparent;min-width:80px;text-align:center}.scorecard-hole-detail.active{border-color:#00e5ff4d;background:#00e5ff0d}.hole-detail-num{font-family:var(--font-display);font-size:.7rem;color:var(--text-dim);letter-spacing:.1em}.hole-detail-name{font-weight:600;font-size:.8rem;color:var(--text);margin:2px 0}.hole-detail-info{font-size:.65rem;color:var(--text-muted)}.hole-info-strip{position:absolute;top:92px;left:16px;display:flex;align-items:center;gap:10px;padding:6px 14px;background:#0009;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:12px;border:1px solid rgba(255,255,255,.06);font-family:var(--font-display);pointer-events:auto}.hole-info-number{font-size:1.4rem;font-weight:900;color:var(--gold)}.hole-info-par{font-size:.7rem;color:var(--text-dim);letter-spacing:.08em}.hole-info-distance{font-size:.85rem;color:#00e5ff;font-weight:600}.hole-info-lie{font-size:.7rem;padding:2px 8px;border-radius:6px;font-weight:600;letter-spacing:.05em}.hole-info-lie.tee{background:#ffd70026;color:var(--gold)}.hole-info-lie.fairway{background:#00ff881f;color:#0f8}.hole-info-lie.rough{background:#ff980026;color:#ff9800}.hole-info-lie.bunker{background:#ffebb426;color:#ffe0a0}.hole-info-lie.green{background:#00c86426;color:#00c864}.hole-info-lie.fringe{background:#64c8641f;color:#80c880}.hole-info-stroke-count{font-size:.85rem;color:var(--text-muted)}.hole-info-club{display:flex;align-items:center;gap:4px;padding:4px 10px;border-radius:8px;background:#00e5ff14;border:1px solid rgba(0,229,255,.2);font-size:.75rem;color:#00e5ff;cursor:pointer;transition:all .15s}.hole-info-club:hover{background:#00e5ff26}.score-popup{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%) scale(0);z-index:300;text-align:center;animation:scorePopIn .6s cubic-bezier(.34,1.56,.64,1) forwards}.score-popup-label{font-family:var(--font-display);font-size:3rem;font-weight:900;text-shadow:0 0 40px currentColor}.score-popup-strokes{font-family:var(--font-display);font-size:1.2rem;color:var(--text-muted);margin-top:4px}@keyframes scorePopIn{0%{transform:translate(-50%,-50%) scale(0);opacity:0}60%{transform:translate(-50%,-50%) scale(1.15);opacity:1}to{transform:translate(-50%,-50%) scale(1);opacity:1}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes scaleIn{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}:root{--promo-void: #06060a;--promo-bg: #10101a;--promo-bg-card: #0a0a10;--promo-border: rgba(255, 255, 255, .08);--promo-border-hover: rgba(255, 255, 255, .14);--promo-accent: #06b6d4;--promo-accent-secondary: #14b8a6;--promo-accent-blue: #38bdf8;--promo-purple: #a855f7;--promo-glow: rgba(6, 182, 212, .15);--promo-glow-purple: rgba(168, 85, 247, .12);--promo-text: #e2e8f0;--promo-text-dim: rgba(255, 255, 255, .55);--promo-text-muted: rgba(255, 255, 255, .35);--promo-glass-bg: rgba(16, 16, 26, .72);--promo-glass-blur: 20px;--promo-radius: 16px;--promo-radius-sm: 10px;--promo-transition: .3s cubic-bezier(.4, 0, .2, 1)}.ecosystem-promo-section{width:100%;padding:64px 24px;background:var(--promo-void);position:relative;overflow:hidden}.ecosystem-promo-section:before{content:"";position:absolute;top:-120px;right:-80px;width:400px;height:400px;background:radial-gradient(circle,var(--promo-glow) 0%,transparent 70%);pointer-events:none;animation:promo-orb-float 12s ease-in-out infinite}.ecosystem-promo-section:after{content:"";position:absolute;bottom:-100px;left:-60px;width:350px;height:350px;background:radial-gradient(circle,var(--promo-glow-purple) 0%,transparent 70%);pointer-events:none;animation:promo-orb-float 15s ease-in-out infinite reverse}@keyframes promo-orb-float{0%,to{transform:translate(0) scale(1)}33%{transform:translate(30px,-20px) scale(1.05)}66%{transform:translate(-15px,15px) scale(.95)}}.ecosystem-promo-section__header{text-align:center;margin-bottom:40px;position:relative;z-index:1}.ecosystem-promo-section__label{display:inline-flex;align-items:center;gap:8px;font-size:11px;font-weight:600;letter-spacing:2.5px;text-transform:uppercase;color:var(--promo-accent);margin-bottom:12px}.ecosystem-promo-section__label:before{content:"";width:6px;height:6px;background:var(--promo-accent);border-radius:50%;box-shadow:0 0 8px var(--promo-accent);animation:promo-dot-pulse 2s ease-in-out infinite}@keyframes promo-dot-pulse{0%,to{opacity:1}50%{opacity:.4}}.ecosystem-promo-section__title{font-size:28px;font-weight:700;color:#fff;margin:0 0 8px;letter-spacing:-.5px}.ecosystem-promo-section__subtitle{font-size:14px;color:var(--promo-text-dim);margin:0;max-width:480px;margin-inline:auto;line-height:1.6}.ecosystem-promo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;max-width:960px;margin:0 auto;position:relative;z-index:1}.ecosystem-promo-card{position:relative;background:var(--promo-glass-bg);backdrop-filter:blur(var(--promo-glass-blur));-webkit-backdrop-filter:blur(var(--promo-glass-blur));border:1px solid var(--promo-border);border-radius:var(--promo-radius);padding:28px 24px;display:flex;flex-direction:column;gap:14px;transition:all var(--promo-transition);overflow:hidden;text-decoration:none;color:inherit;cursor:pointer}.ecosystem-promo-card:before{content:"";position:absolute;inset:0;border-radius:var(--promo-radius);background:linear-gradient(135deg,rgba(6,182,212,.06) 0%,transparent 60%);opacity:0;transition:opacity var(--promo-transition)}.ecosystem-promo-card:hover{border-color:var(--promo-border-hover);transform:translateY(-4px);box-shadow:0 12px 40px #00000080,0 0 30px var(--promo-glow)}.ecosystem-promo-card:hover:before{opacity:1}.ecosystem-promo-card__header{display:flex;align-items:center;gap:14px}.ecosystem-promo-card__icon{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#06b6d426,#14b8a614);border:1px solid rgba(6,182,212,.2);border-radius:12px;font-size:20px;flex-shrink:0}.ecosystem-promo-card__name{font-size:16px;font-weight:700;color:#fff;letter-spacing:-.2px}.ecosystem-promo-card__hook{font-size:12px;font-weight:500;color:var(--promo-accent);letter-spacing:.3px}.ecosystem-promo-card__desc{font-size:13px;line-height:1.6;color:var(--promo-text-dim);margin:0;flex:1}.ecosystem-promo-card__cta{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;color:var(--promo-accent);transition:all var(--promo-transition)}.ecosystem-promo-card__cta-arrow{display:inline-block;transition:transform var(--promo-transition)}.ecosystem-promo-card:hover .ecosystem-promo-card__cta{color:var(--promo-accent-blue)}.ecosystem-promo-card:hover .ecosystem-promo-card__cta-arrow{transform:translate(4px)}.ecosystem-promo-strip{width:100%;background:linear-gradient(90deg,var(--promo-bg-card),var(--promo-bg),var(--promo-bg-card));border-bottom:1px solid var(--promo-border);padding:10px 20px;display:flex;align-items:center;justify-content:center;gap:12px;position:relative;z-index:50;min-height:40px}.ecosystem-promo-strip__content{display:flex;align-items:center;gap:10px;font-size:13px;animation:promo-strip-fade .5s ease-out}@keyframes promo-strip-fade{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.ecosystem-promo-strip__icon{font-size:16px;flex-shrink:0}.ecosystem-promo-strip__name{font-weight:700;color:#fff}.ecosystem-promo-strip__hook{color:var(--promo-text-dim)}.ecosystem-promo-strip__link{display:inline-flex;align-items:center;gap:4px;color:var(--promo-accent);font-weight:600;font-size:12px;text-decoration:none;text-transform:uppercase;letter-spacing:.5px;transition:color var(--promo-transition)}.ecosystem-promo-strip__link:hover{color:var(--promo-accent-blue)}.ecosystem-promo-strip__dismiss{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--promo-text-muted);cursor:pointer;font-size:16px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:all var(--promo-transition)}.ecosystem-promo-strip__dismiss:hover{color:var(--promo-text);background:#ffffff0d}.ecosystem-footer{width:100%;background:#000;border-top:1px solid var(--promo-border);padding:48px 24px 28px;position:relative}.ecosystem-footer__inner{max-width:1080px;margin:0 auto}.ecosystem-footer__header{text-align:center;margin-bottom:32px}.ecosystem-footer__header-label{font-size:10px;font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--promo-accent)}.ecosystem-footer__grid{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin-bottom:32px}.ecosystem-footer__app{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 8px;border-radius:var(--promo-radius-sm);background:#ffffff05;border:1px solid transparent;text-decoration:none;transition:all var(--promo-transition)}.ecosystem-footer__app:hover{background:#ffffff0a;border-color:var(--promo-border);transform:translateY(-2px)}.ecosystem-footer__app-icon{font-size:20px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:#06b6d414;border-radius:8px}.ecosystem-footer__app-name{font-size:10px;font-weight:600;color:var(--promo-text-dim);text-align:center;letter-spacing:.3px;line-height:1.3}.ecosystem-footer__app:hover .ecosystem-footer__app-name{color:var(--promo-text)}.ecosystem-footer__branding{display:flex;align-items:center;justify-content:center;gap:20px;padding:20px 0;border-top:1px solid var(--promo-border);margin-bottom:16px;flex-wrap:wrap}.ecosystem-footer__brand-link{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:500;color:var(--promo-text-muted);text-decoration:none;transition:color var(--promo-transition)}.ecosystem-footer__brand-link:hover{color:var(--promo-accent)}.ecosystem-footer__brand-sep{color:var(--promo-text-muted);font-size:8px;opacity:.4}.ecosystem-footer__legal{display:flex;align-items:center;justify-content:center;gap:24px;flex-wrap:wrap}.ecosystem-footer__legal-link{font-size:11px;color:var(--promo-text-muted);text-decoration:none;transition:color var(--promo-transition)}.ecosystem-footer__legal-link:hover{color:var(--promo-text)}.ecosystem-footer__copyright{text-align:center;margin-top:20px;font-size:10px;color:var(--promo-text-muted);opacity:.6}@media(max-width:768px){.ecosystem-promo-section{padding:48px 16px}.ecosystem-promo-section__title{font-size:22px}.ecosystem-promo-grid{grid-template-columns:1fr;gap:16px}.ecosystem-footer__grid{grid-template-columns:repeat(3,1fr)}.ecosystem-promo-strip__hook{display:none}}@media(max-width:480px){.ecosystem-footer__grid{grid-template-columns:repeat(2,1fr)}.ecosystem-footer__branding{flex-direction:column;gap:8px}.ecosystem-footer__brand-sep{display:none}}@keyframes presale-border-glow{0%,to{border-color:#06b6d459;box-shadow:0 0 20px #06b6d414}33%{border-color:#a855f759;box-shadow:0 0 20px #a855f714}66%{border-color:#3b82f659;box-shadow:0 0 20px #3b82f614}}@keyframes presale-pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes presale-shimmer{0%{background-position:-200% center}to{background-position:200% center}}.presale-banner{position:relative;z-index:40;background:linear-gradient(135deg,#06b6d40f,#a855f70a,#06b6d40f);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid rgba(6,182,212,.25);border-radius:0;padding:10px 16px;animation:presale-border-glow 4s ease-in-out infinite;overflow:hidden;max-width:100vw;box-sizing:border-box}.presale-banner__inner{max-width:1200px;margin:0 auto;display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;overflow:hidden}.presale-banner__live{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;background:#10b9811a;border:1px solid rgba(16,185,129,.25);font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#6ee7b7;flex-shrink:0}.presale-banner__live-dot{width:6px;height:6px;border-radius:50%;background:#34d399;box-shadow:0 0 8px #34d39980;animation:presale-pulse 1.5s ease-in-out infinite}.presale-banner__token{font-size:13px;font-weight:700;color:#ffffffd9;display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:center}.presale-banner__price{font-size:14px;font-weight:900;color:#67e8f9;font-family:SF Mono,Fira Code,Cascadia Code,monospace}.presale-banner__arrow{color:#ffffff4d;font-size:12px}.presale-banner__tge{font-size:12px;color:#ffffff80}.presale-banner__multiplier{display:inline-flex;align-items:center;padding:2px 8px;border-radius:6px;background:linear-gradient(135deg,#06b6d41f,#a855f714);border:1px solid rgba(6,182,212,.2);font-size:11px;font-weight:900;color:#67e8f9;letter-spacing:.05em}.presale-banner__cta{display:inline-flex;align-items:center;gap:6px;padding:7px 20px;border-radius:999px;background:linear-gradient(135deg,#06b6d4,#8b5cf6);background-size:200% 200%;animation:presale-shimmer 3s ease-in-out infinite;color:#fff;font-size:12px;font-weight:700;text-decoration:none;border:none;cursor:pointer;transition:all .3s;white-space:nowrap;flex-shrink:0}.presale-banner__cta:hover{transform:translateY(-1px);box-shadow:0 4px 20px #06b6d44d}.presale-banner__dismiss{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;color:#fff3;font-size:14px;cursor:pointer;padding:4px;transition:color .2s;line-height:1}.presale-banner__dismiss:hover{color:#ffffff80}.ecosystem-footer__presale{display:flex;align-items:center;justify-content:center;gap:12px;padding:14px 24px;margin:20px auto 0;max-width:600px;background:linear-gradient(135deg,#06b6d40f,#a855f70a);border:1px solid rgba(6,182,212,.15);border-radius:14px;transition:all .3s;text-decoration:none;flex-wrap:wrap}.ecosystem-footer__presale:hover{border-color:#06b6d44d;box-shadow:0 0 30px #06b6d41a;transform:translateY(-2px)}.ecosystem-footer__presale-icon{font-size:18px}.ecosystem-footer__presale-text{font-size:13px;font-weight:600;color:#ffffffb3}.ecosystem-footer__presale-price{font-size:13px;font-weight:900;color:#67e8f9;font-family:SF Mono,Fira Code,monospace}.ecosystem-footer__presale-cta{padding:5px 16px;border-radius:999px;background:linear-gradient(135deg,#06b6d4,#8b5cf6);color:#fff;font-size:11px;font-weight:700;white-space:nowrap}@media(max-width:768px){.presale-banner{padding:8px 12px;z-index:30}.presale-banner__inner{gap:6px;padding:0 24px 0 0}.presale-banner__token{font-size:11px;gap:4px}.presale-banner__price{font-size:12px}.presale-banner__arrow,.presale-banner__tge,.presale-banner__multiplier{display:none}.presale-banner__cta{padding:5px 12px;font-size:10px}.presale-banner__dismiss{right:6px;font-size:12px}.ecosystem-footer__presale{gap:8px;padding:12px 16px}.ecosystem-footer__presale-text{font-size:11px}}@media(max-width:400px){.presale-banner{padding:6px 8px}.presale-banner__inner{gap:4px;padding:0 20px 0 0}.presale-banner__live{padding:2px 6px;font-size:8px}.presale-banner__token{font-size:10px}.presale-banner__cta{padding:4px 10px;font-size:9px}}@keyframes eco-hub-pulse{0%,to{box-shadow:0 0 #06b6d433}50%{box-shadow:0 0 16px 4px #06b6d41f}}@keyframes eco-hub-gradient-spin{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes eco-hub-slide-in{0%{transform:translate(100%);opacity:.8}to{transform:translate(0);opacity:1}}@keyframes eco-hub-fade-in{0%{opacity:0}to{opacity:1}}@keyframes eco-hub-glow{0%,to{opacity:.4}50%{opacity:.8}}@keyframes eco-hub-countdown-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.eco-hub-trigger{position:fixed;top:14px;right:16px;z-index:9998;width:38px;height:38px;border-radius:50%;border:2px solid transparent;background:linear-gradient(135deg,#080a12e6,#080a12e6) padding-box,linear-gradient(135deg,#06b6d4,#8b5cf6,#06b6d4) border-box;background-size:200% 200%;animation:eco-hub-gradient-spin 4s ease infinite,eco-hub-pulse 3s ease-in-out infinite;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:15px;color:#ffffffd9;transition:transform .25s cubic-bezier(.34,1.56,.64,1);box-shadow:0 4px 20px #0006,0 0 0 1px #06b6d414;padding:0;outline:none;font-family:inherit}.eco-hub-trigger:hover{transform:scale(1.12)}.eco-hub-trigger:active{transform:scale(.95)}.eco-hub-trigger--active{animation:eco-hub-gradient-spin 2s ease infinite;box-shadow:0 4px 24px #06b6d433,0 0 0 1px #06b6d426}.eco-hub-trigger__initials{font-size:11px;font-weight:800;letter-spacing:.02em;color:#67e8f9}.eco-hub-trigger__avatar{width:30px;height:30px;border-radius:50%;object-fit:cover}.eco-hub-backdrop{position:fixed;inset:0;z-index:9998;background:#00000080;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:eco-hub-fade-in .25s ease}.eco-hub-panel{position:fixed;top:0;right:0;z-index:9999;width:360px;max-width:100vw;height:100vh;height:100dvh;background:linear-gradient(180deg,#080a12fa,#04060cfc);border-left:1px solid rgba(6,182,212,.1);backdrop-filter:blur(60px);-webkit-backdrop-filter:blur(60px);animation:eco-hub-slide-in .35s cubic-bezier(.16,1,.3,1);overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.eco-hub-panel::-webkit-scrollbar{width:3px}.eco-hub-panel::-webkit-scrollbar-thumb{background:#06b6d426;border-radius:3px}.eco-hub-panel::-webkit-scrollbar-track{background:transparent}.eco-hub-drag{display:none;justify-content:center;padding:10px 0 4px}.eco-hub-drag__bar{width:36px;height:4px;border-radius:2px;background:#ffffff1f}.eco-hub-header{padding:20px 20px 16px;border-bottom:1px solid rgba(255,255,255,.04);display:flex;align-items:center;gap:14px}.eco-hub-header__avatar{width:48px;height:48px;border-radius:50%;border:2px solid transparent;background:linear-gradient(135deg,#080a12e6,#080a12e6) padding-box,linear-gradient(135deg,#06b6d4,#8b5cf6) border-box;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0;position:relative;overflow:hidden}.eco-hub-header__avatar img{width:42px;height:42px;border-radius:50%;object-fit:cover}.eco-hub-header__avatar:after{content:"";position:absolute;inset:-1px;border-radius:50%;background:linear-gradient(135deg,rgba(6,182,212,.08),transparent);pointer-events:none}.eco-hub-header__info{flex:1;min-width:0}.eco-hub-header__name{font-size:15px;font-weight:700;color:#ffffffeb;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif}.eco-hub-header__tlid{font-size:11px;color:#06b6d480;font-family:JetBrains Mono,SF Mono,monospace;letter-spacing:.02em;margin-top:2px}.eco-hub-header__close{width:30px;height:30px;border-radius:10px;border:1px solid rgba(255,255,255,.04);background:#ffffff05;color:#ffffff40;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:12px;transition:all .2s;flex-shrink:0;padding:0;outline:none;font-family:inherit}.eco-hub-header__close:hover{border-color:#ffffff14;color:#ffffff80;background:#ffffff0a}.eco-hub-bonus{margin:16px;padding:16px;border-radius:16px;border:1px solid rgba(6,182,212,.12);background:linear-gradient(135deg,var(--bonus-glow, rgba(6,182,212,.06)),rgba(0,0,0,.1));position:relative;overflow:hidden}.eco-hub-bonus:before{content:"";position:absolute;top:-40px;right:-40px;width:100px;height:100px;border-radius:50%;background:var(--bonus-accent, #06b6d4);opacity:.06;filter:blur(30px);animation:eco-hub-glow 3s ease-in-out infinite}.eco-hub-bonus__label{display:flex;align-items:center;gap:6px;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.14em;color:var(--bonus-accent, #06b6d4);margin-bottom:10px}.eco-hub-bonus__label-dot{width:6px;height:6px;border-radius:50%;background:var(--bonus-accent, #06b6d4);animation:eco-hub-countdown-pulse 2s ease-in-out infinite}.eco-hub-bonus__headline{font-size:16px;font-weight:800;color:#ffffffeb;margin-bottom:4px;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif}.eco-hub-bonus__reward{font-size:12px;color:#ffffff73;margin-bottom:12px;line-height:1.4}.eco-hub-bonus__stats{display:flex;align-items:center;gap:8px;margin-bottom:14px;flex-wrap:wrap}.eco-hub-bonus__sig{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:8px;background:#06b6d414;border:1px solid rgba(6,182,212,.15);font-size:12px;font-weight:900;color:#67e8f9;font-family:JetBrains Mono,monospace}.eco-hub-bonus__multiplier{display:inline-flex;padding:3px 8px;border-radius:8px;background:linear-gradient(135deg,#a855f71a,#06b6d414);border:1px solid rgba(168,85,247,.2);font-size:11px;font-weight:900;color:#c4b5fd}.eco-hub-bonus__perk{display:inline-flex;padding:3px 8px;border-radius:8px;background:#10b9810f;border:1px solid rgba(16,185,129,.15);font-size:10px;font-weight:700;color:#6ee7b7}.eco-hub-bonus__timer{font-size:10px;color:#ffffff40;font-family:JetBrains Mono,monospace}.eco-hub-bonus__cta{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:10px 0;border-radius:10px;background:linear-gradient(135deg,var(--bonus-accent, #06b6d4),#8b5cf6);color:#fff;font-size:13px;font-weight:700;text-decoration:none;border:none;cursor:pointer;transition:all .3s;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;outline:none}.eco-hub-bonus__cta:hover{transform:translateY(-1px);box-shadow:0 6px 24px #06b6d433}.eco-hub-section{padding:14px 20px;border-bottom:1px solid rgba(255,255,255,.02)}.eco-hub-section__label{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:#ffffff2e;margin-bottom:8px;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif}.eco-hub-row{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;cursor:pointer;text-decoration:none;color:#ffffffa6;transition:all .2s cubic-bezier(.4,0,.2,1);margin-bottom:1px;min-height:44px}.eco-hub-row:hover{background:#06b6d40a;color:#ffffffe6;transform:translate(3px)}.eco-hub-row:active{transform:translate(1px);background:#06b6d40f}.eco-hub-row__icon{width:32px;height:32px;border-radius:10px;background:#ffffff05;border:1px solid rgba(255,255,255,.04);display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0;transition:all .2s}.eco-hub-row:hover .eco-hub-row__icon{border-color:#06b6d41f;background:#06b6d40a}.eco-hub-row__content{flex:1;min-width:0}.eco-hub-row__title{font-size:13px;font-weight:600;color:inherit;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif}.eco-hub-row__subtitle{font-size:10px;color:#ffffff40;margin-top:1px}.eco-hub-row__badge{padding:2px 8px;border-radius:6px;font-size:10px;font-weight:800;font-family:JetBrains Mono,monospace}.eco-hub-row__badge--cyan{background:#06b6d414;border:1px solid rgba(6,182,212,.15);color:#67e8f9}.eco-hub-row__badge--green{background:#10b98114;border:1px solid rgba(16,185,129,.15);color:#6ee7b7}.eco-hub-connect{padding:32px 24px;display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center;flex:1;justify-content:center}.eco-hub-connect__shield{font-size:44px;opacity:.5;animation:eco-hub-glow 3s ease-in-out infinite}.eco-hub-connect__title{font-size:17px;font-weight:800;color:#ffffffe0;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif}.eco-hub-connect__desc{font-size:12px;color:#ffffff59;line-height:1.55;max-width:260px}.eco-hub-connect__btn{display:inline-flex;align-items:center;gap:8px;padding:12px 32px;border-radius:999px;background:linear-gradient(135deg,#06b6d4,#8b5cf6);color:#fff;font-size:14px;font-weight:700;text-decoration:none;border:none;cursor:pointer;transition:all .3s;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;outline:none;min-height:44px}.eco-hub-connect__btn:hover{transform:translateY(-2px);box-shadow:0 8px 28px #06b6d440}.eco-hub-apps-grid{display:flex;flex-wrap:wrap;gap:6px;padding:0 12px}.eco-hub-app-badge{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border-radius:8px;background:#ffffff05;border:1px solid rgba(255,255,255,.04);text-decoration:none;color:#ffffff80;font-size:11px;font-weight:600;transition:all .2s;min-height:32px}.eco-hub-app-badge:hover{background:#06b6d40a;border-color:#06b6d41f;color:#ffffffbf}.eco-hub-app-badge__icon{font-size:12px}.eco-hub-footer{margin-top:auto;padding:14px 20px;border-top:1px solid rgba(255,255,255,.02);font-size:10px;color:#ffffff1f;text-align:center;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif}.eco-hub-footer a{color:#06b6d459;text-decoration:none;transition:color .2s}.eco-hub-footer a:hover{color:#06b6d499}@media(max-width:640px){.eco-hub-panel{width:100vw;max-width:100vw;border-left:none;padding-bottom:env(safe-area-inset-bottom,0)}.eco-hub-drag{display:flex}.eco-hub-header{padding-top:8px}.eco-hub-trigger{top:10px;right:12px}.eco-hub-row{padding:12px 14px;min-height:48px}.eco-hub-bonus__cta{padding:12px 0;min-height:48px}.eco-hub-connect__btn{padding:14px 36px;min-height:48px;font-size:15px}}@supports (padding-top: env(safe-area-inset-top)){.eco-hub-panel{padding-top:env(safe-area-inset-top,0)}@media(max-width:640px){.eco-hub-trigger{top:calc(10px + env(safe-area-inset-top,0))}}}
