.copy-btn-container{--color:var(--code-muted,#7b8797);--size:15px;align-items:center;border:1px solid transparent;border-radius:6px;color:var(--color);cursor:pointer;display:flex;fill:var(--color);font-size:var(--size);height:30px;justify-content:center;opacity:.58;position:relative;transition:color var(--t-btn-dur,.28s) var(--t-btn-ease,ease-out),opacity var(--t-btn-dur,.28s) var(--t-btn-ease,ease-out),background-color var(--t-btn-dur,.28s) var(--t-btn-ease,ease-out);user-select:none;width:30px}.dark .copy-btn-container{--color:var(--code-muted,#8795a8);opacity:.62}.freecat-post-copy-btn{flex:0 0 auto;margin-left:auto}.copy-btn-container:hover{--color:var(--code-text,#263241);background-color:transparent;opacity:1}.dark .copy-btn-container:hover{--color:var(--code-text,#e2e8f0);background-color:transparent}.copy-btn-container .clipboard{opacity:1;position:absolute;transform:translateY(0) scale(1);transition:opacity .18s ease-out,transform .18s ease-out,color var(--t-btn-dur,.28s) var(--t-btn-ease,ease-out)}.copy-btn-container .clipboard-check{fill:#2f9e6d;opacity:0;position:absolute;transform:translateY(.25rem) scale(.96);transition:opacity .18s ease-out,transform .18s ease-out}.copy-btn-container input:checked~.clipboard{opacity:0;transform:translateY(-.25rem) scale(.94)}.copy-btn-container input:checked~.clipboard-check{opacity:1;transform:translateY(0) scale(1)}.copy-btn-container input{cursor:pointer;height:0;opacity:0;position:absolute;width:0}@media (prefers-reduced-motion:reduce){.copy-btn-container,.copy-btn-container .clipboard,.copy-btn-container .clipboard-check{transition:none!important}}.custom-scrollbar::-webkit-scrollbar{width:4px}.custom-scrollbar{scrollbar-color:rgba(148,163,184,.42) transparent}.custom-scrollbar::-webkit-scrollbar-track{background:transparent}.custom-scrollbar::-webkit-scrollbar-thumb{background-color:rgba(148,163,184,.42);border-radius:8px}.custom-scrollbar::-webkit-scrollbar-thumb:hover{background-color:rgba(100,116,139,.5)}.dark .custom-scrollbar{scrollbar-color:rgba(100,116,139,.42) transparent}.dark .custom-scrollbar::-webkit-scrollbar-thumb{background-color:rgba(100,116,139,.42)}.dark .custom-scrollbar::-webkit-scrollbar-thumb:hover{background-color:rgba(148,163,184,.38)}.post-title{color:#1e293b!important;font-size:1.75rem!important;font-weight:600!important;line-height:1.36!important;margin-bottom:1.5rem!important;margin-top:1.25rem!important}@media (min-width:768px){.post-title{font-size:2.5rem!important;line-height:1.4!important;margin-bottom:3.5rem!important}}.dark .post-title{color:#e2e8f0!important}article{font-family:Freecat Figtree,Freecat Noto Sans SC,Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,PingFang SC,Hiragino Sans GB,Microsoft YaHei,微软雅黑,sans-serif}.prose br{content:""!important;display:block!important;margin:0!important}.prose .katex{font-size:1em}.prose .katex-display{color:#1e293b!important;margin:2rem 0!important;overflow-x:hidden;overflow-y:hidden;padding:.2rem 0}.dark .prose .katex-display{color:#94a3b8!important}.prose .katex-display::-webkit-scrollbar{height:6px}.prose .katex-display::-webkit-scrollbar-thumb{background-color:rgba(100,116,139,.35);border-radius:8px}.dark .prose .katex-display::-webkit-scrollbar-thumb{background-color:rgba(148,163,184,.25)}.prose .katex-display>.katex{max-width:100%;overflow-wrap:anywhere;white-space:normal}.prose>h1:first-child,.prose>h2:first-child,.prose>h3:first-child,.prose>h4:first-child,.prose>h5:first-child,.prose>h6:first-child{margin-top:0!important}.prose a{color:#6b7280!important;overflow-wrap:anywhere!important;text-decoration:underline!important;text-decoration-skip-ink:none!important;text-underline-offset:4px!important;transition:opacity .2s ease!important;white-space:normal!important;word-break:normal!important}.dark .prose a{color:#94a3b8!important}.prose a:hover{opacity:.8!important}.prose .relative.w-full.inline-block{display:inline-block;margin-bottom:2rem!important;margin-top:0!important;width:100%}.prose figure.post-image{border-radius:8px;margin-bottom:2rem!important;margin-top:0!important}#freecat-article-body.prose .markdown-image-block{margin-inline:auto!important}.prose figure.post-image .post-image-placeholder{aspect-ratio:3/4;object-fit:cover;object-position:center}.prose figure.post-image .post-image-loaded{aspect-ratio:auto;object-fit:contain}.prose figure.post-image .post-image-failed+.post-image-loader,.prose figure.post-image .post-image-loaded+.post-image-loader{display:none}.prose figure.external-embed{display:block;margin:0 0 2rem!important;position:relative;width:100%}.prose figure.external-embed .external-embed-placeholder{aspect-ratio:16/9;background:#f8fafc;border-radius:8px;display:none;object-fit:cover;object-position:center;width:100%}.prose figure.external-embed.external-embed-loading .external-embed-placeholder{display:block}.prose figure.external-embed:not(.external-embed-loading) .external-embed-loader{display:none}.prose figure.external-embed.external-embed-loading .external-embed-content{inset:0;opacity:0;overflow:hidden;pointer-events:none;position:absolute}.prose figure.external-embed iframe.external-embed-frame{aspect-ratio:16/9;background:#f8fafc;border:0;border-radius:8px;display:block;height:auto;width:100%}.prose figure.external-embed-twitter{max-width:550px}.prose figure.external-embed-link{background:#f8fafc;border:1px solid #d8e0eb;border-radius:8px;padding:1rem 1.1rem}.dark .prose figure.external-embed iframe.external-embed-frame,.dark .prose figure.external-embed-link{background:#121a28;border-color:#233044}.prose table :is(th,td):has(>figure.external-embed){height:auto!important;min-height:0!important;text-align:center!important;vertical-align:middle!important}.prose table :is(th,td)>figure.external-embed{margin:0 auto!important;max-width:100%}.prose table :is(th,td)>figure.external-embed-twitter{width:min(100%,550px)}.prose table :is(th,td)>figure.external-embed .twitter-tweet{margin-left:auto!important;margin-right:auto!important}.prose .relative.w-full.inline-block+h1:not(.article-heading),.prose .relative.w-full.inline-block+h2:not(.article-heading),.prose .relative.w-full.inline-block+h3:not(.article-heading),.prose .relative.w-full.inline-block+h4:not(.article-heading),.prose .relative.w-full.inline-block+h5:not(.article-heading),.prose .relative.w-full.inline-block+h6:not(.article-heading),.prose figure.post-image+h1:not(.article-heading),.prose figure.post-image+h2:not(.article-heading),.prose figure.post-image+h3:not(.article-heading),.prose figure.post-image+h4:not(.article-heading),.prose figure.post-image+h5:not(.article-heading),.prose figure.post-image+h6:not(.article-heading),.prose img{margin-top:0!important}.prose img{border-radius:8px;height:auto;width:100%!important}.prose .image-caption{line-height:1.6!important;margin-top:.35rem!important}.prose font{font-family:inherit}.prose center{display:block!important;margin-bottom:2rem!important;width:100%!important}.prose center table{background-color:transparent!important;border:none!important;display:table!important;margin-left:auto!important;margin-right:auto!important;max-width:100%!important;table-layout:fixed!important;width:100%!important}.prose center table td{border:none!important;padding:.5rem 1rem!important;text-align:center!important}.prose :not(pre)>code{background-color:#f3f6fa!important;border:1px solid #dbe4ee!important;border-radius:5px!important;color:#334155!important;font-family:inherit!important;font-size:.9em!important;font-weight:400!important;padding:.08em .32em!important}.dark .prose :not(pre)>code{background-color:#151d2b!important;border-color:#2a3648!important;color:#d1dae6!important}.prose pre{background-color:transparent!important;border-radius:0!important;color:#1e293b!important;font-family:inherit!important;font-size:.875rem!important;line-height:1.7!important;margin:0!important;overflow-wrap:anywhere!important;overflow-x:hidden!important;padding:0!important;white-space:pre-wrap!important;word-break:break-word!important}.dark .prose pre{color:#b6c2cf!important}.prose pre code{background-color:transparent!important;border:none!important;color:#1e293b!important;font-family:inherit!important;font-size:inherit!important;overflow-wrap:anywhere!important;padding:0!important;white-space:pre-wrap!important;word-break:break-word!important}.dark .prose pre code{color:#cbd5e1!important}.prose .callout{--callout-accent:#64748b;--callout-bg:#f8fafc;--callout-border:#e2e8f0;--callout-title:#0f172a;--callout-text:#1e293b;background-color:var(--callout-bg)!important;border:1px solid var(--callout-border)!important;border-left:3px solid var(--callout-accent)!important;border-radius:8px!important;box-shadow:0 1px 0 rgba(15,23,42,.04)!important;color:var(--callout-text)!important;font-size:calc(var(--article-body-size)*.85)!important;margin:1.618em 0!important;padding:1em 1.1em!important}.dark .prose .callout{--callout-bg:#121a28;--callout-border:#233044;--callout-title:#b6c2cf;--callout-text:#94a3b8;box-shadow:0 1px 0 rgba(15,23,42,.2)!important}.prose .callout-title{align-items:center!important;color:var(--callout-title)!important;display:flex!important;font-size:.95em!important;font-weight:600!important;gap:.5rem!important;letter-spacing:.02em!important;margin-bottom:.6em!important}.prose .callout-icon{align-items:center!important;color:var(--callout-accent)!important;display:inline-flex!important;font-size:1.05em!important;justify-content:center!important}.prose .callout.callout-note{--callout-accent:#3b82f6}.dark .prose .callout.callout-note{--callout-accent:#60a5fa}.prose .callout.callout-tip{--callout-accent:#10b981}.dark .prose .callout.callout-tip{--callout-accent:#34d399}.prose .callout.callout-important{--callout-accent:#8b5cf6}.dark .prose .callout.callout-important{--callout-accent:#a78bfa}.prose .callout.callout-warning{--callout-accent:#f59e0b}.dark .prose .callout.callout-warning{--callout-accent:#fbbf24}.prose .callout.callout-caution{--callout-accent:#ef4444}.dark .prose .callout.callout-caution{--callout-accent:#f87171}.prose .footnotes{color:#475569!important;font-size:.95em!important;margin-top:2em!important}.dark .prose .footnotes{color:#94a3b8!important}.prose .footnotes ol{padding-left:1.4em!important}.prose .footnote-ref a{border-bottom:1px solid #cbd5e1!important;color:inherit!important;text-decoration:none!important}.prose .footnote-ref{scroll-margin-top:6rem!important}.dark .prose .footnote-ref a{border-bottom-color:#475569!important}.prose .footnote-backref{color:inherit!important;margin-left:.4em!important;opacity:.75!important;text-decoration:none!important}.prose .footnote-backrefs{margin-left:.25em!important;white-space:nowrap!important}.prose .footnote-backref:hover{opacity:1!important}.prose .callout-content p{margin-bottom:.9em!important}.prose .callout-content>:last-child{margin-bottom:0!important}.prose input[type=checkbox]{accent-color:#6b7280!important;margin-right:.5em!important}.prose table{background-color:#f0f1f4!important;border-collapse:separate!important;border-spacing:1.2em 0!important;display:table!important;font-size:.88em!important;line-height:1.6!important;margin:1.618em 0!important;max-width:100%!important;overflow-x:hidden!important;table-layout:fixed!important;width:100%!important}.dark .prose table{background-color:#151c2a!important}.dark .prose thead,.prose thead{background-color:transparent!important}.prose td,.prose th{border:0!important;border-bottom:1px solid #d8dee8!important;color:#1e293b!important;overflow-wrap:anywhere;padding:.75em 0!important;text-align:left;width:auto!important;word-break:normal}.prose table a{overflow-wrap:anywhere!important;white-space:normal!important}.dark .prose td,.dark .prose th{border-bottom-color:#475569!important;color:#94a3b8!important}.prose th{border-bottom:2px solid #c6cfdb!important;color:#64748b!important;font-weight:600!important}.dark .prose th{border-bottom-color:#64748b!important;color:#c3d0dc!important}.prose tbody tr:last-child td,.prose tbody tr:last-child th{border-bottom:0!important}.prose table:has(tbody tr:only-child) thead th,.prose table:not(:has(tbody tr)) thead th{border-bottom:0!important}.prose td[align=left],.prose th[align=left]{text-align:left!important}.prose td[align=center],.prose th[align=center]{text-align:center!important}.prose td[align=right],.prose th[align=right]{text-align:right!important}.dark .prose tbody tr:nth-child(2n),.prose tbody tr:nth-child(2n){background-color:transparent!important}.prose del,.prose s{color:#94a3b8!important;text-decoration:line-through!important}.prose em{font-style:italic!important}.dark .prose td[bgcolor]{background-color:#151c2a!important;border:1px solid #1e293b;border-radius:8px;color:#b6c2cf!important}.dark .prose font[color],.dark .prose font[face],.dark .prose font[size]{color:inherit!important}.prose details{background-color:#f8fafc;border:1px solid #cbd5e1;border-radius:8px;margin:1em 0;padding:.5rem 1rem}.prose summary{color:#1e293b!important;cursor:pointer;font-weight:600}.dark .prose details{background-color:#1e293b;border-color:#475569}.dark .prose summary{color:#94a3b8!important}.prose mark{background-color:#fef08a!important;border-radius:8px!important;color:#1e293b!important;padding:.1em .3em!important}.dark .prose mark{background-color:rgba(245,158,11,.18)!important;color:#b6c2cf!important}.prose sup{vertical-align:super!important}.prose sub,.prose sup{font-size:.75em!important}.prose sub{vertical-align:sub!important}.prose dl{margin:1.618em 0!important}.prose dt{font-weight:600!important;margin-bottom:.25em!important}.prose dd{color:#64748b!important;margin-bottom:1em!important;margin-left:1.5em!important}.dark .prose dd{color:#94a3b8!important}.prose{--article-body-size:1.0625rem;--article-line-height:1.82;--article-rhythm:calc(var(--article-body-size)*var(--article-line-height));--article-heading-rule:#d8e0eb;--article-quote-border:#cbd5e1;--article-quote-text:#334155;--article-space-tight:0.42rem;--article-space-group:0.42rem;--article-space-flow:1.2rem;--article-space-list-attach:0.32rem;--article-space-list-item:0.62rem;--article-list-indent:1.15rem;--article-space-heading-to-content:1.25rem;--article-space-heading-parent-child:1.99rem;--article-space-heading-peer-1:5.59rem;--article-space-heading-peer-2:4.11rem;--article-space-heading-peer-3:3.45rem;--article-space-heading-peer-4:2.8rem;--article-space-heading-peer-5:2.5rem;--article-space-heading-peer-6:2.28rem;--article-space-divider:80px;--article-heading-h1:calc(var(--article-body-size)*1.5);--article-heading-h2:calc(var(--article-body-size)*1.5);--article-heading-h3:calc(var(--article-body-size)*1.5);--article-heading-h4:calc(var(--article-body-size)*1.5);--article-heading-h5:calc(var(--article-body-size)*1.5);--article-heading-h6:calc(var(--article-body-size)*1.5);color:#1e293b!important;font-size:var(--article-body-size)!important;letter-spacing:0!important;line-height:var(--article-line-height)!important;overflow-wrap:break-word!important;word-break:break-word!important}@media (min-width:768px){.prose{--article-body-size:1.1875rem;--article-line-height:1.9}}.dark .prose{--article-heading-rule:#334155;--article-quote-border:#475569;--article-quote-text:#cbd5e1;color:#aebacc!important}.prose p{color:#1e293b!important;hanging-punctuation:allow-end last;-webkit-hyphens:none!important;-ms-hyphens:none!important;hyphens:none!important;line-break:strict;line-height:var(--article-line-height)!important;margin:0 0 calc(var(--article-rhythm)*.8)!important;overflow-wrap:break-word;text-align:left}.prose p:has(+p){margin-bottom:calc(var(--article-rhythm)*.5)!important}.dark .prose p{color:#aebacc!important}.prose p.text-justify-cjk{text-align:justify!important;text-align-last:left!important;text-justify:inter-ideograph}.prose p.text-align-left{text-align:left!important}.prose .article-heading{border-top:0!important;color:#1e293b!important;font-weight:600!important;letter-spacing:0!important;padding-top:0;position:relative;scroll-margin-top:6rem}.prose .article-heading-rank-2,.prose:not(:has(.article-heading-rank-2)) .article-heading-rank-1{padding-bottom:calc(.72rem + 2px)!important}.prose .article-heading-rank-2:after,.prose:not(:has(.article-heading-rank-2)) .article-heading-rank-1:after{background:var(--article-heading-rule);bottom:0;content:"";display:block;height:2px;left:0;position:absolute;right:0}.dark .prose .article-heading{color:#e2e8f0!important}.prose .article-heading a,.prose .article-heading a:hover{color:inherit!important;text-decoration:none!important}.prose .article-heading a:before{background-color:currentColor;content:"";display:inline-block;height:.82em;margin-right:.3em;-webkit-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M18.364 15.536 16.95 14.12l1.414-1.414a5 5 0 0 0-7.071-7.071L9.878 7.05 8.464 5.636l1.414-1.414a7 7 0 0 1 9.9 9.9zm-2.829 2.828-1.414 1.414a7 7 0 0 1-9.9-9.9l1.415-1.414L7.05 9.88l-1.414 1.414a5 5 0 0 0 7.07 7.071l1.415-1.414zm-.707-10.607 1.415 1.415-7.072 7.07-1.414-1.414z'/%3E%3C/svg%3E") center /contain no-repeat;mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M18.364 15.536 16.95 14.12l1.414-1.414a5 5 0 0 0-7.071-7.071L9.878 7.05 8.464 5.636l1.414-1.414a7 7 0 0 1 9.9 9.9zm-2.829 2.828-1.414 1.414a7 7 0 0 1-9.9-9.9l1.415-1.414L7.05 9.88l-1.414 1.414a5 5 0 0 0 7.07 7.071l1.415-1.414zm-.707-10.607 1.415 1.415-7.072 7.07-1.414-1.414z'/%3E%3C/svg%3E") center /contain no-repeat;vertical-align:-.1em;width:.82em}.prose .article-heading-depth-1{font-size:var(--article-heading-h1)!important;line-height:1.16!important}.prose .article-heading-depth-2{font-size:var(--article-heading-h2)!important;line-height:1.22!important}.prose .article-heading-depth-3{font-size:var(--article-heading-h3)!important;line-height:1.3!important}.prose .article-heading-depth-4{font-size:var(--article-heading-h4)!important;line-height:1.34!important}.prose .article-heading-depth-5{font-size:var(--article-heading-h5)!important;line-height:1.38!important}.prose .article-heading-depth-6{font-size:var(--article-heading-h6)!important;line-height:1.42!important}.prose>.article-heading:first-child{border-top:0;padding-top:0}.prose .article-heading-rank-1{font-weight:700!important}.prose blockquote p{color:var(--article-quote-text)!important;margin-bottom:calc(var(--article-rhythm)*.38)!important}.prose blockquote>:last-child{margin-bottom:0!important}.prose b,.prose strong{color:#1e293b!important;font-weight:600!important}.dark .prose b,.dark .prose strong{color:#e2e8f0!important}.prose :not(pre)>code{font-size:.86em!important}.prose .markdown-gap{--md-gap-lines:0;--md-gap-size:0lh;border:0!important;display:block!important;height:var(--md-gap-size)!important;margin:0!important;overflow:hidden!important;padding:0!important;width:100%!important}.prose figure.post-image{display:block;width:100%}.prose .diagram-block{display:flex;justify-content:center;overflow-x:auto;width:100%}.prose .diagram-block .echarts-canvas,.prose .diagram-block svg,.prose .diagram-block>.mermaid{margin-inline:auto!important}.prose .diagram-block svg{display:block}.prose ol,.prose ul{padding-left:1.7em!important}.prose p+ol,.prose p+ul{margin-top:0!important}.prose ul{list-style-type:disc!important}.prose ol{list-style-type:decimal!important}.prose ol ol,.prose ol ul,.prose ul ol,.prose ul ul{padding-left:1.15em!important}.prose ul ul{list-style-type:circle!important}.prose ul ul ul{list-style-type:square!important}.prose li{color:#1e293b!important;line-height:1.72!important;margin:0 0 var(--article-space-list-item)!important}.prose li:last-child{margin-bottom:0!important}.prose li>p{line-height:1.72!important;margin:0!important}.prose li li{margin-bottom:var(--article-space-tight)!important}.prose li::marker{color:#94a3b8!important}.dark .prose li{color:#c5d0df!important}.dark .prose li::marker{color:#64748b!important}.prose li>strong:first-child{color:#1e293b!important;font-weight:600!important}.dark .prose li>strong:first-child{color:#e2e8f0!important}.prose>hr{background:#d8e0eb!important;border:0!important;height:3px!important;margin:0!important}.dark .prose>hr{background:#475569!important}.prose .article-heading,.prose .article-heading-depth-1,.prose .article-heading-depth-2,.prose .article-heading-depth-3,.prose .article-heading-depth-4,.prose .article-heading-depth-5,.prose .article-heading-depth-6,.prose .audio-player,.prose .callout,.prose .code-block-container,.prose .diagram-block,.prose .footnotes,.prose .katex-display,.prose .media-player-container,.prose .mermaid,.prose .relative.w-full.inline-block,.prose blockquote,.prose center,.prose details,.prose dl,.prose figure.external-embed,.prose figure.post-image,.prose hr,.prose iframe,.prose ol,.prose p,.prose picture,.prose pre,.prose table,.prose ul,.prose video{margin:0!important}.prose :is(p,ul,ol,dl,blockquote,table,.code-block-container,.relative.w-full.inline-block,figure.post-image,figure.external-embed,details,.callout,.diagram-block,.media-player-container,.katex-display,center,.mermaid,pre,.footnotes,iframe,video,picture,.audio-player)+:is(p,ul,ol,dl,blockquote,table,.code-block-container,.relative.w-full.inline-block,figure.post-image,figure.external-embed,details,.callout,.diagram-block,.media-player-container,.katex-display,center,.mermaid,pre,.footnotes,iframe,video,picture,.audio-player){margin-block-start:var(--article-space-flow)!important}#freecat-article-body.prose>.markdown-attached-block:not(.article-heading){margin-block-start:var(--article-space-group)!important}#freecat-article-body.prose>.markdown-list-lead+.markdown-attached-list{margin-block-start:var(--article-space-list-attach)!important;margin-inline-start:var(--article-list-indent)!important;padding:0 0 .18rem 1.5rem!important}.prose .markdown-gap+:is(p,ul,ol,dl,blockquote,table,.code-block-container,.relative.w-full.inline-block,figure.post-image,figure.external-embed,details,.callout,.diagram-block,.media-player-container,.katex-display,center,.mermaid,pre,.footnotes,iframe,video,picture,.audio-player){margin-block-start:var(--article-space-flow)!important}@media (max-width:640px){#freecat-article-body.prose>.markdown-list-lead+.markdown-attached-list{margin-inline-start:.45rem!important;padding-left:1.2rem!important}}.prose blockquote{background:transparent!important;border-left:2px solid var(--article-quote-border)!important;color:var(--article-quote-text)!important;font-style:normal!important;padding:0 0 0 1em!important}.dark .prose blockquote{border-left-color:var(--article-quote-border)!important}.dark .prose blockquote,.prose blockquote blockquote{background:transparent!important;color:var(--article-quote-text)!important}.prose blockquote blockquote{border-left-color:var(--article-quote-border)!important;border-left-width:2px!important;margin-block-start:calc(var(--article-rhythm)*.32)!important;margin-left:.8em!important;padding:0 0 0 1em!important}.dark .prose blockquote blockquote,.prose blockquote blockquote blockquote{background:transparent!important;border-left-color:var(--article-quote-border)!important;color:var(--article-quote-text)!important}.prose blockquote blockquote blockquote{margin-left:.8em!important}.dark .prose blockquote blockquote blockquote{background:transparent!important;border-left-color:var(--article-quote-border)!important;color:var(--article-quote-text)!important}#freecat-article-body.prose>.article-heading-depth-1+.markdown-gap+:where(:not(.markdown-gap):not(.article-heading):not(hr):not(script):not(style):not(template)),#freecat-article-body.prose>.article-heading-depth-1+:where(:not(.markdown-gap):not(.article-heading):not(hr):not(script):not(style):not(template)),#freecat-article-body.prose>.article-heading-depth-2+.markdown-gap+:where(:not(.markdown-gap):not(.article-heading):not(hr):not(script):not(style):not(template)),#freecat-article-body.prose>.article-heading-depth-2+:where(:not(.markdown-gap):not(.article-heading):not(hr):not(script):not(style):not(template)),#freecat-article-body.prose>.article-heading-depth-3+.markdown-gap+:where(:not(.markdown-gap):not(.article-heading):not(hr):not(script):not(style):not(template)),#freecat-article-body.prose>.article-heading-depth-3+:where(:not(.markdown-gap):not(.article-heading):not(hr):not(script):not(style):not(template)),#freecat-article-body.prose>.article-heading-depth-4+.markdown-gap+:where(:not(.markdown-gap):not(.article-heading):not(hr):not(script):not(style):not(template)),#freecat-article-body.prose>.article-heading-depth-4+:where(:not(.markdown-gap):not(.article-heading):not(hr):not(script):not(style):not(template)){margin-block-start:var(--article-space-heading-to-content)!important}#freecat-article-body.prose>:where(:not(.markdown-gap):not(.article-heading):not(hr):not(script):not(style):not(template))+.article-heading-depth-1,#freecat-article-body.prose>:where(:not(.markdown-gap):not(.article-heading):not(hr):not(script):not(style):not(template))+.markdown-gap+.article-heading-depth-1,.prose .article-heading-depth-1+.article-heading-depth-1,.prose .article-heading-depth-1+.markdown-gap+.article-heading-depth-1{margin-block-start:var(--article-space-heading-peer-1)!important}#freecat-article-body.prose>:where(:not(.markdown-gap):not(.article-heading):not(hr):not(script):not(style):not(template))+.article-heading-depth-2,#freecat-article-body.prose>:where(:not(.markdown-gap):not(.article-heading):not(hr):not(script):not(style):not(template))+.markdown-gap+.article-heading-depth-2,.prose .article-heading-depth-2+.article-heading-depth-2,.prose .article-heading-depth-2+.markdown-gap+.article-heading-depth-2{margin-block-start:var(--article-space-heading-peer-2)!important}#freecat-article-body.prose>:where(:not(.markdown-gap):not(.article-heading):not(hr):not(script):not(style):not(template))+.article-heading-depth-3,#freecat-article-body.prose>:where(:not(.markdown-gap):not(.article-heading):not(hr):not(script):not(style):not(template))+.markdown-gap+.article-heading-depth-3,.prose .article-heading-depth-3+.article-heading-depth-3,.prose .article-heading-depth-3+.markdown-gap+.article-heading-depth-3{margin-block-start:var(--article-space-heading-peer-3)!important}#freecat-article-body.prose>:where(:not(.markdown-gap):not(.article-heading):not(hr):not(script):not(style):not(template))+.article-heading-depth-4,#freecat-article-body.prose>:where(:not(.markdown-gap):not(.article-heading):not(hr):not(script):not(style):not(template))+.markdown-gap+.article-heading-depth-4,.prose .article-heading-depth-4+.article-heading-depth-4,.prose .article-heading-depth-4+.markdown-gap+.article-heading-depth-4{margin-block-start:var(--article-space-heading-peer-4)!important}.prose .article-heading+.article-heading,.prose .article-heading+.markdown-gap+.article-heading,.prose .article-heading-depth-1+.article-heading-depth-2,.prose .article-heading-depth-1+.article-heading-depth-3,.prose .article-heading-depth-1+.article-heading-depth-4,.prose .article-heading-depth-1+.markdown-gap+.article-heading-depth-2,.prose .article-heading-depth-1+.markdown-gap+.article-heading-depth-3,.prose .article-heading-depth-1+.markdown-gap+.article-heading-depth-4,.prose .article-heading-depth-2+.article-heading-depth-3,.prose .article-heading-depth-2+.article-heading-depth-4,.prose .article-heading-depth-2+.markdown-gap+.article-heading-depth-3,.prose .article-heading-depth-2+.markdown-gap+.article-heading-depth-4,.prose .article-heading-depth-3+.article-heading-depth-4,.prose .article-heading-depth-3+.markdown-gap+.article-heading-depth-4{margin-block-start:var(--article-space-heading-parent-child)!important}.prose .article-heading-depth-1+.article-heading-depth-1,.prose .article-heading-depth-1+.markdown-gap+.article-heading-depth-1{margin-block-start:var(--article-space-heading-peer-1)!important}.prose :is(.article-heading-depth-2,.article-heading-depth-3,.article-heading-depth-4,.article-heading-depth-5,.article-heading-depth-6)+.article-heading-depth-1,.prose :is(.article-heading-depth-2,.article-heading-depth-3,.article-heading-depth-4,.article-heading-depth-5,.article-heading-depth-6)+.markdown-gap+.article-heading-depth-1{margin-block-start:var(--article-space-heading-peer-1)!important}.prose .article-heading-depth-2+.article-heading-depth-2,.prose .article-heading-depth-2+.markdown-gap+.article-heading-depth-2{margin-block-start:var(--article-space-heading-peer-2)!important}.prose :is(.article-heading-depth-3,.article-heading-depth-4,.article-heading-depth-5,.article-heading-depth-6)+.article-heading-depth-2,.prose :is(.article-heading-depth-3,.article-heading-depth-4,.article-heading-depth-5,.article-heading-depth-6)+.markdown-gap+.article-heading-depth-2{margin-block-start:var(--article-space-heading-peer-2)!important}.prose .article-heading-depth-3+.article-heading-depth-3,.prose .article-heading-depth-3+.markdown-gap+.article-heading-depth-3{margin-block-start:var(--article-space-heading-peer-3)!important}.prose :is(.article-heading-depth-4,.article-heading-depth-5,.article-heading-depth-6)+.article-heading-depth-3,.prose :is(.article-heading-depth-4,.article-heading-depth-5,.article-heading-depth-6)+.markdown-gap+.article-heading-depth-3{margin-block-start:var(--article-space-heading-peer-3)!important}.prose .article-heading-depth-4+.article-heading-depth-4,.prose .article-heading-depth-4+.markdown-gap+.article-heading-depth-4{margin-block-start:var(--article-space-heading-peer-4)!important}.prose :is(.article-heading-depth-5,.article-heading-depth-6)+.article-heading-depth-4,.prose :is(.article-heading-depth-5,.article-heading-depth-6)+.markdown-gap+.article-heading-depth-4{margin-block-start:var(--article-space-heading-peer-4)!important}.prose .article-heading-depth-6+.article-heading-depth-5,.prose .article-heading-depth-6+.markdown-gap+.article-heading-depth-5{margin-block-start:var(--article-space-heading-peer-5)!important}#freecat-article-body.prose>.article-heading-depth-5+.markdown-gap+:where(:not(.markdown-gap):not(.article-heading):not(hr):not(script):not(style):not(template)),#freecat-article-body.prose>.article-heading-depth-5+:where(:not(.markdown-gap):not(.article-heading):not(hr):not(script):not(style):not(template)),#freecat-article-body.prose>.article-heading-depth-6+.markdown-gap+:where(:not(.markdown-gap):not(.article-heading):not(hr):not(script):not(style):not(template)),#freecat-article-body.prose>.article-heading-depth-6+:where(:not(.markdown-gap):not(.article-heading):not(hr):not(script):not(style):not(template)){margin-block-start:var(--article-space-heading-to-content)!important}#freecat-article-body.prose>:where(:not(.markdown-gap):not(.article-heading):not(hr):not(script):not(style):not(template))+.article-heading-depth-5,#freecat-article-body.prose>:where(:not(.markdown-gap):not(.article-heading):not(hr):not(script):not(style):not(template))+.markdown-gap+.article-heading-depth-5,.prose .article-heading-depth-5+.article-heading-depth-5,.prose .article-heading-depth-5+.markdown-gap+.article-heading-depth-5{margin-block-start:var(--article-space-heading-peer-5)!important}#freecat-article-body.prose>:where(:not(.markdown-gap):not(.article-heading):not(hr):not(script):not(style):not(template))+.article-heading-depth-6,#freecat-article-body.prose>:where(:not(.markdown-gap):not(.article-heading):not(hr):not(script):not(style):not(template))+.markdown-gap+.article-heading-depth-6,.prose .article-heading-depth-6+.article-heading-depth-6,.prose .article-heading-depth-6+.markdown-gap+.article-heading-depth-6{margin-block-start:var(--article-space-heading-peer-6)!important}#freecat-article-body.prose>.markdown-gap+hr,#freecat-article-body.prose>:not(.markdown-gap)+hr,#freecat-article-body.prose>hr+.markdown-gap+:not(.markdown-gap),#freecat-article-body.prose>hr+:not(.markdown-gap){margin-block-start:var(--article-space-divider)!important}.diagram-block{--diagram-bg:transparent;--diagram-surface:#f8fafc;--diagram-text:#172033;--diagram-muted:#475569;--diagram-border:#cbd5e1;--diagram-line:#64748b;align-items:center!important;background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important;box-sizing:border-box;display:flex!important;justify-content:center!important;margin:2rem auto!important;max-width:min(100%,calc(100vw - 2rem))!important;min-height:0;overflow-x:auto!important;overflow-y:hidden!important;padding:0!important;scrollbar-color:color-mix(in srgb,var(--diagram-line) 45%,transparent) transparent;scrollbar-width:thin;width:100%!important}.dark .diagram-block{--diagram-bg:transparent;--diagram-surface:#172033;--diagram-text:#e7edf6;--diagram-muted:#a8b5c6;--diagram-border:#475569;--diagram-line:#94a3b8;background:transparent!important;border-color:transparent!important}.mermaid-block[data-mermaid-kind=architecture],.mermaid-block[data-mermaid-kind=block],.mermaid-block[data-mermaid-kind=class],.mermaid-block[data-mermaid-kind=diagram],.mermaid-block[data-mermaid-kind=er],.mermaid-block[data-mermaid-kind=flowchart],.mermaid-block[data-mermaid-kind=mindmap],.mermaid-block[data-mermaid-kind=state],.mermaid-block[data-mermaid-kind=timeline]{max-width:100%!important;width:100%!important}.mermaid-block[data-mermaid-kind=gantt],.mermaid-block[data-mermaid-kind=git],.mermaid-block[data-mermaid-kind=journey],.mermaid-block[data-mermaid-kind=packet],.mermaid-block[data-mermaid-kind=quadrant],.mermaid-block[data-mermaid-kind=sequence],.mermaid-block[data-mermaid-kind=xychart]{width:100%!important}.mermaid-block .mermaid{background:transparent!important;border:0!important;margin:0 auto!important;min-width:0;overflow:visible!important;padding:0!important;width:100%}.diagram-block svg{display:block;flex:0 0 auto;height:auto!important;max-width:100%!important}.diagram-block foreignObject{overflow:visible}.diagram-block .edgeLabel{white-space:nowrap}.mermaid-block g.cluster rect{fill:color-mix(in srgb,var(--diagram-surface) 46%,transparent)!important;rx:6px;ry:6px;stroke:color-mix(in srgb,var(--diagram-line) 30%,transparent)!important;stroke-width:.5px!important}.mermaid-block .cluster-label,.mermaid-block .cluster-label div,.mermaid-block .cluster-label p,.mermaid-block .cluster-label span{color:#0f172a!important;font-size:13px!important;font-weight:400!important}.mermaid-block .cluster-label div{background:var(--diagram-bg)!important;border-radius:8px!important;display:inline-block!important;line-height:1.35!important;padding:1px 7px!important;width:auto!important}.mermaid-block .freecat-mermaid-cluster-label{pointer-events:none}.mermaid-block .freecat-mermaid-cluster-label div{background:color-mix(in srgb,var(--diagram-bg) 92%,var(--diagram-surface))!important;border:.5px solid color-mix(in srgb,var(--diagram-line) 20%,transparent)!important;padding:2px 8px!important}.mermaid-block .node circle,.mermaid-block .node ellipse,.mermaid-block .node polygon,.mermaid-block .node rect,.mermaid-block rect.actor,.mermaid-block rect.labelBox{fill:color-mix(in srgb,var(--diagram-surface) 56%,transparent)!important;stroke:var(--diagram-line)!important;stroke-width:.55px!important}.mermaid-block .actor-line,.mermaid-block .flowchart-link,.mermaid-block .loopLine,.mermaid-block .messageLine0,.mermaid-block .messageLine1,.mermaid-block .relation,.mermaid-block .relationshipLine,.mermaid-block .state-end,.mermaid-block .state-start{stroke:var(--diagram-line)!important;stroke-width:.75px!important}.mermaid-block .arrowheadPath,.mermaid-block marker path{fill:var(--diagram-line)!important;stroke:var(--diagram-line)!important}.diagram-block .actor,.diagram-block .labelBox{rx:4px;ry:4px}.diagram-block .actor>text,.diagram-block .labelText,.diagram-block .loopText,.diagram-block .messageText,.diagram-block .noteText{font-weight:400!important}.mermaid-block .actor tspan,.mermaid-block .actor>text,.mermaid-block .labelText,.mermaid-block .labelText tspan,.mermaid-block .loopText,.mermaid-block .loopText tspan,.mermaid-block .messageText,.mermaid-block .messageText tspan,.mermaid-block .noteText,.mermaid-block .noteText tspan{fill:#0f172a!important;stroke:none!important}.mermaid-block .edgeLabel,.mermaid-block .edgeLabel p,.mermaid-block .edgeLabel span{color:#0f172a!important}.mermaid-block .freecat-mermaid-sequence-number-bg{fill:#334155!important;stroke:none!important;stroke-width:0!important}.mermaid-block .freecat-mermaid-sequence-number{fill:#fff!important;font-size:10px!important;font-weight:500!important;stroke:none!important;stroke-width:0!important}.mermaid-block .labelBkg{background-color:#f8fafc!important;border:.7px solid #9aa8bc!important;border-radius:8px;color:#0f172a!important}.mermaid-block .labelBkg *{background:transparent!important;border:0!important;box-shadow:none!important;margin:0!important;padding:0!important}.mermaid-block rect.note{fill:#fff7c2!important;stroke:#d8ca70!important}.mermaid-block :is(.classText,.state-title,.entityLabel,.relationshipLabel,.pieTitleText,.slice,.legend text),.mermaid-block :is(.task,.taskText,.section,.sectionTitle,.grid .tick text,.today){font-weight:400!important}.mermaid-block :is(.taskText,.sectionTitle,.grid .tick text,.classText,.state-title,.entityLabel,.relationshipLabel,.pieTitleText,.slice,.legend text){color:#0f172a!important;fill:#0f172a!important}.mermaid-block :is(.task,.section,.classGroup rect,.stateGroup rect,.entityBox){stroke:var(--diagram-line)!important}.mermaid-block[data-mermaid-kind=gantt] .task{fill:#dce6f2!important;stroke:#9aa8bc!important;stroke-width:.8px!important}.mermaid-block[data-mermaid-kind=gantt] .taskText,.mermaid-block[data-mermaid-kind=gantt] .taskTextOutsideLeft,.mermaid-block[data-mermaid-kind=gantt] .taskTextOutsideRight{color:#233044!important;fill:#233044!important;font-weight:400!important}.mermaid-block[data-mermaid-kind=gantt] .grid .tick line,.mermaid-block[data-mermaid-kind=gantt] .section{stroke:#d7dee8!important}.dark .mermaid-block .node circle,.dark .mermaid-block .node ellipse,.dark .mermaid-block .node polygon,.dark .mermaid-block .node rect,.dark .mermaid-block rect.actor,.dark .mermaid-block rect.labelBox{stroke:#9aa8bc!important}.dark .mermaid-block .actor-line,.dark .mermaid-block .flowchart-link,.dark .mermaid-block .loopLine,.dark .mermaid-block .messageLine0,.dark .mermaid-block .messageLine1,.dark .mermaid-block .relation,.dark .mermaid-block .relationshipLine,.dark .mermaid-block .state-end,.dark .mermaid-block .state-start{stroke:#94a3b8!important}.dark .mermaid-block .arrowheadPath,.dark .mermaid-block marker path{fill:#94a3b8!important;stroke:#94a3b8!important}.dark .mermaid-block g.cluster rect{fill:rgba(30,41,59,.28)!important;stroke:rgba(148,163,184,.3)!important;stroke-width:.5px!important}.dark .mermaid-block .cluster-label,.dark .mermaid-block .cluster-label div,.dark .mermaid-block .cluster-label p,.dark .mermaid-block .cluster-label span{color:#e7edf6!important}.dark .mermaid-block .cluster-label div{background:var(--diagram-bg)!important}.dark .mermaid-block .freecat-mermaid-cluster-label div{background:color-mix(in srgb,var(--diagram-bg) 88%,var(--diagram-surface))!important;border-color:rgba(148,163,184,.18)!important}.dark .mermaid-block .labelBkg{background-color:#172033!important;border-color:#718096!important;color:#e7edf6!important}.dark .mermaid-block rect.note{fill:rgba(30,41,59,.78)!important;stroke:#64748b!important}.dark .mermaid-block .actor tspan,.dark .mermaid-block .actor>text,.dark .mermaid-block .labelText,.dark .mermaid-block .labelText tspan,.dark .mermaid-block .loopText,.dark .mermaid-block .loopText tspan,.dark .mermaid-block .messageText,.dark .mermaid-block .messageText tspan,.dark .mermaid-block .noteText,.dark .mermaid-block .noteText tspan{fill:#e7edf6!important;stroke:none!important}.dark .mermaid-block .edgeLabel,.dark .mermaid-block .edgeLabel p,.dark .mermaid-block .edgeLabel span{color:#e7edf6!important}.dark .mermaid-block .freecat-mermaid-sequence-number-bg{fill:#dbe4f0!important;stroke:none!important}.dark .mermaid-block .freecat-mermaid-sequence-number{fill:#101622!important;stroke:none!important}.dark .mermaid-block :is(.taskText,.sectionTitle,.grid .tick text,.classText,.state-title,.entityLabel,.relationshipLabel,.pieTitleText,.slice,.legend text){color:#e7edf6!important;fill:#e7edf6!important}.dark .mermaid-block[data-mermaid-kind=gantt] .task{fill:#4b5563!important;stroke:#8b96a7!important}.dark .mermaid-block[data-mermaid-kind=gantt] .taskText,.dark .mermaid-block[data-mermaid-kind=gantt] .taskTextOutsideLeft,.dark .mermaid-block[data-mermaid-kind=gantt] .taskTextOutsideRight{color:#fff!important;fill:#fff!important}.dark .mermaid-block[data-mermaid-kind=gantt] .section{stroke:#2f3d51!important}.echarts-block{align-items:center!important;min-height:420px;overflow:hidden!important}.echarts-canvas{height:380px;min-width:min(100%,520px);width:100%}.diagram-error{min-height:120px;text-align:center}.diagram-error p{color:#475569!important;font-size:.95rem!important;margin:0!important}.dark .diagram-error p{color:#94a3b8!important}.freecat-post-latest-update-shell{display:none}@media (min-width:1280px){.freecat-post-toc-panel{--freecat-post-toc-top:16rem;--freecat-post-toc-bottom-gap:10.1875rem;--freecat-post-toc-scrollbar:rgba(148,163,184,.46);height:calc(100vh - var(--freecat-post-toc-top) - var(--freecat-post-toc-bottom-gap));left:calc(50% + 498px);overflow-x:hidden;position:fixed;top:var(--freecat-post-toc-top);z-index:20}.dark .freecat-post-toc-panel{--freecat-post-toc-scrollbar:rgba(100,116,139,.48)}.freecat-post-toc-scroll-shell{position:relative}#toc-container,#toc-container a,#toc-container nav{max-width:100%;min-width:0}#toc-container{overflow-y:scroll!important;scrollbar-color:var(--freecat-post-toc-scrollbar) transparent;scrollbar-gutter:stable;scrollbar-width:thin}#toc-container::-webkit-scrollbar{width:.375rem}#toc-container::-webkit-scrollbar-track{background:transparent}#toc-container::-webkit-scrollbar-thumb{background-color:var(--freecat-post-toc-scrollbar);border-radius:999px;min-height:2rem}#toc-container nav{padding-bottom:.35rem;padding-top:.35rem}#toc-container a{overflow-wrap:anywhere;word-break:break-word}}@media (min-width:1600px){.freecat-post-latest-update-shell{display:block}.freecat-post-latest-update-panel{--freecat-post-latest-update-top:16rem;--freecat-post-latest-update-bottom-gap:10.1875rem;--freecat-post-latest-update-scrollbar:rgba(148,163,184,.46);--freecat-post-latest-update-block-bg:#fff;height:calc(100vh - var(--freecat-post-latest-update-top) - var(--freecat-post-latest-update-bottom-gap));overflow-x:hidden;position:fixed;right:calc(50% + 498px);top:var(--freecat-post-latest-update-top);z-index:20}.dark .freecat-post-latest-update-panel{--freecat-post-latest-update-scrollbar:rgba(100,116,139,.48);--freecat-post-latest-update-block-bg:rgba(15,23,42,.78)}.freecat-post-latest-update-scroll{position:relative}#latest-update-container,.freecat-post-latest-update-body,.freecat-post-latest-update-body p,.freecat-post-latest-update-content,.freecat-post-latest-update-link{max-width:100%;min-width:0}#latest-update-container{direction:rtl;overflow-y:auto!important;padding-left:.5rem;padding-right:0;scrollbar-color:var(--freecat-post-latest-update-scrollbar) transparent;scrollbar-gutter:stable;scrollbar-width:thin}#latest-update-container::-webkit-scrollbar{width:.375rem}#latest-update-container::-webkit-scrollbar-track{background:transparent}#latest-update-container::-webkit-scrollbar-thumb{background-color:var(--freecat-post-latest-update-scrollbar);border-radius:999px;min-height:2rem}.freecat-post-latest-update-content{background:var(--freecat-post-latest-update-block-bg);border-radius:.5rem;box-sizing:border-box;direction:ltr;padding:.8rem .875rem .85rem}.freecat-post-latest-update-panel .freecat-post-toc-title{margin-top:0}.freecat-post-latest-update-title-note{color:#94a3b8;font-family:Freecat Figtree,Freecat Noto Sans SC,Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,PingFang SC,Hiragino Sans GB,Microsoft YaHei,微软雅黑,sans-serif;font-size:.75rem;font-weight:400;letter-spacing:0;line-height:1;margin-left:0}.dark .freecat-post-latest-update-title-note{color:#64748b}.freecat-post-latest-update-body{padding:.35rem 0}.freecat-post-latest-update-body p{margin:0 0 .8rem}.freecat-post-latest-update-link{color:#64748b;display:-webkit-box;font-size:.875rem;line-height:1.7;overflow:hidden;overflow-wrap:anywhere;text-overflow:ellipsis;white-space:normal;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;text-decoration:none;transition:color .15s ease}.freecat-post-latest-update-link:focus-visible,.freecat-post-latest-update-link:hover{color:#1e293b}.freecat-post-latest-update-body p:last-child{margin-bottom:0}.dark .freecat-post-latest-update-link{color:#94a3b8}.dark .freecat-post-latest-update-link:focus-visible,.dark .freecat-post-latest-update-link:hover{color:#e2e8f0}}@media (min-width:1760px){.freecat-post-toc-panel{left:calc(50% + 498px)}.freecat-post-latest-update-panel{right:calc(50% + 498px)}}.prose .code-block-container{--code-surface:#f8fafc;--code-surface-soft:#f3f6fa;--code-border:#d8e1eb;--code-rule:#e5ebf2;--code-text:#182233;--code-muted:#6f7b8c;--code-shadow:none;background:var(--code-surface)!important;border:1px solid var(--code-border)!important;border-radius:8px!important;box-shadow:var(--code-shadow)!important;overflow:hidden!important;overflow-anchor:none;position:relative}.dark .prose .code-block-container{--code-surface:#111827;--code-surface-soft:#151d2b;--code-border:#2a3648;--code-rule:#253244;--code-text:#d9e2ee;--code-muted:#8c9aad;--code-shadow:none}.prose .code-block-container{contain-intrinsic-size:auto 500px;content-visibility:auto}.prose .code-block-container.code-expanding,.prose .code-block-container.expanded-code{content-visibility:visible}.prose .code-block-container>.flex:first-child{background:var(--code-surface-soft)!important;border-bottom:1px solid var(--code-rule)!important;min-height:38px;padding:0 10px 0 18px!important}.prose .code-block-container>.flex:first-child>span:first-child,.prose .code-language-label{color:var(--code-muted)!important;font-family:inherit!important;font-size:.68rem!important;font-weight:500!important;letter-spacing:.04em!important;line-height:1!important;text-transform:lowercase!important}.prose .code-content,.prose .code-wrapper{background:var(--code-surface)!important}.prose .code-content{--code-fold-duration:420ms;--code-fold-ease:cubic-bezier(0.22,1,0.36,1);box-sizing:border-box;overflow-anchor:none;overflow-x:hidden!important;padding:1.35rem 1.55rem!important;position:relative;scrollbar-color:#c5cfdb transparent;scrollbar-width:thin;transition:max-height var(--code-fold-duration) var(--code-fold-ease),scrollbar-color .22s ease-out!important;will-change:max-height}.prose .code-content:after{background:linear-gradient(to bottom,rgba(247,249,252,0),var(--code-surface) 86%);bottom:0;content:"";display:block;height:5.25rem;left:0;opacity:0;pointer-events:none;position:absolute;right:0;transition:opacity .26s cubic-bezier(.22,1,.36,1)}.prose .collapsed-code .code-content:after{opacity:1}.dark .prose .code-content:after{background:linear-gradient(to bottom,rgba(15,23,36,0),var(--code-surface) 86%)}.prose .expanded-code .code-content{overflow-x:hidden!important;overflow-y:visible!important;padding-bottom:5.2rem!important;scrollbar-width:none}.prose .code-collapsing .code-content,.prose .code-expanding .code-content{overflow:hidden!important}.dark .prose .code-content{scrollbar-color:#3a4a61 transparent}.prose .expanded-code .code-content::-webkit-scrollbar{display:none}.prose .expanded-code .code-content pre{overflow:visible!important}.prose .code-content::-webkit-scrollbar{height:8px}.prose .code-content::-webkit-scrollbar-thumb{background:#c5cfdb;border:2px solid var(--code-surface);border-radius:999px}.dark .prose .code-content::-webkit-scrollbar-thumb{background:#3a4a61}.prose .code-content pre{max-width:100%;min-width:0;width:auto}.prose .code-content pre,.prose .code-content pre code{color:var(--code-text)!important;font-family:inherit!important;overflow-wrap:anywhere!important;white-space:pre-wrap!important;word-break:break-word!important}.prose .code-content pre code{font-size:.9rem!important;font-weight:400!important;line-height:1.72!important;tab-size:4}.dark .prose .code-content pre code{color:var(--code-text)!important}.prose .code-fold-controls{background:linear-gradient(to top,var(--code-surface) 16%,rgba(247,249,252,.92) 58%,rgba(247,249,252,0))!important;gap:0}.dark .prose .code-fold-controls{background:linear-gradient(to top,var(--code-surface) 16%,rgba(15,23,36,.92) 58%,rgba(15,23,36,0))!important}.prose .code-fold-controls:not(.absolute){align-items:center!important;backdrop-filter:none;background:color-mix(in srgb,var(--code-surface) 88%,#fff)!important;border:1px solid var(--code-border)!important;border-radius:999px;bottom:auto;box-shadow:none!important;justify-content:center!important;left:var(--code-controls-left,50%)!important;margin:0!important;max-width:calc(100% - 2rem);padding:1px!important;pointer-events:auto;position:fixed;top:var(--code-controls-top,12px);transform:translate3d(-50%,0,0);transition:opacity .18s ease-out,background-color .18s ease-out,border-color .18s ease-out;width:max-content!important;will-change:transform;z-index:60!important}.prose .code-fold-controls.code-controls-viewport-bottom:not(.absolute){bottom:16px;top:auto}.prose .code-fold-controls.code-controls-outside:not(.absolute){opacity:0;pointer-events:none;transition:none!important}.prose .code-fold-controls.code-controls-pinned-bottom:not(.absolute){bottom:16px;left:50%!important;position:absolute;top:auto}.prose .collapsed-code .code-fold-controls{backdrop-filter:none;background:color-mix(in srgb,var(--code-surface) 88%,#fff)!important;border:1px solid var(--code-border)!important;border-radius:999px;bottom:auto!important;height:auto!important;left:auto!important;margin:.7rem auto .9rem!important;min-height:0!important;padding:1px!important;position:relative!important;right:auto!important;top:auto!important;transform:none!important;transition:background-color .18s ease-out,border-color .18s ease-out;width:max-content!important;z-index:1!important}.prose .code-fold-controls.code-controls-opening{transition:opacity .18s ease-out,top .42s cubic-bezier(.22,1,.36,1),left .42s cubic-bezier(.22,1,.36,1),transform .42s cubic-bezier(.22,1,.36,1),background-color .18s ease-out,border-color .18s ease-out}.prose .code-fold-controls:not(.code-controls-opening){transition:opacity .18s ease-out,background-color .18s ease-out,border-color .18s ease-out}.dark .prose .code-fold-controls:not(.absolute),.dark .prose .collapsed-code .code-fold-controls{background:var(--code-surface-soft)!important;border-color:var(--code-border)!important}.prose .code-nav-btn{align-items:center;background:transparent;border:0;border-radius:999px;color:var(--code-muted);display:inline-flex;font-size:.76rem;font-weight:400;height:26px;justify-content:center;letter-spacing:0;line-height:1;margin:0 1px;min-width:38px;padding:0 .65rem;transition:color .14s ease,max-width .18s cubic-bezier(.2,0,0,1),min-width .18s cubic-bezier(.2,0,0,1),padding .18s cubic-bezier(.2,0,0,1),margin .18s cubic-bezier(.2,0,0,1),opacity .12s ease}.prose .code-nav-top{border-right:0}.prose .code-nav-bottom{border-left:0}.prose .code-nav-btn svg{display:block;height:1rem;width:1rem}.prose .collapsed-code .code-nav-btn{border-width:0;margin-inline:0;max-width:0;min-width:0;opacity:0;overflow:hidden;padding-inline:0;pointer-events:none;width:0}.prose .code-fold-controls .code-nav-btn:focus-visible,.prose .code-fold-controls .code-nav-btn:hover,.prose .code-fold-controls .fold-toggle-btn:focus-visible,.prose .code-fold-controls .fold-toggle-btn:hover{background:transparent!important;color:var(--code-text)!important;outline:none}.dark .prose .code-nav-btn{color:var(--code-muted)}.dark .prose .code-fold-controls .code-nav-btn:focus-visible,.dark .prose .code-fold-controls .code-nav-btn:hover,.dark .prose .code-fold-controls .fold-toggle-btn:focus-visible,.dark .prose .code-fold-controls .fold-toggle-btn:hover{background:transparent!important;color:#e2e8f0!important;outline:none}.prose .fold-toggle-btn{border:0!important;border-radius:8px!important;color:var(--code-muted)!important;height:26px!important;margin:0 1px!important;transition:color .14s ease!important;width:30px!important}.dark .prose .fold-toggle-btn,.prose .fold-toggle-btn{background:transparent!important;box-shadow:none!important}.dark .prose .fold-toggle-btn{color:#9eabbd!important}.prose .fold-toggle-btn:hover{box-shadow:none!important;transform:none}.prose .fold-toggle-btn span{color:currentColor!important;font-size:.98rem!important}@media (prefers-reduced-motion:reduce){.prose .code-content,.prose .code-content:after,.prose .code-fold-controls,.prose .code-fold-controls.code-controls-opening,.prose .code-fold-controls:not(.code-controls-opening),.prose .code-nav-btn,.prose .fold-toggle-btn{transition:none!important}}.prose .collapsed-code .code-content{overflow-y:hidden!important}.prose .collapsed-code .code-fold-controls{display:flex!important}