.blog-page{max-width:960px;margin:0 auto;padding:var(--ds-space-8) var(--ds-space-4)}.blog-lang-tabs{display:flex;gap:var(--ds-space-2);flex-wrap:wrap;margin-bottom:var(--ds-space-6)}.blog-lang-tab{padding:6px 16px;border-radius:var(--ds-radius-full);border:1px solid var(--ds-color-border);background:transparent;color:var(--ds-color-text-secondary);font-size:var(--ds-text-sm);cursor:pointer;transition:all .15s}.blog-lang-tab:hover{border-color:var(--ds-color-border-strong);color:var(--ds-color-text)}.blog-lang-tab.active{background:var(--ds-color-primary);border-color:var(--ds-color-primary);color:var(--ds-color-text-inverse)}.blog-list{display:grid;gap:var(--ds-space-5)}.blog-card{display:block;padding:var(--ds-space-6);background:var(--ds-color-surface);border:1px solid var(--ds-color-border);border-radius:var(--ds-radius-lg);text-decoration:none;color:inherit;transition:box-shadow .2s,border-color .2s}.blog-card:hover{border-color:var(--ds-color-border-strong);box-shadow:var(--ds-shadow-md)}.blog-card-title{font-size:var(--ds-text-xl);font-weight:var(--ds-font-semibold);color:var(--ds-color-text);margin:0 0 var(--ds-space-2);line-height:var(--ds-leading-snug)}.blog-card-description{font-size:var(--ds-text-sm);color:var(--ds-color-text-secondary);line-height:var(--ds-leading-relaxed);margin:0 0 var(--ds-space-3)}.blog-card-meta{display:flex;align-items:center;gap:var(--ds-space-3);flex-wrap:wrap}.blog-card-date{font-size:var(--ds-text-xs);color:var(--ds-color-text-muted)}.blog-card-tags{display:flex;gap:var(--ds-space-2);flex-wrap:wrap}.blog-tag{font-size:var(--ds-text-xs);padding:2px 10px;border-radius:var(--ds-radius-full);background:var(--ds-color-primary-soft);color:var(--ds-color-primary)}.blog-detail{max-width:720px;margin:0 auto;padding:var(--ds-space-8) var(--ds-space-4)}.blog-detail-header{margin-bottom:var(--ds-space-8)}.blog-detail-title{font-size:var(--ds-text-3xl);font-weight:var(--ds-font-bold);color:var(--ds-color-text);line-height:var(--ds-leading-tight);margin:0 0 var(--ds-space-4)}.blog-detail-meta{display:flex;gap:var(--ds-space-3);flex-wrap:wrap;color:var(--ds-color-text-muted)}.blog-back-link,.blog-detail-meta{align-items:center;font-size:var(--ds-text-sm)}.blog-back-link{display:inline-flex;gap:var(--ds-space-2);color:var(--ds-color-primary);text-decoration:none;margin-bottom:var(--ds-space-6)}.blog-back-link:hover{text-decoration:underline}.blog-content h2{font-size:var(--ds-text-2xl);font-weight:var(--ds-font-bold);color:var(--ds-color-text);margin:var(--ds-space-8) 0 var(--ds-space-4);line-height:var(--ds-leading-tight)}.blog-content h3{font-size:var(--ds-text-xl);color:var(--ds-color-text);margin:var(--ds-space-6) 0 var(--ds-space-3)}.blog-content h3,.blog-content h4{font-weight:var(--ds-font-semibold)}.blog-content h4{font-size:var(--ds-text-lg);color:var(--ds-color-text-strong);margin:var(--ds-space-5) 0 var(--ds-space-2)}.blog-content p{font-size:var(--ds-text-base);line-height:var(--ds-leading-relaxed);color:var(--ds-color-text-secondary);margin:0 0 var(--ds-space-4)}.blog-content ol,.blog-content ul{padding-left:var(--ds-space-6);margin:0 0 var(--ds-space-4)}.blog-content li{font-size:var(--ds-text-base);line-height:var(--ds-leading-relaxed);color:var(--ds-color-text-secondary);margin-bottom:var(--ds-space-2)}.blog-content blockquote{margin:var(--ds-space-4) 0;padding:var(--ds-space-4) var(--ds-space-5);border-left:3px solid var(--ds-color-primary);background:var(--ds-color-primary-soft);border-radius:0 var(--ds-radius-sm) var(--ds-radius-sm) 0}.blog-content blockquote p{margin:0;color:var(--ds-color-text-strong)}.blog-content pre{margin:0 0 var(--ds-space-4);padding:var(--ds-space-4) var(--ds-space-5);border-radius:var(--ds-radius-md);background:rgba(25,21,19,.92);color:#f5f5f7;overflow-x:auto;font-family:var(--ds-font-mono);font-size:var(--ds-text-sm);line-height:var(--ds-leading-relaxed)}.blog-content code{font-family:var(--ds-font-mono);font-size:.9em;padding:2px 6px;border-radius:4px;background:var(--ds-color-surface-dim);color:var(--ds-color-text-strong)}.blog-content pre code{padding:0;border-radius:0;background:transparent;color:inherit}.blog-content a{color:var(--ds-color-primary);text-decoration:underline;text-underline-offset:2px}.blog-content a:hover{color:var(--ds-color-primary-dark)}.blog-content hr{border:none;border-top:1px solid var(--ds-color-divider);margin:var(--ds-space-8) 0}.blog-content table{width:100%;border-collapse:collapse;margin:0 0 var(--ds-space-4);font-size:var(--ds-text-sm)}.blog-content td,.blog-content th{padding:var(--ds-space-3) var(--ds-space-4);border-bottom:1px solid var(--ds-color-border);text-align:left}.blog-content th{font-weight:var(--ds-font-semibold);color:var(--ds-color-text)}.blog-content td{color:var(--ds-color-text-secondary)}.blog-content strong{font-weight:var(--ds-font-semibold);color:var(--ds-color-text)}.blog-content img{max-width:100%;height:auto;border-radius:var(--ds-radius-md)}@media (max-width:768px){.blog-detail,.blog-page{padding:var(--ds-space-5) var(--ds-space-3)}.blog-detail-title{font-size:var(--ds-text-2xl)}.blog-content h2{font-size:var(--ds-text-xl)}.blog-content h3{font-size:var(--ds-text-lg)}}@media (prefers-color-scheme:dark){.blog-content code{background:rgba(255,255,255,.08);color:var(--ds-color-text-strong)}.blog-content pre{background:rgba(0,0,0,.6)}}