.toc[data-astro-cid-py2rbz24]{position:relative}@media(min-width:1024px){.toc[data-astro-cid-py2rbz24]{position:sticky;top:32px;align-self:start;max-height:calc(100vh - 64px);overflow-y:auto}}.toc[data-astro-cid-py2rbz24] .label[data-astro-cid-py2rbz24]{display:block;margin-bottom:16px;font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.toc[data-astro-cid-py2rbz24] ul[data-astro-cid-py2rbz24]{list-style:none;padding:0;margin:0}.toc[data-astro-cid-py2rbz24] .chapters[data-astro-cid-py2rbz24]{display:grid;gap:8px}.toc[data-astro-cid-py2rbz24] a[data-astro-cid-py2rbz24]{color:color-mix(in oklab,var(--fg) 75%,var(--bg));text-decoration:none;display:inline-block;line-height:1.4;position:relative;width:fit-content;max-width:100%}.toc[data-astro-cid-py2rbz24] .chapter-leaf[data-astro-cid-py2rbz24]>a[data-astro-cid-py2rbz24]:after,.toc[data-astro-cid-py2rbz24] .glossary[data-astro-cid-py2rbz24] a[data-astro-cid-py2rbz24]:after{content:"";position:absolute;left:0;right:0;bottom:-3px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left center;transition:transform .3s ease}.toc[data-astro-cid-py2rbz24] .chapter-leaf[data-astro-cid-py2rbz24]>a[data-astro-cid-py2rbz24]:hover:after,.toc[data-astro-cid-py2rbz24] .glossary[data-astro-cid-py2rbz24] a[data-astro-cid-py2rbz24]:hover:after{transform:scaleX(1)}.toc[data-astro-cid-py2rbz24] a[data-astro-cid-py2rbz24]:hover{color:var(--link)}.toc[data-astro-cid-py2rbz24] li[data-astro-cid-py2rbz24].active>a[data-astro-cid-py2rbz24]{color:var(--link)}.toc[data-astro-cid-py2rbz24] .chapter-group[data-astro-cid-py2rbz24]{padding:0}.toc[data-astro-cid-py2rbz24] details[data-astro-cid-py2rbz24]>summary[data-astro-cid-py2rbz24]{list-style:none;cursor:pointer;display:flex;align-items:baseline;gap:6px;user-select:none}.toc[data-astro-cid-py2rbz24] details[data-astro-cid-py2rbz24]>summary[data-astro-cid-py2rbz24]::-webkit-details-marker{display:none}.toc[data-astro-cid-py2rbz24] .chapter-group[data-astro-cid-py2rbz24]>details[data-astro-cid-py2rbz24]>summary[data-astro-cid-py2rbz24]{position:sticky;top:0;z-index:2;background:var(--bg);padding:4px 0}.toc[data-astro-cid-py2rbz24] .chapter-group[data-astro-cid-py2rbz24]>details[data-astro-cid-py2rbz24]>summary[data-astro-cid-py2rbz24]:before{content:"";position:absolute;left:0;right:0;bottom:-12px;height:12px;background:linear-gradient(var(--bg),color-mix(in oklab,var(--bg) 0%,transparent));pointer-events:none}.toc[data-astro-cid-py2rbz24] .chapter-text[data-astro-cid-py2rbz24],.toc[data-astro-cid-py2rbz24] .chapter-leaf[data-astro-cid-py2rbz24]>a[data-astro-cid-py2rbz24]{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--fg);font-weight:600}.toc[data-astro-cid-py2rbz24] details[data-astro-cid-py2rbz24]>summary[data-astro-cid-py2rbz24] .chapter-text[data-astro-cid-py2rbz24]{position:relative}.toc[data-astro-cid-py2rbz24] details[data-astro-cid-py2rbz24]>summary[data-astro-cid-py2rbz24] .chapter-text[data-astro-cid-py2rbz24]:after{content:"";position:absolute;left:0;right:0;bottom:-3px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left center;transition:transform .3s ease}.toc[data-astro-cid-py2rbz24] details[data-astro-cid-py2rbz24]>summary[data-astro-cid-py2rbz24]:hover .chapter-text[data-astro-cid-py2rbz24]:after,.toc[data-astro-cid-py2rbz24] .chapter-group[data-astro-cid-py2rbz24].in-chapter details[data-astro-cid-py2rbz24]>summary[data-astro-cid-py2rbz24] .chapter-text[data-astro-cid-py2rbz24]:after{transform:scaleX(1)}.toc[data-astro-cid-py2rbz24] .chapter-leaf[data-astro-cid-py2rbz24]>a[data-astro-cid-py2rbz24]{display:inline-flex;align-items:baseline;gap:6px}.toc[data-astro-cid-py2rbz24] .arrow[data-astro-cid-py2rbz24]{display:inline-block;font-family:"Departure Mono",var(--mono);font-size:11px;width:10px;line-height:1;transition:transform .18s ease;transform-origin:50% 50%;color:var(--muted)}.toc[data-astro-cid-py2rbz24] details[data-astro-cid-py2rbz24][open]>summary[data-astro-cid-py2rbz24] .arrow[data-astro-cid-py2rbz24]{transform:rotate(90deg)}.toc[data-astro-cid-py2rbz24] .arrow-placeholder[data-astro-cid-py2rbz24]:before{content:""}.toc[data-astro-cid-py2rbz24] .chapter-body[data-astro-cid-py2rbz24]{margin-top:8px}.toc[data-astro-cid-py2rbz24] .chapter-items[data-astro-cid-py2rbz24]{padding-left:16px;display:grid;gap:6px}.toc[data-astro-cid-py2rbz24] li[data-astro-cid-py2rbz24].tier-h1 a[data-astro-cid-py2rbz24]{font-family:var(--serif);font-size:15px;font-weight:600;color:var(--fg)}.toc[data-astro-cid-py2rbz24] li[data-astro-cid-py2rbz24].tier-h2 a[data-astro-cid-py2rbz24]{font-family:var(--serif);font-size:14px;font-weight:500;padding-left:14px}.toc[data-astro-cid-py2rbz24] li[data-astro-cid-py2rbz24].tier-h3 a[data-astro-cid-py2rbz24]{font-family:var(--serif);font-size:13px;font-weight:400;padding-left:28px}.toc[data-astro-cid-py2rbz24] .linked-block[data-astro-cid-py2rbz24]{margin-top:10px;padding-left:16px}.toc[data-astro-cid-py2rbz24] .linked-block[data-astro-cid-py2rbz24]>summary[data-astro-cid-py2rbz24]{display:inline-flex;align-items:baseline;gap:6px}.toc[data-astro-cid-py2rbz24] .linked-label[data-astro-cid-py2rbz24],.toc[data-astro-cid-py2rbz24] .linked-title[data-astro-cid-py2rbz24]{font-family:var(--serif);font-size:14px;font-weight:500;color:var(--muted)}.toc[data-astro-cid-py2rbz24] .linked-items[data-astro-cid-py2rbz24]{margin-top:6px;padding-left:14px;display:grid;gap:6px}.toc[data-astro-cid-py2rbz24] .linked-item[data-astro-cid-py2rbz24]{list-style:none}.toc[data-astro-cid-py2rbz24] .linked-row[data-astro-cid-py2rbz24]{display:inline-flex;align-items:baseline;gap:6px}.toc[data-astro-cid-py2rbz24] .linked-details[data-astro-cid-py2rbz24]>summary[data-astro-cid-py2rbz24]{display:inline-flex;align-items:baseline;gap:6px}.toc[data-astro-cid-py2rbz24] .linked-title[data-astro-cid-py2rbz24]:after,.toc[data-astro-cid-py2rbz24] .linked-label[data-astro-cid-py2rbz24]:after{content:none!important}.toc[data-astro-cid-py2rbz24] .linked-title[data-astro-cid-py2rbz24]:hover{color:var(--fg)}.toc[data-astro-cid-py2rbz24] .linked-sub[data-astro-cid-py2rbz24]{margin-top:6px;padding-left:14px;display:grid;gap:6px}.toc[data-astro-cid-py2rbz24] .glossary-rule[data-astro-cid-py2rbz24]{margin:24px 0 12px;border:0;border-top:1px dashed var(--rule)}.toc[data-astro-cid-py2rbz24] .glossary[data-astro-cid-py2rbz24] a[data-astro-cid-py2rbz24]{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--fg);font-weight:600}.prose{max-width:var(--content-w);overflow-wrap:break-word;min-width:0}.prose p{margin:16px 0}.prose .broken{color:var(--muted);text-decoration:line-through}.prose code{font-family:var(--mono);font-size:13px;background:color-mix(in oklab,var(--fg) 8%,transparent);padding:1px 5px;border-radius:2px}.prose pre{background:color-mix(in oklab,var(--fg) 6%,transparent);border:1px solid var(--rule);padding:14px 16px;overflow-x:auto;font-family:var(--mono);font-size:12.5px;line-height:1.6;margin:24px 0}.prose pre code{background:transparent;padding:0;font-size:inherit}.prose .table-wrap{overflow-x:auto;margin:24px 0}.prose .table-wrap table{margin:0}.prose table{border-collapse:collapse;margin:24px 0;width:100%;font-size:14px}.prose th,.prose td{padding:8px 12px;text-align:left;border-bottom:1px solid var(--rule)}.prose th{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);border-bottom-width:2px}.prose figure.md-figure{margin:32px auto;display:flex;flex-direction:column;align-items:center;gap:10px}.prose figure.md-figure .md-img-frame{display:inline-block;max-width:100%;padding:12px;border:1px solid var(--rule);background-image:var(--texture);background-repeat:repeat;line-height:0;box-sizing:content-box}.prose figure.md-figure .md-img-frame img{display:block;max-width:100%;height:auto}.prose figure.md-figure figcaption{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);text-align:center;max-width:90%}.prose img{max-width:100%;height:auto}.prose.workshop h1{font-family:var(--serif);font-size:34px;font-weight:600;line-height:1.1;letter-spacing:-.01em;margin-top:64px;margin-bottom:20px}.prose.workshop h2.chapter-divider{font-family:var(--mono);font-size:20px;text-transform:uppercase;letter-spacing:.08em;margin-top:80px;margin-bottom:24px;color:var(--fg);text-align:center;display:grid;grid-template-columns:1fr auto 1fr;gap:24px;align-items:center}.prose.workshop h2.chapter-divider:before,.prose.workshop h2.chapter-divider:after{content:"";height:16px;background-image:var(--texture);background-repeat:repeat}.prose.workshop h2:not(.chapter-divider){font-family:var(--serif);font-size:26px;font-weight:600;line-height:1.15;letter-spacing:-.005em;margin-top:48px;margin-bottom:16px}.prose.workshop h3{font-family:var(--serif);font-size:20px;font-weight:600;margin-top:32px;margin-bottom:12px;line-height:1.2;letter-spacing:-.005em}.prose.workshop ul,.prose.workshop ol{margin:16px 0;padding-left:24px}.prose.workshop li{margin:8px 0}.prose.subpage h1{font-family:var(--serif);font-size:32px;font-weight:600;margin-top:56px;margin-bottom:20px;line-height:1.1;letter-spacing:-.01em}.prose.subpage h2{font-family:var(--serif);font-size:24px;font-weight:600;margin-top:40px;margin-bottom:14px}.prose.subpage h3{font-family:var(--serif);font-size:18px;font-weight:600;margin-top:28px;margin-bottom:10px}
