.container-narrow{max-width:800px;margin:0 auto;padding:0 1.5rem}.container-wide{max-width:1200px;margin:0 auto;padding:0 1.5rem}.article-layout{display:grid;grid-template-columns:1fr 280px;gap:3rem;align-items:start}@media(max-width:1024px){.article-layout{grid-template-columns:1fr;grid-template-rows:auto 1fr}.toc-sidebar{grid-row:1;order:-1}.article-main{grid-row:2}}.toc-sidebar{position:sticky;top:80px;max-height:calc(100vh - 100px);overflow-y:auto;padding:1.5rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px}@media(max-width:1024px){.toc-sidebar{position:static;max-height:none;margin-bottom:2rem}}.toc-title{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;margin-bottom:.75rem;color:var(--color-text)}.toc-list{list-style:none;padding:0;margin:0}.toc-item{margin-bottom:.25rem}.toc-level-2{padding-left:0}.toc-level-3{padding-left:.75rem;font-size:.8rem}.toc-link{display:block;padding:.35rem .5rem;color:var(--color-text-secondary);text-decoration:none;border-radius:4px;transition:all .2s ease;border-left:2px solid transparent;font-size:.85rem;line-height:1.4}.toc-link:hover{background:var(--color-border);color:var(--color-text)}.toc-link.active{background:var(--color-primary);color:#fff;border-left-color:var(--color-primary)}.article-main{min-width:0}.blog-article-header{background:var(--color-surface);border-bottom:1px solid var(--color-border);padding:2rem 0 3rem}.breadcrumb{margin-bottom:2rem}.breadcrumb ol{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;padding:0;margin:0;font-size:.875rem;color:var(--color-text-secondary)}.breadcrumb li{display:flex;align-items:center}.breadcrumb li:not(:last-child)::after{content:"/";margin-left:.5rem;color:var(--color-border)}.breadcrumb a{color:var(--color-text-secondary);text-decoration:none;transition:color .2s ease}.breadcrumb a:hover{color:var(--color-primary)}.article-header{text-align:center}.article-category{display:inline-block;padding:.25rem .75rem;background:var(--color-primary);color:#fff;border-radius:20px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;margin-bottom:1rem}.article-title{font-size:2rem;font-weight:700;line-height:1.2;margin-bottom:1rem;color:var(--color-text)}@media(max-width:768px){.article-title{font-size:1.5rem}}.article-meta{display:flex;gap:1.5rem;justify-content:center;align-items:center;font-size:.875rem;color:var(--color-text-secondary)}.article-date,.article-readtime{display:flex;align-items:center;gap:.375rem}.blog-article-content{padding:3rem 0}.article-body{margin-bottom:3rem}.prose{line-height:1.75;color:var(--color-text);font-size:1.0625rem}.prose h1,.prose h2,.prose h3,.prose h4{font-weight:700;line-height:1.3;margin-top:2rem;margin-bottom:1rem;color:#0f172a}.prose h1{display:none}.prose h2{font-size:1.5rem}.prose h3{font-size:1.25rem}.prose h4{font-size:1.125rem}.prose p{margin-bottom:1.5rem}.prose a{color:var(--color-primary);text-decoration:none;border-bottom:1px solid var(--color-primary);transition:opacity .2s ease}.prose a:hover{opacity:.8}.prose ul,.prose ol{margin-bottom:1.5rem;margin-top:1rem;padding-left:2rem;line-height:1.8}.prose ul{list-style-type:disc}.prose ol{list-style-type:decimal}.prose li{margin-bottom:.25rem;padding-left:.5rem}.prose li>p{margin-bottom:.5rem}.prose li:last-child{margin-bottom:0}.prose ul ul,.prose ol ul{list-style-type:circle;margin-top:.5rem}.prose ul ol,.prose ol ol{list-style-type:lower-alpha;margin-top:.5rem}.prose code{background:var(--color-surface);padding:.2rem .4rem;border-radius:4px;font-size:.875em;font-family:jetbrains mono,monospace}.prose pre{background:var(--color-surface);padding:1.5rem;border-radius:8px;overflow-x:auto;margin-bottom:1.5rem;border:1px solid var(--color-border)}.prose pre code{background:0 0;padding:0}.prose blockquote{border-left:4px solid var(--color-primary);padding-left:1rem;margin:1.5rem 0;font-style:italic;color:var(--color-text-secondary)}.prose table{width:100%;border-collapse:collapse;margin-bottom:1.5rem}.prose th,.prose td{padding:.75rem;text-align:left;border:1px solid var(--color-border)}.prose th{background:var(--color-surface);font-weight:600}.prose img{max-width:100%;height:auto;border-radius:8px;margin:1.5rem 0}.article-footer{border-top:1px solid var(--color-border);padding-top:2rem;margin-bottom:2rem}.article-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}.tag{display:inline-block;padding:.375rem .75rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:20px;font-size:.875rem;color:var(--color-text-secondary)}.article-share{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.share-label{font-weight:600;color:var(--color-text)}.share-buttons{display:flex;gap:.5rem}.share-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:8px;background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text-secondary);transition:all .2s ease;cursor:pointer}.share-btn:hover{background:var(--color-primary);color:#fff;border-color:var(--color-primary);transform:translateY(-2px)}.article-navigation{margin-bottom:3rem}.nav-back{display:inline-flex;align-items:center;gap:.5rem;color:var(--color-text-secondary);text-decoration:none;font-weight:500;transition:all .2s ease}.nav-back:hover{color:var(--color-primary);gap:.75rem}.article-cta{margin-top:4rem;margin-bottom:2rem}.cta-card{border:1px solid var(--color-border);border-radius:8px;padding:2.5rem 2rem;display:flex;align-items:center;justify-content:space-between;gap:2rem;transition:border-color .2s ease}.cta-card:hover{border-color:var(--color-primary)}@media(max-width:768px){.cta-card{flex-direction:column;align-items:flex-start}}.cta-content{flex:1}.cta-title{font-size:1.5rem;font-weight:700;margin-bottom:.5rem;color:var(--color-text)}.cta-text{font-size:1rem;color:var(--color-text-secondary);line-height:1.6;margin:0}.cta-actions{display:flex;gap:1rem;flex-shrink:0}@media(max-width:768px){.cta-actions{width:100%;flex-direction:column}}.cta-link{display:inline-flex;align-items:center;gap:.5rem;padding:.625rem 1.25rem;border-radius:6px;font-weight:600;font-size:.9375rem;text-decoration:none;transition:all .2s ease;white-space:nowrap;border:1px solid var(--color-border);color:var(--color-text);background:0 0}.cta-link:hover{border-color:var(--color-primary);color:var(--color-primary)}.cta-link:hover svg{transform:translateX(4px)}.cta-link svg{transition:transform .2s ease;flex-shrink:0}.cta-link-primary{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.cta-link-primary:hover{background:#7c3aed;border-color:#7c3aed;color:#fff}[data-theme=dark] .prose h1,[data-theme=dark] .prose h2,[data-theme=dark] .prose h3,[data-theme=dark] .prose h4{color:#f1f5f9}