.footer-text[data-astro-cid-gcn2mc3v]{text-align:center;font-size:.75rem;font-weight:700}.site-theme-toggle[data-astro-cid-x3pjskd3]{background:transparent;border:0;color:color-mix(in srgb,var(--uno-colors-primary) 68%,transparent);cursor:pointer;display:inline-flex;height:2.5rem;align-items:center;justify-content:center;padding:0;width:2.5rem}.site-theme-toggle[data-astro-cid-x3pjskd3]:hover,.site-theme-toggle[data-astro-cid-x3pjskd3]:focus-visible{background:transparent;border:0;color:color-mix(in srgb,var(--uno-colors-primary) 68%,transparent);outline:0}.site-theme-toggle-icon[data-astro-cid-x3pjskd3]{font-size:1.125rem}.site-social-list[data-astro-cid-2ioqeek6]{overflow:visible}.site-navigation-toggle[data-astro-cid-2ioqeek6]{background:transparent;border:0;color:color-mix(in srgb,var(--uno-colors-primary) 76%,transparent);cursor:pointer;display:inline-flex;height:2.5rem;align-items:center;justify-content:center;padding:0;width:2.5rem}.site-navigation-toggle[data-astro-cid-2ioqeek6]:hover,.site-navigation-toggle[data-astro-cid-2ioqeek6]:focus-visible{color:var(--uno-colors-primary);outline:0}.site-navigation-toggle-icon[data-astro-cid-2ioqeek6]{font-size:1.35rem}.site-navigation-mobile-panel[data-astro-cid-2ioqeek6]{background:var(--uno-colors-background);border:1px solid color-mix(in srgb,var(--uno-colors-primary) 14%,transparent);box-shadow:0 18px 42px #00000024;min-width:min(20rem,calc(100vw - 2rem));padding:.7rem;position:absolute;right:0;top:calc(100% + .6rem);z-index:40}.site-navigation-mobile-link[data-astro-cid-2ioqeek6]{color:color-mix(in srgb,var(--uno-colors-primary) 78%,transparent);display:flex;min-height:2.5rem;align-items:center;gap:.6rem;padding:.45rem .55rem;text-decoration:none}.site-navigation-mobile-link[data-astro-cid-2ioqeek6]:hover,.site-navigation-mobile-link[data-astro-cid-2ioqeek6]:focus-visible{color:var(--uno-colors-primary);outline:1px solid color-mix(in srgb,var(--uno-colors-primary) 18%,transparent)}.site-social-icon[data-astro-cid-2ioqeek6]{background:transparent;border:0;color:color-mix(in srgb,var(--uno-colors-primary) 68%,transparent);cursor:pointer;display:inline-flex;height:2.5rem;align-items:center;justify-content:center;position:relative;text-decoration:none;transition:color .2s ease,background-color .2s ease;width:2.5rem}.site-nav-icon[data-astro-cid-2ioqeek6]{background:transparent;border:0;color:color-mix(in srgb,var(--uno-colors-primary) 68%,transparent);display:inline-flex;height:2.5rem;align-items:center;justify-content:center;position:relative;text-decoration:none;width:2.5rem}.site-nav-icon-symbol[data-astro-cid-2ioqeek6]{font-size:1.125rem}.site-nav-icon[data-astro-cid-2ioqeek6]:hover,.site-nav-icon[data-astro-cid-2ioqeek6]:focus-visible{background:transparent;color:color-mix(in srgb,var(--uno-colors-primary) 68%,transparent)}.site-social-icon[data-astro-cid-2ioqeek6]:hover,.site-social-icon[data-astro-cid-2ioqeek6]:focus-visible{background:transparent;color:var(--uno-colors-primary)}.site-social-svg[data-astro-cid-2ioqeek6],.site-social-svg[data-astro-cid-2ioqeek6] svg{height:1.25rem;width:1.25rem}.site-social-svg[data-astro-cid-2ioqeek6]{display:inline-flex}.site-social-icon[data-astro-cid-2ioqeek6]:after{background:var(--uno-colors-background);border:0;color:var(--uno-colors-primary);content:attr(data-label);font-size:.72rem;letter-spacing:.08em;opacity:0;padding:.42rem .58rem;pointer-events:none;position:absolute;right:0;top:calc(100% + .7rem);transition:opacity .2s ease,transform .2s ease;white-space:nowrap}.site-social-icon[data-astro-cid-2ioqeek6]:hover:after,.site-social-icon[data-astro-cid-2ioqeek6]:focus-visible:after{opacity:1;transform:translateY(.2rem)}.site-social-popover-panel[data-astro-cid-2ioqeek6]{background:var(--uno-colors-background);border:0;box-shadow:0 18px 40px #0000002e;opacity:0;padding:.75rem;position:absolute;right:0;top:calc(100% + .65rem);transform:translateY(.45rem);transition:opacity .2s ease,transform .2s ease,visibility .2s ease;visibility:hidden;width:13.75rem;z-index:30}.site-social-popover[data-astro-cid-2ioqeek6]:hover .site-social-popover-panel[data-astro-cid-2ioqeek6],.site-social-popover[data-astro-cid-2ioqeek6]:focus-within .site-social-popover-panel[data-astro-cid-2ioqeek6]{opacity:1;transform:translateY(0);visibility:visible}.site-social-popover-panel[data-astro-cid-2ioqeek6] img[data-astro-cid-2ioqeek6]{height:auto;width:100%}.site-social-popover-panel[data-astro-cid-2ioqeek6] span[data-astro-cid-2ioqeek6]{color:color-mix(in srgb,var(--uno-colors-primary) 66%,transparent);display:block;font-size:.76rem;letter-spacing:.04em;margin-top:.5rem;text-align:center}.article-prose{--article-muted: color-mix(in srgb, var(--uno-colors-primary) 62%, transparent);--article-faint: color-mix(in srgb, var(--uno-colors-primary) 12%, transparent);--article-border: color-mix(in srgb, var(--uno-colors-primary) 18%, transparent);--article-surface: color-mix(in srgb, var(--uno-colors-primary) 4%, var(--uno-colors-background));--article-surface-strong: color-mix(in srgb, var(--uno-colors-primary) 8%, var(--uno-colors-background));--article-code-bg: color-mix(in srgb, var(--uno-colors-primary) 9%, var(--uno-colors-background));--article-code-fg: var(--uno-colors-primary);--article-code-block-bg: #f6f8fa;--article-code-block-border: color-mix(in srgb, var(--uno-colors-primary) 12%, transparent);--article-code-block-header: linear-gradient(to bottom, rgb(255 255 255 / 86%), rgb(255 255 255 / 54%));--article-code-block-header-border: color-mix(in srgb, var(--uno-colors-primary) 10%, transparent);--article-code-block-shadow: 0 18px 44px color-mix(in srgb, var(--uno-colors-primary) 6%, transparent);color:var(--uno-colors-primary);font-size:1rem;line-height:1.82}html.dark .article-prose,:root[data-theme=dark] .article-prose{--article-muted: color-mix(in srgb, var(--uno-colors-primary) 68%, transparent);--article-faint: color-mix(in srgb, var(--uno-colors-primary) 10%, transparent);--article-border: color-mix(in srgb, var(--uno-colors-primary) 22%, transparent);--article-surface: color-mix(in srgb, var(--uno-colors-primary) 5%, var(--uno-colors-background));--article-surface-strong: color-mix(in srgb, var(--uno-colors-primary) 10%, var(--uno-colors-background));--article-code-bg: color-mix(in srgb, var(--uno-colors-primary) 12%, var(--uno-colors-background));--article-code-block-bg: #16171d;--article-code-block-border: color-mix(in srgb, var(--uno-colors-primary) 14%, transparent);--article-code-block-header: linear-gradient(to bottom, rgb(255 255 255 / 5%), rgb(255 255 255 / 1%));--article-code-block-header-border: rgb(255 255 255 / 7%);--article-code-block-shadow: inset 0 1px 0 rgb(255 255 255 / 5%), 0 18px 44px color-mix(in srgb, var(--uno-colors-primary) 8%, transparent)}.post-page{--article-page-center-width: 48rem;--article-page-rail-gap: 2rem;--article-page-toc-width: 13rem;--article-page-comments-width: 14rem;color:var(--uno-colors-primary);position:relative}html:has(.post-page) .transition-swup-main{transform:none!important}.article-toc-rail{display:none}.article-comments-rail{display:block;margin:clamp(3rem,8vw,5rem) auto 0;max-width:var(--article-page-center-width);width:100%}@media (min-width: 1280px){.article-toc-rail,.article-comments-rail{display:block;height:calc(100vh - 9rem);margin:0;max-width:none;overflow:auto;position:fixed;scrollbar-width:none;top:7rem;z-index:5}.article-toc-rail::-webkit-scrollbar,.article-comments-rail::-webkit-scrollbar{display:none}.article-toc-rail{left:max(1.25rem,calc(50vw - (var(--article-page-center-width) / 2) - var(--article-page-rail-gap) - var(--article-page-toc-width)));width:var(--article-page-toc-width)}.article-comments-rail{right:max(1.25rem,calc(50vw - (var(--article-page-center-width) / 2) - var(--article-page-rail-gap) - var(--article-page-comments-width)));width:var(--article-page-comments-width)}.article-comments-widget{border-inline-start:1px solid color-mix(in srgb,var(--uno-colors-primary) 14%,transparent);border-top:0;padding-inline-start:1rem;padding-top:0}}@media (min-width: 1536px){.post-page{--article-page-comments-width: 16rem;--article-page-toc-width: 14rem}}.article-toc,.article-comments-widget{color:var(--uno-colors-primary)}.article-toc{border-inline-start:1px solid color-mix(in srgb,var(--uno-colors-primary) 14%,transparent);padding-inline-start:1rem}.article-toc-title{color:color-mix(in srgb,var(--uno-colors-primary) 48%,transparent);font-size:.72rem;font-weight:760;letter-spacing:.08em;line-height:1;margin:0 0 .9rem;text-transform:uppercase}.article-toc-list{display:grid;gap:.16rem;list-style:none;margin:0;max-height:calc(100vh - 11rem);overflow:auto;padding:0;scrollbar-width:none}.article-toc-list::-webkit-scrollbar{display:none}.article-toc-link{--article-toc-link-color: color-mix(in srgb, var(--uno-colors-primary) 58%, transparent);color:color-mix(in srgb,var(--uno-colors-primary) 58%,transparent);display:block;font-size:.78rem;font-weight:520;line-height:1.45;padding:.28rem 0;text-decoration:none!important}.article-toc-link:any-link{color:var(--article-toc-link-color);text-decoration:none!important}.article-toc-link:hover{background:transparent;font-weight:760;text-decoration:none!important}.article-toc-depth-3{--article-toc-link-color: color-mix(in srgb, var(--uno-colors-primary) 50%, transparent)}.article-toc-depth-4{--article-toc-link-color: color-mix(in srgb, var(--uno-colors-primary) 42%, transparent)}.article-toc-depth-3 .article-toc-link{font-size:.74rem;padding-inline-start:.72rem}.article-toc-depth-4 .article-toc-link{font-size:.72rem;padding-inline-start:1.28rem}.article-comments-widget{border-top:1px solid color-mix(in srgb,var(--uno-colors-primary) 14%,transparent);padding-top:1rem}.article-comments-block{margin-block:4rem}.article-comments-preview{display:grid;gap:1rem;position:relative}.article-comment-hub-body{display:grid;gap:1rem}.article-comment-hub-toggle{align-items:center;background:color-mix(in srgb,var(--uno-colors-primary) 6%,transparent);border:1px solid color-mix(in srgb,var(--uno-colors-primary) 13%,transparent);border-radius:999px;color:color-mix(in srgb,var(--uno-colors-primary) 70%,transparent);cursor:pointer;display:inline-flex;font:inherit;font-size:.76rem;gap:.36rem;justify-self:start;line-height:1;padding:.46rem .68rem}.article-comment-hub[data-comments-collapsed=true]{height:auto}.article-comment-hub[data-comments-collapsed=true] .article-comment-hub-body{display:none}.article-comment-hub[data-comments-collapsed=true].article-comments-widget{border-color:transparent}.article-comments-preview-header{display:grid;gap:.35rem}.article-comments-preview-kicker,.article-comments-preview-meta,.article-comments-preview-form button{color:color-mix(in srgb,var(--uno-colors-primary) 48%,transparent);font-size:.74rem}.article-comments-preview-kicker{font-weight:760;letter-spacing:.08em;line-height:1;margin:0;text-transform:uppercase}.article-comments-preview-title{color:var(--uno-colors-primary);font-size:1rem;font-weight:800;line-height:1.2;margin:0}.article-comments-preview-note{color:color-mix(in srgb,var(--uno-colors-primary) 56%,transparent);font-size:.78rem;line-height:1.55;margin:0}.article-comment-auth-actions,.article-comment-auth-session{display:inline-flex;flex-wrap:wrap;gap:.35rem;margin-top:.45rem;vertical-align:baseline}.article-comment-auth-actions a:any-link,.article-comment-auth-logout:any-link{display:inline-flex;align-items:center;min-height:1.45rem;padding:0 .45rem;border:1px solid color-mix(in srgb,var(--uno-colors-primary) 12%,transparent);border-radius:999px;background:color-mix(in srgb,var(--uno-colors-primary) 4%,transparent);color:color-mix(in srgb,var(--uno-colors-primary) 78%,transparent);font-size:.7rem;font-weight:620;text-decoration:none}.article-comment-auth-actions a:hover,.article-comment-auth-logout:hover{background:color-mix(in srgb,var(--uno-colors-primary) 8%,transparent);color:var(--uno-colors-primary);text-decoration:none}.article-comment-auth-status{display:inline-flex;align-items:center;min-height:1.45rem;padding:0 .45rem;border:1px solid color-mix(in srgb,var(--uno-colors-primary) 12%,transparent);border-radius:999px;background:color-mix(in srgb,var(--uno-colors-primary) 4%,transparent);color:color-mix(in srgb,var(--uno-colors-primary) 78%,transparent);font-size:.7rem;font-weight:620}.article-comment-filters{display:flex;flex-wrap:wrap;gap:.42rem}.article-comment-filters button{background:transparent;border:1px solid color-mix(in srgb,var(--uno-colors-primary) 12%,transparent);color:color-mix(in srgb,var(--uno-colors-primary) 58%,transparent);cursor:pointer;font-size:.74rem;line-height:1;padding:.42rem .58rem}.article-comment-filters button[aria-pressed=true]{background:color-mix(in srgb,var(--uno-colors-primary) 7%,transparent);color:var(--uno-colors-primary)}.article-comments-preview-list{display:grid;gap:.85rem}.article-comments-preview-item{border-inline-start:2px solid color-mix(in srgb,var(--uno-colors-primary) 16%,transparent);display:grid;gap:.42rem;padding-inline-start:.75rem}.article-comments-preview-meta{align-items:center;display:flex;gap:.5rem;justify-content:space-between;line-height:1.25}.article-comments-preview-author{color:color-mix(in srgb,var(--uno-colors-primary) 72%,transparent);font-weight:760}.article-comments-preview-item p{color:color-mix(in srgb,var(--uno-colors-primary) 66%,transparent);font-size:.84rem;line-height:1.65;margin:0}.article-comment-entry-target[data-comment-target-id],.article-comments-preview-item p[data-comment-target-id]{cursor:pointer}.article-comment-entry-target[data-comment-target-id]:focus-visible,.article-comments-preview-item p[data-comment-target-id]:focus-visible{outline:2px solid color-mix(in srgb,var(--uno-colors-primary) 24%,transparent);outline-offset:.18rem}.article-comment-entry-target,.article-comment-target-summary,.article-comment-empty{color:color-mix(in srgb,var(--uno-colors-primary) 50%,transparent);font-size:.76rem;line-height:1.5;margin:0}.article-comments-preview-form{display:grid;gap:.65rem}.article-comments-preview-form input,.article-comments-preview-form textarea{background:color-mix(in srgb,var(--uno-colors-primary) 4%,transparent);border:1px solid color-mix(in srgb,var(--uno-colors-primary) 12%,transparent);color:color-mix(in srgb,var(--uno-colors-primary) 66%,transparent);font:inherit;line-height:1.5;padding:.62rem .75rem;width:100%}.article-comments-preview-form input:focus,.article-comments-preview-form textarea:focus{border-color:color-mix(in srgb,var(--uno-colors-primary) 28%,transparent);outline:0}.article-comments-preview-form textarea{min-height:5rem;resize:none}.article-comments-preview-form button{background:color-mix(in srgb,var(--uno-colors-primary) 7%,transparent);border:1px solid color-mix(in srgb,var(--uno-colors-primary) 12%,transparent);color:color-mix(in srgb,var(--uno-colors-primary) 68%,transparent);cursor:pointer;font:inherit;justify-self:start;padding:.42rem .7rem}.article-comments-preview-form button:disabled{cursor:not-allowed;opacity:.45}.article-comment-selection-toolbar{background:color-mix(in srgb,var(--uno-colors-background) 92%,var(--uno-colors-primary));border:1px solid color-mix(in srgb,var(--uno-colors-primary) 16%,transparent);border-radius:999px;box-shadow:0 14px 36px color-mix(in srgb,var(--uno-colors-primary) 18%,transparent);color:var(--uno-colors-primary);left:0;padding:.18rem;position:fixed;top:0;z-index:20}.article-comment-selection-toolbar button{background:transparent;border:0;color:inherit;cursor:pointer;display:inline-flex;gap:.34rem;align-items:center;font:inherit;font-size:.78rem;font-weight:760;line-height:1;padding:.44rem .56rem}.article-comment-highlight{background:color-mix(in srgb,#f7c948 34%,transparent);box-decoration-break:clone;border-radius:.28rem;color:inherit;cursor:pointer;padding:.02rem .08rem;scroll-margin-top:45vh;transition:background-color .18s ease,box-shadow .18s ease;-webkit-box-decoration-break:clone}.article-comment-highlight:focus-visible{outline:2px solid color-mix(in srgb,#f7c948 48%,transparent);outline-offset:.12rem}html[data-article-comments-collapsed=true] .article-comment-highlight{background:transparent;box-shadow:none}.article-comment-highlight-active{background:color-mix(in srgb,#f7c948 52%,transparent);box-shadow:0 0 0 .22rem color-mix(in srgb,#f7c948 18%,transparent)}.article-post-footer{margin:clamp(3rem,8vw,5rem) auto 0;max-width:var(--article-page-center-width);width:100%}.post-pagination{border-top:1px solid color-mix(in srgb,var(--uno-colors-primary) 14%,transparent);display:grid;gap:1rem;grid-template-columns:minmax(0,1fr);padding-top:1.25rem}.post-pagination-card{--post-pagination-card-bg: color-mix(in srgb, var(--uno-colors-primary) 3%, transparent);--post-pagination-card-border: color-mix(in srgb, var(--uno-colors-primary) 12%, transparent);background:color-mix(in srgb,var(--uno-colors-primary) 3%,transparent);border:1px solid color-mix(in srgb,var(--uno-colors-primary) 12%,transparent);color:inherit;display:grid;gap:.45rem;min-height:6.4rem;padding:1rem;text-decoration:none!important}.post-pagination-card:any-link{color:inherit;text-decoration:none!important}.post-pagination-card:hover,.post-pagination-card *{text-decoration:none!important}.post-pagination-card-next{text-align:right}.post-pagination-kicker{align-items:center;color:color-mix(in srgb,var(--uno-colors-primary) 50%,transparent);display:inline-flex;font-size:.75rem;font-weight:720;gap:.18rem;letter-spacing:.04em}.post-pagination-card-next .post-pagination-kicker{justify-content:flex-end}.post-pagination-title{align-self:end;color:var(--uno-colors-primary);font-size:.96rem;font-weight:760;line-height:1.35}.post-pagination-placeholder{display:none}@media (min-width: 640px){.post-pagination{grid-template-columns:repeat(2,minmax(0,1fr))}.post-pagination-placeholder{display:block}}.article-prose>*{max-width:100%}.article-prose :where(h2,h3,h4,h5,h6)[id]{scroll-margin-top:6rem}.article-prose .article-hero{margin:0 0 clamp(2rem,6vw,4rem)}.article-prose .article-hero img{aspect-ratio:16 / 9;border:1px solid var(--article-border);display:block;height:auto;object-fit:cover;width:100%}.article-prose .article-hero figcaption,.article-prose figcaption{color:var(--article-muted);font-size:.86rem;line-height:1.5;margin-top:.65rem;text-align:center}.article-prose .article-image-caption{color:var(--uno-colors-primary);font-size:.86rem;line-height:1.5;margin:.65rem 0 1.5rem;opacity:.68;text-align:center}.article-prose .article-image-note{color:var(--uno-colors-primary);font-size:.86rem;line-height:1.5;margin:.65rem 0 1.5rem;opacity:.68;text-align:left}.article-prose header{margin-bottom:clamp(2rem,5vw,3.5rem)}.article-prose .post-title{font-size:2.15rem;font-weight:900;letter-spacing:0;line-height:1.05}.article-prose .post-title a{background:transparent;color:inherit;padding:0;text-decoration:none}.article-prose .post-title a:hover{background:transparent;color:inherit;text-decoration:none}.article-prose h2{border-top:1px solid var(--article-border);font-size:1.55rem;font-weight:850;line-height:1.2;margin-top:3.2em;padding-top:1.1em}.article-prose h3{font-size:1.22rem;font-weight:780;line-height:1.28;margin-top:2.2em}.article-prose h4{font-size:1.06rem;font-weight:720;letter-spacing:0;margin-top:1.8em}.article-prose p,.article-prose li{color:var(--uno-colors-primary)}.article-prose p{margin:1.15em 0}.article-prose :where(ul,ol){padding-inline-start:1.35rem}.article-prose li+li{margin-top:.45em}.article-prose blockquote{border:0;border-inline-start:2px solid var(--article-border);color:var(--article-muted);font-style:normal;margin:2rem 0;padding:.15rem 0 .15rem 1rem}.article-prose blockquote p{color:inherit;margin:.65em 0}.article-prose :where(a):not(.not-prose){text-decoration-thickness:.08em;text-underline-offset:.18em}.article-prose table{border-collapse:collapse;display:table;font-size:.94rem;margin:2rem 0;width:100%}.article-prose :where(th,td){border:1px solid var(--article-border);padding:.68rem .75rem;vertical-align:top}.article-prose th{background:var(--article-surface-strong);font-weight:760}.article-prose :where(img,video){border:1px solid var(--article-border)}.article-prose hr{border-color:var(--article-border);margin:3rem 0}.article-prose.prose :not(pre)>code:not([class*=language-]){background:var(--article-code-bg);border:1px solid var(--article-border);border-radius:4px;color:var(--article-code-fg);font-size:.9em;padding:.08rem .28rem}.article-prose .code-container{background:var(--article-code-block-bg);border:1px solid var(--article-code-block-border);border-radius:8px;box-shadow:var(--article-code-block-shadow);display:grid;grid-template-rows:auto minmax(0,auto);margin:2rem 0;overflow:hidden;position:relative}.article-prose .code-toolbar{align-items:center;background:var(--article-code-block-header);border-bottom:1px solid var(--article-code-block-header-border);display:flex;gap:.75rem;justify-content:space-between;min-height:2.6rem;padding:0 .65rem 0 .9rem}.article-prose .code-language-label{color:color-mix(in srgb,var(--uno-colors-primary) 58%,transparent);font-size:.72rem;font-weight:700;letter-spacing:.06em;line-height:1}.article-prose .clipboard-copy{align-items:center;background:transparent;border:1px solid transparent;border-radius:6px;color:color-mix(in srgb,var(--uno-colors-primary) 62%,transparent);cursor:pointer;display:inline-flex;height:1.9rem;justify-content:center;line-height:1;padding:0;transition:background-color .15s ease,border-color .15s ease,color .15s ease;width:1.9rem}.article-prose .clipboard-copy:hover{background:color-mix(in srgb,var(--uno-colors-primary) 8%,transparent);border-color:color-mix(in srgb,var(--uno-colors-primary) 12%,transparent);color:color-mix(in srgb,var(--uno-colors-primary) 88%,transparent)}.article-prose .clipboard-copy .icon{color:currentColor;height:1rem;width:1rem}.article-prose pre{background:var(--article-code-block-bg);border:1px solid var(--article-code-block-border);border-radius:8px;box-shadow:var(--article-code-block-shadow);margin:2rem 0;overflow:hidden!important}.article-prose pre.astro-code,.article-prose pre.astro-code span{background-color:var(--shiki-light-bg, var(--article-code-block-bg));color:var(--shiki-light, var(--uno-colors-primary));font-style:var(--shiki-light-font-style, inherit);font-weight:var(--shiki-light-font-weight, inherit)}html.dark .article-prose pre.astro-code,html.dark .article-prose pre.astro-code span,:root[data-theme=dark] .article-prose pre.astro-code,:root[data-theme=dark] .article-prose pre.astro-code span{background-color:var(--shiki-dark-bg, var(--article-code-block-bg));color:var(--shiki-dark, var(--uno-colors-primary));font-style:var(--shiki-dark-font-style, inherit);font-weight:var(--shiki-dark-font-weight, inherit)}.article-prose .code-container pre{border:0;border-radius:0;box-shadow:none;margin:0;max-height:calc(10.2em + 2rem);overflow-x:hidden!important;overflow-y:auto!important;padding:1rem 1.1rem!important;scrollbar-width:none}.article-prose .code-container pre::-webkit-scrollbar{display:none}.article-prose pre code{font-size:.88rem;line-height:1.7}html.article-mermaid-lock,html.article-mermaid-lock body{overflow:hidden}.article-prose .article-mermaid{background:var(--article-surface);border:1px solid var(--article-border);height:28rem;margin:2.5rem 0;max-height:72vh;overflow:hidden;padding:0;position:relative}.article-prose .article-mermaid-scroll{box-sizing:border-box;height:100%;overflow:auto;padding:clamp(1rem,3vw,1.5rem);scrollbar-gutter:stable both-edges;scrollbar-width:none}.article-prose .article-mermaid-scroll::-webkit-scrollbar{display:none}.article-prose .article-mermaid-canvas{display:none;height:auto;margin:0;max-width:none}.article-prose .article-mermaid-fullscreen{align-items:center;background:var(--uno-colors-background);border:1px solid var(--article-border);color:var(--uno-colors-primary);cursor:pointer;display:inline-flex;font-size:1rem;height:2rem;justify-content:center;line-height:1;position:absolute;right:.75rem;top:.75rem;width:2rem;z-index:2}.article-prose .article-mermaid-fullscreen:hover{background:var(--article-surface-strong)}.article-prose .article-mermaid:fullscreen{background:var(--uno-colors-background);height:100vh;margin:0;max-height:none;overflow:hidden;padding:0;width:100vw}.article-prose .article-mermaid:fullscreen .article-mermaid-scroll{height:100%;padding:2rem}.article-prose .article-mermaid.article-mermaid-expanded{background:var(--uno-colors-background);height:100vh;inset:0;margin:0;max-height:none;overflow:hidden;padding:0;position:fixed;width:100vw;z-index:1000}.article-mermaid.article-mermaid-expanded{background:var(--uno-colors-background);color:var(--uno-colors-primary);height:100vh;inset:0;margin:0;max-height:none;overflow:hidden;padding:0;position:fixed;--article-border: color-mix(in srgb, var(--uno-colors-primary) 22%, transparent);--article-muted: color-mix(in srgb, var(--uno-colors-primary) 68%, transparent);width:100vw;z-index:1000}.article-mermaid.article-mermaid-expanded .article-mermaid-scroll{box-sizing:border-box;height:100%;overflow:auto;padding:2rem;scrollbar-gutter:stable both-edges;scrollbar-width:none}.article-mermaid.article-mermaid-expanded .article-mermaid-scroll::-webkit-scrollbar{display:none}.article-mermaid.article-mermaid-expanded .article-mermaid-canvas{display:block;height:auto;margin:0;max-width:none}.article-mermaid.article-mermaid-expanded[data-rendered=true] .article-mermaid-source,.article-mermaid.article-mermaid-expanded .article-mermaid-error{display:none}.article-mermaid.article-mermaid-expanded[data-mermaid-error=true] .article-mermaid-error{color:var(--article-muted);display:block}.article-mermaid.article-mermaid-expanded .article-mermaid-fullscreen{align-items:center;background:var(--uno-colors-background);border:1px solid var(--article-border);color:var(--uno-colors-primary);cursor:pointer;display:inline-flex;font-size:1rem;height:2rem;justify-content:center;line-height:1;position:absolute;right:1rem;top:1rem;width:2rem;z-index:2}.article-prose .article-mermaid:fullscreen .article-mermaid-fullscreen{right:1rem;top:1rem}.article-prose .article-mermaid.article-mermaid-expanded .article-mermaid-fullscreen{right:1rem;top:1rem}.article-prose .article-mermaid[data-rendered=true] .article-mermaid-canvas{display:block}.article-prose .article-mermaid[data-rendered=true] .article-mermaid-source{display:none}.article-prose .article-mermaid-error{color:var(--article-muted);display:none;font-size:.88rem;margin:1rem 0 0}.article-prose .article-mermaid[data-mermaid-error=true] .article-mermaid-error{display:block}.article-prose .article-references{border-top:1px solid var(--article-border);font-size:.92rem;margin-top:4rem;padding-top:1.4rem}.article-prose .article-references-title{border:0;font-size:1.1rem;font-weight:800;margin:0 0 1rem;padding:0}.article-prose .article-references :where(ol,li,p){color:var(--article-muted)}.article-prose .article-references :target{background:var(--article-surface-strong)}@media (max-width: 640px){.article-prose{line-height:1.76}.article-prose blockquote,.article-prose .article-mermaid{margin-inline:-.25rem}}@media (min-width: 640px){.article-prose{font-size:1.03rem}.article-prose .post-title{font-size:3.25rem}.article-prose h2{font-size:1.95rem}.article-prose h3{font-size:1.38rem}}@media (min-width: 960px){.article-prose{font-size:1.06rem}.article-prose .post-title{font-size:3.8rem}.article-prose h2{font-size:2.15rem}.article-prose h3{font-size:1.45rem}}:root{--uno-colors-primary: rgb(var(--un-preset-theme-colors-primary)/var(--un-preset-theme-colors-primary--alpha, 1));--uno-colors-background: rgb(var(--un-preset-theme-colors-background)/var(--un-preset-theme-colors-background--alpha, 1));--uno-fonts-ui: "Source Sans Pro","Roboto","Helvetica","Helvetica Neue","Source Han Sans SC","Source Han Sans TC","PingFang SC","PingFang HK","PingFang TC",sans-serif;--uno-colors-shadow: rgb(var(--un-preset-theme-colors-shadow)/var(--un-preset-theme-colors-shadow--alpha, 1))}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--un-bg-opacity:var(--un-preset-theme-colors-background--alpha, 1);background-color:rgb(var(--un-preset-theme-colors-background) / var(--un-bg-opacity));--un-text-opacity:var(--un-preset-theme-colors-primary--alpha, 1);color:rgb(var(--un-preset-theme-colors-primary) / var(--un-text-opacity));font-family:Source Sans Pro,Roboto,Helvetica,Helvetica Neue,Source Han Sans SC,Source Han Sans TC,PingFang SC,PingFang HK,PingFang TC,sans-serif;--un-text-shadow-opacity:var(--un-preset-theme-colors-shadow--alpha, 1);--un-text-shadow-color:rgb(var(--un-preset-theme-colors-shadow) / var(--un-text-shadow-opacity)) ;text-shadow:1px 1px 1px var(--uno-colors-shadow);background-size:7px 7px;background-image:linear-gradient(to right,var(--uno-colors-shadow) 1px,transparent 1px),linear-gradient(to bottom,var(--uno-colors-shadow) 1px,transparent 1px)}:root{color:var(--uno-colors-primary);background-color:var(--uno-colors-background);transition:color .45s ease,background-color .45s ease}body{background-color:transparent}.prose{color:inherit}.prose[data-origin=ai-assisted]{--post-origin-accent: color-mix(in oklab, currentColor 18%, transparent)}.post-role-label{display:inline-flex;align-items:center;margin-inline-start:.35rem;padding:.05rem .35rem;border:1px solid var(--post-origin-accent, color-mix(in oklab, currentColor 16%, transparent));border-radius:4px;color:inherit;font-size:.75rem;line-height:1.4}.post-tag-label{display:inline-flex;margin-inline-start:.35rem;color:color-mix(in oklab,currentColor 72%,transparent)}:where(a):not(.not-underline-hover){padding:1.5px;text-decoration-line:underline;text-decoration-thickness:.1em;text-underline-offset:2px;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1)}:where(a):not(.not-underline-hover):hover{--un-bg-opacity:var(--un-preset-theme-colors-primary--alpha, 1);background-color:rgb(var(--un-preset-theme-colors-primary) / var(--un-bg-opacity));--un-text-opacity:var(--un-preset-theme-colors-background--alpha, 1);color:rgb(var(--un-preset-theme-colors-background) / var(--un-text-opacity));-webkit-text-decoration-color:rgb(var(--un-preset-theme-colors-primary) / var(--un-line-opacity));--un-line-opacity:var(--un-preset-theme-colors-primary--alpha, 1);text-decoration-color:rgb(var(--un-preset-theme-colors-primary) / var(--un-line-opacity))}html.animation-prepared .transition-swup-header[data-astro-cid-e5lvscu2],html.animation-prepared .transition-swup-footer[data-astro-cid-e5lvscu2]{animation:fade-in-down 1s linear 1}@media (min-width: 1024px){html.animation-prepared .transition-swup-header[data-astro-cid-e5lvscu2],html.animation-prepared .transition-swup-footer[data-astro-cid-e5lvscu2]{animation-name:fade-in-left}}html.animation-prepared .transition-swup-main[data-astro-cid-e5lvscu2]{animation:fade-in-down 1s linear 1}@keyframes fade-in-down{0%{transform:translateY(-1rem);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes fade-in-left{0%{opacity:0;transform:translate(1rem)}to{opacity:1;transform:translate(0)}}html.is-animating .transition-swup-main[data-astro-cid-e5lvscu2]{opacity:0;transform:translateY(-1rem)}html.is-leaving .transition-swup-main[data-astro-cid-e5lvscu2]{opacity:0;transform:translateY(1rem)}.transition-swup-main[data-astro-cid-e5lvscu2]{transition-duration:.5s;transition-timing-function:linear;transform:translateY(0);opacity:1}
