.article-reader{--flow:20px;--prose-fg:var(--text-1);--prose-strong:var(--text-1);--prose-muted:var(--text-3);--code-inline-bg:rgb(var(--accent-rgb) / .08);--code-inline-fg:var(--accent-hover);--codeblock-bg:#161820;--codeblock-border:transparent;--codeblock-fg:#e6e8ee;--font-mono:var(--font-geist-mono), "D2Coding", Consolas, Menlo, monospace;--fs-2xs:11px;--fs-xs:12px;--fs-sm:13px;--fs-md:14px;--fs-body-sm:15px;--fs-base:16px;--fs-lg:18px;background:var(--page-bg)}:root[data-theme=light] .article-reader{--page-bg:#f2f3f7;--card-bg:#fff;--text-1:#16181d;--text-2:#3d434d;--text-3:#8b919b;--border:#e3e5ea;--border-hover:#cdd1d8;--surface-2:#f4f5f8;--accent:#1f6fe0;--accent-hover:#1a5fc2;--accent-rgb:31 111 224}:root[data-theme=dark] .article-reader{--page-bg:#0b0e14;--card-bg:#12161e;--text-1:#e4e7ec;--text-2:#b4bbc6;--text-3:#7f8896;--border:#232a35;--border-hover:#323b48;--surface-2:#181d27;--accent:#5aa2f6;--accent-hover:#86bbf8;--accent-rgb:90 162 246;--code-inline-bg:rgb(var(--accent-rgb) / .14);--code-inline-fg:#a9cdfa;--codeblock-bg:#0c0e13;--codeblock-border:#262a31}.article-reader .article-band{text-align:left;background:linear-gradient(160deg,#18294f 0%,#0b1020 72%);padding:72px 32px 64px;position:relative;overflow:hidden}.article-band__inner{z-index:1;width:min(100%, var(--site-width));align-items:center;gap:48px;margin:0 auto;display:flex;position:relative}.article-reader .article-band .article-hero{aspect-ratio:1.9;background:#ffffff0f;border-radius:8px;flex:0 0 46%;box-shadow:0 0 80px 8px #c8dcff14}.article-band__text{flex-direction:column;flex:1;align-items:flex-start;gap:18px;min-width:0;display:flex}.article-reader .article-band .article-badge{color:#ffffffc7;font-family:var(--font-sans);font-size:var(--fs-body-sm);letter-spacing:-.01em;text-transform:none;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff1a;border:0;border-radius:8px;padding:6px 12px;font-weight:500;display:inline-flex}.article-reader .article-band .article-badge:hover{color:#fff;background:#ffffff29}.article-reader .article-band .article-title{color:#fff;letter-spacing:-.02em;text-wrap:balance;margin:0;font-size:40px;font-weight:600;line-height:1.28}.article-reader .article-band .article-deck{color:#ffffffb8;margin:0;font-size:17px;line-height:1.6}.article-reader .article-band .article-meta{color:#fffc;font-family:var(--font-sans);letter-spacing:-.02em;font-variant-numeric:tabular-nums;border:0;flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:8px 12px;margin-top:4px;padding:0;font-size:17px;font-weight:500;display:flex}.article-meta__avatar{color:#1f6fe0;width:36px;height:36px;font-family:var(--font-mono);font-size:var(--fs-body-sm);background:#fff;border-radius:50%;place-items:center;font-weight:700;display:grid}.article-reader .article-band .article-author{color:#fff;font-weight:600}.meta-divider{background:#ffffff4d;width:1px;height:14px}.article-reader .article-band .article-tags{justify-content:flex-start;gap:8px}.article-reader .article-band .article-tag{color:#ffffffb3;font-size:var(--fs-sm);letter-spacing:0;text-transform:none;background:#ffffff14;border:0;border-radius:6px;padding:4px 10px;font-weight:500;transition:background .15s,color .15s}.article-reader .article-band .article-tag:hover{color:#fff;background:#ffffff29}.article-reader .article-shell{width:min(100%, calc(var(--site-width) + 64px));-moz-column-gap:40px;--reading-font-size:17px;--reading-line-height:1.75;grid-template-columns:minmax(0,200px) minmax(0,1fr) minmax(0,224px);align-items:start;gap:0 40px;margin:0 auto;padding:56px 32px 104px;display:grid}.article-reader .article-shell>*{grid-column:2;min-width:0;margin:0}.article-reader .article-shell .article-content{background:var(--card-bg);grid-row:1;padding:48px 48px 40px}.article-reader .article-after{background:var(--card-bg);flex-direction:column;grid-row:2;gap:40px;padding:0 48px 48px;display:flex}.article-reader .article-shell .article-toc-shell{grid-area:1/1/span 2;padding:0;position:sticky;top:96px}.article-reader .article-shell .article-toc{box-shadow:none;scrollbar-width:thin;scrollbar-color:var(--border) transparent;background:0 0;border:0;border-radius:0;max-height:calc(100dvh - 136px);padding:0;overflow-y:auto}.article-reader .article-toc__header{border-bottom:1px solid var(--border);margin-bottom:8px;padding:0 0 12px}.article-reader .article-toc__title{font-family:var(--font-sans);color:var(--text-3);font-size:var(--fs-body-sm);text-transform:none;letter-spacing:-.02em;font-weight:500}.article-reader .article-toc__list{gap:0}.article-reader .article-toc__item--level-3{padding-left:12px}.article-reader .article-toc__item--level-4,.article-reader .article-toc__item--level-5,.article-reader .article-toc__item--level-6{padding-left:24px}.article-reader .article-shell .article-toc__link{color:var(--text-2);letter-spacing:-.02em;opacity:1;overflow-wrap:anywhere;background:0 0;border:0;border-radius:0;margin:0;padding:7px 0;font-size:15.5px;font-weight:500;line-height:1.5;transition:color .15s;display:block}.article-reader .article-shell .article-toc__item--level-3 .article-toc__link,.article-reader .article-shell .article-toc__item--level-4 .article-toc__link{color:var(--text-3);font-size:14.5px}.article-reader .article-shell .article-toc__link:hover{color:var(--text-1);background:0 0}.article-reader .article-shell .article-toc__link.is-active{color:var(--accent);background:0 0;font-weight:600}.article-reader .article-shell .article-prose{font-family:var(--font-sans);letter-spacing:-.02em;color:var(--prose-fg);overflow-wrap:break-word;padding:0;font-size:17px;font-weight:400;line-height:1.75}.article-reader .article-shell .article-prose>:first-child{margin-top:0}.article-reader .article-shell .article-prose p{margin:0 0 var(--flow);color:inherit;font-size:inherit;line-height:inherit;letter-spacing:inherit}.article-reader .article-shell .article-prose strong{color:var(--prose-strong);font-weight:600}.article-reader .article-shell .article-prose h2,.article-reader .article-shell .article-prose h3,.article-reader .article-shell .article-prose h4{color:var(--text-1);letter-spacing:-.02em;border:0;padding:0;scroll-margin-top:96px;font-weight:600;display:block}.article-reader .article-shell .article-prose h2{letter-spacing:-.02em;margin:56px 0 20px;font-size:32px;line-height:1.4}.article-reader .article-shell .article-prose h3{margin:40px 0 14px;font-size:24px;line-height:1.45}.article-reader .article-shell .article-prose h4{margin:28px 0 10px;font-size:20px;line-height:1.5}.article-reader .article-shell .article-prose a{color:var(--accent);text-decoration:underline;-webkit-text-decoration-color:rgb(var(--accent-rgb) / .35);text-decoration-color:rgb(var(--accent-rgb) / .35);text-underline-offset:3px;border:0;text-decoration-thickness:1px;transition:text-decoration-color .15s}.article-reader .article-shell .article-prose a:hover{color:var(--accent);text-decoration-color:currentColor}.article-reader .article-shell .article-prose ul,.article-reader .article-shell .article-prose ol{margin:0 0 var(--flow);padding-left:1.4em}.article-reader .article-shell .article-prose li{color:inherit;line-height:inherit;margin:6px 0}.article-reader .article-shell .article-prose li::marker{color:var(--prose-muted)}.article-reader .article-shell .article-prose li>p{margin:6px 0}.article-reader .article-shell .article-prose li>ul,.article-reader .article-shell .article-prose li>ol{margin:6px 0 0}.article-reader .article-shell .article-prose blockquote{border:0;border-left:3px solid var(--accent);background:var(--surface-2);color:var(--text-2);font-size:var(--fs-body-sm);border-radius:0 8px 8px 0;margin:32px 0;padding:16px 20px;font-style:normal;line-height:1.7}.article-reader .article-prose blockquote>:first-child{margin-top:0}.article-reader .article-prose blockquote>:last-child{margin-bottom:0}.article-reader .article-shell .article-prose hr{border:0;border-top:1px solid var(--border);margin:56px 0}.article-reader .article-shell .article-prose img{border:1px solid var(--border);box-shadow:none;border-radius:8px;margin:32px auto}.article-reader .article-shell .article-prose table{font-size:var(--fs-body-sm);border:1px solid var(--border);border-collapse:separate;border-spacing:0;border-radius:8px;width:100%;margin:32px 0;line-height:1.6}.article-reader .article-shell .article-prose th,.article-reader .article-shell .article-prose td{border:0;border-bottom:1px solid var(--border);color:inherit;vertical-align:top;background:0 0;padding:10px 14px}.article-reader .article-shell .article-prose th{color:var(--text-1);background:var(--surface-2);font-weight:600}.article-reader .article-shell .article-prose tr:last-child>td{border-bottom:0}.article-reader .article-shell .article-prose :not(pre)>code{background:var(--code-inline-bg);color:var(--code-inline-fg);font-family:var(--font-mono);white-space:break-spaces;overflow-wrap:anywhere;border:0;border-radius:6px;padding:.16em .4em;font-size:.86em;font-weight:450}.article-reader .article-shell .code-block{border:1px solid var(--codeblock-border);background:var(--codeblock-bg);box-shadow:none;border-radius:12px;margin:32px 0;position:relative;overflow:hidden}.article-reader .code-block .code-block__header{background:#ffffff06;border:0;border-bottom:1px solid #ffffff0f;justify-content:space-between;align-items:center;height:38px;padding:0 12px 0 18px;display:flex;position:static}.article-reader .code-block__dots{display:none}.article-reader .code-block .code-block__label{color:#ffffff73;font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.06em;text-transform:uppercase;background:0 0;border:0;flex:1;padding:0;font-weight:500}.article-reader .code-block .code-copy-button{color:#ffffff8c;height:24px;font-family:var(--font-sans);font-size:var(--fs-2xs);background:0 0;border:1px solid #ffffff1a;border-radius:6px;padding:0 10px;transition:color .15s,border-color .15s}.article-reader .code-block .code-copy-button:hover{color:#ffffffd9;border-color:#ffffff40}.article-reader .article-shell .article-prose pre{background:var(--codeblock-bg);box-shadow:none;color:var(--codeblock-fg);font-family:var(--font-mono);font-size:var(--fs-md);border:0;border-radius:0;max-width:100%;margin:0;padding:18px 20px;line-height:1.7}.article-reader .article-shell .article-prose pre.line-numbers{padding-left:4.2em}.article-reader .article-shell .article-prose pre code{font-family:var(--font-mono);font-size:inherit;line-height:inherit;color:inherit;font-weight:400;position:relative}.article-reader .article-prose .line-numbers-rows{border-right:1px solid #ffffff14;width:3.2em;display:block;top:0;left:-4.2em}.article-reader .article-comments{border:0;border-top:1px solid var(--border);background:0 0;border-radius:0;margin:0;padding:32px 0 0}.article-reader .article-shell .article-recommendations{font-family:var(--font-sans);grid-area:1/3/span 2;position:sticky;top:96px}.article-recommendations h2{border-bottom:1px solid var(--border);color:var(--text-3);font-size:var(--fs-body-sm);letter-spacing:-.02em;margin:0 0 4px;padding-bottom:12px;font-weight:500}.article-recommendations__link{border-bottom:1px solid var(--border);align-items:flex-start;gap:12px;padding:12px 0;display:flex}.article-recommendations__link>span{flex:1;min-width:0}.article-recommendations__link small{color:var(--accent);font-size:var(--fs-sm);margin-bottom:4px;font-weight:600;display:block}.article-recommendations__link strong{color:var(--text-1);font-size:var(--fs-body-sm);-webkit-line-clamp:3;-webkit-box-orient:vertical;font-weight:500;line-height:1.5;display:-webkit-box;overflow:hidden}.article-recommendations__link:hover strong{color:var(--accent)}.article-recommendations__link img{-o-object-fit:cover;object-fit:cover;border:1px solid var(--border);border-radius:4px;flex:none;width:104px;height:55px}.article-recommendations__all{color:var(--text-3);font-size:var(--fs-md);margin-top:12px;display:inline-block}.article-recommendations__all:hover{color:var(--accent)}@media (max-width:1279px){.article-reader .article-shell{-moz-column-gap:40px;grid-template-columns:minmax(0,200px) minmax(0,1fr);column-gap:40px}.article-reader .article-shell .article-recommendations{grid-area:3/2;margin-top:48px;position:static}}@media (max-width:1099px){.article-band__inner{flex-direction:column;align-items:stretch;gap:32px;width:min(100%,768px)}.article-reader .article-band .article-hero{flex:none;width:100%}.article-reader .article-shell{flex-direction:column;gap:0;max-width:816px;padding:40px 24px 80px;display:flex}.article-reader .article-shell>*{width:100%}.article-reader .article-shell .article-toc-shell{margin-bottom:24px;position:static}.article-reader .article-shell .article-toc{background:var(--card-bg);border-radius:8px;max-height:280px;padding:16px 20px}.article-reader .article-shell .article-recommendations{margin-top:48px}}@media (max-width:767px){.article-reader{--flow:18px}.article-reader .article-band{padding:40px 20px 36px}.article-reader .article-band .article-title{font-size:26px;line-height:1.35}.article-reader .article-band .article-meta{font-size:var(--fs-md)}.article-meta__avatar{width:28px;height:28px;font-size:var(--fs-sm)}.article-reader .article-shell{padding:24px 0 64px}.article-reader .article-shell .article-toc-shell{padding:0 16px}.article-reader .article-shell .article-content{padding:28px 20px 32px}.article-reader .article-after{padding:0 20px 32px}.article-reader .article-shell .article-recommendations{padding:0 20px}.article-reader .article-shell .article-prose{font-size:var(--fs-body-sm);line-height:1.75}.article-reader .article-shell .article-prose h2{margin-top:44px;font-size:24px}.article-reader .article-shell .article-prose h3{margin-top:32px;font-size:20px}.article-reader .article-shell .article-prose h4{font-size:18px}.article-reader .article-shell .article-prose table{display:block;overflow-x:auto}.article-reader .article-shell .code-block{border-inline:0;border-radius:0;margin:24px -20px}.article-reader .article-shell .article-prose pre{font-size:var(--fs-sm);padding:16px 20px}}@media print{.article-reader .article-shell{width:100%;padding:0;display:block}.article-reader .article-shell .article-toc-shell,.article-reader .article-recommendations{display:none}}
