.footnotes{--un-border-opacity:1;border-top-width:1px;border-color:rgb(229 231 235/var(--un-border-opacity));margin-top:3rem;padding-top:2rem}.dark .footnotes{--un-border-opacity:1;border-color:rgb(55 65 81/var(--un-border-opacity))}.footnotes ol,.footnotes li:last-child p{margin-bottom:0}.prose a{overflow-wrap:anywhere;word-break:break-word}.blog-article-content :where(p,li){font-size:var(--fs-body);line-height:1.9}.blog-article-content :where(:not(pre)>code){overflow-wrap:anywhere;white-space:normal;word-break:normal}.blog-article-meta-item{white-space:nowrap;align-items:center;gap:.4rem;display:inline-flex}.blog-article-meta-icon{color:currentColor;opacity:.85;flex-shrink:0;width:1rem;height:1rem;display:inline-flex}.blog-article-meta-prefix{letter-spacing:.04em;opacity:.78;font-size:.78rem}.prose table{border-collapse:collapse;border-spacing:0;table-layout:fixed;border:1px solid #d1d5db;width:100%}html.dark .prose table{border-color:#4b5563}.prose th,.prose td{overflow-wrap:break-word;word-break:break-word;border:1px solid #d1d5db;padding:.625rem .875rem}html.dark .prose th,html.dark .prose td{border-color:#4b5563}.blog-article-content :where(ul ul,ul ol,ol ul,ol ol){margin-top:.75rem;margin-bottom:.75rem}.blog-article-content .code-block-wrapper{margin-top:1.5rem;margin-bottom:1.5rem;position:relative}.blog-article-content .code-file-label{color:#1f2937;letter-spacing:.01em;pointer-events:none;text-overflow:ellipsis;white-space:nowrap;z-index:1;background:#e5e7eb;border-top-left-radius:.75rem;border-bottom-right-radius:.88rem;align-items:center;max-width:calc(100% - 4.8rem);padding:.48rem .95rem;font-size:.94rem;font-weight:700;line-height:1;display:inline-flex;position:absolute;top:0;left:0;overflow:hidden;box-shadow:0 1px #0f172a14}.blog-article-content .code-copy-live{clip-path:inset(50%);clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.blog-article-content .code-copy-button{color:#e2e8f0;cursor:pointer;opacity:0;pointer-events:none;visibility:hidden;z-index:2;background:#12223deb;border:1px solid #6789c58c;border-radius:.72rem;justify-content:center;align-items:center;width:2.2rem;height:2.2rem;padding:0;line-height:1;transition:border-color .18s,box-shadow .18s,color .18s,opacity .18s,transform .18s,visibility 0s linear .18s;display:inline-flex;position:absolute;top:.7rem;right:.7rem;transform:translateY(-2px)scale(.96);box-shadow:0 0 0 1px #94a3b833,0 8px 20px #0f172a40}.blog-article-content .code-copy-button[data-copy-visible=true]{opacity:1;pointer-events:auto;visibility:visible;transition-delay:0s;transform:translateY(0)scale(1)}.blog-article-content .code-copy-button:after{color:#f8fafc;content:attr(data-copy-feedback);opacity:0;pointer-events:none;white-space:nowrap;background:#0f172a;border-radius:.45rem;padding:.22rem .45rem;font-size:.7rem;font-weight:600;transition:opacity .16s,transform .16s;position:absolute;top:calc(100% + .35rem);left:50%;transform:translate(-50%,-4px)}.blog-article-content .code-copy-button:hover{border-color:#93c5fd;transform:translateY(-1px);box-shadow:0 0 0 1px #94a3b847,0 10px 24px #0f172a52}.blog-article-content .code-copy-button:focus-visible{outline-offset:2px;outline:2px solid #38bdf8}.blog-article-content .code-copy-button[data-copy-state=success],.blog-article-content .code-copy-button[data-copy-state=error]{transform:translateY(-1px)}.blog-article-content .code-copy-button[data-copy-state=success]{color:#67e8f9;border-color:#22d3ee}.blog-article-content .code-copy-button[data-copy-state=error]{color:#fecaca;border-color:#f87171}.blog-article-content .code-copy-button[data-copy-state=success]:after,.blog-article-content .code-copy-button[data-copy-state=error]:after{opacity:1;transform:translate(-50%)}.blog-article-content .code-copy-icon{font-size:1.12rem;line-height:1;transition:opacity .15s,transform .15s;position:absolute}.blog-article-content .code-copy-icon--success{opacity:0;transform:scale(.75)}.blog-article-content .code-copy-button[data-copy-state=success] .code-copy-icon--copy{opacity:0;transform:scale(.72)}.blog-article-content .code-copy-button[data-copy-state=success] .code-copy-icon--success{opacity:1;transform:scale(1)}.blog-article-content pre.astro-code{--code-line-number-gap:1.4rem;--code-line-height:0;--code-line-number-width:2.35rem;--code-column-divider-color:#94a3b859;--code-column-divider-x:calc(var(--code-line-number-width) + (var(--code-line-number-gap) * .5));--code-column-divider-extra-height:20px;--code-column-divider-height:calc(100% + var(--code-column-divider-extra-height));--code-column-divider-top:calc(var(--code-column-divider-extra-height) / -2);border:1px solid #4b5563;border-radius:.75rem;overflow-x:auto;background:var(--shiki-dark-bg,#111827)!important;color:var(--shiki-dark,#e5e7eb)!important;margin-top:0!important;margin-bottom:0!important;padding:2.4rem .85rem!important}.blog-article-content pre.astro-code[data-code-filename]{padding-top:3rem!important}.blog-article-content pre.astro-code code{counter-reset:code-line;min-width:max-content;display:block;position:relative}.blog-article-content pre.astro-code code:before{background:var(--code-column-divider-color);content:"";left:var(--code-column-divider-x);pointer-events:none;top:var(--code-column-divider-top,0);width:1px;position:absolute;height:var(--code-column-divider-height,100%)!important}.blog-article-content pre.astro-code code>span.line{line-height:var(--code-line-height);min-height:calc(1em * var(--code-line-height));padding-left:calc(var(--code-line-number-width) + var(--code-line-number-gap));display:block;position:relative}.blog-article-content pre.astro-code code>span.line:before{color:#94a3b8;content:counter(code-line);counter-increment:code-line;font-variant-numeric:tabular-nums;font-size:.78rem;line-height:var(--code-line-height);opacity:.8;pointer-events:none;text-align:right;user-select:none;width:var(--code-line-number-width);position:absolute;left:0}.blog-article-content pre.astro-code span,.blog-article-content pre.astro-code span[style*=--shiki-dark]{color:var(--shiki-dark)!important}html.dark .blog-article-content .code-copy-button{color:#e2e8f0;background:#0f172ae6;border-color:#475569e6;box-shadow:0 0 0 1px #64748b4d,0 10px 24px #0206178c}html.dark .blog-article-content .code-copy-button:hover{border-color:#7dd3fc}html.dark .blog-article-content .code-copy-button[data-copy-state=success]{color:#a5f3fc;border-color:#22d3ee}html.dark .blog-article-content .code-copy-button[data-copy-state=error]{color:#fecdd3;border-color:#fb7185}html.dark .blog-article-content .code-file-label{color:#0f172a;background:#dbe3ee;box-shadow:0 1px #0f172a26}.blog-article-content .admonition{border:1px solid #d1d5db;border-radius:.75rem;margin:1.5rem 0;padding:.875rem 1rem 1rem}.blog-article-content .admonition__title{margin:0;font-size:1.2rem;font-weight:700}.blog-article-content .admonition__content{margin-top:.5rem}.blog-article-content .admonition__content>:first-child{margin-top:0}.blog-article-content .admonition__content>:last-child{margin-bottom:0}.blog-article-content .admonition--note{background:#f0fdf4;border-color:#86efac}.blog-article-content .admonition--caution{background:#fffbeb;border-color:#fcd34d}.blog-article-content .admonition--danger{background:#fef2f2;border-color:#fca5a5}html.dark .blog-article-content .admonition{border-color:#4b5563}html.dark .blog-article-content .admonition--note{background:#052e16;border-color:#15803d}html.dark .blog-article-content .admonition--caution{background:#422006;border-color:#b45309}html.dark .blog-article-content .admonition--danger{background:#450a0a;border-color:#b91c1c}.blog-article-content img{cursor:zoom-in;-webkit-touch-callout:none}.blog-article-content picture{display:block}.blog-article-content picture:has(>img[id^=mermaid-diagram]){max-width:100%;margin:2rem 0}.blog-article-content img[id^=mermaid-diagram]{cursor:default;width:min(28rem,100%);max-width:100%;height:auto;margin:0 auto;display:block}.blog-article-content pre.mermaid{text-align:center;background:0 0;min-height:12rem;margin:2rem 0;padding:0;overflow-x:auto}html.js .blog-article-content pre.mermaid:not([data-processed=true]){color:#0000;visibility:hidden}.blog-article-content pre.mermaid svg{width:min(28rem,100%);max-width:100%;height:auto;margin:0 auto;display:block}.blog-image-modal{opacity:0;pointer-events:none;visibility:hidden;transition:opacity .2s,visibility 0s linear .2s}.blog-image-modal.is-open{opacity:1;pointer-events:auto;visibility:visible;transition:opacity .2s,visibility}.blog-image-modal img{opacity:0;transition:transform .2s,opacity .2s;transform:scale(.98)}.blog-image-modal.is-open img{opacity:1;transform:scale(1)}.toc-root{flex-shrink:0}.toc-mobile-bar{z-index:40;color:#374151;appearance:none;cursor:pointer;text-align:left;background:#fff;border:1px solid #e5e7eb;border-left:0;border-right:0;align-items:center;width:100%;height:2.75rem;padding:0 1rem;transition:transform .3s;display:flex;position:fixed;top:4rem;left:0;right:0}html.dark .toc-mobile-bar{color:#d1d5db;background:#111827;border-top-color:#374151;border-bottom-color:#374151}.toc-mobile-bar--hidden{transform:translateY(calc(-100% - 4rem))}.toc-mobile-btn{flex-shrink:0;align-items:center;gap:.375rem;min-width:2.75rem;min-height:2rem;font-size:1rem;font-weight:600;display:inline-flex}.toc-panel-backdrop{z-index:70;opacity:0;pointer-events:none;background:#0006;transition:opacity .25s;position:fixed;inset:0}.toc-panel-backdrop--visible{opacity:1;pointer-events:auto}.toc-panel{z-index:71;background:#fff;flex-direction:column;width:min(20rem,85vw);transition:transform .3s;display:flex;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}html.dark .toc-panel{background:#1f2937}.toc-panel--open{transform:translate(0)}.toc-panel-header{border-bottom:1px solid #e5e7eb;flex-shrink:0;justify-content:space-between;align-items:center;padding:1rem 1.25rem;display:flex}html.dark .toc-panel-header{border-bottom-color:#374151}.toc-panel-title{color:#111827;font-size:1rem;font-weight:700}html.dark .toc-panel-title{color:#f3f4f6}.toc-panel-close{color:#6b7280;cursor:pointer;background:0 0;border:none;border-radius:.375rem;justify-content:center;align-items:center;width:2.75rem;height:2.75rem;transition:background-color .15s;display:inline-flex}.toc-panel-close:hover{background:#f3f4f6}html.dark .toc-panel-close{color:#9ca3af}html.dark .toc-panel-close:hover{background:#374151}.toc-panel-body{overscroll-behavior:contain;flex:1;padding:.75rem 1.25rem 1.5rem;overflow-y:auto}.toc-desktop-title{display:none}.toc-list{margin:0;padding:0;list-style:none}.toc-list .toc-list{padding-left:.75rem}.toc-link{color:#6b7280;border-left:2px solid #0000;border-radius:0 .25rem .25rem 0;padding:.5rem .75rem;font-size:.875rem;line-height:1.5;text-decoration:none;transition:color .15s,border-color .15s,background-color .15s;display:block}.toc-link:hover{color:#374151;background:#f3f4f6}html.dark .toc-link{color:#9ca3af}html.dark .toc-link:hover{color:#d1d5db;background:#374151}.toc-link.is-active{color:#111827;border-left-color:#111827;font-weight:600}html.dark .toc-link.is-active{color:#f3f4f6;border-left-color:#f3f4f6}@media (width>=1280px){.toc-root{--toc-sticky-top:clamp(6.5rem, 35vh, 12.5rem);width:14rem;top:var(--toc-sticky-top);max-height:calc(100vh - var(--toc-sticky-top) - 1.5rem);align-self:start;position:sticky}.toc-mobile-bar,.toc-panel-backdrop{display:none!important}.toc-panel{z-index:auto;background:0 0;width:auto;max-height:100%;transition:none;position:static;transform:none}html.dark .toc-panel{background:0 0}.toc-panel-header{display:none}.toc-panel-body{max-height:100%;padding:.25rem}.toc-desktop-title{color:#111827;margin-bottom:.75rem;padding-left:.75rem;font-size:1.125rem;font-weight:700;display:block}html.dark .toc-desktop-title{color:#f3f4f6}.toc-link{border-radius:0;padding:.25rem .75rem;font-size:.8125rem}.toc-link:hover,html.dark .toc-link:hover{background:0 0}}@media (prefers-reduced-motion:reduce){.toc-mobile-bar,.toc-panel,.toc-panel-backdrop,.toc-link{transition:none}}
