: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) 40%,var(--glass-border));box-shadow:var(--hover-glow)}.nav-link.active{background:var(--primary);border-color:var(--primary);color:var(--primary-contrast)}.page-wrap{overflow:hidden;min-height:0}.page-wrap--loading{display:flex;flex-direction:column;min-height:40vh}.page-loading-skeleton{display:flex;flex-direction:column;flex:1}.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:280px}.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}.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}@media(max-width:720px){.create-coming-soon-split{grid-template-columns:1fr;max-height:90vh}.create-coming-soon-brand{min-height:28vh}.create-coming-soon-panel{border-left:none;border-top:1px solid var(--glass-border)}}.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-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-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}.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}@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{max-width:640px;overflow-y:auto;padding-bottom:1rem;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{padding:1.25rem}.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-journey-card{grid-column:1}.journey-compact{grid-template-columns:repeat(2,1fr)}}@media(max-width:820px){.app-shell{padding:.5rem .75rem 0}.topbar-title,.topbar-stats{display:none}.topbar{gap:.4rem}.header-menu-panel{left:0;right:auto}.lesson-select{width:100%;min-width:0}.notes-bento{grid-template-columns:1fr}.notes-sidebar{max-height:180px}.lessons-bento{grid-template-columns:1fr}.lessons-nav{display:none}.journey-tiles{grid-template-columns:repeat(2,1fr)}.journey-tile-detail{position:fixed;top:auto;bottom:1rem;left:1rem;right:1rem;width:auto;z-index:20}.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-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}.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;gap:1rem;margin:0 1.5rem 1.5rem;padding:1rem 1.25rem;width:100%;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:1.25rem;font-weight:600;line-height:1;flex-shrink:0}.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)}.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}.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-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)}@keyframes skeleton-pulse{0%,to{opacity:.6}50%{opacity:1}}.skeleton-line{display:block;height:1em;border-radius:4px;background:var(--surface-muted);animation:skeleton-pulse 1.2s ease-in-out infinite}.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}@media(max-width:720px){.course-detail-overlay-split{grid-template-columns:1fr;max-height:90vh}.course-detail-overlay-brand{min-height:35vh}.course-detail-overlay-brand .course-detail-overlay-title{font-size:1.25rem}}
