@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono-400.ttf)format("truetype")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/ibm-plex-mono-600.ttf)format("truetype")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/ibm-plex-mono-700.ttf)format("truetype")}@font-face{font-family:Inter;font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/inter-latin.woff2)format("woff2")}:root{--bg-primary:#0b0e14;--bg-card:#ffffff06;--bg-card-hover:#ffffff0b;--bg-input:#ffffff08;--border-subtle:#ffffff0f;--border-medium:#ffffff1a;--text-primary:#e5e7eb;--text-secondary:#c9d1d9;--text-muted:#9ca3af;--text-dim:#6b7280;--text-faint:#4b5563;--color-ai-eng:#00e5a0;--color-sw-eng:#00b4d8;--color-architect:#8b5cf6;--color-qa:#ff6b35;--color-accent:#00e5a0;--color-error:#ef4444;--color-warning:#f59e0b;--font-mono:"IBM Plex Mono", "JetBrains Mono", "Fira Code", monospace;--font-body:"Inter", -apple-system, BlinkMacSystemFont, sans-serif;--base-font-size:17px;--sidebar-width:280px;--topbar-height:52px;--topbar-height-safe:calc(52px + env(safe-area-inset-top));--content-max-width:860px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px}[data-theme=light]{--bg-primary:#f8f9fa;--bg-card:#00000009;--bg-card-hover:#0000000f;--bg-input:#00000008;--border-subtle:#0000001f;--border-medium:#0003;--text-primary:#1a1a2e;--text-secondary:#374151;--text-muted:#4b5563;--text-dim:#6b7280;--text-faint:#9ca3af;--color-accent:#059669;--color-error:#dc2626;--color-warning:#d97706}[data-theme=light] body:before{background-image:linear-gradient(#00000008 1px,#0000 1px),linear-gradient(90deg,#00000008 1px,#0000 1px)}[data-theme=light] ::-webkit-scrollbar-thumb{background:#00000026}[data-theme=light] ::-webkit-scrollbar-thumb:hover{background:#00000040}[data-theme=light] ::selection{color:#1a1a2e;background:#05966933}[data-theme=light] .inline-code{color:#065f46;background:#05966914}[data-theme=light] .btn-secondary{background:#0000000a;border-color:#0000001a}[data-theme=light] .btn-secondary:hover{background:#00000012}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{font-size:var(--base-font-size);-webkit-text-size-adjust:100%}body{background:var(--bg-primary);color:var(--text-secondary);font-family:var(--font-body);-webkit-font-smoothing:antialiased;min-height:100vh;padding-bottom:env(safe-area-inset-bottom);line-height:1.65;overflow-x:hidden}#app{min-height:100vh}body:before{content:"";z-index:0;pointer-events:none;background-image:linear-gradient(#ffffff05 1px,#0000 1px),linear-gradient(90deg,#ffffff05 1px,#0000 1px);background-size:48px 48px;position:fixed;inset:0}h1,h2,h3,h4{font-family:var(--font-mono);color:var(--text-primary);font-weight:700;line-height:1.3}h1{font-size:1.35rem}h2{font-size:1.15rem}h3{font-size:1rem}p{color:var(--text-secondary);font-size:.88rem;line-height:1.75}strong{color:var(--text-primary);font-weight:700}.card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:20px}.card-hover:hover{background:var(--bg-card-hover);border-color:var(--border-medium)}.btn{font-size:.8rem;font-weight:700;font-family:var(--font-mono);cursor:pointer;border:none;border-radius:8px;align-items:center;gap:6px;padding:10px 22px;transition:all .2s;display:inline-flex}.btn-primary{background:var(--color-accent);color:var(--bg-primary)}.btn-primary:hover{filter:brightness(1.1)}.btn-secondary{color:var(--text-muted);border:1px solid var(--border-subtle);background:#ffffff0a}.btn-secondary:hover{color:var(--text-secondary);background:#ffffff0f}pre{font-family:var(--font-mono);color:#c9d1d9;white-space:pre-wrap;word-break:break-word;background:#0d1117;border-radius:0 0 8px 8px;margin:0;padding:16px;font-size:.75rem;line-height:1.65;overflow-x:auto}.code-header{background:#161b22;border:1px solid #30363d;border-bottom:none;border-radius:8px 8px 0 0;justify-content:space-between;align-items:center;padding:7px 12px;display:flex}.code-header span{color:#8b949e;font-size:.7rem;font-family:var(--font-mono)}.code-dots{gap:4px;display:flex}.code-dots span{opacity:.7;border-radius:50%;width:9px;height:9px}.hl-keyword{color:#ff7b72}.hl-string{color:#a5d6ff}.hl-number{color:#79c0ff}.hl-comment{color:#8b949e;font-style:italic}.hl-builtin{color:#d2a8ff}.hl-decorator{color:#ffa657}.inline-code{color:#7ee787;font-size:.8em;font-family:var(--font-mono);background:#6edc8c14;border-radius:4px;padding:2px 6px}.badge{text-transform:uppercase;letter-spacing:.5px;font-size:.6rem;font-weight:700;font-family:var(--font-mono);border-radius:4px;padding:3px 8px;display:inline-block}.type-concept,.type-concept\+code{color:#8b5cf6;background:#8b5cf61a}.type-hands-on{color:#ff6b35;background:#ff6b351a}.type-assessment{color:#ec4899;background:#ec48991a}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#fff3}::selection{color:#fff;background:#00e5a040}@media (width<=768px){:root{--sidebar-width:0px}}.fade-in{animation:.3s ease-out fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.lesson-content p{margin:5px 0;line-height:1.75}.lesson-content ul{padding:0;list-style:none}.lesson-content li{color:var(--text-secondary);gap:10px;margin:5px 0 5px 8px;font-size:.88rem;line-height:1.75;display:flex}.lesson-content li:before{content:"•";color:var(--text-faint);flex-shrink:0}.lesson-content strong{color:var(--text-primary)}[data-theme=light] .top-nav,[data-theme=light] .lesson-topbar{background:#f8f9fae6!important}[data-theme=light] .nav-links button:hover,[data-theme=light] .module-row:hover,[data-theme=light] .btn-ghost:hover{background:#0000000a!important}[data-theme=light] .progress-track{background:#0000000f!important}[data-theme=light] .phase-priority{background:#0000000d!important}[data-theme=light] .module-list{background:#00000003!important}[data-theme=light] .flash-card{background:#0000000a!important}[data-theme=light] .portfolio-item,[data-theme=light] .quiz-option,[data-theme=light] .quiz-category{background:#00000008!important}[data-theme=light] .sidebar-item:hover,[data-theme=light] .sidebar-item.active{background:#0000000a!important}.dash.svelte-1pqj2dv{max-width:720px;margin:0 auto;padding:32px 20px 80px}.hero.svelte-1pqj2dv{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;display:flex}.hero.svelte-1pqj2dv h1:where(.svelte-1pqj2dv){margin:0 0 4px;font-size:1.1rem;font-weight:800;line-height:1.3}.arrow.svelte-1pqj2dv{color:var(--color-accent)}.hero-sub.svelte-1pqj2dv{color:var(--text-dim);font-size:.72rem;font-family:var(--font-mono);margin:0}.hero-progress.svelte-1pqj2dv{align-items:center;gap:10px;display:flex}.pct.svelte-1pqj2dv{color:var(--text-primary);font-size:1.1rem;font-weight:800;font-family:var(--font-mono);display:block}.pct-label.svelte-1pqj2dv{color:var(--text-dim);font-size:.6rem}.continue-card.svelte-1pqj2dv{cursor:pointer;text-align:left;background:#00e5a00a;border:1px solid #00e5a026;border-radius:12px;justify-content:space-between;align-items:center;width:100%;margin-bottom:24px;padding:18px 22px;font-family:inherit;transition:all .2s;display:flex}.continue-card.svelte-1pqj2dv:hover{background:#00e5a012;border-color:#00e5a040}.continue-label.svelte-1pqj2dv{text-transform:uppercase;letter-spacing:1px;color:var(--color-accent);font-size:.6rem;font-weight:700;font-family:var(--font-mono);margin-bottom:4px;display:block}.continue-title.svelte-1pqj2dv{color:var(--text-primary);font-size:.95rem;font-weight:700;font-family:var(--font-mono);margin-bottom:2px;display:block}.continue-phase.svelte-1pqj2dv{font-size:.68rem;font-weight:600;font-family:var(--font-mono)}.continue-arrow.svelte-1pqj2dv{font-size:1.5rem;font-weight:300;transition:transform .2s}.continue-card.svelte-1pqj2dv:hover .continue-arrow:where(.svelte-1pqj2dv){transform:translate(4px)}.phases.svelte-1pqj2dv{flex-direction:column;gap:6px;display:flex}.phase-header.svelte-1pqj2dv{background:var(--bg-card);border:1px solid var(--border-subtle);cursor:pointer;text-align:left;border-radius:10px;justify-content:space-between;align-items:center;width:100%;padding:14px 16px;font-family:inherit;transition:all .15s;display:flex}.phase-header.svelte-1pqj2dv:hover{background:var(--bg-card-hover)}.phase-header.open.svelte-1pqj2dv{border-bottom-color:#0000;border-radius:10px 10px 0 0}.phase-left.svelte-1pqj2dv{flex:1;align-items:flex-start;gap:12px;display:flex}.phase-indicator.svelte-1pqj2dv{border-radius:50%;flex-shrink:0;width:6px;height:6px;margin-top:7px}.phase-meta.svelte-1pqj2dv{align-items:center;gap:8px;margin-bottom:1px;display:flex}.phase-meta.svelte-1pqj2dv span:where(.svelte-1pqj2dv):first-child{text-transform:uppercase;letter-spacing:.5px;font-size:.6rem;font-weight:700;font-family:var(--font-mono)}.phase-weeks.svelte-1pqj2dv{color:var(--text-faint);font-size:.58rem}.phase-priority.svelte-1pqj2dv{color:var(--text-dim);font-size:.52rem;font-weight:600;font-family:var(--font-mono);background:#ffffff0a;border-radius:3px;padding:1px 5px}.phase-title.svelte-1pqj2dv{color:var(--text-primary);font-size:.88rem;font-weight:700;font-family:var(--font-mono)}.phase-subtitle.svelte-1pqj2dv{color:var(--text-dim);margin-top:1px;font-size:.68rem}.phase-right.svelte-1pqj2dv{flex-shrink:0;align-items:center;gap:8px;display:flex}.phase-chevron.svelte-1pqj2dv{color:var(--text-dim);font-size:1rem;transition:transform .2s}.phase-chevron.rotated.svelte-1pqj2dv{transform:rotate(90deg)}.module-list.svelte-1pqj2dv{border:1px solid var(--border-subtle);background:#ffffff03;border-top:none;border-radius:0 0 10px 10px;padding:4px 8px 8px}.module-row.svelte-1pqj2dv{cursor:pointer;text-align:left;background:0 0;border:none;border-radius:8px;align-items:center;gap:10px;width:100%;padding:10px;font-family:inherit;transition:background .15s;display:flex}.module-row.svelte-1pqj2dv:hover{background:#ffffff08}.module-num.svelte-1pqj2dv{border:1.5px solid var(--border-subtle);width:24px;height:24px;font-size:.62rem;font-weight:700;font-family:var(--font-mono);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.module-info.svelte-1pqj2dv{flex:1;min-width:0}.module-name.svelte-1pqj2dv{color:var(--text-primary);font-size:.78rem;font-weight:600}.module-desc.svelte-1pqj2dv{color:var(--text-dim);margin-top:1px;font-size:.65rem;line-height:1.4}.module-tags.svelte-1pqj2dv{flex-shrink:0;align-items:center;gap:6px;display:flex}.ready-tag.svelte-1pqj2dv{color:#00e5a0;font-size:.48rem;font-weight:700;font-family:var(--font-mono);background:#00e5a014;border-radius:3px;padding:2px 6px}.type-tag.svelte-1pqj2dv{text-transform:uppercase;font-size:.5rem;font-weight:700;font-family:var(--font-mono);border-radius:3px;padding:2px 6px}.duration-tag.svelte-1pqj2dv{color:var(--text-faint);font-size:.58rem}.capstone.svelte-1pqj2dv{background:#00e5a008;border:1px dashed #00e5a026;border-radius:8px;align-items:center;gap:8px;margin:4px 2px;padding:10px 12px;font-size:.68rem;display:flex}.capstone-label.svelte-1pqj2dv{color:#00e5a0;font-weight:700;font-family:var(--font-mono)}.capstone-text.svelte-1pqj2dv{color:var(--text-muted)}@media (width<=640px){.dash.svelte-1pqj2dv{padding:20px 14px 80px}.hero.svelte-1pqj2dv h1:where(.svelte-1pqj2dv){font-size:.95rem}.module-tags.svelte-1pqj2dv{display:none}}.concept-section.svelte-1l2boj2{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:12px;padding:22px 24px}.concept-title.svelte-1l2boj2{font-size:.95rem;font-weight:700;font-family:var(--font-mono);color:var(--text-primary);margin:0 0 10px}.concept-body.svelte-1l2boj2{margin-top:4px}.concept-body.svelte-1l2boj2 p{color:var(--text-secondary);margin:8px 0;font-size:.88rem;line-height:1.85}.concept-body.svelte-1l2boj2 strong{color:var(--text-primary);font-weight:700}.concept-body.svelte-1l2boj2 ul{margin:8px 0;padding:0;list-style:none}.concept-body.svelte-1l2boj2 li{color:var(--text-secondary);gap:10px;margin:6px 0;padding-left:4px;font-size:.88rem;line-height:1.8;display:flex}.concept-body.svelte-1l2boj2 li:before{content:"•";color:var(--text-faint);flex-shrink:0;margin-top:0}.code-block.svelte-mce9zs{border:1px solid #30363d;border-radius:8px;margin:8px 0;overflow:hidden}.copy-btn.svelte-mce9zs{color:#8b949e;font-size:.65rem;font-family:var(--font-mono);cursor:pointer;background:0 0;border:1px solid #30363d;border-radius:4px;padding:3px 8px;transition:all .2s}.copy-btn.svelte-mce9zs:hover{color:#c9d1d9;border-color:#484f58}.code-section.svelte-1bci1b5{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:12px;padding:22px 24px}.code-title.svelte-1bci1b5{font-size:.9rem;font-weight:700;font-family:var(--font-mono);color:var(--text-primary);margin:0 0 10px}.code-intro.svelte-1bci1b5{color:var(--text-secondary);margin:0 0 16px;font-size:.85rem;line-height:1.75}.annotations.svelte-1bci1b5{flex-direction:column;gap:6px;margin-top:12px;display:flex}.annotation.svelte-1bci1b5{align-items:baseline;gap:10px;font-size:.78rem;line-height:1.5;display:flex}.ann-line.svelte-1bci1b5{font-family:var(--font-mono);color:var(--color-accent,#00e5a0);flex-shrink:0;font-size:.7rem;font-weight:700}.ann-text.svelte-1bci1b5{color:var(--text-muted)}.quiz-heading.svelte-15jb2dl{color:var(--text-primary);font-size:.85rem;font-weight:700;font-family:var(--font-mono);margin-bottom:8px}.quiz-question.svelte-15jb2dl{margin:12px 0 14px;font-size:.95rem;font-weight:700;line-height:1.5}.options.svelte-15jb2dl{flex-direction:column;gap:6px;display:flex}.option.svelte-15jb2dl{background:var(--bg-card);border:1px solid var(--border-subtle);color:var(--text-secondary);text-align:left;border-radius:8px;align-items:center;gap:10px;width:100%;padding:11px 13px;font-family:inherit;font-size:.82rem;transition:all .2s;display:flex}.option.svelte-15jb2dl:hover:not(.correct):not(.incorrect){background:var(--bg-card-hover)}.option.selected.svelte-15jb2dl{background:#8b5cf61a;border-color:#8b5cf6}.option.correct.svelte-15jb2dl{background:#00e5a01a;border-color:#00e5a0}.option.incorrect.svelte-15jb2dl{background:#ef44441a;border-color:#ef4444}.option-marker.svelte-15jb2dl{border:2px solid var(--border-subtle);width:22px;height:22px;color:var(--text-muted);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.68rem;font-weight:700;display:inline-flex}.marker-correct.svelte-15jb2dl{color:var(--bg-primary);background:#00e5a0;border-color:#00e5a0}.marker-incorrect.svelte-15jb2dl{color:var(--bg-primary);background:#ef4444;border-color:#ef4444}.btn-check.svelte-15jb2dl{color:#fff;font-size:.8rem;font-weight:700;font-family:var(--font-mono);cursor:pointer;background:#8b5cf6;border:none;border-radius:8px;margin-top:12px;padding:10px 22px}.explanation.svelte-15jb2dl{border-radius:8px;margin-top:12px;padding:14px}.correct-bg.svelte-15jb2dl{background:#00e5a00f;border:1px solid #00e5a026}.incorrect-bg.svelte-15jb2dl{background:#ef44440f;border:1px solid #ef444426}.explanation-header.svelte-15jb2dl{font-size:.8rem;font-weight:700;font-family:var(--font-mono);margin-bottom:4px}.explanation-text.svelte-15jb2dl{color:var(--text-muted);margin:0;font-size:.8rem;line-height:1.7}.reflect-section.svelte-1wo3eg5{border-left:3px solid var(--color-accent,#00e5a0);background:#00e5a00f;border-radius:0 8px 8px 0;padding:18px 22px}.reflect-body.svelte-1wo3eg5 p{color:var(--text-secondary);margin:6px 0;font-size:.86rem;font-style:italic;line-height:1.85}.reflect-body.svelte-1wo3eg5 strong{color:var(--text-primary);font-style:normal;font-weight:700}.exercise-section.svelte-pejd4y{background:var(--bg-card);border:1px solid #ff6b354d;border-radius:12px;padding:22px 24px}.exercise-header.svelte-pejd4y{color:#ff6b35;font-size:.7rem;font-weight:700;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px}.exercise-prompt.svelte-pejd4y p{color:var(--text-secondary);margin:6px 0;font-size:.88rem;line-height:1.85}.toggle-btn.svelte-pejd4y{font-size:.72rem;font-weight:600;font-family:var(--font-mono);color:var(--text-muted);border:1px solid var(--border-subtle);cursor:pointer;background:0 0;border-radius:6px;margin-top:12px;padding:6px 14px;transition:all .15s;display:inline-block}.toggle-btn.svelte-pejd4y:hover{color:var(--text-secondary);border-color:var(--border-medium)}.solution-btn.svelte-pejd4y{margin-left:8px}.exercise-hint.svelte-pejd4y{background:#ff6b350f;border-radius:8px;margin-top:10px;padding:12px 16px}.exercise-hint.svelte-pejd4y p{color:var(--text-secondary);margin:4px 0;font-size:.85rem;line-height:1.75}.exercise-solution.svelte-pejd4y{margin-top:10px}.exercise-solution.svelte-pejd4y p{color:var(--text-secondary);margin:4px 0;font-size:.85rem;line-height:1.75}.challenge-section.svelte-1qit4pd{background:var(--bg-card);border:1px solid #ef444440;border-radius:12px;padding:22px 24px}.challenge-header.svelte-1qit4pd{color:#ef4444;font-size:.7rem;font-weight:700;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px}.challenge-problem.svelte-1qit4pd p{color:var(--text-secondary);margin:6px 0;font-size:.88rem;line-height:1.85}.challenge-code.svelte-1qit4pd{margin-top:12px}.toggle-btn.svelte-1qit4pd{font-size:.72rem;font-weight:600;font-family:var(--font-mono);color:var(--text-muted);border:1px solid var(--border-subtle);cursor:pointer;background:0 0;border-radius:6px;margin-top:14px;padding:6px 14px;transition:all .15s;display:inline-block}.toggle-btn.svelte-1qit4pd:hover{color:var(--text-secondary);border-color:var(--border-medium)}.challenge-solution.svelte-1qit4pd{background:#ef44440f;border-radius:8px;margin-top:12px;padding:14px 16px}.challenge-solution.svelte-1qit4pd p{color:var(--text-secondary);margin:4px 0;font-size:.85rem;line-height:1.75}.insight-section.svelte-1yxtqvy{background:#8b5cf60f;border-left:3px solid #8b5cf6;border-radius:0 8px 8px 0;padding:18px 22px}.insight-body.svelte-1yxtqvy p{color:var(--text-secondary);margin:6px 0;font-size:.86rem;line-height:1.85}.insight-body.svelte-1yxtqvy strong{color:var(--text-primary);font-weight:700}.agent-label.svelte-2jvcko{font-size:.72rem;font-family:var(--font-mono);align-items:center;gap:6px;display:inline-flex}.agent-name.svelte-2jvcko{font-weight:700}.agent-sep.svelte-2jvcko{color:var(--text-faint)}.agent-title.svelte-2jvcko{color:var(--text-muted);font-weight:500}.lesson-shell.svelte-3tkrej{flex-direction:column;min-height:100vh;display:flex}.lesson-topbar.svelte-3tkrej{padding:env(safe-area-inset-top) 20px 0;height:calc(44px + env(safe-area-inset-top));border-bottom:1px solid var(--border-subtle);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:20;background:#0b0e14e6;justify-content:space-between;align-items:center;gap:16px;display:flex;position:sticky;top:0}.back-btn.svelte-3tkrej{color:var(--text-dim);font-size:.72rem;font-family:var(--font-mono);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:4px 0;transition:color .15s}.back-btn.svelte-3tkrej:hover{color:var(--text-secondary)}.topbar-center.svelte-3tkrej{flex:1;align-items:center;gap:10px;max-width:400px;margin:0 auto;display:flex}.step-label.svelte-3tkrej{color:var(--text-dim);font-size:.62rem;font-family:var(--font-mono);flex-shrink:0;font-weight:600}.progress-track.svelte-3tkrej{background:#ffffff0f;border-radius:2px;flex:1;height:3px;overflow:hidden}.progress-fill.svelte-3tkrej{border-radius:2px;height:100%;transition:width .4s}.font-btn.svelte-3tkrej{border:1px solid var(--border-subtle);color:var(--text-dim);font-family:var(--font-mono);cursor:pointer;background:0 0;border-radius:4px;flex-shrink:0;padding:3px 8px;font-size:.62rem}.theme-btn.svelte-3tkrej{margin-left:4px;font-size:.8rem;line-height:1}.lesson-content-area.svelte-3tkrej{flex:1;overflow-y:auto}.lesson-container.svelte-3tkrej{max-width:680px;margin:0 auto;padding:28px 20px 100px}.lesson-header.svelte-3tkrej{margin-bottom:24px}.lesson-meta.svelte-3tkrej{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.type-badge.svelte-3tkrej{text-transform:uppercase;font-size:.58rem;font-weight:700;font-family:var(--font-mono);border-radius:4px;padding:3px 8px}.phase-badge.svelte-3tkrej{font-size:.62rem;font-weight:600;font-family:var(--font-mono)}.duration-badge.svelte-3tkrej{color:var(--text-dim);font-size:.58rem}.lesson-title.svelte-3tkrej{margin:0;font-size:1.35rem;font-weight:800;line-height:1.25}.lesson-agent.svelte-3tkrej{margin-top:8px}.section-item.svelte-3tkrej{opacity:0;margin-bottom:24px;transition:opacity .4s,transform .4s;transform:translateY(12px)}.section-item.visible{opacity:1;transform:translateY(0)}.section-counter.svelte-3tkrej{color:var(--text-dim);font-size:.58rem;font-family:var(--font-mono);margin-bottom:6px;font-weight:600;display:block}.lesson-completion.svelte-3tkrej{border-top:1px solid var(--border-subtle);flex-wrap:wrap;justify-content:center;gap:10px;margin-top:28px;padding-top:20px;display:flex}.stub-card.svelte-3tkrej{text-align:center;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:14px;padding:48px 24px}.stub-icon.svelte-3tkrej{margin-bottom:12px;font-size:2.5rem}.stub-card.svelte-3tkrej h2:where(.svelte-3tkrej){margin:0 0 8px;font-size:1.05rem}.stub-desc.svelte-3tkrej{color:var(--text-muted);max-width:480px;margin:0 auto 12px;line-height:1.7}.stub-hint.svelte-3tkrej{color:var(--text-dim);max-width:420px;margin:0 auto 20px;font-size:.75rem}.stub-actions.svelte-3tkrej{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.btn-action.svelte-3tkrej{background:var(--color-accent);color:var(--bg-primary);font-size:.78rem;font-weight:700;font-family:var(--font-mono);cursor:pointer;border:none;border-radius:8px;padding:10px 22px;transition:all .15s}.btn-action.svelte-3tkrej:hover{filter:brightness(1.1)}.btn-action.done.svelte-3tkrej{background:var(--bg-card);color:var(--text-dim);border:1px solid var(--border-subtle)}.btn-ghost.svelte-3tkrej{color:var(--text-muted);border:1px solid var(--border-subtle);font-size:.75rem;font-weight:600;font-family:var(--font-mono);cursor:pointer;background:0 0;border-radius:8px;padding:10px 18px;transition:all .15s}.btn-ghost.svelte-3tkrej:hover{color:var(--text-secondary);background:#ffffff08}.lesson-empty.svelte-3tkrej,.lesson-loading.svelte-3tkrej{color:var(--text-dim);text-align:center;padding:48px}@media (width<=640px){.lesson-container.svelte-3tkrej{padding:20px 14px 100px}.lesson-title.svelte-3tkrej{font-size:1.1rem}}.glossary.svelte-mtlml2{max-width:var(--content-max-width);margin:0 auto;padding:22px 16px 90px}.glossary-subtitle.svelte-mtlml2{color:var(--text-dim);margin:2px 0 16px;font-size:.72rem}.glossary-controls.svelte-mtlml2{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.search-input.svelte-mtlml2,.phase-filter.svelte-mtlml2{background:var(--bg-input);border:1px solid var(--border-subtle);color:var(--text-secondary);font-family:var(--font-mono);border-radius:8px;outline:none;padding:9px 14px;font-size:.78rem;transition:border-color .2s}.search-input.svelte-mtlml2:focus,.phase-filter.svelte-mtlml2:focus{border-color:var(--border-medium)}.search-input.svelte-mtlml2{flex:1;min-width:200px}.phase-filter.svelte-mtlml2{min-width:160px}.phase-filter.svelte-mtlml2 option:where(.svelte-mtlml2){background:var(--bg-primary);color:var(--text-secondary)}.term-list.svelte-mtlml2{flex-direction:column;gap:6px;display:flex}.term-card.svelte-mtlml2{padding:14px 16px}.term-header.svelte-mtlml2{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.term-name.svelte-mtlml2{font-family:var(--font-mono);color:var(--text-primary);font-size:.85rem;font-weight:700}.term-phase.svelte-mtlml2{font-size:.58rem;font-weight:600;font-family:var(--font-mono)}.term-def.svelte-mtlml2{color:var(--text-muted);margin:0;font-size:.78rem;line-height:1.7}.no-results.svelte-mtlml2{color:var(--text-dim);text-align:center;padding:32px;font-size:.82rem}.flashcards.svelte-1k7dlmz{max-width:var(--content-max-width);margin:0 auto;padding:22px 16px 90px}.fc-subtitle.svelte-1k7dlmz{color:var(--text-dim);margin:2px 0 16px;font-size:.72rem}.deck-grid.svelte-1k7dlmz{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;display:grid}.deck-card.svelte-1k7dlmz{text-align:left;cursor:pointer;padding:16px;font-family:inherit}.deck-dot.svelte-1k7dlmz{border-radius:50%;width:10px;height:10px;margin-bottom:8px}.deck-title.svelte-1k7dlmz{margin-bottom:6px;font-size:.85rem}.deck-meta.svelte-1k7dlmz{color:var(--text-dim);justify-content:space-between;font-size:.6rem;display:flex}.back-btn.svelte-1k7dlmz{color:var(--text-dim);cursor:pointer;background:0 0;border:none;margin-bottom:10px;padding:4px 0;font-family:inherit;font-size:.75rem}.fc-header.svelte-1k7dlmz{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.fc-progress.svelte-1k7dlmz{color:var(--text-dim);font-size:.72rem;font-family:var(--font-mono)}.progress-bar.svelte-1k7dlmz{background:#ffffff12;border-radius:2px;height:4px;margin-bottom:20px;overflow:hidden}.progress-fill.svelte-1k7dlmz{background:var(--color-accent);border-radius:2px;height:100%;transition:width .4s}.flip-card.svelte-1k7dlmz{cursor:pointer;text-align:center;flex-direction:column;justify-content:center;align-items:center;width:100%;min-height:200px;padding:32px 24px;font-family:inherit;transition:all .3s;display:flex}.flip-card.svelte-1k7dlmz:hover{background:var(--bg-card-hover)}.flip-label.svelte-1k7dlmz{color:var(--text-faint);text-transform:uppercase;letter-spacing:1px;font-size:.6rem;font-weight:600;font-family:var(--font-mono);margin-bottom:12px}.flip-text.svelte-1k7dlmz{color:var(--text-primary);max-width:500px;font-size:.92rem;line-height:1.7}.flip-hint.svelte-1k7dlmz{color:var(--text-faint);margin-top:16px;font-size:.65rem}.fc-actions.svelte-1k7dlmz{justify-content:center;gap:12px;margin-top:16px;display:flex}.portfolio.svelte-1uh323v{max-width:var(--content-max-width);margin:0 auto;padding:22px 16px 90px}.port-subtitle.svelte-1uh323v{color:var(--text-dim);margin:2px 0 16px;font-size:.72rem}.project-grid.svelte-1uh323v{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;display:grid}.project-card.svelte-1uh323v{padding:18px;transition:all .2s}.project-card.ready.svelte-1uh323v{border-color:#00e5a026}.project-header.svelte-1uh323v{align-items:center;gap:8px;margin-bottom:8px;display:flex}.project-dot.svelte-1uh323v{border-radius:50%;width:8px;height:8px}.project-phase.svelte-1uh323v{font-size:.6rem;font-weight:600;font-family:var(--font-mono)}.project-title.svelte-1uh323v{margin-bottom:6px;font-size:.9rem}.project-desc.svelte-1uh323v{color:var(--text-muted);margin:0 0 10px;font-size:.72rem;line-height:1.6}.project-skills.svelte-1uh323v{flex-wrap:wrap;gap:4px;margin-bottom:10px;display:flex}.skill-tag.svelte-1uh323v{color:var(--text-dim);font-size:.55rem;font-weight:600;font-family:var(--font-mono);background:#ffffff0a;border-radius:4px;padding:2px 7px}.project-footer.svelte-1uh323v{justify-content:space-between;align-items:center;display:flex}.difficulty.svelte-1uh323v{color:var(--text-dim);font-size:.58rem;font-weight:700;font-family:var(--font-mono)}.difficulty.expert.svelte-1uh323v{color:#f59e0b}.phase-pct.svelte-1uh323v{font-size:.6rem;font-weight:600;font-family:var(--font-mono)}.question-card.svelte-s1zyh8{padding:20px}.q-text.svelte-s1zyh8{margin-bottom:14px;font-size:.92rem;line-height:1.5}.q-options.svelte-s1zyh8{flex-direction:column;gap:6px;display:flex}.q-option.svelte-s1zyh8{background:var(--bg-card);border:1px solid var(--border-subtle);color:var(--text-secondary);text-align:left;border-radius:8px;align-items:flex-start;gap:10px;width:100%;padding:11px 13px;font-family:inherit;font-size:.78rem;transition:all .2s;display:flex}.q-option.svelte-s1zyh8:hover:not(.correct):not(.incorrect){background:var(--bg-card-hover)}.q-option.selected.svelte-s1zyh8{background:#8b5cf61a;border-color:#8b5cf6}.q-option.correct.svelte-s1zyh8{background:#00e5a01a;border-color:#00e5a0}.q-option.incorrect.svelte-s1zyh8{background:#ef44441a;border-color:#ef4444}.q-marker.svelte-s1zyh8{border:2px solid var(--border-subtle);width:22px;height:22px;color:var(--text-muted);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-top:1px;font-size:.68rem;font-weight:700;display:inline-flex}.marker-correct.svelte-s1zyh8{color:var(--bg-primary);background:#00e5a0;border-color:#00e5a0}.marker-incorrect.svelte-s1zyh8{color:var(--bg-primary);background:#ef4444;border-color:#ef4444}.q-option-text.svelte-s1zyh8{line-height:1.5}.q-explanation.svelte-s1zyh8{border-radius:8px;margin-top:12px;padding:14px}.correct-bg.svelte-s1zyh8{background:#00e5a00f;border:1px solid #00e5a026}.incorrect-bg.svelte-s1zyh8{background:#ef44440f;border:1px solid #ef444426}.q-result.svelte-s1zyh8{font-size:.78rem;font-weight:700;font-family:var(--font-mono)}.q-explanation.svelte-s1zyh8 p:where(.svelte-s1zyh8){color:var(--text-muted);margin:4px 0 0;font-size:.78rem;line-height:1.7}.results.svelte-1q1ixt1{text-align:center;padding:32px 24px}.results-header.svelte-1q1ixt1{justify-content:center;align-items:center;gap:16px;margin-bottom:16px;display:flex}.score-ring.svelte-1q1ixt1{border:3px solid var(--border-subtle);border-radius:50%;justify-content:center;align-items:center;width:72px;height:72px;display:flex}.score-pct.svelte-1q1ixt1{font-size:1.4rem;font-weight:800;font-family:var(--font-mono)}.score-label.svelte-1q1ixt1{font-size:1rem;font-weight:700;font-family:var(--font-mono)}.score-detail.svelte-1q1ixt1{color:var(--text-dim);margin-top:2px;font-size:.78rem}.phase-badge.svelte-1q1ixt1{font-size:.7rem;font-weight:600;font-family:var(--font-mono);margin-bottom:16px}.results-actions.svelte-1q1ixt1{justify-content:center;gap:10px;display:flex}.quiz-engine.svelte-18c2cel{max-width:var(--content-max-width);margin:0 auto;padding:22px 16px 90px}.quiz-subtitle.svelte-18c2cel{color:var(--text-dim);margin:2px 0 16px;font-size:.72rem}.phase-selector.svelte-18c2cel{flex-wrap:wrap;gap:6px;margin-bottom:20px;display:flex}.phase-pill.svelte-18c2cel{border:1px solid var(--border-subtle);color:var(--text-dim);font-size:.7rem;font-weight:600;font-family:var(--font-mono);cursor:pointer;background:0 0;border-radius:20px;padding:6px 14px;transition:all .2s}.phase-pill.svelte-18c2cel:hover{background:#ffffff08}.phase-pill.active.svelte-18c2cel{border-color:var(--color-accent);color:var(--color-accent);background:#00e5a01a}.quiz-header.svelte-18c2cel{margin-bottom:16px}.quiz-counter.svelte-18c2cel{color:var(--text-dim);font-size:.72rem;font-family:var(--font-mono)}.quiz-progress-bar.svelte-18c2cel{background:#ffffff12;border-radius:2px;height:4px;margin-top:6px;overflow:hidden}.quiz-progress-fill.svelte-18c2cel{background:var(--color-accent);border-radius:2px;height:100%;transition:width .4s}.quiz-actions.svelte-18c2cel{justify-content:center;gap:10px;margin-top:16px;display:flex}.tools-page.svelte-13r3ntr{max-width:780px;margin:0 auto;padding:32px 20px 80px}.tools-header.svelte-13r3ntr{margin-bottom:24px}.tools-header.svelte-13r3ntr h1:where(.svelte-13r3ntr){margin-bottom:4px;font-size:1.2rem}.tools-subtitle.svelte-13r3ntr{color:var(--text-dim);margin:0;font-size:.78rem}.tools-grid.svelte-13r3ntr{flex-direction:column;gap:10px;display:flex}.tool-card.svelte-13r3ntr{background:var(--bg-card);border:1px solid var(--border-subtle);cursor:pointer;text-align:left;border-radius:12px;align-items:center;gap:16px;width:100%;padding:18px 20px;font-family:inherit;transition:all .15s;display:flex}.tool-card.svelte-13r3ntr:hover{background:var(--bg-card-hover);border-color:var(--border-medium)}.tool-icon.svelte-13r3ntr{text-align:center;flex-shrink:0;width:48px;font-size:1.8rem}.tool-info.svelte-13r3ntr{flex:1;min-width:0}.tool-info.svelte-13r3ntr h3:where(.svelte-13r3ntr){margin:0 0 3px;font-size:.9rem}.tool-info.svelte-13r3ntr p:where(.svelte-13r3ntr){color:var(--text-muted);margin:0;font-size:.75rem;line-height:1.5}.tool-phase.svelte-13r3ntr{color:var(--text-dim);background:var(--bg-card);border:1px solid var(--border-subtle);font-size:.6rem;font-weight:700;font-family:var(--font-mono);border-radius:4px;flex-shrink:0;padding:3px 8px}.back-link.svelte-13r3ntr{color:var(--text-dim);font-size:.75rem;font-family:var(--font-mono);cursor:pointer;background:0 0;border:none;margin-bottom:16px;padding:4px 0}.back-link.svelte-13r3ntr:hover{color:var(--text-secondary)}.tool-container.svelte-13r3ntr{min-height:400px}.loading-text.svelte-13r3ntr,.error-text.svelte-13r3ntr{color:var(--text-dim);text-align:center;padding:48px;font-size:.85rem}@media (width<=640px){.tools-page.svelte-13r3ntr{padding:20px 14px 80px}.tool-card.svelte-13r3ntr{gap:12px;padding:14px 16px}.tool-icon.svelte-13r3ntr{width:36px;font-size:1.4rem}}.app.svelte-1n46o8q{z-index:1;min-height:100vh;position:relative}.top-nav.svelte-1n46o8q{padding:env(safe-area-inset-top) 20px 0;height:calc(48px + env(safe-area-inset-top));border-bottom:1px solid var(--border-subtle);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:20;background:#0b0e14cc;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.nav-brand.svelte-1n46o8q{cursor:pointer;background:0 0;border:none;align-items:center;gap:10px;font-family:inherit;display:flex}.logo.svelte-1n46o8q{width:28px;height:28px;color:var(--bg-primary);font-size:.65rem;font-weight:900;font-family:var(--font-mono);background:linear-gradient(135deg,#00e5a0,#00b4d8);border-radius:7px;justify-content:center;align-items:center;display:flex}.brand-name.svelte-1n46o8q{color:var(--text-primary);font-size:.78rem;font-weight:700;font-family:var(--font-mono)}.nav-links.svelte-1n46o8q{align-items:center;gap:2px;display:flex}.nav-links.svelte-1n46o8q button:where(.svelte-1n46o8q){color:var(--text-dim);font-size:.7rem;font-weight:600;font-family:var(--font-mono);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:6px 12px;transition:all .15s}.nav-links.svelte-1n46o8q button:where(.svelte-1n46o8q):hover{color:var(--text-secondary);background:#ffffff08}.nav-links.svelte-1n46o8q button.active:where(.svelte-1n46o8q){color:var(--color-accent);background:#00e5a014}.font-btn.svelte-1n46o8q{margin-left:8px;border:1px solid var(--border-subtle)!important;font-size:.65rem!important}.theme-btn.svelte-1n46o8q{line-height:1;font-size:.8rem!important}main.svelte-1n46o8q{min-height:calc(100vh - 48px - env(safe-area-inset-top))}@media (width<=640px){.brand-name.svelte-1n46o8q{display:none}.nav-links.svelte-1n46o8q button:where(.svelte-1n46o8q){padding:6px 8px;font-size:.62rem}}
