.share-buttons[data-astro-cid-eqjx2q6l]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.25rem .8rem;margin-top:2rem;font-size:1rem;display:flex;& a{font-size:1rem}}.share-meta[data-astro-cid-eqjx2q6l]{color:var(--heading-prefix);white-space:nowrap}#share-btn[data-astro-cid-eqjx2q6l]{font:inherit;cursor:pointer;color:var(--a-link-in-post);background:0 0;background-image:linear-gradient(var(--a-under-in-post-hovered), var(--a-under-in-post-hovered));background-position:0 100%;background-repeat:no-repeat;background-size:0 1px;border:none;margin-left:.2rem;margin-right:.1rem;padding:0;text-decoration:none;transition:background-size .3s ease-in-out;display:none}#share-btn[data-astro-cid-eqjx2q6l]:hover{color:var(--a-link-in-post-hovered);background-size:100% 1px}@media (width<=640px){#share-btn[data-astro-cid-eqjx2q6l]{display:block}}.prose{padding-left:10px;padding-right:10px}.prose .post-meta{color:#666;flex-wrap:wrap;align-items:center;gap:.5rem .8rem;margin-top:.5rem;margin-bottom:1.5rem;font-size:.9rem;display:flex;& .last-modified{align-items:center;gap:.2rem;display:inline-flex;& .time-arrow{text-align:center}}& .tags{flex-wrap:wrap;gap:.4rem;display:inline-flex}& .tag{color:#333;font-size:.9rem;display:inline-block;&:before{content:"#";color:#666;margin-right:.15rem}}& .post-views{font-variant-numeric:tabular-nums;align-items:center;gap:.25rem;display:inline-flex;&[hidden]{display:none}}}:root.dark .prose .post-meta{color:#b0b0b0;& .tag{color:#d1d1d1;&:before{color:#b0b0b0}}}.prose .toc{--toc-summary-color:var(--heading-color);--toc-link-color:var(--link-color);--toc-surface:transparent;background:var(--toc-surface);margin:1rem 0 1.4rem;padding:.35rem 0 .2rem;overflow:clip}:root.dark .prose .toc{--toc-link-color:#f7f2f2d6}.prose .toc summary,.prose .details summary{cursor:pointer;user-select:none;font-weight:600}.prose .toc summary{color:var(--toc-summary-color);letter-spacing:.02em;align-items:center;gap:.45rem;list-style:none;display:flex}.prose .details summary{list-style:revert}.prose .details{border:1px solid var(--line-color);border-radius:4px;margin:1rem 0 1.4rem;padding:.55rem .8rem}.prose .details[open]{border-bottom:1.5px solid #545454;border-bottom-right-radius:0;border-bottom-left-radius:0}.prose .toc summary::-webkit-details-marker{display:none}.prose .toc summary:after{--toc-chevron-rotation:315deg;content:"";width:.55rem;height:.55rem;transform:translateY(.5px) rotate(var(--toc-chevron-rotation));opacity:.7;border-bottom:2px solid;border-right:2px solid;margin-left:.15rem;transition:transform .18s}.prose .toc[open] summary:after{--toc-chevron-rotation:405deg}.prose .toc nav{margin-top:.7rem}.prose .toc ul{margin:0;padding-left:1.2rem}.prose .toc li{margin:.35rem 0}.prose .toc[open] li{animation:.18s cubic-bezier(.22,1,.36,1) both toc-item-in;animation-delay:calc(var(--toc-index,0) * 12ms)}.prose .toc a{color:var(--toc-link-color);align-items:center;gap:.25rem;text-decoration:none;transition:transform .16s,color .16s;display:inline-flex}.prose .toc a:hover{color:var(--a-link-in-post);transform:translate(3px)}.prose .toc .toc-depth-3{margin-left:1rem}.prose p{letter-spacing:.05em;font-size:17px;line-height:1.8;font-family:var(--base-fonts-sans);font-optical-sizing:auto;margin-top:1rem;margin-bottom:1rem;font-weight:430}.prose .post-description{letter-spacing:.02em;color:var(--heading-prefix);margin:.4rem 0 .8rem;font-size:1rem;line-height:1.6}.prose h2{text-underline-offset:5px;letter-spacing:.02em;color:var(--heading-color);margin-top:2rem;margin-bottom:1.5rem;& a{color:var(--heading-color);font-size:1.5rem;text-decoration:none}}.prose h2:before{content:"##";color:var(--heading-prefix);margin-right:.5rem}.prose h3{color:var(--heading-color);margin-top:1.8rem;margin-bottom:1rem}.prose h3:before{content:"###";color:var(--heading-prefix);margin-right:.5rem}.prose blockquote{border-left:4px solid var(--blockquote-border);margin:20px 0;padding-left:15px;& p{font-size:.93rem}}.prose .message{background-color:#eab3080d;border-left:4px solid #eab308;border-radius:0 8px 8px 0;margin:1.5rem 0;padding:1rem 1.25rem}.prose .message p{margin:0;font-size:.95rem}:root.dark .prose .message{background-color:#eab3081a;border-left-color:#facc15}.prose .alert{background-color:#ef44440d;border-left:4px solid #ef4444;border-radius:0 8px 8px 0;margin:1.5rem 0;padding:1rem 1.25rem}.prose .alert p{margin:0;font-size:.95rem}:root.dark .prose .alert{background-color:#ef44441a;border-left-color:#f87171}.prose .pros ul,.prose .cons ul,.prose ul.pros,.prose ul.cons{margin:0;padding:0;list-style:none}.prose li.pros,.prose li.cons{margin-bottom:.4em;padding-left:1em;list-style:none;position:relative}.prose li.pros:before,.prose li.cons:before{line-height:inherit;font-style:normal;font-weight:700;position:absolute;top:0;left:-1em}.prose .pros li,.prose .cons li,.prose ul.pros li,.prose ul.cons li{margin-bottom:.4em;padding-left:1.6em;list-style:none;position:relative}.prose .pros li:before,.prose .cons li:before,.prose ul.pros li:before,.prose ul.cons li:before{line-height:inherit;font-style:normal;font-weight:700;position:absolute;top:0;left:0}.prose .pros li:before,.prose li.pros:before,.prose ul.pros li:before{content:"+"}.prose .cons li:before,.prose li.cons:before,.prose ul.cons li:before{content:"−"}:root.dark .prose .pros li:before,:root.dark .prose li.pros:before,:root.dark .prose ul.pros li:before{color:#4ade80}:root.dark .prose .cons li:before,:root.dark .prose li.cons:before,:root.dark .prose ul.cons li:before{color:#f87171}.prose sup{vertical-align:baseline;font-size:.75em;line-height:0;position:relative;top:-.4em}@keyframes toc-item-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@keyframes target-highlight{0%{background-color:#0000}25%{background-color:#eab3084d}50%{background-color:#0000}75%{background-color:#eab3084d}to{background-color:#0000}}:target{animation:2s ease-out target-highlight}.prose .external-link{margin-left:.2rem;margin-right:.1rem}.prose ul{padding-left:20px}.prose li{margin-bottom:.3em;line-height:1.5}.prose img{width:100%;height:auto}.prose .image-row{-webkit-overflow-scrolling:touch;flex-direction:row;align-items:flex-start;gap:.6rem;margin:1rem 0;display:flex;overflow-x:auto}.prose .image-row img{object-fit:contain;border-radius:4px;flex:1 1 0;width:auto;min-width:0;height:auto}@media (width<=480px){.prose .image-row{gap:.4rem}}.prose img[alt*=\#auto]{width:auto;height:auto}.prose img[alt*=\#small]{width:200px;height:auto}.prose img[alt*=\#medium]{width:48%;height:auto}.prose img[alt*=\#middle]{width:50%;height:auto}.prose img[alt*=\#upper]{width:80%;height:auto}.prose pre{box-sizing:border-box;background-color:#24292e;border-radius:8px;width:100%;max-width:100%;padding:1rem;display:block;position:relative;overflow-x:auto}.prose .code-title{letter-spacing:.02em;color:#f8f8f2;font-size:.85rem;line-height:1.4;font-family:var(--base-fonts-mono);background-color:#24292e;border-radius:8px 8px 0 0;align-items:center;gap:.5rem;margin:1.1rem 0 0;padding:.25rem .75rem;display:flex}.prose .code-title+pre{border-top:1px solid #fff;border-top-left-radius:0;border-top-right-radius:0;margin-top:0}.prose pre code{color:#f8f8f2;font-family:var(--base-fonts-mono);white-space:pre;background:0 0;border-radius:0;margin:0;padding:0;display:block}.prose .code-copy-button{color:#f8f8f2;cursor:pointer;opacity:.75;background:#ffffff14;border:1px solid #ffffff40;border-radius:6px;padding:.35rem .6rem;font-size:.75rem;line-height:1}.prose pre .code-copy-button{position:absolute;top:.6rem;right:.6rem}.prose .code-title .code-copy-button{margin-left:auto}.prose .code-copy-button:hover{opacity:1}.prose .code-copy-button:focus-visible{outline-offset:2px;outline:2px solid #fff9}.prose .code-copy-button[data-state=copied]{color:#9be9a8;border-color:#9be9a899}.prose .code-copy-button[data-state=failed]{color:#fda4af;border-color:#fda4af99}.prose code{font-family:var(--base-fonts-mono);word-break:break-word;background-color:#afb8c133;border-radius:6px;padding:.2em .4em;font-size:85%}@media (width<=640px){.prose p{font-size:16px}.prose pre{-webkit-overflow-scrolling:touch;border-radius:4px;padding:.75rem}}.prose a{color:var(--a-link-in-post);background-image:linear-gradient(var(--a-under-in-post-hovered), var(--a-under-in-post-hovered));background-position:0 100%;background-repeat:no-repeat;background-size:0 1px;padding-bottom:0;font-size:1.05rem;text-decoration:none;transition:background-size .3s ease-in-out}.prose a:hover{color:var(--a-link-in-post-hovered);background-size:100% 1px}.prose a.no-deco-link,.prose a:has(img[alt*=\#no-deco]){background-image:none!important;text-decoration:none!important}.prose a.no-deco-link:hover,.prose a:has(img[alt*=\#no-deco]):hover{color:inherit;background-size:0 0!important}.prose a.no-deco-link:after,.prose a:has(img[alt*=\#no-deco]):after{display:none!important}.prose a:has(img[alt*=\#download]){background-image:none!important;text-decoration:none!important}.prose a:has(img[alt*=\#download]):after{content:"";background-color:currentColor;width:.9em;height:.9em;margin-left:4px;transition:transform .2s;display:inline-block;mask-image:url("data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"black\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"%3E%3Cpath d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"%3E%3C/path%3E%3Cpolyline points=\"7 10 12 15 17 10\"%3E%3C/polyline%3E%3Cline x1=\"12\" y1=\"15\" x2=\"12\" y2=\"3\"%3E%3C/line%3E%3C/svg%3E");mask-position:50%;mask-size:contain;mask-repeat:no-repeat}.prose a:has(img[alt*=\#download]):hover:after{transform:translateY(2px)}#img-lightbox{z-index:9999;cursor:zoom-out;-webkit-backdrop-filter:blur(4px);background:#000000d1;justify-content:center;align-items:center;display:none;position:fixed;inset:0}#img-lightbox.is-open{animation:.18s both lightbox-in;display:flex}#img-lightbox-img{object-fit:contain;cursor:default;border-radius:6px;width:auto;max-width:min(90vw,1200px);height:auto;max-height:90dvh;animation:.2s cubic-bezier(.22,1,.36,1) both lightbox-img-in;box-shadow:0 24px 64px #00000080}@keyframes lightbox-in{0%{opacity:0}to{opacity:1}}@keyframes lightbox-img-in{0%{opacity:0;transform:scale(.93)}to{opacity:1;transform:scale(1)}}
