.social-icons:where(.astro-wkojbtzc){display:flex;flex-direction:column;flex-wrap:wrap;align-items:center;justify-content:center;gap:.25rem}@media (min-width: 640px){.social-icons:where(.astro-wkojbtzc){align-items:flex-start}}.link-button:where(.astro-wkojbtzc){--tw-scale-x: .9;--tw-scale-y: .9;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));padding:.5rem;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;transition-timing-function:cubic-bezier(0,0,.2,1)}.link-button:where(.astro-wkojbtzc):hover{--tw-rotate: 6deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@media (min-width: 640px){.link-button:where(.astro-wkojbtzc){padding:.25rem}}.toc-card:where(.astro-xvrfupwn){width:100%;border-radius:.375rem;border-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--color-border),var(--tw-border-opacity, 1));background-color:rgba(var(--color-card),.6);padding:1rem;font-size:.875rem;line-height:1.25rem;--tw-text-opacity: 1;color:rgba(var(--color-text-base),var(--tw-text-opacity, 1));--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);--tw-backdrop-blur: blur(8px);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.toc-heading:where(.astro-xvrfupwn){margin-bottom:.75rem;font-size:.75rem;line-height:1rem;text-transform:uppercase;letter-spacing:.16em;color:rgba(var(--color-text-base),.7)}.toc-link:where(.astro-xvrfupwn){display:flex;align-items:center;gap:.5rem;border-radius:.25rem;padding:.25rem .5rem;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.toc-link:where(.astro-xvrfupwn):hover{--tw-text-opacity: 1;color:rgba(var(--color-accent),var(--tw-text-opacity, 1))}.toc-link:where(.astro-xvrfupwn):focus-visible{outline-style:solid;outline-width:1px;outline-color:rgb(var(--color-accent))}.toc-link:where(.astro-xvrfupwn).active{background-color:rgba(var(--color-card),.6);--tw-text-opacity: 1;color:rgba(var(--color-accent),var(--tw-text-opacity, 1))}.toc-sub:where(.astro-xvrfupwn){font-size:.93em}.toc-leaf:where(.astro-xvrfupwn){font-size:.85em}.toc-badge:where(.astro-xvrfupwn){display:inline-flex;height:1.5rem;min-width:1.5rem;align-items:center;justify-content:center;border-radius:9999px;--tw-bg-opacity: 1;background-color:rgba(var(--color-accent),var(--tw-bg-opacity, 1));padding-left:.5rem;padding-right:.5rem;font-size:.75rem;line-height:1rem;font-weight:600;--tw-text-opacity: 1;color:rgba(var(--color-fill),var(--tw-text-opacity, 1))}.toc-text:where(.astro-xvrfupwn){line-height:1.25rem}.toc-text-sub:where(.astro-xvrfupwn){font-size:.875rem;line-height:1.25rem;font-weight:500}.toc-text-leaf:where(.astro-xvrfupwn){font-size:.75rem;line-height:1rem;font-weight:400}.toc-children:where(.astro-xvrfupwn){margin-left:1rem;border-left-width:1px;border-style:dashed;--tw-border-opacity: 1;border-color:rgba(var(--color-border),var(--tw-border-opacity, 1));padding-left:.75rem}.toc-children:where(.astro-xvrfupwn) .toc-children:where(.astro-xvrfupwn){margin-left:.75rem}.toc-collapse:where(.astro-xvrfupwn){display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .28s cubic-bezier(.22,1,.36,1),opacity .2s ease}.toc-collapse:where(.astro-xvrfupwn)>.toc-children:where(.astro-xvrfupwn){min-height:0;overflow:hidden}.open:where(.astro-xvrfupwn)>.toc-collapse:where(.astro-xvrfupwn),li:where(.astro-xvrfupwn):focus-within>.toc-collapse:where(.astro-xvrfupwn),.toc--inline:where(.astro-xvrfupwn) .toc-collapse:where(.astro-xvrfupwn){grid-template-rows:1fr;opacity:1}.toc--inline:where(.astro-xvrfupwn){padding:0}.toc-summary:where(.astro-xvrfupwn){margin-bottom:0;display:flex;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;align-items:center;justify-content:space-between;padding:.75rem 1rem;list-style:none}.toc-summary:where(.astro-xvrfupwn)::-webkit-details-marker{display:none}.toc-chevron:where(.astro-xvrfupwn){height:1.25rem;width:1.25rem;opacity:.7;transition:transform .2s ease}.toc--inline:where(.astro-xvrfupwn)[open] .toc-chevron:where(.astro-xvrfupwn){transform:rotate(180deg)}.toc--inline:where(.astro-xvrfupwn) nav:where(.astro-xvrfupwn){padding-left:.5rem;padding-right:.5rem;padding-bottom:.75rem}@supports (interpolate-size: allow-keywords){.toc--inline:where(.astro-xvrfupwn){interpolate-size:allow-keywords}.toc--inline:where(.astro-xvrfupwn)::details-content{block-size:0;overflow:clip;transition:block-size .28s cubic-bezier(.22,1,.36,1),content-visibility .28s allow-discrete}.toc--inline:where(.astro-xvrfupwn)[open]::details-content{block-size:auto}}.post-layout:where(.astro-vj4tpspi){width:100%;padding-bottom:3rem;display:grid;grid-template-columns:minmax(1rem,1fr) minmax(0,46rem) minmax(1rem,1fr)}.post-body:where(.astro-vj4tpspi){grid-column:2;grid-row:1;min-width:0}.post-toc:where(.astro-vj4tpspi){--toc-top: 2.5rem;grid-column:1;grid-row:1;justify-self:end;align-self:start;position:sticky;top:var(--toc-top);width:min(15rem,100% - 2rem);margin-top:2rem;margin-right:2rem;max-height:calc(100svh - var(--toc-top) - 2.5rem);transition:top .3s cubic-bezier(.22,1,.36,1),max-height .3s cubic-bezier(.22,1,.36,1);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}html.header-pinned .post-toc:where(.astro-vj4tpspi){--toc-top: calc(var(--header-height, 0px) + 1rem)}.post-title:where(.astro-vj4tpspi){font-size:1.875rem;line-height:2.25rem;font-weight:600;line-height:1.25;--tw-text-opacity: 1;color:rgba(var(--color-accent),var(--tw-text-opacity, 1))}@media (min-width: 640px){.post-title:where(.astro-vj4tpspi){font-size:2.25rem;line-height:2.5rem}}.progress-container:where(.astro-vj4tpspi){pointer-events:none;position:fixed;left:0;top:0;z-index:40;height:.25rem;width:100%}.progress-bar:where(.astro-vj4tpspi){height:100%;width:100%;transform-origin:left;--tw-bg-opacity: 1;background-color:rgba(var(--color-accent),var(--tw-bg-opacity, 1));transform:scaleX(0);will-change:transform}.post-nav:where(.astro-vj4tpspi){margin-bottom:1rem;display:grid;grid-template-columns:repeat(1,minmax(0,1fr));gap:1rem}@media (min-width: 640px){.post-nav:where(.astro-vj4tpspi){grid-template-columns:repeat(2,minmax(0,1fr))}}.post-nav-link:where(.astro-vj4tpspi){display:flex;width:100%;align-items:center;gap:.5rem;border-radius:.5rem;border-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--color-border),var(--tw-border-opacity, 1));padding:.75rem 1rem;transition:border-color .2s ease,transform .2s cubic-bezier(.22,1,.36,1)}.post-nav-link:where(.astro-vj4tpspi):hover{--tw-translate-y: -.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));--tw-border-opacity: 1;border-color:rgba(var(--color-accent),var(--tw-border-opacity, 1))}.post-nav-label:where(.astro-vj4tpspi){font-size:.875rem;line-height:1.25rem;opacity:.8}.post-nav-title:where(.astro-vj4tpspi){--tw-text-opacity: 1;color:rgba(var(--color-accent),var(--tw-text-opacity, 1))}.image-viewer:where(.astro-vj4tpspi){position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;touch-action:none;overscroll-behavior:contain}.image-viewer:where(.astro-vj4tpspi)[hidden]{display:none}.image-viewer:where(.astro-vj4tpspi):before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 20%,rgba(var(--color-fill),.9),rgba(var(--color-fill),.94)),linear-gradient(135deg,rgba(var(--color-accent),.12),transparent 60%);backdrop-filter:blur(4px);opacity:0;transition:opacity .3s ease}.image-viewer:where(.astro-vj4tpspi).is-visible:before{opacity:1}html.image-viewer-open{overflow:hidden}.image-viewer__image:where(.astro-vj4tpspi){position:relative;max-width:none;border-radius:.5rem;background-color:#fff;transform-origin:center center;transition:transform .14s ease;-webkit-user-select:none;-moz-user-select:none;user-select:none;cursor:zoom-in}.image-viewer__image:where(.astro-vj4tpspi).is-zoomed{cursor:grab}.image-viewer__image:where(.astro-vj4tpspi).is-gesturing{cursor:grabbing;transition:none}.image-viewer__close:where(.astro-vj4tpspi){position:absolute;right:1rem;top:1rem;z-index:10;display:flex;height:2.75rem;width:2.75rem;align-items:center;justify-content:center;border-radius:9999px;border-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--color-border),var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgba(var(--color-card),var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgba(var(--color-text-base),var(--tw-text-opacity, 1));--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.image-viewer__close:where(.astro-vj4tpspi):hover{--tw-bg-opacity: 1;background-color:rgba(var(--color-card-muted),var(--tw-bg-opacity, 1))}.image-viewer__close:where(.astro-vj4tpspi){opacity:0;transition:opacity .2s ease,background-color .15s ease}.image-viewer:where(.astro-vj4tpspi).is-visible .image-viewer__close:where(.astro-vj4tpspi){opacity:1}.image-viewer__close:where(.astro-vj4tpspi) svg:where(.astro-vj4tpspi){height:1.25rem;width:1.25rem;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}#article:where(.astro-vj4tpspi) img:where(.astro-vj4tpspi).zoomable-image{cursor:zoom-in;transition:transform .15s ease,box-shadow .15s ease}#article:where(.astro-vj4tpspi) img:where(.astro-vj4tpspi).zoomable-image:focus-visible{outline:2px dashed rgb(var(--color-accent));outline-offset:3px}#article:where(.astro-vj4tpspi) img:where(.astro-vj4tpspi).zoomable-image:hover{transform:translateY(-1px);box-shadow:0 12px 28px #0000002e}.code-block-wrapper{position:relative}.copy-code{position:absolute;right:.75rem;top:.75rem;z-index:2;padding:.35rem .6rem;font-size:.82rem;line-height:1rem;border-radius:.375rem;background:rgb(var(--color-card));color:rgb(var(--color-text-base));font-weight:600;box-shadow:0 6px 20px #0000001f;opacity:0;visibility:hidden;transition:opacity .12s ease,visibility .12s ease,transform .12s ease}.copy-code:focus-visible{outline:2px dashed rgb(var(--color-accent));outline-offset:2px}.code-language{position:absolute;right:.75rem;top:.75rem;font-size:.85rem;line-height:1.1rem;color:rgba(var(--color-text-base),.7);font-weight:700;letter-spacing:.08em;transition:opacity .12s ease}.code-block-wrapper:hover .copy-code,.code-block-wrapper:focus-within .copy-code{opacity:1;visibility:visible}.code-block-wrapper:hover .code-language,.code-block-wrapper:focus-within .code-language{opacity:0}@media (hover: none){.copy-code{opacity:1;visibility:visible}.code-language,.code-block-wrapper:focus-within .code-language{right:3.25rem;opacity:1}}
