.post-grid{padding-block:clamp(2.5rem,6vw,4rem) 5rem}article.topic{grid-area:1/2;min-width:0}.topic-toc-margin{font-family:var(--f-sans);grid-area:1/1;align-self:start;padding-top:calc(2.325rem + 1px + clamp(2.5rem,6vw,3.75rem));position:sticky;top:2rem}.toc-title{font-family:var(--f-sans);color:var(--ink);margin:0 0 .875rem;font-size:.8125rem;font-weight:700}.toc-list{font-family:var(--f-sans);grid-template-columns:max-content minmax(0,1fr);gap:.125rem .75rem;margin:0;padding:0;font-size:.875rem;line-height:1.4;list-style:none;display:grid}.toc-list li{grid-column:1/-1;grid-template-columns:subgrid;display:grid}.toc-list a{grid-column:1/-1;grid-template-columns:subgrid;color:var(--ink-2);padding-block:.375rem;text-decoration:none;display:grid}.toc-list a:hover{color:var(--brick)}.toc-list a[aria-current=location]{color:var(--ink);font-weight:600}.toc-num{color:var(--brick);font-variant-numeric:tabular-nums;font-weight:600}.topic-toc-inline{border-block:1px solid var(--rule);font-family:var(--f-sans);margin-bottom:2.5rem;padding:.5rem 0;display:none}.topic-toc-inline summary{cursor:pointer;justify-content:space-between;align-items:center;min-height:2.75rem;font-size:.875rem;font-weight:700;list-style:none;display:flex}.topic-toc-inline summary::-webkit-details-marker{display:none}.topic-toc-inline[open] summary .icon{transform:rotate(180deg)}.topic-toc-inline .toc-list{padding-bottom:.5rem}.post-intro{margin-bottom:2.75rem}.post-intro h1{letter-spacing:-.025em;overflow-wrap:anywhere;margin:0 0 1.25rem;font-size:clamp(2rem,4.6vw,2.875rem);font-weight:700;line-height:1.08}.post-intro .lead{color:var(--ink-2);text-wrap:pretty;margin:0 0 1.25rem;font-size:clamp(1.25rem,2.3vw,1.4375rem);line-height:1.5}.read-other{font-family:var(--f-sans);color:var(--ink-2);align-items:center;gap:.5rem;padding-block:.25rem;font-size:.875rem;font-weight:500;text-decoration:none;display:inline-flex}.read-other:hover{color:var(--brick)}.read-other .icon{width:1rem;height:1rem}.prose p{text-wrap:pretty;margin:0 0 1.5em}.prose h2{letter-spacing:-.015em;text-indent:-3.5rem;overflow-wrap:anywhere;margin:3.25rem 0 1rem;padding-inline-start:3.5rem;scroll-margin-top:1.5rem;font-size:1.5rem;font-weight:700;line-height:1.25}.prose h2:first-child{margin-top:0}.topic .prose h2:before{text-indent:0;min-width:2.75rem;margin-inline-end:.75rem;display:inline-block}.prose h3{margin:2.25rem 0 .75rem;scroll-margin-top:1.5rem;font-size:1.1875rem}.prose ul,.prose ol{margin:0 0 1.5em;padding-inline-start:1.5em}.prose li+li{margin-top:.375em}.prose li>:is(ul,ol){margin:.375em 0 0}.prose li::marker{color:var(--ink-2)}.prose ol>li::marker{font-family:var(--f-sans);font-variant-numeric:tabular-nums;font-size:.875em;font-weight:600}.prose blockquote{border-inline-start:1px solid var(--rule-strong);margin:2rem 0 2.25rem;padding-inline-start:1.25rem;font-size:1.0625rem;line-height:1.55}.prose blockquote p{margin:0 0 .75em}.prose blockquote p:last-child{margin-bottom:0}.prose blockquote p:last-child:not(:first-child){font-family:var(--f-sans);color:var(--ink-2);font-size:.875rem}kbd.keys{white-space:nowrap;font-family:var(--f-sans);color:var(--ink-2);font-size:.8125em}kbd.keys kbd{border:1px solid var(--rule-strong);background:var(--plane);min-width:1.75em;color:var(--ink);text-align:center;border-bottom-width:2px;border-radius:3px;margin-inline:.15em;padding:.05em .4em .1em;font-family:inherit;font-weight:600;line-height:1.35;display:inline-block}kbd.keys kbd:first-child{margin-inline-start:0}kbd.keys kbd:last-child{margin-inline-end:0}.kbd-os{color:inherit;font:inherit;line-height:inherit;text-align:inherit;cursor:pointer;background:0 0;border:0;padding:0;display:inline}.kbd-os [data-os]{display:none}:root:not([data-kbd-os]) .kbd-os [data-os],:root[data-kbd-os=win] .kbd-os [data-os=win],:root[data-kbd-os=mac] .kbd-os [data-os=mac]{display:inline}:root:not([data-kbd-os]) .kbd-os [data-os=mac]:before{content:" / "}.kbd-os-name{color:var(--ink-2);font-family:var(--f-sans);white-space:nowrap;text-decoration:underline dotted var(--rule-strong);text-underline-offset:.2em;font-size:.8125em}.kbd-os:is(:hover,:focus-visible) .kbd-os-name{color:var(--brick);text-decoration-color:currentColor}.prose .table-scroll{margin:2rem 0 2.25rem;overflow-x:auto}.prose .table-scroll:focus-visible{outline:2px solid var(--brick);outline-offset:2px}.prose table{border-collapse:collapse;border-block:1px solid var(--ink);width:100%;font-family:var(--f-sans);font-variant-numeric:tabular-nums lining-nums;margin:0;font-size:.9375rem;line-height:1.45}.prose th,.prose td{text-align:start;vertical-align:baseline;padding:.5rem .75rem}.prose :is(th,td)[style*=right]{white-space:nowrap}.prose :is(th,td):first-child{padding-inline-start:0}.prose :is(th,td):last-child{padding-inline-end:0}.prose th{border-bottom:1px solid var(--rule-strong);font-weight:700}.prose tbody tr+tr td{border-top:1px solid var(--rule)}@media (width<=640px){.prose table{font-size:.875rem}.prose th,.prose td{padding-inline:.5rem}}.prose td code{overflow-wrap:normal;white-space:nowrap;font-size:.875em}.steps{margin:2rem 0 2.25rem}.steps>ol{counter-reset:step;border-block:1px solid var(--rule);margin:0;padding:0;list-style:none}.steps>ol>li{counter-increment:step;margin:0;padding-block:.75rem;padding-inline-start:2.25rem;position:relative}.steps>ol>li+li{border-top:1px solid var(--rule)}.steps>ol>li:before{content:counter(step);font-family:var(--f-sans);font-variant-numeric:tabular-nums;color:var(--brick);font-weight:700;position:absolute;inset-inline-start:0}.steps>ol>li>p{margin:0}.prose figure:is(.diagram,.image){margin:2.5rem 0 2.75rem}@media (width>=960px){.topic .prose figure:is(.diagram,.image):not(.is-narrow),.topic .prose :is(.listing,.code-wide).is-wide:not(.is-narrow){margin-inline-end:calc(-1 * (var(--col-r) + var(--gap)))}}.prose figure:is(.diagram,.image) figcaption{border-top:1px solid var(--rule);font-family:var(--f-sans);color:var(--ink);text-wrap:pretty;margin-top:.875rem;padding-top:.625rem;font-size:.875rem;line-height:1.45}.prose figure.image img{outline:1px solid var(--rule);outline-offset:-1px;width:100%;height:auto;display:block}.prose :not(pre)>code{background:var(--plane);overflow-wrap:anywhere;border-radius:2px;padding:.08em .3em;font-size:.84em}.prose hr{border:0;border-top:1px solid var(--rule);margin:3rem 0}.prose img{max-width:100%;height:auto}.callout{--callout:var(--ink);border-block:1px solid color-mix(in oklab, var(--callout) 40%, var(--rule-strong));border-top-color:color-mix(in oklab, var(--callout) 80%, var(--rule-strong));margin:2.25rem 0;padding-block:1rem 1.125rem}.callout-note{--callout:var(--note)}.callout-tip{--callout:var(--tip)}.callout-important{--callout:var(--important)}.callout-warning{--callout:var(--warning)}.callout-caution{--callout:var(--caution)}.callout-title{color:var(--callout);font-family:var(--f-sans);align-items:center;gap:.5rem;margin:0 0 .375rem;font-size:.875rem;font-weight:700;line-height:1.4;display:flex}.callout-icon{flex:none;width:1rem;height:1rem}.callout>p:not(.callout-title){margin:0;font-size:1.0625rem;line-height:1.55}.callout>p:not(.callout-title)+p{margin-top:.75em}.sidenote-ref{font-family:var(--f-sans);vertical-align:super;color:var(--brick);border-radius:2px;margin-left:.05em;padding:.15em .2em;font-size:.68em;font-weight:700;line-height:1;text-decoration:none;transition:background-color .28s ease-out,box-shadow .28s ease-out}.sidenote{color:var(--ink-2);overflow-wrap:anywhere;border-radius:2px;margin:-.5rem 0 1.5rem 1.5rem;padding-inline-start:1.25rem;font-size:.9375rem;line-height:1.5;transition:background-color .28s ease-out,box-shadow .28s ease-out,color .28s ease-out;display:block;position:relative}.sidenote-num{inset-inline-start:0;font-family:var(--f-sans);color:var(--brick);font-variant-numeric:tabular-nums;font-size:.75rem;font-weight:600;line-height:1.2;position:absolute;top:.2rem}.sidenote p{margin:0}.sidenote p+p{margin-top:.5em}.sidenote code{font-size:.86em}.sidenote-ref.is-lit{background:var(--brick-tint);box-shadow:0 0 0 2px var(--brick-tint)}.sidenote.is-lit,.sidenote:target{background:var(--brick-tint);box-shadow:0 0 0 .5rem var(--brick-tint);color:var(--ink)}@media (width>=960px){.topic .prose{position:relative}.sidenote{float:right;clear:right;width:var(--col-r);margin:.25rem calc(-1 * (var(--col-r) + var(--gap))) 1rem 0}@supports (anchor-name:--a) and (top:anchor(--a top)){.sidenote{float:none;left:calc(100% + var(--gap));top:max(anchor(var(--sn-ref) top), calc(anchor(var(--sn-prev) bottom, 0px) + 1rem));margin:0;position:absolute}}.sidenote.is-lit,.sidenote:target{box-shadow:0 0 0 .625rem var(--brick-tint)}}@media (prefers-reduced-motion:reduce){.sidenote,.sidenote-ref{transition:none}}.post-foot{font-family:var(--f-sans);margin-top:3.5rem}.post-tags{color:var(--ink-2);flex-wrap:wrap;align-items:baseline;gap:.75rem;margin:0 0 2rem;font-size:.875rem;display:flex}.post-tags a{color:var(--ink);font-weight:600}.post-tags a:hover{color:var(--brick)}.comments{margin-top:3rem}.comments h2{font-family:var(--f-sans);letter-spacing:-.01em;margin:0 0 1.25rem;font-size:1.25rem;font-weight:700}.comments giscus-widget{width:100%;min-width:0;display:block}.pager{border-top:1px solid var(--ink);border-bottom:1px solid var(--rule);grid-template-columns:1fr 1fr;display:grid}.pager a{min-width:0;color:var(--ink);padding:1.25rem 1.5rem 1.375rem 0;text-decoration:none;display:block}.pager .pager-next{text-align:right;--dir-justify:flex-end;border-left:1px solid var(--rule);grid-column:2;padding:1.25rem 0 1.375rem 1.5rem}.pager-dir{color:var(--ink-2);align-items:center;gap:.25rem;margin-bottom:.375rem;font-size:.8125rem;display:flex}.pager-next .pager-dir{justify-content:var(--dir-justify)}.pager-dir .icon{width:.9375rem;height:.9375rem}.pager-num{color:var(--brick);font-variant-numeric:tabular-nums;font-weight:600}.pager-title{text-wrap:pretty;overflow-wrap:anywhere;font-size:1rem;font-weight:600;line-height:1.4;display:block}.pager a:hover .pager-title{color:var(--brick)}@media (width<=1239px){article.topic{grid-column:1}.topic-toc-margin{display:none}.topic-toc-inline{display:block}}@media (width<=640px){.pager{grid-template-columns:1fr}.pager a{padding-right:0}.pager .pager-next{text-align:left;--dir-justify:flex-start;border-left:0;grid-column:1;padding-left:0}.pager a+a{border-top:1px solid var(--rule)}}.xref{white-space:nowrap}.xref-num{color:var(--brick);font-variant-numeric:tabular-nums}.prose :is(.listing,figure){scroll-margin-top:1.5rem}
