.site-main:has(.post-layout){max-inline-size:calc(var(--max-reading) + var(--space-6) * 2)}.post-layout{row-gap:var(--space-12);grid-template-columns:minmax(0,1fr);display:grid}.post-article,.post-after{min-inline-size:0}@media (width>=1100px){.site-main:has(.post-layout){max-inline-size:calc(var(--max-reading) + var(--outline-width) + var(--space-10) + var(--space-6) * 2)}.post-layout{grid-template-areas:"article outline""after outline";grid-template-columns:minmax(0, var(--max-reading)) var(--outline-width);column-gap:var(--space-10)}.post-article{grid-area:article}.post-outline{grid-area:outline}.post-after{grid-area:after}}.post-header{margin-block-end:var(--space-8)}.post-title{font-size:var(--text-large-title);margin-block-end:var(--space-3)}.post-meta{gap:var(--space-1) var(--space-3);color:var(--c-text-secondary);font-size:var(--text-footnote);flex-wrap:wrap;margin-block-end:var(--space-3);line-height:1.45;display:flex}.post-content{overflow-wrap:anywhere}.post-content>:first-child{margin-block-start:0}.post-content abbr[title]{text-decoration:underline dotted var(--c-text-secondary);text-underline-offset:.2em;cursor:help}.post-content dl{margin-block:var(--space-5)}.post-content dt{margin-block-start:var(--space-3);font-weight:700}.post-content dd{margin:var(--space-1) 0;border-inline-start:2px solid var(--c-separator);color:var(--c-text-secondary);padding-inline-start:var(--space-4)}.post-content :is(ul,ol){margin-block-end:var(--space-4);padding-inline-start:var(--space-6)}.post-content>p .katex,.post-content>li .katex{font-size:1em}.post-content .katex-display{margin-block:var(--space-5);padding-block:var(--space-1);overflow:auto hidden}.code-block{border-radius:var(--radius-md);background:var(--c-code-bg);margin-block-end:var(--space-6);overflow:hidden}.code-block-bar{align-items:center;gap:var(--space-2);min-block-size:var(--target);padding-inline:var(--space-4) 0;color:var(--c-text-secondary);font-size:var(--text-caption);font-weight:500;line-height:1.4;display:flex}.code-language{letter-spacing:.04em;text-transform:uppercase}.code-filename{font-family:var(--font-code);overflow-wrap:anywhere}.copy-btn{inline-size:var(--target);block-size:var(--target);border-radius:var(--radius-sm);color:var(--c-text-secondary);cursor:pointer;transition:transform var(--dur-fast) var(--ease-standard);background:0 0;border:0;flex:none;justify-content:center;align-items:center;margin-inline-start:auto;padding:0;display:inline-flex}.copy-btn:hover{background:var(--c-fill);color:var(--c-text)}.copy-btn:active{transform:scale(.94)}.copy-btn.copied{color:var(--c-green-text)}.copy-btn:focus-visible,.code-block pre:focus-visible{outline-offset:-2px}.code-block pre{background:0 0;border-radius:0;margin:0;padding-block-start:0}.shiki .line.highlighted{inline-size:calc(100% + var(--space-4) * 2);margin-inline:calc(var(--space-4) * -1);padding-inline:var(--space-4);background-color:var(--c-code-highlight);box-shadow:inset 3px 0 0 var(--c-tint);display:inline-block}.table-wrapper{border:1px solid var(--c-separator);border-radius:var(--radius-md);margin-block-end:var(--space-6);overflow-x:auto}.table-wrapper table{border-collapse:collapse;inline-size:100%;margin:0}.table-wrapper :is(th,td){min-inline-size:6rem;padding:var(--space-2) var(--space-3);border-block-end:1px solid var(--c-separator);overflow-wrap:break-word;word-break:keep-all;text-align:start;vertical-align:top}.table-wrapper th{background:var(--c-surface-2);font-size:var(--text-subheadline);font-weight:600}.table-wrapper tr:last-child td{border-block-end:0}.table-wrapper:focus-visible{outline-offset:-2px}.post-content img{block-size:auto;max-inline-size:100%}.image-figure{margin-block:var(--space-6);text-align:center}.image-figure img{margin-inline:auto;display:block}.image-figure figcaption{color:var(--c-text-secondary);font-size:var(--text-footnote);margin-block-start:var(--space-2)}.footnotes{border-block-start:1px solid var(--c-separator);color:var(--c-text-secondary);font-size:var(--text-subheadline);margin-block-start:var(--space-12);padding-block-start:var(--space-6)}.footnotes ol{padding-inline-start:var(--space-8)}.footnotes li{margin-block-end:var(--space-2)}.footnotes li p{margin:0;display:inline}sup a[data-footnote-ref]{font-weight:600;text-decoration:none}a[data-footnote-backref]{min-block-size:24px;min-inline-size:24px;vertical-align:middle;justify-content:center;align-items:center;margin-inline-start:var(--space-1);text-decoration:none;display:inline-flex}.heading-fold{align-items:flex-start;gap:var(--space-2);line-height:var(--leading-title);display:flex}.heading-fold[data-level="2"]{margin-block:var(--space-8) var(--space-2);font-size:var(--text-title-2)}.heading-fold[data-level="3"]{margin-block:var(--space-6) var(--space-2);font-size:var(--text-title-3)}.heading-fold>:is(h2,h3){flex:1;min-inline-size:0;margin:0}.heading-fold-toggle{inline-size:var(--target);block-size:var(--target);margin-block:calc((1lh - var(--target)) / 2);border-radius:var(--radius-capsule);color:var(--c-text-secondary);font:inherit;cursor:pointer;background:0 0;border:0;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.heading-fold-toggle:hover{background:var(--c-fill);color:var(--c-text)}.heading-fold-toggle svg{transition:transform var(--dur-fast) var(--ease-standard)}.heading-fold-toggle[aria-expanded=true] svg{transform:rotate(90deg)}.heading-fold-hidden{display:none!important}.post-after>section+section{margin-block-start:var(--space-10)}.post-after h2{margin-block:0 var(--space-3);font-size:var(--text-title-3)}.post-after .grouped-list{margin-block-end:0}.local-graph-tabs{inline-size:min(100%,14rem);margin-block-end:var(--space-3)}.local-graph-canvas canvas{cursor:pointer;block-size:240px;inline-size:240px;font:500 var(--text-caption) var(--font-body);display:block}.local-graph-canvas canvas[hidden]{display:none}.local-graph-skeleton{block-size:240px;inline-size:240px}.local-graph-list{border-radius:var(--radius-lg);background:var(--c-surface-2);margin:0;padding:0;list-style:none;overflow:hidden}.local-graph-list a{min-block-size:var(--target);padding-inline:var(--space-4);color:var(--c-text);word-break:keep-all;overflow-wrap:anywhere;align-items:center;text-decoration:none;display:flex}.local-graph-list li+li a{box-shadow:inset 0 1px 0 var(--c-separator)}.local-graph-list a:hover{background:var(--c-fill)}.local-graph-list a:focus-visible{outline-offset:-2px}.local-graph-empty{color:var(--c-text-secondary)}.hub-child-date{color:var(--c-text-secondary);font-variant-numeric:tabular-nums;margin-inline-start:var(--space-2);font-size:.85em}.outline-tabs{margin-block-end:var(--space-2)}.toc-list{margin:0;padding:0;list-style:none}.toc-item a{min-block-size:var(--target);padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm);color:var(--c-text);font-size:var(--text-callout);word-break:keep-all;overflow-wrap:anywhere;align-items:center;line-height:1.35;text-decoration:none;display:flex;position:relative}.toc-depth-3 a{color:var(--c-text-secondary);padding-inline-start:var(--space-6)}.toc-depth-4 a{color:var(--c-text-secondary);font-size:var(--text-subheadline);padding-inline-start:var(--space-10)}.toc-item a:hover{background:var(--c-fill);color:var(--c-text);text-decoration:none}.toc-item a:focus-visible{outline-offset:-2px}.toc-item a[aria-current=location]{color:var(--c-text);font-weight:600}.toc-item a[aria-current=location]:before{content:"";inset-block:var(--space-2);background:var(--c-tint);border-radius:2px;inline-size:3px;position:absolute;inset-inline-start:0}.outline-status{align-items:flex-start;gap:var(--space-2);padding:var(--space-3);color:var(--c-text-secondary);font-size:var(--text-subheadline);flex-direction:column;margin:0;display:flex}.outline-status p{margin:0}.outline-open{z-index:90;align-items:center;gap:var(--space-2);min-inline-size:var(--target);min-block-size:var(--target);padding-inline:var(--space-4);border-radius:var(--radius-capsule);color:var(--c-text);font:inherit;font-size:var(--text-subheadline);cursor:pointer;transition:opacity var(--dur-fast) var(--ease-standard), transform var(--dur-fast) var(--ease-standard);border:0;font-weight:600;display:inline-flex;position:fixed;inset-block-end:max(var(--space-4), env(safe-area-inset-bottom));inset-inline-end:max(var(--space-4), env(safe-area-inset-right))}.outline-open:active{transform:scale(.96)}.outline-open:focus-visible{outline-color:var(--c-bar-focus-ring)}:root:not([data-appearance]) .outline-open{display:none}body:has(.outline-sheet[open]) .outline-open{opacity:0}body:has(.outline-open) .back-to-top{inset-block-end:calc(max(var(--space-4), env(safe-area-inset-bottom)) + var(--target) + var(--space-2))}.outline-sheet{inline-size:min(100%,40rem);max-inline-size:100%;max-block-size:min(85dvh, calc(100dvh - var(--space-8)));border-radius:var(--radius-lg) var(--radius-lg) 0 0;color:var(--c-text);border:0;margin:0 auto;padding:0;position:fixed;inset:auto 0 0;overflow:hidden}.outline-sheet[open]{animation:outline-sheet-in var(--dur-slow) var(--ease-spring);flex-direction:column;display:flex}.outline-sheet::backdrop{background:var(--c-scrim,#00000040)}@keyframes outline-sheet-in{0%{opacity:0;transform:translateY(var(--space-12))}}html:has(.outline-sheet[open]){overflow:hidden}.outline-sheet-header{padding:var(--space-1) var(--space-1) 0;justify-content:flex-end;display:flex;position:relative}.outline-grabber{border-radius:var(--radius-capsule);background:var(--c-text-tertiary);block-size:5px;inline-size:36px;position:absolute;inset-block-start:var(--space-2);inset-inline-start:50%;transform:translate(-50%)}.outline-close{inline-size:var(--target);block-size:var(--target);border-radius:var(--radius-capsule);color:var(--c-text);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.outline-close:hover{background:var(--c-fill)}.outline-close:focus-visible{outline-offset:-2px}.outline-sheet-body{overscroll-behavior:contain;padding:0 var(--space-3) max(var(--space-4), env(safe-area-inset-bottom));overflow-y:auto}.post-outline{display:none}@media (width>=1100px){.post-outline{max-block-size:calc(100dvh - var(--bar-inset) * 3 - var(--bar-height));padding:var(--space-2);border-radius:var(--radius-lg);overscroll-behavior:contain;align-self:start;display:block;position:sticky;inset-block-start:calc(var(--bar-inset) * 2 + var(--bar-height));overflow-y:auto}.outline-open{display:none}body:has(.outline-open) .back-to-top{inset-block-end:max(var(--space-4), env(safe-area-inset-bottom))}}.link-preview{z-index:120;inline-size:min(280px, calc(100vw - var(--space-4) * 2));padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);color:var(--c-text);font-size:var(--text-subheadline);line-height:var(--leading-subheadline);overflow-wrap:anywhere;animation:link-preview-in var(--dur-fast) var(--ease-standard);position:absolute;inset-block-start:0;inset-inline-start:0}.link-preview[hidden]{display:none}@keyframes link-preview-in{0%{opacity:0}}.link-preview p{margin:0}.link-preview-title{font-weight:600}.link-preview-tags{color:var(--c-text-secondary);font-size:var(--text-footnote);margin-block-start:var(--space-1)}.link-preview-summary{color:var(--c-text-secondary);margin-block-start:var(--space-2)}.nav-tree{font-size:var(--text-callout);line-height:1.35}.nav-tree-root,.nav-tree-children{margin:0;padding:0;list-style:none}.nav-tree-children{border-inline-start:1px solid var(--c-separator);margin-inline-start:calc(var(--target) / 2);padding-inline-start:var(--space-1)}.nav-tree-label{border-radius:var(--radius-sm);align-items:center;display:flex}.nav-tree-label:hover{background:var(--c-fill)}.nav-tree-label a{min-inline-size:var(--target);min-block-size:var(--target);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);color:var(--c-text);word-break:keep-all;overflow-wrap:anywhere;flex:1;align-items:center;text-decoration:none;display:flex}.nav-tree-label a:hover{color:var(--c-text);text-decoration:none}.nav-tree-label a[aria-current=page]{color:var(--c-tint);font-weight:600}.nav-tree-label :focus-visible{outline-offset:-2px}.nav-tree-toggle{inline-size:var(--target);block-size:var(--target);border-radius:var(--radius-sm);color:var(--c-text-secondary);cursor:pointer;background:0 0;border:0;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.nav-tree-chevron{transition:transform var(--dur-fast) var(--ease-standard)}.nav-tree-toggle[aria-expanded=true] .nav-tree-chevron{transform:rotate(90deg)}.nav-tree-spacer{inline-size:var(--target);flex:none}
