.blog-scope{--blog-bg:#000000;--blog-surface:#0a0a0a;--blog-border:#1f1f1f;--blog-heading:#f7f8f8;--blog-body:#c5c7cb;--blog-muted:#8c8f97;--blog-accent:#bfff00;--blog-accent-subtle:rgba(191,255,0,0.18);--blog-on-accent:#0a0a0a;--blog-code-bg:#141414;--blog-max-width:1120px;--blog-reading-width:720px;background:var(--blog-bg);color:var(--blog-body);min-height:100vh;min-height:100svh}@media (prefers-color-scheme:light){.blog-scope{--blog-bg:#ffffff;--blog-surface:#f7f8f8;--blog-border:#e1e3e6;--blog-heading:#0f1011;--blog-body:#3f4145;--blog-muted:#6b6e73;--blog-accent:#4d7c0f;--blog-accent-subtle:rgba(77,124,15,0.12);--blog-on-accent:#ffffff;--blog-code-bg:#edeef0}}html.light .blog-scope{--blog-bg:#ffffff;--blog-surface:#f7f8f8;--blog-border:#e1e3e6;--blog-heading:#0f1011;--blog-body:#3f4145;--blog-muted:#6b6e73;--blog-accent:#4d7c0f;--blog-accent-subtle:rgba(77,124,15,0.12);--blog-on-accent:#ffffff;--blog-code-bg:#edeef0}html.dark .blog-scope{--blog-bg:#000000;--blog-surface:#0a0a0a;--blog-border:#1f1f1f;--blog-heading:#f7f8f8;--blog-body:#c5c7cb;--blog-muted:#8c8f97;--blog-accent:#bfff00;--blog-accent-subtle:rgba(191,255,0,0.18);--blog-on-accent:#0a0a0a;--blog-code-bg:#141414}.blog-container{max-width:var(--blog-max-width);margin:0 auto;padding:0 1.5rem}.blog-header{border-bottom:1px solid var(--blog-border);padding:1.25rem 0;position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--blog-bg) 88%,transparent);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.blog-header-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem}.blog-header-brand{color:var(--blog-heading);display:inline-flex;align-items:center;text-decoration:none;flex-shrink:0}.blog-header-cta{background:var(--blog-accent);color:var(--blog-on-accent);padding:.4375rem 1rem;border-radius:999px;font-weight:600;font-size:.875rem;text-decoration:none;white-space:nowrap;transition:opacity .2s ease}.blog-header-cta:hover{opacity:.85}.blog-footer{border-top:1px solid var(--blog-border);margin-top:5rem;padding:2.5rem 0;color:var(--blog-muted);font-size:.875rem}.blog-footer-inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem}.blog-footer a{color:var(--blog-muted);text-decoration:none}.blog-footer a:hover{color:var(--blog-accent)}.blog-hero{padding:4rem 0 3rem;border-bottom:1px solid var(--blog-border)}.blog-hero h1{color:var(--blog-heading);font-size:clamp(2.25rem,6vw,3.5rem);line-height:1.1;letter-spacing:-.03em;margin:0 0 1rem;font-weight:700}.blog-hero p{color:var(--blog-body);font-size:1.125rem;line-height:1.6;max-width:46ch;margin:0}.blog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:2rem;padding:3rem 0 1rem}.blog-card{display:flex;flex-direction:column;background:var(--blog-surface);border:1px solid var(--blog-border);border-radius:16px;overflow:hidden;text-decoration:none;transition:border-color .2s ease,transform .2s ease}.blog-card:hover{border-color:var(--blog-accent);transform:translateY(-2px)}.blog-card-cover{aspect-ratio:1200/630;width:100%;-o-object-fit:cover;object-fit:cover;display:block;background:var(--blog-code-bg)}.blog-card-cover--empty{aspect-ratio:1200/630;background:linear-gradient(135deg,var(--blog-accent-subtle),var(--blog-code-bg))}.blog-card-body{padding:1.25rem 1.25rem 1.5rem;display:flex;flex-direction:column;gap:.625rem;flex:1}.blog-card h2{color:var(--blog-heading);font-size:1.1875rem;line-height:1.35;letter-spacing:-.01em;margin:0;font-weight:650}.blog-card p{color:var(--blog-body);font-size:.9375rem;line-height:1.6;margin:0}.blog-badge{display:inline-block;align-self:flex-start;background:var(--blog-accent-subtle);color:var(--blog-accent);border-radius:999px;padding:.1875rem .625rem;font-size:.75rem;font-weight:600;letter-spacing:.02em}.blog-meta{color:var(--blog-muted);font-size:.8125rem;display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;margin-top:auto;padding-top:.5rem}.blog-meta-dot:before{content:"·";margin-right:.5rem}.blog-empty{padding:5rem 0;text-align:center;color:var(--blog-muted)}.blog-pagination{display:flex;align-items:center;justify-content:center;gap:1rem;padding:2rem 0 1rem}.blog-pagination a,.blog-pagination span{color:var(--blog-body);border:1px solid var(--blog-border);border-radius:999px;padding:.5rem 1.125rem;font-size:.875rem;text-decoration:none}.blog-pagination a:hover{border-color:var(--blog-accent);color:var(--blog-accent)}.blog-pagination span{border-color:transparent;color:var(--blog-muted)}.blog-article{padding:2.5rem 0 0}.blog-breadcrumb{color:var(--blog-muted);font-size:.8125rem;margin-bottom:1.75rem;display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.blog-breadcrumb a{color:var(--blog-muted);text-decoration:none}.blog-breadcrumb a:hover{color:var(--blog-accent)}.blog-article-header{max-width:var(--blog-reading-width);margin:0 auto 2.5rem}.blog-article-header h1{color:var(--blog-heading);font-size:clamp(2rem,5vw,3rem);line-height:1.12;letter-spacing:-.03em;margin:.75rem 0 1rem;font-weight:700}.blog-article-cover{width:100%;max-width:1000px;margin:0 auto 3rem;display:block;border-radius:20px;aspect-ratio:1200/630;-o-object-fit:cover;object-fit:cover}.blog-preview-banner{background:var(--blog-accent-subtle);border:1px solid var(--blog-accent);color:var(--blog-heading);border-radius:12px;padding:.875rem 1.125rem;margin-bottom:2rem;font-size:.9375rem}.blog-body{max-width:var(--blog-reading-width);margin:0 auto;color:var(--blog-body);font-size:1.0625rem;line-height:1.75}.blog-body>*+*{margin-top:1.5rem}.blog-body h2{color:var(--blog-heading);font-size:1.625rem;line-height:1.25;letter-spacing:-.02em;font-weight:680;margin-top:3rem}.blog-body h3{color:var(--blog-heading);font-size:1.25rem;line-height:1.35;font-weight:650;margin-top:2.25rem}.blog-body a{color:var(--blog-accent);text-decoration:underline;text-underline-offset:3px}.blog-body strong{color:var(--blog-heading);font-weight:650}.blog-body ol,.blog-body ul{padding-left:1.375rem}.blog-body li+li{margin-top:.5rem}.blog-body img{max-width:100%;height:auto;border-radius:14px;display:block}.blog-body blockquote{border-left:3px solid var(--blog-accent);padding-left:1.25rem;color:var(--blog-heading);font-style:italic;margin-left:0;margin-right:0}.blog-body code{background:var(--blog-code-bg);border-radius:6px;padding:.125rem .375rem;font-size:.9em}.blog-body pre{background:var(--blog-code-bg);border-radius:12px;padding:1rem 1.25rem;overflow-x:auto}.blog-body pre code{background:none;padding:0}.blog-table-wrapper{overflow-x:auto}.blog-body table{border-collapse:collapse;width:100%;font-size:.9375rem}.blog-body td,.blog-body th{border:1px solid var(--blog-border);padding:.625rem .875rem;text-align:left}.blog-body th{color:var(--blog-heading);background:var(--blog-surface);font-weight:600}.blog-body hr{border:none;border-top:1px solid var(--blog-border)}.blog-cta{max-width:var(--blog-reading-width);margin:4rem auto 0;background:var(--blog-surface);border:1px solid var(--blog-border);border-radius:20px;padding:2.25rem;text-align:center}.blog-cta h2{color:var(--blog-heading);font-size:1.5rem;line-height:1.25;letter-spacing:-.02em;margin:0 0 .625rem;font-weight:680}.blog-cta p{color:var(--blog-body);margin:0 0 1.5rem;font-size:1rem;line-height:1.6}.blog-cta-button{display:inline-block;background:var(--blog-accent);color:var(--blog-on-accent);padding:.8125rem 1.75rem;border-radius:999px;font-weight:650;text-decoration:none;transition:opacity .2s ease}.blog-cta-button:hover{opacity:.85}.blog-share{max-width:var(--blog-reading-width);margin:3rem auto 0;display:flex;align-items:center;flex-wrap:wrap;gap:.75rem;color:var(--blog-muted);font-size:.875rem}.blog-share a{display:inline-flex;align-items:center;gap:.375rem;color:var(--blog-body);border:1px solid var(--blog-border);border-radius:999px;padding:.4375rem .875rem;text-decoration:none;font-size:.8125rem;transition:border-color .2s ease,color .2s ease}.blog-share a:hover{border-color:var(--blog-accent);color:var(--blog-accent)}.blog-related{margin-top:5rem;border-top:1px solid var(--blog-border);padding-top:3rem}.blog-related h2{color:var(--blog-heading);font-size:1.375rem;letter-spacing:-.02em;margin:0 0 1.75rem;font-weight:680}.blog-related .blog-grid{padding:0}.blog-langs{display:inline-flex;align-items:center;gap:.5rem;flex-wrap:wrap}.blog-langs a{color:var(--blog-muted);border:1px solid var(--blog-border);border-radius:999px;padding:.25rem .625rem;font-size:.75rem;text-decoration:none}.blog-langs a:hover{border-color:var(--blog-accent);color:var(--blog-accent)}@media (max-width:640px){.blog-container{padding:0 1.125rem}.blog-hero{padding:2.5rem 0 2rem}.blog-grid{gap:1.5rem;padding:2rem 0 1rem}.blog-cta{padding:1.75rem 1.25rem}}