:root{--font-sans: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-display: "Inter", sans-serif;--bg: #0c0c0f;--surface: #111115;--surface-2: #17171d;--surface-3: #1f1f27;--border: #2a2a35;--border-subtle: #1c1c26;--text: #f0f0f4;--text-2: #9494a8;--text-3: #5a5a6e;--accent: #4ade80;--accent-dim: #22c55e;--accent-deep: #15803d;--accent-glow: rgba(74, 222, 128, .1);--accent-border: rgba(74, 222, 128, .2);--heat-0: #16161f;--heat-1: #0d3d22;--heat-2: #145c30;--heat-3: #19803f;--heat-4: #4ade80;--danger: #f87171;--danger-bg: rgba(248, 113, 113, .08);--radius-xs: 6px;--radius-sm: 10px;--radius-md: 14px;--radius-lg: 20px;--radius-xl: 28px;--shadow-sm: 0 1px 3px rgba(0,0,0,.5), 0 0 0 1px rgba(255,255,255,.03);--shadow-md: 0 4px 16px rgba(0,0,0,.6), 0 0 0 1px rgba(255,255,255,.04);--shadow-lg: 0 12px 40px rgba(0,0,0,.7), 0 0 0 1px rgba(255,255,255,.05);--shadow-glow: 0 0 24px rgba(74,222,128,.15);--ease: cubic-bezier(.16, 1, .3, 1);--ease-out: cubic-bezier(0, 0, .2, 1);--dur-fast: .14s;--dur-mid: .24s;--dur-slow: .38s}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:var(--font-sans);font-size:14px;line-height:1.6;font-weight:400;color:var(--text);background-color:var(--bg);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow:hidden}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}input,textarea{font-family:inherit;font-size:inherit;color:inherit}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:99px}::-webkit-scrollbar-thumb:hover{background:var(--border)}*{scrollbar-width:thin;scrollbar-color:var(--border) transparent}body:has(.landing){overflow-y:auto!important;overflow-x:hidden}.landing{position:relative;min-height:200vh;background:var(--bg);overflow-x:hidden;color:var(--text)}.bg-layer{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}.orb{position:absolute;border-radius:50%;filter:blur(110px);will-change:transform}.orb-1{width:640px;height:640px;top:-180px;left:-120px;background:radial-gradient(circle,rgba(74,222,128,.13) 0%,transparent 70%)}.orb-2{width:720px;height:720px;top:28%;right:-220px;background:radial-gradient(circle,rgba(34,197,94,.09) 0%,transparent 70%)}.orb-3{width:520px;height:520px;bottom:-120px;left:28%;background:radial-gradient(circle,rgba(21,128,61,.11) 0%,transparent 70%)}.grid-overlay{position:absolute;inset:0;background-image:radial-gradient(circle,rgba(74,222,128,.11) 1.5px,transparent 1.5px);background-size:28px 28px;mask-image:radial-gradient(ellipse 100% 100% at 50% 40%,black 30%,transparent 100%);-webkit-mask-image:radial-gradient(ellipse 100% 100% at 50% 40%,black 30%,transparent 100%)}.noise-overlay{position:absolute;inset:0;opacity:.028;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-repeat:repeat;background-size:256px 256px}.landing-nav{position:fixed;top:0;left:0;right:0;z-index:20;height:58px;display:flex;align-items:center;justify-content:space-between;padding:0 32px;background:#0c0c0fb3;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid rgba(255,255,255,.04)}.landing-nav-logo{display:flex;align-items:center;gap:9px}.landing-nav-mark{width:26px;height:26px;border-radius:7px;background:var(--accent-glow);border:1px solid var(--accent-border);display:flex;align-items:center;justify-content:center;color:var(--accent);box-shadow:var(--shadow-glow)}.landing-nav-name{font-family:var(--font-display);font-size:15px;font-weight:700;color:var(--text);letter-spacing:-.02em}.landing-nav-right{display:flex;align-items:center;gap:10px}.landing-nav-cta{padding:7px 16px;border-radius:var(--radius-sm);background:var(--accent);color:#0c0c0f;font-size:13px;font-weight:700;letter-spacing:-.01em;border:none;cursor:pointer;transition:all var(--dur-fast) var(--ease);box-shadow:0 0 0 1px #4ade8040,0 2px 8px #4ade8033;position:relative;overflow:hidden}.landing-nav-cta:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.16) 0%,transparent 55%);pointer-events:none}.landing-nav-cta:hover{background:var(--accent-dim);transform:translateY(-1px);box-shadow:0 0 0 1px #4ade8059,0 4px 14px #4ade8047}.hero-section{position:relative;z-index:2;min-height:100vh;display:flex;align-items:center;justify-content:center}.hero-inner{max-width:820px;width:100%;padding:96px 40px 88px;display:flex;flex-direction:column;align-items:center;gap:28px;text-align:center}.logo-container{width:72px;height:72px;overflow:hidden;background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;box-shadow:0 8px 24px #0000004d,0 0 0 1px #4ade800f,inset 0 1px #ffffff0a;flex-shrink:0}.logo-icon{width:44px;height:44px;filter:drop-shadow(0 0 8px rgba(74,222,128,.25))}.hero-badge{display:inline-flex;align-items:center;gap:8px;padding:6px 16px 6px 12px;background:#4ade800f;border:1px solid rgba(74,222,128,.2);border-radius:99px;font-size:12.5px;font-weight:500;color:var(--accent);letter-spacing:.01em;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.badge-dot{width:7px;height:7px;flex-shrink:0;border-radius:50%;background:var(--accent);box-shadow:0 0 8px var(--accent);animation:pulse-dot 2.2s ease-in-out infinite}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(.75)}}.landing-title{font-family:var(--font-display);font-size:clamp(60px,12vw,100px);font-weight:800;letter-spacing:-.045em;line-height:.92;margin:0;perspective:700px;color:var(--text)}.hero-char{display:inline-block;transform-origin:center bottom;will-change:transform,opacity;background:linear-gradient(140deg,#ffffff 0%,#d1fae5 45%,var(--accent) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.landing-subtitle{font-size:clamp(15px,2.2vw,19px);font-weight:400;color:var(--text-2);line-height:1.68;max-width:520px;margin:0}.cta-wrap{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:center}.landing-cta{display:inline-flex;align-items:center;gap:8px;padding:14px 28px;font-size:15px;font-weight:600;border-radius:var(--radius-sm);cursor:pointer;border:none;transition:all .22s var(--ease);position:relative;overflow:hidden;letter-spacing:-.01em}.landing-cta.primary{color:#0c0c0f;background:var(--accent);box-shadow:0 0 0 1px #4ade804d,0 4px 14px #4ade8047,0 1px 3px #00000059}.landing-cta.primary:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.18) 0%,transparent 55%);pointer-events:none}.landing-cta.primary:hover{background:var(--accent-dim);transform:translateY(-2px);box-shadow:0 0 0 1px #4ade806b,0 8px 28px #4ade8061,0 2px 6px #0006}.landing-cta.primary:active{transform:translateY(0)}.landing-cta.ghost{color:var(--text-2);background:transparent;border:1px solid var(--border)}.landing-cta.ghost:hover{color:var(--text);border-color:var(--border);background:var(--surface-2);transform:translateY(-1px)}.cta-icon{transition:transform .2s ease}.landing-cta:hover .cta-icon{transform:translate(3px)}.features{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;width:100%;max-width:680px;margin-top:4px}.feature-card{padding:22px 18px 24px;background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);text-align:left;position:relative;isolation:isolate;transition:border-color .28s ease;will-change:transform;cursor:default;-webkit-user-select:none;user-select:none}.feature-card:before{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(135deg,rgba(74,222,128,.05) 0%,transparent 55%);opacity:0;transition:opacity .28s ease;pointer-events:none}.feature-card:hover{border-color:var(--accent-border)}.feature-card:hover:before{opacity:1}.feature-icon-wrap{width:40px;height:40px;background:var(--surface-2);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;margin-bottom:14px;will-change:transform}.feature-icon{font-size:20px;line-height:1}.feature-card h3{font-size:14px;font-weight:700;color:var(--text);margin:0 0 6px;letter-spacing:-.01em}.feature-card p{font-size:12.5px;color:var(--text-3);margin:0;line-height:1.55}.scroll-hint{position:absolute;bottom:32px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:6px;pointer-events:none}.scroll-hint-label{font-size:11px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--text-3)}.scroll-hint-arrow{color:var(--text-3);animation:bounce-down 1.8s ease-in-out infinite}@keyframes bounce-down{0%,to{transform:translateY(0)}50%{transform:translateY(5px)}}.creators-section{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:56px;padding:80px 40px 140px}.creators-heading-wrap{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center}.creators-label{font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.13em;color:var(--accent)}.creators-title-text{font-family:var(--font-display);font-size:clamp(32px,5vw,52px);font-weight:800;color:var(--text);margin:0;letter-spacing:-.035em}.creators-grid{display:flex;gap:32px;flex-wrap:wrap;justify-content:center}.creator-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:10px;padding:44px 44px 36px;width:258px;text-decoration:none;color:inherit;cursor:pointer;border-radius:22px;border:1px solid var(--border-subtle);background:radial-gradient(ellipse 80% 50% at 50% 0%,rgba(74,222,128,.055),transparent 65%),var(--surface);overflow:hidden;will-change:transform;transition:border-color .3s ease,box-shadow .3s ease}.creator-card:before{content:"";position:absolute;inset:0;border-radius:22px;background:radial-gradient(circle 130px at var(--cmx, 50%) var(--cmy, -20%),rgba(74,222,128,.1) 0%,transparent 70%);opacity:0;transition:opacity .3s ease;pointer-events:none}.creator-card:hover{border-color:var(--accent-border);box-shadow:0 0 0 1px var(--accent-border),0 24px 64px #0000008c,0 0 48px #4ade8012}.creator-card:hover:before{opacity:1}.creator-avatar-ring{position:relative;width:90px;height:90px;border-radius:50%;padding:2.5px;background:conic-gradient(var(--accent) 0deg,rgba(74,222,128,.15) 160deg,rgba(74,222,128,.05) 220deg,var(--accent) 360deg);animation:creator-ring-spin 8s linear infinite;margin-bottom:6px;flex-shrink:0}@keyframes creator-ring-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.creator-avatar{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block;background:var(--bg)}.creator-name{font-size:16px;font-weight:700;color:var(--text);letter-spacing:-.02em;margin-top:2px}.creator-handle{font-size:12px;font-weight:500;color:var(--text-3);letter-spacing:.01em}.creator-github-btn{display:inline-flex;align-items:center;gap:7px;margin-top:10px;padding:8px 20px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--accent-glow);color:var(--accent);font-size:12.5px;font-weight:600;transition:background .25s ease,border-color .25s ease,box-shadow .25s ease}.creator-card:hover .creator-github-btn{background:#4ade8021;border-color:var(--accent-border);box-shadow:0 0 16px #4ade802e}.section-divider{position:relative;z-index:2;height:1px;background:linear-gradient(90deg,transparent,var(--border-subtle) 25%,var(--accent-border) 50%,var(--border-subtle) 75%,transparent);transform-origin:left center;margin:0 60px}.scroll-section{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:80px;padding:100px 40px 120px}.scroll-content{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;width:100%;max-width:900px}.stat-card{padding:40px 28px;background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);text-align:center;position:relative;isolation:isolate;transition:border-color .28s ease,box-shadow .28s ease;overflow:hidden;cursor:default;-webkit-user-select:none;user-select:none}.stat-card:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 60% 40% at 50% 0%,rgba(74,222,128,.07),transparent);pointer-events:none}.stat-card:hover{border-color:var(--accent-border);box-shadow:0 0 0 1px var(--accent-border),0 12px 44px #0000006b}.stat-number{font-family:var(--font-display);font-size:56px;font-weight:800;line-height:1;display:inline-block;background:linear-gradient(135deg,var(--accent),#22c55e);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.stat-card h3{font-size:16px;font-weight:700;color:var(--text);margin:14px 0 6px;letter-spacing:-.01em}.stat-card p{font-size:13px;color:var(--text-3);margin:0;line-height:1.6}.scroll-cta{text-align:center;display:flex;flex-direction:column;align-items:center;gap:20px}.cta-eyebrow{font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.13em;color:var(--accent);margin:0}.scroll-cta h2{font-family:var(--font-display);font-size:clamp(30px,5vw,50px);font-weight:800;color:var(--text);margin:0;letter-spacing:-.035em;line-height:1.08;max-width:560px}.journey-section{position:relative;z-index:2;padding:88px 40px 112px;display:flex;flex-direction:column;align-items:center;gap:36px}.journey-head{max-width:760px;text-align:center;display:flex;flex-direction:column;gap:10px}.journey-kicker{margin:0;font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.13em;color:var(--accent)}.journey-title{margin:0;font-family:var(--font-display);font-size:clamp(28px,4.8vw,48px);font-weight:800;line-height:1.08;letter-spacing:-.03em;color:var(--text)}.journey-subtitle{margin:0;font-size:15px;line-height:1.7;color:var(--text-2)}.journey-grid{width:100%;max-width:980px;display:grid;grid-template-columns:1.1fr 1fr;gap:18px;align-items:stretch}.journey-panel{background:radial-gradient(ellipse 72% 45% at 50% 0%,rgba(74,222,128,.08),transparent 70%),var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:30px 28px;min-height:100%;display:flex;flex-direction:column;justify-content:space-between;cursor:default;-webkit-user-select:none;user-select:none}.journey-panel-title{margin:0 0 8px;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--accent)}.journey-panel-desc{margin:0;font-size:14px;line-height:1.75;color:var(--text-2)}.journey-proof-row{margin-top:18px;display:flex;flex-wrap:wrap;gap:8px}.journey-proof-chip{display:inline-flex;align-items:center;padding:5px 10px;border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.02em;color:var(--accent);border:1px solid var(--accent-border);background:var(--accent-glow);-webkit-user-select:none;user-select:none}.journey-steps{display:flex;flex-direction:column;align-items:stretch;gap:10px}.journey-step{display:grid;grid-template-columns:34px 1fr;gap:12px;align-items:start;padding:16px 16px 15px;border-radius:var(--radius-md);background:var(--surface);border:1px solid var(--border-subtle);transition:border-color var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease);cursor:default;-webkit-user-select:none;user-select:none}.journey-step:hover{border-color:var(--accent-border);box-shadow:0 0 0 1px #4ade8033 inset}.journey-step-icon{width:34px;height:34px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;background:var(--surface-2);border:1px solid var(--border-subtle);font-size:18px}.journey-step-copy h3{margin:0;font-size:14px;font-weight:700;letter-spacing:-.01em;color:var(--text)}.journey-step-copy p{margin:5px 0 0;font-size:12.5px;line-height:1.6;color:var(--text-3);min-height:40px}@media(max-width:768px){.hero-inner{padding:52px 24px 64px;gap:22px}.features{grid-template-columns:1fr;max-width:340px;gap:12px}.feature-card{text-align:center;padding:20px 16px}.feature-icon-wrap{margin:0 auto 12px}.scroll-content{grid-template-columns:1fr;gap:14px;max-width:400px}.cta-wrap{flex-direction:column;width:100%;max-width:280px}.landing-cta{width:100%;justify-content:center;padding:14px 24px}.orb-1{width:320px;height:320px}.orb-2{width:380px;height:380px}.orb-3{width:260px;height:260px}.section-divider{margin:0 24px}.journey-section{padding:62px 24px 78px;gap:24px}.journey-grid{grid-template-columns:1fr;gap:12px;max-width:420px}.journey-steps{width:100%}.journey-step-copy p{min-height:0}.journey-panel{padding:22px 18px}.journey-proof-row{gap:6px}}@media(prefers-reduced-motion:reduce){.orb{filter:blur(80px);animation:none!important}.badge-dot{animation:none!important}*,*:before,*:after{transition-duration:.01ms!important}}.subscription-overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:20px;z-index:10002;background:#040508b8;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.subscription-modal{width:min(460px,100%);background:radial-gradient(ellipse 85% 45% at 50% 0%,rgba(74,222,128,.08),transparent 70%),var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg),0 0 0 1px #ffffff08 inset;padding:26px}.subscription-title{margin:0 0 18px;font-size:24px;font-weight:700;letter-spacing:-.02em;color:var(--text);text-align:center}.subscription-content,.subscription-wallet-section,.subscription-paying-section,.subscription-success-section{display:flex;flex-direction:column;gap:16px}.subscription-info-card{padding:16px;border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:#ffffff05}.subscription-info-card h3{margin:0 0 12px;font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}.subscription-info-card ul{margin:0;padding:0;list-style:none;display:grid;gap:8px}.subscription-info-card li{display:flex;align-items:center;gap:8px;color:var(--text-2);font-size:14px}.subscription-info-card li:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 12px #4ade8099;flex-shrink:0}.subscription-price-card{text-align:center;padding:16px;border-radius:var(--radius-md);border:1px solid var(--accent-border);background:var(--accent-glow)}.subscription-price-label{margin:0 0 6px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--text-2)}.subscription-price-value{margin:0 0 6px;font-family:var(--font-display);font-size:34px;font-weight:800;line-height:1;letter-spacing:-.03em;background:linear-gradient(135deg,#d1fae5,var(--accent));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.subscription-price-note{margin:0;font-size:12px;color:var(--text-3)}.subscription-section-text{margin:0;font-size:14px;color:var(--text-2);line-height:1.6;text-align:center}.subscription-wallet-section,.subscription-paying-section,.subscription-success-section{padding-top:4px}.subscription-spinner{width:40px;height:40px;margin:6px auto 0;border-radius:50%;border:3px solid rgba(74,222,128,.2);border-top-color:var(--accent);animation:subscription-spin .9s linear infinite}@keyframes subscription-spin{to{transform:rotate(360deg)}}.subscription-tx-hash{margin:0;padding:10px 12px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:#ffffff05;color:var(--text-2);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px;text-align:center;word-break:break-all}.subscription-success-icon{width:54px;height:54px;margin:0 auto;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:700;color:var(--accent);background:var(--accent-glow);border:1px solid var(--accent-border);box-shadow:var(--shadow-glow)}.subscription-error{margin:0;padding:10px 12px;border-radius:var(--radius-sm);border:1px solid rgba(248,113,113,.28);background:var(--danger-bg);color:var(--danger);font-size:13px;line-height:1.5}.subscription-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.subscription-btn{height:40px;border-radius:var(--radius-sm);font-size:13px;font-weight:600;transition:transform var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease)}.subscription-btn:disabled{opacity:.6;cursor:not-allowed}.subscription-btn-primary{background:var(--accent);color:#0c0c0f;box-shadow:0 0 0 1px #4ade8040,0 3px 12px #4ade8038}.subscription-btn-primary:hover:not(:disabled){transform:translateY(-1px);background:var(--accent-dim)}.subscription-btn-secondary{background:transparent;border:1px solid var(--border);color:var(--text-2)}.subscription-btn-secondary:hover:not(:disabled){transform:translateY(-1px);border-color:var(--border-subtle);color:var(--text);background:#ffffff08}@media(max-width:520px){.subscription-modal{padding:20px}.subscription-title{font-size:21px}.subscription-price-value{font-size:30px}.subscription-actions{grid-template-columns:1fr}}.user-menu{position:relative}.user-avatar-btn{width:34px;height:34px;border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--border-subtle);overflow:hidden;display:flex;align-items:center;justify-content:center;transition:all var(--dur-fast) var(--ease);cursor:pointer}.user-avatar-btn:hover,.user-avatar-btn.active{border-color:var(--accent-border);box-shadow:0 0 0 2px #4ade801f}.user-avatar-img{width:100%;height:100%;object-fit:cover}.user-avatar-initial{font-size:13px;font-weight:700;color:var(--accent);font-family:var(--font-display);-webkit-user-select:none;user-select:none}.user-menu-dropdown{position:absolute;top:calc(100% + 8px);right:0;min-width:200px;background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:0 0 0 1px #ffffff0a,0 12px 36px #0000008c;overflow:hidden;z-index:50}.user-menu-dropdown.portal{position:fixed;z-index:10001;min-width:200px}.user-menu-info{padding:12px 14px 10px;display:flex;flex-direction:column;gap:2px}.user-menu-name{font-size:13px;font-weight:700;color:var(--text);letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-menu-email{font-size:11.5px;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-menu-divider{height:1px;background:var(--border-subtle);margin:0}.user-menu-subscription{padding:10px 14px;display:flex;align-items:center;gap:8px;font-size:12px}.subscription-loading,.subscription-active,.subscription-free{display:flex;align-items:center;gap:8px;width:100%;color:var(--text-2)}.subscription-active{color:var(--success, #4ade80)}.subscription-free{color:var(--text-3)}.subscription-info-text{display:flex;flex-direction:column;gap:1px}.subscription-label{font-size:12px;font-weight:600;color:inherit}.subscription-detail{font-size:11px;color:inherit;opacity:.8}.user-menu-item{width:100%;display:flex;align-items:center;gap:8px;padding:10px 14px;font-size:13px;font-weight:500;color:var(--text-2);background:none;border:none;cursor:pointer;transition:background var(--dur-fast) ease,color var(--dur-fast) ease;text-align:left}.user-menu-item:hover{background:var(--surface-2);color:var(--text)}.user-menu-item.danger{color:var(--danger)}.user-menu-item.danger:hover{background:var(--danger-bg);color:var(--danger)}.user-menu-item.upgrade{color:var(--accent);font-weight:600}.user-menu-item.upgrade:hover{background:#4ade8014;color:var(--accent)}.auth-overlay{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;background:#08080ab8;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);padding:20px}.auth-card{width:100%;max-width:400px;background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);padding:28px 28px 24px;box-shadow:0 0 0 1px #ffffff0a,0 24px 64px #0009,0 0 48px #4ade800a;display:flex;flex-direction:column;gap:0}.auth-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.auth-logo-mark{width:34px;height:34px;border-radius:var(--radius-sm);background:var(--accent-glow);border:1px solid var(--accent-border);display:flex;align-items:center;justify-content:center;color:var(--accent);box-shadow:var(--shadow-glow)}.auth-close-btn{width:28px;height:28px;border-radius:var(--radius-xs);background:var(--surface-2);border:1px solid var(--border-subtle);color:var(--text-3);display:flex;align-items:center;justify-content:center;transition:all var(--dur-fast) var(--ease)}.auth-close-btn:hover{color:var(--text);border-color:var(--border);background:var(--surface-3)}.auth-title{font-family:var(--font-display);font-size:22px;font-weight:800;color:var(--text);letter-spacing:-.025em;margin:0 0 4px}.auth-subtitle{font-size:13px;color:var(--text-3);margin:0 0 22px;line-height:1.5}.auth-google-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:10px;padding:11px 16px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:13.5px;font-weight:600;transition:all var(--dur-fast) var(--ease);letter-spacing:-.01em}.auth-google-btn:hover:not(:disabled){background:var(--surface-3);border-color:var(--border);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.auth-google-btn:disabled{opacity:.5;cursor:not-allowed}.auth-divider{display:flex;align-items:center;gap:10px;margin:16px 0}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--border-subtle)}.auth-divider span{font-size:11.5px;color:var(--text-3);white-space:nowrap;letter-spacing:.02em}.auth-form{display:flex;flex-direction:column;gap:14px}.auth-field{display:flex;flex-direction:column;gap:6px}.auth-field label{font-size:12px;font-weight:600;color:var(--text-2);letter-spacing:.02em}.auth-field-row{display:flex;align-items:center;justify-content:space-between}.auth-field input{width:100%;padding:10px 13px;background:var(--surface-2);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text);font-size:13.5px;transition:border-color var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease);outline:none}.auth-field input::placeholder{color:var(--text-3)}.auth-field input:focus{border-color:var(--accent-border);box-shadow:0 0 0 3px #4ade8014}.auth-error{font-size:12.5px;color:var(--danger);background:var(--danger-bg);border:1px solid rgba(248,113,113,.15);border-radius:var(--radius-sm);padding:9px 12px;margin:0;line-height:1.45}.auth-info{font-size:12.5px;color:var(--accent);background:var(--accent-glow);border:1px solid var(--accent-border);border-radius:var(--radius-sm);padding:9px 12px;margin:0;line-height:1.45}.auth-submit-btn{width:100%;padding:11px 16px;background:var(--accent);color:#0c0c0f;border-radius:var(--radius-sm);font-size:14px;font-weight:700;letter-spacing:-.01em;transition:all var(--dur-fast) var(--ease);position:relative;display:flex;align-items:center;justify-content:center;min-height:40px;box-shadow:0 0 0 1px #4ade804d,0 4px 14px #4ade8038}.auth-submit-btn:before{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(135deg,rgba(255,255,255,.16) 0%,transparent 55%);pointer-events:none}.auth-submit-btn:hover:not(:disabled){background:var(--accent-dim);transform:translateY(-1px);box-shadow:0 0 0 1px #4ade8066,0 8px 24px #4ade804d}.auth-submit-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.auth-spinner{width:16px;height:16px;border:2px solid rgba(12,12,15,.3);border-top-color:#0c0c0f;border-radius:50%;animation:spin .7s linear infinite;display:inline-block}.auth-footer{font-size:12.5px;color:var(--text-3);text-align:center;margin:16px 0 0}.auth-link-btn{background:none;border:none;color:var(--accent);font-size:inherit;font-weight:600;padding:0;cursor:pointer;transition:opacity var(--dur-fast) ease}.auth-link-btn:hover{opacity:.8;text-decoration:underline}.app-header{flex-shrink:0;position:relative;display:flex;align-items:center;justify-content:space-between;padding:0 28px;height:60px;border-bottom:1px solid var(--border-subtle);background:var(--surface)}.app-logo{display:flex;align-items:center;gap:10px}.app-logo-mark{width:28px;height:28px;border-radius:8px;background:var(--accent-glow);border:1px solid var(--accent-border);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-glow);color:var(--accent)}.app-logo-name{font-family:var(--font-display);font-size:16px;font-weight:700;letter-spacing:-.02em;color:var(--text)}.app-header-date{font-size:12.5px;color:var(--text-3);font-weight:500;position:absolute;left:50%;transform:translate(-50%)}.app-header-right{display:flex;align-items:center;gap:10px}.lang-switch{display:inline-flex;align-items:center;gap:8px;padding:4px 8px;border-radius:10px;background:var(--surface-2);border:1px solid var(--border-subtle);box-shadow:inset 0 1px #ffffff0a}.lang-select-label{font-size:11px;color:var(--text-3);font-weight:600;letter-spacing:.03em}.lang-select{appearance:none;border:1px solid var(--border-subtle);background:var(--surface-3);color:var(--text-2);border-radius:8px;height:26px;padding:0 24px 0 8px;font-size:12px;font-weight:600;outline:none;transition:border-color var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease);background-image:linear-gradient(45deg,transparent 50%,var(--text-3) 50%),linear-gradient(135deg,var(--text-3) 50%,transparent 50%);background-position:calc(100% - 13px) 10px,calc(100% - 8px) 10px;background-size:5px 5px,5px 5px;background-repeat:no-repeat}.lang-select:hover{color:var(--text);border-color:var(--border)}.lang-select:focus{border-color:var(--accent-border);box-shadow:0 0 0 2px var(--accent-glow)}.btn-sign-in{display:inline-flex;align-items:center;gap:6px;padding:7px 16px;border-radius:var(--radius-sm);background:var(--accent);color:#0c0c0f;font-size:13px;font-weight:700;letter-spacing:-.01em;border:none;cursor:pointer;transition:all var(--dur-fast) var(--ease);box-shadow:0 0 0 1px #4ade8040,0 2px 8px #4ade8033;position:relative;overflow:hidden}.btn-sign-in:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.16) 0%,transparent 55%);pointer-events:none}.btn-sign-in:hover{background:var(--accent-dim);transform:translateY(-1px);box-shadow:0 0 0 1px #4ade8059,0 4px 14px #4ade8047}.btn-sign-in:active{transform:translateY(0)}.app-header-left{display:flex;align-items:center;gap:12px}.back-button{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:8px;border:1px solid var(--border-subtle);background:transparent;color:var(--text-2);font-size:16px;line-height:1;cursor:pointer;transition:all var(--dur-fast) var(--ease);flex-shrink:0}.back-button:hover{background:var(--surface-2, rgba(255,255,255,.05));border-color:var(--border);color:var(--text);transform:translate(-2px)}.back-button:active{transform:translate(0)}.btn-add-habit{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:var(--radius-sm);background:var(--accent-glow);border:1px solid var(--accent-border);color:var(--accent);font-size:12.5px;font-weight:600;transition:background var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease)}.btn-add-habit:hover{background:#4ade8024;box-shadow:var(--shadow-glow);transform:translateY(-1px)}.btn-add-habit:active{transform:translateY(0)}@media(max-width:980px){.app-header{padding:0 16px}.app-header-date{display:none}}@media(max-width:560px){.app-header{height:56px}.app-logo-name{font-size:14px}.app-header-left{gap:10px}.btn-sign-in{padding:6px 12px;font-size:12px}.lang-switch{padding:3px 6px}.lang-select-label{display:none}.lang-select{width:82px;height:24px;font-size:11px}}.loading-overlay{height:100vh;display:flex;align-items:center;justify-content:center;color:var(--text-3);font-size:14px;gap:10px}.spinner{width:18px;height:18px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}.task-row{display:flex;align-items:center;gap:12px;padding:10px;border-radius:var(--radius-sm);transition:background var(--dur-fast);position:relative}.task-row:hover{background:var(--surface-2)}.task-done-btn{width:28px;height:28px;border-radius:8px;border:1.5px solid var(--border);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all var(--dur-fast) var(--ease);color:var(--text-3);background:transparent}.task-done-btn:hover{border-color:var(--accent-border);color:var(--accent);background:var(--accent-glow)}.task-done-btn.done{background:var(--accent-glow);border-color:var(--accent-border);color:var(--accent);box-shadow:0 0 10px #4ade802e}.task-done-btn:disabled{opacity:.5;cursor:wait}.task-name{flex:1;font-size:14px;font-weight:500;color:var(--text);min-width:0;transition:color var(--dur-fast),text-decoration-color var(--dur-fast)}.task-name.done{color:var(--text-3);text-decoration:line-through;text-decoration-color:var(--text-3)}.task-description{font-size:11.5px;color:var(--text-3);margin-left:8px;font-weight:400}.task-streak{font-size:11.5px;font-weight:600;color:var(--accent);background:var(--accent-glow);border:1px solid var(--accent-border);border-radius:99px;padding:2px 9px;white-space:nowrap;flex-shrink:0}.task-streak.dim{color:var(--text-3);background:var(--surface-3);border-color:var(--border-subtle)}.task-edit-btn{width:26px;height:26px;border-radius:7px;display:flex;align-items:center;justify-content:center;color:var(--text-3);opacity:0;transition:opacity var(--dur-fast),background var(--dur-fast),color var(--dur-fast);flex-shrink:0}.task-row:hover .task-edit-btn{opacity:1}.task-edit-btn:hover{background:var(--accent-glow);color:var(--accent)}.task-delete-btn{width:26px;height:26px;border-radius:7px;display:flex;align-items:center;justify-content:center;color:var(--text-3);opacity:0;transition:opacity var(--dur-fast),background var(--dur-fast),color var(--dur-fast);flex-shrink:0}.task-row:hover .task-delete-btn{opacity:1}.task-delete-btn:hover{background:var(--danger-bg);color:var(--danger)}.task-divider{height:1px;background:var(--border-subtle);margin:4px 10px}.tasks-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;color:var(--text-3);gap:10px;text-align:center}.tasks-empty-icon{font-size:32px}.tasks-empty-text{font-size:13.5px;color:var(--text-3);line-height:1.7}.tasks-empty-text .accent{color:var(--accent)}.modal-overlay{position:fixed;inset:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:200;display:flex;align-items:center;justify-content:center;padding:20px}.modal{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-xl);padding:32px;width:100%;max-width:420px;box-shadow:var(--shadow-lg)}.modal-title{font-family:var(--font-display);font-size:22px;font-weight:800;letter-spacing:-.02em;color:var(--text);margin-bottom:24px}.form-group{margin-bottom:18px}.form-error{background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:var(--radius-sm);padding:12px 14px;margin-bottom:18px;display:flex;flex-direction:column;gap:8px}.form-error.has-action{padding:12px 14px}.form-error-message{font-size:13px;color:#ef4444;font-weight:500;line-height:1.4}.error-action-link{align-self:flex-start;font-size:12px;color:#f87171;font-weight:600;background:none;border:none;cursor:pointer;text-decoration:none;transition:color var(--dur-fast)}.error-action-link:hover{color:#fca5a5;text-decoration:underline}.form-label{display:block;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--text-3);margin-bottom:7px}.form-label-optional{color:var(--text-3);font-weight:400;text-transform:none;letter-spacing:0}.form-input{width:100%;background:var(--surface-3);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 14px;color:var(--text);font-size:14px;outline:none;transition:border-color var(--dur-fast),box-shadow var(--dur-fast)}.form-input:focus{border-color:var(--accent-border);box-shadow:0 0 0 3px var(--accent-glow)}.form-input::placeholder{color:var(--text-3)}textarea.form-input{resize:vertical;min-height:80px}.modal-actions{display:flex;gap:10px;margin-top:26px}.btn-primary{flex:1;padding:11px 20px;border-radius:var(--radius-sm);background:var(--accent);color:#050e07;font-size:14px;font-weight:700;transition:opacity var(--dur-fast),transform var(--dur-fast)}.btn-primary:hover{opacity:.88;transform:translateY(-1px)}.btn-primary:active{transform:translateY(0)}.btn-primary:disabled{opacity:.4;cursor:not-allowed;transform:none}.btn-secondary{padding:11px 20px;border-radius:var(--radius-sm);background:var(--surface-3);color:var(--text-2);font-size:14px;font-weight:500;border:1px solid var(--border);transition:background var(--dur-fast),color var(--dur-fast)}.btn-secondary:hover{background:var(--surface-3);color:var(--text)}.stats-body{flex:1;overflow-y:auto;padding:18px 22px;display:flex;flex-direction:column;gap:14px}.streak-hero{display:flex;align-items:center;gap:12px;padding:16px 18px;background:var(--accent-glow);border:1px solid var(--accent-border);border-radius:var(--radius-md)}.streak-hero-icon{font-size:22px;line-height:1}.streak-hero-label{font-size:12px;color:var(--accent);font-weight:600;text-transform:uppercase;letter-spacing:.06em;margin-bottom:2px}.streak-hero-value{font-family:var(--font-display);font-size:26px;font-weight:800;color:var(--accent);letter-spacing:-.03em;line-height:1}.streak-hero-sub{font-size:11.5px;color:var(--accent);opacity:.65;margin-top:2px}.stats-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.stat-card{background:var(--surface-2);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:15px 16px;transition:border-color var(--dur-fast),box-shadow var(--dur-fast)}.stat-card:hover{border-color:var(--border);box-shadow:var(--shadow-sm)}.stat-label{font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--text-3);margin-bottom:7px}.stat-value{font-family:var(--font-display);font-size:26px;font-weight:800;color:var(--text);letter-spacing:-.03em;line-height:1}.stat-value.accent{color:var(--accent)}.stat-sub{font-size:11.5px;color:var(--text-3);margin-top:4px}.buckets-section{background:var(--surface-2);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:14px 16px;margin-top:4px}.buckets-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.buckets-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-3)}.bucket-toggle{display:flex;gap:4px;background:var(--surface-3);padding:2px;border-radius:var(--radius-xs)}.bucket-toggle-btn{padding:4px 10px;border-radius:4px;font-size:11px;font-weight:600;color:var(--text-3);background:transparent;transition:all var(--dur-fast) var(--ease)}.bucket-toggle-btn:hover{color:var(--text-2)}.bucket-toggle-btn.active{color:var(--accent);background:var(--surface)}.buckets-list{display:flex;flex-direction:column;gap:8px}.bucket-item{display:grid;grid-template-columns:60px 1fr 40px;align-items:center;gap:10px}.bucket-label{font-size:11px;font-weight:600;color:var(--text-3)}.bucket-bar-wrap{height:8px;background:var(--surface-3);border-radius:4px;overflow:hidden}.bucket-bar{height:100%;background:linear-gradient(90deg,var(--accent-deep),var(--accent));border-radius:4px;transition:width var(--dur-mid) var(--ease)}.bucket-count{font-size:12px;font-weight:700;color:var(--text-2);text-align:right}.empty-state{padding:16px;text-align:center;font-size:12px;color:var(--text-3);font-style:italic}.heatmap-section{background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);overflow:hidden;flex-shrink:0}.heatmap-card-header{display:flex;align-items:center;justify-content:space-between;padding:18px 24px 14px;border-bottom:1px solid var(--border-subtle)}.heatmap-card-title{font-family:var(--font-display);font-size:15px;font-weight:700;color:var(--text);letter-spacing:-.01em}.heatmap-year-selector{display:flex;gap:6px}.year-btn{padding:5px 12px;border-radius:var(--radius-xs);font-size:12px;font-weight:600;color:var(--text-3);background:var(--surface-2);border:1px solid var(--border-subtle);transition:all var(--dur-fast) var(--ease)}.year-btn:hover{color:var(--text-2);border-color:var(--border);background:var(--surface-3)}.year-btn.active{color:var(--accent);background:var(--accent-glow);border-color:var(--accent-border)}.year-btn:disabled{opacity:.5;cursor:not-allowed}.heatmap-content{padding:24px 28px 20px}.heatmap-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 40px;text-align:center}.heatmap-empty-icon{font-size:48px;margin-bottom:16px;opacity:.6}.heatmap-empty-text{font-size:14px;color:var(--text-3);max-width:300px;line-height:1.6}.heatmap-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 40px;gap:16px}.heatmap-spinner{width:40px;height:40px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.heatmap-loading-text{font-size:13px;color:var(--text-3);font-weight:500}.heatmap-wrapper{overflow-x:auto;overflow-y:hidden;padding-bottom:6px;text-align:center}.heatmap-inner{display:inline-block;text-align:left;min-width:max-content}.heatmap-grid-wrap{display:flex;flex-direction:row;gap:6px;align-items:flex-start}.heatmap-day-col{display:flex;flex-direction:column;gap:4px;padding-top:22px}.heatmap-day-label{width:26px;height:14px;font-size:10px;color:var(--text-3);font-weight:500;text-align:right;display:flex;align-items:center;justify-content:flex-end;flex-shrink:0;letter-spacing:.01em}.heatmap-weeks-area{display:flex;flex-direction:column;gap:6px}.heatmap-months-row{position:relative;height:16px}.heatmap-month-slot{position:absolute;top:0;font-size:11px;color:var(--text-3);font-weight:600;text-align:center;white-space:nowrap;letter-spacing:.02em;text-transform:uppercase;font-size:10px}.heatmap-weeks-cols{display:flex;flex-direction:row;gap:4px}.heatmap-week-col{display:flex;flex-direction:column;gap:4px}.heatmap-cell{width:14px;height:14px;border-radius:3px;flex-shrink:0;cursor:default;transition:transform var(--dur-fast) var(--ease);position:relative}.heatmap-cell:hover{transform:scale(1.45);z-index:2;filter:grayscale(.35) brightness(1.05)}.heatmap-cell-empty{visibility:hidden}.heatmap-cell[data-tooltip]:hover:after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);white-space:nowrap;background:var(--surface-3);border:1px solid var(--border);color:var(--text-2);padding:5px 10px;border-radius:6px;font-size:11px;font-weight:500;pointer-events:none;z-index:100;box-shadow:var(--shadow-lg)}.heatmap-week-col>.heatmap-cell:nth-child(1)[data-tooltip]:hover:after,.heatmap-week-col>.heatmap-cell:nth-child(2)[data-tooltip]:hover:after{bottom:auto;top:calc(100% + 8px)}.heatmap-legend{display:flex;align-items:center;gap:5px;margin-top:16px;justify-content:flex-end}.heatmap-legend-label{font-size:11px;color:var(--text-3);font-weight:500}.heatmap-legend-cell{width:13px;height:13px;border-radius:3px}@media(max-width:920px){.heatmap-card-header{flex-direction:column;align-items:flex-start;gap:10px}.heatmap-content{padding:18px 16px 16px}}.leaderboard-section{background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);overflow:hidden;flex-shrink:0;display:flex;flex-direction:column}.leaderboard-card-header{display:flex;align-items:center;justify-content:space-between;padding:18px 24px 14px;border-bottom:1px solid var(--border-subtle)}.leaderboard-card-title{font-family:var(--font-display);font-size:15px;font-weight:700;color:var(--text);letter-spacing:-.01em}.leaderboard-user-xp{display:flex;align-items:center;gap:8px;font-size:13px;background:var(--surface-2);padding:4px 12px;border-radius:var(--radius-xl);border:1px solid var(--border-subtle)}.user-xp-label{color:var(--text-3);font-weight:500}.user-xp-value{font-weight:700;letter-spacing:.02em}.user-xp-divider{color:var(--border)}.user-xp-total{color:var(--text-2);font-weight:600;font-variant-numeric:tabular-nums}.leaderboard-content{padding:16px 20px}.leaderboard-message{display:flex;align-items:center;justify-content:center;gap:12px;padding:40px 20px;color:var(--text-3);font-size:14px;font-weight:500;text-align:center}.leaderboard-spinner{width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:lb-spin .8s linear infinite}@keyframes lb-spin{to{transform:rotate(360deg)}}.leaderboard-list{display:flex;flex-direction:column;gap:8px}.leaderboard-item{display:flex;align-items:center;padding:12px 16px;background:var(--bg);border:1px solid var(--border-subtle);border-radius:var(--radius-md);transition:all var(--dur-fast) var(--ease)}.leaderboard-item:hover{background:var(--surface-2);border-color:var(--border);transform:translate(2px)}.leaderboard-item.is-current-user{background:var(--surface-2);border-color:var(--accent-border);box-shadow:0 4px 20px #0003,inset 0 0 0 1px var(--accent-glow)}.leaderboard-item.is-current-user:hover{background:var(--surface-3)}.lb-rank-num{width:32px;font-size:15px;font-weight:700;color:var(--text-3);text-align:center;margin-right:12px;font-variant-numeric:tabular-nums}.lb-user-info{flex:1;display:flex;flex-direction:column;gap:4px;min-width:0}.lb-user-name{font-size:14px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:8px}.lb-you-badge{font-size:9px;font-weight:800;color:var(--accent);background:var(--accent-glow);padding:2px 6px;border-radius:4px;letter-spacing:.05em;border:1px solid var(--accent-border)}.lb-tier-badge{display:inline-flex;font-size:10px;font-weight:700;padding:2px 8px;border-radius:12px;width:max-content;text-transform:uppercase;letter-spacing:.04em}.lb-xp-total{font-family:var(--font-display);font-size:16px;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums;text-align:right;margin-left:16px}.lb-xp-label{font-size:11px;font-weight:600;color:var(--text-3);margin-left:2px}.panel-card{background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);display:flex;flex-direction:column;overflow:hidden}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:18px 22px 14px;border-bottom:1px solid var(--border-subtle);flex-shrink:0}.panel-title{font-family:var(--font-display);font-size:15px;font-weight:700;color:var(--text);letter-spacing:-.01em}.panel-header-actions{display:flex;align-items:center;gap:12px}.panel-title-sub{font-size:12px;color:var(--text-3);font-weight:400;margin-left:8px;font-family:var(--font-sans);letter-spacing:0}.tasks-body{flex:1;overflow-y:auto;padding:10px 12px}.app-shell{display:flex;flex-direction:column;height:100vh;overflow:hidden}.error-container{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:40px;text-align:center}.error-icon{font-size:64px;margin-bottom:20px;opacity:.8}.error-title{font-family:var(--font-display);font-size:24px;font-weight:700;color:var(--text);margin-bottom:12px}.error-message{font-size:14px;color:var(--text-2);margin-bottom:24px;max-width:400px}.error-retry-btn{padding:12px 24px;background:var(--accent);color:var(--bg);border-radius:var(--radius-sm);font-weight:600;font-size:14px;transition:all var(--dur-fast) var(--ease)}.error-retry-btn:hover{background:var(--accent-dim);transform:translateY(-2px);box-shadow:var(--shadow-glow)}.app-body{flex:1;overflow-y:auto;overflow-x:hidden;padding:24px 28px;display:flex;flex-direction:column;gap:20px}.app-body>*{flex-shrink:0}.dashboard-grid{display:grid;grid-template-columns:1fr 360px;gap:20px;align-items:stretch}.today-panel-card{height:100%}.today-panel-card .tasks-body{flex:1 1 auto;overflow-y:auto;max-height:clamp(180px,42vh,460px)}.stats-panel-card{max-height:clamp(420px,74vh,640px)}.stats-panel-card .stats-body{overflow-y:auto}.heatmap-slot,.leaderboard-slot{min-width:0}.dashboard-wide-col{grid-column:1 / -1}.panel-header-count{font-size:12px;color:var(--text-3);font-weight:500}@media(max-width:1180px){.app-body{padding:20px}.dashboard-grid{grid-template-columns:minmax(0,1fr) 320px;align-items:start}}@media(max-width:980px){.app-body{padding:16px;gap:16px}.dashboard-grid{grid-template-columns:1fr;gap:16px}.stats-panel-card{max-height:none}.stats-panel-card .stats-body{overflow:visible}.today-panel-card .tasks-body{max-height:clamp(180px,40vh,400px)}}@media(max-width:680px){.app-body{padding:12px;gap:12px}.dashboard-grid{gap:12px}.panel-header{flex-direction:column;align-items:flex-start;gap:10px;padding:16px}.panel-header-actions{width:100%;justify-content:space-between;gap:8px}.tasks-body{padding:10px}}
