@import "https://cdn.jsdelivr.net/npm/katex@0.16.21/dist/katex.min.css";.markdown-body{font-family:var(--font-sans);color:var(--text-primary);word-wrap:break-word;overflow-wrap:break-word;font-size:1rem;line-height:1.75}.markdown-body>:first-child{margin-top:0}.markdown-body>:last-child{margin-bottom:0}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{font-family:var(--font-heading);color:var(--text-primary);margin-top:2em;margin-bottom:.75em;scroll-margin-top:5.5rem;font-weight:700;line-height:1.3}.markdown-body h1{border-bottom:2px solid var(--border-color,#e2e8f0);padding-bottom:.4em;font-size:2rem}.markdown-body h2{border-bottom:1px solid var(--border-color,#e2e8f0);padding-bottom:.3em;font-size:1.5rem}.markdown-body h3{font-size:1.25rem}.markdown-body h4{font-size:1.1rem}.markdown-body h5{font-size:1rem}.markdown-body h6{color:var(--text-secondary,#64748b);font-size:.9rem}.markdown-body h1:hover .heading-anchor,.markdown-body h2:hover .heading-anchor,.markdown-body h3:hover .heading-anchor,.markdown-body h4:hover .heading-anchor,.markdown-body h5:hover .heading-anchor,.markdown-body h6:hover .heading-anchor{opacity:1}.markdown-body .heading-anchor{opacity:0;color:var(--accent-primary,#780024);margin-left:.5em;text-decoration:none;transition:opacity .2s}.markdown-body p{margin:0 0 1em}.markdown-body strong{font-weight:700}.markdown-body em{font-style:italic}.markdown-body u{text-underline-offset:2px;text-decoration:underline}.markdown-body sub{vertical-align:sub;font-size:.8em}.markdown-body sup{vertical-align:super;font-size:.8em}.markdown-body kbd{font-size:.85em;font-family:var(--font-mono,"Fira Code", monospace);background:var(--bg-secondary,#f1f5f9);border:1px solid var(--border-color,#e2e8f0);box-shadow:0 1px 0 var(--border-color,#e2e8f0);border-radius:4px;padding:.15em .4em;display:inline-block}.markdown-body a{color:var(--accent-primary,#780024);font-weight:500;text-decoration:none;transition:color .15s}.markdown-body a:hover{color:var(--accent-secondary,#a0003a);text-decoration:underline}.markdown-body a.external-link:after{content:"";vertical-align:baseline;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23780024' stroke-width='2'%3E%3Cpath d='M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6'/%3E%3Cpolyline points='15 3 21 3 21 9'/%3E%3Cline x1='10' y1='14' x2='21' y2='3'/%3E%3C/svg%3E");background-repeat:no-repeat;background-size:contain;width:.75em;height:.75em;margin-left:.2em;display:inline-block}.markdown-body ul,.markdown-body ol{margin:0 0 1em;padding-left:2em}.markdown-body li{margin-bottom:.35em}.markdown-body li>p{margin-bottom:.5em}.markdown-body li input[type=checkbox]{vertical-align:middle;margin-right:.5em}.markdown-body blockquote{border-left:4px solid var(--border-color,#e2e8f0);background:var(--bg-secondary,#f8fafc);color:var(--text-secondary,#64748b);border-radius:0 8px 8px 0;margin:0 0 1em;padding:.75em 1.25em}.markdown-body blockquote>:last-child{margin-bottom:0}.markdown-body .github-alert{background:var(--bg-secondary,#f8fafc);border-left:4px solid;border-radius:0 8px 8px 0;margin:1em 0;padding:1em 1.25em}.markdown-body .github-alert>:last-child{margin-bottom:0}.markdown-body .github-alert-note{background:#3b82f60f;border-left-color:#3b82f6}.markdown-body .github-alert-tip{background:#22c55e0f;border-left-color:#22c55e}.markdown-body .github-alert-important{background:#a855f70f;border-left-color:#a855f7}.markdown-body .github-alert-warning{background:#eab3080f;border-left-color:#eab308}.markdown-body .github-alert-caution{background:#ef44440f;border-left-color:#ef4444}.markdown-body .table-wrapper{-webkit-overflow-scrolling:touch;border:1px solid var(--border-color,#e2e8f0);border-radius:8px;margin:1em 0;overflow-x:auto}.markdown-body table{border-collapse:collapse;border-spacing:0;width:100%;font-size:.9rem}.markdown-body th,.markdown-body td{border:1px solid var(--border-color,#e2e8f0);text-align:left;padding:.6em 1em}.markdown-body th{background:var(--bg-secondary,#f1f5f9);white-space:nowrap;font-weight:600}.markdown-body tbody tr:nth-child(2n){background:#00000005}.markdown-body tbody tr:hover{background:#78002408}.markdown-body :not(pre)>code{font-size:.875em;font-family:var(--font-mono,"Fira Code", monospace);background:var(--bg-secondary,#f1f5f9);color:var(--accent-primary,#780024);border-radius:4px;padding:.15em .4em}.markdown-body img{cursor:zoom-in;border-radius:8px;max-width:100%;height:auto;margin:1em 0;transition:transform .2s}.markdown-body img:hover{box-shadow:0 4px 12px #0000001a}.markdown-body [align=center]{text-align:center}.markdown-body details{background:var(--bg-secondary,#f8fafc);border:1px solid var(--border-color,#e2e8f0);border-radius:8px;margin:1em 0;padding:.75em 1em;transition:background .2s}.markdown-body details[open]{background:#78002405;border-color:#78002426}.markdown-body summary{cursor:pointer;user-select:none;align-items:center;gap:.5em;padding:.25em 0;font-weight:600;list-style-type:none;display:flex}.markdown-body summary:before{content:"";border-bottom:2px solid;border-right:2px solid;flex-shrink:0;width:.5em;height:.5em;transition:transform .2s;display:inline-block;transform:rotate(-45deg)}.markdown-body details[open]>summary:before{transform:rotate(45deg)}.markdown-body summary::-webkit-details-marker{display:none}.markdown-body details>:not(summary){margin-top:.75em}.markdown-body hr{background:var(--border-color,#e2e8f0);border:none;border-radius:1px;height:2px;margin:2em 0}.markdown-body video{border-radius:8px;max-width:100%;margin:1em 0}.markdown-body .katex-display{margin:1.5em 0;padding:.5em 0;overflow:auto hidden}.markdown-body .katex{font-size:1.1em}.markdown-body .expressive-code{max-width:100%;margin:1.5em 0}@media (width<=600px){.markdown-body{font-size:.95rem;line-height:1.65}.markdown-body h1{margin-top:1.2em;font-size:1.6rem}.markdown-body h2{margin-top:1.4em;font-size:1.3rem}.markdown-body h3{margin-top:1.2em;font-size:1.15rem}.markdown-body h4{font-size:1rem}.markdown-body ul,.markdown-body ol{padding-left:1.3em}.markdown-body blockquote,.markdown-body .github-alert{padding:.75rem .85rem;font-size:.9rem}.markdown-body th,.markdown-body td{padding:.4em .6em;font-size:.825rem}.markdown-body .katex-display{margin:1em 0;font-size:.95em}}@media print{.markdown-body{font-size:12pt;line-height:1.5}.markdown-body a.external-link:after{content:" (" attr(href) ")";background:0 0;width:auto;height:auto;font-size:.8em}.markdown-body details{border:1px solid #ccc}.markdown-body details[open]>summary:before{display:none}}.toc[data-astro-cid-amnqfkzo]{scrollbar-width:thin;max-height:calc(100vh - 6.5rem);padding:1rem 0;font-size:.85rem;position:sticky;top:5.5rem;overflow-y:auto}.toc-header[data-astro-cid-amnqfkzo]{text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary,#64748b);margin-bottom:.75rem;padding-left:.75rem;font-size:.75rem;font-weight:700}.toc-list[data-astro-cid-amnqfkzo]{margin:0;padding:0;list-style:none}.toc-item[data-astro-cid-amnqfkzo]{margin:0}.toc-depth-3[data-astro-cid-amnqfkzo]{padding-left:1rem}.toc-link[data-astro-cid-amnqfkzo]{color:var(--text-secondary,#64748b);border-left:2px solid #0000;padding:.3rem .75rem;line-height:1.4;text-decoration:none;transition:all .15s;display:block}.toc-link[data-astro-cid-amnqfkzo]:hover{color:var(--accent-primary,#780024);border-left-color:var(--border-color,#e2e8f0)}.toc-link[data-astro-cid-amnqfkzo].toc-active{color:var(--accent-primary,#780024);border-left-color:var(--accent-primary,#780024);background:#7800240a;font-weight:600}@media (width<=1100px){.toc[data-astro-cid-amnqfkzo]{display:none}}.source-info[data-astro-cid-sqlg5xl4]{border-top:1px solid var(--border-color,#e2e8f0);margin-top:3rem;padding-top:1.5rem}.source-info-row[data-astro-cid-sqlg5xl4]{flex-wrap:wrap;gap:1.5rem;display:flex}.source-link[data-astro-cid-sqlg5xl4]{color:var(--text-secondary,#64748b);align-items:center;gap:.4rem;font-size:.85rem;text-decoration:none;transition:color .15s;display:inline-flex}.source-link[data-astro-cid-sqlg5xl4]:hover{color:var(--accent-primary,#780024)}
