@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2c55a0e60120577a-s.0bjc5tiuqdqro.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:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.0m6w47a4e5dy9.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/ad66f9afd8947f86-s.11u06r12fd6v_.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5476f68d60460930-s.0wxq9webf.ew4.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:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.067x_6k0k23tk.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:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/1bffadaabf893a1e-s.16ipb6fqu393i.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:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.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:Inter Fallback;src:local(Arial);ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.0%;size-adjust:107.12%}.inter_b2991b2-module__9mH_6q__className{font-family:Inter,Inter Fallback;font-style:normal}.inter_b2991b2-module__9mH_6q__variable{--font-sans:"Inter", "Inter Fallback"}
@font-face{font-family:Fira Code;font-style:normal;font-weight:300 700;font-display:swap;src:url(../media/88731e1a74492905-s.093kp-ivx0g2f.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:Fira Code;font-style:normal;font-weight:300 700;font-display:swap;src:url(../media/861011d7404b02f6-s.0.xm8qlf5_315.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Fira Code;font-style:normal;font-weight:300 700;font-display:swap;src:url(../media/3381337b621a9a6a-s.064fjoont5c7t.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Fira Code;font-style:normal;font-weight:300 700;font-display:swap;src:url(../media/5413d6e6d8960ee4-s.05vzz1snb6e.m.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:Fira Code;font-style:normal;font-weight:300 700;font-display:swap;src:url(../media/0951afe60dbf5d36-s.04q-sk9kar98f.woff2)format("woff2");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Fira Code;font-style:normal;font-weight:300 700;font-display:swap;src:url(../media/97e7b204180d1274-s.15almw42k3wem.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:Fira Code;font-style:normal;font-weight:300 700;font-display:swap;src:url(../media/b8b552e8609c5636-s.p.0vinx1niofu4y.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:Fira Code Fallback;src:local(Arial);ascent-override:73.56%;descent-override:23.92%;line-gap-override:0.0%;size-adjust:134.59%}.fira_code_77835f0c-module__K6b84G__className{font-family:Fira Code,Fira Code Fallback;font-style:normal}.fira_code_77835f0c-module__K6b84G__variable{--font-mono:"Fira Code", "Fira Code Fallback"}
:root{--bg:#f8fafc;--paper:#fff;--paper-strong:#fff;--ink:#1e293b;--muted:#64748b;--line:#e2e8f0;--brand:#60a5fa;--brand-dark:#3b82f6;--accent:#c084fc;--accent-soft:#f1f5f9;--btn-secondary-text:#475569;--green:#34d399;--orange:#fb923c;--code-bg:#0f172a;--code-line:#1e293b;--prose-text:#303946;--source-band-bg:#173d45;--source-band-text:#f9fafb;--source-band-subtext:#d6e5e7;--tag-bg:#ebe6db;--tag-text:#4e5966;--blockquote-bg:#fff6df;--blockquote-border:#d49c2f;--blockquote-text:#4c3b16;--inline-code-bg:#eee7da;--inline-code-border:#e0d6c4;--inline-code-text:#8a2d1d;--ad-bg-stripe1:#f0eadf;--ad-bg-stripe2:#ebe3d5;--ad-border:#b9ad9a;--ad-text:#776b5b;--sidebar-width:300px;--rail-width:260px;--navbar-height:68px;--font-sans:"Inter", system-ui, sans-serif;--font-mono:"Fira Code", ui-monospace, monospace}:root[data-theme=dark]{--bg:#0f172a;--paper:#1e293b;--paper-strong:#0f172a;--ink:#f8fafc;--muted:#94a3b8;--line:#334155;--brand:#3b82f6;--brand-dark:#60a5fa;--accent:#a855f7;--accent-soft:#1e293b;--btn-secondary-text:#cbd5e1;--green:#10b981;--orange:#f97316;--code-bg:#020617;--code-line:#1e293b;--prose-text:#e2e8f0;--source-band-bg:#1e293b;--source-band-text:#f8fafc;--source-band-subtext:#94a3b8;--tag-bg:#334155;--tag-text:#cbd5e1;--blockquote-bg:#451a03;--blockquote-border:#d97706;--blockquote-text:#fde68a;--inline-code-bg:#1e293b;--inline-code-border:#334155;--inline-code-text:#f87171;--ad-bg-stripe1:#1e293b;--ad-bg-stripe2:#0f172a;--ad-border:#334155;--ad-text:#64748b}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.65}a{color:var(--brand);text-decoration:none;transition:all .2s ease-in-out}:focus-visible{outline:2px solid var(--brand);outline-offset:2px}a:hover{color:var(--accent)}.hover-jump{transition:transform .2s cubic-bezier(.4,0,.2,1),box-shadow .2s cubic-bezier(.4,0,.2,1)}.hover-jump:hover{z-index:10;position:relative;transform:translateY(-4px)scale(1.02);box-shadow:0 10px 25px -5px #60a5fa26,0 8px 10px -6px #c084fc1a}.hover-jump:active{transform:scale(.98)}.app-container{min-height:100vh}.navbar{background:var(--bg);border-bottom:1px solid var(--line);height:var(--navbar-height);z-index:50;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);justify-content:space-between;align-items:center;gap:2rem;padding:0 2rem;display:flex;position:sticky;top:0}.navbar-brand{color:var(--ink);font-size:1.25rem;font-weight:800}.navbar-brand span{color:var(--brand)}.navbar-links{gap:1rem;font-size:.92rem;font-weight:700;display:flex}.main-layout{grid-template-columns:var(--sidebar-width) minmax(0, 860px) var(--rail-width);max-width:1500px;min-height:calc(100vh - var(--navbar-height));margin:0 auto;display:grid}.sidebar,.right-rail{height:calc(100vh - var(--navbar-height));top:var(--navbar-height);align-self:start;position:sticky;overflow-y:auto}.sidebar{border-right:1px solid var(--line);padding:1.5rem 1.25rem 2rem}.right-rail{border-left:1px solid var(--line);padding:1.5rem 1.25rem}.sidebar-heading,.eyebrow,.lesson-kicker{color:var(--accent);letter-spacing:.12em;text-transform:uppercase;font-size:.75rem;font-weight:900}.sidebar-chapter{margin-top:1.5rem}.sidebar-chapter h2{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;margin-bottom:.55rem;font-size:.78rem}.sidebar-link{color:var(--ink);border:1px solid #0000;border-radius:8px;align-items:flex-start;gap:.65rem;padding:.65rem;line-height:1.35;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex}.sidebar-link span{color:var(--orange);font-family:var(--font-mono);margin-top:.08rem;font-size:.72rem}.sidebar-link:hover{background:var(--paper);border-color:var(--brand);z-index:10;position:relative;transform:translateY(-2px)scale(1.02);box-shadow:0 4px 12px -2px #60a5fa33}.sidebar-link:active{transform:scale(.98)}.content-area{min-width:0;padding:2rem clamp(1rem,3vw,3rem) 4rem}.right-rail h2{margin-bottom:.4rem;font-size:.95rem}.right-rail p{color:var(--muted);font-size:.92rem}.rail-panel{border-top:1px solid var(--line);margin-top:1.25rem;padding-top:1.25rem}.hero{min-height:calc(100vh - var(--navbar-height) - 3rem);grid-template-columns:minmax(0,1fr);align-items:start;gap:clamp(1.5rem,4vw,3rem);padding:2rem 0;display:grid}.hero-copy{z-index:1;max-width:900px;position:relative}.hero h1{color:var(--ink);letter-spacing:0;max-width:860px;margin:.6rem 0 1.2rem;font-size:clamp(2.4rem,4.6vw,4.6rem);font-weight:900;line-height:1.02}.hero p{color:var(--muted);max-width:680px;font-size:1.12rem}.hero-actions{flex-wrap:wrap;gap:.8rem;margin-top:1.75rem;display:flex}.btn-primary,.btn-secondary{border-radius:6px;align-items:center;min-height:44px;padding:.75rem 1rem;font-weight:800;transition:all .2s ease-out;display:inline-flex}.btn-primary{background:var(--brand);color:#fff}.btn-primary:hover{background:var(--brand-dark);color:#fff;transform:translateY(-2px);box-shadow:0 8px 16px -4px #6366f14d}.btn-secondary{background:var(--accent-soft);color:var(--btn-secondary-text);border:1px solid var(--line)}.btn-secondary:hover{transform:translateY(-2px);box-shadow:0 8px 16px -4px #c084fc40}.btn-primary:active,.btn-secondary:active{transform:scale(.96)}.hero-terminal{background:var(--code-bg);border:1px solid var(--code-line);border-radius:8px;width:min(100%,760px);transition:all .25s cubic-bezier(.4,0,.2,1);overflow:hidden;box-shadow:0 24px 70px #0f172a2e}.hero-terminal:hover{border-color:var(--brand);transform:translateY(-4px)scale(1.01);box-shadow:0 30px 80px #60a5fa40}.terminal-bar{background:#1d2737;align-items:center;gap:.4rem;height:38px;padding:0 .9rem;display:flex}.terminal-bar span{background:#f87171;border-radius:999px;width:10px;height:10px}.terminal-bar span:nth-child(2){background:#fbbf24}.terminal-bar span:nth-child(3){background:#34d399}.hero-terminal pre{color:#dbeafe;font-family:var(--font-mono);padding:1.25rem;font-size:.9rem;overflow-x:auto}.metric-strip{background:var(--paper);border:1px solid var(--line);border-radius:8px;grid-template-columns:repeat(3,1fr);gap:1px;margin:2rem 0 3rem;display:grid;overflow:hidden}.metric-strip div{padding:1.2rem}.metric-strip strong,.metric-strip span{display:block}.metric-strip strong{font-size:1.55rem;line-height:1.1}.metric-strip span{color:var(--muted);margin-top:.25rem;font-size:.9rem}.section-block{margin-top:3.5rem}.section-heading{max-width:760px}.section-heading h2,.source-band h2{margin-top:.35rem;font-size:clamp(1.7rem,3vw,2.55rem);line-height:1.1}.chapter-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:1.4rem;display:grid}.chapter-card{background:var(--paper);border:1px solid var(--line);color:var(--ink);border-radius:8px;min-height:156px;padding:1.2rem;transition:all .25s cubic-bezier(.4,0,.2,1)}.chapter-card:hover{border-color:var(--brand);color:var(--ink);transform:translateY(-4px)scale(1.02);box-shadow:0 12px 24px -10px #6366f140}.chapter-card span{color:var(--accent);text-transform:uppercase;font-size:.75rem;font-weight:900}.chapter-card h3{margin:.6rem 0;font-size:1.35rem;line-height:1.15}.chapter-card p{color:var(--muted)}.source-band{background:var(--source-band-bg);color:var(--source-band-text);border-radius:8px;grid-template-columns:1fr 1fr;align-items:start;gap:2rem;padding:clamp(1.2rem,3vw,2rem);display:grid}.source-band p{color:var(--source-band-subtext);margin-top:.9rem}.source-list{gap:.7rem;list-style:none;display:grid}.source-list li{background:#ffffff14;border:1px solid #ffffff24;border-radius:6px;padding:.75rem}.tutorial-container{max-width:820px;margin:0 auto}.article-header{border-bottom:1px solid var(--line);margin-bottom:2rem;padding:1.25rem 0 1.6rem}.article-header h1{letter-spacing:0;margin:.5rem 0 .9rem;font-size:clamp(2.1rem,4vw,3.4rem);line-height:1.05}.article-header p{color:var(--muted);max-width:720px;font-size:1.1rem}.article-meta{flex-wrap:wrap;gap:.5rem;margin-top:1rem;display:flex}.article-meta span{background:var(--tag-bg);color:var(--tag-text);border-radius:999px;padding:.25rem .65rem;font-size:.78rem;font-weight:800}.prose{color:var(--prose-text);font-size:1.05rem}.prose h2,.prose h3{color:var(--ink);cursor:default;line-height:1.18;transition:transform .2s ease-out,color .2s ease-out}.prose h2:hover,.prose h3:hover{color:var(--brand);transform:translate(6px)}.prose h1{margin:0 0 1.2rem;font-size:2.25rem}.prose h2{border-top:1px solid var(--line);margin:2.5rem 0 1rem;padding-top:1.3rem;font-size:1.7rem}.prose h3{margin:2rem 0 .7rem;font-size:1.25rem}.prose p,.prose ul,.prose ol{margin-bottom:1.25rem}.prose ul,.prose ol{padding-left:1.4rem}.prose li{margin-bottom:.45rem}.prose strong{color:var(--ink)}.prose blockquote{background:var(--blockquote-bg);border-left:4px solid var(--blockquote-border);color:var(--blockquote-text);border-radius:0 6px 6px 0;margin:1.5rem 0;padding:1rem 1.2rem}.prose code{background:var(--inline-code-bg);border:1px solid var(--inline-code-border);color:var(--inline-code-text);font-family:var(--font-mono);border-radius:4px;padding:.12rem .35rem;font-size:.88em}.prose pre{border:1px solid var(--code-line);border-radius:8px;margin:1.4rem 0;padding:1.1rem;overflow-x:auto;background:var(--code-bg)!important}.prose pre code{color:inherit;background:0 0;border:0;padding:0}.lesson-nav{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;gap:1rem;margin-top:3rem;padding-top:1.5rem;display:grid}.lesson-nav a{background:var(--paper);border:1px solid var(--line);color:var(--ink);border-radius:8px;min-height:92px;padding:1rem;font-weight:800;transition:all .25s cubic-bezier(.4,0,.2,1);display:block}.lesson-nav a:hover{border-color:var(--brand);transform:translateY(-4px)scale(1.02);box-shadow:0 12px 24px -10px #60a5fa40}.lesson-nav a:last-child{text-align:right}.lesson-nav span{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;margin-bottom:.35rem;font-size:.72rem;font-weight:900;display:block}.ad-placeholder{background:repeating-linear-gradient(135deg, var(--ad-bg-stripe1), var(--ad-bg-stripe1) 10px, var(--ad-bg-stripe2) 10px, var(--ad-bg-stripe2) 20px);border:1px dashed var(--ad-border);color:var(--ad-text);text-align:center;border-radius:8px;justify-content:center;align-items:center;min-height:108px;margin:1.5rem 0;padding:1rem;display:flex}.ad-placeholder p{letter-spacing:.08em;text-transform:uppercase;font-size:.78rem;font-weight:900}.ad-live{background:0 0;border-style:solid;padding:.25rem}.ad-placeholder-compact{min-height:240px}.ad-placeholder-bottom{width:100%;max-width:820px;min-height:120px;margin:3rem auto 0}.comments-section{border-top:1px solid var(--line);margin-top:3rem;padding-top:2rem}.comments-section h2{margin-bottom:.5rem;font-size:1.5rem}.comments-section p{color:var(--muted);margin-bottom:1rem}@media (max-width:1180px){.main-layout{grid-template-columns:var(--sidebar-width) minmax(0, 1fr)}.right-rail{display:none}}@media (max-width:860px){.navbar{flex-direction:column;align-items:flex-start;gap:.35rem;height:auto;padding:.8rem 1rem;position:static}.navbar-links{flex-wrap:wrap}.main-layout{display:block}.sidebar{border-bottom:1px solid var(--line);border-right:0;height:auto;max-height:360px;position:static}.content-area{padding:1rem 1rem 3rem}.hero,.source-band{grid-template-columns:1fr;min-height:auto}.chapter-grid,.metric-strip,.lesson-nav{grid-template-columns:1fr}.lesson-nav a:last-child{text-align:left}}
