.blog .draft-banner{font:12px var(--mono);color:var(--bg);background:var(--accent);padding:8px 12px;margin:0 0 var(--s3)}.blog{max-width:680px}.blog .cvechip{border:1px solid var(--border);padding:1px 6px;color:var(--accent);text-decoration:none}.blog .origin{font:12px var(--mono);color:var(--muted);margin:var(--s3) 0 0}.blog .origin a{color:var(--accent)}.blog .back{font:13px var(--mono);margin:var(--s3) 0 var(--s3)}.blog .langswitch{color:var(--accent);text-decoration:none;border-bottom:1px dotted var(--accent)}.blog-cta{margin:var(--s4) 0 var(--s3);padding:var(--s3);border:1px solid var(--border);background:var(--surface);box-shadow:4px 4px #000}.blog-cta-k{font:11px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 var(--s3)}.blog-cta-row{display:flex;flex-wrap:wrap;gap:12px}.blog-cta .button{text-decoration:none}.blog-cta .button.ghost{border:1px solid var(--accent);background:transparent;color:var(--accent);box-shadow:3px 3px 0 var(--border)}.blog-cta .button.ghost:hover{background:#c9a2271a;color:#edcf81}.blog-head{margin-bottom:var(--s4)}.blog-head h1{font:700 clamp(24px,5vw,34px)/1.15 var(--font);margin:0 0 var(--s2);letter-spacing:-.02em}.blog-meta{font:12px var(--mono);color:var(--muted);margin:0 0 var(--s2)}.blog-body{overflow-wrap:anywhere;font:400 18px/1.7 var(--font);background:var(--surface);padding:var(--s4);border:1px solid var(--border)}.blog-body h2{font:600 22px/1.3 var(--font);color:var(--accent);margin:var(--s5) 0 var(--s2)}.blog-body h3{font:600 16px/1.3 var(--font);margin:var(--s4) 0 var(--s2)}.blog-body p{margin:0 0 var(--s3)}.blog-body ul,.blog-body ol{margin:0 0 var(--s3);padding-left:1.25em}.blog-body li{margin:0 0 6px}.blog-body blockquote{margin:0 0 var(--s3);padding:var(--s2) var(--s3);border-left:3px solid var(--accent);background:var(--surface);color:var(--muted);font-size:15px}.blog-body pre{margin:0 0 var(--s3);padding:var(--s3);overflow:auto;background:var(--surface-2);border:2px solid var(--border);box-shadow:4px 4px #000;font:12px/1.5 var(--mono)}.blog-body code{font:13px var(--mono);color:var(--accent)}.blog-body pre code{color:var(--text);font-size:12px}.blog-body a{color:var(--accent)}.blog-body hr{border:0;border-top:1px solid var(--border);margin:var(--s5) 0}.blog-body figure{margin:0 0 var(--s4);overflow-x:auto}.blog-body figure img{display:block;width:100%;min-width:540px;height:auto;border:2px solid var(--border);background:var(--bg);box-shadow:4px 4px #000}.blog-body figcaption{font:11px/1.5 var(--mono);color:var(--muted);margin-top:var(--s2);max-width:640px}.blog-body .table-wrap{overflow-x:auto;margin:0 0 var(--s3)}.blog-body table{width:100%;border-collapse:collapse;margin:0;font:12px/1.45 var(--mono)}.blog-body th,.blog-body td{overflow-wrap:normal;word-break:normal}.blog-body thead th{text-align:left;padding:6px 8px;color:var(--accent);border-bottom:2px solid var(--border);font-weight:600;vertical-align:bottom}.blog-body tbody td{padding:5px 8px;border-bottom:1px solid var(--border);color:var(--text)}.blog-body tbody tr:last-child td{border-bottom:0}.blog-body tbody tr:hover td{background:var(--surface-2)}.blog-body td:first-child{white-space:nowrap}@media(max-width:600px){.blog-body thead th,.blog-body tbody td{padding:5px 7px}.blog-body table{display:table}.blog-body thead{display:table-header-group}.blog-body tbody{display:table-row-group}.blog-body tr{display:table-row}.blog-body td,.blog-body th{display:table-cell}}.blog-head .sub{font-size:16px;line-height:1.7}@media(max-width:600px){.blog-body{padding:20px 17px}.blog-head h1{font-size:29px}.blog-head .sub{font-size:14px}.blog-meta{font-size:10px;line-height:1.9}.blog-cta{padding:14px}.blog-cta-row{gap:10px}.blog-cta .button{flex:1 1 100%;justify-content:center}}
