.reading-progress-track{position:fixed;inset:0 0 auto;z-index:60;height:2px;background:transparent}.reading-progress-bar{height:100%;width:0;background:var(--text);transition:width .2s ease}.article-head{margin:0}.article-tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1rem}.article-title{margin:0;font-family:var(--font-display);font-weight:800;font-size:clamp(2.1rem,4.4vw,3rem);line-height:1.12;letter-spacing:-.04em}:lang(zh) .article-title{font-weight:700;letter-spacing:-.025em}.article-excerpt{margin:1rem 0 0;font-size:1rem;line-height:1.7;color:var(--muted)}.article-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin:1.25rem 0 0;padding-top:1.25rem;border-top:1px solid var(--line);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}.article-notice{margin:1.75rem 0 0;padding:.85rem 1.1rem;border-left:2px solid var(--line-strong);background:var(--surface-glass);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:0 var(--radius) var(--radius) 0;font-size:.8rem;line-height:1.65;color:var(--muted)}.article-grid{display:grid;gap:3rem}.article-col{min-width:0;max-width:var(--measure);margin:0 auto;width:100%}.article-body{margin-top:2.5rem}.toc-inline+.article-body{margin-top:1.75rem}@media(min-width:1200px){.toc-inline{display:none}}.toc{position:sticky;top:6rem;max-height:calc(100vh - 9rem);overflow:hidden auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}.toc-title{display:block;margin-bottom:.9rem;font-family:var(--font-mono);font-size:.62rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--faint)}.toc-list{margin:0;padding:0;list-style:none;border-left:1px solid var(--line)}.toc-link{display:block;margin-left:-1px;padding:.34rem 0 .34rem .9rem;border-left:1px solid transparent;font-size:.8rem;line-height:1.5;color:var(--faint);transition:color var(--dur-fast) ease,border-color var(--dur-fast) ease}.toc-link:hover{color:var(--text);border-left-color:var(--line-strong)}.toc-link.is-active{color:var(--text);font-weight:600;border-left-color:var(--text)}.toc-link.is-depth-3{padding-left:1.7rem;font-size:.76rem}.toc-inline{margin-top:2.5rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-glass);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.toc-inline>summary{display:flex;align-items:center;justify-content:space-between;padding:.7rem 1rem;cursor:pointer;font-family:var(--font-mono);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);list-style:none}.toc-inline>summary::-webkit-details-marker{display:none}.toc-inline>summary:after{content:"+";font-size:.9rem;color:var(--faint)}.toc-inline[open]>summary:after{content:"−"}.toc-inline .toc{position:static;max-height:none;padding:0 1rem 1rem}.toc-inline .toc-title{display:none}.article-pager{display:grid;gap:1rem;margin-top:4rem;padding-top:2.5rem;border-top:1px solid var(--line)}@media(min-width:640px){.article-pager{grid-template-columns:repeat(2,minmax(0,1fr))}}.pager-card{padding:1.15rem 1.35rem;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface-glass);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);box-shadow:inset 0 1px 0 var(--edge-light),var(--shadow-1);transition:transform var(--dur-base) var(--ease-out),border-color var(--dur-base) ease,box-shadow var(--dur-base) ease}.pager-card:hover{transform:translateY(-3px);border-color:var(--line-strong);box-shadow:inset 0 1px 0 var(--edge-light),var(--shadow-2)}.pager-card:active{transform:translateY(0) scale(.995);transition-duration:var(--dur-press)}.pager-label{display:block;font-family:var(--font-mono);font-size:.65rem;letter-spacing:.14em;text-transform:uppercase;color:var(--faint)}.pager-title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;margin:.4rem 0 0;font-size:.95rem;line-height:1.5;color:var(--text)}.pager-card.is-end .pager-title{color:var(--muted)}.back-to-top{position:fixed;right:1.5rem;bottom:1.5rem;z-index:40;display:inline-flex;height:40px;width:40px;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-glass);backdrop-filter:blur(16px) saturate(180%);-webkit-backdrop-filter:blur(16px) saturate(180%);box-shadow:inset 0 1px 0 var(--edge-light),var(--shadow-2);color:var(--muted);opacity:0;pointer-events:none;transition:opacity .22s ease,transform var(--dur-base) var(--ease-out),border-color var(--dur-base) ease,color var(--dur-base) ease}.back-to-top.is-visible{opacity:1;pointer-events:auto}.back-to-top:hover{transform:translateY(-2px);border-color:var(--line-strong);color:var(--text)}.rails{display:none}@media(min-width:1200px){.rails{display:block}}.rail{position:fixed;top:50%;z-index:45;transform:translateY(-50%);padding:18px 14px}.rail-left{left:10px;padding-right:44px}.rail-right{right:10px}.rail-ticks{display:flex;flex-direction:column;gap:7px;max-height:62vh;overflow:hidden}.rail-left .rail-ticks{align-items:flex-start}.rail-right .rail-ticks{align-items:flex-end}.rail-tick{width:16px;height:2px;border-radius:2px;background:var(--faint);opacity:.4;transition:width var(--dur-base) var(--ease-out),opacity var(--dur-base) ease,background-color var(--dur-base) ease}.rail-tick.is-current,.rail-tick.is-active{width:28px;opacity:1;background:var(--text)}.rail.is-scrolling .rail-tick{opacity:.8}.rail.is-scrolling .rail-tick.is-current,.rail.is-scrolling .rail-tick.is-active{opacity:1}.rail:hover .rail-ticks,.rail:focus-within .rail-ticks{opacity:0;transition:opacity .12s ease}.rail-panel{position:absolute;top:50%;width:-moz-max-content;width:max-content;max-width:min(20rem,calc((100vw - var(--measure)) / 2 - 24px));max-height:74vh;padding:1rem 1.1rem;overflow:hidden auto;overscroll-behavior:contain;border:1px solid var(--line);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--surface) 76%,transparent);backdrop-filter:blur(28px) saturate(180%);-webkit-backdrop-filter:blur(28px) saturate(180%);box-shadow:inset 0 1px 0 var(--edge-light),var(--shadow-3);opacity:0;pointer-events:none;transition:opacity var(--dur-base) var(--ease-out),transform var(--dur-base) var(--ease-spring);scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}.rail-left .rail-panel{left:0;transform:translate(-8px,-50%) scale(.97);transform-origin:left center}.rail-right .rail-panel{right:0;transform:translate(8px,-50%) scale(.97);transform-origin:right center}.rail:hover .rail-panel,.rail:focus-within .rail-panel{opacity:1;pointer-events:auto;transform:translateY(-50%) scale(1)}.rail-panel-title{display:block;margin-bottom:.8rem;font-family:var(--font-mono);font-size:.6rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--faint)}.rail-list{margin:0;padding:0;list-style:none}.rail-item{display:block;padding:.34rem 0 .34rem .75rem;border-left:2px solid transparent;font-size:.8rem;line-height:1.5;color:var(--muted);transition:color var(--dur-fast) ease,border-color var(--dur-fast) ease}.rail-item:hover{color:var(--text);border-left-color:var(--line-strong)}.rail-item.is-current,.rail-item.is-active{color:var(--text);font-weight:600;border-left-color:var(--text)}.rail-item.is-depth-3{padding-left:1.6rem;font-size:.76rem;color:var(--faint)}.rail-item.is-depth-3:hover,.rail-item.is-depth-3.is-active{color:var(--text)}.rail-item-date{display:block;font-size:.62rem;letter-spacing:.04em;color:var(--faint)}.rail-item-title{display:block;margin-top:.1rem}@media(prefers-reduced-motion:reduce){.rail-panel{transition-duration:.01ms}}
