:root{--bg: #090d16;--surface: #111827;--surface-2: #162032;--border: #1f293d;--text: #f1f5f9;--muted: #94a3b8;--primary: #38bdf8;--primary-dim: rgba(56,189,248,.12);--success: #34d399;--success-dim: rgba(52,211,153,.12);--warning: #fbbf24;--warning-dim: rgba(251,191,36,.12);--danger: #f87171;--danger-dim: rgba(248,113,113,.12);--purple: #a78bfa;--purple-dim: rgba(167,139,250,.12);--radius: 8px;--font: "Plus Jakarta Sans", system-ui, sans-serif;--mono: "JetBrains Mono", "Fira Code", monospace;--nav-h: 60px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:var(--font);line-height:1.7;min-height:100vh;display:flex;flex-direction:column;-webkit-font-smoothing:antialiased}img,svg{display:block;max-width:100%}a{color:var(--primary)}.navbar{background:#090d16f2;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:100;height:var(--nav-h)}.nav-inner{max-width:1280px;margin:0 auto;padding:0 1.5rem;height:100%;display:flex;align-items:center;gap:1.5rem}.brand{display:flex;align-items:center;gap:.5rem;text-decoration:none;color:var(--text);font-weight:800;font-size:1.05rem;flex-shrink:0;white-space:nowrap}.brand-pill{background:var(--primary-dim);color:var(--primary);border:1px solid rgba(56,189,248,.2);font-size:.68rem;font-weight:600;padding:.1rem .5rem;border-radius:999px;letter-spacing:.04em}.nav-links{display:flex;align-items:center;gap:.125rem;flex:1}.nav-links a{color:var(--muted);text-decoration:none;font-size:.875rem;font-weight:500;padding:.375rem .75rem;border-radius:6px;transition:color .15s,background .15s;white-space:nowrap}.nav-links a:hover,.nav-links a.nav-active{color:var(--text);background:#ffffff0f}.nav-links a.nav-active{color:var(--primary)}.hamburger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:.4rem;margin-left:auto}.hamburger span{display:block;width:22px;height:2px;background:var(--text);border-radius:2px;transition:all .2s}#main{flex:1;width:100%}.page-wrap{max-width:1280px;margin:0 auto;padding:2.5rem 1.5rem 5rem}.learn-layout{display:flex;gap:3rem;align-items:flex-start}.toc{width:220px;flex-shrink:0;position:sticky;top:calc(var(--nav-h) + 1.5rem);max-height:calc(100vh - var(--nav-h) - 3rem);overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.toc-label{font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:700;margin-bottom:.75rem;display:block;padding:0 .25rem}.toc ul{list-style:none}.toc li{margin-bottom:.125rem}.toc a{display:block;color:var(--muted);text-decoration:none;font-size:.8rem;line-height:1.4;padding:.3rem .5rem;border-radius:5px;border-left:2px solid transparent;transition:all .15s}.toc a:hover{color:var(--text);background:#ffffff0a}.toc a.toc-active{color:var(--primary);border-left-color:var(--primary);background:var(--primary-dim)}.toc-divider{border:none;border-top:1px solid var(--border);margin:1rem 0}.toc-nav{display:flex;flex-direction:column;gap:.25rem}.toc-nav a{color:var(--primary);font-size:.8rem;padding:.25rem .5rem;text-decoration:none;border-radius:4px}.toc-nav a:hover{background:var(--primary-dim)}.content{flex:1;min-width:0}.content h1{font-size:clamp(1.75rem,4vw,2.5rem);font-weight:800;color:var(--primary);line-height:1.15;margin-bottom:.75rem}.content h2{font-size:1.5rem;font-weight:700;color:var(--text);margin-top:3rem;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid var(--border);scroll-margin-top:calc(var(--nav-h) + 1rem)}.content h3{font-size:1.1rem;font-weight:700;color:var(--text);margin-top:2rem;margin-bottom:.6rem;scroll-margin-top:calc(var(--nav-h) + 1rem)}.content h4{font-size:.95rem;font-weight:700;margin-bottom:.5rem}.content p{margin-bottom:1.25rem;font-size:.975rem}.lead{font-size:1.05rem;color:var(--muted);max-width:640px;line-height:1.75;margin-bottom:2rem}.content ul,.content ol{padding-left:1.5rem;margin-bottom:1.25rem}.content li{margin-bottom:.4rem;font-size:.975rem}.content pre{background:#060b12;border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem 1.5rem;overflow-x:auto;margin-bottom:1.5rem;font-family:var(--mono);font-size:.83rem;line-height:1.7;position:relative}.content pre code{background:none;padding:0;color:#cbd5e1;font-size:inherit}.content code{font-family:var(--mono);font-size:.875em;color:var(--primary);background:var(--primary-dim);padding:.1rem .35rem;border-radius:4px}.content a code{color:inherit}.c{color:var(--muted);font-style:italic}.content table{width:100%;border-collapse:collapse;margin-bottom:1.5rem;font-size:.875rem}.content th,.content td{padding:.6rem .875rem;border:1px solid var(--border);text-align:left;vertical-align:top}.content th{background:var(--surface);font-weight:600;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.content tr:nth-child(2n) td{background:#ffffff04}.callout{padding:.875rem 1.25rem;border-radius:var(--radius);margin-bottom:1.5rem;border-left:3px solid}.callout p{margin-bottom:.4rem;font-size:.9rem}.callout p:last-child{margin-bottom:0}.callout ul{margin-bottom:0}.callout strong{display:block;margin-bottom:.35rem}.callout.note{border-color:var(--primary);background:var(--primary-dim)}.callout.tip{border-color:var(--success);background:var(--success-dim)}.callout.warning{border-color:var(--warning);background:var(--warning-dim)}.callout.danger{border-color:var(--danger);background:var(--danger-dim)}.mermaid{background:var(--surface)!important;border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;margin:1.5rem 0;display:flex;justify-content:center;overflow-x:auto;font-family:inherit}.mermaid svg{max-width:100%;height:auto}.badge{display:inline-block;padding:.2rem .65rem;border-radius:999px;font-size:.72rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.badge-beginner{background:var(--success-dim);color:var(--success)}.badge-intermediate{background:var(--warning-dim);color:var(--warning)}.badge-advanced{background:var(--danger-dim);color:var(--danger)}.badge-lab{background:var(--purple-dim);color:var(--purple)}.page-header{margin-bottom:2.5rem}.page-header .badge{margin-bottom:.75rem}.page-footer{margin-top:4rem;padding-top:2rem;border-top:1px solid var(--border)}.page-footer h3{font-size:.85rem;color:var(--muted);margin-bottom:.75rem;text-transform:uppercase;letter-spacing:.06em}.page-footer ul{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;margin-bottom:2rem}.page-footer li{font-size:.85rem}.page-footer a{text-decoration:none}.page-footer a:hover{text-decoration:underline}.prev-next{display:flex;justify-content:space-between;gap:1rem}.prev-next a{color:var(--text);text-decoration:none;font-weight:600;font-size:.875rem;padding:.6rem 1rem;border:1px solid var(--border);border-radius:var(--radius);transition:border-color .15s,background .15s;flex:1;max-width:280px}.prev-next a:hover{border-color:var(--primary);background:var(--primary-dim)}.prev-next a.next{text-align:right;margin-left:auto}.prev-next-label{font-size:.72rem;color:var(--muted);display:block;margin-bottom:.15rem;text-transform:uppercase;letter-spacing:.05em}.site-footer{border-top:1px solid var(--border);background:var(--surface);padding:1.25rem 1.5rem;text-align:center}.footer-inner{max-width:800px;margin:0 auto;display:flex;flex-direction:column;gap:.35rem}.footer-inner p{font-size:.82rem;color:var(--muted)}.footer-inner a{color:var(--primary);text-decoration:none}.footer-inner a:hover{text-decoration:underline}.footer-refs{display:flex;gap:.75rem;justify-content:center;flex-wrap:wrap}@media(max-width:900px){.learn-layout{flex-direction:column}.toc{width:100%;position:static;max-height:none;padding-bottom:1rem;border-bottom:1px solid var(--border);margin-bottom:1.5rem}.toc ul{display:flex;flex-wrap:wrap;gap:.25rem}.toc li{margin-bottom:0}.toc a{border-left:none;border-bottom:2px solid transparent}.toc a.toc-active{border-left-color:transparent;border-bottom-color:var(--primary)}.toc-divider{display:none}.toc-nav{flex-direction:row}}@media(max-width:640px){.nav-links{display:none}.nav-links.open{display:flex;flex-direction:column;position:fixed;top:var(--nav-h);left:0;right:0;background:#090d16fa;border-bottom:1px solid var(--border);padding:1rem 1.5rem;gap:.25rem;z-index:99}.hamburger{display:flex}.page-wrap{padding:1.5rem 1rem 4rem}.prev-next a{font-size:.8rem;padding:.5rem .75rem}}
