.video-embed[data-astro-cid-mrk3q7f7]{margin:0 0 var(--space-6)}.video-frame[data-astro-cid-mrk3q7f7]{position:relative;aspect-ratio:16 / 9;border:1px solid var(--rule);border-radius:4px;overflow:hidden;background:#000}.video-frame[data-astro-cid-mrk3q7f7] iframe[data-astro-cid-mrk3q7f7]{position:absolute;inset:0;width:100%;height:100%;border:0}.code-block-wrap{position:relative;margin:var(--space-5) 0}.code-block-wrap>pre{margin:0}.code-block-actions{position:absolute;top:.55rem;right:.6rem;z-index:2;display:flex;gap:.35rem}.code-action-btn{font-family:var(--font-sans);font-size:.72rem;font-weight:500;letter-spacing:.04em;text-transform:uppercase;padding:.3rem .65rem;border:1px solid var(--rule);border-radius:3px;background:var(--parchment-light);color:var(--ink-soft);cursor:pointer;opacity:0;transition:opacity .15s ease,border-color .15s ease,color .15s ease,background .15s ease}.code-block-wrap:hover .code-action-btn,.code-block-wrap:focus-within .code-action-btn,.code-action-btn:focus{opacity:1}.code-action-btn:hover{border-color:var(--gold);color:var(--oxblood)}.code-copy-btn.copied{opacity:1;border-color:var(--oxblood);color:var(--oxblood);background:var(--parchment)}@media(max-width:720px){.code-action-btn{opacity:1}}.py-playground{border:1px solid var(--rule);border-radius:4px;background:var(--code-bg);overflow:hidden;max-width:var(--measure-wide);box-shadow:0 1px 2px #1c18140a}.py-playground-toolbar{display:flex;align-items:center;gap:var(--space-2);padding:.5rem .75rem;border-bottom:1px solid var(--rule);background:var(--parchment-light)}.py-playground-toolbar button{font-family:var(--font-sans);font-size:.78rem;font-weight:500;padding:.3rem .7rem;border:1px solid var(--rule);border-radius:3px;background:var(--parchment);color:var(--ink);cursor:pointer;transition:border-color .15s ease,color .15s ease}.py-playground-toolbar button:hover:not(:disabled){border-color:var(--gold);color:var(--oxblood)}.py-playground-toolbar button:disabled{opacity:.55;cursor:progress}.py-playground-run{font-weight:600!important}.py-playground-status{font-family:var(--font-sans);font-size:.78rem;color:var(--ink-muted);margin-left:auto}.py-playground-editor{width:100%;min-height:4rem;padding:var(--space-3) var(--space-4);border:none;background:var(--code-bg);font-family:var(--font-mono);font-size:.88rem;line-height:1.55;color:var(--ink);resize:vertical;outline:none;box-sizing:border-box;display:block;font-variant-ligatures:none;font-feature-settings:"liga" 0,"calt" 0;tab-size:4;-moz-tab-size:4}.py-playground-editor:focus{background:var(--parchment-light)}.py-playground-output{margin:0!important;padding:var(--space-3) var(--space-4)!important;border:none!important;border-top:1px solid var(--rule)!important;border-radius:0!important;background:#fbf6ec!important;font-family:var(--font-mono);font-size:.85rem;line-height:1.5;color:var(--ink);white-space:pre-wrap;box-shadow:none!important;max-height:18rem;overflow:auto}.py-playground-large .py-playground-editor{min-height:22rem;font-size:.9rem}.py-playground-large .py-playground-output{max-height:24rem}.lesson-launcher{margin:0 0 var(--space-6);border:1px solid var(--rule);border-radius:4px;background:var(--parchment-light);overflow:hidden;max-width:var(--measure-wide)}.lesson-launcher-bar{display:flex;align-items:center;gap:var(--space-5);padding:var(--space-4) var(--space-5)}.lesson-launcher-text{flex:1;min-width:0}.lesson-launcher-eyebrow{font-family:var(--font-sans);font-size:.72rem;text-transform:uppercase;letter-spacing:.18em;color:var(--gold-dark);font-weight:600;margin:0 0 .25rem}.lesson-launcher-blurb{font-family:var(--font-serif);font-size:.95rem;line-height:1.5;color:var(--ink-soft);margin:0}.lesson-launcher-button{flex-shrink:0;font-family:var(--font-sans);font-size:.85rem;font-weight:600;letter-spacing:.02em;padding:.55rem 1rem;border:1px solid var(--oxblood);border-radius:3px;background:var(--oxblood);color:var(--parchment);cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease}.lesson-launcher-button:hover{background:var(--ink);border-color:var(--ink)}.lesson-launcher[data-open="1"] .py-playground{border:none;border-top:1px solid var(--rule);border-radius:0;box-shadow:none;max-width:none}@media(max-width:720px){.lesson-launcher-bar{flex-direction:column;align-items:stretch;gap:var(--space-3)}.lesson-launcher-button{width:100%}}.lesson[data-astro-cid-encbymzg]{display:grid;grid-template-columns:18rem minmax(0,1fr);gap:var(--space-7);padding-block:var(--space-7) var(--space-7);align-items:start}.lesson-toc[data-astro-cid-encbymzg]{position:sticky;top:5rem;max-height:calc(100vh - 6rem);overflow-y:auto;padding-right:var(--space-4);border-right:1px solid var(--rule)}.toc-inner[data-astro-cid-encbymzg]{display:flex;flex-direction:column}.toc-collapse[data-astro-cid-encbymzg]{margin:0}.toc-collapse[data-astro-cid-encbymzg]>summary[data-astro-cid-encbymzg]{display:none;list-style:none;cursor:pointer}.toc-collapse[data-astro-cid-encbymzg]>summary[data-astro-cid-encbymzg]::-webkit-details-marker{display:none}.toc-collapse-label[data-astro-cid-encbymzg],.toc-collapse-current[data-astro-cid-encbymzg],.toc-collapse-chevron[data-astro-cid-encbymzg]{display:none}.toc-collapse[data-astro-cid-encbymzg]>.toc-nav[data-astro-cid-encbymzg]{display:block}.toc-eyebrow[data-astro-cid-encbymzg]{font-family:var(--font-display);font-size:.78rem;text-transform:uppercase;letter-spacing:.2em;color:var(--gold-dark);margin:0 0 var(--space-1);font-weight:500}.toc-title[data-astro-cid-encbymzg]{font-family:var(--font-display);font-size:1.25rem;font-weight:500;margin:0 0 var(--space-5);font-variation-settings:"opsz" 72}.toc-title[data-astro-cid-encbymzg] a[data-astro-cid-encbymzg]{color:var(--ink);text-decoration:none}.toc-title[data-astro-cid-encbymzg] a[data-astro-cid-encbymzg]:hover{color:var(--oxblood)}.toc-part[data-astro-cid-encbymzg]{margin-bottom:var(--space-5)}.toc-part-label[data-astro-cid-encbymzg]{margin:0 0 var(--space-2);display:flex;flex-direction:column;gap:.1rem}.toc-part-num[data-astro-cid-encbymzg]{font-family:var(--font-sans);font-size:.7rem;text-transform:uppercase;letter-spacing:.16em;color:var(--ink-muted)}.toc-part-title[data-astro-cid-encbymzg]{font-family:var(--font-display);font-size:.98rem;font-weight:500;color:var(--ink);font-variation-settings:"opsz" 72}.toc-lessons[data-astro-cid-encbymzg]{list-style:none;padding:0;margin:0;border-left:1px solid var(--rule-soft)}.toc-item[data-astro-cid-encbymzg]{margin:0}.toc-item[data-astro-cid-encbymzg] a[data-astro-cid-encbymzg]{display:grid;grid-template-columns:2rem 1fr;gap:var(--space-2);padding:.32rem var(--space-3);text-decoration:none;color:var(--ink-soft);font-size:.88rem;line-height:1.35;border-left:2px solid transparent;margin-left:-1px;transition:color .15s ease,border-color .15s ease,background .15s ease}.toc-item[data-astro-cid-encbymzg] a[data-astro-cid-encbymzg]:hover{color:var(--oxblood);background:var(--parchment-light)}.toc-num[data-astro-cid-encbymzg]{font-family:var(--font-sans);font-size:.72rem;color:var(--ink-muted);letter-spacing:.04em;padding-top:.12rem}.toc-text[data-astro-cid-encbymzg]{font-family:var(--font-display);font-variation-settings:"opsz" 18}.toc-item[data-astro-cid-encbymzg].current a[data-astro-cid-encbymzg]{color:var(--oxblood);border-left-color:var(--gold);font-weight:600;background:var(--parchment-light)}.toc-item[data-astro-cid-encbymzg].current .toc-num[data-astro-cid-encbymzg]{color:var(--oxblood)}.lesson-main[data-astro-cid-encbymzg]{min-width:0}.lesson-header[data-astro-cid-encbymzg]{padding-bottom:var(--space-5);border-bottom:1px solid var(--rule);margin-bottom:var(--space-6)}.breadcrumb[data-astro-cid-encbymzg]{font-family:var(--font-sans);font-size:.85rem;color:var(--ink-muted);margin:0 0 var(--space-3)}.breadcrumb[data-astro-cid-encbymzg] a[data-astro-cid-encbymzg]{color:var(--ink-muted);text-decoration:none}.breadcrumb[data-astro-cid-encbymzg] a[data-astro-cid-encbymzg]:hover{color:var(--oxblood);text-decoration:underline}.lesson-num[data-astro-cid-encbymzg]{font-family:var(--font-display);font-size:.82rem;text-transform:uppercase;letter-spacing:.22em;color:var(--gold-dark);margin:0 0 var(--space-2);font-weight:500}.lesson[data-astro-cid-encbymzg] .lede[data-astro-cid-encbymzg]{font-size:1.2rem;color:var(--ink-soft);line-height:1.55;max-width:58ch;margin-top:var(--space-3)}.prose-content[data-astro-cid-encbymzg]{max-width:var(--measure)}.prose-content[data-astro-cid-encbymzg] h2{margin-top:var(--space-7);padding-top:var(--space-5);border-top:1px solid var(--rule-soft)}.prose-content[data-astro-cid-encbymzg] h2:first-child{border-top:none;padding-top:0;margin-top:0}.prose-content[data-astro-cid-encbymzg] img{border:1px solid var(--rule);border-radius:4px;margin-block:var(--space-5)}.lesson-nav[data-astro-cid-encbymzg]{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4);padding-block:var(--space-5);margin-top:var(--space-6);border-top:1px solid var(--rule)}.nav-link[data-astro-cid-encbymzg]{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-3) var(--space-4);border:1px solid var(--rule);border-radius:4px;text-decoration:none;color:var(--ink);background:var(--parchment-light);transition:border-color .15s ease}.nav-link[data-astro-cid-encbymzg]:hover{border-color:var(--gold);color:var(--ink)}.nav-link[data-astro-cid-encbymzg].next{text-align:right}.nav-kicker[data-astro-cid-encbymzg]{font-family:var(--font-sans);font-size:.8rem;color:var(--ink-muted);letter-spacing:.05em}.nav-title[data-astro-cid-encbymzg]{font-family:var(--font-display);font-size:1.05rem;font-weight:500;font-variation-settings:"opsz" 72}@media(max-width:980px){.lesson[data-astro-cid-encbymzg]{grid-template-columns:1fr;gap:var(--space-4)}.lesson-toc[data-astro-cid-encbymzg]{position:static;max-height:none;overflow:visible;padding-right:0;border-right:none;border-bottom:1px solid var(--rule);padding-bottom:var(--space-4)}.toc-eyebrow[data-astro-cid-encbymzg],.toc-title[data-astro-cid-encbymzg]{display:none}.toc-collapse[data-astro-cid-encbymzg]>summary[data-astro-cid-encbymzg]{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--parchment-light);border:1px solid var(--rule);border-radius:4px;transition:border-color .15s ease,background .15s ease}.toc-collapse[data-astro-cid-encbymzg]>summary[data-astro-cid-encbymzg]:hover{border-color:var(--gold)}.toc-collapse-label[data-astro-cid-encbymzg]{display:inline;font-family:var(--font-sans);font-size:.72rem;text-transform:uppercase;letter-spacing:.18em;color:var(--gold-dark);font-weight:500}.toc-collapse-current[data-astro-cid-encbymzg]{display:inline;font-family:var(--font-display);font-size:.95rem;color:var(--ink);font-variation-settings:"opsz" 32;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.toc-collapse-chevron[data-astro-cid-encbymzg]{display:inline-block;color:var(--ink-muted);transition:transform .2s ease}.toc-collapse[data-astro-cid-encbymzg][open]>summary[data-astro-cid-encbymzg] .toc-collapse-chevron[data-astro-cid-encbymzg]{transform:rotate(180deg)}.toc-collapse[data-astro-cid-encbymzg]:not([open])>.toc-nav[data-astro-cid-encbymzg]{display:none}.toc-collapse[data-astro-cid-encbymzg][open]>.toc-nav[data-astro-cid-encbymzg]{display:block;padding-top:var(--space-4)}}@media(max-width:620px){.lesson-nav[data-astro-cid-encbymzg]{grid-template-columns:1fr}.nav-link[data-astro-cid-encbymzg].next{text-align:left}}
