.reading-progress{position:fixed;top:var(--header-h);left:0;height:3px;background:linear-gradient(90deg,var(--primary) 0%,var(--primary-mid) 50%,#60a5fa 100%);z-index:99;width:0%;transition:width .1s linear}.blog-hero{padding:2.5rem 0 3rem;background:radial-gradient(ellipse 80% 50% at 50% 100%,rgba(37,99,235,.05) 0%,transparent 70%),linear-gradient(180deg,var(--bg) 0%,var(--bg-warm) 100%);border-bottom:1px solid var(--border-light)}.blog-back{display:inline-flex;align-items:center;gap:.375rem;font-size:.8125rem;font-weight:500;color:var(--text-3);text-decoration:none;margin-bottom:1.5rem;transition:color .15s}.blog-back:hover{color:var(--primary)}.blog-tags-row{display:flex;gap:.5rem;margin-bottom:1rem;flex-wrap:wrap}.blog-tag{display:inline-flex;align-items:center;padding:.25rem .625rem;border-radius:var(--radius-full);font-size:.75rem;font-weight:700;font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;background:var(--primary-dim);color:var(--primary);border:1.5px solid rgba(37,99,235,.12)}.blog-hero h1{font-family:var(--font-display);font-size:clamp(2rem,4.5vw,2.75rem);font-weight:400;line-height:1.15;letter-spacing:-.02em;margin-bottom:1.25rem;color:var(--text)}.blog-meta{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.meta-left{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--text-3)}.meta-author{display:inline-flex;align-items:center;gap:.375rem;font-weight:600;color:var(--text-2)}.author-avatar{width:24px;height:24px;border-radius:50%;background:var(--primary);color:#fff;font-size:.625rem;font-weight:800;font-family:var(--font-body);display:grid;place-items:center}.meta-sep{color:var(--border)}.meta-reading{font-size:.8125rem;font-family:var(--font-mono);font-weight:600;color:var(--text-3);padding:.3125rem .75rem;background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-full)}.toc{margin:2rem 0 2.5rem;background:#fff;border:1px solid transparent;border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 4px 20px -2px #0000000a}.toc-toggle{display:flex;align-items:center;gap:.5rem;width:100%;padding:1rem 1.25rem;background:none;border:none;font-size:.875rem;font-weight:700;font-family:var(--font-body);color:var(--text);cursor:pointer;transition:background .15s}.toc-toggle:hover{background:var(--surface-inset)}.toc-chevron{margin-left:auto;transition:transform .25s var(--ease)}.toc.open .toc-chevron{transform:rotate(180deg)}.toc-list{display:none;margin:0;padding:0 1.25rem 1rem;list-style:none;counter-reset:toc-counter}.toc.open .toc-list{display:block}.toc-list li{counter-increment:toc-counter}.toc-list li a{display:flex;align-items:baseline;gap:.5rem;padding:.4rem 0;font-size:.875rem;color:var(--text-2);text-decoration:none;transition:color .15s}.toc-list li a:before{content:counter(toc-counter,decimal-leading-zero);font-size:.6875rem;font-family:var(--font-mono);font-weight:700;color:var(--primary);min-width:1.25rem}.toc-list li a:hover{color:var(--primary)}.blog-content{padding-top:2rem;font-size:1.0625rem;line-height:1.8;color:var(--text)}.blog-content h2{font-family:var(--font-display);font-size:1.5rem;font-weight:400;margin:3.5rem 0 1.5rem;padding:1.25rem 0 0;border-top:1px solid var(--border);position:relative}.blog-content h2:after{content:"";position:absolute;bottom:-.5rem;left:0;width:2.5rem;height:3px;border-radius:2px;background:var(--primary)}.blog-content h3{font-size:1.0625rem;font-weight:700;font-family:var(--font-body);margin:2.25rem 0 .75rem;color:var(--text)}.blog-content h4{font-size:1rem;font-weight:700;font-family:var(--font-body);margin:1.5rem 0 .5rem}.blog-content p{margin-bottom:1.25rem;color:var(--text-2)}.blog-content>p:first-child{font-size:1.125rem;color:var(--text);line-height:1.75}.blog-content a{color:var(--primary);text-decoration:underline;text-decoration-color:#2563eb4d;text-underline-offset:2px;transition:text-decoration-color .15s}.blog-content a:hover{text-decoration-color:var(--primary);color:var(--primary-dark)}.blog-content strong{font-weight:700;color:var(--text)}.blog-content ul,.blog-content ol{margin-bottom:1.5rem;padding-left:0;list-style:none}.blog-content ul li,.blog-content ol li{position:relative;padding-left:1.75rem;margin-bottom:.625rem;color:var(--text-2)}.blog-content ul li:before{content:"";position:absolute;left:.25rem;top:.7em;width:6px;height:6px;border-radius:50%;background:var(--primary)}.blog-content ol{counter-reset:ol-counter}.blog-content ol li{counter-increment:ol-counter}.blog-content ol li:before{content:counter(ol-counter);position:absolute;left:0;top:.05em;width:1.25rem;height:1.25rem;border-radius:50%;background:var(--primary-dim);color:var(--primary);font-size:.6875rem;font-weight:800;font-family:var(--font-mono);display:grid;place-items:center}.blog-content blockquote{margin:2rem 0;padding:1.25rem 1.5rem;background:var(--primary-dim);border-left:4px solid var(--primary);border-radius:0 var(--radius-lg) var(--radius-lg) 0;font-style:italic}.blog-content blockquote p{color:var(--text);margin-bottom:0;font-size:.9375rem}.blog-content table{width:100%;border-collapse:separate;border-spacing:0;margin:2rem 0;font-size:.9375rem;border:1.5px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.blog-content thead{background:var(--surface-inset)}.blog-content th{padding:.75rem 1rem;font-weight:700;font-size:.8125rem;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em;color:var(--text);text-align:left;border-bottom:2px solid var(--border)}.blog-content td{padding:.75rem 1rem;color:var(--text-2);border-bottom:1px solid var(--border-light);font-size:.9375rem}.blog-content tbody tr:last-child td{border-bottom:none}.blog-content tbody tr:hover{background:#2563eb05}.blog-content td:last-child{font-family:var(--font-mono);font-weight:600;color:var(--text);font-variant-numeric:tabular-nums}.blog-content ul li:has(input[type=checkbox]){padding-left:.25rem}.blog-content ul li:has(input[type=checkbox]):before{display:none}.blog-content input[type=checkbox]{appearance:none;-webkit-appearance:none;width:18px;height:18px;border:2px solid var(--border);border-radius:4px;vertical-align:middle;margin-right:.5rem;position:relative;top:-1px;cursor:pointer;transition:all .15s}.blog-content input[type=checkbox]:checked{background:var(--primary);border-color:var(--primary)}.blog-content input[type=checkbox]:checked:after{content:"";position:absolute;left:4px;top:1px;width:6px;height:10px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}.blog-content hr{border:none;height:1px;background:var(--border);margin:3rem 0}.blog-footer{margin-top:3rem;padding-top:2rem}.footer-cta{display:flex;align-items:center;gap:1.25rem;padding:1.5rem;background:#fff;border:1px solid rgba(37,99,235,.08);border-radius:var(--radius-xl);margin-bottom:2rem;box-shadow:0 10px 30px -5px #2563eb14}.footer-cta-icon{width:48px;height:48px;border-radius:var(--radius-lg);background:var(--primary);color:#fff;display:grid;place-items:center;flex-shrink:0}.footer-cta-text strong{display:block;font-size:1rem;margin-bottom:.25rem}.footer-cta-text p{font-size:.875rem;color:var(--text-2);margin:0;line-height:1.7}.footer-cta-text a{color:var(--primary);font-weight:600;text-decoration:none}.footer-cta-text a:hover{text-decoration:underline}.blog-back-bottom{display:inline-flex;align-items:center;gap:.375rem;font-size:.875rem;font-weight:600;color:var(--text-2);text-decoration:none;padding:.625rem 1rem;border:1px solid var(--border);border-radius:var(--radius);transition:all .15s}.blog-back-bottom:hover{border-color:var(--primary);color:var(--primary)}@media(max-width:768px){.blog-hero{padding:1.5rem 0 2rem}.blog-hero h1{font-size:1.75rem}.blog-content{font-size:1rem}.blog-content table{font-size:.8125rem}.blog-content th,.blog-content td{padding:.5rem .625rem}.footer-cta{flex-direction:column;gap:1rem}.meta-reading{display:none}}
