@charset "UTF-8";.article-list{display:flex;flex-direction:column;gap:var(--section-separation)}.article-list article{display:flex;flex-direction:column;background-color:var(--card-background);box-shadow:var(--shadow-l1);border-radius:var(--card-border-radius);overflow:hidden;transition:box-shadow .3s ease}.article-list article:hover{box-shadow:var(--shadow-l2)}.article-list article .article-image img{width:100%;height:150px;object-fit:cover}@media(min-width:768px){.article-list article .article-image img{height:200px}}@media(min-width:1280px){.article-list article .article-image img{height:250px}}.article-list article:nth-child(5n+1) .article-category a{background:#333;color:#fff}.article-list article:nth-child(5n+2) .article-category a{background:#333;color:#fff}.article-list article:nth-child(5n+3) .article-category a{background:#333;color:#fff}.article-list article:nth-child(5n+4) .article-category a{background:#333;color:#fff}.article-list article:nth-child(5n+5) .article-category a{background:#333;color:#fff}.article-details{display:flex;flex-direction:column;justify-content:center;padding:var(--card-padding);gap:15px}.article-title{font-family:var(--article-font-family);font-weight:600;margin:0;color:var(--card-text-color-main);font-size:2rem}@media(min-width:1280px){.article-title{font-size:2.2rem}}.article-title a{color:var(--card-text-color-main)}.article-title a:hover{color:var(--card-text-color-main)}.article-subtitle{font-weight:400;color:var(--card-text-color-secondary);line-height:1.5;margin:0;font-size:1.45rem}@media(min-width:1280px){.article-subtitle{font-size:1.6rem}}.article-title-wrapper{display:flex;flex-direction:column;gap:8px}.article-time,.article-translations{display:flex;color:var(--card-text-color-tertiary);gap:15px}.article-time svg,.article-translations svg{vertical-align:middle;width:20px;height:20px;stroke-width:1.33;flex-shrink:0}.article-time time,.article-time a,.article-translations time,.article-translations a{font-size:1.4rem;color:var(--card-text-color-tertiary)}.article-time>div,.article-translations>div{display:inline-flex;align-items:center;gap:15px}.article-time{flex-wrap:wrap}.article-translations>div{flex-wrap:wrap}.article-category,.article-tags{display:flex;gap:10px;flex-wrap:wrap}.article-category a,.article-tags a{color:var(--accent-color-text);background-color:var(--accent-color);padding:8px 16px;border-radius:var(--tag-border-radius);display:inline-block;font-size:1.4rem;transition:background-color .5s ease}.article-category a:hover,.article-tags a:hover{color:var(--accent-color-text);background-color:var(--accent-color-darker)}.article-list--compact{border-radius:var(--card-border-radius);box-shadow:var(--shadow-l1);background-color:var(--card-background);--image-size:50px}@media(min-width:768px){.article-list--compact{--image-size:60px}}.article-list--compact article>a{display:flex;align-items:center;padding:var(--small-card-padding);gap:15px}.article-list--compact article:not(:last-of-type){border-bottom:1.5px solid var(--card-separator-color)}.article-list--compact article .article-details{flex-grow:1;padding:0;min-height:var(--image-size);gap:10px}.article-list--compact article .article-title{margin:0;font-size:1.5rem}@media(min-width:768px){.article-list--compact article .article-title{font-size:1.65rem}}.article-list--compact article .article-image img{width:var(--image-size);height:var(--image-size);object-fit:cover}.article-list--compact article .article-time{font-size:1.4rem}.article-list--compact article .article-preview{font-size:1.4rem;color:var(--card-text-color-tertiary);margin-top:10px;line-height:1.5}.article-list--tile article{border-radius:var(--card-border-radius);overflow:hidden;position:relative;height:350px;width:250px;box-shadow:var(--shadow-l1);transition:box-shadow .3s ease;background-color:var(--card-background)}.article-list--tile article:hover{box-shadow:var(--shadow-l2)}.article-list--tile article.has-image .article-details{background-color:rgba(0,0,0,.25)}.article-list--tile article.has-image .article-title{color:#fff}.article-list--tile article .article-image{position:absolute;top:0;left:0;width:100%;height:100%}.article-list--tile article .article-image img{width:100%;height:100%;object-fit:cover}.article-list--tile article .article-details{border-radius:var(--card-border-radius);position:relative;height:100%;width:100%;display:flex;flex-direction:column;justify-content:flex-end;z-index:2;padding:15px}@media(min-width:640px){.article-list--tile article .article-details{padding:20px}}.article-list--tile article .article-title{font-size:1.8rem;font-weight:500;color:var(--card-text-color-main)}@media(min-width:640px){.article-list--tile article .article-title{font-size:1.95rem}}.article-page.hide-sidebar-sm .left-sidebar{display:none}@media(min-width:768px){.article-page.hide-sidebar-sm .left-sidebar{display:inherit}}.article-page .main-article{background:var(--card-background);border-radius:var(--card-border-radius);box-shadow:var(--shadow-l1);overflow:hidden}.article-page .main-article .article-header .article-image img{height:auto;width:100%;max-height:50vh;object-fit:cover}.article-page .main-article .article-header .article-details{padding:var(--card-padding);padding-bottom:0}.article-page .main-article .article-content{margin:var(--card-padding)0;color:var(--card-text-color-main)}.article-page .main-article .article-content .footnotes{font-family:var(--base-font-family)}.article-page .main-article .article-content img{max-width:100%;height:auto}.article-page .main-article .article-footer{margin:var(--card-padding);margin-top:0}.article-page .main-article .article-footer section:not(:first-child){margin-top:var(--card-padding)}.article-page .main-article .article-footer section{color:var(--card-text-color-tertiary);text-transform:uppercase;display:flex;align-items:center;font-size:1.4rem;gap:15px}.article-page .main-article .article-footer section svg{width:20px;height:20px;stroke-width:1.33}.article-page .main-article .article-footer .article-tags{text-transform:unset}.article-page .main-article .article-footer .article-copyright a,.article-page .main-article .article-footer .article-lastmod a{color:var(--body-text-color)}.article-page .main-article .article-footer .article-copyright a.link,.article-page .main-article .article-footer .article-lastmod a.link{box-shadow:unset}.widget--toc{background-color:var(--card-background);border-radius:var(--card-border-radius);box-shadow:var(--shadow-l1);display:flex;flex-direction:column;color:var(--card-text-color-main);overflow:hidden}.widget--toc ::-webkit-scrollbar-thumb{background-color:var(--card-separator-color)}.widget--toc #TableOfContents{overflow-x:auto;max-height:75vh}.widget--toc #TableOfContents ol,.widget--toc #TableOfContents ul{margin:0;padding:0}.widget--toc #TableOfContents ol{list-style-type:none;counter-reset:item}.widget--toc #TableOfContents ol li a:first-of-type::before{counter-increment:item;content:counters(item,".")". ";font-weight:700;margin-right:5px}.widget--toc #TableOfContents>ul{padding:0 1em}.widget--toc #TableOfContents li{margin:15px 0 15px 20px;padding:5px}.widget--toc #TableOfContents li>ol,.widget--toc #TableOfContents li>ul{margin-top:10px;padding-left:10px;margin-bottom:-5px}.widget--toc #TableOfContents li>ol>li:last-child,.widget--toc #TableOfContents li>ul>li:last-child{margin-bottom:0}.widget--toc #TableOfContents li.active-class>a{border-left:var(--heading-border-size)solid var(--accent-color);font-weight:700}.widget--toc #TableOfContents ul li.active-class>a{display:block}.widget--toc #TableOfContents>ul>li.active-class>a{margin-left:calc(-25px - 1em);padding-left:calc(25px + 1em - var(--heading-border-size))}.widget--toc #TableOfContents>ol>li.active-class>a{margin-left:calc(-9px - 1em);padding-left:calc(9px + 1em - var(--heading-border-size));display:block}.widget--toc #TableOfContents>ul>li>ul>li.active-class>a{margin-left:calc(-60px - 1em);padding-left:calc(60px + 1em - var(--heading-border-size))}.widget--toc #TableOfContents>ol>li>ol>li.active-class>a{margin-left:calc(-44px - 1em);padding-left:calc(44px + 1em - var(--heading-border-size));display:block}.widget--toc #TableOfContents>ul>li>ul>li>ul>li.active-class>a{margin-left:calc(-95px - 1em);padding-left:calc(95px + 1em - var(--heading-border-size))}.widget--toc #TableOfContents>ol>li>ol>li>ol>li.active-class>a{margin-left:calc(-79px - 1em);padding-left:calc(79px + 1em - var(--heading-border-size));display:block}.widget--toc #TableOfContents>ul>li>ul>li>ul>li>ul>li.active-class>a{margin-left:calc(-130px - 1em);padding-left:calc(130px + 1em - var(--heading-border-size))}.widget--toc #TableOfContents>ol>li>ol>li>ol>li>ol>li.active-class>a{margin-left:calc(-114px - 1em);padding-left:calc(114px + 1em - var(--heading-border-size));display:block}.widget--toc #TableOfContents>ul>li>ul>li>ul>li>ul>li>ul>li.active-class>a{margin-left:calc(-165px - 1em);padding-left:calc(165px + 1em - var(--heading-border-size))}.widget--toc #TableOfContents>ol>li>ol>li>ol>li>ol>li>ol>li.active-class>a{margin-left:calc(-149px - 1em);padding-left:calc(149px + 1em - var(--heading-border-size));display:block}.related-content{overflow-x:auto;padding-bottom:15px}.related-content>.flex{float:left}.related-content article{margin-right:15px;flex-shrink:0;overflow:hidden;width:250px;height:150px}.related-content article .article-title{font-size:1.65rem;margin:0}.related-content article.has-image .article-details{padding:20px;background:linear-gradient(0deg,rgba(0,0,0,.25) 0%,rgba(0,0,0,.75) 100%)}.article-content{font-family:var(--article-font-family);font-size:var(--article-font-size);padding:0 var(--card-padding);line-height:var(--article-line-height)}.article-content>p{margin:1.5em 0}.article-content h1,.article-content h2,.article-content h3,.article-content h4,.article-content h5,.article-content h6{margin-inline-start:calc((var(--card-padding)) * -1);padding-inline-start:calc(var(--card-padding) - var(--heading-border-size));border-inline-start:var(--heading-border-size)solid var(--accent-color);position:relative}.article-content h1 a.header-anchor,.article-content h2 a.header-anchor,.article-content h3 a.header-anchor,.article-content h4 a.header-anchor,.article-content h5 a.header-anchor,.article-content h6 a.header-anchor{transition:opacity .3s ease;opacity:0;position:absolute;left:0;width:var(--card-padding);text-align:center;color:var(--accent-color)}.article-content h1 a.header-anchor:before,.article-content h2 a.header-anchor:before,.article-content h3 a.header-anchor:before,.article-content h4 a.header-anchor:before,.article-content h5 a.header-anchor:before,.article-content h6 a.header-anchor:before{content:"#"}.article-content h1:hover a.header-anchor,.article-content h1:focus a.header-anchor,.article-content h2:hover a.header-anchor,.article-content h2:focus a.header-anchor,.article-content h3:hover a.header-anchor,.article-content h3:focus a.header-anchor,.article-content h4:hover a.header-anchor,.article-content h4:focus a.header-anchor,.article-content h5:hover a.header-anchor,.article-content h5:focus a.header-anchor,.article-content h6:hover a.header-anchor,.article-content h6:focus a.header-anchor{opacity:1}.article-content figure{text-align:center}.article-content figure figcaption{font-size:1.4rem;color:var(--card-text-color-secondary)}.article-content blockquote{position:relative;margin:1.5em 0;border-inline-start:var(--blockquote-border-size)solid var(--card-separator-color);padding:15px calc(var(--card-padding) - var(--blockquote-border-size));background-color:var(--blockquote-background-color)}.article-content blockquote .cite{display:block;text-align:right;font-size:.75em}.article-content blockquote .cite a{text-decoration:underline}.article-content hr{width:100px;margin:40px auto;background:var(--card-text-color-tertiary);height:2px;border:0;opacity:.55}.article-content code{color:var(--code-text-color);background-color:var(--code-background-color);padding:2px 4px;border-radius:var(--tag-border-radius);font-family:var(--code-font-family)}.article-content a,.article-content code{word-break:break-word}.article-content .gallery{position:relative;display:flex;flex-direction:row;justify-content:center;margin:1.5em 0;gap:10px}.article-content .gallery figure{margin:0}.article-content pre{overflow-x:auto;display:block;background-color:var(--pre-background-color);color:var(--pre-text-color);font-family:var(--code-font-family);line-height:1.428571429;word-break:break-all;padding:var(--card-padding)}[dir=rtl] .article-content pre{direction:ltr}.article-content pre code{color:unset;border:none;background:0 0;padding:0}.article-content .highlight{background-color:var(--pre-background-color);padding:var(--card-padding);position:relative}.article-content .highlight:hover .copyCodeButton{opacity:1}[dir=rtl] .article-content .highlight{direction:ltr}.article-content .highlight pre{margin:initial;padding:0;margin:0;width:auto}.article-content .copyCodeButton{position:absolute;top:calc(var(--card-padding));right:calc(var(--card-padding));background:var(--card-background);border:none;box-shadow:var(--shadow-l2);border-radius:var(--tag-border-radius);padding:8px 16px;color:var(--card-text-color-main);cursor:pointer;font-size:14px;opacity:0;transition:opacity .3s ease}.article-content .table-wrapper{padding:0 var(--card-padding);overflow-x:auto;display:block}.article-content table{width:100%;border-collapse:collapse;border-spacing:0;margin-bottom:1.5em;font-size:.96em}.article-content th,.article-content td{text-align:left;padding:4px 8px 4px 10px;border:1px solid var(--table-border-color)}.article-content td{vertical-align:top}.article-content tr:nth-child(even){background-color:var(--tr-even-background-color)}.article-content .twitter-tweet{color:var(--card-text-color-main)}.article-content .video-wrapper{position:relative;width:100%;height:0;padding-bottom:56.25%;overflow:hidden}.article-content .video-wrapper>iframe,.article-content .video-wrapper>video{position:absolute;width:100%;height:100%;left:0;top:0;border:0}.article-content .gitlab-embed-snippets{margin:0 !important}.article-content .gitlab-embed-snippets .file-holder.snippet-file-content{margin-block-end:0 !important;margin-block-start:0 !important;margin-left:calc((var(--card-padding)) * -1) !important;margin-right:calc((var(--card-padding)) * -1) !important;padding:0 var(--card-padding) !important}.article-content blockquote,.article-content figure,.article-content .highlight,.article-content pre,.article-content .gallery,.article-content .video-wrapper,.article-content .table-wrapper,.article-content .s_video_simple{margin-left:calc((var(--card-padding)) * -1);margin-right:calc((var(--card-padding)) * -1);width:calc(100% + var(--card-padding) * 2)}.article-content .katex-display>.katex{overflow-x:auto;overflow-y:hidden}.article-content kbd{border:1px solid var(--kbd-border-color);font-weight:700;font-size:.9em;line-height:1;padding:2px 4px;border-radius:4px;display:inline-block}.article-content{min-width:0;max-width:100%;overflow-wrap:anywhere}.article-content :is(p,li,blockquote,figcaption,td,th,dd,dt,h1,h2,h3,h4,h5,h6,a){overflow-wrap:anywhere}.article-content :is(pre,.highlight),.article-content :is(pre,.highlight) code{overflow-wrap:normal;word-break:normal}@supports(content-visibility:auto){.article-content>:nth-child(n+5){content-visibility:auto;contain-intrinsic-size:auto 120px}}.article-content img{max-width:100%;height:auto;display:block;cursor:zoom-in}.article-content picture,.article-content figure,.article-content p>img:only-child{display:block;width:100%;max-width:100%;margin-inline:auto}.article-content picture>img,.article-content figure img,.article-content p>img:only-child{width:100%}.article-content img{margin-inline:auto}.article-content .gallery picture,.article-content .gallery figure,.article-content .gallery img{width:auto}.stack-lazy-media{position:relative;overflow:hidden;background:var(--card-background);background:color-mix(in srgb,var(--card-text-color-main) 7%,var(--card-background))}.stack-lazy-media::before{content:"";position:absolute;inset:0;z-index:0;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--card-text-color-main) 8%,transparent),transparent);transform:translateX(-100%);animation:stack-skeleton-shimmer 1.2s ease-in-out infinite;pointer-events:none}.stack-lazy-media[data-lazy-state=loaded]::before,.stack-lazy-media[data-lazy-state=error]::before{display:none}.article-content .video-wrapper.stack-lazy-media{width:100%;height:auto;min-height:0;padding-bottom:0;aspect-ratio:16/9}.stack-lazy-media iframe,.stack-lazy-media video{position:absolute;inset:0;width:100%;height:100%;border:0;opacity:0;transition:opacity var(--transition-slow)cubic-bezier(.4,0,.2,1)}.stack-lazy-media video{background:var(--media-bg)}.stack-lazy-media[data-lazy-state=loading] iframe,.stack-lazy-media[data-lazy-state=loading] video,.stack-lazy-media[data-lazy-state=loaded] iframe,.stack-lazy-media[data-lazy-state=loaded] video{opacity:1}@keyframes stack-media-skeleton-shimmer{0%{background-position:120% 0,0 0}100%{background-position:-120% 0,0 0}}.stack-media-skeleton{position:absolute;inset:0;display:block;overflow:hidden;background:var(--card-background);background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--card-text-color-main) 8%,transparent),transparent),color-mix(in srgb,var(--card-text-color-main) 6%,var(--card-background));background-size:220% 100%,100% 100%;animation:stack-media-skeleton-shimmer 1.2s ease-in-out infinite}.stack-lazy-media[data-lazy-state=loaded] .stack-media-skeleton{opacity:0;visibility:hidden;transition:opacity var(--transition-normal)ease,visibility 0s linear .2s}.stack-media-trigger{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;width:100%;border:0;padding:20px;background:0 0;color:var(--accent-color-text);font:inherit;font-weight:700;cursor:pointer}.stack-media-trigger__icon{position:relative;width:58px;height:58px;border-radius:var(--radius-pill);background:var(--accent-color);background:color-mix(in srgb,var(--accent-color) 92%,transparent);box-shadow:var(--shadow-l2);transition:transform var(--transition-fast)ease,background-color var(--transition-normal)ease}.stack-media-trigger__icon::before{content:"";position:absolute;top:50%;left:50%;border-top:12px solid transparent;border-bottom:12px solid transparent;border-left:18px solid;transform:translate(-36%,-50%)}.stack-media-trigger__label{padding:5px 10px;border-radius:var(--radius-pill);background:var(--card-text-color-main);background:color-mix(in srgb,var(--card-text-color-main) 52%,transparent);line-height:1.3}.stack-media-trigger:hover .stack-media-trigger__icon,.stack-media-trigger:focus-visible .stack-media-trigger__icon{transform:scale(1.04);background:var(--accent-color)}.stack-lazy-media[data-lazy-state=loading] .stack-media-trigger,.stack-lazy-media[data-lazy-state=loaded] .stack-media-trigger{opacity:0;visibility:hidden;pointer-events:none;transition:opacity var(--transition-fast)ease,visibility 0s linear .16s}.stack-media-skeleton::before{content:"";position:absolute;inset:50% auto auto 50%;width:54px;height:54px;border-radius:var(--radius-pill);background:var(--accent-color);background:color-mix(in srgb,var(--accent-color) 92%,transparent);transform:translate(-50%,-50%);box-shadow:var(--shadow-l2)}.stack-media-skeleton::after{content:"";position:absolute;top:50%;left:50%;border-top:11px solid transparent;border-bottom:11px solid transparent;border-left:16px solid var(--accent-color-text);transform:translate(-38%,-50%)}.main-article .article-header{display:flex;align-items:center;gap:var(--card-padding)}.main-article .article-header .article-details{flex:auto;min-width:0}.article-page .article-content{width:100%;max-width:calc(var(--article-content-max-width) + var(--card-padding) * 2);margin-inline:auto}.article-time--dateline{display:inline}.reading-progress{position:fixed;inset:0 0 auto;height:3px;z-index:var(--z-overlay);opacity:0;pointer-events:none;transition:opacity var(--transition-fast)ease}.reading-progress.is-visible{opacity:1}.reading-progress__bar{display:block;width:100%;height:100%;background:var(--accent-color);transform:scaleX(0);transform-origin:left center;box-shadow:none}.article-content :is(h2,h3,h4)[id]{scroll-margin-top:24px}.heading-anchor{position:absolute;inset-block-start:50%;inset-inline-start:0;display:inline-flex;align-items:center;justify-content:center;width:1.25em;height:1.25em;margin-inline-start:0;border-radius:var(--radius-pill);color:var(--accent-color);font-size:.72em;font-weight:700;text-decoration:none;opacity:0;transform:translateY(-50%);transition:opacity var(--transition-fast)ease,background-color var(--transition-fast)ease,color var(--transition-fast)ease}.article-content :is(h2,h3,h4):hover .heading-anchor,.heading-anchor:focus-visible,.heading-anchor.is-copied{opacity:1}.heading-anchor:hover,.heading-anchor:focus-visible,.heading-anchor.is-copied{background:var(--accent-color);color:var(--color-white)}.article-engagement{display:grid;gap:14px;padding:18px;border:1px solid var(--border-color-default);border-radius:var(--card-border-radius);background:var(--card-background);background:color-mix(in srgb,var(--accent-color) 7%,var(--card-background))}.article-footer .article-engagement{align-items:stretch;text-transform:none}.article-engagement__actions{display:flex;flex-wrap:wrap;gap:10px}.article-engagement__actions a{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:0 14px;border:1px solid var(--border-color-strong);border-radius:var(--radius-pill);background:var(--card-background);color:var(--card-text-color-main);font:inherit;font-size:1.35rem;font-weight:700;text-decoration:none;cursor:pointer;transition:transform var(--transition-fast)ease,background-color var(--transition-normal)ease,color var(--transition-normal)ease,border-color var(--transition-normal)ease}.article-engagement__actions a:hover,.article-engagement__actions a:focus-visible{transform:translateY(-1px);border-color:var(--accent-color);background:var(--accent-color);color:var(--accent-color-text)}body.stack-lightbox-open .reading-progress{display:none}.article-engagement,.article-engagement__actions a{transition:var(--transition-card)}.article-comments{--comments-border:var(--card-separator-color);--comments-surface:var(--card-background);--comments-surface:color-mix(in srgb, var(--card-text-color-main) 2.5%, var(--card-background));--comments-surface-strong:var(--card-background);--comments-surface-strong:color-mix(in srgb, var(--card-text-color-main) 5%, var(--card-background));--comments-muted:var(--card-text-color-secondary);--comments-subtle:var(--card-text-color-tertiary, var(--card-text-color-secondary));--comments-warning:#666666;width:100%;max-width:calc(var(--article-content-max-width) + var(--card-padding) * 2);margin:var(--section-separation)auto 0;padding:clamp(18px,3vw,28px);box-sizing:border-box;border:1px solid var(--comments-border);border-radius:var(--radius-md);background-color:var(--card-background);color:var(--card-text-color-main);box-shadow:none}:root[data-scheme=dark] .article-comments{--comments-surface:var(--card-background);--comments-surface:color-mix(in srgb, var(--color-white) 4%, var(--card-background));--comments-surface-strong:var(--card-background);--comments-surface-strong:color-mix(in srgb, var(--color-white) 7%, var(--card-background));--comments-warning:#a8a8a8;border-color:var(--border-color-default)}:root[data-scheme=dark] .article-engagement{background:var(--card-background);background:color-mix(in srgb,var(--accent-color) 5%,var(--card-background));border-color:var(--border-color-default)}.article-comments__heading{display:grid;gap:4px;min-width:0}.article-comments__title{margin:0;color:var(--card-text-color-main);font-size:1.8rem;font-weight:700;line-height:1.35}.article-comments__subtitle{margin:0;color:var(--comments-muted);font-size:1.3rem;line-height:1.55;overflow-wrap:anywhere}.article-comments__header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin:0 0 20px;padding-bottom:16px;border-bottom:1px solid var(--comments-border)}.article-comments__issue-link{flex:none;margin-block-start:1px;color:var(--comments-muted);font-size:1.24rem;line-height:1.5;text-decoration:none;text-underline-offset:3px;overflow-wrap:anywhere;transition:color var(--transition-fast)ease,text-decoration-color var(--transition-fast)ease}.article-comments__issue-link:hover,.article-comments__issue-link:focus-visible{color:var(--accent-color);text-decoration:underline}.article-comments__body{position:relative;min-height:0}.article-comments__body.is-idle,.article-comments__body.is-loading,.article-comments__body.has-load-warning{display:grid;gap:14px;min-height:136px;padding:18px;border:1px solid var(--comments-border);border-radius:var(--radius-md);background:var(--comments-surface)}.article-comments__body.is-loading::after{content:"";display:block;width:100%;height:4px;overflow:hidden;border-radius:4px;background:var(--comments-surface-strong);background:linear-gradient(90deg,transparent 0,color-mix(in srgb,var(--accent-color) 68%,var(--color-white)) 42%,transparent 72%),color-mix(in srgb,var(--accent-color) 35%,var(--comments-surface-strong));background-size:180px 100%,100% 100%;animation:article-comments-progress 1.25s ease-in-out infinite}.article-comments__body .giscus{width:100%;max-width:none;min-height:260px;overflow:hidden}.article-comments__body .giscus-frame{display:block;width:100%;min-height:260px;border:0;color-scheme:light dark}.article-comments__status{margin:0;max-width:68ch;color:var(--comments-muted);font-size:1.36rem;line-height:1.6;overflow-wrap:anywhere}.article-comments__actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.article-comments__load{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:38px;min-width:120px;padding:0 15px;border:1px solid var(--accent-color);border-radius:6px;background:var(--accent-color);color:var(--accent-color-text);font:inherit;font-size:1.32rem;font-weight:700;line-height:1.25;text-align:center;cursor:pointer;transition:background-color var(--transition-fast)ease,border-color var(--transition-fast)ease,color var(--transition-fast)ease,opacity var(--transition-fast)ease}.article-comments__body.is-loading .article-comments__load::before{content:"";flex:none;width:1em;height:1em;border:2px solid;border:2px solid color-mix(in srgb,currentColor 24%,transparent);border-top-color:initial;border-radius:50%;animation:stack-spin .8s linear infinite}.article-comments__load:hover,.article-comments__load:focus-visible{background:var(--accent-color-darker);border-color:var(--accent-color-darker)}.article-comments__load:focus-visible{outline:2px solid var(--accent-color);outline:2px solid color-mix(in srgb,var(--accent-color) 55%,transparent);outline-offset:3px}.article-comments__load:disabled{border-color:var(--comments-border);background:var(--comments-surface-strong);color:var(--comments-subtle);cursor:not-allowed;opacity:1}.article-comments__notes{display:grid;gap:4px;margin:0;padding-left:1.1em;color:var(--comments-subtle);font-size:1.18rem;line-height:1.6;overflow-wrap:anywhere}.article-comments__notes li{padding-left:2px}.article-comments__body.is-loaded{min-height:0;padding:0;border:0;background:0 0}.article-comments__body.is-loaded :is(.article-comments__status,.article-comments__actions,.article-comments__notes){display:none}.article-comments__body.has-load-warning .article-comments__status{padding:10px 12px;border-left:3px solid var(--comments-warning);border-radius:6px;background:var(--card-background);color:var(--card-text-color-main)}.article-comments__body.has-load-warning[data-load-error=true] .article-comments__status{background:var(--card-background);background:color-mix(in srgb,var(--comments-warning) 8%,var(--card-background))}.article-comments__fallback{margin:0;color:var(--comments-muted);font-size:1.3rem;line-height:1.6}@keyframes article-comments-progress{from{background-position:-180px 0,0 0}to{background-position:calc(100% + 180px)0,0 0}}@media(max-width:767.98px){.article-comments{max-width:none;margin-inline:0;padding:16px}.article-comments__header{align-items:flex-start;flex-direction:column;gap:8px;margin-bottom:16px;padding-bottom:14px}.article-comments__title{font-size:1.65rem}.article-comments__subtitle,.article-comments__status{font-size:1.28rem}.article-comments__issue-link{max-width:100%;font-size:1.2rem;overflow-wrap:anywhere}.article-comments__body.is-idle,.article-comments__body.is-loading,.article-comments__body.has-load-warning{gap:12px;min-height:128px;padding:14px}.article-comments__load{width:100%;min-width:0}.article-comments__body .giscus{width:100%;min-height:280px}.article-comments__body .giscus-frame{min-height:280px}.article-comments__notes{font-size:1.12rem}.article-content img{width:100%;margin-inline:auto}.article-content figure{background:0 0}.main-article .article-header{flex-direction:column;align-items:flex-start}.main-article .article-header .article-details{width:100%;justify-content:flex-start;text-align:left}.main-article .article-header .article-title,.main-article .article-header .article-title a{text-align:left}.stack-lazy-image[data-lazy-state=preview],.stack-lazy-image[data-lazy-state=loading]{transform:none}.heading-anchor{opacity:.48}.article-engagement__actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.article-engagement__actions a{width:100%;min-width:0}}@media(prefers-reduced-motion:reduce){.reading-progress,.heading-anchor,.stack-lazy-image,.stack-lazy-media iframe,.stack-lazy-media video,.stack-media-trigger,.stack-media-trigger__icon,.stack-media-skeleton,.article-engagement,.article-engagement__actions a,.article-comments__issue-link,.article-comments__load{transition:none;animation:none}.article-comments__body.is-loading::after,.article-comments__body.is-loading .article-comments__load::before{animation:none}.article-engagement__actions a:hover{transform:none}}.article-category{gap:6px}.article-category a{background-color:transparent;color:var(--accent-color);border:1px solid var(--accent-color);border-color:color-mix(in srgb,var(--accent-color) 28%,transparent);padding:3px 11px;font-size:1.12rem;font-weight:600;line-height:1.4;letter-spacing:.02em;box-sizing:border-box;box-shadow:none;transition:color var(--transition-fast)var(--ease-out-quad),background-color var(--transition-fast)var(--ease-out-quad),border-color var(--transition-fast)var(--ease-out-quad)}.article-category a:hover{color:var(--accent-color-text);background-color:var(--accent-color);border-color:var(--accent-color)}:root[data-scheme=dark] .article-category a{border-color:var(--accent-color);border-color:color-mix(in srgb,var(--accent-color) 32%,transparent)}:root[data-scheme=dark] .article-category a:hover{background-color:var(--accent-color);border-color:var(--accent-color)}.article-list article:nth-child(n) .article-category a{background:0 0;color:var(--accent-color);border-color:color-mix(in srgb,var(--accent-color) 28%,transparent)}.article-category a[style]{background-color:transparent;border:1px solid var(--accent-color);border-color:color-mix(in srgb,var(--accent-color) 28%,transparent);color:var(--accent-color)}html.stack-page-pending .main-article>.article-header>.article-details,html.stack-page-pending .main-article .article-content>:nth-child(-n+15){opacity:0}html.stack-page-revealing .main-article>.article-header>.article-details,html.stack-page-revealing .main-article .article-content>:nth-child(-n+15){--stack-reveal-delay:0s;animation:stackItemReveal var(--stack-reveal-duration)var(--stack-reveal-ease)both;animation-delay:var(--stack-reveal-delay);will-change:opacity,transform}html.stack-page-revealing .main-article>.article-header>.article-details{--stack-reveal-delay:.05s}html.stack-page-revealing .main-article .article-content>:nth-child(1){--stack-reveal-delay:calc(1 * 0.08s + 0.03s)}html.stack-page-revealing .main-article .article-content>:nth-child(2){--stack-reveal-delay:calc(2 * 0.08s + 0.03s)}html.stack-page-revealing .main-article .article-content>:nth-child(3){--stack-reveal-delay:calc(3 * 0.08s + 0.03s)}html.stack-page-revealing .main-article .article-content>:nth-child(4){--stack-reveal-delay:calc(4 * 0.08s + 0.03s)}html.stack-page-revealing .main-article .article-content>:nth-child(5){--stack-reveal-delay:calc(5 * 0.08s + 0.03s)}html.stack-page-revealing .main-article .article-content>:nth-child(6){--stack-reveal-delay:calc(6 * 0.08s + 0.03s)}html.stack-page-revealing .main-article .article-content>:nth-child(7){--stack-reveal-delay:calc(7 * 0.08s + 0.03s)}html.stack-page-revealing .main-article .article-content>:nth-child(8){--stack-reveal-delay:calc(8 * 0.08s + 0.03s)}html.stack-page-revealing .main-article .article-content>:nth-child(9){--stack-reveal-delay:calc(9 * 0.08s + 0.03s)}html.stack-page-revealing .main-article .article-content>:nth-child(10){--stack-reveal-delay:calc(10 * 0.08s + 0.03s)}html.stack-page-revealing .main-article .article-content>:nth-child(11){--stack-reveal-delay:calc(11 * 0.08s + 0.03s)}html.stack-page-revealing .main-article .article-content>:nth-child(12){--stack-reveal-delay:calc(12 * 0.08s + 0.03s)}html.stack-page-revealing .main-article .article-content>:nth-child(13){--stack-reveal-delay:calc(13 * 0.08s + 0.03s)}html.stack-page-revealing .main-article .article-content>:nth-child(14){--stack-reveal-delay:calc(14 * 0.08s + 0.03s)}html.stack-page-revealing .main-article .article-content>:nth-child(15){--stack-reveal-delay:calc(15 * 0.08s + 0.03s)}.main-article .article-header .article-title{font-size:clamp(2.4rem,calc(1.9rem + 1.1vw),3rem);font-weight:700;line-height:1.3;letter-spacing:.01em}.main-article .article-header .article-title::after{content:"";display:block;width:48px;height:4px;margin-top:16px;border-radius:var(--radius-pill);background:linear-gradient(90deg,var(--accent-color) 0%,color-mix(in srgb,var(--accent-color) 18%,transparent) 100%)}.article-content :is(h1,h2,h3,h4,h5,h6){border-image:linear-gradient(180deg,var(--accent-color) 0%,color-mix(in srgb,var(--accent-color) 45%,transparent) 82%,transparent 100%)1}.article-content a.link{box-shadow:none;color:var(--accent-color);text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--accent-color) 38%,transparent);text-decoration-thickness:1.5px;text-underline-offset:.3em;transition:color var(--transition-fast)var(--ease-out-quad),text-decoration-color var(--transition-fast)var(--ease-out-quad)}.article-content a.link:hover{box-shadow:none;color:var(--accent-color-darker);text-decoration-color:initial}.article-content blockquote{border-inline-start-color:color-mix(in srgb,var(--accent-color) 50%,transparent)}.article-content blockquote .cite{color:var(--card-text-color-tertiary)}.article-content hr{width:min(200px,42%);height:1px;margin:44px auto;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--accent-color) 55%,var(--card-separator-color)),transparent);opacity:1}.article-content figure figcaption{margin-top:10px;color:var(--card-text-color-tertiary);font-size:1.3rem;letter-spacing:.02em}.article-content code{padding:.14em .42em;border-radius:5px;font-size:.92em}.article-content :is(pre,.highlight) code{padding:0;border-radius:0;font-size:1em}.article-content table{font-size:.92em}.article-content :is(th,td){padding:8px 12px;border:0;border-bottom:1px solid var(--table-border-color)}.article-content thead th{border-bottom:2px solid color-mix(in srgb,var(--accent-color) 38%,transparent);font-weight:700;letter-spacing:.02em}.article-content tr:nth-child(even){background-color:transparent}.article-content :is(picture,.stack-lazy-picture),.post-content :is(picture,.stack-lazy-picture),.entry-content :is(picture,.stack-lazy-picture){display:block;width:100%;max-width:100%;margin-inline:auto}.article-content :is(picture,.stack-lazy-picture)>img,.article-content :is(picture,.stack-lazy-picture) picture,.article-content :is(picture,.stack-lazy-picture) picture>img,.post-content :is(picture,.stack-lazy-picture)>img,.post-content :is(picture,.stack-lazy-picture) picture,.post-content :is(picture,.stack-lazy-picture) picture>img,.entry-content :is(picture,.stack-lazy-picture)>img,.entry-content :is(picture,.stack-lazy-picture) picture,.entry-content :is(picture,.stack-lazy-picture) picture>img{width:100%}.article-time{gap:12px}.article-time time,.article-pageviews{font-variant-numeric:tabular-nums}.article-details{gap:12px}.article-title-wrapper{gap:6px}