.toc{position:-webkit-sticky;position:sticky;top:100px;max-height:calc(100vh - 120px);overflow-y:auto;padding:var(--spacing-md);background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px;font-family:var(--font-sans);font-size:.9rem}.toc-header{font-weight:600;margin-bottom:var(--spacing-sm);color:var(--text-primary);font-size:.95rem}.toc-list{list-style:none;padding:0;margin:0}.toc-item{margin-bottom:var(--spacing-xs);line-height:1.6}.toc-item a{color:var(--text-secondary);text-decoration:none;transition:color .2s ease;display:block;padding:2px 0}.toc-item a:hover{color:var(--text-primary)}.toc-level-2{padding-left:0;font-weight:500}.toc-level-3{padding-left:var(--spacing-sm);font-weight:400;font-size:.9rem}.toc-level-4{padding-left:var(--spacing-md);font-weight:400;font-size:.85rem}@media (max-width:1024px){.toc{display:none}}.article-detail{padding:calc(80px + var(--spacing-lg)) var(--spacing-sm) var(--spacing-xl);min-height:100vh}.article-detail-wrapper{max-width:1400px;margin:0 auto;display:grid;grid-template-columns:1fr 280px;grid-gap:var(--spacing-xl);gap:var(--spacing-xl)}.article-main{min-width:0}.article-header{max-width:var(--reading-width);margin:0 auto var(--spacing-lg);text-align:center;padding-bottom:var(--spacing-md);border-bottom:1px solid var(--border-color)}.article-title{font-family:var(--font-serif-cn);font-size:clamp(2rem,5vw,3rem);font-weight:600;margin-bottom:var(--spacing-sm);line-height:1.3;color:var(--text-primary)}.article-meta{font-family:var(--font-sans);font-size:.95rem;color:var(--text-tertiary);font-weight:300;display:flex;align-items:center;justify-content:center;gap:var(--spacing-xs)}.meta-separator{opacity:.5}.article-header-meta{margin-top:var(--spacing-sm);display:flex;justify-content:center}.article-category-link{font-family:var(--font-sans);font-size:.85rem;color:var(--text-secondary);text-decoration:none;padding:.3em .8em;border:1px solid var(--border-color);border-radius:3px;transition:all .2s ease;display:inline-block}.article-category-link:hover{color:var(--text-primary);border-color:var(--text-tertiary);opacity:1}.article-header-tags{display:flex;flex-wrap:wrap;gap:var(--spacing-xs);justify-content:center;margin-top:var(--spacing-sm)}.article-header-tag{font-family:var(--font-sans);font-size:.75rem;color:var(--text-tertiary);padding:.2em .6em;background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:3px;display:inline-block;text-decoration:none;transition:all .2s ease}.article-header-tag:hover{color:var(--text-primary);border-color:var(--text-secondary);opacity:1}.article-content{font-size:clamp(1rem,2vw,1.125rem);line-height:1.8;letter-spacing:0;color:var(--text-primary)}.article-content h2{margin-top:var(--spacing-lg);margin-bottom:var(--spacing-sm);font-size:clamp(1.5rem,4vw,2rem);scroll-margin-top:100px}.article-content h3{margin-top:var(--spacing-md);margin-bottom:var(--spacing-xs);font-size:clamp(1.25rem,3vw,1.5rem);scroll-margin-top:100px}.article-content ol,.article-content ul{margin:var(--spacing-md) 0;padding-left:var(--spacing-md)}.article-content li{margin-bottom:var(--spacing-xs);line-height:1.8}.article-content strong{font-weight:600;color:var(--text-primary)}.article-content img{max-width:100%;height:auto;margin:var(--spacing-md) 0;border-radius:4px}.article-navigation{display:grid;grid-template-columns:1fr 1fr;grid-gap:var(--spacing-md);gap:var(--spacing-md);margin-top:var(--spacing-xl);padding-top:var(--spacing-lg);border-top:1px solid var(--border-color)}.nav-link{display:flex;flex-direction:column;padding:var(--spacing-sm);border:1px solid var(--border-color);border-radius:4px;text-decoration:none;color:var(--text-secondary);transition:all .2s ease}.nav-link:hover{color:var(--text-primary);border-color:var(--text-tertiary);background-color:var(--hover-overlay)}.nav-label{font-size:.85rem;color:var(--text-tertiary);margin-bottom:var(--spacing-xs)}.nav-label,.nav-title{font-family:var(--font-sans)}.nav-title{font-size:.95rem;color:var(--text-primary);line-height:1.5}.nav-next{text-align:right}.article-sidebar{position:relative}@media (max-width:1024px){.article-detail-wrapper{grid-template-columns:1fr}.article-sidebar{display:none}}@media (max-width:768px){.article-detail{padding:calc(60px + var(--spacing-md)) var(--spacing-sm) var(--spacing-lg);overflow-x:hidden;width:100%;box-sizing:border-box}.article-header{margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-sm);word-break:break-word}.article-content{font-size:1rem;width:100%}.article-content h2,.article-content h3{scroll-margin-top:80px}.article-navigation{grid-template-columns:1fr;width:100%;box-sizing:border-box}.nav-next{text-align:left}}@media (max-width:480px){.article-detail{padding:calc(60px + var(--spacing-sm)) 1rem var(--spacing-lg)}}