*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0e0e0e;--surface:#171717;--surface2:#1f1f1f;--border:#2a2a2a;--text:#f0f0f0;--text2:#888;--accent:#ff6eb7;--accent2:#e84fa0;--orange:#ff6b35;--danger:#f55;--radius:16px;--radius-sm:10px;--shadow:0 4px 24px #0006;--shadow-lg:0 8px 40px #0009}[data-theme=light]{--bg:#f5f5f7;--surface:#fff;--surface2:#ebebeb;--border:#d8d8d8;--text:#111;--text2:#666;--shadow:0 4px 24px #0000001a;--shadow-lg:0 8px 40px #00000026}[data-theme=light] svg{filter:invert()drop-shadow(0 0 4px #00000038)!important}[data-theme=light] .welcome-logo{filter:invert()drop-shadow(0 0 28px #0000002e)!important}[data-theme=light] .welcome-logo-glow{background:radial-gradient(55% 45% at 44% 62%,#0000001a 0%,#0000000a 50%,#0000 75%)!important}[data-theme=light] .bottom-nav{background:#f5f5f7eb}[data-theme=light] .input{background:#fff}[data-theme=light] .card{box-shadow:0 2px 12px #00000014}html,body,#root{background:var(--bg);height:100%;color:var(--text);-webkit-font-smoothing:antialiased;font-family:Inter,sans-serif;font-size:15px;line-height:1.5}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.font-display{font-family:Dela Gothic One,sans-serif}.font-serif{font-family:Space Grotesk,sans-serif}.app-shell{flex-direction:column;max-width:480px;min-height:100vh;margin:0 auto;display:flex;position:relative}.screen{flex-direction:column;flex:1;padding-bottom:80px;display:flex;overflow-y:auto}.btn{border-radius:var(--radius);cursor:pointer;border:none;justify-content:center;align-items:center;gap:8px;width:100%;padding:14px 20px;font-family:Inter,sans-serif;font-size:15px;font-weight:600;transition:all .18s;display:flex}.btn-primary{background:var(--accent);color:#0e0e0e}.btn-primary:hover{background:var(--accent2)}.btn-secondary{background:var(--surface2);color:var(--text);border:1px solid var(--border)}.btn-ghost{color:var(--text2);background:0 0}.btn-danger{color:var(--danger);background:#ff555526;border:1px solid #ff55554d}.btn-sm{border-radius:var(--radius-sm);padding:8px 14px;font-size:13px}.btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.input-group{flex-direction:column;gap:6px;display:flex}.input-label{color:var(--text2);font-size:13px;font-weight:500}.input{background:var(--surface2);border:1.5px solid var(--border);border-radius:var(--radius-sm);color:var(--text);outline:none;width:100%;padding:12px 14px;font-family:Inter,sans-serif;font-size:15px;transition:border-color .15s}.input:focus{border-color:var(--accent)}.input::placeholder{color:var(--text2)}textarea.input{resize:none;min-height:130px;max-height:130px;line-height:1.6;overflow-y:auto}select.input{appearance:none;cursor:pointer}.card{background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow);overflow:hidden}.bottom-nav{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-top:1px solid var(--border);z-index:100;background:#0e0e0eeb;width:100%;max-width:480px;padding:10px 0 16px;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.nav-item{cursor:pointer;color:var(--text2);background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:4px;padding:4px;font-family:Inter,sans-serif;font-size:11px;transition:color .15s;display:flex;position:relative}.nav-item.active{color:var(--accent)}.nav-badge{background:var(--accent);border-radius:50%;width:7px;height:7px;animation:2s infinite pulse;position:absolute;top:0;right:calc(50% - 18px)}.chip{border-radius:20px;align-items:center;padding:4px 10px;font-size:12px;font-weight:500;display:inline-flex}.chip-green{color:var(--accent);background:#ff6eb726;border:1px solid #ff6eb74d}.chip-gray{background:var(--surface2);color:var(--text2);border:1px solid var(--border)}.chip-red{color:var(--danger);background:#ff55551f;border:1px solid #ff555540}.chip-event{background:var(--surface2);color:#4e93ff;border:1px solid #ffffff2e;box-shadow:0 0 6px #ffffff0f}.chip-course{background:var(--surface2);color:#20bf6b;border:1px solid #ffffff2e;box-shadow:0 0 6px #ffffff0f}.chip-meetup{background:var(--surface2);color:#ffa502;border:1px solid #ffffff2e;box-shadow:0 0 6px #ffffff0f}.chip-game{background:var(--surface2);color:#a25fff;border:1px solid #ffffff2e;box-shadow:0 0 6px #ffffff0f}.page-header{align-items:center;gap:12px;padding:20px 20px 0;display:flex}.back-btn{background:var(--surface2);border:1px solid var(--border);cursor:pointer;width:38px;height:38px;color:var(--text);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:18px;display:flex}.avatar{object-fit:cover;background:var(--surface2);border-radius:50%;flex-shrink:0}.avatar-placeholder{background:var(--surface2);color:var(--text2);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:20px;display:flex}.divider{background:var(--border);height:1px;margin:4px 0}.section-title{text-transform:uppercase;letter-spacing:.08em;color:var(--text2);margin:20px 0 10px;padding:0 20px;font-size:11px;font-weight:600}.countdown{color:#20bf6b;background:#20bf6b1f;border:1px solid #20bf6b40;border-radius:8px;align-items:center;gap:5px;padding:3px 8px;font-size:12px;font-weight:600;display:inline-flex}.countdown-dot{background:#20bf6b;border-radius:50%;width:6px;height:6px;animation:1.5s infinite pulse}.countdown-live{color:var(--accent);background:#ff6eb71f;border:1px solid #ff6eb740}.live-dot{background:var(--accent);border-radius:50%;flex-shrink:0;width:7px;height:7px;animation:1.2s infinite pulse;display:inline-block}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.toast-container{z-index:9999;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;bottom:90px;left:50%;transform:translate(-50%)}.toast{box-shadow:var(--shadow-lg);white-space:nowrap;border-radius:12px;padding:10px 18px;font-size:14px;font-weight:500;animation:.25s slideUp}.toast-success{color:#0e0e0e;background:#c8f066f7}.toast-error{color:#fff;background:#ff5555f7}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.loader{justify-content:center;align-items:center;padding:60px;display:flex}.spinner{border:2.5px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:28px;height:28px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.color-picker{flex-wrap:wrap;gap:10px;display:flex}.color-swatch{cursor:pointer;border:2.5px solid #0000;border-radius:50%;width:32px;height:32px;transition:border-color .15s,transform .15s}.color-swatch.selected{border-color:var(--accent);transform:scale(1.15)}.calendar{background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);padding:16px}.cal-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.cal-grid{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.cal-cell{aspect-ratio:1;cursor:pointer;color:var(--text);background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;font-size:13px;transition:background .12s;display:flex}.cal-cell:hover:not(.cal-past):not(.cal-head){background:var(--surface2)}.cal-cell.cal-selected{color:#0e0e0e;font-weight:700;background:var(--accent)!important}.cal-cell.cal-past{color:var(--text2);opacity:.35;cursor:default}.cal-cell.cal-head{color:var(--text2);cursor:default;font-size:11px;font-weight:600}.toggle-group{background:var(--surface2);border-radius:var(--radius-sm);gap:4px;padding:4px;display:flex}.toggle-item{color:var(--text2);cursor:pointer;background:0 0;border:none;border-radius:8px;flex:1;padding:8px;font-family:Inter,sans-serif;font-size:14px;font-weight:500;transition:all .15s}.toggle-item.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.steps{gap:6px;margin:8px 0 16px;padding:0 20px;display:flex}.step-dot{background:var(--border);border-radius:3px;flex:1;height:3px;transition:all .2s}.step-dot.active{background:var(--accent)}.step-dot.done{background:#c8f06666}.text-muted{color:var(--text2)}.text-accent{color:var(--accent)}.text-danger{color:var(--danger)}.gap-8{flex-direction:column;gap:8px;display:flex}.gap-12{flex-direction:column;gap:12px;display:flex}.gap-16{flex-direction:column;gap:16px;display:flex}.p-20{padding:20px}.flex-row{flex-direction:row;align-items:center;display:flex}.flex-between{justify-content:space-between;align-items:center;display:flex}.center{justify-content:center;align-items:center;display:flex}@keyframes fadeInUp{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes growBar{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes calendarOpen{0%{opacity:0;max-height:0;transform:scaleY(.9)translateY(-6px)}25%{opacity:.6}60%{transform:scaleY(1)translateY(0)}to{opacity:1;max-height:400px;transform:scaleY(1)translateY(0)}}@keyframes calendarClose{0%{opacity:1;max-height:400px;transform:scaleY(1)translateY(0)}30%{opacity:.4;transform:scaleY(.97)translateY(-2px)}70%{opacity:0}to{opacity:0;max-height:0;transform:scaleY(.92)translateY(-8px)}}@keyframes buttonsHeight{0%{max-height:0}to{max-height:80px}}@keyframes buttonsAppear{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInButtons{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.93)}to{opacity:1;transform:scale(1)}}@keyframes catMenuIn{0%{opacity:0;transform:scaleY(.65)translateY(-10px)}to{opacity:1;transform:scaleY(1)translateY(0)}}@keyframes catMenuOut{0%{opacity:1;transform:scaleY(1)translateY(0)}to{opacity:0;transform:scaleY(.65)translateY(-10px)}}@keyframes catRowIn{0%{opacity:0;max-height:0}35%{opacity:1}to{opacity:1;max-height:60px}}@keyframes catRowOut{0%{opacity:1;max-height:60px}50%{opacity:0}to{opacity:0;max-height:0}}@keyframes catBtnIn{0%{opacity:0;transform:translate(-10px)scale(.96)}50%{opacity:1;transform:translate(3px)scale(1.02)}72%{transform:translate(-1px)scale(.99)}to{opacity:1;transform:translate(0)scale(1)}}@keyframes catBtnOut{0%{opacity:1;transform:translate(0)scale(1)}to{opacity:0;transform:translate(-8px)scale(.95)}}@keyframes navIconPop{0%{transform:scale(1)translateY(0)}35%{transform:scale(1.32)translateY(-4px)}60%{transform:scale(.88)translateY(0)}80%{transform:scale(1.08)translateY(-1px)}to{transform:scale(1)translateY(0)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes ripple{0%{opacity:.5;transform:scale(0)}to{opacity:0;transform:scale(2.5)}}@keyframes clubPulse{0%,to{border-color:#ff6eb7b3;box-shadow:0 0 #ff6eb78c,0 8px 28px #ff6eb72e}50%{border-color:#ff6eb7;box-shadow:0 0 0 8px #ff6eb700,0 8px 36px #ff6eb761}}@keyframes shimmerSlide{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes floatEmoji{0%,to{transform:translateY(0)rotate(0)}30%{transform:translateY(-3px)rotate(-3deg)}70%{transform:translateY(-1px)rotate(2deg)}}@keyframes listItemIn{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes logoHeroIntro{0%{opacity:0;filter:blur(22px);transform:translateY(190px)scale(1.45)rotate(-4deg)}18%{opacity:1;filter:blur(3px)}32%{opacity:1;filter:blur();transform:translateY(190px)scale(1.45)rotate(0)}48%{opacity:1;transform:translateY(190px)scale(1.45)}78%{transform:translateY(-8px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)rotate(0)}}@keyframes logoFloat{0%,to{transform:translateY(0)scale(1)rotate(0)}50%{transform:translateY(-11px)scale(1.03)rotate(-.6deg)}}@keyframes logoGlowPulse{0%,to{opacity:.5;transform:scale(.96)}50%{opacity:1;transform:scale(1.14)}}.welcome-logo-hero{animation:2.4s cubic-bezier(.16,1,.3,1) both logoHeroIntro}.welcome-logo{filter:drop-shadow(0 0 28px #ffffff1f);animation:4.5s ease-in-out 2.6s infinite logoFloat}.welcome-logo-glow{animation:4.5s ease-in-out infinite logoGlowPulse}@keyframes welcomeItemIn{0%{opacity:0;filter:blur(4px);transform:translateY(26px)scale(.97)}to{opacity:1;filter:blur();transform:translateY(0)scale(1)}}.welcome-item{animation:.9s cubic-bezier(.16,1,.3,1) backwards welcomeItemIn}@keyframes welcomeSlideL{0%{opacity:0;transform:translate(-110px)translateY(26px)rotate(-9deg)scale(.8)}70%{opacity:1;transform:translate(7px)translateY(0)rotate(2deg)scale(1.04)}to{opacity:1;transform:translate(0)rotate(0)scale(1)}}@keyframes welcomeSlideR{0%{opacity:0;transform:translate(110px)translateY(26px)rotate(9deg)scale(.8)}70%{opacity:1;transform:translate(-7px)translateY(0)rotate(-2deg)scale(1.04)}to{opacity:1;transform:translate(0)rotate(0)scale(1)}}.welcome-slide-l{animation:.95s cubic-bezier(.34,1.4,.5,1) backwards welcomeSlideL}.welcome-slide-r{animation:.95s cubic-bezier(.34,1.4,.5,1) backwards welcomeSlideR}@keyframes successPop{0%{opacity:0;transform:scale(0)}60%{opacity:1;transform:scale(1.15)}to{transform:scale(1)}}.screen,.page-enter{animation:.28s cubic-bezier(.22,1,.36,1) both fadeInUp}.list-item-in{animation:.34s cubic-bezier(.22,1,.36,1) both listItemIn}.success-pop{animation:.5s cubic-bezier(.34,1.56,.64,1) both successPop}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.btn{position:relative;overflow:hidden}.btn:after{content:"";opacity:0;background:#ffffff1f;transition:opacity .15s;position:absolute;inset:0}.btn:active:after{opacity:1}.btn:active{transform:scale(.96)}.card{transition:transform .18s,box-shadow .18s}.card:active{transform:scale(.985)}.logo-float{animation:3.5s ease-in-out infinite float}.emoji-avatar-grid{grid-template-columns:repeat(6,1fr);gap:10px;display:grid}.emoji-avatar-item{aspect-ratio:1;background:var(--surface2);cursor:pointer;border:2px solid #0000;border-radius:14px;justify-content:center;align-items:center;font-size:28px;transition:all .15s;display:flex}.emoji-avatar-item:active{transform:scale(.9)}.emoji-avatar-item.selected{border-color:var(--accent);background:#ff6eb726;transform:scale(1.1)}.city-grid{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.city-item{border-radius:var(--radius-sm);background:var(--surface2);border:1.5px solid var(--border);color:var(--text);cursor:pointer;text-align:left;padding:12px 14px;font-family:Inter,sans-serif;font-size:14px;font-weight:500;transition:all .15s;animation:.2s both fadeIn}.city-item:active{transform:scale(.96)}.city-item.selected{border-color:var(--accent);color:var(--accent);background:#ff6eb71f}.onboarding-dots{justify-content:center;gap:6px;margin-bottom:24px;display:flex}.onboarding-dot{background:var(--border);border-radius:50%;width:8px;height:8px;transition:all .25s}.onboarding-dot.active{background:var(--accent);border-radius:4px;width:22px}.theme-toggle{background:var(--surface2);border-radius:12px;gap:4px;padding:4px;display:flex}.theme-btn{cursor:pointer;color:var(--text);background:0 0;border:none;border-radius:9px;flex:1;padding:10px;font-size:20px;transition:all .15s}.theme-btn.active{background:var(--surface);box-shadow:var(--shadow)}.page-transition-wrap{width:100%;min-height:100%}@keyframes exitForward{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(-24px)}}@keyframes exitBack{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(24px)}}@keyframes enterForward{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}@keyframes enterBack{0%{opacity:0;transform:translate(-24px)}to{opacity:1;transform:translate(0)}}.page-exit.page-exit-forward{animation:.16s forwards exitForward}.page-exit.page-exit-back{animation:.16s forwards exitBack}.page-enter.page-enter-forward{animation:.22s forwards enterForward}.page-enter.page-enter-back{animation:.22s forwards enterBack}.check-circle{filter:drop-shadow(0 0 24px #20bf6b59)}.check-circle-bg{stroke:#20bf6b;stroke-width:3px;stroke-dasharray:151;stroke-dashoffset:151px;animation:.5s cubic-bezier(.65,0,.45,1) forwards checkCircleDraw}.check-mark{stroke:#20bf6b;stroke-width:4px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:48;stroke-dashoffset:48px;animation:.35s cubic-bezier(.65,0,.45,1) .45s forwards checkMarkDraw}@keyframes checkCircleDraw{to{stroke-dashoffset:0}}@keyframes checkMarkDraw{to{stroke-dashoffset:0}}.bought-badge{color:#fff;letter-spacing:.02em;transform-origin:100%;background:linear-gradient(135deg,#20bf6b,#12a45a);border-radius:10px 0 0 10px;align-items:center;gap:6px;padding:7px 16px 7px 14px;font-size:13px;font-weight:800;animation:.5s cubic-bezier(.34,1.56,.64,1) both boughtBadgeIn;display:flex;position:absolute;top:18px;right:-2px;transform:rotate(-6deg);box-shadow:0 6px 18px #20bf6b73}.bought-badge-check{background:#ffffff40;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;font-size:12px;font-weight:900;display:inline-flex}@keyframes boughtBadgeIn{0%{opacity:0;transform:rotate(-6deg)translate(40px)scale(.8)}60%{opacity:1;transform:rotate(-9deg)translate(-4px)scale(1.05)}to{opacity:1;transform:rotate(-6deg)translate(0)scale(1)}}@keyframes drawArrow{0%{stroke-dasharray:1;stroke-dashoffset:1px}to{stroke-dasharray:1;stroke-dashoffset:0}}@keyframes gearMenuIn{0%{opacity:0;transform:scaleY(.85)translateY(-10px)}to{opacity:1;transform:scaleY(1)translateY(0)}}@keyframes gearItemIn{0%{opacity:0;transform:translate(10px)}to{opacity:1;transform:translate(0)}}@keyframes ekvoGlow{0%{filter:blur(14px)brightness(8)drop-shadow(0 0 24px #fff);opacity:.2}to{filter:blur()brightness()drop-shadow(0 0 #fff);opacity:1}}@keyframes drawWave{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}.wave-path{stroke-dasharray:1;stroke-dashoffset:1px;animation:3.5s cubic-bezier(.16,1,.3,1) .5s forwards drawWave}.wave-path-static{stroke-dasharray:1;stroke-dashoffset:0}@keyframes eyeOpen{0%{opacity:0;transform:scaleY(.3)}to{opacity:1;transform:scaleY(1)}}@keyframes eyeClose{0%{opacity:0}to{opacity:1}}@keyframes slashIn{0%{opacity:0;stroke-dasharray:23;stroke-dashoffset:23px}to{opacity:1;stroke-dasharray:23;stroke-dashoffset:0}}@keyframes rayFade{0%{opacity:1}to{opacity:0}}
