@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2c55a0e60120577a-s.03ez25a9g3i0n.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.3i9rha7jpxn0q.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.2o7ko1d-5m1xu.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.1ee5w62fj497l.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.1way2z9fj6cig.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.0szrwpqb9mkwe.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-20C4,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.45535valc9rzk.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%}.LINzvG_className{font-family:Inter,Inter Fallback;font-style:normal}.LINzvG_variable{--font-inter:"Inter", "Inter Fallback"}
@font-face{font-family:Inter Tight;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/13ae3e01af63c0ce-s.3-5_uhe2g8vfj.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 Tight;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/0ee4b8f05dcd9fee-s.27tgfqm6_tedn.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Tight;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/9eba4caf7edd2921-s.2r0cv3f07u_0l.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter Tight;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/f6752bd2263820da-s.12_ze2_d4hpxy.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 Tight;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/f285987c35230861-s.318-mahh4esyg.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 Tight;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/b8d1f0a88dfecec3-s.0yot_wy8hf-md.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Tight;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/ab57efd000576a30-s.p.2q0khlq77_eaw.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 Tight Fallback;src:local(Arial);ascent-override:100.51%;descent-override:25.03%;line-gap-override:0.0%;size-adjust:96.39%}._3dp3XW_className{font-family:Inter Tight,Inter Tight Fallback;font-style:normal}._3dp3XW_variable{--font-display:"Inter Tight", "Inter Tight Fallback"}
:root{--blue:#1e3fcc;--blue-dark:#142c94;--navy:#0a1433;--navy-raised:#131f48;--amber:#ffb020;--ink:#0d1526;--text:#1c2333;--muted:#5b6475;--line:#dde1ea;--bg:#fff;--bg-soft:#f3f5fb;--on-dark:#fff;--on-dark-muted:#b9c2dc;--error:#b00020;--good:#0f7a3d;--good-soft:#e4f3ea;--blue-soft:#edf1fd;--amber-soft:#fff3d4;--warm:#faf6ee;--line-strong:#c4cad8;--link-on-dark:#a9bcff;--code-on-dark:#e3e8f8;--warm-label:#7a5000;--term-bg:#0b1230;--term-bar:#141d45;--term-text:#d6ddf5;--term-output:#aab4d4;--term-dot-red:#ff6b5f;--term-dot-green:#3fbf6f;--font-body:var(--font-inter), system-ui, sans-serif;--font-heading:var(--font-display), var(--font-inter), system-ui, sans-serif;--mono:ui-monospace, "SF Mono", Menlo, monospace;--text-sm:.875rem;--text-lg:1.2rem;--display-1:clamp(2.4rem, 1.5rem + 4vw, 4.75rem);--display-2:clamp(1.8rem, 1.3rem + 2.2vw, 3rem);--display-3:clamp(1.5rem, 1.25rem + 1vw, 2rem);--space-2xs:.25rem;--space-xs:.5rem;--space-s:.75rem;--space-m:1rem;--space-l:1.5rem;--space-xl:2.5rem;--space-2xl:4rem;--space-3xl:6rem;--gutter:clamp(1rem, 4vw, 2.5rem);--page-max:1240px;--read-max:720px;--lesson-max:1440px;--text-col:44rem;--radius-pill:999px;--shadow-soft:0 6px 24px #0a14331a, 0 1px 2px #0a14330f;--header-h:4.5rem;--lesson-bar-h:0rem}@media (max-width:560px){:root{--header-h:3.75rem}}*,:before,:after{box-sizing:border-box}html{scroll-padding-top:calc(var(--header-h) + var(--space-m))}html,body{background:var(--bg);color:var(--text);font-family:var(--font-body);margin:0;font-size:17px;line-height:1.65}::selection{background:var(--amber);color:var(--ink)}h1,h2,h3{font-family:var(--font-heading);color:var(--ink);letter-spacing:-.035em;text-wrap:balance;font-weight:800;line-height:1.05}h1{font-size:var(--display-1);margin:0 0 var(--space-l)}h2{font-size:var(--display-2);margin:var(--space-2xl) 0 var(--space-m)}h3{font-size:var(--text-lg);font-weight:750;line-height:1.2}strong,b{font-weight:700}a{color:var(--blue)}a:hover{color:var(--blue-dark)}:focus-visible{outline:3px solid var(--amber);outline-offset:2px;box-shadow:0 0 0 2px var(--navy)}code,pre{font-family:var(--mono);font-size:.9em}:not(pre)>code{background:var(--bg-soft);padding:.1em .3em}pre{background:var(--bg-soft);border-left:3px solid var(--blue);padding:var(--space-m);overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{border:1px solid var(--line);padding:var(--space-xs) var(--space-s);text-align:left;vertical-align:top}th{background:var(--bg-soft)}input,textarea,button{font:inherit}input:where(:not([type=radio],[type=checkbox])),textarea{border:1px solid var(--line);width:100%;color:var(--text);background:var(--bg);padding:.6rem .75rem}input:focus,textarea:focus{border-color:var(--blue)}button,.button{border:1.5px solid var(--blue);border-radius:var(--radius-pill);background:var(--blue);color:var(--on-dark);cursor:pointer;align-items:center;gap:.6em;padding:.75em 1.5em;font-weight:600;line-height:1.2;text-decoration:none;transition:background-color .2s,border-color .2s,color .2s;display:inline-flex}button:hover,.button:hover{background:var(--blue-dark);border-color:var(--blue-dark);color:var(--on-dark)}.button:after{content:"→";content:"→" / "";transition:transform .2s}.button:hover:after{transform:translate(.25em)}.button-light{background:var(--bg);border-color:var(--bg);color:var(--ink)}.button-light:hover{background:var(--amber);border-color:var(--amber);color:var(--ink)}.button-outline{color:inherit;background:0 0;border-color:currentColor}.button-outline:hover{background:var(--on-dark);border-color:var(--on-dark);color:var(--ink)}.muted{color:var(--muted)}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.eyebrow{font-family:var(--font-body);letter-spacing:.12em;text-transform:uppercase;font-size:.8rem;font-weight:600;display:block}.container{max-width:calc(var(--read-max) + 2 * var(--gutter));padding:var(--space-xl) var(--gutter) var(--space-2xl);margin:0 auto}.band-light{background:var(--bg-soft)}.band-dark{background:var(--navy);color:var(--on-dark-muted)}.band-dark :is(h1,h2,h3),.band-dark a:not(.button),.band-dark .button-outline{color:var(--on-dark)}.photo-band{isolation:isolate;background:var(--navy);color:var(--on-dark);align-items:flex-end;display:flex;position:relative;overflow:hidden}.photo-band-photo{z-index:-2;position:absolute;inset:0}.photo-band-photo img{object-fit:cover}.photo-band:before{content:"";z-index:-1;background:linear-gradient(#050a1959 0%,#050a1940 25%,#050a1999 60%,#050a19e0 100%);position:absolute;inset:0}.photo-band-inner{width:100%;max-width:var(--page-max);padding:calc(var(--header-h) + var(--space-2xl)) var(--gutter) var(--space-xl);margin:0 auto}.photo-band :is(h1,h2){color:var(--on-dark);text-shadow:0 1px 24px #050a1966}.photo-band .eyebrow{color:var(--amber)}.photo-credit{color:var(--on-dark-muted);letter-spacing:.02em;margin:0;font-size:.8rem}.lesson-card{background:var(--bg);color:var(--ink);box-shadow:var(--shadow-soft);flex-direction:column;text-decoration:none;transition:box-shadow .3s;display:flex}.lesson-card:focus-visible{box-shadow:0 0 0 2px var(--navy), var(--shadow-soft)}.lesson-card:hover{color:var(--ink);box-shadow:0 14px 40px #0a14332e,0 1px 2px #0a14330f}.lesson-card-photo{aspect-ratio:3/2;background:var(--navy);display:block;position:relative;overflow:hidden}.lesson-card-photo img{object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.2,1)}.lesson-card:hover .lesson-card-photo img{transform:scale(1.04)}.lesson-card-body{gap:var(--space-2xs);padding:var(--space-m) var(--space-l) var(--space-l);display:grid}.lesson-card .eyebrow{color:var(--blue)}.lesson-card-title{font-family:var(--font-heading);font-size:var(--display-3);letter-spacing:-.03em;text-wrap:balance;font-weight:750;line-height:1.1}.lesson-card-tick{top:var(--space-s);right:var(--space-s);z-index:1;pointer-events:none;width:2rem;height:2rem;position:absolute}.lesson-card:hover .lesson-card-title{text-decoration:underline;-webkit-text-decoration-color:var(--amber);text-decoration-color:var(--amber);text-underline-offset:.18em;text-decoration-thickness:2px}.site-header{--header-fg:var(--ink);--header-bg:var(--bg);--header-shadow:var(--shadow-soft);z-index:50;height:var(--header-h);color:var(--header-fg);background:var(--header-bg);box-shadow:var(--header-shadow);transition:background-color .3s,color .3s,box-shadow .3s;position:sticky;top:0}:is(html[data-header=clear] .site-header,html:not([data-header]):has([data-hero]) .site-header){--header-fg:var(--on-dark);--header-bg:linear-gradient(#050a198c, transparent);--header-shadow:none}[data-hero]{margin-top:calc(-1 * var(--header-h))}.site-header-inner{justify-content:space-between;align-items:center;gap:var(--space-m);height:100%;max-width:var(--page-max);padding:0 var(--gutter);margin:0 auto;display:flex}.brand{color:inherit;letter-spacing:.06em;text-transform:uppercase;align-items:center;gap:.6rem;font-size:.9rem;font-weight:700;line-height:1.1;text-decoration:none;display:inline-flex}.brand:hover{color:inherit}.brand-mark{flex:none;width:2rem;height:2rem}.site-nav{gap:var(--space-l);display:flex}.site-nav a{color:inherit;white-space:nowrap;border-bottom:2px solid #0000;font-size:.95rem;font-weight:500;text-decoration:none}.site-nav a:hover{color:inherit;border-bottom-color:var(--amber)}@media (max-width:560px){.brand{font-size:.78rem}.brand-word{max-width:5.5em}.brand-mark{width:1.75rem;height:1.75rem}.site-nav{gap:var(--space-m)}.site-nav a{font-size:var(--text-sm)}}.site-footer{background:var(--navy);color:var(--on-dark-muted);font-size:.95rem}.site-footer-inner{gap:var(--space-xl);max-width:var(--page-max);padding:var(--space-2xl) var(--gutter) var(--space-xl);grid-template-columns:minmax(0,1fr) minmax(0,2fr);margin:0 auto;display:grid}.footer-about .brand{color:var(--on-dark)}.footer-about p{max-width:24rem;margin:var(--space-m) 0 0}.footer-heading{margin:0 0 var(--space-m);font-family:var(--font-body);letter-spacing:.12em;text-transform:uppercase;color:var(--on-dark-muted);font-size:.8rem;font-weight:600}.footer-lessons ol{columns:2 15rem;column-gap:var(--space-xl);margin:0;padding:0;list-style:none}.footer-lessons li{break-inside:avoid;padding:var(--space-2xs) 0}.site-footer a{color:var(--on-dark);text-decoration:none}.site-footer a:hover{color:var(--on-dark);text-decoration:underline;-webkit-text-decoration-color:var(--amber);text-decoration-color:var(--amber);text-underline-offset:.2em}.footer-number{min-width:1.6em;color:var(--amber);font-variant-numeric:tabular-nums;font-weight:600;display:inline-block}.site-footer-base{max-width:var(--page-max);padding:var(--space-l) var(--gutter);font-size:var(--text-sm);border-top:1px solid #ffffff1f;margin:0 auto}.site-footer-base p{margin:0}.site-footer-base a{text-underline-offset:.2em;text-decoration:underline}@media (max-width:720px){.site-footer-inner{grid-template-columns:minmax(0,1fr)}}.credit-list{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.credit{gap:var(--space-m);padding:var(--space-s) 0;border-bottom:1px solid var(--line);grid-template-columns:7rem minmax(0,1fr);align-items:center;display:grid}.credit-photo{aspect-ratio:3/2;background:var(--navy);display:block;position:relative}.credit-photo img{object-fit:cover}.credit-lesson{color:var(--ink);font-weight:600;text-decoration:none;display:block}.credit-by{color:var(--muted);font-size:var(--text-sm);display:block}.home-section{max-width:var(--page-max);padding:var(--space-3xl) var(--gutter);margin:0 auto}.home-section h2{margin:var(--space-xs) 0 var(--space-m)}.home-section>.eyebrow,.home-intro .eyebrow{color:var(--blue)}.band-dark .eyebrow{color:var(--amber)}.section-lead{max-width:40rem;font-size:var(--text-lg);color:var(--text)}.band-dark .section-lead{color:var(--on-dark)}.button-row{gap:var(--space-s);flex-wrap:wrap;display:flex}.home-hero{min-height:100svh}.home-hero:before{background:linear-gradient(90deg,#050a19b3 0%,#050a1926 70%),linear-gradient(#050a1966 0%,#050a1933 45%,#050a19d9 100%)}.home-hero .photo-band-photo img{object-position:70% 50%}.home-hero .photo-band-inner{padding-bottom:var(--space-2xl)}.home-hero h1{max-width:15ch;margin:var(--space-s) 0 var(--space-m)}.home-hero-lead{max-width:34rem;margin:0 0 var(--space-xl);font-size:var(--text-lg);color:var(--on-dark)}.photo-band .button-row+.photo-credit,.photo-band .button+.photo-credit{margin-top:var(--space-xl)}.home-intro{gap:var(--space-2xl);grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;display:grid}.home-intro-figure{margin:0}.home-intro-photo{aspect-ratio:4/3;background:var(--navy);display:block;position:relative}.home-intro-photo img{object-fit:cover}.figure-credit{margin-top:var(--space-xs);color:var(--muted);font-size:.8rem}@media (max-width:860px){.home-intro{gap:var(--space-xl);grid-template-columns:minmax(0,1fr)}}.lesson-grid{gap:var(--space-l);margin:var(--space-xl) 0 0;grid-template-columns:repeat(3,minmax(0,1fr));padding:0;list-style:none;display:grid}.lesson-grid li{display:flex}.lesson-grid .lesson-card{flex:1}@media (max-width:1024px){.lesson-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.part-group{margin-top:var(--space-2xl)}.part-group:first-of-type{margin-top:var(--space-xl)}.part-heading{align-items:baseline;gap:var(--space-2xs) var(--space-s);padding-bottom:var(--space-s);border-bottom:2px solid var(--ink);font-size:var(--display-3);flex-wrap:wrap;margin:0;display:flex}.part-number{font-family:var(--font-body);letter-spacing:.12em;text-transform:uppercase;color:var(--blue);font-size:.8rem;font-weight:700}.part-group .lesson-grid{margin-top:var(--space-l)}@media (max-width:640px){.lesson-grid{grid-template-columns:minmax(0,1fr)}}.flow-steps{gap:var(--space-xl) var(--space-l);margin:var(--space-xl) 0;grid-template-columns:repeat(3,minmax(0,1fr));padding:0;list-style:none;display:grid}.flow-step{padding-top:var(--space-m);border-top:1px solid #ffffff2e}.flow-step-number{color:var(--amber);font-family:var(--font-heading);font-size:var(--display-2);font-variant-numeric:tabular-nums;font-weight:800;line-height:1;display:block}.flow-step h3{margin:var(--space-m) 0 var(--space-xs)}.flow-step-link{text-underline-offset:.2em;-webkit-text-decoration:underline #ffb0208c;text-decoration:underline #ffb0208c;text-decoration-thickness:2px}.flow-step-link:hover{-webkit-text-decoration-color:var(--amber);text-decoration-color:var(--amber)}.flow-step-link:after{content:" →";content:" →" / ""}.flow-step p{margin:0 0 var(--space-xs)}.flow-step-skills code{white-space:nowrap}.band-dark :not(pre)>code{background:var(--navy-raised);color:var(--on-dark)}.flow-note{max-width:40rem;margin:0 0 var(--space-l)}@media (max-width:960px){.flow-steps{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:560px){.flow-steps{grid-template-columns:minmax(0,1fr)}}.home-cta{min-height:clamp(28rem,72vh,44rem)}.home-cta .photo-band-photo img{object-position:60% 15%}.home-cta .photo-band-inner{padding-top:var(--space-3xl)}.home-cta h2{margin:var(--space-s) 0 var(--space-m)}@media (max-width:560px){.home-section{padding:var(--space-2xl) var(--gutter)}}.lesson-hero{min-height:clamp(24rem,64vh,40rem)}.lesson-hero .photo-band-inner{max-width:calc(var(--text-col) + 2 * var(--gutter))}.lesson-hero h1{max-width:18ch;margin:var(--space-s) 0 var(--space-m)}.lesson-eyebrow{gap:var(--space-2xs) var(--space-l);flex-wrap:wrap;margin:0;display:flex}.lesson-eyebrow span+span{color:var(--on-dark)}.lesson{--lesson-bg:var(--bg);--stage-top:calc(var(--header-h) + var(--lesson-bar-h) + var(--space-l));background:var(--lesson-bg);overflow-x:clip}.lesson-intro,.lesson-section,.lesson-after,.final-test-inner,.discussion,.prev-next{width:100%;max-width:calc(var(--text-col) + 2 * var(--gutter));padding-inline:var(--gutter);margin-inline:auto}.lesson-intro{gap:var(--space-xl);padding-block:var(--space-2xl) var(--space-m);display:grid}.lesson-intro>.prose{font-size:var(--text-lg);color:var(--ink)}.lesson-section{align-content:start;row-gap:var(--space-l);padding-block:var(--space-xl);grid-template-columns:minmax(0,1fr);display:grid}.section-title{font-size:var(--display-2);margin:0}.section-num{align-items:center;gap:var(--space-xs);margin-bottom:var(--space-s);color:var(--blue);font-family:var(--font-body);letter-spacing:.12em;font-variant-numeric:tabular-nums;font-size:.85rem;font-weight:700;display:flex}.section-num:after{content:"";background:currentColor;width:2.5rem;height:2px}.stage--numeral,.stage-numeral{display:none}.scene-run{row-gap:var(--space-m);display:grid}.scene-run>.stage--scene:has([data-stepper=on]){top:calc(var(--header-h) + var(--lesson-bar-h));z-index:2;height:min(34svh,18rem);margin-inline:calc(-1 * var(--gutter));padding:var(--space-xs) var(--gutter);background:var(--lesson-bg);position:sticky}.scene-steps{gap:var(--space-m);margin:0;padding:0;list-style:none;display:grid}.scene-step{gap:var(--space-s);padding:var(--space-m) var(--space-l) var(--space-m) var(--space-m);background:var(--bg);border:1px solid var(--line);border-left:3px solid var(--blue);box-shadow:var(--shadow-soft);grid-template-columns:auto minmax(0,1fr);align-items:start;display:grid}.scene-step-num{background:var(--blue);width:1.75rem;height:1.75rem;color:var(--on-dark);border-radius:50%;place-items:center;margin-top:.05rem;font-size:.8rem;font-weight:700;line-height:1;display:grid}.scene-step p{color:var(--ink);margin:0}@media (min-width:1080px){.lesson-hero .photo-band-inner{max-width:var(--lesson-max)}html:has(.lesson:not([style*=display])) .site-header-inner{max-width:var(--lesson-max)}.lesson-intro,.lesson-section,.lesson-after,.final-test-inner,.discussion,.prev-next{max-width:var(--lesson-max)}.lesson-intro>*,.lesson-after>*,.final-test-inner>*,.discussion>*{max-width:var(--text-col)}.lesson-section{grid-template-columns:minmax(0, var(--text-col)) minmax(20rem, 1fr);grid-template-rows:repeat(var(--rows), auto) 1fr;column-gap:clamp(2.5rem, 5vw, var(--space-2xl));padding-block:var(--space-2xl)}.lesson-section>*,.scene-run>*{grid-column:1}.scene-run{display:contents}.lesson-section .stage{top:var(--stage-top);grid-area:1/2/-1;align-self:start;position:sticky}.stage--numeral,.stage--idea,.stage-numeral{display:block}.scene-run>.stage--scene{position:static}.scene-run>.stage--scene:has([data-stepper=on]){z-index:auto;height:min(calc(100svh - var(--stage-top) - var(--space-l)), 50rem);background:0 0;margin:0;padding:0;position:sticky}.stage-numeral{color:#0000;font-family:var(--font-heading);letter-spacing:-.06em;font-variant-numeric:tabular-nums;-webkit-text-stroke:2px var(--line-strong);-webkit-user-select:none;user-select:none;font-size:clamp(8rem,13vw,15rem);font-weight:800;line-height:.8}.stage--idea .callout{margin-top:var(--space-xl)}.scene-steps{gap:var(--space-xl)}}.prose{overflow-wrap:anywhere}.prose>:first-child{margin-top:0}.prose>:last-child{margin-bottom:0}.prose :is(p,ul,ol,blockquote,pre,table){margin:0 0 1.1em}.prose h3{margin:1.6em 0 .5em;font-size:1.35rem}.prose :is(ul,ol){padding-left:1.4em}.prose li{margin:.35em 0;padding-left:.2em}.prose li>:is(ul,ol){margin:.35em 0 0}.prose li::marker{color:var(--blue)}.prose ol>li::marker{font-weight:700}.prose li:has(>.task-box){list-style:none}.prose li>.task-box{box-sizing:border-box;vertical-align:-.12em;border:2px solid var(--blue);background:var(--bg);width:1rem;height:1rem;margin:0 .6em 0 -1.5em;display:inline-block}.prose li>.task-box[data-checked]{background:var(--blue)}.prose blockquote{border-left:4px solid var(--amber);color:var(--ink);margin-left:0;padding:.15em 0 .15em 1.2em;font-size:1.08rem}.prose strong{color:var(--ink)}.prose a{text-underline-offset:.18em;text-decoration-thickness:1px}.prose a:hover{text-decoration-thickness:2px}.prose mark,.scene-step mark{color:var(--ink);-webkit-box-decoration-break:clone;box-decoration-break:clone;background-color:#0000;background-image:linear-gradient(100deg,#ffb02026 0,#ffb0208c .4em,#ffb02073 calc(100% - .4em),#ffb02033 100%);background-position:0 70%;background-repeat:no-repeat;background-size:100% 72%;margin:0 -.04em;padding:0 .12em}.prose table{max-width:100%;font-size:.93rem;display:block;overflow-x:auto}.prose :is(th,td){overflow-wrap:normal}.prose th{color:var(--ink);background:#0d15260d}.prose tr:nth-child(2n) td{background:#0d152605}.lesson pre{padding:var(--space-m) var(--space-l);background:var(--navy);border-left:3px solid var(--amber);color:var(--code-on-dark);font-size:.85rem;line-height:1.6;overflow-x:auto}.lesson pre code{font-size:inherit}.lesson :not(pre)>code{color:var(--ink);background:#1e3fcc14;padding:.08em .3em}.block-label{margin:0 0 var(--space-xs);letter-spacing:.12em;text-transform:uppercase;align-items:center;gap:.5rem;font-size:.78rem;font-weight:700;line-height:1.2;display:flex}.icon{flex:none;width:1.1rem;height:1.1rem}.goals{padding:var(--space-l) var(--space-l) var(--space-l);background:var(--bg);border:1px solid var(--line);border-top:4px solid var(--blue);box-shadow:var(--shadow-soft)}.goals .block-label{color:var(--blue)}.goals-title{margin:0 0 var(--space-m);font-size:var(--display-3)}.goals-list{gap:var(--space-s);margin:0;padding:0;list-style:none;display:grid}.goal{gap:var(--space-s);color:var(--ink);grid-template-columns:1.5rem minmax(0,1fr);align-items:start;font-size:1.05rem;line-height:1.5;display:grid}.goal-mark{fill:none;width:1.5rem;height:1.5rem;stroke:var(--blue);stroke-width:2px;margin-top:.05rem}.goal-tick{stroke:var(--good);stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1px}.callout{padding:var(--space-m) var(--space-l) var(--space-l)}.callout--tip{background:var(--bg);border:1px solid var(--line);border-left:4px solid var(--blue)}.callout--tip .block-label{color:var(--blue)}.callout--watch-out{background:var(--amber-soft);border-left:4px solid var(--amber);color:var(--ink)}.callout--watch-out .block-label{color:var(--ink)}.callout--big-idea{padding:var(--space-l) var(--space-xl) var(--space-xl);background:var(--navy);color:var(--on-dark)}.callout--big-idea .block-label{color:var(--amber)}.callout--big-idea .callout-body{font-family:var(--font-heading);font-size:var(--display-3);letter-spacing:-.025em;text-wrap:balance;font-weight:700;line-height:1.2}.callout--big-idea :is(strong,em){color:var(--amber)}.callout--big-idea a{color:var(--link-on-dark)}.callout--big-idea :not(pre)>code{background:var(--navy-raised);color:var(--on-dark)}.try{padding:var(--space-l);background:var(--bg);border:2px dashed var(--blue)}.try .block-label{color:var(--blue)}.html-part{display:contents}.code-block{margin:0 0 1.1em;position:relative}.code-block pre{overflow-wrap:anywhere;white-space:pre-wrap;margin:0;padding-right:6.5rem}.try-body>:last-child,.try-body>:last-child>:last-child{margin-bottom:0}.copy-button{background:var(--navy-raised);color:var(--on-dark);border-color:#ffffff4d;gap:.35em;padding:.35em .8em;font-size:.78rem;position:absolute;top:.5rem;right:.5rem}.copy-button:hover{border-color:var(--on-dark);background:var(--on-dark);color:var(--ink)}.copy-button[data-status=copied]{border-color:var(--good);background:var(--good);color:var(--on-dark)}.copy-button .icon{width:1em;height:1em}.site-story{padding:var(--space-l) var(--space-l) var(--space-l) var(--space-xl);background:var(--warm);border-left:4px solid var(--amber)}.site-story .block-label{color:var(--warm-label)}.site-story-body{color:var(--text)}.site-story pre{white-space:pre-wrap}.site-story :is(th,td){background:var(--bg)}.sources{padding-top:var(--space-m);border-top:1px solid var(--line);color:var(--muted);font-size:var(--text-sm)}.sources .block-label{color:var(--muted)}.sources-list :is(ul,ol){gap:.35rem;margin:0;padding-left:1.1em;display:grid}.sources-list p{margin:0}.lesson-after{padding-block:var(--space-xl) var(--space-2xl)}.scene{background:var(--bg);border:1px solid var(--line);height:100%;box-shadow:var(--shadow-soft);flex-direction:column;margin:0;display:flex;overflow:clip}.scene-title{background:var(--bg-soft);border-bottom:1px solid var(--line);color:var(--ink);flex:none;align-items:center;gap:.6rem;padding:.55rem .9rem;font-size:.8rem;font-weight:700;line-height:1.3;display:flex}.scene-frame{min-height:0;padding:var(--space-m);overscroll-behavior:contain;flex:auto;overflow:auto}.chat-log{flex-direction:column;gap:.55rem;margin:0;padding:0;list-style:none;display:flex}.chat-msg{align-items:flex-start;gap:.5rem;max-width:92%;display:flex}.chat-msg--you{flex-direction:row-reverse;align-self:flex-end}.chat-msg[data-first]:not(:first-child){margin-top:.35rem}.chat-avatar{border-radius:50%;flex:none;place-items:center;width:1.9rem;height:1.9rem;font-size:.62rem;font-weight:700;line-height:1;display:grid}.chat-msg--agent .chat-avatar{background:var(--navy);color:var(--amber)}.chat-msg--you .chat-avatar{background:var(--blue-soft);color:var(--blue)}.chat-avatar .icon{width:.95rem;height:.95rem}.chat-msg:not([data-first]) .chat-avatar{visibility:hidden}.chat-bubble{overflow-wrap:anywhere;border-radius:1.1rem;margin:0;padding:.55rem .85rem;font-size:.9rem;line-height:1.45}.chat-msg--agent .chat-bubble{background:var(--bg-soft);color:var(--ink);border-bottom-left-radius:.3rem}.chat-msg--you .chat-bubble{background:var(--blue);color:var(--on-dark);border-bottom-right-radius:.3rem}.chat-msg--you .chat-bubble :not(pre)>code{color:var(--on-dark);background:#ffffff2e}.chat-msg--you .chat-bubble strong{color:inherit}.chat-msg[data-new] .chat-bubble{box-shadow:0 0 0 2px var(--bg), 0 0 0 4px var(--blue)}.scene--terminal{background:var(--term-bg);border-color:var(--term-bg);color:var(--term-text)}.scene--terminal .scene-title{background:var(--term-bar);color:var(--on-dark-muted);border-bottom-color:#ffffff14}.scene-dots{gap:.35rem;margin-right:.25rem;display:inline-flex}.scene-dots span{background:var(--term-dot-red);border-radius:50%;width:.6rem;height:.6rem}.scene-dots span:nth-child(2){background:var(--amber)}.scene-dots span:nth-child(3){background:var(--term-dot-green)}.scene--terminal .scene-frame{padding:var(--space-m) var(--space-l)}.term-screen{font-family:var(--mono);font-size:.84rem;line-height:1.6}.term-line{overflow-wrap:anywhere;white-space:pre-wrap;display:block}.term-cmd{color:var(--on-dark);gap:.7ch;font-weight:600;display:flex}.term-cmd:not(:first-child){margin-top:.75rem}.term-prompt{color:var(--amber);flex:none}.term-line :is(kbd,samp),samp.term-line{font:inherit}.term-out{color:var(--term-output)}.term-cursor{background:var(--amber);flex:none;align-self:center;width:.55em;height:1.15em;display:none}.term-cmd[data-cursor] .term-cursor{display:inline-block}.scene--flow .scene-frame,.scene--meter .scene-frame{display:grid}.flow-map{width:100%;max-width:24rem;margin:auto;padding:0;list-style:none}.flow-map--branched{max-width:36rem}.flow-stop{grid-template-columns:minmax(0,1fr);display:grid}.flow-map--branched .flow-stop{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);grid-template-areas:"edge.""node side";column-gap:1.5rem}.flow-map--branched .flow-stop>.flow-edge{grid-area:edge}.flow-map--branched .flow-stop>.flow-node{grid-area:node}.flow-sides{grid-area:side;align-self:center;gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.flow-side{grid-template-columns:1.5rem minmax(0,1fr);align-items:center;margin-left:-1.5rem;display:grid}.flow-edge{justify-self:center;width:12px;height:1.5rem;display:block}.flow-edge--side{justify-self:stretch;width:auto;height:12px}.flow-edge svg{width:100%;height:100%;display:block;overflow:visible}.flow-edge line{stroke:var(--line-strong);stroke-width:2px;vector-effect:non-scaling-stroke}.flow-edge[data-drawn] line{stroke:var(--blue)}.flow-edge--side line{stroke-dasharray:.14 .1}.flow-node{background:var(--bg);border:2px solid var(--line-strong);color:var(--muted);align-items:center;gap:.6rem;padding:.6rem .85rem;font-size:.9rem;font-weight:600;line-height:1.3;display:flex}.flow-node--side{border-style:dashed;font-size:.84rem}.flow-mark{border:2px solid var(--line-strong);border-radius:50%;flex:none;place-items:center;width:1.35rem;height:1.35rem;display:grid}.flow-mark .icon{stroke-width:3px;opacity:0;width:.8rem;height:.8rem}.flow-node[data-state=done]{background:var(--blue-soft);border-color:var(--blue);color:var(--ink)}.flow-node[data-state=done] .flow-mark{background:var(--blue);border-color:var(--blue);color:var(--on-dark)}.flow-node[data-state=done] .flow-mark .icon{opacity:1}.flow-node[data-state=current]{background:var(--blue);border-color:var(--blue);color:var(--on-dark);transform:scale(1.04);box-shadow:0 10px 28px #1e3fcc52}.flow-node[data-state=current] .flow-mark{border-color:var(--on-dark);background:radial-gradient(circle, var(--on-dark) 0 32%, transparent 36%)}.file-list{font-family:var(--mono);margin:0;padding:0;font-size:.84rem;list-style:none}.file-row{border-bottom:1px solid var(--line);border-left:3px solid #0000;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.6rem;padding:.5rem .6rem;display:grid}.file-row[data-change=added]{border-left-color:var(--good)}.file-row[data-change=changed]{background:var(--amber-soft);border-left-color:var(--amber)}.file-icon{color:var(--muted)}.file-path{overflow-wrap:anywhere}.file-dir{color:var(--muted)}.file-name{color:var(--ink);font-weight:700}.file-badge{font-family:var(--font-body);letter-spacing:.06em;text-transform:uppercase;padding:.12rem .45rem;font-size:.68rem;font-weight:700}.file-badge--added{background:var(--good-soft);color:var(--good)}.file-badge--changed{background:var(--amber);color:var(--ink)}.file-row[data-change=added] .file-badge--changed,.file-row[data-change=changed] .file-badge--added{display:none}.meter{gap:var(--space-l);margin-block:auto;display:grid}.meter-track{padding-top:1.6rem;position:relative}.meter-region{letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;font-size:.7rem;font-weight:700;line-height:1.2;position:absolute;top:0}.meter-region--smart{width:calc(var(--zone) * 100%);color:var(--good);left:0}.meter-region--dumb{left:calc(var(--zone) * 100% + .5rem);background:var(--amber);color:var(--ink);padding:.1rem .4rem;display:none}.scene[data-zone=dumb] .meter-region--dumb{display:block}.meter-gauge{background:var(--bg-soft);border:1px solid var(--line-strong);height:2.75rem;position:relative;overflow:clip}.meter-fill{background:var(--blue);transform:scaleX(var(--fill));transform-origin:0;position:absolute;inset:0}.scene[data-zone=dumb] .meter-fill{background:var(--amber)}.meter-notch{top:0;bottom:0;left:calc(var(--at) * 100%);background:#0d152659;width:2px;margin-left:-1px;position:absolute}.meter-notch[data-current]{display:none}.meter-zone{top:1.2rem;bottom:-.4rem;left:calc(var(--zone) * 100%);background:var(--ink);width:2px;margin-left:-1px;position:absolute}.meter-readings{color:var(--muted);gap:.2rem;margin:0;padding:0;font-size:.85rem;list-style:none;display:grid}.meter-reading{align-items:baseline;gap:.6rem;display:flex}.meter-value{font-variant-numeric:tabular-nums;min-width:3.2ch;font-weight:700}.meter-reading[data-current]{color:var(--ink);margin-top:.35rem;font-size:1rem}.meter-reading[data-current] .meter-value{font-family:var(--font-heading);font-size:var(--display-3);font-weight:800;line-height:1}.question{padding:var(--space-l);background:var(--bg);border:1px solid var(--line);border-top:4px solid var(--blue);box-shadow:var(--shadow-soft);color:var(--text)}.question-kicker{margin:0 0 var(--space-s);color:var(--blue);letter-spacing:.12em;text-transform:uppercase;align-items:center;gap:.5rem;font-size:.8rem;font-weight:700;line-height:1.2;display:flex}.question-count{color:var(--muted)}.question-fields{border:0;min-width:0;margin:0;padding:0}.question-prompt{float:left;width:100%;margin:0 0 var(--space-m);color:var(--ink);font-family:var(--font-heading);letter-spacing:-.015em;padding:0;font-size:1.2rem;font-weight:750;line-height:1.35}.question-number{color:var(--blue);font-family:var(--font-body);letter-spacing:.1em;text-transform:uppercase;margin-bottom:.4rem;font-size:.78rem;font-weight:700;display:block}.options{clear:both;gap:var(--space-xs);display:grid}.option{gap:var(--space-s);background:var(--bg);border:1.5px solid var(--line-strong);color:var(--ink);cursor:pointer;grid-template-columns:auto minmax(0,1fr);align-items:start;padding:.8rem 1rem;transition:border-color .2s,background-color .2s,box-shadow .2s;display:grid}.option:hover{border-color:var(--blue)}.option:has(:checked){background:var(--blue-soft);border-color:var(--blue);box-shadow:inset 0 0 0 1px var(--blue)}.option:has(:focus-visible){outline:3px solid var(--amber);outline-offset:2px}.option input[type=radio]{appearance:none;border:2px solid var(--muted);background:var(--bg);cursor:pointer;border-radius:50%;place-content:center;width:1.25rem;height:1.25rem;margin:.15rem 0 0;display:grid}.option input[type=radio]:before{content:"";background:var(--blue);border-radius:50%;width:.6rem;height:.6rem;transition:transform .15s;transform:scale(0)}.option input[type=radio]:checked{border-color:var(--blue)}.option input[type=radio]:checked:before{transform:scale(1)}.option input[type=radio]:focus-visible{box-shadow:none;outline:none}.option-text{line-height:1.5}@media (forced-colors:active){.option input[type=radio]:before{forced-color-adjust:none;background:canvastext}.option:has(:checked){outline-offset:-2px;outline:2px solid highlight}}.question-answer{margin-top:var(--space-m);padding-top:var(--space-s);border-top:1px solid var(--line)}.question-answer summary{color:var(--blue);cursor:pointer;font-weight:600}.question-answer p{margin:var(--space-s) 0}.question-answer-list{gap:var(--space-xs);margin:0;padding-left:1.2em;font-size:.95rem;display:grid}.question-answer-option{color:var(--ink);font-weight:700}.question-answer-list li[data-correct] .question-answer-option{color:var(--good)}.final-test{margin-top:var(--space-xl);padding-block:var(--space-2xl);background:var(--navy);color:var(--on-dark-muted)}.final-test-inner{gap:var(--space-l);grid-template-columns:minmax(0,1fr);display:grid}.final-test-head h2{color:var(--on-dark);font-size:var(--display-2);margin:0}.final-test-head .eyebrow{margin:0 0 var(--space-xs);color:var(--amber)}.final-test-lead{max-width:34rem;margin:var(--space-s) 0 0;color:var(--on-dark);font-size:var(--text-lg)}.final-test-main>:not(.final-test-questions){margin-bottom:var(--space-l)}.final-test-main>.prose,.final-test-main>.prose :is(strong,blockquote,h3){color:var(--on-dark)}.final-test-main>.prose a{color:var(--link-on-dark)}.final-test-main>:is(.callout--tip,.callout--watch-out,.try,.site-story){color:var(--text)}.final-test-questions{gap:var(--space-l);margin:0;padding:0;list-style:none;display:grid}.discussion-band{padding-block:var(--space-2xl);background:var(--bg-soft);border-top:1px solid var(--line)}.discussion h2{margin:0 0 var(--space-xs);font-size:var(--display-3)}.prev-next{gap:var(--space-l);padding-block:var(--space-2xl);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.prev-next .next{grid-column:2}@media (min-width:1080px){.prev-next{grid-template-columns:repeat(2, minmax(0, calc((var(--text-col) - var(--space-l)) / 2)))}}@media (max-width:640px){.prev-next{grid-template-columns:minmax(0,1fr)}.prev-next .next{grid-column:auto}}.comment-form{margin:var(--space-s) 0 1.25rem;gap:.6rem;display:grid}.comment-form button{justify-self:start}.comment-form button:disabled{opacity:.6;cursor:wait}.form-error{color:var(--error);margin:0;font-size:.9rem}.comment-list{margin:0;padding:0;list-style:none}.comment{background:var(--bg);border-left:3px solid var(--blue);padding:var(--space-s) var(--space-m);margin-bottom:var(--space-s)}.comment p{overflow-wrap:anywhere;white-space:pre-wrap;margin:.2rem 0 0}.comment-meta{font-size:.9rem}@media (prefers-reduced-motion:no-preference){[data-reveal-state=hidden]{opacity:0;transform:translateY(1.5rem)}[data-reveal-state=shown]{transition:opacity .6s ease-out,transform .6s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--reveal-i,0) * 80ms)}@supports (animation-timeline:view()){.photo-band{view-timeline:--band block}[data-hero] .photo-band-photo{animation:linear both band-drift;animation-timeline:--band;animation-range:exit}.home-cta .photo-band-photo{animation:linear both band-glide;animation-timeline:--band;animation-range:cover;inset:-12% 0}}}@keyframes band-drift{to{transform:translateY(30%)}}@keyframes band-glide{0%{transform:translateY(-9%)}to{transform:translateY(9%)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
