*,:before,:after{box-sizing:border-box}html,body,#root{-webkit-font-smoothing:antialiased;color:#e2e8f0;background:#0a0f1e;height:100%;margin:0;padding:0;font-family:Inter,system-ui,-apple-system,sans-serif;overflow:hidden}button{cursor:pointer;font-family:inherit}:focus{outline:none}:focus-visible{outline-offset:2px;border-radius:4px;outline:2px solid #3b82f6}input:focus-visible,textarea:focus-visible{outline-offset:0;border-radius:6px;outline:2px solid #60a5fa}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app-shell{background:#0a0f1e;height:100vh;display:flex;overflow:hidden}.main-content{flex-direction:column;flex:1;min-width:0;height:100vh;display:flex;overflow:hidden}.route-loading{color:#94a3b8;letter-spacing:0;place-items:center;min-height:100%;font-size:13px;display:grid}.sidebar{background:#0f172a;border-right:1px solid #1e293b;flex-direction:column;flex-shrink:0;width:240px;min-width:240px;height:100vh;transition:width .2s,min-width .2s;display:flex;overflow:hidden}.sidebar--collapsed{width:52px;min-width:52px}.sidebar-header{border-bottom:1px solid #1e293b;flex-shrink:0;justify-content:space-between;align-items:center;min-height:58px;padding:14px 12px;display:flex}.sidebar-title{color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:10px;padding:0;transition:opacity .15s;display:flex;overflow:hidden}.sidebar-title:hover{opacity:.75}.sidebar-logo{flex-shrink:0;align-items:center;display:inline-flex}.sidebar-name{color:#f1f5f9;white-space:nowrap;font-size:14px;font-weight:700}.sidebar-meta{color:#475569;font-size:11px}.sidebar-toggle{color:#64748b;background:0 0;border:1px solid #1e293b;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;font-size:16px;transition:border-color .15s,color .15s;display:flex}.sidebar-toggle:hover{color:#3b82f6;border-color:#3b82f6}.sidebar-nav{scrollbar-width:thin;scrollbar-color:#1e293b transparent;flex:1;padding:8px 0 16px;overflow-y:auto}.sidebar-nav::-webkit-scrollbar{width:4px}.sidebar-nav::-webkit-scrollbar-track{background:0 0}.sidebar-nav::-webkit-scrollbar-thumb{background:#1e293b;border-radius:4px}.sidebar-category{margin-bottom:2px}.sidebar-cat-btn{color:#94a3b8;text-transform:uppercase;letter-spacing:.8px;text-align:left;background:0 0;border:none;align-items:center;gap:8px;width:100%;padding:8px 12px;font-size:12px;font-weight:600;transition:color .15s;display:flex}.sidebar-cat-btn:hover{color:#cbd5e1}.sidebar-cat-btn--active{color:#60a5fa}.sidebar-cat-emoji{flex-shrink:0;align-items:center;line-height:0;display:inline-flex}.sidebar-cat-label{flex:1}.sidebar-cat-chevron{color:#475569;align-items:center;line-height:0;transition:transform .2s;display:inline-flex}.sidebar-cat-chevron--open{transform:rotate(180deg)}.sidebar-topic-list{margin:0;padding:0 0 4px;list-style:none}.sidebar-topic-btn{color:#64748b;text-align:left;background:0 0;border:none;border-radius:0;align-items:center;gap:8px;width:100%;padding:6px 12px 6px 28px;font-size:13px;transition:color .15s,background .15s;display:flex}.sidebar-topic-btn:hover{color:#cbd5e1;background:#1e293b44}.sidebar-topic-btn--active{font-weight:500;color:#60a5fa!important;background:#1e3a5f!important}.sidebar-topic-dot{opacity:.5;background:currentColor;border-radius:50%;flex-shrink:0;width:5px;height:5px}.sidebar-topic-btn--active .sidebar-topic-dot{opacity:1}.sidebar--collapsed .sidebar-topic-btn{justify-content:center;padding:6px 4px}.topic-view{flex-direction:column;flex:1;height:100%;display:flex;overflow:hidden}.topic-header{background:#0f172a;border-bottom:1px solid #1e293b;flex-shrink:0;align-items:center;gap:8px;height:44px;padding:0 16px;display:flex}.topic-breadcrumb{color:#475569;font-size:13px}.topic-breadcrumb-sep{color:#334155;vertical-align:middle;align-items:center;display:inline-flex}.topic-title{color:#f1f5f9;font-size:13px;font-weight:600}.topic-header-pills{gap:6px;margin-left:auto;display:flex}.topic-pill{letter-spacing:.5px;border-radius:99px;padding:2px 8px;font-size:10px;font-weight:600}.topic-pill--concept{color:#60a5fa;background:#1e3a5f}.topic-pill--code{color:#4ade80;background:#1a2f1e}.topic-pill--preview{color:#c084fc;background:#2d1b3d}.topic-code-btn{cursor:pointer;border:1px solid #2a3f2a;align-items:center;gap:4px;transition:background .15s,border-color .15s;display:inline-flex}.topic-code-btn:hover{background:#243a28;border-color:#4ade80}.topic-code-btn--active{background:#22c55e22;border-color:#4ade8088}.panels-wrapper{flex-direction:column;flex:1;display:flex;overflow:hidden}.panel-group{flex:1!important;height:100%!important}.panel{overflow:hidden}.resize-handle{cursor:col-resize;background:#1e293b;flex-shrink:0;transition:background .2s;position:relative;width:4px!important}.resize-handle:hover,.resize-handle[data-resize-handle-active]{background:#3b82f6}.resize-handle:after{content:"";position:absolute;inset:0 -2px}.pane-wrapper{flex-direction:column;height:100%;display:flex;overflow:hidden}.pane-label{text-transform:uppercase;letter-spacing:1px;border-bottom:1px solid #1e293b;flex-shrink:0;justify-content:space-between;align-items:center;padding:6px 12px;font-size:10px;font-weight:600;display:flex}.pane-concept .pane-label{color:#3b82f6;background:#0f172a}.pane-editor .pane-label{color:#22c55e;background:#0f172a}.pane-preview .pane-label{color:#a855f7;background:#0f172a}.concept-pane{scrollbar-width:thin;scrollbar-color:#1e293b transparent;flex:1;padding:20px 20px 40px;overflow-y:auto}.concept-pane::-webkit-scrollbar{width:4px}.concept-pane::-webkit-scrollbar-thumb{background:#1e293b;border-radius:4px}.sandpack-fill{flex-direction:column;flex:1;display:flex;overflow:hidden}.sandpack-fill>*{flex:1!important;min-height:0!important}.sp-wrapper,.sp-layout,.sp-editor,.sp-stack{height:100%!important;max-height:none!important}.concept-pane h1,.concept-pane .md-h1,.concept-pane .md-h2{color:#f1f5f9;letter-spacing:-.3px;border-bottom:1px solid #1e293b;margin:0 0 16px;padding-bottom:10px;font-size:18px;font-weight:700}.concept-pane .md-h3{text-transform:uppercase;letter-spacing:1.2px;color:#64748b;margin:20px 0 10px;font-size:12px;font-weight:600}.concept-pane .md-h4{color:#94a3b8;margin:14px 0 8px;font-size:13px;font-weight:600}.concept-pane p{color:#cbd5e1;margin:0 0 12px;font-size:13.5px;line-height:1.75}.concept-pane ul,.concept-pane ol{margin:0 0 12px;padding-left:20px}.concept-pane li{color:#cbd5e1;margin-bottom:4px;font-size:13.5px;line-height:1.7}.concept-pane strong{color:#f1f5f9;font-weight:600}.concept-pane a{color:#60a5fa;text-decoration:none}.concept-pane a:hover{text-decoration:underline}.concept-pane .md-pre{scrollbar-width:thin;background:#0a0f1e;border:1px solid #1e293b;border-radius:8px;margin:12px 0;padding:14px 16px;overflow-x:auto}.concept-pane .md-code-block{color:#93c5fd;white-space:pre;background:0 0;padding:0;font-family:JetBrains Mono,Fira Code,Cascadia Code,monospace;font-size:12.5px;line-height:1.65}.concept-pane .md-code-inline{color:#7dd3fc;background:#1e293b;border-radius:4px;padding:2px 6px;font-family:JetBrains Mono,Fira Code,monospace;font-size:12px}.md-table-wrap{margin:12px 0;overflow-x:auto}.md-table{border-collapse:collapse;width:100%;font-size:13px}.md-table th{color:#94a3b8;text-transform:uppercase;letter-spacing:.8px;text-align:left;background:#1e293b;border:1px solid #334155;padding:8px 12px;font-size:11px;font-weight:600}.md-table td{color:#cbd5e1;vertical-align:top;border:1px solid #1e293b;padding:7px 12px}.md-table tr:nth-child(2n) td{background:#0f172a22}.md-blockquote{background:#1e3a5f22;border-left:3px solid #3b82f6;border-radius:0 6px 6px 0;margin:12px 0;padding:8px 16px}.md-blockquote p{color:#93c5fd;margin:0}.welcome{scrollbar-width:thin;scrollbar-color:#1e293b transparent;flex:1;padding:48px 48px 80px;overflow-y:auto}.welcome-hero{text-align:center;margin-bottom:48px}.welcome-logo{color:#f59e0b;justify-content:center;margin-bottom:16px;display:flex}.welcome-heading{color:#f1f5f9;letter-spacing:-1px;margin:0 0 12px;font-size:32px;font-weight:800}.welcome-sub{color:#64748b;margin:0;font-size:15px}.welcome-layout{grid-template-columns:280px 1fr;align-items:flex-start;gap:40px;display:grid}.welcome-section-title{text-transform:uppercase;letter-spacing:1.2px;color:#475569;margin:0 0 16px;font-size:13px;font-weight:600}.welcome-steps{margin:0 0 20px;padding:0;list-style:none}.welcome-steps li{color:#94a3b8;align-items:flex-start;gap:12px;margin-bottom:14px;font-size:14px;line-height:1.5;display:flex}.welcome-step-num{color:#60a5fa;background:#1e3a5f;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;margin-top:1px;font-size:11px;font-weight:700;display:flex}.welcome-tip{color:#475569;background:#1e293b;border:1px solid #334155;border-radius:8px;padding:10px 14px;font-size:13px}.welcome-cat-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;display:grid}.welcome-cat-card{background:#0f172a;border:1px solid #1e293b;border-radius:10px;padding:14px 16px;transition:border-color .15s}.welcome-cat-card:hover{border-color:#334155}.welcome-cat-header{align-items:center;gap:8px;margin-bottom:12px;display:flex}.welcome-cat-emoji{font-size:16px}.welcome-cat-name{color:#e2e8f0;flex:1;font-size:13px;font-weight:600}.welcome-cat-count{color:#475569;background:#1e293b;border-radius:99px;padding:2px 7px;font-size:11px}.welcome-cat-topics{margin:0;padding:0;list-style:none}.welcome-cat-topics li{margin-bottom:3px}.welcome-topic-link{color:#64748b;text-align:left;cursor:pointer;background:0 0;border:none;padding:2px 0;font-size:12.5px;transition:color .15s}.welcome-topic-link:hover{color:#60a5fa}.welcome-cat-more{color:#334155;padding-top:2px;font-size:12px}.welcome-playground-cta{background:#0f172a;border:1px solid #1e293b;border-radius:10px;margin-top:20px;padding:14px 16px}.welcome-playground-btn{color:#60a5fa;cursor:pointer;background:#1e3a5f;border:1px solid #3b82f6;border-radius:7px;align-items:center;gap:6px;padding:8px 18px;font-size:13px;font-weight:600;transition:background .15s,box-shadow .15s;display:inline-flex}.welcome-playground-btn:hover{background:#1e4a7f;box-shadow:0 0 12px #3b82f640}.welcome-playground-hint{color:#475569;margin:8px 0 0;font-size:12px;line-height:1.5}.sidebar-search-wrap{background:#1e293b;border:1px solid #334155;border-radius:7px;flex-shrink:0;align-items:center;gap:6px;margin:8px 10px;padding:6px 10px;transition:border-color .15s;display:flex}.sidebar-search-wrap:focus-within{border-color:#3b82f6}.sidebar-search-icon{color:#475569;flex-shrink:0;align-items:center;display:flex}.sidebar-search{color:#e2e8f0;background:0 0;border:none;outline:none;flex:1;min-width:0;font-family:inherit;font-size:12.5px}.sidebar-search::placeholder{color:#475569}.sidebar-search-clear{color:#475569;cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0 2px;font-size:11px;line-height:1;transition:color .15s}.sidebar-search-clear:hover{color:#94a3b8}.sidebar-cat-search-header{align-items:center;gap:6px;padding:6px 12px 3px;display:flex}.sidebar-cat-search-label{text-transform:uppercase;letter-spacing:.8px;color:#475569;font-size:10px;font-weight:700}.sidebar-no-results{color:#475569;text-align:center;padding:20px 16px;font-size:12.5px}.sidebar-topic-check{color:#22c55e;flex-shrink:0;align-items:center;width:14px;line-height:0;display:inline-flex}.sidebar-cat-done-badge{color:#22c55e;background:#0d2d1a;border:1px solid #22c55e44;border-radius:99px;flex-shrink:0;margin-right:2px;padding:1px 6px;font-size:10px;font-weight:600}.concept-h1-row{border-bottom:1px solid #1e293b;align-items:flex-start;gap:10px;margin-bottom:16px;padding-bottom:10px;display:flex}.concept-h1-row .md-h1,.concept-h1-row .md-h2{flex:1;border-bottom:none!important;margin-bottom:0!important;padding-bottom:0!important}.mark-done-btn{color:#475569;cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #334155;border-radius:99px;flex-shrink:0;align-items:center;gap:4px;margin-top:3px;padding:3px 10px;font-family:inherit;font-size:11px;font-weight:600;transition:border-color .15s,color .15s,background .15s;display:inline-flex}.mark-done-btn:hover{color:#4ade80;background:#0d2d1a66;border-color:#22c55e}.mark-done-btn--done{color:#4ade80;background:#0d2d1a;border-color:#22c55e}.mark-done-btn--done:hover{color:#f87171;background:#2d0d0d66;border-color:#ef4444}.gloss-term{text-underline-offset:3px;cursor:help;line-height:inherit;-webkit-text-decoration:underline dotted #3b82f6;text-decoration:underline dotted #3b82f6;display:inline-block}.gloss-tooltip{color:#cbd5e1;white-space:normal;pointer-events:none;z-index:9999;background:#0d1b2e;border:1px solid #1e3a5f;border-top:2px solid #3b82f6;border-radius:8px;width:268px;padding:10px 14px;font-family:inherit;font-size:12px;font-style:normal;font-weight:400;line-height:1.55;text-decoration:none;position:fixed;box-shadow:0 8px 28px #0009}strong .gloss-term,em .gloss-term{font-weight:inherit;font-style:inherit}.playground-launch-btn{color:#64748b;cursor:pointer;white-space:nowrap;background:#0f172a;border:1px solid #334155;border-radius:6px;flex-shrink:0;align-items:center;gap:5px;margin-left:10px;padding:4px 12px;font-family:inherit;font-size:11.5px;font-weight:600;transition:border-color .15s,color .15s,background .15s,box-shadow .15s;display:inline-flex}.playground-launch-btn:hover{color:#60a5fa;background:#1e3a5f;border-color:#3b82f6;box-shadow:0 0 8px #3b82f630}.playground{flex-direction:column;flex:1;height:100%;display:flex;overflow:hidden}.playground-header{background:#0f172a;border-bottom:1px solid #1e293b;flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;height:44px;padding:0 16px;display:flex}.playground-title-row{align-items:center;gap:8px;display:flex;overflow:hidden}.playground-icon{color:#f59e0b;flex-shrink:0;align-items:center;display:inline-flex}.playground-name{color:#f1f5f9;white-space:nowrap;font-size:14px;font-weight:700}.playground-hint{color:#475569;white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.playground-close{color:#64748b;cursor:pointer;background:0 0;border:1px solid #334155;border-radius:6px;flex-shrink:0;padding:4px 12px;font-family:inherit;font-size:12px;font-weight:600;transition:border-color .15s,color .15s}.playground-close:hover{color:#f87171;border-color:#ef4444}.playground-panels{flex-direction:column;flex:1;display:flex;overflow:hidden}.sidebar-footer{border-top:1px solid #1e293b;flex-shrink:0;padding:8px 10px}.sidebar-roadmap-btn{color:#64748b;cursor:pointer;background:0 0;border:1px solid #1e293b;border-radius:7px;justify-content:center;align-items:center;gap:8px;width:100%;padding:8px 10px;font-family:inherit;font-size:12.5px;font-weight:600;transition:border-color .15s,color .15s,background .15s;display:flex}.sidebar-roadmap-btn:hover{color:#60a5fa;background:#1e3a5f22;border-color:#3b82f6}.sidebar-roadmap-icon{align-items:center;line-height:0;display:inline-flex}.sidebar-roadmap-label{text-align:left;flex:1}.welcome-view-toggle{gap:6px;margin:0 48px 16px;display:flex}.welcome-toggle-btn{color:#475569;cursor:pointer;background:0 0;border:1px solid #1e293b;border-radius:7px;align-items:center;gap:5px;padding:6px 16px;font-family:inherit;font-size:12.5px;font-weight:600;transition:all .15s;display:inline-flex}.welcome-toggle-btn:hover{color:#94a3b8;border-color:#334155}.welcome-toggle-btn--active{color:#60a5fa;background:#1e3a5f;border-color:#3b82f6}.welcome-roadmap-wrap{background:#080d1a;border:1px solid #1e293b;border-radius:12px;flex-shrink:0;height:560px;margin:0 48px;position:relative;overflow:hidden}.welcome-roadmap-hint{color:#334155;text-align:center;margin:8px 48px 24px;font-size:11.5px}.welcome-sub-done{color:#22c55e;font-weight:600}.welcome-cat-done{color:#22c55e;background:#0d2d1a;border:1px solid #22c55e44;border-radius:99px;padding:1px 5px;font-size:10px;font-weight:600}.welcome-topic-link--done{color:#22c55e!important}.roadmap-modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#000000bf;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.roadmap-modal{background:#0a0f1e;border:1px solid #1e293b;border-radius:14px;flex-direction:column;width:100%;max-width:1100px;height:calc(100vh - 80px);display:flex;overflow:hidden;box-shadow:0 24px 80px #0009}.roadmap-modal-header{border-bottom:1px solid #1e293b;flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;height:52px;padding:0 20px;display:flex}.roadmap-modal-title-row{align-items:center;gap:10px;display:flex;overflow:hidden}.roadmap-modal-icon{flex-shrink:0;align-items:center;line-height:0;display:inline-flex}.roadmap-modal-title{color:#f1f5f9;white-space:nowrap;font-size:15px;font-weight:700}.roadmap-modal-hint{color:#475569;white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.roadmap-modal-close{color:#64748b;cursor:pointer;background:0 0;border:1px solid #334155;border-radius:6px;flex-shrink:0;padding:4px 12px;font-family:inherit;font-size:12px;font-weight:600;transition:border-color .15s,color .15s}.roadmap-modal-close:hover{color:#f87171;border-color:#ef4444}.roadmap-modal-body{background:#080d1a;flex:1;overflow:hidden}.react-flow__renderer{background:0 0}.react-flow__pane{cursor:grab}.react-flow__pane:active{cursor:grabbing}.react-flow__node{cursor:pointer}.react-flow__node.selected{box-shadow:none}.rn-handle{opacity:0!important;pointer-events:none!important;background:0 0!important;border:none!important;width:1px!important;min-width:0!important;height:1px!important;min-height:0!important}.rn{cursor:pointer;border:2px solid #0000;border-radius:10px;width:185px;font-family:Inter,system-ui,sans-serif;transition:transform .15s,box-shadow .15s,border-color .15s;position:relative}.rn:hover{z-index:10;transform:translateY(-2px);box-shadow:0 8px 24px #00000080}.rn--untouched{background:#2a3070;border-color:#3d4db0}.rn--untouched:hover{border-color:#6b7ce8}.rn--in-progress{background:#1c3b6e;border-color:#3b82f6;box-shadow:0 0 0 1px #3b82f633}.rn--in-progress:hover{border-color:#60a5fa;box-shadow:0 6px 20px #3b82f640}.rn--complete{background:#0d2d1a;border-color:#22c55e;box-shadow:0 0 0 1px #22c55e33}.rn--complete:hover{border-color:#4ade80;box-shadow:0 6px 20px #22c55e40}.rn-body{padding:10px 12px 9px}.rn-header{align-items:center;gap:6px;margin-bottom:8px;display:flex}.rn-emoji{flex-shrink:0;align-items:center;line-height:0;display:inline-flex}.rn-label{color:#f1f5f9;white-space:nowrap;text-overflow:ellipsis;letter-spacing:.1px;flex:1;font-size:12.5px;font-weight:700;overflow:hidden}.rn-count{color:#22c55e;background:#0d2d1a;border:1px solid #22c55e44;border-radius:99px;flex-shrink:0;padding:1px 5px;font-size:10px;font-weight:600}.rn-bar-track{background:#ffffff1a;border-radius:99px;height:4px;overflow:hidden}.rn-bar-fill{background:#22c55e;border-radius:99px;min-width:3px;height:100%;transition:width .4s}.rn--untouched .rn-bar-fill{background:#fff3}.rn-tooltip{z-index:9999;pointer-events:none;background:#0f172a;border:1px solid #334155;border-radius:10px;width:230px;padding:10px 12px;position:absolute;top:calc(100% + 10px);left:50%;transform:translate(-50%);box-shadow:0 8px 30px #0009}.rn-tooltip:before{content:"";background:#0f172a;border-top:1px solid #334155;border-left:1px solid #334155;width:10px;height:10px;position:absolute;top:-6px;left:50%;transform:translate(-50%)rotate(45deg)}.rn-tooltip-title{color:#94a3b8;text-transform:uppercase;letter-spacing:.8px;border-bottom:1px solid #1e293b;align-items:center;gap:6px;margin-bottom:8px;padding-bottom:6px;font-size:11px;font-weight:700;display:flex}.rn-tooltip-list{margin:0 0 8px;padding:0;list-style:none}.rn-tooltip-item{color:#94a3b8;align-items:center;gap:6px;padding:2px 0;font-size:11.5px;line-height:1.4;display:flex}.rn-tooltip-item--done{color:#4ade80}.rn-tooltip-check{color:#22c55e;flex-shrink:0;align-items:center;width:12px;line-height:0;display:inline-flex}.rn-tooltip-cta{color:#3b82f6;text-align:center;border-top:1px solid #1e293b;padding-top:6px;font-size:10.5px;font-weight:600}.mode-toggle{background:#0a0f1e;border:1px solid #1e293b;border-radius:8px;flex-shrink:0;gap:2px;margin:8px 10px 2px;padding:3px;display:flex}.mode-toggle-btn{cursor:pointer;color:#475569;letter-spacing:.2px;background:0 0;border:none;border-radius:6px;flex:1;padding:5px 0;font-family:inherit;font-size:12px;font-weight:600;transition:color .15s,background .15s}.mode-toggle-btn:hover{color:#94a3b8}.mode-toggle-btn--active{color:#e2e8f0;background:#1e293b}.sidebar-practice-cat-header{justify-content:space-between;align-items:center;padding:10px 12px 3px;display:flex}.sidebar-practice-footer{padding:4px}.sidebar-practice-footer-hint{color:#334155;text-align:center;font-size:10px;line-height:1.5;display:block}.practice-diff-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.practice-diff-dot--easy{background:#4ade80}.practice-diff-dot--medium{background:#fbbf24}.practice-diff-dot--hard{background:#f87171}.diff-badge{letter-spacing:.5px;border-radius:99px;flex-shrink:0;padding:2px 8px;font-size:10px;font-weight:700}.diff-badge--easy{color:#4ade80;background:#4ade8022;border:1px solid #4ade8044}.diff-badge--medium{color:#fbbf24;background:#fbbf2422;border:1px solid #fbbf2444}.diff-badge--hard{color:#f87171;background:#f8717122;border:1px solid #f8717144}.cat-badge{letter-spacing:.5px;color:#94a3b8;background:#1e293b;border:1px solid #334155;border-radius:99px;flex-shrink:0;padding:2px 8px;font-size:10px;font-weight:600}.practice-view{flex-direction:column;flex:1;height:100%;display:flex;overflow:hidden}.practice-header{background:#0f172a;border-bottom:1px solid #1e293b;flex-shrink:0;align-items:center;gap:8px;height:44px;padding:0 16px;display:flex}.pane-tabs{background:#0f172a;border-bottom:1px solid #1e293b;flex-shrink:0;gap:0;display:flex}.pane-tab{color:#475569;cursor:pointer;letter-spacing:.3px;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:5px;padding:7px 16px;font-family:inherit;font-size:11px;font-weight:600;transition:color .15s,border-color .15s;display:inline-flex}.pane-tab:hover{color:#94a3b8}.pane-tab--active{color:#a855f7;border-bottom-color:#a855f7}.practice-welcome{scrollbar-width:thin;scrollbar-color:#1e293b transparent;flex:1;padding:36px 44px 80px;overflow-y:auto}.pw-section{margin-bottom:36px}.pw-section-title{text-transform:uppercase;letter-spacing:1.2px;color:#475569;margin:0 0 14px;font-size:11px;font-weight:700}.pw-hero{background:#0f172a;border:1px solid #1e293b;border-radius:14px;margin-bottom:32px;padding:28px 28px 22px}.pw-hero-top{align-items:center;gap:10px;margin-bottom:20px;display:flex}.pw-hero-icon{color:#22d3ee;align-items:center;line-height:0;display:inline-flex}.pw-hero-heading{color:#f1f5f9;letter-spacing:-.3px;font-size:18px;font-weight:800}.pw-overall{margin-bottom:20px}.pw-overall-labels{justify-content:space-between;align-items:baseline;margin-bottom:8px;display:flex}.pw-overall-score{color:#f1f5f9;letter-spacing:-1px;font-size:32px;font-weight:800;line-height:1}.pw-overall-denom{color:#475569;font-size:18px;font-weight:500}.pw-overall-pct{color:#64748b;font-size:12px;font-weight:600}.pw-overall-track{background:#1e293b;border-radius:99px;height:8px;overflow:hidden}.pw-overall-fill{background:linear-gradient(90deg,#22c55e,#4ade80);border-radius:99px;min-width:4px;height:100%;transition:width .5s}.pw-chips{gap:10px;display:flex}.pw-chip{border:1px solid #1e293b;border-radius:10px;flex-direction:column;flex:1;align-items:center;gap:2px;padding:10px 8px;display:flex}.pw-chip-icon{align-items:center;line-height:0;display:flex}.pw-chip-num{font-size:20px;font-weight:800;line-height:1.1}.pw-chip-lbl{text-transform:uppercase;letter-spacing:.5px;opacity:.7;font-size:10px;font-weight:600}.pw-chip--solved{color:#22c55e;background:#0d1f12;border-color:#166534}.pw-chip--attempted{color:#f59e0b;background:#1f1a0e;border-color:#78350f}.pw-chip--unseen{color:#64748b;background:#0f172a;border-color:#1e293b}.pw-cat-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;display:grid}.pw-cat-card{background:#0f172a;border:1px solid #1e293b;border-radius:12px;flex-direction:column;gap:10px;padding:18px 18px 14px;transition:border-color .15s;display:flex}.pw-cat-card:hover{border-color:#334155}.pw-cat-top{align-items:center;gap:8px;display:flex}.pw-cat-emoji{align-items:center;line-height:0;display:flex}.pw-cat-name{color:#e2e8f0;flex:1;font-size:14px;font-weight:700}.pw-cat-fraction{color:#f1f5f9;font-size:16px;font-weight:800}.pw-cat-denom{color:#475569;font-size:12px;font-weight:500}.pw-cat-track{background:#1e293b;border-radius:99px;height:5px;overflow:hidden}.pw-cat-fill{background:linear-gradient(90deg,#3b82f6,#60a5fa);border-radius:99px;min-width:3px;height:100%;transition:width .5s}.pw-cat-footer{justify-content:space-between;align-items:center;display:flex}.pw-cat-wip{color:#f59e0b;font-size:11px;font-weight:500}.pw-cat-pct{color:#475569;margin-left:auto;font-size:11px;font-weight:600}.pw-cat-btn{color:#60a5fa;cursor:pointer;background:#0f2240;border:1px solid #1e3a5f;border-radius:7px;justify-content:center;align-items:center;gap:5px;width:100%;padding:7px;font-size:12px;font-weight:600;transition:background .15s,border-color .15s;display:inline-flex}.pw-cat-btn:hover{background:#1e3a5f;border-color:#3b82f6}.pw-diff-list{flex-direction:column;gap:10px;display:flex}.pw-diff-row{align-items:center;gap:12px;display:flex}.pw-diff-badge{text-align:center;flex-shrink:0;width:60px}.pw-diff-track{background:#1e293b;border-radius:99px;flex:1;height:7px;overflow:hidden}.pw-diff-fill{border-radius:99px;min-width:3px;height:100%;transition:width .5s}.pw-diff-fill--easy{background:linear-gradient(90deg,#16a34a,#22c55e)}.pw-diff-fill--medium{background:linear-gradient(90deg,#d97706,#f59e0b)}.pw-diff-fill--hard{background:linear-gradient(90deg,#dc2626,#ef4444)}.pw-diff-stat{color:#94a3b8;text-align:right;min-width:36px;font-size:13px;font-weight:700}.pw-diff-denom{color:#475569;font-weight:400}.pw-row3{grid-template-columns:1fr 1fr;align-items:stretch;gap:16px;display:grid}@media (width<=640px){.pw-row3{grid-template-columns:1fr}}.pw-next-card{background:#0f172a;border:1px solid #1e293b;border-radius:12px;flex-direction:column;gap:10px;padding:18px;display:flex}.pw-next-label{text-transform:uppercase;letter-spacing:1px;color:#3b82f6;align-items:center;gap:5px;font-size:10px;font-weight:700;display:flex}.pw-next-title{color:#f1f5f9;font-size:15px;font-weight:700;line-height:1.3}.pw-next-meta{align-items:center;gap:8px;display:flex}.pw-next-cat{color:#64748b;font-size:11px}.pw-next-btn{color:#60a5fa;cursor:pointer;background:#1e3a5f;border:none;border-radius:8px;align-self:flex-start;align-items:center;gap:6px;margin-top:auto;padding:8px 20px;font-size:13px;font-weight:700;transition:background .15s;display:inline-flex}.pw-next-btn:hover{color:#fff;background:#1d4ed8}.pw-next-done{color:#22c55e;padding:12px 0;font-size:15px;font-weight:600}.pw-recent-card{background:#0f172a;border:1px solid #1e293b;border-radius:12px;flex-direction:column;gap:10px;padding:18px;display:flex}.pw-recent-label{text-transform:uppercase;letter-spacing:1px;color:#22c55e;font-size:10px;font-weight:700}.pw-recent-list{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.pw-recent-item{cursor:pointer;text-align:left;background:0 0;border:none;border-radius:6px;align-items:center;gap:8px;width:100%;padding:6px 8px;transition:background .12s;display:flex}.pw-recent-item:hover{background:#1e293b}.pw-recent-check{color:#22c55e;flex-shrink:0;font-size:11px;font-weight:700}.pw-recent-name{color:#94a3b8;text-align:left;white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:12.5px;overflow:hidden}.pw-recent-time{color:#334155;flex-shrink:0;font-size:10px}.pw-recent-empty{color:#334155;padding:8px 0;font-size:12.5px}.practice-how{background:#0f172a;border:1px solid #1e293b;border-radius:12px;max-width:480px;margin:0 auto 48px;padding:20px 24px}.practice-section-title{text-transform:uppercase;letter-spacing:1.2px;color:#475569;margin:0 0 16px;font-size:13px;font-weight:700}.practice-steps{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.practice-steps li{color:#94a3b8;align-items:center;gap:12px;font-size:14px;line-height:1.5;display:flex}.practice-steps strong{color:#e2e8f0}.practice-step-num{color:#60a5fa;background:#1e3a5f;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:11px;font-weight:700;display:flex}.practice-categories{flex-direction:column;gap:40px;display:flex}.practice-cat-section .practice-section-title{margin-bottom:16px}.practice-question-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;display:grid}.practice-question-card{text-align:left;cursor:pointer;background:#0f172a;border:1px solid #1e293b;border-radius:10px;padding:14px 16px;font-family:inherit;transition:border-color .15s,background .15s,transform .1s}.practice-question-card:hover{background:#111827;border-color:#334155;transform:translateY(-1px)}.practice-qcard-top{margin-bottom:8px}.practice-qcard-title{color:#e2e8f0;font-size:13px;font-weight:600;line-height:1.4}.test-toolbar{background:#0f172a;border-bottom:1px solid #1e293b;flex-shrink:0;align-items:center;gap:10px;padding:6px 12px;display:flex}.run-tests-btn{color:#4ade80;cursor:pointer;letter-spacing:.3px;background:#0d2d1a;border:1px solid #22c55e66;border-radius:6px;align-items:center;gap:5px;padding:4px 14px;font-family:inherit;font-size:11.5px;font-weight:700;transition:background .15s,border-color .15s,box-shadow .15s;display:inline-flex}.run-tests-btn:hover{background:#14391f;border-color:#22c55e;box-shadow:0 0 8px #22c55e30}.test-toolbar-hint{color:#334155;font-size:11px}.test-idle-prompt{text-align:center;color:#475569;flex:1;justify-content:center;align-items:center;padding:24px;font-size:13px;line-height:1.6;display:flex}.test-idle-prompt strong{color:#22c55e;font-weight:600}.practice-num-badge{letter-spacing:0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:20px;min-width:20px;height:20px;font-size:10px;font-weight:700;line-height:1;display:inline-flex}.practice-num-badge--unseen{color:#475569;background:#1e293b;border:1px solid #334155}.practice-num-badge--attempted{color:#f59e0b;background:#1f1a0e;border:1px solid #78350f;box-shadow:0 0 5px #f59e0b22}.practice-num-badge--solved{color:#22c55e;background:#0d1f12;border:1px solid #166534;box-shadow:0 0 6px #22c55e33}.completion-overlay{z-index:400;cursor:pointer;background:#0000008c;justify-content:center;align-items:center;animation:.25s overlayFadeIn;display:flex;position:fixed;inset:0}@keyframes overlayFadeIn{0%{opacity:0}to{opacity:1}}.completion-card{background:#0f172a;border:1px solid #22c55e55;border-radius:16px;flex-direction:column;align-items:center;gap:12px;padding:40px 56px;animation:.35s cubic-bezier(.34,1.56,.64,1) cardPop;display:flex;box-shadow:0 0 60px #22c55e22,0 20px 60px #0009}@keyframes cardPop{0%{opacity:0;transform:scale(.75)}to{opacity:1;transform:scale(1)}}.completion-check{color:#fff;background:linear-gradient(135deg,#16a34a,#22c55e);border-radius:50%;justify-content:center;align-items:center;width:72px;height:72px;animation:.5s cubic-bezier(.34,1.56,.64,1) .1s both checkBounce;display:flex;box-shadow:0 0 32px #22c55e55}@keyframes checkBounce{0%{transform:scale(0)}to{transform:scale(1)}}.completion-title{color:#22c55e;letter-spacing:.3px;font-size:22px;font-weight:700}.completion-subtitle{color:#64748b;font-size:14px}.reveal-solution-btn{color:#a78bfa;cursor:pointer;letter-spacing:.2px;white-space:nowrap;background:#1e1b4b;border:1px solid #7c3aed55;border-radius:6px;align-items:center;gap:5px;padding:3px 10px;font-size:11px;font-weight:600;transition:background .15s,border-color .15s,box-shadow .15s;display:inline-flex}.reveal-solution-btn:hover{background:#2e1d6e;border-color:#a78bfa;box-shadow:0 0 8px #7c3aed44}.solution-drawer-backdrop{z-index:200;background:#00000073;animation:.18s fadeIn;position:fixed;inset:0}.solution-drawer{z-index:201;background:#0f172a;border-left:1px solid #1e293b;flex-direction:column;width:520px;max-width:90vw;height:100vh;animation:.22s slideInRight;display:flex;position:fixed;top:0;right:0;box-shadow:-8px 0 32px #00000080}@keyframes slideInRight{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.solution-drawer-header{background:#0a0f1e;border-bottom:1px solid #1e293b;flex-shrink:0;justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.solution-drawer-title{color:#a78bfa;letter-spacing:.3px;align-items:center;gap:5px;font-size:14px;font-weight:700;display:inline-flex}.solution-drawer-close{color:#475569;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 6px;font-size:16px;line-height:1;transition:color .15s,background .15s}.solution-drawer-close:hover{color:#e2e8f0;background:#1e293b}.solution-drawer-body{flex:1;padding:18px;overflow-y:auto}.solution-drawer-code{color:#e2e8f0;white-space:pre;tab-size:2;background:#0a0f1e;border:1px solid #1e293b;border-radius:8px;margin:0;padding:16px 18px;font-family:Fira Code,Cascadia Code,JetBrains Mono,Menlo,monospace;font-size:12.5px;line-height:1.7;overflow-x:auto}.practice-filters{border-bottom:1px solid #1e293b;flex-direction:column;flex-shrink:0;gap:5px;padding:6px 10px 4px;display:flex}.practice-filter-status{gap:3px;display:flex}.practice-filter-status-btn{text-transform:uppercase;letter-spacing:.4px;color:#475569;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:5px;flex-direction:column;flex:1;align-items:center;gap:1px;padding:4px 2px;font-size:9px;font-weight:600;line-height:1;transition:background .15s,color .15s,border-color .15s;display:flex}.practice-filter-count{letter-spacing:0;text-transform:none;color:inherit;opacity:.8;font-size:11px;font-weight:700}.practice-filter-status-btn:hover{color:#94a3b8;background:#1e293b}.practice-filter-status-btn--all.practice-filter-status-btn--active{color:#e2e8f0;background:#1e293b;border-color:#334155}.practice-filter-status-btn--unseen.practice-filter-status-btn--active{color:#94a3b8;background:#1c2533;border-color:#334155}.practice-filter-status-btn--attempted.practice-filter-status-btn--active{color:#f59e0b;background:#1f1a0e;border-color:#78350f}.practice-filter-status-btn--solved.practice-filter-status-btn--active{color:#22c55e;background:#0d1f12;border-color:#166534}.practice-filter-diff{gap:4px;display:flex}.practice-filter-diff-chip{color:#334155;cursor:pointer;opacity:.45;background:0 0;border:1px solid #1e293b;border-radius:5px;flex:1;justify-content:center;align-items:center;gap:4px;padding:3px 4px;font-size:10px;font-weight:600;transition:background .15s,border-color .15s,color .15s,opacity .15s;display:flex}.practice-filter-diff-chip--on{opacity:1}.practice-filter-diff-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.practice-filter-diff-chip--easy .practice-filter-diff-dot{background:#22c55e}.practice-filter-diff-chip--easy.practice-filter-diff-chip--on{color:#22c55e;background:#0d1f12;border-color:#166534}.practice-filter-diff-chip--medium .practice-filter-diff-dot{background:#f59e0b}.practice-filter-diff-chip--medium.practice-filter-diff-chip--on{color:#f59e0b;background:#1f1a0e;border-color:#78350f}.practice-filter-diff-chip--hard .practice-filter-diff-dot{background:#ef4444}.practice-filter-diff-chip--hard.practice-filter-diff-chip--on{color:#ef4444;background:#1f0d0d;border-color:#7f1d1d}.hints-panel{margin-top:8px;padding-bottom:16px}.hints-divider{background:#1e293b;height:1px;margin-bottom:16px}.hints-list{flex-direction:column;gap:10px;margin-bottom:14px;display:flex}.hint-item{background:#0f172a;border:1px solid #1e293b;border-left:3px solid #7c3aed;border-radius:6px;padding:10px 12px;animation:.25s hintReveal}@keyframes hintReveal{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.hint-label{text-transform:uppercase;letter-spacing:.8px;color:#7c3aed;margin-bottom:5px;font-size:10px;font-weight:700}.hint-text{color:#94a3b8;white-space:pre-wrap;margin:0;font-family:inherit;font-size:12.5px;line-height:1.6}.hint-get-btn{color:#a78bfa;cursor:pointer;letter-spacing:.2px;background:0 0;border:1px dashed #4c1d95;border-radius:7px;justify-content:center;align-items:center;gap:6px;width:100%;padding:8px 14px;font-size:12px;font-weight:600;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.hint-get-btn:hover{color:#c4b5fd;background:#1e1b4b;border-style:solid;border-color:#7c3aed}.hint-solution-btn{color:#a78bfa;cursor:pointer;letter-spacing:.2px;background:#1e1b4b;border:1px solid #7c3aed55;border-radius:7px;justify-content:center;align-items:center;gap:6px;width:100%;padding:8px 14px;font-size:12px;font-weight:600;transition:background .15s,border-color .15s,box-shadow .15s;display:inline-flex}.hint-solution-btn:hover{background:#2e1d6e;border-color:#a78bfa;box-shadow:0 0 10px #7c3aed44}.completion-xp{color:#fbbf24;letter-spacing:-.5px;margin:4px 0 2px;font-size:28px;font-weight:800;animation:.4s cubic-bezier(.34,1.56,.64,1) both xp-pop}@keyframes xp-pop{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}.completion-streak{color:#fb923c;align-items:center;gap:5px;margin-bottom:4px;font-size:15px;font-weight:600;display:flex}.sidebar-xp-block{background:#0f1f3d;border-bottom:1px solid #1e293b;padding:10px 12px 8px}.sidebar-xp-top{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.sidebar-xp-level{color:#93c5fd;letter-spacing:.2px;align-items:center;gap:4px;font-size:11.5px;font-weight:700;display:inline-flex}.sidebar-xp-streak{color:#fb923c;background:#431407;border-radius:20px;align-items:center;gap:3px;padding:2px 7px;font-size:11px;font-weight:600;display:inline-flex}.sidebar-xp-bar-track{background:#1e3a5f;border-radius:999px;height:5px;margin-bottom:4px;overflow:hidden}.sidebar-xp-bar-fill{background:linear-gradient(90deg,#3b82f6,#60a5fa);border-radius:999px;height:100%;transition:width .5s}.sidebar-xp-label{color:#64748b;text-align:right;font-size:10px}.pw-hero-body{flex-direction:column;gap:24px;display:flex}@media (width>=800px){.pw-hero-body{flex-direction:row;align-items:flex-start;gap:40px}.pw-hero-progress{flex:1;min-width:0}.pw-hero-xp{flex-shrink:0;width:260px}}.pw-hero-xp{flex-direction:column;gap:10px;display:flex}.pw-xp-level-badge{color:#93c5fd;white-space:nowrap;background:#1e3a5f;border:1px solid #3b82f633;border-radius:20px;align-items:center;gap:5px;padding:4px 12px;font-size:14px;font-weight:700;display:inline-flex}.pw-xp-streak{color:#fb923c;white-space:nowrap;align-items:center;gap:4px;font-size:13px;font-weight:600;display:inline-flex}.pw-xp-streak-best{color:#9ca3af;font-size:11px;font-weight:400}.pw-xp-bar-track{background:#1e3a5f;border-radius:999px;height:7px;margin-bottom:5px;overflow:hidden}.pw-xp-bar-fill{background:linear-gradient(90deg,#3b82f6,#60a5fa);border-radius:999px;height:100%;transition:width .6s}.pw-xp-label{color:#64748b;text-align:right;font-size:11px}.pw-row2{grid-template-columns:1fr 1fr;align-items:stretch;gap:16px;display:grid}@media (width<=640px){.pw-row2{grid-template-columns:1fr}}.pw-section-card{background:#0a0f1e;border:1px solid #1e293b;border-radius:12px;flex-direction:column;padding:18px;display:flex}.pw-diff-card{background:#0f172a;border:1px solid #1e293b;border-radius:12px;flex-direction:column;padding:18px;display:flex}.auth-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#0009;justify-content:center;align-items:center;padding:132px 16px 28px;display:flex;position:fixed;inset:0}.auth-modal{background:radial-gradient(circle at 50% -8%,#5b8cff42,#0000 38%),linear-gradient(#222a3c 0%,#1a2130 100%);border:1px solid #7289ae61;border-radius:24px;width:100%;max-width:420px;position:relative;overflow:visible;box-shadow:0 28px 80px #0000008c,0 0 42px #3b82f61f}.auth-character{--eye-y:8px;pointer-events:none;z-index:2;filter:drop-shadow(0 18px 24px #0000003d);width:184px;height:166px;position:absolute;top:-118px;left:50%;transform:translate(-50%)}.auth-character__halo{filter:blur(1px);background:#60a5fa2e;border-radius:999px;height:30px;position:absolute;bottom:10px;left:31px;right:31px}.auth-character__head{z-index:3;background:#ffd9c2;border:1px solid #ffebdde6;border-radius:50% 50% 46% 46%;width:100px;height:94px;position:absolute;top:25px;left:42px;overflow:hidden}.auth-character__face-mask{z-index:1;background:#ffd9c2;border-radius:40px 40px 44px 44px;width:78px;height:68px;position:absolute;top:28px;left:11px}.auth-character__hair-cap{z-index:2;background:#121a2a;border-radius:50% 50% 38% 38%;width:106px;height:54px;position:absolute;top:-11px;left:-3px}.auth-character__hair-shine{z-index:3;background:#4b5b7ba6;border-radius:999px;width:22px;height:8px;position:absolute;top:10px;left:29px}.auth-character__hair{z-index:1;background:#111827;border-radius:50%;width:34px;height:34px;position:absolute;top:39px}.auth-character__hair--left{left:31px}.auth-character__hair--right{right:31px}.auth-character__clip{clip-path:polygon(48% 0,100% 0,66% 42%,100% 42%,35% 100%,54% 55%,16% 55%);z-index:4;background:#facc15;width:14px;height:18px;position:absolute;top:10px;right:18px;transform:rotate(12deg)}.auth-character__eye,.auth-character__closed-eye{z-index:5;transition:opacity .18s,transform .22s;position:absolute}.auth-character__eye{background:#fff;border-radius:50%;width:25px;height:29px;top:44px;box-shadow:inset 0 -2px #1e3a8a14}.auth-character__eye--left{left:24px}.auth-character__eye--right{right:24px}.auth-character__eye span{left:8px;top:var(--eye-y);background:#172554;border-radius:50%;width:12px;height:12px;transition:top .22s;position:absolute;box-shadow:inset 4px 3px #0b1020,-2px -2px #fff}.auth-character__closed-eye{opacity:0;border-bottom:3px solid #6b3f2d94;border-radius:0 0 999px 999px;width:24px;height:11px;top:58px}.auth-character__closed-eye--left{left:25px}.auth-character__closed-eye--right{right:25px}.auth-character__blush{z-index:5;background:#fb71856b;border-radius:50%;width:18px;height:10px;position:absolute;top:66px}.auth-character__blush--left{left:21px}.auth-character__blush--right{right:21px}.auth-character__smile{z-index:5;border-bottom:2px solid #8a4b34d9;border-radius:0 0 999px 999px;width:18px;height:10px;transition:opacity .18s,transform .18s;position:absolute;top:78px;left:41px}.auth-character__body{z-index:2;background:#5b8cff;border:1px solid #a7c4ffa6;border-radius:28px 28px 24px 24px;width:94px;height:48px;position:absolute;top:111px;left:45px}.auth-character__hood{z-index:3;background:#2563eb;border-radius:999px;width:54px;height:22px;position:absolute;top:123px;left:65px}.auth-character__arm,.auth-character__hand{opacity:0;z-index:6;transition:opacity .18s,transform .24s;position:absolute}.auth-character__arm{transform-origin:top;background:#3b82f6;border-radius:999px;width:12px;height:55px;top:110px}.auth-character__arm--left{left:52px;transform:rotate(28deg)translateY(16px)}.auth-character__arm--right{right:52px;transform:rotate(-28deg)translateY(16px)}.auth-character__hand{background:#ffd9c2;border:1px solid #f4b99bcc;border-radius:50%;width:39px;height:30px;top:67px}.auth-character__hand--left{left:55px;transform:translate(-8px,10px)rotate(-8deg)}.auth-character__hand--right{right:55px;transform:translate(8px,10px)rotate(8deg)}.auth-character__spark{opacity:0;border-radius:50%;transition:opacity .2s,transform .2s;position:absolute;transform:scale(.75)}.auth-character__spark--left{background:#facc15;width:10px;height:10px;top:67px;left:18px}.auth-character__spark--right{background:#a7f3d0;width:8px;height:8px;top:58px;right:18px}.auth-character--email{--eye-y:13px}.auth-character--signup{--eye-y:9px}.auth-character--signup .auth-character__spark{opacity:1;transform:scale(1)}:is(.auth-character--password .auth-character__eye,.auth-modal:has(.auth-form-group--password:focus-within) .auth-character__eye){opacity:0;transform:translateY(4px)scaleY(.55)}:is(.auth-character--password .auth-character__closed-eye,.auth-modal:has(.auth-form-group--password:focus-within) .auth-character__closed-eye),:is(.auth-character--password .auth-character__arm,.auth-character--password .auth-character__hand,.auth-modal:has(.auth-form-group--password:focus-within) .auth-character__arm,.auth-modal:has(.auth-form-group--password:focus-within) .auth-character__hand){opacity:1}:is(.auth-character--password .auth-character__arm--left,.auth-modal:has(.auth-form-group--password:focus-within) .auth-character__arm--left){transform:rotate(35deg)translateY(-24px)}:is(.auth-character--password .auth-character__arm--right,.auth-modal:has(.auth-form-group--password:focus-within) .auth-character__arm--right){transform:rotate(-35deg)translateY(-24px)}:is(.auth-character--password .auth-character__hand--left,.auth-modal:has(.auth-form-group--password:focus-within) .auth-character__hand--left){transform:translate(3px,-5px)rotate(-8deg)}:is(.auth-character--password .auth-character__hand--right,.auth-modal:has(.auth-form-group--password:focus-within) .auth-character__hand--right){transform:translate(-3px,-5px)rotate(8deg)}:is(.auth-character--password .auth-character__smile,.auth-modal:has(.auth-form-group--password:focus-within) .auth-character__smile){transform:translateY(3px)scaleX(.72)}.auth-modal-header{border-bottom:1px solid #2d3748c7;align-items:center;gap:8px;padding:58px 24px 16px;display:flex}.auth-modal-logo{color:#f59e0b;align-items:center;display:inline-flex}.auth-modal-title{color:#f1f5f9;flex:1;font-size:16px;font-weight:700}.auth-modal-close{cursor:pointer;color:#64748b;background:0 0;border:none;border-radius:6px;padding:4px 8px;font-size:16px;line-height:1;transition:color .15s,background .15s}.auth-modal-close:hover{color:#f1f5f9;background:#2d3748}.auth-tabs{background:#111827;border:1px solid #2d3748e6;border-radius:13px;margin:0 20px;padding:4px;display:flex}.auth-tab{cursor:pointer;color:#64748b;background:0 0;border:none;border-radius:10px;flex:1;padding:12px;font-size:13px;font-weight:600;transition:color .15s,background .15s,box-shadow .15s}.auth-tab:hover{color:#94a3b8}.auth-tab--active{color:#bfdbfe;background:#23385f;box-shadow:inset 0 0 0 1px #60a5fa6b}.auth-modal-body{flex-direction:column;gap:14px;padding:20px 24px 24px;display:flex}.auth-modal-body form{flex-direction:column;gap:12px;display:flex}.auth-notice{color:#93c5fd;background:#1e3a5f;border:1px solid #2563eb;border-radius:8px;padding:10px 12px;font-size:12px;line-height:1.5}.auth-notice code{background:#0f2547;border-radius:4px;padding:1px 5px;font-family:monospace}.auth-btn-google{color:#1a1a1a;cursor:pointer;background:#fff;border:none;border-radius:12px;justify-content:center;align-items:center;gap:10px;width:100%;padding:10px 16px;font-size:14px;font-weight:500;transition:background .15s,box-shadow .15s;display:flex}.auth-btn-google:hover:not(:disabled){background:#f5f5f5;box-shadow:0 1px 4px #0003}.auth-btn-google:disabled{opacity:.5;cursor:not-allowed}.auth-divider{color:#4b5563;align-items:center;gap:12px;font-size:12px;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:#2d3748;flex:1;height:1px}.auth-form-group{flex-direction:column;gap:6px;display:flex}.auth-form-label{color:#94a3b8;font-size:12px;font-weight:500}.auth-form-input{color:#f1f5f9;box-sizing:border-box;background:#0f172a;border:1px solid #2d3748;border-radius:11px;outline:none;width:100%;padding:11px 13px;font-size:14px;transition:border-color .15s,box-shadow .15s,background .15s}.auth-form-input:focus{background:#0b1220;border-color:#60a5fa;box-shadow:0 0 0 3px #3b82f633,0 0 18px #60a5fa33}.auth-form-input:disabled{opacity:.5;cursor:not-allowed}.auth-msg{border-radius:7px;padding:9px 12px;font-size:13px;line-height:1.4}.auth-msg--error{color:#fca5a5;background:#450a0a;border:1px solid #991b1b}.auth-msg--success{color:#86efac;background:#052e16;border:1px solid #166534}.auth-btn-primary{color:#fff;cursor:pointer;background:linear-gradient(135deg,#60a5fa 0%,#4f7df3 100%);border:none;border-radius:12px;width:100%;margin-top:2px;padding:12px 16px;font-size:14px;font-weight:600;transition:transform .15s,filter .15s,box-shadow .15s;box-shadow:0 14px 28px #3b82f63d}.auth-btn-primary:hover:not(:disabled){filter:brightness(1.04);transform:translateY(-1px)}.auth-btn-primary:disabled{opacity:.5;cursor:not-allowed}.auth-switch{text-align:center;color:#64748b;font-size:12px}.auth-switch-link{cursor:pointer;color:#3b82f6;background:0 0;border:none;padding:0;font-size:12px;text-decoration:underline}.auth-switch-link:hover{color:#60a5fa}.sidebar-auth{border-top:1px solid #1e293b;flex-direction:column;gap:6px;padding:10px 8px;display:flex}.sidebar-auth-email{align-items:center;gap:8px;padding:4px 6px;display:flex}.sidebar-auth-avatar{color:#fff;background:#3b82f6;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-size:11px;font-weight:700;display:flex}.sidebar-auth-email-text{color:#64748b;text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:11px;overflow:hidden}.sidebar-auth-signout{color:#64748b;cursor:pointer;background:0 0;border:1px solid #2d3748;border-radius:6px;align-items:center;gap:6px;width:100%;padding:6px 10px;font-size:12px;transition:color .15s,border-color .15s;display:flex}.sidebar-auth-signout:hover{color:#94a3b8;border-color:#4b5563}.sidebar-auth-signin{color:#60a5fa;cursor:pointer;background:0 0;border:1px solid #2563eb;border-radius:6px;align-items:center;gap:6px;width:100%;padding:7px 10px;font-size:12px;transition:background .15s,color .15s;display:flex}.sidebar-auth-signin:hover{color:#93c5fd;background:#3b82f614}.completion-nudge{background:#3b82f614;border:1px solid #3b82f640;border-radius:8px;align-items:center;gap:8px;margin-top:16px;padding:10px 14px;font-size:13px;display:flex}.completion-nudge-icon{flex-shrink:0;font-size:16px}.completion-nudge-text{color:#94a3b8;text-align:left;flex:1}.completion-nudge-btn{color:#fff;cursor:pointer;white-space:nowrap;background:#3b82f6;border:none;border-radius:6px;flex-shrink:0;padding:5px 12px;font-size:12px;font-weight:600;transition:background .15s}.completion-nudge-btn:hover{background:#2563eb}.completion-dismiss-btn{cursor:pointer;color:#4b5563;background:0 0;border:none;border-radius:4px;padding:4px;font-size:14px;line-height:1;transition:color .15s;position:absolute;top:10px;right:12px}.completion-dismiss-btn:hover{color:#94a3b8}.completion-card{position:relative}.pw-nudge-banner{background:#3b82f612;border:1px solid #3b82f633;border-radius:10px;align-items:center;gap:10px;margin-bottom:4px;padding:12px 16px;display:flex}.pw-nudge-icon{flex-shrink:0;font-size:18px}.pw-nudge-text{color:#94a3b8;flex:1;font-size:13px}.pw-nudge-btn{color:#fff;cursor:pointer;white-space:nowrap;background:#3b82f6;border:none;border-radius:7px;flex-shrink:0;padding:7px 14px;font-size:13px;font-weight:600;transition:background .15s}.pw-nudge-btn:hover{background:#2563eb}
