:root{--bg:#FAFAF8;--surface:#FFFFFF;--surface-2:#F3F0EB;--code-bg:#f6f8fa;--code-text:#24292f;--code-border:#d0d7de;--code-line-num:#8c959f;--code-header-bg:#f0f2f4;--code-filename:#24292f;--code-lang:#57606a;--code-line-hover:rgba(0,0,0,0.04);--mafs-bg:#ffffff;--mafs-fg:#1a1a1a;--border:#E8E4DC;--border-strong:#D0CAC0;--text:#1A1814;--text-2:#6B6560;--text-3:#9E9880;--amber:#FFB415;--amber-hover:#E6A010;--amber-muted:#FFF3D4;--amber-text:#1A1814;--indigo:#3D3BF3;--indigo-hover:#2B29D4;--indigo-muted:#EBEBFF;--indigo-text:#FFFFFF;--success:#2D6A4F;--success-bg:#D1FAE5;--danger:#DC2626;--danger-bg:#FEE2E2;--warning:#92400E;--warning-bg:#FEF3C7;--radius-sm:4px;--radius:8px;--radius-lg:12px;--radius-full:9999px;--shadow-sm:0 1px 3px rgba(0,0,0,0.06),0 1px 2px rgba(0,0,0,0.04);--shadow:0 4px 12px rgba(0,0,0,0.08),0 2px 4px rgba(0,0,0,0.04);--shadow-lg:0 16px 40px rgba(0,0,0,0.12),0 4px 8px rgba(0,0,0,0.06)}[data-theme=dark]{--bg:#18170F;--surface:#222218;--surface-2:#2A2920;--code-bg:#0d1117;--code-text:#e6edf3;--code-border:#30363d;--code-line-num:#636e7b;--code-header-bg:#161b22;--code-filename:#cdd9e5;--code-lang:#768390;--code-line-hover:rgba(255,255,255,0.04);--mafs-bg:#1a1a2e;--mafs-fg:#e6edf3;--border:#2E2D22;--border-strong:#3D3C2E;--text:#F5F0E8;--text-2:#9E9880;--text-3:#6B6558;--amber:#FFB415;--amber-hover:#FFC740;--amber-muted:#2A2310;--amber-text:#1A1814;--indigo:#6B6AFF;--indigo-hover:#8180FF;--indigo-muted:#1E1D3F;--indigo-text:#FFFFFF;--success:#6EE7B7;--success-bg:#064E3B;--danger:#FCA5A5;--danger-bg:#7F1D1D;--warning:#FCD34D;--warning-bg:#451A03;--shadow-sm:0 1px 3px rgba(0,0,0,0.3);--shadow:0 4px 12px rgba(0,0,0,0.4);--shadow-lg:0 16px 40px rgba(0,0,0,0.5)}*,:after,:before{box-sizing:border-box}html{color-scheme:light}[data-theme=dark]{color-scheme:dark}body{margin:0;font-family:var(--font-sans,"DM Sans",system-ui,sans-serif);font-size:16px;line-height:1.6;color:var(--text);background:var(--bg);min-width:360px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background .2s,color .2s}a{color:inherit;text-decoration:none}h1,h2,h3{font-family:var(--font-serif,"DM Serif Display",serif);font-weight:400;line-height:1.2;color:var(--text)}h1{font-size:clamp(1.75rem,4vw,2.5rem)}h1,h2{margin:0 0 .5rem}h2{font-size:clamp(1.25rem,3vw,1.75rem)}h3{font-size:1.2rem;margin:0 0 .4rem}p{margin:0 0 1rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 20px;font-family:var(--font-sans);font-size:14px;font-weight:500;border-radius:var(--radius);border:none;cursor:pointer;transition:background .15s,transform .1s,box-shadow .15s;text-decoration:none;white-space:nowrap}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-primary{background:var(--amber);color:var(--amber-text);box-shadow:var(--shadow-sm)}.btn-primary:hover:not(:disabled){background:var(--amber-hover);box-shadow:var(--shadow)}.btn-secondary{background:var(--indigo);color:var(--indigo-text);box-shadow:var(--shadow-sm)}.btn-secondary:hover:not(:disabled){background:var(--indigo-hover);box-shadow:var(--shadow)}.btn-outline{background:transparent;color:var(--text);border:1.5px solid var(--border-strong)}.btn-outline:hover:not(:disabled){border-color:var(--text-2);background:var(--surface-2)}.btn-ghost{background:transparent;color:var(--text-2);border:1px solid var(--border)}.btn-ghost:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.btn-sm{padding:6px 14px;font-size:12px}.btn-lg{padding:14px 28px;font-size:16px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem;transition:border-color .15s,box-shadow .15s}.card-hover:hover{border-color:var(--border-strong);box-shadow:var(--shadow)}.badge{display:inline-flex;align-items:center;padding:2px 10px;border-radius:var(--radius-full);font-size:11px;font-weight:600;letter-spacing:.02em}.badge-amber{background:var(--amber-muted);color:var(--amber-hover)}.badge-indigo{background:var(--indigo-muted);color:var(--indigo)}.badge-success{background:var(--success-bg);color:var(--success)}.badge-danger{background:var(--danger-bg);color:var(--danger)}.badge-neutral{background:var(--surface-2);color:var(--text-2)}.input{width:100%;padding:9px 12px;font-family:var(--font-sans);font-size:14px;color:var(--text);background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius);outline:none;transition:border-color .15s,box-shadow .15s;box-sizing:border-box}.input:focus{border-color:var(--indigo);box-shadow:0 0 0 3px var(--indigo-muted)}.input::placeholder{color:var(--text-3)}textarea.input{resize:vertical;min-height:80px}.divider{border:none;border-top:1px solid var(--border);margin:1.5rem 0}.logo-bg{fill:var(--surface)}.nav{display:flex;align-items:center;gap:1rem;padding:.875rem 1.5rem;background:var(--surface);border-bottom:1px solid var(--border);position:-webkit-sticky;position:sticky;top:0;z-index:50;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.page{max-width:860px}.page,.page-wide{margin:0 auto;padding:2.5rem 1.5rem;width:100%;box-sizing:border-box}.page-wide{max-width:1200px}.site-shell{max-width:1280px;margin:0 auto;width:100%}.about-project-card>div{transition:border-color .15s}.about-project-card:hover>div{border-color:var(--indigo)!important}.lesson-viewer-layout{min-height:100vh}.lesson-viewer-outer{max-width:1280px;margin:0 auto;width:100%;display:flex;min-height:100vh}@media (max-width:860px){.lesson-viewer-outer{flex-direction:column}}.lesson-sidebar-desktop{width:270px;border-right:1px solid var(--border);padding:0;position:-webkit-sticky;position:sticky;top:52px;height:calc(100vh - 52px);overflow-y:auto;flex-shrink:0;background:var(--surface)}.lesson-sidebar-mobile{display:none}.lesson-main{flex:1 1;padding:2.5rem 3rem;max-width:780px;margin:0 auto;width:100%;box-sizing:border-box}@media (max-width:860px){.lesson-sidebar-desktop{display:none}.lesson-sidebar-mobile{display:block}.lesson-main{padding:1.5rem 1rem}}.course-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-gap:1.25rem;gap:1.25rem}@media (max-width:480px){.course-grid{grid-template-columns:1fr}.page,.page-wide{padding:1.5rem 1rem}}.tiptap:focus{outline:none}.tiptap h2{font-size:1.4rem;margin:1.75rem 0 .5rem}.tiptap h2,.tiptap h3{font-family:var(--font-serif)}.tiptap h3{font-size:1.15rem;margin:1.25rem 0 .5rem}.tiptap p{margin:0 0 .875rem}.tiptap ol,.tiptap ul{padding-left:1.5rem;margin:0 0 .875rem}.tiptap blockquote{border-left:3px solid var(--amber);margin:0 0 .875rem;padding:.5rem 0 .5rem 1rem;color:var(--text-2);background:var(--amber-muted);border-radius:0 var(--radius) var(--radius) 0}.tiptap pre{background:var(--code-bg);color:var(--code-text);border:1px solid var(--code-border);padding:0;border-radius:var(--radius);overflow-x:auto;margin:0 0 .875rem;font-size:13px;line-height:1.5}.tiptap code{background:var(--surface-2);color:var(--indigo);padding:2px 6px;border-radius:var(--radius-sm);font-size:13px}.tiptap pre code{background:none;padding:0}.tiptap img{max-width:100%;height:auto;border-radius:var(--radius);margin:.75rem 0;display:block;box-shadow:var(--shadow-sm)}.tiptap img.ProseMirror-selectednode{outline:2px solid var(--indigo)}.tiptap [data-block-math]{text-align:center;margin:1.25rem 0;padding:.75rem;background:var(--surface-2);border-radius:var(--radius);cursor:pointer;border:2px solid transparent}.tiptap [data-block-math]:hover{border-color:var(--border-strong)}.tiptap .ProseMirror-selectednode[data-block-math]{outline:2px solid var(--indigo);background:var(--indigo-muted)}.tiptap [data-inline-math]{display:inline;cursor:pointer;border-radius:var(--radius-sm);border:1px solid transparent;padding:0 2px}.tiptap [data-inline-math]:hover{border-color:var(--border)}.tiptap .ProseMirror-selectednode[data-inline-math]{outline:2px solid var(--indigo);background:var(--indigo-muted)}.lesson-content h2{font-family:var(--font-serif);font-size:1.5rem;margin:2rem 0 .75rem}.lesson-content h3{font-family:var(--font-serif);font-size:1.2rem;margin:1.5rem 0 .5rem}.lesson-content p{margin:0 0 1rem}.lesson-content ol,.lesson-content ul{padding-left:1.5rem;margin:0 0 1rem}.lesson-content li{margin-bottom:.25rem}.lesson-content blockquote{border-left:3px solid var(--amber);padding:.5rem 0 .5rem 1rem;color:var(--text-2);background:var(--amber-muted);border-radius:0 var(--radius) var(--radius) 0;margin:1rem 0}.lesson-content pre{background:var(--code-bg);color:var(--code-text);padding:0;border-radius:var(--radius);overflow-x:auto;margin:1rem 0;font-size:13px;border:1px solid var(--code-border)}.lesson-content code{background:var(--surface-2);color:var(--indigo);padding:2px 6px;border-radius:var(--radius-sm);font-size:13px}pre[data-terminal-pre]{color:#e6edf3!important;background:none!important;border:none!important}.lesson-content pre code{background:none;padding:0}.lesson-content hr{border:none;border-top:1px solid var(--border);margin:2rem 0}.lesson-content a{color:var(--indigo);text-decoration:underline;-webkit-text-decoration-color:var(--indigo-muted);text-decoration-color:var(--indigo-muted)}.lesson-content a:hover{-webkit-text-decoration-color:var(--indigo);text-decoration-color:var(--indigo)}.lesson-content img{max-width:100%;height:auto;border-radius:var(--radius);margin:.75rem 0;box-shadow:var(--shadow-sm)}.lesson-content [data-block-math]{text-align:center;margin:1.5rem 0;padding:.75rem;background:var(--surface-2);border-radius:var(--radius)}.lesson-content [data-inline-math]{display:inline}@media (max-width:468px){.meta-wrap{display:block}}.code-block-header{display:flex;align-items:center;justify-content:space-between;padding:6px 1rem 4px;border-bottom:1px solid var(--code-border);margin-bottom:4px;background:var(--code-header-bg);border-radius:var(--radius) var(--radius) 0 0}.code-filename{font-size:12px;color:var(--code-filename);font-family:monospace;font-weight:600}.code-lang-label{font-size:10px;color:var(--code-lang);font-family:monospace;text-transform:uppercase;letter-spacing:.06em}code.with-line-numbers{display:block;padding:.5rem 0;line-height:1.5}.code-line{display:table-row}.code-line-num{color:var(--code-line-num);text-align:right;padding:0 1rem;-webkit-user-select:none;-moz-user-select:none;user-select:none;font-size:12px;min-width:2rem;white-space:nowrap}.code-line-content,.code-line-num{display:table-cell;vertical-align:top}.code-line-content{padding-right:1rem;white-space:pre}.code-line:hover .code-line-content,.code-line:hover .code-line-num{background:var(--code-line-hover)}[data-theme=light] .hljs{color:#24292f}[data-theme=light] .hljs-doctag,[data-theme=light] .hljs-keyword,[data-theme=light] .hljs-meta .hljs-keyword,[data-theme=light] .hljs-template-tag,[data-theme=light] .hljs-template-variable,[data-theme=light] .hljs-type,[data-theme=light] .hljs-variable.language_{color:#cf222e}[data-theme=light] .hljs-title,[data-theme=light] .hljs-title.class_,[data-theme=light] .hljs-title.class_.inherited__,[data-theme=light] .hljs-title.function_{color:#8250df}[data-theme=light] .hljs-attr,[data-theme=light] .hljs-attribute,[data-theme=light] .hljs-literal,[data-theme=light] .hljs-meta,[data-theme=light] .hljs-number,[data-theme=light] .hljs-operator,[data-theme=light] .hljs-selector-attr,[data-theme=light] .hljs-selector-class,[data-theme=light] .hljs-selector-id,[data-theme=light] .hljs-variable{color:#953800}[data-theme=light] .hljs-punctuation,[data-theme=light] .hljs-tag{color:#116329}[data-theme=light] .hljs-regexp,[data-theme=light] .hljs-string{color:#0a3069}[data-theme=light] .hljs-built_in,[data-theme=light] .hljs-symbol{color:#8250df}[data-theme=light] .hljs-code,[data-theme=light] .hljs-comment,[data-theme=light] .hljs-formula{color:#6e7781;font-style:italic}[data-theme=light] .hljs-name,[data-theme=light] .hljs-quote,[data-theme=light] .hljs-selector-tag{color:#116329}[data-theme=light] .hljs-deletion{color:#82071e;background:#ffebe9}[data-theme=light] .hljs-addition{color:#116329;background:#dafbe1}[data-theme=light] .hljs-emphasis{font-style:italic}[data-theme=light] .hljs-strong{font-weight:700}.preview-btn-label{display:inline}@media (max-width:468px){.preview-btn-label{display:none}}.module-header-buttons{display:flex;gap:6px;flex-shrink:0;flex-wrap:nowrap;justify-content:flex-start}@media (max-width:468px){.module-header-row{flex-wrap:wrap}.module-header-title{flex-basis:100%}.module-header-buttons{width:100%;justify-content:flex-start}}.module-dropdown-btn{max-width:100px;min-width:70px}@media (min-width:469px){.module-dropdown-btn{max-width:200px;min-width:100px}}