.prose{--tw-prose-headings:var(--ink);--tw-prose-bold:var(--ink);--tw-prose-counters:var(--muted);--tw-prose-bullets:var(--muted);--tw-prose-hr:var(--rule);--tw-prose-code:var(--ink);--tw-prose-page-bg:var(--bg);--code-size:.78125rem;max-width:34.5rem;color:var(--ink);font-size:.9375rem;font-weight:450;line-height:1.375rem}.prose :where(p){margin-top:1em;margin-bottom:1em}.prose :where(a){color:inherit;text-decoration:underline;text-decoration-color:var(--muted);text-underline-offset:3px;transition:text-decoration-color .2s var(--ease);text-decoration-thickness:1px}.prose :where(a):hover{text-decoration-color:currentColor}.prose :where(strong){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong){color:inherit}.prose :where(ol){margin-top:1em;margin-bottom:1em;padding-inline-start:1.5em;list-style-type:decimal}.prose :where(ul){margin-top:1em;margin-bottom:1em;padding-inline-start:1.5em;list-style-type:disc}.prose :where(li){margin-top:.375em;margin-bottom:.375em}.prose :where(ol>li),.prose :where(ul>li){padding-inline-start:.25em}.prose :where(.prose>ul>li p){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>p:first-child),.prose :where(.prose>ol>li>p:first-child){margin-top:1em}.prose :where(.prose>ul>li>p:last-child),.prose :where(.prose>ol>li>p:last-child){margin-bottom:1em}.prose :where(ul ul,ul ol,ol ul,ol ol){margin-top:.5em;margin-bottom:.5em}.prose :where(hr){border-color:var(--tw-prose-hr);margin-top:2.5em;margin-bottom:2.5em}.prose :where(hr.divider){background:linear-gradient(90deg, transparent, var(--tw-prose-hr) 20%, var(--tw-prose-hr) 80%, transparent);border:0;height:1px;margin-top:3.5em;margin-bottom:3.5em;position:relative;overflow:visible}.prose :where(hr.divider):after{content:"";border:1px solid var(--tw-prose-counters);background-color:var(--tw-prose-page-bg);width:.5rem;height:.5rem;position:absolute;top:50%;left:50%;translate:-50% -50%;rotate:45deg}.prose :where(h2){color:var(--tw-prose-headings);margin-top:2.5rem;margin-bottom:.625rem;font-size:1.0625rem;font-weight:600;line-height:1.5rem}.prose :where(h3){color:var(--tw-prose-headings);margin-top:1.75rem;margin-bottom:.375rem;font-size:.9375rem;font-weight:600;line-height:1.375rem}.prose :where(h2,h3,.sidenote,section[data-footnotes] li){scroll-margin-top:5rem}.prose :where(h2,h3,.sidenote):focus-visible{outline:1px solid var(--muted);outline-offset:4px;border-radius:2px}.prose :where(hr+*),.prose :where(h2+*),.prose :where(h3+*){margin-top:0}.prose :where(h2,h3){position:relative}.prose :where(.heading-anchor){width:1em;color:var(--muted);text-align:center;transition:color .15s var(--ease), opacity .15s var(--ease);border-radius:2px;margin-inline-start:.25em;font-weight:400;text-decoration:none;display:inline-block}.prose :where(.heading-anchor):hover,.prose :where(.heading-anchor[data-copied]){color:var(--ink)}.prose :where(.heading-anchor):focus-visible{outline:1px solid var(--ink);outline-offset:1px}.prose :where(.heading-anchor[data-copied]>span){display:none}.prose :where(.heading-anchor[data-copied]):after{content:"✓"}@media (prefers-reduced-motion:no-preference){.prose :where(.heading-anchor[data-copied]):after{animation:anchor-copied .25s var(--ease);display:inline-block}}@keyframes anchor-copied{0%{opacity:0;scale:.6}}@media (hover:hover) and (width>=40rem){.prose :where(.heading-anchor){opacity:0;margin:0;position:absolute;top:0;left:-1.25rem}.prose :where(h2:hover,h3:hover) :where(.heading-anchor),.prose :where(.heading-anchor):focus-visible,.prose :where(.heading-anchor[data-copied]){opacity:1}}@media (hover:hover) and (width>=40rem) and (any-pointer:coarse){.prose :where(.heading-anchor){opacity:1}}@media (prefers-reduced-motion:reduce){.prose :where(.heading-anchor){transition:none}}.prose :where(img){border-radius:.25rem;margin-top:1.75em;margin-bottom:1.75em;box-shadow:0 0 0 1px #0000000a}.dark .prose :where(img){box-shadow:0 0 0 1px #ffffff0d}.prose :where(figure){margin-top:1.75em;margin-bottom:1.75em}.prose :where(figure img){margin-top:0;margin-bottom:0}.prose :where(figcaption){color:var(--muted);margin-top:.625rem;font-size:.78125rem;line-height:1.125rem}.prose :where(figure.diagram){--dg-paper:var(--bg);--dg-ink:var(--ink);--dg-muted:var(--ink-2);--dg-soft:var(--decor);--dg-rule:var(--rule);--dg-wash:var(--well);--dg-accent:#b45309;--dg-accent-tint:#b4530914;max-width:352px;margin-inline:auto}.dark .prose :where(figure.diagram){--dg-accent:#ffc799;--dg-accent-tint:#ffc7991a}.prose :where(.diagram-scroll){overscroll-behavior-x:contain;overflow-x:auto}.prose :where(figure.diagram svg){width:352px;min-width:352px;max-width:none;height:auto;display:block}.prose :where(figure.diagram text){fill:var(--dg-ink);font-family:var(--font-sans,sans-serif)}.diagram .dg-name{font-size:13px;font-weight:600}.diagram .dg-small{font-size:12px;font-weight:600}.diagram .dg-sub,.diagram .dg-label,.diagram .dg-eyebrow{fill:var(--dg-muted);font-family:var(--font-mono,monospace);font-size:12px}.diagram .dg-label,.diagram .dg-eyebrow{letter-spacing:.04em}.diagram .dg-eyebrow{font-weight:500}.diagram .dg-faint{fill:var(--dg-muted)}.diagram .dg-label-accent,.diagram .dg-sub-accent{fill:var(--dg-accent)}.diagram .dg-under,.diagram .dg-mask{fill:var(--dg-paper)}.diagram .dg-node{fill:var(--dg-paper);stroke:var(--dg-ink);stroke-width:1px}.diagram .dg-input{fill:var(--dg-wash);stroke:var(--dg-soft);stroke-width:1px}.diagram .dg-store{fill:var(--dg-wash);stroke:var(--dg-muted);stroke-width:1px}.diagram .dg-ghost{fill:none;stroke:var(--dg-soft);stroke-width:1px;stroke-dasharray:4 3}.diagram .dg-focal{fill:var(--dg-accent-tint);stroke:var(--dg-accent);stroke-width:1.2px}.diagram .dg-zone{fill:none;stroke:var(--dg-rule);stroke-width:1px}.diagram .dg-zone-fill{fill:var(--dg-wash)}.diagram .dg-zone-dashed{stroke:var(--dg-soft);stroke-dasharray:4 4}.diagram .dg-chip{fill:none;stroke:var(--dg-rule);stroke-width:1px}.diagram .dg-line{fill:none;stroke:var(--dg-muted);stroke-width:1.2px}.diagram .dg-line-accent{stroke:var(--dg-accent)}.diagram .dg-line-dashed{stroke-dasharray:5 4}.diagram .dg-mk{fill:var(--dg-muted)}.diagram .dg-mk-accent{fill:var(--dg-accent)}.prose :where(figure.diagram figcaption){margin-top:1em}.prose :where(.diagram-credit){white-space:nowrap}.prose :where(.photo-stack){--ease-out:var(--ease);justify-content:center;margin-top:2.5em;margin-bottom:3em;display:flex}.prose :where(.photo-stack-trigger){aspect-ratio:4/3;cursor:pointer;width:min(100% - 3rem,22rem);transition:scale .15s var(--ease-out);background:0 0;border:0;padding:0;display:block;position:relative}.prose :where(.photo-stack-trigger):active{scale:.96}.prose :where(.photo-stack-trigger):focus-visible{outline-offset:.75rem;border-radius:.75rem;outline:2px solid}.prose :where(.photo-stack-trigger img){object-fit:cover;width:100%;height:100%;transition-property:rotate,translate;transition-duration:.25s;transition-timing-function:var(--ease-out);border:.375rem solid #fff;border-radius:.5rem;margin:0;position:absolute;inset:0;box-shadow:0 1px 2px oklch(0% 0 0/.12),0 8px 24px oklch(0% 0 0/.16)}.prose :where(.photo-stack-trigger img:first-child){translate:-7% 3%;rotate:-9deg}.prose :where(.photo-stack-trigger img:nth-child(2)){translate:7% 2%;rotate:8deg}.prose :where(.photo-stack-trigger img:nth-child(3)){translate:-2% -1%;rotate:-4deg}.prose :where(.photo-stack-trigger img:nth-child(4)){translate:2%;rotate:3deg}.prose :where(.photo-stack-trigger img:nth-child(5)){rotate:-1deg}@media (hover:hover) and (pointer:fine){.prose :where(.photo-stack-trigger:hover img:first-child){translate:-16% 4%;rotate:-14deg}.prose :where(.photo-stack-trigger:hover img:nth-child(2)){translate:16% 3%;rotate:13deg}.prose :where(.photo-stack-trigger:hover img:nth-child(3)){translate:-8% -2%;rotate:-7deg}.prose :where(.photo-stack-trigger:hover img:nth-child(4)){translate:8% -1%;rotate:6deg}.prose :where(.photo-stack-trigger:hover img:nth-child(5)){translate:0 -3%;rotate:0deg}}.prose :where(.photo-stack-label){color:#fff;white-space:nowrap;background-color:oklch(0% 0 0/.65);border-radius:9999px;padding:.375rem .875rem;font-size:.875rem;font-weight:600;line-height:1.25rem;position:absolute;bottom:1rem;left:50%;translate:-50%}.prose :where(.gallery){--ease-out:var(--ease);color:#fff;opacity:0;width:100%;max-width:100%;height:100%;max-height:100%;transition:opacity .2s var(--ease-out), scale .2s var(--ease-out), overlay .2s allow-discrete, display .2s allow-discrete;background:0 0;border:0;margin:0;padding:0;scale:.96}.prose :where(.gallery[open]){opacity:1;flex-direction:column;display:flex;scale:1}@starting-style{.prose :where(.gallery[open]){opacity:0;scale:.96}}.prose :where(.gallery)::backdrop{transition:background-color .2s var(--ease-out), overlay .2s allow-discrete, display .2s allow-discrete;background-color:oklch(13% 0 0/0)}.prose :where(.gallery[open])::backdrop{background-color:oklch(13% 0 0/.96)}@starting-style{.prose :where(.gallery[open])::backdrop{background-color:oklch(13% 0 0/0)}}.prose :where(.gallery-track){overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none;scroll-marker-group:after;outline:none;flex:1;min-height:0;display:flex;overflow-x:auto}.prose :where(.gallery-slide){scroll-snap-align:center;flex-direction:column;flex:0 0 100%;justify-content:center;align-items:center;gap:.75rem;margin:0;padding:4rem 1rem 1rem;display:flex}.prose :where(.gallery-slide img){object-fit:contain;width:auto;max-width:100%;height:auto;max-height:calc(100dvh - 10rem);box-shadow:none;margin:0}.prose :where(.gallery-slide figcaption){color:oklch(100% 0 0/.75);text-align:center;max-width:40rem;margin:0}.prose :where(.gallery-track)::scroll-marker-group{justify-content:center;gap:.5rem;padding:.5rem 1rem 1.5rem;display:flex}.prose :where(.gallery-slide)::scroll-marker{content:"";width:.5rem;height:.5rem;transition:background-color .15s var(--ease-out);background-color:oklch(100% 0 0/.35);border-radius:9999px}.prose :where(.gallery-slide)::scroll-marker:target-current{background-color:#fff}.prose :where(.gallery-track)::scroll-button(*){color:#fff;cursor:pointer;width:2.75rem;height:2.75rem;transition:background-color .15s var(--ease-out), opacity .15s var(--ease-out);background-color:oklch(100% 0 0/.12);border:0;border-radius:9999px;place-items:center;font-size:1.5rem;line-height:1;display:grid;position:fixed;top:50%;translate:0 -50%}.prose :where(.gallery-track)::scroll-button(*):disabled{opacity:.3;cursor:default}.prose :where(.gallery-track)::scroll-button(left){content:"‹" / attr(data-prev);left:1rem}.prose :where(.gallery-track)::scroll-button(right){content:"›" / attr(data-next);right:1rem}.prose :where(.gallery-close){color:#fff;cursor:pointer;width:2.75rem;height:2.75rem;transition:background-color .15s var(--ease-out);background-color:oklch(100% 0 0/.12);border-radius:9999px;place-items:center;display:grid;position:fixed;top:1rem;right:1rem}.prose :where(.gallery-close):focus-visible,.prose :where(.gallery-track)::scroll-button(*):focus-visible{outline-offset:2px;outline:2px solid #fff}@media (hover:hover) and (pointer:fine){.prose :where(.gallery-close):hover,.prose :where(.gallery-track)::scroll-button(*):hover{background-color:oklch(100% 0 0/.24)}}.prose :where(.gallery-slide){container-type:scroll-state}@supports (container-type:scroll-state){.prose :where(.gallery-slide>*){opacity:0;transition:opacity .2s var(--ease-out)}@container scroll-state(snapped:x){.prose :where(.gallery-slide>*){opacity:1}}}@media (prefers-reduced-motion:reduce){.prose :where(.photo-stack-trigger img){transition:none}.prose :where(.gallery),.prose :where(.gallery[open]){scale:1}}html:has(.gallery[open]){overflow:hidden}.prose :where(code){color:var(--tw-prose-code);font-weight:450;font-size:var(--code-size);font-family:var(--font-mono);background-color:var(--well);border-radius:.25rem;padding:.125em .3em}.prose :where(code):before,.prose :where(code):after{content:""}.prose :where(a code),.prose :where(h2 code),.prose :where(h3 code){color:inherit}.prose :where(.overflow-x-auto){--scroll-shadow:oklch(0% 0 0/.14);-webkit-overflow-scrolling:touch;background:linear-gradient(to right, var(--tw-prose-page-bg) 30%, transparent) left / 2.5rem 100% no-repeat local, linear-gradient(to left, var(--tw-prose-page-bg) 30%, transparent) right / 2.5rem 100% no-repeat local, radial-gradient(farthest-side at 0 50%, var(--scroll-shadow), transparent) left / 1.125rem 100% no-repeat scroll, radial-gradient(farthest-side at 100% 50%, var(--scroll-shadow), transparent) right / 1.125rem 100% no-repeat scroll;margin-top:1.75em;margin-bottom:1.75em;overflow-x:auto}.dark .prose :where(.overflow-x-auto){--scroll-shadow:oklch(100% 0 0/.16)}.prose :where(table){border-collapse:collapse;width:max-content;min-width:100%;font-size:.8125rem;line-height:1.25rem}.prose :where(th),.prose :where(td){text-align:left;vertical-align:top;border-bottom:1px solid var(--tw-prose-hr);padding:.4375rem .875rem .4375rem 0}.prose :where(th){background-color:var(--well);font-weight:550}.prose :where(th:first-child,td:first-child){padding-inline-start:.625rem}.prose :where(th:not(:first-child)),.prose :where(td:not(:first-child)){white-space:nowrap}@media (width<=719.98px){.prose :where(table:not(.overflow-x-auto>table)){-webkit-overflow-scrolling:touch;max-width:100%;display:block;overflow-x:auto}}@media (width>=720px){.prose :where(table){width:100%}.prose :where(th:not(:first-child)),.prose :where(td:not(:first-child)){white-space:normal}}.prose :where(pre){font-weight:400;font-size:var(--code-size);border-radius:.375rem;margin-top:1.75em;margin-bottom:1.75em;padding:.875rem 1rem;line-height:1.25rem;overflow-x:auto}.dark .prose :where(pre.astro-code){box-shadow:0 0 0 1px #ffffff0a;background-color:var(--well)!important}.prose :where(pre.astro-code span[style*=\#8B8B8B94 i]){color:#8b8b8b!important}.prose :where(pre code){font-weight:inherit;color:inherit;font-size:inherit;font-family:var(--font-mono);line-height:inherit;background-color:#0000;border-width:0;border-radius:0;padding:0}.prose :where(pre code):before,.prose :where(pre code):after{content:none}.prose :where(ol>li)::marker{color:var(--tw-prose-counters);font-weight:400}.prose :where(ul>li)::marker{color:var(--tw-prose-bullets)}.prose :where(.prose>:first-child){margin-top:0}.prose :where(.prose>:last-child){margin-bottom:0}.post-grid{--rail:9.5rem;--rail-gap:2rem}.post-column{max-width:34.5rem}@media (width>=64rem){.post-grid{grid-template-columns:var(--rail) minmax(0, 1fr);column-gap:var(--rail-gap);margin-inline-start:calc(-1 * (var(--rail) + var(--rail-gap)));display:grid}.post-column{grid-area:1/2;min-width:0}.post-rail{grid-area:1/1}}@media (width>=80rem){.post-grid{--rail:10.5rem;--rail-gap:3rem}}.prose :where(sup){vertical-align:super;font-size:.7em;line-height:0}.prose :where(sup>a[data-footnote-ref]){color:var(--muted);padding-inline:.1em;text-decoration:none}.prose :where(th sup>a[data-footnote-ref]){color:var(--ink-2)}.prose :where(section[data-footnotes]){border-top:1px solid var(--rule);color:var(--ink-2);margin-top:2.5em;padding-top:1em;font-size:.8125rem;line-height:1.25rem}.prose :where(section[data-footnotes] .sr-only){clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.prose :where(.sidenote){display:none}@media (width>=64rem){.prose :where(.sidenote){float:right;clear:right;width:var(--rail);margin-right:calc(-1 * (var(--rail) + var(--rail-gap)));color:var(--muted);transition:color .3s var(--ease);margin-bottom:.75rem;font-size:.75rem;line-height:1.125rem;display:block;position:relative}.prose :where(.sidenote.is-target){color:var(--ink)}.prose :where(.sidenote-number){color:var(--ink-2);font-variant-numeric:tabular-nums}.prose :where(.sidenote-number):after{content:"."}.prose :where(.sidenote code){font-size:.6875rem}.prose :where(.sidenote a code){color:var(--ink-2)}.prose :where(.sidenote>*){margin-top:0;margin-bottom:0}.prose :where(.sidenote>*+*){margin-top:.375rem}.prose :where(.sidenote ul,.sidenote ol){padding-inline-start:1em}.prose :where(.sidenote li){margin-top:.125rem;margin-bottom:.125rem;padding-inline-start:0}.prose :where(.sidenote-back){color:var(--muted);text-decoration:none}.prose :where(.sidenote-back):hover{color:var(--ink)}.prose:where(.has-sidenotes) :where(section[data-footnotes]){display:none}}
