:root{--color-primary:#cc785c;--color-primary-active:#a9583e;--color-primary-disabled:#e6dfd8;--color-ink:#141413;--color-body:#3d3d3a;--color-body-strong:#252523;--color-muted:#6c6a64;--color-muted-soft:#8e8b82;--color-hairline:#e6dfd8;--color-hairline-soft:#ebe6df;--color-canvas:#faf9f5;--color-surface-soft:#f5f0e8;--color-surface-card:#efe9de;--color-surface-cream-strong:#e8e0d2;--color-surface-dark:#181715;--color-surface-dark-elevated:#252320;--color-surface-dark-soft:#1f1e1b;--color-on-primary:#fff;--color-on-dark:#faf9f5;--color-on-dark-soft:#a09d96;--color-accent-teal:#5db8a6;--color-accent-amber:#e8a55a;--color-success:#5db872;--color-warning:#d4a017;--color-error:#c64545;--color-scrollbar-thumb:#d8d0c2;--color-scrollbar-thumb-hover:#bdb4a3;--font-display:"Cormorant Garamond", "Tiempos Headline", Garamond, "Times New Roman", serif;--font-body:"Inter", "StyreneB", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-code:"JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--radius-xs:4px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-pill:9999px;--space-xxs:4px;--space-xs:8px;--space-sm:12px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-xxl:48px;--space-section:96px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--color-canvas);color:var(--color-body);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;font-weight:400;line-height:1.55}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}html,body{overflow-x:clip}*{& ::-webkit-scrollbar{width:10px;height:10px}& ::-webkit-scrollbar:horizontal{height:0}& ::-webkit-scrollbar-track{background:0 0}& ::-webkit-scrollbar-thumb{background-color:var(--color-scrollbar-thumb);background-clip:padding-box;border:3px solid #0000;border-radius:999px}& ::-webkit-scrollbar-thumb:hover{background-color:var(--color-scrollbar-thumb-hover)}& ::-webkit-scrollbar-corner{background:0 0}& .markdown-body pre::-webkit-scrollbar-thumb{background-color:#3a3a3a}& .hero__card pre::-webkit-scrollbar-thumb{background-color:#3a3a3a}& .markdown-body pre::-webkit-scrollbar-thumb:hover{background-color:#4a4a4a}& .hero__card pre::-webkit-scrollbar-thumb:hover{background-color:#4a4a4a}& .markdown-body pre,& .hero__card pre{scrollbar-color:#3a3a3a transparent}& h1,& h2,& h3,& h4,& h5,& h6{color:var(--color-ink);margin:0;font-weight:400}& .spike-mark{width:18px;height:18px;color:var(--color-ink);flex:none}& .spike-mark.on-dark{color:var(--color-on-dark)}& .top-nav{z-index:50;background:var(--color-canvas);border-bottom:1px solid var(--color-hairline);height:64px;padding:0 var(--space-xl);align-items:center;display:flex;position:sticky;top:0}& .top-nav__inner{justify-content:space-between;align-items:center;gap:var(--space-lg);width:100%;max-width:1280px;margin:0 auto;display:flex}& .top-nav__brand{align-items:center;gap:var(--space-xs);font-family:var(--font-body);color:var(--color-ink);white-space:nowrap;font-size:15px;font-weight:500;display:flex}& .top-nav__brand .brand-sub{color:var(--color-muted);font-weight:400}& .top-nav__menu{align-items:center;gap:var(--space-xs);scrollbar-width:none;flex:1;justify-content:flex-start;min-width:0;display:flex;overflow-x:auto}& .top-nav__menu::-webkit-scrollbar{display:none}& .top-nav__link{font-family:var(--font-body);color:var(--color-muted);border-radius:var(--radius-md);white-space:nowrap;flex:none;padding:6px 10px;font-size:13px;font-weight:500;transition:background-color .15s,color .15s}& .top-nav__link:hover,& .top-nav__link.is-active{color:var(--color-ink);background:var(--color-surface-card)}& .top-nav__cta{flex:none}& .top-nav__toggle{border:1px solid var(--color-hairline);border-radius:var(--radius-md);background:var(--color-canvas);width:40px;height:40px;color:var(--color-ink);cursor:pointer;flex:none;justify-content:center;align-items:center;padding:0;transition:background-color .15s,border-color .15s;display:none}& .top-nav__toggle:hover{background:var(--color-surface-card)}& .top-nav__toggle svg{width:20px;height:20px}& .top-nav__toggle .icon-close,& .top-nav__toggle[aria-expanded=true] .icon-menu{display:none}& .top-nav__toggle[aria-expanded=true] .icon-close{display:block}& .btn{font-family:var(--font-body);border-radius:var(--radius-md);cursor:pointer;border:none;justify-content:center;align-items:center;gap:8px;height:40px;padding:12px 20px;font-size:14px;font-weight:500;line-height:1;transition:background-color .15s,color .15s,border-color .15s;display:inline-flex}& .btn-primary{background:var(--color-primary);color:var(--color-on-primary)}& .btn-primary:hover,& .btn-primary:active{background:var(--color-primary-active)}& .btn-secondary{background:var(--color-canvas);color:var(--color-ink);border:1px solid var(--color-hairline)}& .btn-secondary:hover{background:var(--color-surface-card)}& .btn-on-dark{background:var(--color-surface-dark-elevated);color:var(--color-on-dark)}& .hero{padding:72px var(--space-xl) var(--space-section);background:var(--color-canvas)}& .hero__inner{gap:var(--space-xxl);grid-template-columns:1.1fr .9fr;align-items:center;max-width:1280px;margin:0 auto;display:grid}& .hero__eyebrow{font-family:var(--font-body);letter-spacing:1.5px;text-transform:uppercase;color:var(--color-primary);margin-bottom:var(--space-md);align-items:center;gap:6px;font-size:12px;font-weight:500;display:inline-flex}& .hero h1{font-family:var(--font-display);letter-spacing:-1px;color:var(--color-ink);margin-bottom:var(--space-lg);font-size:64px;font-weight:500;line-height:1.05}& .hero p.lead{font-family:var(--font-body);color:var(--color-body);max-width:56ch;margin-bottom:var(--space-xl);font-size:18px;font-weight:400;line-height:1.55}& .hero__actions{gap:var(--space-sm);flex-wrap:wrap;display:flex}& .hero__stats{gap:var(--space-xl);margin-top:var(--space-xxl);display:flex}& .hero__stat-num{font-family:var(--font-display);color:var(--color-ink);font-size:36px;line-height:1}& .hero__stat-label{color:var(--color-muted);margin-top:6px;font-size:13px}& .hero__card{background:var(--color-surface-dark);border-radius:var(--radius-xl);padding:var(--space-xl);color:var(--color-on-dark);position:relative;overflow:hidden}& .hero__card .code-window{margin:0}& .hero__card-caption{font-family:var(--font-body);color:var(--color-on-dark-soft);margin-top:var(--space-md);font-size:13px}& .section{padding:var(--space-section) var(--space-xl)}& .section--soft{background:var(--color-surface-soft)}& .section--dark{background:var(--color-surface-dark);color:var(--color-on-dark)}& .section__inner{max-width:1280px;margin:0 auto}& .section__head{max-width:640px;margin-bottom:var(--space-xxl)}& .section__eyebrow{letter-spacing:1.5px;text-transform:uppercase;color:var(--color-primary);margin-bottom:var(--space-sm);font-size:12px;font-weight:500;display:block}& .section__head h2{font-family:var(--font-display);letter-spacing:-.5px;margin-bottom:var(--space-md);font-size:40px;font-weight:500;line-height:1.15}& .section--dark .section__head h2{color:var(--color-on-dark)}& .section__head p{color:var(--color-muted);font-size:16px}& .lesson-grid{gap:var(--space-lg);grid-template-columns:repeat(3,1fr);display:grid}& .lesson-card{background:var(--color-surface-card);border-radius:var(--radius-lg);padding:var(--space-xl);gap:var(--space-md);flex-direction:column;transition:transform .18s,box-shadow .18s;display:flex}& .lesson-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px #14141314}& .lesson-card__top{justify-content:space-between;align-items:center;display:flex}& .lesson-card__num{font-family:var(--font-display);color:var(--color-primary);font-size:32px;line-height:1}& .lesson-card h3{font-family:var(--font-body);color:var(--color-ink);font-size:18px;font-weight:500;line-height:1.4}& .lesson-card p{color:var(--color-muted);flex:1;font-size:14px;line-height:1.6}& .lesson-card__meta{color:var(--color-muted-soft);border-top:1px solid var(--color-hairline);padding-top:var(--space-md);justify-content:space-between;align-items:center;font-size:13px;display:flex}& .lesson-card__go{color:var(--color-primary);align-items:center;gap:4px;font-weight:500;display:inline-flex}& .badge{border-radius:var(--radius-pill);background:var(--color-surface-card);color:var(--color-ink);align-items:center;padding:4px 12px;font-size:13px;font-weight:500;display:inline-flex}& .badge-coral{background:var(--color-primary);color:var(--color-on-primary);letter-spacing:1.5px;text-transform:uppercase;font-size:12px;font-weight:500}& .cta-band{margin:0 var(--space-xl) var(--space-section);background:var(--color-primary);color:var(--color-on-primary);border-radius:var(--radius-lg);padding:64px var(--space-xxl);text-align:center}& .cta-band h2{font-family:var(--font-display);letter-spacing:-.3px;color:var(--color-on-primary);margin-bottom:var(--space-sm);font-size:32px;font-weight:500}& .cta-band p{color:#ffffffd9;margin-bottom:var(--space-lg)}& .cta-band .btn-secondary{background:var(--color-canvas);border:none}& .footer{background:var(--color-surface-dark);color:var(--color-on-dark-soft);padding:56px var(--space-xl) 32px}& .footer__inner{max-width:1280px;margin:0 auto}& .footer__brand{align-items:center;gap:var(--space-xs);color:var(--color-on-dark);margin-bottom:var(--space-md);font-weight:500;display:flex}& .footer__note{max-width:60ch;font-size:13px;line-height:1.7}& .footer__bottom{margin-top:var(--space-xxl);padding-top:var(--space-lg);justify-content:space-between;gap:var(--space-sm);border-top:1px solid #ffffff14;flex-wrap:wrap;font-size:13px;display:flex}& .lesson-header{background:var(--color-canvas);border-bottom:1px solid var(--color-hairline);padding:var(--space-xxl) var(--space-xl) var(--space-xl)}& .lesson-header__inner{max-width:1280px;margin:0 auto}& .breadcrumb{color:var(--color-muted);margin-bottom:var(--space-md);align-items:center;gap:6px;font-size:13px;display:flex}& .breadcrumb a:hover{color:var(--color-primary)}& .lesson-header h1{font-family:var(--font-display);letter-spacing:-.5px;max-width:800px;font-size:44px;font-weight:500;line-height:1.1}& .lesson-header__meta{margin-top:var(--space-md);gap:var(--space-sm);flex-wrap:wrap;align-items:center;display:flex}& .lesson-layout{gap:var(--space-xxl);max-width:1280px;padding:var(--space-xxl) var(--space-xl) var(--space-section);grid-template-columns:240px minmax(0,1fr);align-items:start;margin:0 auto;display:grid}& .toc{max-height:calc(100vh - 120px);padding-right:var(--space-sm);position:sticky;top:88px;overflow-y:auto}& .toc__label{letter-spacing:1.5px;text-transform:uppercase;color:var(--color-muted-soft);margin:0 0 var(--space-sm);text-align:left;background:0 0;border:none;width:100%;padding:0;font-family:inherit;font-size:12px;font-weight:500;display:block}@media (width>=769px){& .toc__label{pointer-events:none;cursor:default}}& .toc ul{margin:0;padding:0;list-style:none}& .toc ul ul{padding-left:var(--space-md)}& .toc li{margin:0}& .toc a{color:var(--color-muted);border-left:2px solid #0000;padding:5px 0 5px 10px;font-size:13.5px;line-height:1.5;transition:color .15s,border-color .15s;display:block}& .toc a:hover{color:var(--color-ink)}& .toc a.is-active{color:var(--color-primary);border-left-color:var(--color-primary);font-weight:500}& .toc-mobile-toggle{display:none}& .markdown-body{min-width:0}& .markdown-body h1,& .markdown-body h2,& .markdown-body h3,& .markdown-body h4,& .markdown-body h5,& .page-marker{scroll-margin-top:80px}& .page-marker{align-items:center;gap:var(--space-sm);margin:var(--space-xxl) 0 var(--space-lg);color:var(--color-muted-soft);letter-spacing:1.5px;text-transform:uppercase;font-size:12px;font-weight:500;display:flex}& .page-marker:first-of-type{margin-top:var(--space-md)}& .page-marker:after{content:"";background:var(--color-hairline);flex:1;height:1px}& .markdown-body h1{font-family:var(--font-display);letter-spacing:-.5px;margin:var(--space-xxl) 0 var(--space-lg);font-size:40px;font-weight:500;line-height:1.15}& .markdown-body>h1:first-child{margin-top:0}& .markdown-body h3{font-family:var(--font-display);letter-spacing:-.3px;margin:var(--space-xxl) 0 var(--space-md);padding-top:var(--space-md);font-size:28px;font-weight:500;line-height:1.25}& .markdown-body h4{font-family:var(--font-body);color:var(--color-ink);margin:var(--space-xl) 0 var(--space-sm);font-size:19px;font-weight:600}& .markdown-body h5{font-family:var(--font-body);color:var(--color-body-strong);margin:var(--space-lg) 0 var(--space-xs);font-size:16px;font-weight:600}& .markdown-body p{color:var(--color-body);margin:0 0 var(--space-md);font-size:16px;line-height:1.75}& .markdown-body ul,& .markdown-body ol{color:var(--color-body);margin:0 0 var(--space-md);padding-left:1.4em;font-size:16px;line-height:1.75}& .markdown-body li{margin-bottom:4px}& .markdown-body strong{color:var(--color-body-strong);font-weight:600}& .markdown-body figure.diagram{margin:var(--space-lg) 0 var(--space-xl);padding:var(--space-lg) var(--space-md) var(--space-md);background:var(--color-surface-soft);border:1px solid var(--color-hairline);border-radius:var(--radius-lg)}& .markdown-body figure.diagram svg{width:100%;max-width:720px;height:auto;margin:0 auto;display:block}& .markdown-body figure.diagram figcaption{margin-top:var(--space-md);text-align:center;color:var(--color-muted);font-size:13px;line-height:1.6}& .markdown-body .def-label{color:var(--color-primary-active);font-weight:600}& .markdown-body a{color:var(--color-primary);border-bottom:1px solid var(--color-primary-disabled)}& .markdown-body a:hover{border-color:var(--color-primary)}& .markdown-body blockquote{margin:var(--space-lg) 0;padding:var(--space-md) var(--space-lg);border-left:3px solid var(--color-primary);background:var(--color-surface-soft);border-radius:0 var(--radius-md) var(--radius-md) 0;color:var(--color-body-strong)}& .markdown-body blockquote p:last-child{margin-bottom:0}& .markdown-body p>img,& .markdown-body img{border-radius:var(--radius-lg);border:1px solid var(--color-hairline);margin:var(--space-md) 0 var(--space-lg)}& .markdown-body p:has(>img:only-child){margin-bottom:var(--space-lg)}& .markdown-body .table-wrap{margin:var(--space-md) 0 var(--space-xl);border:1px solid var(--color-hairline);border-radius:var(--radius-lg);overflow-x:auto}& .markdown-body table{border-collapse:collapse;width:100%;font-size:14px}& .markdown-body th,& .markdown-body td{text-align:left;border-bottom:1px solid var(--color-hairline);vertical-align:top;padding:10px 14px;line-height:1.5}& .markdown-body thead th{background:var(--color-surface-card);color:var(--color-ink);font-size:13px;font-weight:600}& .markdown-body tbody tr:last-child td{border-bottom:none}& .markdown-body tbody tr:hover{background:var(--color-surface-soft)}& .markdown-body code{font-family:var(--font-code);background:var(--color-surface-card);color:var(--color-body-strong);border-radius:var(--radius-xs);padding:2px 6px;font-size:13.5px}& .markdown-body pre{margin:var(--space-md) 0 var(--space-xl);background:var(--color-surface-dark);border-radius:var(--radius-lg);padding:var(--space-lg);position:relative;overflow-x:auto}& .markdown-body pre code{font-family:var(--font-code);color:#e8e3d8;white-space:pre;background:0 0;padding:0;font-size:13.5px;line-height:1.65}& .markdown-body pre:before{content:attr(data-lang);font-family:var(--font-body);letter-spacing:1px;text-transform:uppercase;color:var(--color-on-dark-soft);font-size:11px;position:absolute;top:10px;right:16px}& .hljs-keyword,& .hljs-built_in{color:#e8a55a}& .hljs-string{color:#5db8a6}& .hljs-comment{color:#8e8b82;font-style:italic}& .hljs-number,& .hljs-literal{color:#cc9b7c}& .hljs-title.function_,& .hljs-title.class_{color:#9cc7e8}& .hljs-attr,& .hljs-property{color:#d6c08a}& .lesson-pager{gap:var(--space-md);margin-top:var(--space-xxl);padding-top:var(--space-xl);border-top:1px solid var(--color-hairline);grid-template-columns:1fr 1fr;display:grid}& .lesson-pager a{padding:var(--space-md) var(--space-lg);border:1px solid var(--color-hairline);border-radius:var(--radius-lg);transition:border-color .15s,background-color .15s;display:block}& .lesson-pager a:hover{border-color:var(--color-primary);background:var(--color-surface-soft)}& .lesson-pager__dir{color:var(--color-muted-soft);margin-bottom:4px;font-size:12px}& .lesson-pager__title{color:var(--color-ink);font-size:15px;font-weight:500}& .lesson-pager--next{text-align:right;grid-column:2}& .back-to-top{border-radius:var(--radius-full,9999px);background:var(--color-surface-dark);width:44px;height:44px;color:var(--color-on-dark);opacity:0;pointer-events:none;cursor:pointer;z-index:40;justify-content:center;align-items:center;transition:opacity .2s,transform .2s;display:flex;position:fixed;bottom:28px;right:28px;transform:translateY(8px)}& .back-to-top.is-visible{opacity:1;pointer-events:auto;transform:translateY(0)}@media (width<=1024px){& .lesson-grid{grid-template-columns:repeat(2,1fr)}& .hero__inner{grid-template-columns:1fr}& .hero__card{order:-1}}@media (width<=768px){& .top-nav{padding:0 var(--space-md)}& .top-nav__toggle{display:inline-flex}& .top-nav__cta,& .top-nav__brand .brand-sub{display:none}& .top-nav__menu{max-height:calc(100vh - 64px);padding:var(--space-sm) var(--space-md) var(--space-md);background:var(--color-canvas);border-bottom:1px solid var(--color-hairline);flex-direction:column;align-items:stretch;gap:2px;display:none;position:absolute;top:64px;left:0;right:0;overflow-y:auto;box-shadow:0 14px 28px #1414131a}& .top-nav__menu.is-open{display:flex}& .top-nav__link{padding:12px 14px;font-size:15px}& .hero{padding:48px var(--space-md) 64px}& .hero h1{font-size:36px}& .hero__actions{flex-direction:column;align-items:stretch}& .hero__actions .btn{width:100%}& .hero__stats{gap:var(--space-lg);margin-top:var(--space-xl);flex-wrap:wrap}& .section{padding:56px var(--space-md)}& .lesson-grid{grid-template-columns:1fr}& .lesson-header{padding:var(--space-xl) var(--space-md)}& .lesson-header h1,& .markdown-body h1{font-size:30px}& .markdown-body h3{font-size:22px}& .markdown-body figure.diagram{padding:var(--space-md) var(--space-sm);overflow-x:auto}& .markdown-body figure.diagram svg{min-width:560px}& .cta-band{margin:0 var(--space-md) 64px;padding:40px var(--space-lg)}& .cta-band h2{font-size:26px}& .lesson-pager{grid-template-columns:1fr}& .lesson-pager--next{text-align:left;grid-column:1}& .back-to-top{width:42px;height:42px;bottom:16px;right:16px}& .lesson-layout{gap:var(--space-lg);padding:var(--space-lg) var(--space-md) 64px;grid-template-columns:1fr}& .toc{max-height:none;margin-bottom:var(--space-md);border:1px solid var(--color-hairline);border-radius:var(--radius-lg);background:var(--color-surface-soft);padding-right:0;position:static;overflow:hidden}& .toc__label{padding:14px var(--space-md);cursor:pointer;justify-content:space-between;align-items:center;min-height:48px;margin:0;display:flex}& .toc__label:after{content:"";border-right:2px solid var(--color-muted);border-bottom:2px solid var(--color-muted);width:9px;height:9px;transition:transform .2s;transform:rotate(45deg)}& .toc.is-toc-open .toc__label:after{transform:rotate(-135deg)}& .toc__panel{display:none}& .toc.is-toc-open .toc__panel{padding:0 var(--space-md) var(--space-sm);display:block}& .toc a{padding:9px 10px}}& .markdown-body pre,& .hero__card pre{border-radius:var(--radius-lg,12px);transition:border-color .25s,box-shadow .25s;position:relative;box-shadow:0 10px 35px #00000047;background:#1e1e1e!important;border:1px solid #2d2d2d!important;padding:38px 0 10px!important;overflow-x:hidden!important}& .markdown-body pre:hover,& .hero__card pre:hover{box-shadow:0 14px 45px #00000061;border-color:#3e3e3e!important}& .markdown-body pre code,& .hero__card pre code{background:0 0!important;padding:0!important}& .markdown-body pre:before{display:none!important}& .vscode-header{border-top-left-radius:var(--radius-lg,12px);border-top-right-radius:var(--radius-lg,12px);user-select:none;z-index:5;background:#181818;border-bottom:1px solid #282828;justify-content:space-between;align-items:center;height:38px;padding:0 14px;display:flex;position:absolute;top:0;left:0;right:0}& .vscode-buttons{align-items:center;gap:7px;display:flex}& .vscode-btn{border-radius:50%;width:10px;height:10px;display:inline-block}& .vscode-btn.close{background:#ff5f56}& .vscode-btn.minimize{background:#ffbd2e}& .vscode-btn.maximize{background:#27c93f}& .vscode-tab{font-family:var(--font-body);color:#858585;text-transform:capitalize;padding-right:32px;font-size:11.5px;font-weight:500}& .copy-btn{border-radius:var(--radius-md,6px);color:#858585;cursor:pointer;opacity:.7;z-index:10;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;width:30px;height:30px;transition:opacity .2s,background-color .2s,color .2s,border-color .2s;display:flex;position:absolute;top:4px;right:8px}& pre:hover .copy-btn{opacity:1}& .copy-btn:hover{color:#ccc;background:#ffffff0d;border-color:#ffffff14}& .copy-btn svg{width:14px;height:14px;transition:transform .15s}& .copy-btn:active svg{transform:scale(.85)}& .copy-btn.copied{background:var(--color-success,#5db872)!important;border-color:var(--color-success,#5db872)!important;color:#fff!important;opacity:1!important}& .markdown-body pre code{--line-height:1.7;--gutter-ch:2;tab-size:4;display:block}& .code-line{border-radius:3px;align-items:flex-start;width:100%;transition:background-color .12s;display:flex}& .code-line:hover{background:#ffffff0b}& .line-number{width:calc(var(--gutter-ch,2) * 1ch + 20px);text-align:right;color:#6e7681;user-select:none;font-family:var(--font-code);font-size:13.5px;line-height:var(--line-height);font-variant-numeric:tabular-nums;border-right:1px solid #2d2d2d;flex:none;margin-right:16px;padding-left:20px;padding-right:16px;display:inline-block}& .code-line:hover .line-number{color:#b0b6bf}& .line-content{overflow-wrap:anywhere;min-width:0;font-family:var(--font-code);font-size:13.5px;line-height:var(--line-height);color:#d4d4d4;font-feature-settings:"liga" 0, "calt" 0;flex:1;padding-right:20px;white-space:pre-wrap!important;word-break:normal!important}& .line-content::selection,& .line-content ::selection{background:#58a6ff47}}
