:root{font-family:var(--font-sans);font-size:16px;line-height:1.6;font-weight:400;--text-xs: .8125rem;--text-sm: .9375rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--leading-tight: 1.35;--leading-snug: 1.5;--leading-normal: 1.6;--leading-relaxed: 1.75;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#1c1917;background-color:#faf6f2;--bg: #faf6f2;--bg-accent: #f5e8dc;--surface-muted: #f8f5f0;--border: #ddd4cc;--text: #1c1917;--text-heading: #334155;--text-muted: #5c4f44;--text-faint: #8b7355;--primary: #ea580c;--primary-strong: #c2410c;--primary-contrast: #fafaf9;--shadow: 0 8px 24px rgba(28, 25, 23, .08);--logo-fill: #111827;--surface: #fcfbfa;--white-soft: #fafaf9;--black-soft: #18181b;--font-brand: "DM Sans", Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-sans: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--glass-bg: rgba(255, 255, 255, .72);--glass-bg-strong: rgba(255, 255, 255, .92);--glass-border: rgba(28, 25, 23, .1);--glass-shadow: 0 4px 20px rgba(28, 25, 23, .07), 0 1px 3px rgba(28, 25, 23, .05);--hover-border-width: 2px;--hover-glow: 0 0 14px color-mix(in srgb, var(--primary) 28%, transparent);--canvas-bg: #faf6f2;--canvas-bg-accent: #f5e8dc;--canvas-accent: var(--primary);--code-bg: #f5f0eb;--code-text: #1c1917;--code-prompt: #6b5b4f;--code-border: #e8e0d8;--success: var(--primary);--accent-green: #16a34a;--accent-green-muted: rgba(22, 163, 74, .12);--accent-amber: #d97706;--accent-amber-muted: rgba(217, 119, 6, .12);--accent-blue: #2563eb;--accent-blue-muted: rgba(37, 99, 235, .1);--accent-purple: #7c3aed;--accent-purple-muted: rgba(124, 58, 237, .1)}:root[data-theme=dark]{color:#e2e8f0;background-color:#0c1322;--bg: #0c1322;--bg-accent: #111827;--surface: #1a2332;--surface-muted: #151c28;--border: #2d3a4f;--text: #e2e8f0;--text-heading: #cbd5e1;--text-muted: #94a3b8;--text-faint: #64748b;--primary: #60a5fa;--primary-strong: #3b82f6;--primary-contrast: #0f172a;--shadow: 0 14px 30px rgba(0, 0, 0, .4);--logo-fill: #e2e8f0;--white-soft: #f1f5f9;--black-soft: #0f172a;--glass-bg: rgba(26, 35, 50, .7);--glass-bg-strong: rgba(30, 41, 59, .9);--glass-border: rgba(255, 255, 255, .06);--glass-shadow: 0 8px 32px rgba(0, 0, 0, .35);--canvas-bg: var(--bg);--canvas-bg-accent: var(--bg-accent);--canvas-accent: var(--primary);--code-bg: #0f172a;--code-text: #e2e8f0;--code-prompt: #94a3b8;--code-border: #334155;--success: #34d399;--accent-green: #4ade80;--accent-green-muted: rgba(74, 222, 128, .14);--accent-amber: #fbbf24;--accent-amber-muted: rgba(251, 191, 36, .14);--accent-blue: #60a5fa;--accent-blue-muted: rgba(96, 165, 250, .12);--accent-purple: #a78bfa;--accent-purple-muted: rgba(167, 139, 250, .12)}@supports not (backdrop-filter: blur(1px)) and not (-webkit-backdrop-filter: blur(1px)){:root{--glass-bg: rgba(255, 255, 255, .92);--glass-bg-strong: rgba(255, 255, 255, .98)}:root[data-theme=dark]{--glass-bg: rgba(26, 35, 50, .95);--glass-bg-strong: rgba(30, 41, 59, .98)}}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100dvh;font-size:var(--text-base);line-height:var(--leading-normal);color:var(--text);background:var(--bg);transition:background-color .18s ease,color .18s ease}h1,h2,h3,h4{line-height:var(--leading-tight);letter-spacing:-.01em}p{margin:0 0 .75em}p:last-child{margin-bottom:0}a{color:inherit;text-decoration:none}#root{width:100%}.logo{display:inline-flex;align-items:center;gap:.5rem;color:var(--logo-fill);text-decoration:none}.logo-mark{fill:var(--logo-fill);flex-shrink:0;opacity:.85}.logo-text{font-family:var(--font-brand);font-weight:500;font-size:1.05rem;color:var(--text-muted);letter-spacing:.02em}.app-shell{position:relative;z-index:1;height:100dvh;display:grid;grid-template-rows:auto 1fr;row-gap:.65rem;overflow:hidden;padding:.75rem 1.35rem 0}.app-shell--loading{place-items:center;align-content:center}.loading-dots{display:flex;gap:.4rem;padding:.5rem}.loading-dots span{width:8px;height:8px;border-radius:50%;background:var(--primary);opacity:.5;animation:loading-dots-bounce .6s ease-in-out infinite alternate}.loading-dots span:nth-child(2){animation-delay:.1s}.loading-dots span:nth-child(3){animation-delay:.2s}@keyframes loading-dots-bounce{to{opacity:1;transform:scale(1.15)}}.topbar{display:grid;grid-template-columns:1fr auto 1fr;gap:.85rem;align-items:center;padding-bottom:.6rem;border-bottom:1px solid var(--border)}.topbar-brand{justify-self:start;display:flex;align-items:center;gap:.6rem;min-width:0}.topbar .nav{justify-self:center}.topbar-brand .logo{margin-bottom:0;flex-shrink:0}.topbar-brand .logo-text{font-size:1.1rem;font-weight:500;color:var(--text-muted)}.topbar-title{margin:0;font-family:var(--font-brand);font-size:clamp(.9rem,1.3vw,1.05rem);font-weight:500;color:var(--text-muted);letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar-meta{justify-self:end;display:flex;gap:.5rem;align-items:center;flex-shrink:0}.topbar-stats{display:flex;gap:.4rem;align-items:center}.stat-card{padding:.3rem .6rem;border:1px solid var(--glass-border);border-radius:10px;background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);display:flex;align-items:center;gap:.35rem;white-space:nowrap}.topbar-stats span{color:var(--text-muted);font-size:.78rem}.topbar-stats strong{font-size:.85rem}.header-menu{position:relative}.header-menu[open] .header-menu-trigger{border-color:var(--primary)}.header-menu summary{list-style:none}.header-menu summary::-webkit-details-marker{display:none}.header-menu-trigger{border:1px solid var(--glass-border);background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:var(--text);border-radius:10px;width:2rem;height:2rem;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-size:.92rem}.header-menu-panel{position:absolute;right:0;top:2.45rem;min-width:200px;border:1px solid var(--glass-border);border-radius:12px;background:var(--glass-bg-strong);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:var(--glass-shadow);padding:.3rem;display:grid;gap:.2rem;z-index:20}.header-menu-item{border:1px solid transparent;background:transparent;color:var(--text);border-radius:8px;padding:.45rem .55rem;text-align:left;cursor:pointer;font-size:.9rem}.header-menu-item:hover{border-color:var(--border);background:var(--surface-muted);box-shadow:0 0 10px color-mix(in srgb,var(--border) 40%,transparent)}.nav{display:flex;gap:.3rem;overflow-x:auto;flex-shrink:0}.nav-link{border:1px solid var(--glass-border);background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:var(--text);border-radius:999px;padding:.38rem .85rem;font-size:var(--text-sm);font-weight:600;white-space:nowrap;transition:all .12s ease}.nav-link:hover{background:var(--glass-bg-strong);border-color:color-mix(in srgb,var(--primary) 50%,var(--glass-border))}.nav-link.active{background:var(--primary);border-color:var(--primary);color:var(--primary-contrast)}.page-wrap{overflow:hidden;min-height:0}@media(max-width:1024px){.app-shell{padding:.6rem .85rem 0;row-gap:.5rem}.page-wrap{overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;padding-bottom:calc(1rem + env(safe-area-inset-bottom))}.browse-topbar{padding:.65rem 1rem}.browse-main{padding-bottom:calc(2rem + env(safe-area-inset-bottom))}.browse-content{padding-top:1rem}}.page-wrap--loading{display:flex;flex-direction:column;min-height:40vh}.page-loading-skeleton{display:flex;flex-direction:column;flex:1}.learn-loading-shell .page-wrap--loading{display:flex;flex-direction:column;min-height:0;flex:1}.learn-loading-shell .learn-loading-bento{flex:1;min-height:0}.learn-loading-topbar .skeleton-line{border-radius:6px}.learn-skeleton-logo{width:1.5rem;height:1.5rem;flex-shrink:0}.learn-skeleton-title{width:8rem;height:1.05rem;flex-shrink:0}.learn-skeleton-nav{width:12rem;height:1.75rem}.learn-skeleton-stat{width:4rem;height:1.5rem;border-radius:10px}.learn-loading-bento{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto 1fr;gap:.85rem;height:100%;min-height:0;padding-bottom:.65rem}.learn-loading-top{grid-column:1 / -1;display:grid;grid-template-columns:1fr 1fr;gap:.85rem;min-height:420px}.learn-loading-card{display:flex;flex-direction:column;gap:.75rem}.learn-loading-card .skeleton-line{border-radius:6px}.learn-skeleton-eyebrow{width:40%;height:.8rem}.learn-skeleton-hero{width:4rem;height:2.5rem;align-self:center}.learn-skeleton-subtitle{width:60%;height:.9rem;align-self:center}.learn-skeleton-bar{width:100%;height:.5rem;border-radius:4px}.learn-skeleton-card-title{width:90%;height:1.25rem}.learn-skeleton-desc{width:100%;height:.9rem}.learn-skeleton-cta{width:100%;height:2.5rem;border-radius:10px;margin-top:.25rem}.learn-loading-list{grid-column:1 / -1;display:flex;flex-direction:column;gap:.5rem;padding:.5rem 0;min-height:0}.learn-skeleton-list-item{width:100%;height:3rem;border-radius:10px}.learn-loading-list .skeleton-line,.learn-loading-card .skeleton-line{animation:skeleton-pulse 1.2s ease-in-out infinite alternate}@media(max-width:820px){.learn-loading-bento,.learn-loading-top{grid-template-columns:1fr}}.stack{display:grid;gap:.75rem}.card{background:var(--glass-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--glass-border);border-radius:14px;padding:1.05rem 1.2rem;box-shadow:var(--glass-shadow)}:root:not([data-theme=dark]) .card{border-color:#1c19171f;box-shadow:0 4px 20px #1c191712,0 1px 3px #1c19170d}.bento{display:grid;height:100%;gap:.65rem;padding:0 0 .65rem}.panel-scroll{overflow-y:auto;min-height:0;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--border) 60%,transparent) transparent}.panel-scroll::-webkit-scrollbar{width:5px}.panel-scroll::-webkit-scrollbar-track{background:transparent}.panel-scroll::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--border) 60%,transparent);border-radius:999px}.panel-scroll::-webkit-scrollbar-thumb:hover{background:var(--border)}.card h2{margin:0 0 .35rem;font-size:var(--text-xl);font-weight:600}.card h3{margin:0 0 .3rem;font-size:var(--text-lg);font-weight:600}.card h4{margin:0 0 .25rem;font-size:var(--text-base);font-weight:600}.card p{font-size:var(--text-sm);line-height:var(--leading-relaxed)}.hero p{margin-top:0}.hero{background:linear-gradient(160deg,color-mix(in srgb,var(--glass-bg) 80%,var(--primary) 20%),var(--glass-bg));backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.hero-actions{display:flex;gap:.6rem;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:center;border-radius:10px;border:1px solid var(--glass-border);background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);padding:.45rem .85rem;font-size:.95rem;cursor:pointer;color:var(--text);transition:all .14s ease}.button:hover{transform:translateY(-1px);box-shadow:var(--hover-glow)}.button:disabled{opacity:.55;cursor:not-allowed;transform:none}.button.primary{background:var(--primary);border-color:var(--primary);color:var(--primary-contrast)}.button.primary:hover{background:var(--primary-strong);border-color:var(--primary-strong);box-shadow:var(--hover-glow)}.button.secondary{background:var(--glass-bg)}.button.reset-action{border-color:var(--glass-border);color:var(--text-muted);background:var(--glass-bg)}.button.reset-action:hover{border-color:#ef4444;color:#ef4444;background:color-mix(in srgb,#ef4444 8%,var(--surface));box-shadow:0 0 12px color-mix(in srgb,#ef4444 25%,transparent)}.button.danger{border-color:#ef4444;color:#ef4444;background:color-mix(in srgb,#ef4444 10%,var(--surface))}.button.danger:hover{border-color:#dc2626;color:#dc2626;box-shadow:0 0 12px color-mix(in srgb,#dc2626 28%,transparent)}input[type=checkbox]{appearance:none;width:1.05rem;height:1.05rem;border:1px solid var(--border);border-radius:4px;background:var(--surface);display:inline-grid;place-content:center;margin:.1rem 0 0;cursor:pointer}input[type=checkbox]:before{content:"";width:.6rem;height:.6rem;transform:scale(0);transition:transform .12s ease;clip-path:polygon(14% 44%,0 59%,44% 100%,100% 20%,84% 6%,42% 72%);background:var(--primary-contrast)}input[type=checkbox]:checked{background:var(--primary);border-color:var(--primary)}input[type=checkbox]:checked:before{transform:scale(1)}input[type=checkbox]:focus-visible{outline:2px solid color-mix(in srgb,var(--primary) 65%,var(--white-soft));outline-offset:2px}.theme-toggle{width:2rem;height:2rem;min-width:2rem;min-height:2rem;padding:0;border-radius:999px;font-size:1rem;line-height:1;display:inline-flex;align-items:center;justify-content:center;background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-border);flex-shrink:0;box-sizing:border-box;transition:border-color .14s ease,background .14s ease}.theme-toggle:hover{border-color:color-mix(in srgb,var(--primary) 50%,var(--glass-border));background:var(--glass-bg-strong);box-shadow:var(--hover-glow);transform:none}.theme-toggle span{display:inline-flex;align-items:center;justify-content:center;font-size:1rem;line-height:1}.modal-backdrop{position:fixed;inset:0;background:#02061766;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1100;padding:1rem}.modal-panel{width:min(520px,100%);border:1px solid var(--glass-border);border-radius:16px;background:var(--glass-bg-strong);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:var(--glass-shadow);padding:1.5rem}.modal-panel h3{margin:0;font-size:var(--text-xl)}.create-coming-soon-backdrop{overflow:hidden;padding:2rem 1rem;align-items:center;justify-content:center}.create-coming-soon-split{display:grid;grid-template-columns:1fr 1fr;width:100%;max-width:880px;margin:auto;border-radius:20px;overflow:hidden;box-shadow:var(--glass-shadow);background:var(--glass-bg-strong);max-height:min(90vh,calc(100vh - 4rem))}.create-coming-soon-brand{position:relative;min-height:0;overflow:hidden}.create-coming-soon-poster{position:absolute;inset:0;width:100%;height:100%;background:linear-gradient(145deg,color-mix(in srgb,var(--primary) 28%,#1a1a1a),color-mix(in srgb,var(--primary) 14%,#0f0f0f) 45%,#0a0a0a);background-image:linear-gradient(to bottom,transparent 30%,rgba(0,0,0,.4) 100%),url(https://images.unsplash.com/photo-1497366216548-37526070297c?w=800&q=80);background-size:cover;background-position:center}.create-coming-soon-poster-gradient{position:absolute;left:0;right:0;bottom:0;height:70%;background:linear-gradient(to top,rgba(0,0,0,.85) 0%,rgba(0,0,0,.4) 45%,transparent 100%);pointer-events:none}.create-coming-soon-poster-caption{position:absolute;left:0;right:0;bottom:0;padding:1.5rem 1.5rem 1.25rem;z-index:1}.create-coming-soon-eyebrow{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:#ffffffbf;margin:0 0 .35rem}.create-coming-soon-poster-caption .create-coming-soon-title{margin:0;font-size:1.35rem;font-weight:700;color:#fff;text-shadow:0 0 2px rgba(0,0,0,.8),0 2px 8px rgba(0,0,0,.5)}.create-coming-soon-panel{display:flex;flex-direction:column;padding:2rem 2rem 2rem 1.75rem;overflow-y:auto;min-height:0;border-left:1px solid var(--glass-border)}.create-coming-soon-panel-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:1rem}.create-coming-soon-badge{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--primary)}.create-coming-soon-lead{margin:0;font-size:1rem;line-height:1.55;color:var(--text)}.create-coming-soon-list{margin:1rem 0 0;padding-left:1.25rem;color:var(--text-muted);font-size:.95rem;line-height:1.65}.create-coming-soon-list li{margin-bottom:.4rem}.create-coming-soon-cta{margin:1.25rem 0;font-size:.9rem;color:var(--text-muted)}.create-coming-soon-panel .home-btn{align-self:flex-start}.create-coming-soon-mobile-title{display:none}@media(max-width:720px){.create-coming-soon-split{grid-template-columns:1fr;max-height:90vh;max-width:560px}.create-coming-soon-brand{display:none}.create-coming-soon-panel{border-left:none;border-top:none;padding:1.2rem 1rem calc(1rem + env(safe-area-inset-bottom))}.create-coming-soon-mobile-title{display:block;margin-bottom:.5rem}.create-coming-soon-mobile-title .create-coming-soon-eyebrow{color:var(--text-muted);margin-bottom:.25rem}.create-coming-soon-mobile-title .create-coming-soon-title{margin:0;font-size:1.15rem;color:var(--text-heading);text-shadow:none}}.modal-panel p{margin:.75rem 0 0;font-size:var(--text-base);line-height:var(--leading-relaxed);color:var(--text-muted)}.modal-actions{margin-top:1.25rem;display:flex;justify-content:flex-end;gap:.5rem}.grid{display:grid;gap:1rem}.grid-2{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.grid-3{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.pill-card{border:1px solid var(--glass-border);border-radius:12px;padding:.75rem;background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);display:grid;gap:.25rem}.eyebrow{margin:0 0 .25rem;font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-faint)}.list,.checklist,.sublist{margin:.6rem 0 0;padding-left:1.25rem;line-height:var(--leading-relaxed)}.list li,.checklist li{margin-bottom:.35rem}progress{width:100%;height:10px;accent-color:var(--primary);border-radius:999px}.sublist{color:var(--text-muted);margin-top:.2rem}.lessons-bento{display:grid;grid-template-columns:220px 1fr 260px;gap:.85rem;height:100%;min-height:0;padding-bottom:.85rem}.lessons-nav{min-height:0;display:flex;flex-direction:column;gap:0;padding:1rem}.lessons-nav-scroll{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:.85rem}.lessons-nav .lesson-select{min-width:0;width:100%}.lessons-nav-divider{height:1px;background:var(--border);margin:.25rem 0}.lessons-week-progress{display:flex;flex-direction:column;gap:.35rem;padding:.5rem .6rem;border-radius:10px;background:var(--surface-muted);border:1px solid var(--border)}.lessons-week-progress-bottom{flex-shrink:0;margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--border)}.lessons-week-progress-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.lessons-week-progress-label{font-size:var(--text-xs);font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.lessons-week-progress-count{font-size:var(--text-xs);color:var(--text-muted);font-variant-numeric:tabular-nums}.lessons-week-progress-bar{height:6px;border-radius:999px;background:var(--border);overflow:hidden}.lessons-week-progress-fill{height:100%;border-radius:999px;background:var(--primary);transition:width .2s ease}.step-nav-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem}.step-nav-item{display:flex;align-items:flex-start;gap:.6rem;width:100%;padding:.5rem .6rem;border:none;border-radius:8px;background:transparent;color:var(--text);font-size:var(--text-sm);text-align:left;cursor:pointer;transition:background .12s ease}.step-nav-item:hover{background:var(--surface-muted)}.step-nav-item.active{background:color-mix(in srgb,var(--primary) 12%,var(--surface))}.step-nav-item.done{color:var(--text-muted)}.step-nav-item.locked{opacity:.5;cursor:not-allowed}.step-nav-item:disabled{cursor:not-allowed}.step-nav-dot{display:inline-flex;align-items:center;justify-content:center;width:1.35rem;height:1.35rem;min-width:1.35rem;min-height:1.35rem;margin-top:.1rem;border-radius:999px;border:1.5px solid var(--border);background:var(--surface);font-size:.7rem;font-weight:600;color:var(--text-muted);flex-shrink:0}.step-nav-dot.done{background:var(--primary);border-color:var(--primary);color:var(--primary-contrast);font-size:.65rem}.step-nav-dot.current{border-color:var(--primary);color:var(--primary)}.step-nav-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.4;padding-top:.05rem}.step-nav-item.active .step-nav-title{white-space:normal;overflow:visible;text-overflow:unset}.lessons-content{display:grid;grid-template-rows:auto 1fr;gap:.4rem;min-height:0}.lessons-content-header{flex-shrink:0;padding:.5rem 1.2rem}.lessons-header-row{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.lessons-header-title{display:flex;flex-direction:column;gap:.1rem;min-width:0;flex:1}.lessons-header-title strong{font-size:var(--text-sm);font-weight:600;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:.01em}.lessons-header-title .eyebrow{margin:0}.lessons-header-controls{display:flex;align-items:center;gap:.35rem;flex-shrink:0;margin-left:auto}.lessons-reader{min-height:0;display:flex;flex-direction:column;gap:.85rem;padding:.4rem 0;width:100%}.reader-tab-scroll{min-height:0;flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:.85rem}.reader-tabs{display:flex;gap:.25rem;flex-shrink:0;padding:0 0 .25rem;border-bottom:1px solid var(--glass-border)}.reader-tabs button{padding:.5rem 1rem;font-size:var(--text-sm);font-weight:500;color:var(--text-muted);background:transparent;border:none;border-radius:8px;cursor:pointer;transition:color .15s ease,background .15s ease}.reader-tabs button:hover{color:var(--text);background:var(--glass-bg)}.reader-tabs button[aria-selected=true],.reader-tabs button.active{color:var(--primary);background:var(--glass-bg)}.reader-tab-panel{display:flex;flex-direction:column;gap:.85rem}.reader-section{border:1px solid var(--glass-border);border-radius:14px;background:var(--glass-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);padding:1.1rem 1.25rem}:root:not([data-theme=dark]) .reader-section{border-color:#1c19171a;box-shadow:0 1px 3px #1c19170a}.reader-section p{font-size:var(--text-sm);line-height:var(--leading-relaxed)}.reader-intro{font-size:var(--text-base)!important;color:var(--text);line-height:var(--leading-relaxed)!important;margin:0 0 .5rem}.reader-concept-section{margin-top:.75rem;padding:.75rem .85rem;background:var(--surface-muted);border-radius:10px;border:1px solid var(--border)}.reader-concept-section h4{margin:0 0 .3rem;font-size:var(--text-sm);font-weight:600}.reader-concept-section p{margin:0;color:var(--text-muted)}.reader-unlock-btn{margin-top:.75rem}.reader-tip{display:flex;align-items:flex-start;gap:.5rem;padding:.6rem .85rem;border-radius:10px;font-size:var(--text-sm);color:var(--text-muted);background:var(--accent-blue-muted);border:1px solid color-mix(in srgb,var(--accent-blue) 25%,transparent)}.reader-guardrail{background:var(--accent-amber-muted);border-color:color-mix(in srgb,var(--accent-amber) 25%,transparent)}.reader-tip-label{font-weight:600;white-space:nowrap;color:var(--text)}.reader-checklist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.45rem}.reader-challenges{display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem}.reader-challenge{display:flex;flex-direction:column;gap:.5rem}.reader-challenge-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-wrap:wrap}.reader-pad{display:flex;flex-direction:column;gap:.5rem}.reader-pad .code-area{min-height:120px}.reader-step-nav{display:flex;justify-content:space-between;align-items:center;gap:.65rem;padding-top:.35rem;flex-shrink:0}.lessons-mobile-control{display:none}.lessons-mobile-bar{display:none;flex-direction:column;gap:.5rem;flex-shrink:0}.lessons-mobile-lesson-select{width:100%;min-width:0;border:1px solid var(--glass-border);background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:var(--text);border-radius:10px;padding:.5rem .75rem;font-size:var(--text-sm);font-weight:500;cursor:pointer;appearance:auto}.lessons-step-strip{display:flex;gap:.4rem;overflow-x:auto;padding:.1rem 0 .3rem;scrollbar-width:none}.lessons-step-strip::-webkit-scrollbar{display:none}.lessons-step-dot{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:999px;border:1.5px solid var(--border);background:var(--surface);font-size:.72rem;font-weight:600;color:var(--text-muted);cursor:pointer;transition:all .12s ease}.lessons-step-dot:hover:not(:disabled){border-color:color-mix(in srgb,var(--primary) 50%,var(--border));background:var(--surface-muted)}.lessons-step-dot.active{border-color:var(--primary);background:color-mix(in srgb,var(--primary) 15%,var(--surface));color:var(--primary)}.lessons-step-dot.done{border-color:var(--primary);background:var(--primary);color:var(--primary-contrast);font-size:.65rem}.lessons-step-dot.locked,.lessons-step-dot:disabled{opacity:.4;cursor:not-allowed}.lessons-mobile-backdrop{position:fixed;inset:0;z-index:60;background:color-mix(in srgb,var(--bg) 42%,black);display:flex;justify-content:flex-end}.lessons-context-backdrop{align-items:flex-end;justify-content:stretch}.lessons-context-sheet{width:100%;max-height:80vh;background:var(--surface);border-top-left-radius:16px;border-top-right-radius:16px;border-top:1px solid var(--border);box-shadow:0 -12px 28px #0003;display:flex;flex-direction:column;padding-bottom:env(safe-area-inset-bottom);animation:lessons-sheet-in .22s ease}@keyframes lessons-sheet-in{0%{transform:translateY(1rem);opacity:0}to{transform:translateY(0);opacity:1}}.lessons-mobile-panel-head{padding:.75rem;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-shrink:0}.lessons-mobile-panel-head strong{font-size:var(--text-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.lessons-mobile-panel-body{flex:1;min-height:0;padding:.75rem;display:flex;flex-direction:column;gap:.75rem;overflow-y:auto}.lessons-context-panel{display:flex;flex-direction:column;gap:.85rem;min-height:0;padding:1rem}.context-card{max-width:100%}.code-area-compact{min-height:120px}.lesson-select{border:1px solid var(--glass-border);background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:var(--text);border-radius:10px;padding:.42rem .6rem;min-width:240px}.notes-bento{display:grid;grid-template-columns:240px 1fr;gap:.65rem;height:100%;min-height:0;padding-bottom:.65rem}.notes-sidebar{min-height:0;display:flex;flex-direction:column;gap:.65rem}.notes-search-wrap{flex-shrink:0;padding-bottom:.25rem;border-bottom:1px solid var(--glass-border);margin-bottom:.25rem}:root:not([data-theme=dark]) .notes-search-wrap{border-bottom-color:#1c19171f}.notes-topic-list-wrap{flex:1;min-height:0}.notes-content{min-height:0}.notes-mobile-browser{display:none;flex-direction:column;gap:0;margin-bottom:.75rem}.notes-mobile-current{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%;padding:.55rem .75rem;border:1px solid var(--glass-border);border-radius:10px;background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:var(--text);font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:border-color .15s,background .15s}.notes-mobile-current:hover{border-color:color-mix(in srgb,var(--primary) 40%,var(--glass-border));background:var(--glass-bg-strong)}.notes-mobile-current[aria-expanded=true]{border-color:var(--primary);background:color-mix(in srgb,var(--primary) 8%,var(--glass-bg))}.notes-mobile-current-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.notes-mobile-current-chevron{flex-shrink:0;font-size:.9rem;line-height:1;color:var(--text-muted);transition:transform .2s ease}.notes-mobile-current-chevron.open{transform:rotate(180deg)}.notes-mobile-browser-dropdown{margin-top:.45rem;padding:.6rem;display:flex;flex-direction:column;gap:.35rem;animation:notes-dropdown-in .15s ease}.notes-mobile-search{margin-bottom:.15rem}.notes-mobile-browser-list{max-height:min(45vh,360px);overflow-y:auto}@keyframes notes-dropdown-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.notes-content-cards{display:flex;flex-direction:column;gap:.85rem}.notes-card{padding:1.05rem 1.2rem}.notes-card--title .eyebrow{margin-bottom:.35rem}.notes-card--title h3{margin:0;font-size:var(--text-lg)}.notes-card--summary p:last-child,.notes-card--bullets .list{margin:0}.notes-card--example pre{margin:.5rem 0 0}.notes-topic-list{margin:.6rem 0 0;padding:0;display:flex;flex-direction:column;gap:0}.notes-section{display:flex;flex-direction:column;gap:0}.notes-section-divider{height:1px;background:var(--border);margin:.5rem 0 .25rem}.notes-section:first-child .notes-section-divider{display:none}.notes-section-title{margin:0;font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);padding:.35rem 0 .4rem}.notes-topic-list-inner{list-style:none;margin:0;padding:0;display:grid;gap:.45rem}.notes-search{width:100%;border:1px solid var(--border);background:var(--glass-bg-strong);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);color:var(--text);border-radius:10px;padding:.6rem .85rem;font-size:var(--text-sm);font-weight:500;box-shadow:0 1px 2px #0000000a;transition:border-color .2s ease,box-shadow .2s ease}.notes-search::placeholder{color:var(--text-muted);font-weight:400}.notes-search:hover{border-color:color-mix(in srgb,var(--primary) 25%,var(--border));box-shadow:var(--hover-glow)}.notes-search:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--primary) 20%,transparent)}.notes-empty{margin:.6rem 0 0;color:var(--text-muted)}.notes-topic-button{width:100%;text-align:left;border:1px solid var(--glass-border);background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:var(--text);border-radius:10px;padding:.45rem .6rem;cursor:pointer;font-size:var(--text-sm);transition:all .12s ease}.notes-topic-button:hover{border-color:color-mix(in srgb,var(--primary) 40%,var(--glass-border));background:var(--glass-bg-strong);box-shadow:var(--hover-glow)}.notes-topic-button.active{border-color:var(--primary);background:color-mix(in srgb,var(--glass-bg) 70%,var(--primary) 30%)}.progress-bento{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto 1fr;gap:.85rem;height:100%;min-height:0;padding-bottom:.65rem;--progress-bento-ease: cubic-bezier(.32, .72, 0, 1);--progress-bento-duration: .5s;transition:row-gap var(--progress-bento-duration) var(--progress-bento-ease)}.progress-bento--detailed{row-gap:0}.progress-bento-top{grid-column:1 / -1;display:grid;grid-template-columns:1fr 1fr;gap:.85rem;overflow:hidden;max-height:420px;opacity:1;transition:max-height var(--progress-bento-duration) var(--progress-bento-ease),opacity var(--progress-bento-duration) var(--progress-bento-ease),margin 0s linear,padding 0s linear,gap 0s linear}.progress-bento--detailed .progress-bento-top{max-height:0;opacity:0;margin:0;padding:0;gap:0;pointer-events:none}.progress-stats-card{display:flex;flex-direction:column;gap:1rem}.progress-stats-header{text-align:center;padding-bottom:.5rem;border-bottom:1px solid var(--border)}.progress-stats-hero{display:flex;align-items:baseline;justify-content:center;gap:.1em;margin-top:.25rem}.progress-stats-hero-value{font-size:2.5rem;font-weight:700;line-height:1;color:var(--primary);letter-spacing:-.02em}.progress-stats-hero-unit{font-size:1.25rem;font-weight:600;color:var(--text-muted)}.progress-stats-subtitle{margin:.35rem 0 0;font-size:var(--text-sm);color:var(--text-muted);font-weight:500}.progress-stats-bars{display:flex;flex-direction:column;gap:.75rem}.progress-stat-block{display:flex;flex-direction:column;gap:.35rem}.progress-stat-block-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.progress-stat-block-label{font-size:var(--text-sm);font-weight:500;color:var(--text)}.progress-stat-block-value{font-size:var(--text-xs);font-variant-numeric:tabular-nums;color:var(--text-muted)}.progress-stat-block-track{height:8px;border-radius:999px;background:var(--surface-muted);overflow:hidden}.progress-stat-block-fill{height:100%;border-radius:999px;transition:width .4s ease}.progress-stats-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.5rem .75rem;padding-top:.5rem;border-top:1px solid var(--border)}.progress-week-badge{display:inline-flex;align-items:center;padding:.3rem .65rem;border-radius:999px;font-size:var(--text-xs);font-weight:600;background:color-mix(in srgb,var(--primary) 12%,var(--surface));color:var(--primary);border:1px solid color-mix(in srgb,var(--primary) 25%,var(--border))}.progress-next-hint{font-size:var(--text-xs);color:var(--text-muted)}.progress-current-card{display:flex;flex-direction:column;gap:.4rem}.progress-current-card h3{font-size:var(--text-base)}.progress-current-objective{color:var(--text-muted);font-size:var(--text-sm)!important;line-height:var(--leading-snug)!important;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.progress-current-card .button{margin-top:auto;align-self:flex-start}.progress-current-actions{margin-top:auto;display:flex;justify-content:space-between;align-items:flex-end;gap:.75rem}.progress-current-actions .button{margin-top:0;align-self:unset;flex-shrink:0}@keyframes progress-cta-glow{0%,to{box-shadow:0 0 color-mix(in srgb,var(--primary) 40%,transparent)}50%{box-shadow:0 0 16px 2px color-mix(in srgb,var(--primary) 35%,transparent),0 0 28px 4px color-mix(in srgb,var(--primary) 18%,transparent)}}.progress-cta-start{animation:progress-cta-glow 2s ease-in-out infinite}.progress-next-up{margin:0;font-size:var(--text-xs);color:var(--text-muted);min-width:0}.progress-journey-card{grid-column:1 / -1;grid-row:2;display:flex;flex-direction:column;gap:.65rem;min-height:0;padding:1.05rem 1.2rem;transition:flex .4s cubic-bezier(.4,0,.2,1)}.progress-journey-card .progress-journey{grid-column:unset;flex:1;min-height:0}.progress-journey-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-shrink:0}.progress-journey-title{margin:0;font-size:var(--text-base);font-weight:600;color:var(--text)}.journey-view-toggle{display:flex;gap:0;border-radius:10px;padding:.2rem;background:var(--surface-muted);border:1px solid var(--border)}.journey-view-toggle button{padding:.35rem .75rem;border:none;border-radius:8px;font-size:var(--text-xs);font-weight:500;background:transparent;color:var(--text-muted);cursor:pointer;transition:background .12s,color .12s}.journey-view-toggle button:hover{color:var(--text)}.journey-view-toggle button.active{background:var(--glass-bg-strong);color:var(--text);box-shadow:0 1px 2px #0000000f}.journey-compact{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(2,1fr);gap:.75rem;min-height:200px;height:100%}.journey-compact-week{display:grid;grid-template-rows:auto auto auto 1fr;gap:.5rem;padding:.65rem .75rem;border-radius:12px;border:1px solid var(--glass-border);background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);min-height:0;align-content:start}.journey-compact-week.current{border-color:color-mix(in srgb,var(--primary) 50%,var(--glass-border));background:color-mix(in srgb,var(--primary) 6%,var(--glass-bg))}.journey-compact-week.done{border-color:color-mix(in srgb,var(--primary) 30%,var(--glass-border));background:color-mix(in srgb,var(--primary) 6%,var(--glass-bg))}.journey-compact-week-head{display:flex;align-items:center;justify-content:space-between;flex-shrink:0;gap:.5rem}.journey-compact-week-label{font-size:var(--text-sm);font-weight:600;color:var(--text)}.journey-compact-week-count{font-size:var(--text-xs);color:var(--text-muted)}.journey-compact-week-title{margin:0;min-height:2.25rem;font-size:.7rem;line-height:1.3;color:var(--text-muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.journey-compact-bar-wrap{height:6px;border-radius:999px;background:var(--surface-muted);overflow:hidden;flex-shrink:0}.journey-compact-bar-fill{height:100%;border-radius:999px;background:var(--primary);transition:width .2s ease}.journey-compact-week.done .journey-compact-bar-fill{background:var(--primary)}.journey-compact-dots{display:flex;flex-wrap:wrap;gap:.4rem;min-height:2rem;align-content:center;align-items:center}.journey-compact-dot{display:block;width:1.4rem;height:1.4rem;border-radius:999px;border:1.5px solid var(--border);background:var(--surface);flex-shrink:0;transition:border-color .14s,background .14s;text-indent:-9999px}.journey-compact-dot:hover{border-color:color-mix(in srgb,var(--primary) 50%,var(--border));background:color-mix(in srgb,var(--primary) 12%,var(--surface));box-shadow:var(--hover-glow)}.journey-compact-dot.done{background:var(--primary);border-color:var(--primary)}.journey-compact-dot.current{border-color:var(--primary);background:color-mix(in srgb,var(--primary) 20%,var(--surface))}.progress-journey{grid-column:1 / -1;min-height:0}.journey-grid{display:flex;flex-direction:column;gap:1rem}.journey-week-group{display:flex;flex-direction:column;gap:.5rem}.journey-week-label{display:inline-flex;align-items:center;gap:.5rem;font-size:var(--text-sm);font-weight:600;color:var(--text-muted);padding:.2rem 0}.journey-week-label.done{color:var(--accent-green)}.journey-week-label.current{color:var(--primary)}.journey-week-count{font-size:.75rem;font-weight:400;color:var(--text-muted)}.journey-tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem}.journey-tile-wrap{position:relative;min-width:0}.journey-tile{display:flex;align-items:flex-start;gap:.55rem;width:100%;padding:.55rem .75rem;border:1px solid var(--glass-border);border-radius:10px;background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:var(--text);font-size:var(--text-sm);cursor:pointer;transition:all .14s ease;text-align:left;min-width:0;box-sizing:border-box}.journey-tile:hover{border-color:color-mix(in srgb,var(--primary) 40%,var(--glass-border));background:var(--glass-bg-strong);box-shadow:var(--hover-glow)}.journey-tile.done{border-color:color-mix(in srgb,var(--accent-green) 40%,var(--glass-border));color:var(--text-muted)}.journey-tile.current{border-color:var(--primary);background:color-mix(in srgb,var(--primary) 8%,var(--glass-bg))}.journey-tile-dot{display:inline-flex;align-items:center;justify-content:center;width:1.1rem;height:1.1rem;border-radius:999px;border:1.5px solid var(--border);background:var(--surface);font-size:.55rem;font-weight:700;flex-shrink:0}.journey-tile-dot.done{background:var(--primary);border-color:var(--primary);color:var(--primary-contrast)}.journey-tile-dot.current{border-color:var(--primary);background:color-mix(in srgb,var(--primary) 15%,var(--surface))}.journey-tile-text{display:flex;flex-direction:column;gap:.15rem;min-width:0;flex:1}.journey-tile-title{font-weight:600;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.journey-tile-subtitle{font-size:var(--text-xs);color:var(--text-muted);line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.journey-tile-detail{position:absolute;top:calc(100% + .5rem);left:0;z-index:10;width:320px;max-width:90vw;max-height:70vh;overflow-y:auto;display:flex;flex-direction:column;gap:.5rem;animation:tile-pop .14s ease}.journey-tile-detail-title{font-size:var(--text-sm);display:block}.journey-tile-detail-objective{margin:0;font-size:var(--text-xs);color:var(--text-muted);line-height:var(--leading-snug);-webkit-line-clamp:unset;display:block}.journey-tile-detail-concepts{display:flex;flex-wrap:wrap;gap:.3rem}.journey-tile-concept-chip{padding:.2rem .45rem;border-radius:6px;font-size:.7rem;background:var(--surface-muted);border:1px solid var(--border);color:var(--text-muted)}.journey-tile-detail strong{font-size:var(--text-sm)}.journey-tile-detail p{margin:0;font-size:var(--text-xs);color:var(--text-muted);line-height:var(--leading-snug)}.journey-tile-meta{display:flex;gap:.5rem;font-size:var(--text-xs);color:var(--text-muted);margin-top:.25rem}.learn-bottom-nav,.journey-detail-mobile-overlay{display:none}@keyframes tile-pop{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.journey-milestones-row{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.25rem}.journey-milestone-chip{display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .5rem;border-radius:8px;border:1px solid var(--border);background:var(--accent-purple-muted);font-size:var(--text-xs);color:var(--text-muted);cursor:pointer;transition:border-color .14s}.journey-milestone-chip:hover{border-color:var(--accent-purple);box-shadow:0 0 12px color-mix(in srgb,var(--accent-purple) 30%,transparent)}.settings-page-wrap{max-width:720px;margin-left:auto;margin-right:auto;padding-left:1.5rem;padding-right:1.5rem}.settings-page{overflow-y:auto;padding-bottom:2rem;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--border) 60%,transparent) transparent}.settings-header p:last-of-type{margin-bottom:0;color:var(--text-muted)}.settings-section-nav{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:1.25rem;padding-top:1rem;border-top:1px solid var(--glass-border)}.settings-section-nav-link{padding:.4rem .75rem;border-radius:10px;font-size:.9rem;font-weight:500;color:var(--text-muted);text-decoration:none;border:1px solid transparent;background:var(--glass-bg);transition:color .15s,background .15s,border-color .15s}.settings-section-nav-link:hover{color:var(--text);background:var(--surface-muted);border-color:var(--border)}.settings-section-nav-link.active{background:var(--primary);color:var(--primary-contrast);border-color:var(--primary)}.settings-section{padding:1.25rem}.settings-section .settings-section-title+.settings-section-title{margin-top:1.25rem;padding-top:1rem;border-top:1px solid var(--glass-border)}.settings-section-title{margin:0 0 1rem;font-size:1rem;font-weight:600;color:var(--text);padding-bottom:.5rem;border-bottom:1px solid var(--glass-border)}.settings-list{display:flex;flex-direction:column;gap:.1rem}.setting-row{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--glass-border)}.setting-row:last-child{border-bottom:0;padding-bottom:0}.setting-label{display:flex;flex-direction:column;gap:.2rem;min-width:0}.setting-label-text{font-weight:500;font-size:var(--text-base);color:var(--text)}.setting-description{font-size:var(--text-sm);line-height:var(--leading-relaxed);color:var(--text-muted)}.setting-control{flex-shrink:0}.toggle-switch{position:relative;display:inline-block;width:2.75rem;height:1.5rem;cursor:pointer}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;inset:0;background:var(--surface-muted);border:1px solid var(--border);border-radius:999px;transition:all .18s ease}.toggle-slider:before{content:"";position:absolute;height:1.1rem;width:1.1rem;left:.15rem;bottom:.15rem;background:var(--text);border-radius:999px;transition:transform .18s ease}.toggle-switch input:checked+.toggle-slider{background:var(--primary);border-color:var(--primary)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(1.25rem);background:var(--primary-contrast)}.toggle-switch input:focus-visible+.toggle-slider{outline:2px solid color-mix(in srgb,var(--primary) 65%,var(--white-soft));outline-offset:2px}.toggle-switch:hover .toggle-slider{border-color:var(--primary)}.theme-selector{display:flex;gap:.35rem}.theme-option{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .75rem;border:1px solid var(--glass-border);background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:var(--text);border-radius:10px;font-size:.9rem;cursor:pointer;transition:all .14s ease}.theme-option:hover{border-color:var(--primary);background:color-mix(in srgb,var(--surface) 95%,var(--primary) 5%);box-shadow:var(--hover-glow)}.theme-option.active{background:var(--primary);border-color:var(--primary);color:var(--primary-contrast)}.status-badge{display:inline-block;padding:.3rem .65rem;border-radius:8px;font-size:.85rem;font-weight:500}.status-active{background:color-mix(in srgb,var(--primary) 18%,transparent);color:var(--primary);border:1px solid color-mix(in srgb,var(--primary) 40%,transparent)}.status-inactive{background:var(--surface-muted);color:var(--text-muted);border:1px solid var(--border)}.settings-footer{padding:1rem 1.25rem}.settings-footer-text{margin:0;font-size:var(--text-sm);line-height:var(--leading-relaxed);color:var(--text-muted)}.lesson-progress-track{display:flex;align-items:center;gap:.6rem;flex:1;min-width:80px}.lesson-progress-bar-wrap{flex:1;min-width:80px;max-width:200px;height:8px;border-radius:999px;background:var(--surface-muted);overflow:hidden}.lesson-progress-bar-fill{height:100%;border-radius:999px;background:var(--primary);transition:width .28s ease}.icon-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.45rem .7rem;border-radius:10px;border:1px solid var(--glass-border);background:var(--glass-bg);color:var(--text);font-size:var(--text-sm);cursor:pointer;transition:all .16s ease}.icon-btn:disabled{opacity:.5;cursor:not-allowed}.icon-btn svg{flex-shrink:0}.icon-btn-label{font-weight:500}.icon-btn-primary{background:var(--primary);border-color:var(--primary);color:var(--primary-contrast)}.icon-btn-primary:hover:not(:disabled){filter:brightness(1.08)}.icon-btn-secondary:hover:not(:disabled){border-color:var(--primary);color:var(--primary);box-shadow:var(--hover-glow)}.icon-btn-reset{color:var(--text-muted)}.icon-btn-reset:hover:not(:disabled){border-color:var(--text-muted);color:var(--text);box-shadow:0 0 10px color-mix(in srgb,var(--text-muted) 25%,transparent)}@media(max-width:640px){.lessons-header-row{gap:.35rem}.lessons-header-controls{flex-wrap:wrap}.lesson-progress-bar-wrap{max-width:none}.progress-stats-bars{gap:.6rem}}.concept-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.5rem}.concept-card{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:.35rem;text-align:left;border:1px solid var(--glass-border);border-radius:12px;background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:var(--surface-muted);padding:.65rem .75rem;font-size:.9rem;color:var(--text);cursor:pointer;transition:all .16s ease}.concept-card:hover{border-color:var(--primary);background:color-mix(in srgb,var(--glass-bg) 85%,var(--primary) 15%);box-shadow:var(--hover-glow)}.concept-card-read{border-color:color-mix(in srgb,var(--primary) 50%,transparent);background:color-mix(in srgb,var(--glass-bg) 85%,var(--primary) 15%)}.concept-card-read:hover{border-color:var(--primary);box-shadow:var(--hover-glow)}.concept-card-number{display:inline-flex;align-items:center;justify-content:center;width:1.4rem;height:1.4rem;border-radius:6px;background:var(--surface);font-size:.75rem;font-weight:600;color:var(--text-muted)}.concept-card-read .concept-card-number{background:var(--primary);color:var(--primary-contrast)}.concept-card-title{font-weight:500;line-height:1.3}.concept-card-badge{position:absolute;top:.5rem;right:.5rem;font-size:.7rem;font-weight:600;color:var(--primary)}.concept-card-modal-backdrop{padding:4rem 1.5rem 1.5rem;align-items:flex-start}.concept-card-modal-panel{width:min(960px,95vw);max-height:calc(100vh - 6rem);overflow:hidden;display:flex;flex-direction:column;padding:0;border-radius:20px;border:1px solid var(--glass-border);background:var(--glass-bg-strong);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);box-shadow:var(--glass-shadow)}.concept-card-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1.5rem 1.75rem 0;flex-shrink:0}.concept-card-modal-title{margin:0;font-size:var(--text-2xl);font-weight:600;line-height:var(--leading-tight);color:var(--text)}.concept-card-modal-close{flex-shrink:0;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--text-muted);font-size:1.5rem;line-height:1;cursor:pointer;border-radius:8px;transition:color .14s,background .14s}.concept-card-modal-close:hover{color:var(--text);background:var(--surface-muted)}.concept-card-modal-body{padding:1.5rem 1.75rem 1.75rem;overflow-y:auto;flex:1;min-height:0}.concept-card-intro{margin:0 0 1rem;font-size:var(--text-base);line-height:var(--leading-relaxed);color:var(--text)}.concept-card-description{margin:0 0 1.25rem;font-size:var(--text-base);line-height:var(--leading-relaxed);color:var(--text-muted)}.concept-card-sections{display:flex;flex-direction:column;gap:1.25rem;margin-bottom:1.5rem}.concept-card-section{padding:1.25rem 1.5rem;background:var(--surface-muted);border-radius:12px;border:1px solid var(--border)}.concept-card-section-title{margin:0 0 .5rem;font-size:var(--text-lg);font-weight:600;color:var(--text)}.concept-card-section-content{margin:0;font-size:var(--text-base);line-height:var(--leading-relaxed);color:var(--text-muted)}.concept-card-cursor-mode{padding:.65rem 1rem;background:color-mix(in srgb,var(--primary) 12%,transparent);border-radius:10px;font-size:.9rem;margin-bottom:1.5rem}.concept-card-cursor-label{font-weight:600;color:var(--primary)}.concept-card-block{margin-top:1.25rem;padding-top:1.25rem;border-top:1px solid var(--border)}.concept-card-block-title{margin:0 0 .6rem;font-size:.95rem;font-weight:600;color:var(--text)}.concept-card-list{margin:0;padding-left:1.25rem;color:var(--text-muted);font-size:.9rem;line-height:1.7}.concept-card-list li{margin-bottom:.35rem}.concept-card-list li:last-child{margin-bottom:0}.concept-card-code{margin:0;padding:1rem 1.25rem;background:var(--surface-muted);border-radius:10px;font-size:.85rem;line-height:1.5;overflow-x:auto;border:1px solid var(--border)}.concept-card-modal-actions{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.75rem 1.5rem;background:var(--surface);border-top:1px solid var(--border);flex-shrink:0}.terminal-practice{margin-top:1rem;border:1px solid var(--code-border);border-radius:12px;overflow:hidden}.terminal-practice-header{padding:.4rem .65rem;background:color-mix(in srgb,var(--code-bg) 90%,var(--code-border));font-size:.8rem;font-weight:600;color:var(--code-prompt)}.terminal-practice-body{padding:.5rem;background:var(--code-bg);color:var(--code-text)}.terminal-practice-output{font-family:ui-monospace,monospace;font-size:.9rem}.terminal-practice-line{display:flex;align-items:center;gap:.25rem;margin-bottom:.15rem}.terminal-prompt{flex-shrink:0;color:var(--code-prompt)}.terminal-practice-input-row{display:flex;align-items:center;gap:.25rem;margin-top:.25rem}.terminal-practice-input{flex:1;background:transparent;border:none;color:var(--code-text);font-family:ui-monospace,monospace;font-size:.9rem}.terminal-practice-input::placeholder{color:var(--code-prompt)}.terminal-practice-input:focus{outline:none}.concept-chip-grid{display:flex;flex-wrap:wrap;gap:.35rem}.concept-chip{border:1px solid var(--border);border-radius:999px;background:var(--surface-muted);padding:.25rem .55rem;font-size:.8rem;color:var(--text)}.micro-task-box{border:1px solid var(--glass-border);border-radius:12px;background:color-mix(in srgb,var(--glass-bg) 85%,var(--primary) 15%);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);padding:.85rem 1rem}.micro-task-box h4{margin:0;font-size:var(--text-base)}.micro-task-box p{margin:.4rem 0 0;font-size:var(--text-sm);line-height:var(--leading-relaxed)}.step-collapsed-note{margin-top:.35rem;color:var(--text-muted);font-size:var(--text-sm);font-style:italic}.checklist-item-row{display:flex;align-items:flex-start;gap:.5rem}.challenge-actions{display:flex;gap:.45rem;flex-wrap:wrap}.code-inline-block{margin-top:.5rem;padding:.85rem 1rem;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--text);white-space:pre-wrap;font-family:SF Mono,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:var(--text-sm);line-height:1.5;overflow-x:auto}.validation-box{margin-top:.6rem;border-radius:12px;padding:.6rem .7rem;border:1px solid var(--glass-border);background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.validation-box.success{border-color:var(--success);background:color-mix(in srgb,var(--success) 14%,var(--glass-bg))}.validation-box.error{border-color:#ef4444;background:color-mix(in srgb,#ef4444 12%,var(--glass-bg))}.validation-box p{margin:0}.code-area{width:100%;min-height:180px;font-family:SF Mono,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:.85rem;border-radius:10px;border:1px solid var(--code-border);background:var(--code-bg);color:var(--code-text);padding:.6rem;resize:vertical}@media(max-width:1100px){.lessons-bento{grid-template-columns:220px 1fr}.lessons-context-panel{display:none}.progress-bento{grid-template-columns:1fr}.progress-bento-top{grid-template-columns:1fr;max-height:none}.progress-journey-card{grid-column:1}.journey-compact{grid-template-columns:repeat(2,1fr)}}@media(max-width:820px){.app-shell{padding:.5rem .75rem 0;height:auto;min-height:100dvh;overflow:visible}.page-wrap{overflow-y:auto}.topbar-title,.topbar-stats{display:none}.topbar{gap:.4rem;grid-template-columns:auto 1fr auto}.topbar .nav{justify-self:start;width:100%;padding-bottom:.1rem}:root{--tab-bar-h: 3.5rem}.learn-layout .topbar .nav{display:none}.learn-layout .page-wrap{padding-bottom:calc(var(--tab-bar-h) + env(safe-area-inset-bottom) + .5rem)}.learn-bottom-nav{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:100;gap:0;padding:.25rem .5rem calc(.25rem + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--surface) 96%,transparent);border-top:1px solid var(--border);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);justify-content:space-around;align-items:center}.learn-bottom-nav-link{flex:1;text-align:center;padding:.4rem .35rem;font-size:.8rem;font-weight:500;color:var(--text-muted);text-decoration:none;border-radius:8px;transition:background .15s,color .15s}.learn-bottom-nav-link:hover{color:var(--text);background:color-mix(in srgb,var(--border) 30%,transparent)}.learn-bottom-nav-link.active{color:var(--primary);background:color-mix(in srgb,var(--primary) 12%,transparent)}.header-menu-panel{right:0;left:auto;max-width:min(90vw,240px)}.browse-topbar{padding:.55rem .75rem}.browse-logo .logo-text{display:none}.browse-topbar-actions{gap:.45rem}.lesson-select{width:100%;min-width:0}.notes-bento{grid-template-columns:1fr}.notes-sidebar{display:none}.notes-mobile-browser{display:flex}.lessons-bento{grid-template-columns:1fr;overflow:hidden}.lessons-nav{display:none}.lessons-content{min-width:0;overflow:hidden}.lessons-mobile-bar{display:flex}.lessons-step-strip{display:none}.lessons-mobile-control{display:inline-flex}.lessons-header-controls{width:100%;margin-left:0}.lessons-header-title strong{white-space:normal;font-size:var(--text-xs)}.lesson-progress-track{flex:1;min-width:0}.lessons-reader{overflow:hidden}.reader-tab-scroll{overflow-y:visible}.reader-section{border-radius:10px}.reader-step-nav{position:static;margin:0 -.35rem .5rem;padding:.5rem .75rem;background:color-mix(in srgb,var(--surface) 96%,transparent);border-top:1px solid var(--border);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);z-index:auto}.journey-tiles{grid-template-columns:repeat(2,1fr)}.journey-tile-detail-inline{display:none!important}.journey-tile-detail{position:fixed;top:auto;bottom:1rem;left:1rem;right:1rem;width:auto;z-index:20;max-height:62vh;overflow-y:auto}.journey-detail-mobile-overlay{display:flex;position:fixed;inset:0;z-index:9999;flex-direction:column;justify-content:flex-end;align-items:stretch;pointer-events:auto}.journey-detail-mobile-backdrop{position:absolute;inset:0;background:#0006;cursor:pointer}.journey-detail-mobile-sheet{position:relative;z-index:1;max-height:70vh;overflow-y:auto;margin:0 1rem 1rem;padding:1rem;padding-bottom:calc(1rem + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:.5rem;border-radius:12px;animation:journey-detail-sheet-in .2s ease}.journey-detail-mobile-sheet-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem}.journey-detail-mobile-sheet-head .journey-tile-detail-title{flex:1;margin:0;font-size:var(--text-base)}.journey-detail-mobile-close{flex-shrink:0;padding:2px 6px;font-size:1.25rem}@keyframes journey-detail-sheet-in{0%{opacity:0;transform:translateY(1rem)}to{opacity:1;transform:translateY(0)}}.icon-btn-label{display:none}}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem 1rem}.login-split{display:grid;grid-template-columns:1fr 1fr;width:100%;max-width:960px;margin:0 auto;border-radius:20px;overflow:hidden;box-shadow:var(--glass-shadow);border:1px solid var(--glass-border)}.login-brand{padding:2.5rem 2rem;background:linear-gradient(135deg,color-mix(in srgb,var(--primary) 22%,var(--glass-bg)),color-mix(in srgb,var(--primary) 10%,var(--glass-bg)));backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);display:flex;flex-direction:column;justify-content:center}.login-logo{margin-bottom:1rem}.login-logo .logo-mark{fill:#fffffff2}.login-logo .logo-text{color:#fffffff2}.login-brand-eyebrow{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:color-mix(in srgb,var(--primary-contrast) 85%,var(--primary));margin:0 0 .5rem}.login-brand h2{margin:0 0 .75rem;font-size:1.75rem;font-weight:700;color:var(--text)}.login-brand p{margin:0 0 1.25rem;font-size:.95rem;color:var(--text-muted);line-height:1.5}.login-brand-list{margin:0;padding:0;list-style:none}.login-brand-list li{position:relative;padding-left:1.25rem;margin-bottom:.5rem;font-size:.9rem;color:var(--text-muted)}.login-brand-list li:before{content:"✓";position:absolute;left:0;color:var(--primary);font-weight:700}.login-form-panel{padding:2.5rem 2rem;background:var(--glass-bg-strong);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);display:flex;flex-direction:column}.login-form-panel--skeleton{min-height:320px;justify-content:center}.login-loading-placeholder{display:flex;flex-direction:column}.login-form-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.login-form-header h3{margin:0;font-size:1.25rem;font-weight:600}.login-back-link{font-size:.85rem;color:var(--text-muted);text-decoration:none}.login-back-link:hover{color:var(--primary)}.login-error{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.65rem .85rem;background:color-mix(in srgb,#ef4444 12%,var(--surface));border:1px solid color-mix(in srgb,#ef4444 40%,transparent);border-radius:10px;color:#dc2626;font-size:.9rem;margin-bottom:1rem}.login-error-dismiss{background:none;border:none;color:inherit;font-size:1.2rem;cursor:pointer;padding:0 .2rem;line-height:1}.login-google-btn{display:flex;align-items:center;justify-content:center;gap:.6rem;width:100%;padding:.75rem 1rem;font-size:.95rem;font-weight:500;background:var(--surface);border:1px solid var(--border);border-radius:10px;color:var(--text);cursor:pointer;transition:border-color .15s,background .15s}.login-google-btn:hover:not(:disabled){border-color:var(--primary);background:color-mix(in srgb,var(--surface) 95%,var(--primary) 5%);box-shadow:var(--hover-glow)}.login-google-btn:disabled{opacity:.7;cursor:not-allowed}.login-google-icon{flex-shrink:0}.login-divider{display:flex;align-items:center;gap:.75rem;margin:1.25rem 0 1rem}.login-divider:before,.login-divider:after{content:"";flex:1;height:1px;background:var(--border)}.login-divider span{font-size:.8rem;color:var(--text-muted)}.login-tabs{display:flex;gap:.25rem;margin-bottom:1rem}.login-tab{padding:.5rem 1rem;font-size:.9rem;font-weight:500;background:transparent;border:none;border-radius:8px;color:var(--text-muted);cursor:pointer;transition:color .15s,background .15s}.login-tab:hover{color:var(--text)}.login-tab.active{background:color-mix(in srgb,var(--primary) 12%,transparent);color:var(--primary)}.login-form-area{min-height:260px}.login-form{display:flex;flex-direction:column;gap:1rem}.login-label{display:flex;flex-direction:column;gap:.35rem;font-size:.9rem;font-weight:500;color:var(--text)}.login-input{padding:.7rem .9rem;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);font-size:var(--text-base)}.login-input:focus{outline:none;border-color:var(--primary)}.login-submit{padding:.7rem 1rem;font-size:.95rem;font-weight:600;background:var(--primary);color:var(--primary-contrast);border:none;border-radius:10px;cursor:pointer;transition:opacity .15s}.login-submit:hover:not(:disabled){opacity:.9}.login-submit:disabled{opacity:.7;cursor:not-allowed}.login-switch-mode{background:none;border:none;font-size:.85rem;color:var(--text-muted);cursor:pointer;padding:.25rem 0}.login-switch-mode:hover{color:var(--primary)}.login-magic-hint{margin:0;font-size:var(--text-sm);line-height:var(--leading-relaxed);color:var(--text-muted)}.login-link-sent{padding:1.25rem;background:color-mix(in srgb,var(--primary) 12%,transparent);border-radius:10px;font-size:var(--text-base);line-height:var(--leading-relaxed);color:var(--text)}.login-link-sent-title{margin:0 0 .5rem;font-weight:600;color:var(--text)}.login-link-sent p{margin:0 0 .75rem;color:var(--text-muted)}@media(max-width:720px){.login-split{grid-template-columns:1fr;max-width:420px;margin:1rem auto}.login-brand{padding:1.5rem}.login-brand h2{font-size:1.5rem}.login-form-panel{padding:1.5rem}}.home-landing{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:3rem 1rem;overflow:hidden}.app-background,.landing-background{position:fixed;inset:0;width:100vw;height:100vh;z-index:0;pointer-events:none}.app-background-gradient{background:linear-gradient(135deg,var(--canvas-bg-accent) 0%,var(--canvas-bg) 50%,var(--canvas-bg-accent) 100%)}.home-hero{position:relative;z-index:1;max-width:560px;text-align:center}.home-logo{margin-bottom:1rem}.home-logo .logo-text{font-size:1.35rem}.home-eyebrow{margin:0 0 .75rem;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--primary)}.home-headline{margin:0 0 1rem;font-size:clamp(2rem,5vw,3rem);font-weight:700;line-height:1.15;color:var(--text)}.home-subhead{margin:0 0 1.5rem;font-size:1.15rem;line-height:1.6;color:var(--text-muted)}.home-benefits{margin:0 0 2rem;padding:0;list-style:none;text-align:left;display:inline-block}.home-benefits li{position:relative;padding-left:1.5rem;margin-bottom:.6rem;font-size:.95rem;color:var(--text)}.home-benefits li:before{content:"✓";position:absolute;left:0;color:var(--primary);font-weight:700}.home-cta{display:flex;flex-direction:column;align-items:center;gap:.75rem}.home-btn{display:inline-flex;align-items:center;justify-content:center;padding:.75rem 1.5rem;font-size:1rem;font-weight:600;border-radius:10px;text-decoration:none;transition:transform .15s,opacity .15s}.home-btn:hover{transform:translateY(-2px)}.home-btn-primary{background:var(--primary);color:var(--primary-contrast);border:none;min-width:200px}.home-btn-primary:hover{opacity:.95;box-shadow:var(--hover-glow)}.home-btn-secondary{background:transparent;color:var(--text-muted);border:1px solid var(--border)}.home-btn-secondary:hover{color:var(--primary);border-color:var(--primary);box-shadow:var(--hover-glow)}.course-selection-list{list-style:none;padding:0;margin:1.5rem 0;display:flex;flex-direction:column;gap:.75rem;max-width:480px;margin-left:auto;margin-right:auto}.course-selection-item{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:12px;overflow:hidden}.course-selection-link{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;text-decoration:none;color:inherit;transition:background .15s}.course-selection-link:hover{background:var(--surface-muted)}.course-selection-content{flex:1;min-width:0}.course-selection-title{margin:0 0 .25rem;font-size:1.1rem;font-weight:600;color:var(--text)}.course-selection-desc{margin:0;font-size:.9rem;color:var(--text-muted);line-height:1.4}.course-selection-meta{display:block;margin-top:.25rem;font-size:.8rem;color:var(--text-muted)}.course-selection-arrow{flex-shrink:0;margin-left:1rem;font-size:1.25rem;color:var(--primary)}.course-landing-price{margin:0 0 1rem;font-size:1.5rem;font-weight:700;color:var(--primary)}.course-landing-back{display:inline-block;margin-top:1.5rem;font-size:.9rem;color:var(--text-muted);text-decoration:none}.course-landing-back:hover{color:var(--primary)}.browse-shell{position:relative;z-index:1;min-height:100vh;display:flex;flex-direction:column;background:transparent;color:var(--text)}.browse-topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.5rem;background:color-mix(in srgb,var(--glass-bg-strong) 72%,black);border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}:root:not([data-theme=dark]) .browse-topbar{background:#ffffffe0;border-bottom-color:#1c191714;box-shadow:0 1px #1c19170a}.browse-logo{flex-shrink:0;display:flex;align-items:center;color:var(--text-heading);text-decoration:none}.browse-logo .logo-text{color:var(--text-heading);font-size:1.35rem;font-weight:600;line-height:1}.create-course-placeholder{padding:3rem 1.5rem;text-align:center;max-width:420px;margin:0 auto}.create-course-placeholder-title{margin:0 0 1rem;font-size:1.5rem;font-weight:700;color:var(--text-heading)}.create-course-placeholder-text{margin:0 0 1.5rem;font-size:1rem;color:var(--text-muted);line-height:1.6}.create-course-page{padding:2rem 1.5rem;max-width:720px;margin:0 auto}.create-course-section{margin-bottom:1.5rem}.create-course-section h2{margin:0 0 1rem;font-size:1.1rem;font-weight:600}.create-course-form{display:flex;flex-direction:column;gap:1rem}.create-course-list{list-style:none;margin:0;padding:0}.create-course-list-item{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 0;border-bottom:1px solid var(--border)}.create-course-list-info{display:flex;flex-direction:column;gap:.25rem}.create-course-list-meta{font-size:.85rem;color:var(--text-muted)}.create-course-list-actions{display:flex;gap:.5rem}.create-course-edit{margin-top:1rem}.create-course-edit label{display:block;margin-bottom:.5rem}.create-course-curriculum-block{margin:1rem 0}.create-course-curriculum-block h3{margin:0 0 .5rem;font-size:1rem}.create-course-curriculum-hint{font-size:.9rem;color:var(--text-muted);margin:0 0 .75rem}.create-course-ai-block{display:flex;flex-direction:column;gap:.75rem;margin-top:.75rem}.create-course-edit-actions{display:flex;gap:.5rem;margin-top:1rem}.create-course-empty{color:var(--text-muted);font-size:.95rem;margin:0}.create-preview-curriculum ul{margin:.5rem 0;padding-left:1.25rem}.create-preview-curriculum li{margin-bottom:.25rem}.setting-profile-row{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.setting-profile-row .login-input{flex:1;min-width:160px}.browse-toolbar{display:flex;flex-direction:column;gap:.75rem;padding:0 1.5rem 1.25rem}.browse-filter-toggle{display:none;align-self:flex-start;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text);font-size:.9rem;font-weight:600;padding:.45rem .9rem}.browse-filters-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem}.browse-filters-label{font-size:.85rem;color:var(--text-muted);font-weight:500}.browse-search{width:100%;max-width:320px;padding:.55rem 1rem;font-size:.95rem;border:1px solid var(--border);border-radius:10px;background:var(--glass-bg);color:var(--text);transition:border-color .15s,box-shadow .15s}.browse-search::placeholder{color:var(--text-muted)}.browse-search:focus{outline:none;border-color:var(--primary)}.browse-topbar-actions{display:flex;align-items:center;gap:.75rem}.browse-topbar-cta{padding:.45rem .9rem;font-size:.9rem;font-weight:600;border-radius:8px;text-decoration:none;background:color-mix(in srgb,var(--primary) 15%,transparent);color:var(--primary);border:1px solid color-mix(in srgb,var(--primary) 40%,transparent);transition:background .15s,border-color .15s,color .15s}.browse-topbar-cta:hover{background:color-mix(in srgb,var(--primary) 25%,transparent);border-color:var(--primary);color:var(--primary-strong);box-shadow:var(--hover-glow)}.browse-topbar-link{background:none;border:none;color:var(--text);font-size:.95rem;cursor:pointer;text-decoration:none}.browse-topbar-link:hover{color:var(--primary)}.browse-btn{padding:.5rem 1rem;font-size:.95rem;font-weight:600;border-radius:8px;text-decoration:none}.browse-btn-primary{background:var(--primary);color:var(--primary-contrast);border:none}.browse-btn-primary:hover{opacity:.95}.user-avatar-link{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;overflow:hidden;text-decoration:none;flex-shrink:0;transition:box-shadow .15s,transform .15s}.user-avatar-link:hover{box-shadow:0 0 0 2px var(--primary)}.user-avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;overflow:hidden;background:var(--surface-muted);border:1px solid var(--border);flex-shrink:0}.user-avatar img{display:block;width:100%;height:100%;object-fit:cover}.user-avatar-placeholder{display:inline-flex;align-items:center;justify-content:center;width:100%;height:100%;background:var(--surface-muted);color:var(--text-faint)}.user-avatar-placeholder-icon{flex-shrink:0;opacity:.75}.profile-feed-layout-wrap{width:100%;padding-top:1rem;padding-bottom:2rem}.profile-feed-layout{display:grid;grid-template-columns:280px 1fr;gap:1.5rem;align-items:start;max-width:1100px;margin:0 auto;padding:0 1.25rem}.profile-feed-layout.profile-feed-skeleton{min-height:calc(100vh - 7rem);align-items:stretch}.profile-feed-layout.profile-feed-skeleton .profile-feed-main{min-height:0;display:flex;flex-direction:column}.profile-feed-layout.profile-feed-skeleton .feed-main{flex:1;min-height:0;display:flex;flex-direction:column}.profile-feed-layout.profile-feed-skeleton .feed-skeleton-items{flex:1;min-height:20rem}@media(max-width:900px){.profile-feed-layout{grid-template-columns:1fr}.profile-feed-layout.profile-feed-skeleton .profile-feed-main{order:0}}.profile-feed-page--loading{display:flex;align-items:center;justify-content:center;min-height:280px;padding:2rem}.profile-skeleton-card .skeleton-line,.feed-skeleton-item .skeleton-line,.feed-skeleton-compose .skeleton-line{animation:skeleton-pulse 1.2s ease-in-out infinite}.profile-skeleton-avatar{width:56px;height:56px;border-radius:50%;background:var(--surface-muted);animation:skeleton-pulse 1.2s ease-in-out infinite;flex-shrink:0}.profile-skeleton-avatar-sm{width:40px;height:40px}.profile-skeleton-name{width:70%;height:1.2rem;margin:.75rem auto .35rem;border-radius:6px}.profile-skeleton-bio{width:90%;height:.9rem;margin:0 auto 1rem;border-radius:6px}.profile-skeleton-btn{width:100%;height:2.25rem;border-radius:10px}.profile-skeleton-block-title{width:5rem;height:.85rem;margin-bottom:.75rem;border-radius:6px}.profile-skeleton-stat-value{width:2rem;height:1.25rem;border-radius:6px}.profile-skeleton-stat-label{width:3rem;height:.7rem;margin-top:.15rem;border-radius:4px}.profile-skeleton-progress{width:100%;height:6px;margin-top:.5rem;border-radius:999px}.profile-skeleton-list{display:flex;flex-direction:column;gap:.5rem}.profile-skeleton-list .skeleton-line{height:.9rem;border-radius:6px}.feed-skeleton-compose{pointer-events:none}.feed-skeleton-compose-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:.75rem}.feed-skeleton-textarea{width:100%;height:88px;border-radius:12px;background:var(--surface-muted);animation:skeleton-pulse 1.2s ease-in-out infinite}.feed-skeleton-action{width:4rem;height:2rem;border-radius:8px}.feed-skeleton-submit{width:5rem;height:2.25rem;border-radius:10px}.feed-skeleton-list{display:flex;flex-direction:column;gap:1.25rem}.feed-skeleton-item{padding:1.25rem 1.5rem;pointer-events:none}.feed-skeleton-avatar{width:40px;height:40px;border-radius:50%;background:var(--surface-muted);animation:skeleton-pulse 1.2s ease-in-out infinite;flex-shrink:0}.feed-skeleton-meta{display:flex;flex-direction:column;gap:.35rem;min-width:0;flex:1}.feed-skeleton-meta .skeleton-line{height:.9rem;border-radius:6px}.feed-skeleton-meta .skeleton-line:first-child{width:6rem}.feed-skeleton-meta .skeleton-line:last-child{width:4rem}.feed-skeleton-body{margin-top:1rem;display:flex;flex-direction:column;gap:.5rem}.feed-skeleton-body .skeleton-line{height:.95rem;border-radius:6px}.feed-skeleton-line-short{width:60%!important}.profile-feed-sidebar{display:flex;flex-direction:column;gap:1rem;position:sticky;top:5rem}@media(max-width:900px){.profile-feed-sidebar{display:none}.profile-mobile-summary{display:flex}}.profile-feed-main{min-width:0;max-width:620px}@media(max-width:900px){.profile-feed-main{max-width:none;order:0}}.profile-mobile-summary{display:none;align-items:center;justify-content:space-between;gap:.65rem;padding:.8rem .9rem;margin-bottom:.9rem}.profile-mobile-summary-trigger{width:100%;text-align:left;cursor:pointer;border:1px solid var(--glass-border)}.profile-mobile-summary-cta{color:var(--primary);font-size:var(--text-sm);font-weight:600;white-space:nowrap}.profile-mobile-summary-main{display:flex;align-items:center;gap:.6rem;min-width:0}.profile-mobile-summary-text{display:flex;flex-direction:column;min-width:0}.profile-mobile-summary-text strong{color:var(--text-heading);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-mobile-summary-text span{color:var(--text-muted);font-size:var(--text-xs)}@media(max-width:900px){.profile-mobile-summary{display:flex}}.profile-mobile-backdrop{position:fixed;inset:0;z-index:70;background:color-mix(in srgb,var(--bg) 38%,black);display:flex;justify-content:flex-end}.profile-mobile-panel{width:min(92vw,420px);height:100%;background:var(--surface);border-left:1px solid var(--border);box-shadow:-12px 0 30px #0003;padding:.75rem;overflow-y:auto}.profile-mobile-panel-head{position:sticky;top:0;z-index:1;display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding-bottom:.7rem;margin-bottom:.7rem;border-bottom:1px solid var(--border);background:var(--surface)}.profile-mobile-panel-content{display:flex;flex-direction:column;gap:.9rem}.feed-main{display:flex;flex-direction:column;gap:1.25rem}.profile-sidebar-card{padding:1.25rem}.profile-sidebar-avatar-wrap{display:flex;justify-content:center;margin-bottom:.75rem}.profile-sidebar-name{margin:0 0 .35rem;font-size:1.15rem;font-weight:700;color:var(--text-heading);text-align:center;line-height:1.3}.profile-sidebar-bio{margin:0 0 1rem;font-size:var(--text-sm);color:var(--text-muted);line-height:1.4;text-align:center;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.profile-sidebar-edit{display:block;width:100%;text-align:center;padding:.5rem 1rem;font-size:.9rem}.profile-sidebar-block-title{margin:0 0 .75rem;font-size:.85rem;font-weight:600;color:var(--text-heading);text-transform:uppercase;letter-spacing:.03em}.profile-sidebar-stats{display:flex;gap:1rem;margin-bottom:.75rem}.profile-sidebar-stat{display:flex;flex-direction:column;gap:.15rem}.profile-sidebar-stat-value{font-size:1.25rem;font-weight:700;color:var(--primary)}.profile-sidebar-stat-label{font-size:var(--text-xs);color:var(--text-muted)}.profile-sidebar-progress{height:6px;border-radius:999px;background:var(--surface-muted);overflow:hidden}.profile-sidebar-progress-fill{height:100%;border-radius:999px;background:var(--primary);transition:width .2s ease}.profile-sidebar-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.4rem}.profile-sidebar-list li{display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-wrap:wrap}.profile-sidebar-link{font-size:var(--text-sm);color:var(--primary);text-decoration:none;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-sidebar-link:hover{text-decoration:underline}.profile-sidebar-text{font-size:var(--text-sm);color:var(--text);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-sidebar-meta{font-size:var(--text-xs);color:var(--text-muted);flex-shrink:0}.profile-sidebar-more{font-size:var(--text-xs);color:var(--text-faint);font-style:italic}.profile-sidebar-skills{display:flex;flex-wrap:wrap;gap:.4rem}.profile-sidebar-skill{padding:.25rem .5rem;border-radius:6px;font-size:.8rem;background:var(--surface-muted);border:1px solid var(--border);color:var(--text)}.profile-sidebar-achievements{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.35rem}.profile-sidebar-achievements li{display:flex;align-items:center;gap:.4rem;font-size:var(--text-sm);color:var(--text-muted)}.profile-sidebar-achievements li.earned{color:var(--text)}.profile-sidebar-achievement-dot{font-weight:600;color:var(--primary);flex-shrink:0}.profile-sidebar-achievements li.earned .profile-sidebar-achievement-dot{color:var(--accent-green)}.profile-page{max-width:720px;margin:0 auto;padding:0 1rem 2rem;display:flex;flex-direction:column;gap:1.25rem}.profile-page--loading{align-items:center;justify-content:center;min-height:200px}.profile-header{padding:1.5rem}.profile-header-top{display:flex;gap:1.25rem;align-items:flex-start;flex-wrap:wrap}.profile-header-info{flex:1;min-width:0}.profile-name{margin:0 0 .5rem;font-size:1.5rem;font-weight:700;color:var(--text-heading)}.profile-bio{margin:0 0 1rem;color:var(--text-muted);line-height:1.5}.profile-section{padding:1.25rem 1.5rem}.profile-section-title{margin:0 0 1rem;font-size:1rem;font-weight:600;color:var(--text-heading);padding-bottom:.5rem;border-bottom:1px solid var(--glass-border)}.profile-progress-bars{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1rem}.profile-stat{display:flex;flex-direction:column;gap:.2rem}.profile-stat-label{font-size:var(--text-sm);color:var(--text-muted)}.profile-stat-value{font-size:1.1rem;font-weight:600;color:var(--text)}.profile-progress-track{height:8px;border-radius:999px;background:var(--surface-muted);overflow:hidden}.profile-progress-fill{height:100%;border-radius:999px;background:var(--primary);transition:width .2s ease}.profile-course-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.5rem}.profile-course-link,.profile-course-name{color:var(--primary);text-decoration:none;font-weight:500}.profile-course-link:hover{text-decoration:underline}.profile-course-status{margin-left:.5rem;font-size:var(--text-sm);color:var(--text-muted)}.profile-skills{display:flex;flex-wrap:wrap;gap:.5rem}.profile-skill-chip{padding:.35rem .75rem;border-radius:8px;font-size:.9rem;background:var(--surface-muted);border:1px solid var(--border);color:var(--text)}.profile-achievements{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.5rem}.profile-achievement{display:flex;align-items:center;gap:.5rem;color:var(--text-muted)}.profile-achievement.earned{color:var(--text)}.profile-achievement-icon{font-weight:600;color:var(--primary)}.profile-achievement.earned .profile-achievement-icon{color:var(--accent-green)}.profile-edit-page{max-width:780px;margin:0 auto;padding:0 1rem 2rem;display:flex;flex-direction:column;gap:1.25rem}.profile-edit-page--loading{align-items:center;justify-content:center;min-height:200px}.profile-edit-header{padding:1.35rem 1.5rem}.profile-edit-subtitle{margin:0;color:var(--text-muted);font-size:var(--text-sm)}.profile-edit-form-wrap{padding:1.35rem 1.5rem 1.5rem}.profile-edit-form{display:flex;flex-direction:column;gap:1rem}.profile-edit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem}.profile-edit-field label{display:block;margin-bottom:.35rem;font-size:.9rem;font-weight:500;color:var(--text)}.profile-edit-textarea{resize:vertical;min-height:96px}.profile-edit-field .login-input{width:100%}.profile-photo-picker-row{display:flex;align-items:flex-start;gap:.9rem}.profile-photo-picker-controls{display:flex;flex-direction:column;gap:.45rem;padding-top:.3rem}.profile-photo-card{padding:1rem;border:1px solid var(--border);border-radius:12px;background:color-mix(in srgb,var(--surface) 72%,transparent)}.profile-edit-url-toggle{margin-top:.55rem}.profile-edit-url-toggle summary{color:var(--text-muted);font-size:.86rem;cursor:pointer;-webkit-user-select:none;user-select:none}.profile-edit-url-toggle[open] summary{margin-bottom:.5rem}.profile-edit-actions{display:flex;gap:.75rem;margin-top:.5rem}@media(max-width:720px){.profile-edit-grid{grid-template-columns:1fr}.profile-photo-picker-row{flex-direction:column;align-items:stretch}.profile-photo-picker-controls{padding-top:0}.profile-edit-actions{flex-direction:column-reverse}.profile-edit-actions .button{width:100%}}.feed-page{max-width:620px;margin:0 auto;padding:0 1.25rem 3rem;display:flex;flex-direction:column;gap:1.5rem}.feed-hero{padding:.5rem 0 .25rem}.feed-hero-title{margin:0 0 .25rem;font-size:1.75rem;font-weight:700;color:var(--text-heading);letter-spacing:-.02em}.feed-hero-subtitle{margin:0;color:var(--text-muted);font-size:1rem;line-height:1.4}.feed-compose{padding:0;overflow:hidden}.feed-compose-inner{display:flex;gap:1rem;padding:1.25rem 1.5rem;align-items:flex-start}.feed-compose-inner .user-avatar,.feed-compose-inner .user-avatar-link{flex-shrink:0;margin-top:.15rem}.feed-compose-form{flex:1;min-width:0;display:flex;flex-direction:column;gap:.75rem}.feed-compose-input{width:100%;padding:.85rem 1rem;border:1px solid var(--border);border-radius:12px;background:var(--surface);color:var(--text);font-size:1rem;font-family:inherit;line-height:1.5;resize:vertical;min-height:88px;transition:border-color .15s,box-shadow .15s}.feed-compose-input::placeholder{color:var(--text-faint)}.feed-compose-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 22%,transparent)}.feed-compose-image-field{display:flex;flex-direction:column;gap:.5rem;padding:.75rem 0;border-top:1px solid var(--border)}.file-picker-row{display:flex;align-items:center;gap:.7rem}.file-picker-label{cursor:pointer}.file-picker-name{font-size:.85rem;color:var(--text-muted)}.file-picker-input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.feed-compose-image-preview{position:relative;width:120px;height:120px;border-radius:8px;overflow:hidden;border:1px solid var(--border);background:var(--surface-muted)}.feed-compose-image-preview-wrap{display:flex;justify-content:flex-start}.feed-compose-image-preview img{display:block;width:100%;height:100%;object-fit:cover}.feed-compose-image-delete{position:absolute;top:.3rem;right:.3rem;width:1.4rem;height:1.4rem;border-radius:999px;border:1px solid color-mix(in srgb,var(--border) 75%,transparent);background:color-mix(in srgb,var(--bg) 82%,transparent);color:var(--text);font-size:1rem;line-height:1;display:grid;place-items:center;cursor:pointer;transition:background .2s ease,transform .12s ease}.feed-compose-image-delete:hover{background:color-mix(in srgb,var(--surface-elevated) 88%,transparent);transform:scale(1.05)}.feed-compose-actions{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding-top:.5rem;border-top:1px solid var(--border)}.feed-compose-actions-left{display:flex;align-items:center;gap:.25rem}.feed-compose-action-btn{display:inline-flex;align-items:center;gap:.35rem;padding:.4rem .65rem;font-size:.9rem;color:var(--text-muted);background:none;border:none;border-radius:8px;cursor:pointer;transition:color .15s,background .15s}.feed-compose-action-btn:hover{color:var(--primary);background:color-mix(in srgb,var(--primary) 12%,transparent)}.feed-compose-action-icon{font-size:1.1rem;line-height:1}.feed-compose-action-label{font-weight:500}.feed-compose-submit{padding:.5rem 1.25rem;font-size:.95rem;font-weight:600;border-radius:10px}.feed-compose-submit-icon{width:2.4rem;min-width:2.4rem;height:2.4rem;padding:0;border-radius:999px;display:inline-flex;align-items:center;justify-content:center}.feed-compose-submit-glyph{font-size:1.05rem;line-height:1}@media(max-width:720px){.feed-compose-inner{flex-direction:row;align-items:flex-start;padding:.95rem}.feed-compose-form{width:100%}.feed-compose-avatar{width:32px!important;height:32px!important;margin-top:.2rem}.feed-compose-actions{flex-wrap:wrap}.feed-compose-actions-left{width:auto}.feed-compose-action-btn{width:2.4rem;height:2.4rem;padding:0;justify-content:center;border:1px solid var(--border);background:var(--surface);border-radius:999px}.feed-compose-action-label{display:none}.feed-compose-submit{width:auto}}.feed-item-post-image-wrap{margin-top:.75rem;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--surface-muted);max-height:400px}.feed-item-post-image{display:block;width:100%;height:auto;max-height:400px;object-fit:cover;vertical-align:middle}.feed-loading{display:flex;justify-content:center;padding:3rem 2rem}.feed-empty{padding:3rem 2rem;text-align:center;border:1px dashed var(--border);border-radius:16px;background:var(--surface-muted)}.feed-empty-icon{font-size:2.5rem;margin-bottom:.75rem;opacity:.7}.feed-empty-title{margin:0 0 .35rem;font-size:1.1rem;font-weight:600;color:var(--text-heading)}.feed-empty-text{margin:0;font-size:var(--text-sm);color:var(--text-muted);line-height:1.5}.feed-list{display:flex;flex-direction:column;gap:1.25rem}.feed-item{padding:0;overflow:hidden;border-radius:14px;border:1px solid var(--border);transition:border-color .2s,box-shadow .2s}.feed-item:hover{border-color:color-mix(in srgb,var(--primary) 35%,var(--border));box-shadow:0 4px 20px color-mix(in srgb,var(--border) 25%,transparent)}.feed-item--featured_course{padding:0;overflow:hidden}.feed-item-course-wrap{position:relative;height:200px;background:var(--surface-muted);display:block}.feed-item-course-poster{position:absolute;inset:0;background-size:cover;background-position:center;background-repeat:no-repeat}.feed-item-course-poster--placeholder{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,color-mix(in srgb,var(--primary) 18%,var(--surface)),color-mix(in srgb,var(--primary) 8%,var(--surface)))!important;font-size:1.75rem;font-weight:700;color:var(--primary);letter-spacing:.05em}.feed-item-course-gradient{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.88) 0%,rgba(0,0,0,.5) 45%,transparent 100%);pointer-events:none}.feed-item-badge{position:absolute;top:.75rem;left:.75rem;padding:.3rem .65rem;border-radius:8px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.feed-item-badge--featured{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.9);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.feed-item-badge--news{background:var(--glass-bg-strong);color:var(--text);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.feed-item-course-body{position:absolute;bottom:0;left:0;right:0;padding:1rem 1.25rem;display:flex;flex-direction:column;gap:.35rem}.feed-item-course-title{margin:0;font-size:1.1rem;font-weight:700;color:#fff;line-height:1.3;letter-spacing:-.01em;text-shadow:0 1px 2px rgba(0,0,0,.4)}.feed-item-course-meta{margin:0;font-size:.85rem;color:#ffffffe6;line-height:1.3;text-shadow:0 1px 2px rgba(0,0,0,.3)}.feed-item-course-cta{display:inline-flex;align-items:center;gap:.4rem;margin-top:.4rem;padding:.45rem .9rem;border-radius:8px;font-size:.9rem;font-weight:600;color:var(--primary-contrast);background:var(--primary);text-decoration:none;width:fit-content;transition:background .15s,transform .1s,box-shadow .15s}.feed-item-course-cta:hover{background:var(--primary-strong);box-shadow:0 2px 12px #00000059}.feed-item-course-cta .feed-item-cta-arrow{opacity:.95;transition:transform .15s}.feed-item-course-cta:hover .feed-item-cta-arrow{transform:translate(2px)}.feed-item-title{margin:0;font-size:1.1rem;font-weight:700;color:var(--text-heading);line-height:1.3;letter-spacing:-.01em}.feed-item-meta{margin:0;font-size:var(--text-sm);color:var(--text-muted);line-height:1.4}.feed-item-cta{display:inline-flex;align-items:center;gap:.4rem;margin-top:.5rem;padding:.5rem 1rem;border-radius:10px;font-size:.95rem;font-weight:600;color:var(--primary-contrast);background:var(--primary);text-decoration:none;width:fit-content;transition:background .15s,transform .1s,box-shadow .15s}.feed-item-cta:hover{background:var(--primary-strong);box-shadow:var(--hover-glow)}.feed-item-cta-arrow{opacity:.9;transition:transform .15s}.feed-item-cta:hover .feed-item-cta-arrow{transform:translate(2px)}.feed-item--news{padding:1.5rem}.feed-item--news .feed-item-badge{position:static;display:inline-block;margin-bottom:.75rem}.feed-item--news .feed-item-title{margin:0 0 .5rem}.feed-item--news .feed-item-body{margin:0 0 .75rem}.feed-item-link{display:inline-flex;align-items:center;gap:.25rem;color:var(--primary);font-size:.95rem;font-weight:600;text-decoration:none;transition:color .15s,gap .15s}.feed-item-link:hover{color:var(--primary-strong);gap:.4rem}.feed-item--user_post{padding:1.25rem 1.5rem}.feed-item-post-head{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.feed-item-post-head .user-avatar,.feed-item-post-head .user-avatar-link{flex-shrink:0}.feed-item-post-meta{display:flex;flex-direction:column;gap:.15rem;min-width:0}.feed-item-author{margin:0;font-size:1rem;font-weight:600;color:var(--text-heading);line-height:1.3}.feed-item-time{margin:0;font-size:var(--text-xs);color:var(--text-faint);line-height:1.3}.feed-item-body{margin:0;font-size:1rem;color:var(--text);line-height:1.55;white-space:pre-wrap;word-break:break-word}.browse-main{flex:1;padding-bottom:3rem;color:var(--text)}.browse-content{padding-top:1.5rem;max-width:1400px;margin:0 auto;width:100%}.browse-hero{padding:0 1.5rem 1.75rem}.browse-hero-title{margin:0 0 .35rem;font-size:clamp(1.5rem,3vw,1.75rem);font-weight:700;color:var(--text-heading);letter-spacing:-.02em}.browse-hero-sub{margin:0;font-size:1rem;color:var(--text-muted);line-height:1.5}.browse-progress-banner{margin:0 1.5rem 1.5rem;padding:1rem 1.25rem;border-radius:12px;background:var(--glass-bg);border:1px solid var(--border);box-shadow:var(--glass-shadow)}.browse-progress-banner-stats{display:flex;flex-wrap:wrap;gap:1.25rem 1.5rem}.browse-progress-stat{display:flex;align-items:baseline;gap:.35rem}.browse-progress-stat-value{font-size:1.5rem;font-weight:700;color:var(--primary);line-height:1}.browse-progress-stat-label{font-size:.9rem;color:var(--text-muted);font-weight:500}.browse-progress-banner-sub{margin:.5rem 0 0;font-size:.9rem;color:var(--text-muted);line-height:1.4}.browse-create-banner{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:0 1.5rem 1.5rem;padding:1rem 1.25rem;width:calc(100% - 3rem);max-width:none;box-sizing:border-box;cursor:pointer;text-align:left;font:inherit;color:inherit;border-radius:12px;text-decoration:none;background:var(--glass-bg);border:1px solid var(--border);box-shadow:var(--glass-shadow);transition:transform .15s,box-shadow .15s,border-color .15s}.browse-create-banner:hover{transform:translateY(-1px);box-shadow:0 6px 24px #00000014;border-color:color-mix(in srgb,var(--primary) 35%,var(--border))}.browse-create-banner-icon{display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border-radius:10px;background:color-mix(in srgb,var(--primary) 18%,transparent);color:var(--primary);font-size:0;line-height:0;flex-shrink:0;position:relative}.browse-create-banner-icon:before{content:"+";position:absolute;left:50%;top:44%;transform:translate(-50%,-50%);font-size:1.25rem;font-weight:600;line-height:1;color:var(--primary)}.browse-create-banner-text{display:flex;flex-direction:column;gap:.15rem;flex:1;min-width:0}.browse-create-banner-text strong{font-size:.95rem;font-weight:600;color:var(--text-heading);line-height:1.2}.browse-create-banner-text span{font-size:.85rem;color:var(--text-muted)}.browse-create-banner-cta{font-size:.9rem;font-weight:600;color:var(--primary);flex-shrink:0;line-height:1.2;display:inline-flex;align-items:center}.browse-create-banner:hover .browse-create-banner-cta{text-decoration:underline}.browse-toolbar .browse-filters{display:flex;flex-wrap:wrap;gap:.4rem}.browse-filters{display:flex;flex-wrap:wrap;gap:.5rem}.browse-filters-mobile-inline{display:none;padding:0 .85rem .85rem}.browse-filters-mobile-sheet{width:100%;max-height:min(56vh,420px);overflow-y:auto;border:1px solid var(--border);border-radius:12px;background:var(--surface);padding:.8rem .85rem;box-shadow:var(--glass-shadow)}.browse-filters-mobile-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.65rem}.browse-filter-chip{padding:.4rem .9rem;font-size:.9rem;font-weight:500;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--text-muted);cursor:pointer;transition:background .15s,color .15s,border-color .15s}.browse-filter-chip:hover{background:var(--surface-muted);color:var(--text);border-color:var(--border);box-shadow:var(--hover-glow)}.browse-filter-chip.active{background:var(--primary);color:var(--primary-contrast);border-color:var(--primary)}.browse-filter-chip.browse-filter-clear{color:var(--text-muted);border-style:dashed}.browse-filter-chip.browse-filter-clear:hover{color:var(--primary);border-color:var(--primary)}.browse-row{margin-bottom:2.25rem}.browse-row:last-child{margin-bottom:1rem}.browse-row-title{margin:0 0 .65rem 1.5rem;font-size:1.15rem;font-weight:600;color:var(--text-heading);letter-spacing:-.01em}.browse-row-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem;padding:0 1.5rem .5rem}@media(min-width:640px){.browse-row-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}}.browse-row-expand-wrap{padding:.5rem 1.5rem 0}.browse-row-expand-btn{background:none;border:none;padding:.35rem 0;font-size:.9rem;font-weight:500;color:var(--primary);cursor:pointer;transition:color .15s}.browse-row-expand-btn:hover{color:var(--primary-strong);text-decoration:underline}.browse-card{min-width:0;width:100%;max-width:240px;justify-self:start;height:100%;text-decoration:none;color:var(--text);border-radius:12px;overflow:hidden;background:var(--glass-bg);border:1px solid var(--border);box-shadow:var(--glass-shadow);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;display:flex;flex-direction:column;text-align:left;cursor:pointer;font:inherit;padding:0;position:relative}button.browse-card{appearance:none;border:1px solid var(--border)}.browse-card-arrow{position:absolute;right:.75rem;bottom:.75rem;font-size:1.1rem;color:var(--text-muted)}.browse-card:hover{transform:translateY(-3px);box-shadow:var(--hover-glow),0 12px 28px #0000001f;border-color:color-mix(in srgb,var(--primary) 35%,var(--border))}.browse-card-poster{flex-shrink:0;display:block;width:100%;aspect-ratio:16 / 9;background:var(--surface-muted);overflow:hidden;position:relative}.browse-card-poster--image{background-size:cover;background-position:center;background-repeat:no-repeat;transition:background-size .3s ease}.browse-card:hover .browse-card-poster--image{background-size:103%}.browse-card-poster-placeholder{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:2rem;font-weight:700;color:var(--text-muted)}.browse-card-info{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;padding:.75rem}.browse-card-title{margin:0 0 .25rem;font-size:.95rem;font-weight:600;line-height:1.3;color:var(--text-heading);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.browse-card-meta{margin:0;font-size:.8rem;color:var(--text-muted)}.browse-card-price{margin-top:auto;padding-top:.5rem;font-size:1rem;font-weight:700;color:var(--primary)}@media(max-width:900px){.browse-content{padding-top:.85rem}.browse-progress-banner,.browse-create-banner,.browse-toolbar,.browse-row-grid,.browse-row-expand-wrap{padding-left:.85rem;padding-right:.85rem}.browse-row-title{margin-left:.85rem;margin-right:.85rem}.browse-create-banner{align-items:flex-start;gap:.75rem;width:calc(100% - 1.7rem);margin:0 .85rem 1.5rem;padding:.85rem .95rem}.browse-create-banner-cta{font-size:.85rem}.browse-row-grid{grid-template-columns:1fr}.browse-card{max-width:none}}@media(max-width:720px){.browse-search{max-width:none}.browse-filters-row{display:none}.browse-filter-toggle{display:inline-flex}.browse-filters-mobile-inline{display:block}.browse-create-banner{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.55rem;margin:0 .85rem 1rem;padding:.75rem .85rem}.browse-create-banner-icon{width:1.85rem;height:1.85rem;font-size:.95rem;border-radius:8px;line-height:1;padding-bottom:0}.browse-create-banner-text{align-self:center}.browse-create-banner-text strong{font-size:.9rem;line-height:1.1}.browse-create-banner-subtext{display:none}.browse-create-banner-cta{width:auto;margin-left:0;font-size:.82rem;align-self:center}.browse-row-grid{grid-template-columns:1fr;gap:.7rem}.browse-card{max-width:none;width:100%;justify-self:stretch;min-height:0;display:grid;grid-template-columns:minmax(120px,36%) 1fr;align-items:stretch}.browse-card-poster{height:100%;min-height:108px;aspect-ratio:auto}.browse-card-info{padding:.62rem .68rem}.browse-card-title{font-size:.92rem}.browse-card-meta{font-size:.78rem}.browse-card-price{font-size:.92rem;padding-top:.35rem}.browse-card-arrow{right:.55rem;bottom:.55rem}}@keyframes skeleton-pulse{0%,to{opacity:.72}50%{opacity:1}}@keyframes skeleton-shimmer{0%{transform:translate(-130%)}to{transform:translate(130%)}}.skeleton-line{position:relative;overflow:hidden;display:block;height:1em;border-radius:4px;background:var(--surface-muted);animation:skeleton-pulse 1.55s ease-in-out infinite}.skeleton-line:after{content:"";position:absolute;inset:0;width:45%;background:linear-gradient(90deg,transparent 0%,color-mix(in srgb,var(--surface-elevated) 68%,transparent) 45%,transparent 100%);transform:translate(-130%);animation:skeleton-shimmer 1.35s ease-out infinite}@media(prefers-reduced-motion:reduce){.skeleton-line,.browse-card-poster-skeleton,.profile-skeleton-avatar,.feed-skeleton-avatar,.feed-skeleton-textarea,.course-detail-overlay-poster-skeleton,.course-detail-overlay-skeleton-cta{animation:none!important}.skeleton-line:after{animation:none}}.browse-card-skeleton{pointer-events:none;cursor:default}.browse-card-skeleton:hover{transform:none;box-shadow:var(--glass-shadow)}.browse-card-poster-skeleton{background:var(--surface-muted);animation:skeleton-pulse 1.2s ease-in-out infinite}.browse-card-skeleton-title{width:85%;height:1.1em;margin-bottom:.35rem}.browse-card-skeleton-meta{width:40%;height:.85em}.browse-card-skeleton-price{margin-top:auto;padding-top:.5rem;width:3rem;height:1em}.course-selection-skeleton{pointer-events:none;cursor:default}.course-selection-item--skeleton .course-selection-link{cursor:default}.skeleton-title{width:70%;height:1.2em}.skeleton-desc{width:90%;height:.9em;margin-top:.35rem}.skeleton-meta{width:4em;height:.85em;margin-top:.25rem}.course-detail-overlay-backdrop{overflow:hidden;padding:2rem 1rem;align-items:center;justify-content:center}.course-detail-overlay-split{display:grid;grid-template-columns:1fr 1fr;width:100%;max-width:960px;margin:auto;border-radius:20px;overflow:hidden;box-shadow:var(--glass-shadow);background:var(--glass-bg-strong);max-height:min(90vh,calc(100vh - 4rem))}.course-detail-overlay-brand{padding:0;background:#0a0a0f;position:relative;overflow:hidden;min-height:0}.course-detail-overlay-poster{position:absolute;inset:0;width:100%;height:100%;overflow:hidden;background:#00000026}.course-detail-overlay-poster-img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;object-position:center}.course-detail-overlay-poster-gradient{position:absolute;left:0;right:0;bottom:0;height:60%;background:linear-gradient(to top,rgba(0,0,0,.75) 0%,rgba(0,0,0,.4) 40%,transparent 100%);pointer-events:none}.course-detail-overlay-poster-caption{position:absolute;left:0;right:0;bottom:0;padding:1.25rem 1.25rem 1rem;z-index:1}.course-detail-overlay-poster-placeholder{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,color-mix(in srgb,var(--primary) 35%,var(--glass-bg)),color-mix(in srgb,var(--primary) 18%,var(--glass-bg)))}.course-detail-overlay-poster-placeholder .course-detail-overlay-poster-caption{padding:.75rem 1rem}.course-detail-overlay-poster-initials{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:2.5rem;font-weight:700;color:#ffffffe6;z-index:0}.course-detail-overlay-brand-eyebrow{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:#fff;margin:0 0 .35rem;text-shadow:0 0 2px rgba(0,0,0,1),0 1px 3px rgba(0,0,0,.9),0 2px 6px rgba(0,0,0,.7)}.course-detail-overlay-poster-caption .course-detail-overlay-title{color:#fff;text-shadow:0 0 2px rgba(0,0,0,1),0 0 4px rgba(0,0,0,.9),0 1px 3px rgba(0,0,0,.9),0 2px 6px rgba(0,0,0,.8)}.course-detail-overlay-brand .course-detail-overlay-title{margin:0;font-size:1.5rem;font-weight:700;color:#fff}.course-detail-overlay-panel{display:flex;flex-direction:column;max-height:min(90vh,calc(100vh - 4rem));overflow-y:auto;min-height:0;border-left:1px solid var(--glass-border)}.course-detail-overlay-price{font-size:1.25rem;font-weight:700;color:var(--primary)}.course-detail-overlay-title{margin:0;font-size:1.25rem;font-weight:600}.course-detail-overlay-close{background:none;border:none;font-size:1.5rem;line-height:1;color:var(--text-muted);cursor:pointer;padding:.25rem}.course-detail-overlay-close:hover{color:var(--text)}.course-detail-overlay-eyebrow{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin:0 0 .5rem}.course-detail-overlay-desc{font-size:.95rem;color:var(--text-muted);line-height:1.5;margin:0 0 1rem}.course-detail-overlay-benefits{margin:0 0 1.25rem;padding-left:1.25rem}.course-detail-overlay-benefits li{margin-bottom:.35rem;font-size:.9rem;color:var(--text-muted)}.course-detail-overlay-cta{margin-bottom:1rem}.course-detail-overlay-split--loading{min-height:420px}.course-detail-overlay-brand--skeleton{position:relative;min-height:0}.course-detail-overlay-poster-skeleton{position:absolute;inset:0;width:100%;height:100%;background:var(--glass-bg);animation:skeleton-pulse 1.2s ease-in-out infinite alternate}.course-detail-overlay-panel--skeleton{display:flex;flex-direction:column;justify-content:flex-start}.course-detail-overlay-skeleton-price{width:4rem;height:1.25rem;flex-shrink:0}.course-detail-overlay-skeleton-close{width:1.5rem;height:1.5rem;flex-shrink:0}.course-detail-overlay-skeleton-desc{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.course-detail-overlay-skeleton-desc .skeleton-line{height:.95rem;border-radius:4px}.course-detail-overlay-skeleton-benefits{list-style:none;padding-left:0;margin:0 0 1.25rem}.course-detail-overlay-skeleton-benefits li{margin-bottom:.35rem}.course-detail-overlay-skeleton-benefits .skeleton-line{display:inline-block;width:85%;height:.9rem;border-radius:4px}.course-detail-overlay-skeleton-cta{width:100%;height:2.75rem;border-radius:10px;background:var(--glass-bg);animation:skeleton-pulse 1.2s ease-in-out infinite alternate;margin-bottom:1rem}.course-detail-overlay-skeleton-back{width:7rem;height:.9rem;border-radius:4px}.course-detail-overlay-mobile-head{display:none}@media(max-width:720px){.course-detail-overlay-split{grid-template-columns:1fr;max-height:90vh;max-width:560px}.course-detail-overlay-brand{display:none}.course-detail-overlay-panel{border-left:none;max-height:min(90vh,calc(100vh - 2rem));padding:1.1rem 1rem calc(1rem + env(safe-area-inset-bottom))}.course-detail-overlay-mobile-head{display:block;margin-bottom:.45rem}.course-detail-overlay-mobile-head .course-detail-overlay-eyebrow{margin-bottom:.25rem}.course-detail-overlay-mobile-head .course-detail-overlay-title{font-size:1.25rem}}@media(max-width:480px){.app-shell{padding:.45rem .55rem 0}.topbar{padding-bottom:.5rem}.browse-topbar{padding:.5rem .6rem}}
