.blog{--blog-primary: #2d809a;--blog-ink: #161209;--blog-muted: #4d4d4d;--blog-border: #f0f0f0}.blog .blog-head{margin-top:20px}.blog .blog-head h2{font-size:22px;color:var(--blog-ink, #161209)}.blog .blog-head .desc{color:var(--blog-muted, #4d4d4d);font-size:14px;margin-top:4px}.blog-list{display:flex;flex-direction:column;gap:16px;margin-top:20px}.blog-card{background:var(--surface);border:1px solid var(--blog-border, #f0f0f0);border-radius:var(--radius);padding:20px 24px;transition:border-color .18s ease-out}.blog-card:hover{border-color:var(--blog-primary, #2d809a)}.blog-card h2{font-size:19px;margin-bottom:8px}.blog-card h2 a{color:var(--blog-ink, #161209);text-decoration:none}.blog-card h2 a:hover{color:var(--blog-primary, #2d809a)}.blog-meta{font-size:13px;color:var(--blog-muted, #4d4d4d);font-family:var(--mono);margin-bottom:10px;display:flex;gap:14px;flex-wrap:wrap}.blog-meta a{color:var(--blog-primary, #2d809a);text-decoration:none}.blog-meta a:hover{text-decoration:underline}.blog-summary{color:var(--blog-muted, #4d4d4d);font-size:14px;line-height:1.8}.single-post{max-width:1200px;margin:0 auto;padding:32px 20px;min-width:0}.single-post h1{font-size:28px;color:var(--blog-ink, #161209);margin-bottom:12px}.blog-content{margin-top:24px;font-size:16px;line-height:1.8;color:var(--blog-ink, #161209);overflow-wrap:anywhere;word-wrap:break-word;min-width:0}.blog-content h2{font-size:22px;margin:28px 0 12px}.blog-content h3{font-size:19px;margin:24px 0 10px}.blog-content h4{font-size:17px;margin:20px 0 8px}.blog-content a{color:var(--blog-primary, #2d809a);text-decoration:none}.blog-content a:hover{color:var(--blog-ink, #161209);text-decoration:none}.blog-content p{margin:12px 0}.blog-content ul,.blog-content ol{margin:12px 0;padding-left:24px}.blog-content li{margin-bottom:6px}.blog-content img{max-width:100%;border-radius:var(--radius)}.blog-content blockquote{border-left:4px solid #6bd6fd;background:rgba(107,214,253,.2);padding:12px 16px;margin:16px 0;color:var(--blog-muted, #4d4d4d);border-radius:0 var(--radius) var(--radius) 0}.blog-content blockquote p{margin:4px 0}.blog-content pre{background:#f6f6f6;border:1px solid var(--blog-border, #f0f0f0);border-radius:var(--radius);padding:14px 16px;overflow-x:auto;font-size:14px;line-height:1.6;margin:16px 0;max-width:100%;position:relative}.blog-content pre:hover .copy-btn{opacity:1}.blog-content .copy-btn{position:absolute;top:8px;right:8px;border:1px solid var(--blog-border, #f0f0f0);background:var(--surface, #fff);color:var(--blog-muted, #4d4d4d);border-radius:6px;padding:3px 10px;font-size:12px;font-family:var(--mono);cursor:pointer;opacity:0;transition:opacity .18s ease-out,color .18s ease-out,border-color .18s ease-out}.blog-content .copy-btn:hover{color:var(--blog-primary, #2d809a);border-color:var(--blog-primary, #2d809a)}.blog-content .copy-btn.copied{color:var(--blog-primary, #2d809a);border-color:var(--blog-primary, #2d809a)}.blog-content pre code{background:none;border:none;padding:0;font-family:var(--mono)}.blog-content code{background:#f6f6f6;border:1px solid var(--blog-border, #f0f0f0);border-radius:4px;padding:2px 6px;font-size:14px;font-family:var(--mono)}.blog-content pre code{border:none}.blog-content .asciinema-embed{margin:16px 0;max-width:100%;overflow-x:auto}.blog-content table{border-collapse:collapse;display:block;width:max-content;max-width:100%;overflow-x:auto;margin:16px 0;font-size:14px}.blog-content th{background:#ededed}.blog-content th,.blog-content td{border:1px solid var(--blog-border, #f0f0f0);padding:8px 12px;text-align:left}.blog-foot{margin-top:32px;padding-top:16px;border-top:1px solid var(--blog-border, #f0f0f0);display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline;font-size:13px;font-family:var(--mono);color:var(--blog-muted, #4d4d4d);overflow-wrap:anywhere}.blog-foot a{color:var(--blog-primary, #2d809a);text-decoration:none}.blog-foot a:hover{color:var(--blog-ink, #161209);text-decoration:none}.blog-foot .foot-label,.blog-card .foot-label{color:var(--blog-muted, #4d4d4d);font-weight:700}.blog-card-tags{margin-top:6px;font-size:13px;font-family:var(--mono);color:var(--blog-muted, #4d4d4d);overflow-wrap:anywhere}.blog-card-tags a{color:var(--blog-primary, #2d809a);text-decoration:none}.blog-card-tags a:hover{color:var(--blog-ink, #161209);text-decoration:none}.blog-foot .foot-group{display:inline}.blog-terms{display:flex;gap:12px;flex-wrap:wrap;margin-top:20px}.blog-term{background:var(--surface);border:1px solid var(--blog-border, #f0f0f0);border-radius:999px;padding:8px 18px;color:var(--blog-ink, #161209);text-decoration:none;font-size:15px;transition:border-color .18s ease-out}.blog-term:hover{border-color:var(--blog-primary, #2d809a);color:var(--blog-primary, #2d809a)}.blog-term .count{font-family:var(--mono);font-size:12px;opacity:.75;margin-left:4px}