:root{--interaction-duration:180ms;--interaction-ease:cubic-bezier(0.22,1,0.36,1)}.lab-theme :is(button,a.button,summary,.tag-chip,.text-link,.main-nav>a,.lab-category-nav>a,.content-filters a,.admin-sidebar nav>a,.settings-tabs button,input,select,textarea){transition-property:color,background-color,border-color,box-shadow,opacity,translate,scale;transition-duration:var(--interaction-duration);transition-timing-function:var(--interaction-ease)}:where(button,a.button,summary,.tag-chip,.text-link,.lab-category-nav>a,.content-filters a,.admin-sidebar nav>a):focus-visible{outline:2px solid var(--blue);outline-offset:4px}:where(button,a.button):not(:disabled):not([aria-disabled=true]):active{scale:.98}:where(input,textarea,select):not(:disabled):focus-visible{border-color:var(--blue);box-shadow:0 0 0 3px color-mix(in srgb,var(--blue) 11%,transparent)}.admin-sidebar nav,.site-header .main-nav{position:relative;isolation:isolate}.nav-hover-highlight{position:absolute;z-index:-1;pointer-events:none;left:0;top:0;width:var(--nav-hover-width,0);height:var(--nav-hover-height,0);translate:var(--nav-hover-x,0) var(--nav-hover-y,0);border-radius:8px;background:color-mix(in srgb,var(--blue) 8%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--blue) 10%,transparent);opacity:0;transition:opacity .16s ease}.nav-hover-highlight[data-visible=true]{opacity:1}.nav-hover-highlight[data-tracking=true]{transition:translate .3s var(--interaction-ease),width .3s var(--interaction-ease),height .3s var(--interaction-ease),opacity .16s ease}.site-header .main-nav>a{border-radius:7px}.lab-theme .button.primary:hover{transform:none;filter:none}.lab-theme .button:disabled:hover,.lab-theme .button[aria-disabled=true]:hover{transform:none;translate:none;scale:none;filter:none;box-shadow:none}.lab-theme .button.primary:disabled:hover{background:var(--accent);border-color:var(--accent)}@media (hover:hover) and (pointer:fine){.lab-theme :where(button,a.button,summary):not(:disabled):not([aria-disabled=true]):hover{border-color:color-mix(in srgb,var(--blue) 45%,var(--border))}.lab-theme :where(.icon-button,.search-trigger,.button):not(:disabled):not([aria-disabled=true]):hover{translate:0 -1px;box-shadow:0 4px 12px color-mix(in srgb,var(--text) 5%,transparent)}.lab-theme :where(.tag-chip,.lab-category-nav>a,.content-filters a):hover{translate:0 -1px;box-shadow:0 2px 7px color-mix(in srgb,var(--blue) 10%,transparent)}.lab-theme :where(.main-nav>a,.admin-sidebar nav>a):hover{color:var(--blue)}.lab-theme .admin-sidebar nav>a>svg{transition:translate var(--interaction-duration) var(--interaction-ease)}.lab-theme .admin-sidebar nav>a:hover>svg{translate:2px 0}.site-header .main-nav>a:hover{translate:0 -1px}}html[data-page-gate-motion=off] :is(button,a,summary,input,select,textarea,.nav-hover-highlight){transition:none!important;translate:none!important;scale:none!important}html[data-page-gate-motion=off] .admin-sidebar nav>a>svg{transition:none!important;translate:none!important}html[data-page-gate-motion=off] .nav-hover-highlight{translate:var(--nav-hover-x,0) var(--nav-hover-y,0)!important}@media (prefers-reduced-motion:reduce){:is(button,a,summary,input,select,textarea,.nav-hover-highlight){transition:none!important;translate:none!important;scale:none!important}.admin-sidebar nav>a>svg{transition:none!important;translate:none!important}.nav-hover-highlight{translate:var(--nav-hover-x,0) var(--nav-hover-y,0)!important}}@media (max-width:760px){.site-header .nav-hover-highlight{display:none}.site-header .main-nav>a:focus-visible{background:var(--accent-soft)}}:root{--font-ui:"Noto Sans SC","Segoe UI","PingFang SC","Microsoft YaHei",Arial,sans-serif;--font-code:"SFMono-Regular",Consolas,"Liberation Mono","Noto Sans SC",monospace;--type-caption:0.8125rem;--type-label:0.875rem;--type-summary:0.9375rem}body.lab-theme{font-family:var(--font-ui);font-weight:400}.lab-theme :is(.mono,code,kbd,pre,.markdown-editor){font-family:var(--font-code)}.lab-theme .eyebrow{font-family:var(--font-ui);font-weight:600;letter-spacing:.04em;line-height:1.6}.public-main .page-heading>.eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:var(--type-label);color:var(--blue)}.public-main .page-heading>.eyebrow>span{width:16px;height:2px;border-radius:1px;background:currentColor}.public-main .page-heading>p{font-size:16px;line-height:1.85;color:var(--muted)}.lab-theme .public-main .content-filters>a.selected{color:var(--blue)}.public-main :is(.post-card,.post-row,.topic-card,.friend-card) h3{font-weight:600;letter-spacing:0}.public-main .reading-post-card h3{font-size:19px;line-height:1.65}.public-main .post-row>div>p,.public-main .reading-post-card .post-excerpt,.public-main :is(.reading-topic-card,.reading-friend-card)>p{font-size:var(--type-summary);font-weight:400;line-height:1.85}.lab-theme .public-main .archive-row .archive-category,.lab-theme .public-main .archive-row .archive-date,.lab-theme .public-main .post-card .post-read,.lab-theme .public-main .post-row .post-read,.public-main .archive-row time,.public-main .article-utility-caption,.public-main .breadcrumbs,.public-main .list-meta,.public-main .pagination,.public-main .pagination a,.public-main .post-labels .meta-date,.public-main .post-row .post-labels>.small,.public-main .post-row-meta,.public-main .public-filter-label,.public-main .reading-post-card .post-card-footer,.public-main .reading-related-meta,.public-main .reading-topic-card .series-mode-label,.public-main .series-chapters time,.public-main .topic-count{font-size:var(--type-caption);font-weight:500;line-height:1.7}.lab-theme .comment-reply-badge,.lab-theme .public-main :is(.category-pill,.tiny-label,.post-access-badge,a.tag-chip){font-size:12px;font-weight:500;line-height:1.7}.lab-theme .comment-reply-badge{color:var(--blue)}.public-main .lab-profile>p,.public-main .sidebar-panel :is(.lab-profile-bio,.article-sidebar-empty){font-size:var(--type-label);line-height:1.85}.public-main .article-sidebar-more,.public-main .article-sidebar-pagination,.public-main .wechat-compact small,.public-main .wechat-expanded p,.public-main :is(.sidebar-panel,.article-continuation) .text-link{font-size:var(--type-caption);line-height:1.7}.public-main .article-continuation-caption,.public-main .article-continuation-neighbors small,.public-main .comment-item time,.public-main .lab-tag-panel .muted.small,.public-main .wechat-article-copy small,.public-main .wechat-article-copy>span,.public-main .wechat-code>span,.public-main .wechat-kicker{font-size:var(--type-caption);line-height:1.7}.public-main .lab-profile-stats span,.public-main .lab-series-list small,.public-main .series-chapter-meta,.public-main .toc-hierarchy>a[data-toc-depth]{font-size:var(--type-caption)}.lab-theme .public-main .archive-date{font-family:var(--font-ui)}.lab-theme .public-main .series-chapters .series-chapter-label{font-size:var(--type-caption);font-weight:500}.lab-theme .admin-heading .eyebrow,.lab-theme .login-panel>.eyebrow,.lab-theme .quick-start .eyebrow{font-size:var(--type-caption)}.lab-theme .admin-nav-caption.mono{font-family:var(--font-ui);font-size:12px;font-weight:500;letter-spacing:.04em}.lab-theme .admin-sidebar nav>a{font-size:var(--type-label);font-weight:500;line-height:1.7}.lab-theme .admin-heading h1{font-size:1.6875rem}.lab-theme .admin-app .status-badge{font-size:var(--type-caption);font-weight:500}.lab-theme .admin-heading p,.lab-theme .settings-form>p{font-size:var(--type-summary);line-height:1.85}.lab-theme :is(.admin-app,.login-panel) :is(label,.field-label){font-size:var(--type-label);font-weight:500}.lab-theme :is(input,select,textarea){font-weight:400}.lab-theme .admin-app .form-actions>p,.lab-theme .admin-app .settings-form .muted.small,.lab-theme .admin-app .settings-form small.muted,.lab-theme .admin-app :is(.checkbox-label,.switch-label) small,.lab-theme .admin-app :is(.table-sub,.table-pagination,.upload-guide p),.lab-theme .admin-app label>small,.lab-theme :is(.admin-app,.login-panel) :is(.form-help,.field-help){font-size:var(--type-caption);font-weight:400;line-height:1.7}.lab-theme .admin-app th{font-size:var(--type-caption);font-weight:600}.lab-theme .admin-brand-name small{font-size:12px}.lab-theme .admin-app .stat-card small{font-size:var(--type-caption)}.lab-theme .admin-app .settings-save-status{font-size:var(--type-caption);line-height:1.7}.lab-theme input::placeholder,.lab-theme textarea::placeholder{color:var(--muted);opacity:1}.lab-theme .site-footer .footer-copyright,.lab-theme .site-footer .footer-inner>div:first-child p{font-size:var(--type-caption);line-height:1.8}@media (max-width:600px){.public-main .reading-post-card h3{font-size:18px}}.page-load-shell{display:none;position:fixed;inset:0;z-index:2000;background:var(--bg);color:var(--text);opacity:1}html[data-page-gate] .page-load-shell{display:block}html[data-page-gate=failed] .page-gate-content,html[data-page-gate=loading] .page-gate-content{visibility:hidden;pointer-events:none}html[data-page-gate=leaving] .page-load-shell{pointer-events:none;opacity:0;transition:opacity .26s cubic-bezier(.22,1,.36,1)}html[data-page-gate-enabled=true] .route-content>:where(.container,.home-experience,.public-not-found){animation:none}.page-load-screen{display:grid;place-items:center;width:100%;height:100%;min-height:240px;padding:28px;overflow:auto;font-family:Segoe UI,PingFang SC,Microsoft YaHei,sans-serif}.page-load-identity{display:flex;flex-direction:column;align-items:center;text-align:center;max-width:360px;transform:translateY(-16px)}.page-load-emblem{display:grid;place-items:center;position:relative;width:128px;height:128px;margin-bottom:28px}.page-load-orbit{position:absolute;inset:0;width:128px;height:128px;stroke-width:1}.page-load-frame,.page-load-ticks{stroke:var(--border)}.page-load-trace{stroke:var(--blue);stroke-linecap:round;stroke-dasharray:64 330;animation:page-load-trace 2.8s linear infinite}.page-load-mark{--brand-size:64px}.page-load-name{margin:0 0 12px;font-size:21px;font-weight:650;letter-spacing:.025em;overflow-wrap:anywhere}.page-load-failure,.page-load-pending{color:var(--muted);font-size:13px;letter-spacing:.03em}.page-load-failure p,.page-load-pending p{margin:0}.page-load-line{display:block;position:relative;overflow:hidden;width:96px;height:2px;margin:22px auto 0;background:var(--border);border-radius:2px}.page-load-line:after{content:"";position:absolute;width:32px;height:100%;background:var(--blue);border-radius:inherit;animation:page-load-line 1.7s ease-in-out infinite}.page-load-failure{display:none}.page-load-failure small{display:block;margin:8px 0 20px;font-size:12px}.page-load-failure .button{min-height:40px;padding:7px 18px;color:var(--text);border:1px solid var(--border)}html[data-page-gate=failed] .page-load-pending{display:none}html[data-page-gate=failed] .page-load-failure{display:block}html[data-page-gate-motion=off] .page-load-line:after,html[data-page-gate-motion=off] .page-load-trace,html[data-page-gate=failed] .page-load-trace{animation:none}html[data-page-gate-motion=off] .page-load-shell{transition:none}@keyframes page-load-trace{to{stroke-dashoffset:-394}}@keyframes page-load-line{0%{transform:translateX(-32px)}to{transform:translateX(128px)}}@media (prefers-reduced-motion:reduce){.page-load-line:after,.page-load-trace{animation:none}html[data-page-gate=leaving] .page-load-shell{transition:none}}@media (scripting:none){html[data-page-gate] .page-load-shell{display:none}html[data-page-gate] .page-gate-content{visibility:visible;pointer-events:auto}}