@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.8e0177b5.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.b97b3418.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.853070df.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_a71539c9-module__T19VSG__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_a71539c9-module__T19VSG__variable{--font-geist-sans:"Geist","Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.c1fdd6c2.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.799d8ef8.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.dbea232f.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.geist_mono_8d43a2aa-module__8Li5zG__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_8d43a2aa-module__8Li5zG__variable{--font-geist-mono:"Geist Mono","Geist Mono Fallback"}
@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/13bf9871fe164e7f-s.f2220059.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/cc545e633e20c56d-s.f6f1950f.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/71b036adf157cdcf-s.bd5f4d11.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/89b21bb081cb7469-s.51c18f09.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/3fe682a82f50d426-s.23358719.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/70bc3e132a0a741e-s.p.15008bfb.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Fallback;src:local(Arial);ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.0%;size-adjust:134.59%}.jetbrains_mono_7d65b77b-module__VxV-Ta__className{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.jetbrains_mono_7d65b77b-module__VxV-Ta__variable{--font-jetbrains-mono:"JetBrains Mono","JetBrains Mono Fallback"}
:root{--background:#fff;--foreground:#171717;--bg-secondary:#f1f5f9;--color-gray-medium:#64748b;--chip-gray-text:#475569;--chip-gray-bg:#f8fafc;--chip-gray-border:#e2e8f0;--chip-blue-text:#1e40af;--chip-blue-bg:#eff6ff;--chip-blue-border:#bfdbfe;--chip-green-text:#166534;--chip-green-bg:#f0fdf4;--chip-green-border:#bbf7d0;--chip-green-border-subtle:#dcfce7;--chip-green-bg-hover:#dcfce7;--chip-yellow-text:#854d0e;--chip-yellow-bg:#fefce8;--chip-yellow-border:#fde047;--chip-red-text:#991b1b;--chip-red-bg:#fef2f2;--chip-red-border:#fecaca;--henry-yellow-100:#fffef0;--henry-yellow-200:#fffce0;--henry-yellow-300:#fff9c0;--henry-yellow-400:#fff680;--henry-yellow-500:#ff0;--henry-yellow-600:#e6d900;--henry-yellow-700:#ccb800;--henry-yellow-800:#b39900;--henry-yellow-900:#997a00;--henry-yellow-1000:#805c00;--henry-blue-50:#eff6ff;--henry-blue-100:#dbeafe;--henry-blue-200:#bfdbfe;--henry-blue-300:#93c5fd;--henry-blue-400:#60a5fa;--henry-blue-500:#3b82f6;--henry-blue-600:#2563eb;--henry-blue-700:#1d4ed8;--henry-blue-800:#1e40af;--henry-blue-900:#1e3a8a;--henry-blue-950:#172554;--box-small-padding:.75rem 1rem;--box-small-border-radius:6px;--box-small-font-size:.875rem;--box-medium-padding:1rem 1.5rem;--box-medium-border-radius:8px;--box-medium-font-size:.875rem;--box-large-padding:1.5rem;--box-large-border-radius:8px;--box-large-font-size:1rem}html,body{max-width:100vw;height:100%;overflow-x:hidden}body{color:var(--foreground);background:var(--background);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Arial,Helvetica,sans-serif}*{box-sizing:border-box;margin:0;padding:0}a{color:inherit;text-decoration:none}@media (prefers-color-scheme:dark){html{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}::selection{color:#000;background-color:#00d4ff}::selection{color:#000;background-color:#00d4ff}.lesson-layout{height:auto;min-height:100vh;display:flex}.lesson-main{flex-direction:column;flex:1;min-width:0;display:flex}.no-content-message{color:#374151;text-align:center;opacity:.8;padding:1rem;font-size:1rem}.mermaid-error-container{border:1px solid;border-radius:8px;margin:1rem 0;padding:1rem}.mermaid-error-container.error{color:#dc2626;background-color:#fef2f2;border-color:#ef4444}.mermaid-error-container.warning{color:#d97706;background-color:#fffbeb;border-color:#f59e0b}.mermaid-error-content{margin-top:.75rem}.mermaid-error-code-label{color:#6b7280;margin-bottom:.25rem;font-size:.75rem;font-weight:500}.mermaid-error-code{white-space:pre-wrap;background-color:#f3f4f6;border:1px solid #d1d5db;border-radius:.25rem;padding:.75rem;font-size:.75rem;overflow-x:auto}.mermaid-error-tip{color:#6b7280;margin-top:.25rem;font-size:.75rem}.mermaid-loading{text-align:center;color:#6b7280;padding:1rem 0}.mermaid-container{justify-content:center;margin:1.5rem 0;display:flex}.mermaid-svg-container{background-color:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;max-width:100%;padding:1.5rem;display:inline-block;overflow-x:auto;box-shadow:0 1px 3px #0000001a}.markdownContent pre code{color:inherit;font-size:inherit;background-color:#0000;padding:0}.markdownContent table{border-collapse:collapse;border:1px solid #e5e7eb;border-radius:.5rem;width:100%;margin:1rem 0;display:block;overflow-x:auto}.markdownContent table thead{background-color:#f9fafb}.markdownContent table th,.markdownContent table td{text-align:left;vertical-align:top;white-space:nowrap;border:1px solid #e5e7eb;padding:.75rem 1rem}.markdownContent table th{color:#1f2937;font-weight:600}.markdownContent table td{color:#374151}.markdownContent table tbody tr:hover{background-color:#f9fafb}pre[class*=language-] code[class*=language-]{text-shadow:none}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:#94a3b8}.token.punctuation{color:#cbd5e1}.token.property,.token.tag,.token.constant,.token.symbol,.token.deleted{color:#fca5a5}.token.boolean,.token.number{color:#fbbf24}.token.selector,.token.attr-name,.token.string,.token.char,.token.builtin,.token.inserted{color:#86efac}.token.operator,.token.entity,.token.url,.token.atrule,.token.attr-value,.token.keyword{color:#93c5fd}.token.function,.token.class-name{color:#a78bfa}.token.regex,.token.important,.token.variable{color:#f9a8d4}.markdownContent blockquote{color:#64748b;border-left:4px solid #3b82f6;margin:1rem 0;padding-left:1rem;font-style:italic}.markdownContent hr{border:none;border-top:1px solid #e2e8f0;margin:3rem 0}.markdownContent a{color:#3b82f6;text-decoration:underline;transition:color .2s}.markdownContent a:hover{color:#2563eb;text-decoration:underline}.markdownContent a:visited{color:#7c3aed}.markdownContent table{border-collapse:collapse;width:100%;margin:1rem 0}.markdownContent th,.markdownContent td{text-align:left;vertical-align:top;color:#374151;word-break:break-word;overflow-wrap:anywhere;white-space:normal;border:1px solid #e2e8f0;padding:.75rem}.markdownContent th{color:#1e293b;background-color:#f8fafc;font-weight:600}.markdownContent,.markdownContent *{box-sizing:border-box}.markdownContent pre,.markdownContent code,.markdownContent table,.markdownContent img,.markdownContent video,.markdownContent svg,.markdownContent iframe{max-width:100%}.markdownContent pre{width:100%;overflow-x:auto}.markdownContent table{table-layout:fixed;-webkit-overflow-scrolling:touch;width:100%;max-width:100%;display:block;overflow-x:auto}.markdownContent p,.markdownContent li,.markdownContent blockquote{overflow-wrap:anywhere;word-break:break-word}.markdownContent code{white-space:pre-wrap}.markdownContent pre code{white-space:pre-wrap;word-break:break-all}pre{white-space:pre-wrap;word-break:break-all;width:100%;max-width:100%;overflow-x:auto}pre code{white-space:inherit;word-break:inherit}.chip{border:1px solid;border-radius:.375rem;align-items:center;gap:.375rem;padding:.25rem .625rem;font-size:.8125rem;font-weight:500;line-height:1.4;display:inline-flex}.chip-gray{color:var(--chip-gray-text);background-color:var(--chip-gray-bg);border-color:var(--chip-gray-border)}.chip-blue{color:var(--chip-blue-text);background-color:var(--chip-blue-bg);border-color:var(--chip-blue-border)}.chip-green{color:var(--chip-green-text);background-color:var(--chip-green-bg);border-color:var(--chip-green-border)}.chip-yellow{color:var(--chip-yellow-text);background-color:var(--chip-yellow-bg);border-color:var(--chip-yellow-border)}.chip-red{color:var(--chip-red-text);background-color:var(--chip-red-bg);border-color:var(--chip-red-border)}.boxSmall{padding:var(--box-small-padding);border-radius:var(--box-small-border-radius);font-size:var(--box-small-font-size);background:#fff;border:1px solid #e5e7eb;transition:background-color .2s,border-color .2s}.boxMedium{padding:var(--box-medium-padding);border-radius:var(--box-medium-border-radius);font-size:var(--box-medium-font-size);background:#fff;border:1px solid #e5e7eb;transition:background-color .2s,border-color .2s}.boxLarge{padding:var(--box-large-padding);border-radius:var(--box-large-border-radius);font-size:var(--box-large-font-size);background:#fff;border:1px solid #e5e7eb;transition:background-color .2s,border-color .2s}.project-layout{min-height:100vh;display:flex}.project-content{color:#171717;background-color:#fff;flex:1;overflow-x:hidden}@media (min-width:769px){.project-content{margin-left:350px}}.tiptap,.tiptap:focus,.tiptap:focus-visible,.ProseMirror,.ProseMirror:focus,.ProseMirror:focus-visible,.ProseMirror-focused,.ProseMirror-focused:focus,.ProseMirror-focused:focus-visible,.tiptap.ProseMirror,.tiptap.ProseMirror:focus,.tiptap.ProseMirror:focus-visible,.tiptap.ProseMirror.ProseMirror-focused,.tiptap.ProseMirror.ProseMirror-focused:focus,.tiptap.ProseMirror.ProseMirror-focused:focus-visible,div[contenteditable=true],div[contenteditable=true]:focus,div[contenteditable=true]:focus-visible{outline-offset:0!important;-webkit-tap-highlight-color:transparent!important;outline:0 #0000!important}.section-chip-container{margin:2rem 0 1rem}.section-chip-container:first-child{margin-top:0}
.page-title{color:#1e293b;margin:0;font-size:1.75rem;font-weight:700;line-height:1.2}.section-title{color:#1a1a1a;margin:0 0 .5rem;font-size:1.25rem;font-weight:600;line-height:1.3}.body-large{color:#374151;font-size:1rem;line-height:1.5}.body{color:#374151;font-size:.875rem;line-height:1.5}.body-small{color:#6b7280;font-size:.75rem;line-height:1.4}.caption,.caption-small{text-transform:uppercase;letter-spacing:.4px;color:#666;font-size:.625rem;font-weight:600;line-height:1.4}.caption-medium{text-transform:uppercase;letter-spacing:.4px;color:#666;font-size:.75rem;font-weight:600;line-height:1.4}.caption-large{text-transform:uppercase;letter-spacing:.4px;color:#666;font-size:.875rem;font-weight:600;line-height:1.4}.description{color:#6b7280;margin:0;font-size:.875rem;line-height:1.5}
