.article-reading-page{--article-bg:var(--frontend-page-bg);--article-bg-soft:var(--frontend-page-bg-soft);--article-surface:#faf8f2b8;--article-surface-strong:#f7f4ece6;--article-ink:#342f27;--article-muted:#706c64;--article-faint:#aaa49a;--article-divider:#655c4e2e;--article-border:#655c4e29;--article-accent:#5d5fc7;--article-accent-soft:#5d5fc71c;isolation:isolate;max-width:min(100%,1180px);color:var(--article-ink);position:relative}.dark .article-reading-page{--article-surface:#201c16bd;--article-surface-strong:#26211ae6;--article-ink:#f4ebde;--article-muted:#c8bba8;--article-faint:#8f806d;--article-divider:#fff4e11f;--article-border:#fff4e11f;--article-accent:#82d3c6;--article-accent-soft:#82d3c624}.article-reading-page:before{content:"";z-index:-1;pointer-events:none;background:var(--frontend-page-gradient);position:fixed;inset:0}:is(.frontend-shell-inner:has(.article-reading-page) .frontend-canvas-wash,.frontend-shell-inner:has(.article-reading-page) .frontend-canvas-clouds,.frontend-shell-inner:has(.article-reading-page) .frontend-canvas-grid,.frontend-shell-inner:has(.article-reading-page) .frontend-canvas-diffusion,.frontend-shell-inner:has(.article-reading-page) .bg-orb){display:none}.article-reading-shell{grid-template-columns:minmax(0,720px) minmax(13rem,15rem);justify-content:center;align-items:start;gap:clamp(2.5rem,5vw,4.5rem);display:grid}.article-reading-main,.article-reading-article,.article-reading-content{min-width:0}.article-reading-header{margin-bottom:clamp(2.25rem,5vw,4rem)}.article-reading-title{letter-spacing:-.045em;max-width:13.5em;color:var(--article-ink);text-wrap:balance;font-family:Noto Serif SC,Source Han Serif SC,Songti SC,Georgia,serif;font-size:clamp(2.25rem,1.55rem + 3vw,4.4rem);font-weight:650;line-height:1.12}.article-reading-subtitle{max-width:58ch;color:var(--article-muted);margin-top:1.25rem;font-size:clamp(1rem,.94rem + .32vw,1.18rem);line-height:1.75}.article-reading-meta{color:var(--article-faint);flex-wrap:wrap;align-items:center;gap:.55rem .85rem;margin-top:1.35rem;font-size:.82rem;line-height:1.6;display:flex}.article-reading-meta time{font-variant-numeric:tabular-nums}.article-reading-meta-dot{opacity:.55;background:currentColor;border-radius:999px;width:3px;height:3px}.article-like{align-items:center;gap:.5rem;display:inline-flex}.article-like-button{border:1px solid var(--article-border);background:color-mix(in oklab, var(--article-surface) 76%, transparent);min-height:2rem;color:var(--article-muted);cursor:pointer;font:inherit;border-radius:999px;align-items:center;gap:.35rem;padding:.28rem .62rem;line-height:1;transition:border-color .16s,background-color .16s,color .16s,transform .16s;display:inline-flex}.article-like-button strong{color:inherit;font-weight:700}.article-like-button:hover,.article-like-button:focus-visible,.article-like-button--liked{border-color:color-mix(in oklab, var(--article-accent) 58%, transparent);background:var(--article-accent-soft);color:var(--article-accent)}.article-like-button:hover{transform:translateY(-1px)}.article-like-button:disabled{cursor:wait;opacity:.72}.article-like-message{color:#dc2626;font-size:.76rem}.dark .article-like-message{color:#f87171}.article-reading-taxonomy{flex-wrap:wrap;gap:.5rem;margin-top:1rem;display:flex}.article-reading-taxonomy-link{border:1px solid var(--article-border);color:var(--article-muted);border-radius:999px;align-items:center;padding:.32rem .72rem;font-size:.78rem;line-height:1.2;transition:border-color .16s,color .16s,background-color .16s;display:inline-flex}.article-reading-taxonomy-link:hover{border-color:color-mix(in oklab, var(--article-accent) 42%, var(--article-border));background:var(--article-accent-soft);color:var(--article-accent)}.article-reading-taxonomy-tag{border:1px solid var(--article-border);color:color-mix(in oklab, var(--article-muted) 86%, var(--article-accent));cursor:default;border-radius:999px;align-items:center;padding:.32rem .72rem;font-size:.78rem;line-height:1.2;display:inline-flex}.article-mobile-toc{display:none}.article-reading-content{max-width:70ch;color:var(--article-muted);font-size:clamp(1rem,.96rem + .2vw,1.08rem);line-height:1.88}.article-reading-content>:first-child{margin-top:0}.article-reading-content :where(h1,h2,h3){scroll-margin-top:calc(var(--frontend-shell-main-offset) + 1.5rem);max-width:22em;color:var(--article-ink);letter-spacing:-.025em;font-family:Noto Serif SC,Source Han Serif SC,Songti SC,Georgia,serif;font-weight:650}.article-reading-content h1{margin-top:3rem;margin-bottom:1.25rem;font-size:clamp(1.8rem,1.35rem + 1.5vw,2.55rem);line-height:1.22}.article-reading-content h2{margin-top:clamp(3rem,7vw,4.6rem);margin-bottom:1rem;font-size:clamp(1.48rem,1.18rem + 1vw,2rem);line-height:1.28}.article-reading-content h3{margin-top:2.3rem;margin-bottom:.85rem;font-size:clamp(1.18rem,1.05rem + .55vw,1.45rem);line-height:1.35}.article-reading-content p,.article-reading-content ul,.article-reading-content ol,.article-reading-content blockquote,.article-reading-content pre,.article-reading-content table,.article-reading-content .article-reading-details,.article-reading-content .article-reading-image-wrap{margin-top:0;margin-bottom:1.35rem}.article-reading-markdown-segment>:first-child,.article-reading-details-body>:first-child{margin-top:0}.article-reading-markdown-segment>:last-child,.article-reading-details-body>:last-child{margin-bottom:0}.article-reading-content p{color:var(--article-muted)}.article-reading-content strong{color:var(--article-ink);font-weight:650}.article-reading-content a{color:var(--article-accent);text-decoration:underline;-webkit-text-decoration-color:color-mix(in oklab, var(--article-accent) 30%, transparent);text-decoration-color:color-mix(in oklab, var(--article-accent) 30%, transparent);text-underline-offset:.2em;text-decoration-thickness:1px}.article-reading-content a:hover{text-decoration-color:currentColor}.article-reading-content ul,.article-reading-content ol{padding-left:1.35rem}.article-reading-content li{color:var(--article-muted);margin-bottom:.42rem;padding-left:.2rem}.article-reading-content li::marker{color:var(--article-accent)}.article-reading-content blockquote{border-left:3px solid color-mix(in oklab, var(--article-accent) 45%, var(--article-border));color:color-mix(in oklab, var(--article-ink) 68%, var(--article-muted));padding:.15rem 0 .15rem 1.15rem}.article-reading-content blockquote p{color:inherit}.article-reading-details{border:1px solid var(--article-border);border-radius:var(--r-lg);background:var(--article-surface);padding:.9rem 1rem}.article-reading-details>summary{cursor:pointer;color:var(--article-ink);font-weight:650;line-height:1.5}.article-reading-details>summary::marker{color:var(--article-accent)}.article-reading-details-body{border-top:1px solid var(--article-border);margin-top:.9rem;padding-top:.9rem}.article-reading-content :not(pre)>code{border:1px solid var(--article-border);background:var(--article-surface-strong);color:color-mix(in oklab, var(--article-ink) 82%, var(--article-accent));border-radius:.35rem;padding:.12rem .38rem;font-size:.9em}.article-reading-content pre{color:#dedbd3;background:#1d1b18;border:1px solid #ffffff12;border-radius:1rem;padding:1.2rem;font-size:.88rem;line-height:1.78;overflow-x:auto}.article-reading-content pre code{color:inherit;font-size:inherit;background:0 0;padding:0}.article-reading-content table{border-collapse:collapse;width:100%;font-size:.92rem;display:block;overflow-x:auto}.article-reading-content th,.article-reading-content td{border-bottom:1px solid var(--article-divider);text-align:left;white-space:nowrap;padding:.75rem .85rem}.article-reading-content th{color:var(--article-ink);font-weight:650}.article-reading-image-wrap{display:block}.article-reading-image{border-radius:1rem;width:100%;height:auto}.article-reading-loading{color:var(--article-muted);font-size:.95rem}.frontend-reading-toc{align-self:start;min-width:0}.article-toc-card{border:1px solid var(--article-border);background:var(--article-surface);border-radius:1rem;padding:1rem}.article-toc-progress{margin-bottom:1.05rem}.article-toc-progress-header{color:var(--article-faint);justify-content:space-between;align-items:center;margin-bottom:.45rem;font-size:.72rem;font-weight:600;display:flex}.article-toc-progress-header span:last-child{color:var(--article-accent);font-variant-numeric:tabular-nums}.article-toc-progress-track{background:color-mix(in oklab, var(--article-border) 70%, transparent);border-radius:999px;height:4px;overflow:hidden}.article-toc-progress-bar{border-radius:inherit;background:var(--article-accent);height:100%;transition:width .12s linear}.article-toc-title{color:var(--article-ink);margin-bottom:.75rem;font-size:.88rem;font-weight:650}.article-toc-title--tool{color:var(--article-muted);margin-bottom:0}.article-toc-nav{flex-direction:column;gap:.18rem;display:flex}.article-toc-link{--toc-depth:0;padding:.48rem .55rem .48rem calc(.65rem + var(--toc-depth) * .7rem);color:var(--article-muted);border-left:2px solid #0000;border-radius:.55rem;font-size:.78rem;line-height:1.45;transition:background-color .16s,border-color .16s,color .16s;display:block}.article-toc-link:hover{background:color-mix(in oklab, var(--article-surface-strong) 68%, transparent);color:var(--article-ink)}.article-toc-link.is-active{border-left-color:var(--article-accent);background:var(--article-accent-soft);color:var(--article-accent);font-weight:600}.article-toc-link-text{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.article-toc-back-top{width:100%;color:var(--article-faint);text-align:right;border-radius:.55rem;margin-top:.9rem;padding:.5rem .55rem;font-size:.76rem;transition:background-color .16s,color .16s}.article-toc-back-top:hover{background:color-mix(in oklab, var(--article-surface-strong) 68%, transparent);color:var(--article-accent)}.article-reading-footer{margin-top:clamp(3rem,7vw,5rem)}.article-reading-engagement{justify-content:center;margin-bottom:1.5rem;display:flex}.article-reading-post-nav{border-top:1px solid var(--article-divider);grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:stretch;gap:1rem;padding-top:1.5rem;display:grid}.article-reading-post-link,.article-reading-post-center{border-radius:.8rem;padding:.85rem .9rem;transition:background-color .16s,color .16s}.article-reading-post-link:hover,.article-reading-post-center:hover{background:color-mix(in oklab, var(--article-surface-strong) 72%, transparent)}.article-reading-post-link span{color:var(--article-faint);margin-bottom:.35rem;font-size:.72rem;display:block}.article-reading-post-link strong{color:var(--article-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.92rem;font-weight:560;line-height:1.45;display:-webkit-box;overflow:hidden}.article-reading-post-link:hover strong{color:var(--article-ink)}.article-reading-post-link--next{text-align:right}.article-reading-post-center{color:var(--article-muted);white-space:nowrap;justify-content:center;align-items:center;font-size:.78rem;display:flex}.article-reading-comments{border-top:1px solid var(--article-divider);margin-top:clamp(2.5rem,6vw,4rem);padding-top:clamp(2rem,5vw,3rem)}.article-comment-placeholder{border:1px solid var(--article-border);border-radius:var(--r-xl);background:color-mix(in oklab, var(--article-surface) 72%, transparent);color:var(--article-muted);margin-top:4rem;padding:1.35rem 1.5rem;font-size:.9rem}.article-comments{border-top:1px solid var(--article-divider);padding-top:1.5rem}.article-comment-title{color:var(--article-ink);margin:0 0 1.25rem;font-size:1.05rem;font-weight:650;line-height:1.4}.article-comments-empty{color:var(--article-faint);padding:.75rem 0;font-size:.88rem;line-height:1.7}.article-comment-list{display:grid}.article-comment{color:var(--article-ink);padding:.85rem 0;font-size:.92rem;line-height:1.75}.article-comment+.article-comment{border-top:1px dashed var(--article-divider)}.article-comment-nick{color:var(--article-muted);margin-right:.5rem;font-weight:560}.article-comment-nick--admin{color:var(--article-accent)}.article-comment-content{color:var(--article-muted)}.article-comment-time,.article-comment-reply{color:var(--article-faint);margin-left:.5rem;font-size:.76rem}.article-comment-reply{cursor:pointer;background:0 0;border:0;padding:0;font-family:inherit;transition:color .16s}.article-comment-reply:hover,.article-comment-reply:focus-visible{color:var(--article-accent)}.article-comment-replies{border-left:2px solid var(--article-divider);margin-top:.55rem;margin-left:1rem;padding-left:.9rem}.article-comment--reply{padding-block:.5rem}.article-comment-notice{color:var(--article-accent);margin:.35rem 0 .75rem;font-size:.8rem;line-height:1.6}.article-comment-hint{color:var(--article-faint);margin:1rem 0 .55rem;font-size:.8rem;line-height:1.6}.article-comment-load-more{border:1px solid var(--article-border);border-radius:var(--r-full);background:color-mix(in oklab, var(--article-surface) 72%, transparent);min-height:2.5rem;color:var(--article-muted);cursor:pointer;font:inherit;margin:.85rem 0 .25rem;font-size:.84rem;transition:border-color .16s,color .16s,transform .16s}.article-comment-load-more:hover,.article-comment-load-more:focus-visible{border-color:color-mix(in oklab, var(--article-accent) 45%, var(--article-border));color:var(--article-ink);transform:translateY(-1px)}.article-comment-load-more:disabled{cursor:wait;opacity:.62;transform:none}.article-comment-form{gap:.75rem;display:flex}.article-comment-form textarea{resize:vertical;border:1px solid var(--article-border);border-radius:var(--r-lg);background:color-mix(in oklab, var(--article-surface-strong) 78%, transparent);min-height:2.75rem;color:var(--article-ink);font:inherit;outline:none;flex:1;padding:.75rem .9rem;font-size:.92rem;line-height:1.55;transition:border-color .16s,box-shadow .16s}.article-comment-form textarea::placeholder{color:color-mix(in oklab, var(--article-faint) 82%, transparent)}.article-comment-form textarea:focus{border-color:color-mix(in oklab, var(--article-accent) 62%, var(--article-border));box-shadow:0 0 0 4px var(--article-accent-soft)}.article-comment-form button{border-radius:var(--r-lg);background:var(--article-accent);color:#fff;cursor:pointer;min-height:2.75rem;font:inherit;border:0;align-self:flex-end;padding:0 1.1rem;font-size:.86rem;font-weight:650;transition:opacity .16s,transform .16s}.article-comment-form button:hover,.article-comment-form button:focus-visible{transform:translateY(-1px)}.article-comment-form button:disabled{cursor:not-allowed;opacity:.5;transform:none}.frontend-reading-layout,.frontend-reading-body,.frontend-reading-surface{min-width:0}@media (max-width:1099px){.article-reading-page{max-width:min(100%,820px)}.article-reading-shell{grid-template-columns:minmax(0,1fr);gap:0}.frontend-reading-toc{display:none}.article-mobile-toc{border-block:1px solid var(--article-divider);margin-bottom:clamp(2rem,6vw,3rem);display:block}.article-mobile-toc summary{cursor:pointer;color:var(--article-ink);justify-content:space-between;align-items:center;gap:1rem;padding:.9rem 0;font-size:.9rem;font-weight:600;list-style:none;display:flex}.article-mobile-toc summary::-webkit-details-marker{display:none}.article-mobile-toc summary span:last-child{color:var(--article-faint);font-size:.76rem;font-weight:500}.article-mobile-toc-panel{padding-bottom:.9rem}}@media (max-width:767px){.article-reading-page{padding-block:clamp(1.8rem,8vw,2.8rem)}.article-reading-title{letter-spacing:-.055em;font-size:clamp(2rem,11vw,3rem)}.article-reading-meta{gap:.35rem .65rem;font-size:.76rem}.article-reading-meta-dot{display:none}.article-reading-taxonomy-link,.article-reading-taxonomy-tag{padding:.28rem .62rem;font-size:.74rem}.article-reading-content{max-width:none;font-size:1rem;line-height:1.86}.article-reading-content h2{margin-top:3rem}.article-reading-content pre{margin-inline:calc(var(--frontend-shell-inline) * -.35);border-radius:.85rem;padding:1rem}.article-reading-post-nav{grid-template-columns:1fr;gap:.35rem}.article-reading-post-center{order:-1;justify-content:flex-start}.article-reading-post-link--next{text-align:left}.article-reading-post-link-placeholder{display:none}.article-comment-form{flex-direction:column;gap:.65rem}.article-comment-form button{width:100%}}
