.code-block{background:#0f1419;border-radius:8px;margin:1.5em 0;overflow:hidden;font-family:ui-monospace,"SF Mono",SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;border:1px solid #1f2937}.code-block-header{display:flex;align-items:center;justify-content:space-between;padding:8px 14px;background:#161b22;border-bottom:1px solid #1f2937}.code-block-lang{font-size:11px;color:#7d8590;text-transform:uppercase;letter-spacing:.06em;font-weight:600}.code-block-copy{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;background:0 0;color:#c9d1d9;border:1px solid #30363d;border-radius:5px;font-family:inherit;font-size:12px;cursor:pointer;transition:background-color 120ms,border-color 120ms,color 120ms}.code-block-copy:hover{background:#1f2937;border-color:#4b5563}.code-block-copy.is-copied{color:#56d364;border-color:#2ea043}.code-block-copy-label{line-height:1}.code-block-pre{margin:0;padding:16px 0;overflow-x:auto;color:#e6edf3;font-size:13px;line-height:1.55;background:0 0;counter-reset:cb-lineno}.code-block-pre code{background:0 0;color:inherit;font-family:inherit;font-size:inherit;padding:0;white-space:pre;display:block}.code-block .cb-line{display:block;padding-left:56px;position:relative}.code-block .cb-line::before{counter-increment:cb-lineno;content:counter(cb-lineno);position:absolute;left:0;width:40px;padding-right:12px;text-align:right;color:#484f58;user-select:none;-webkit-user-select:none;pointer-events:none}.code-block .cb-key{color:#79c0ff}.code-block .cb-str{color:#a5d6ff}@media (max-width:600px){.code-block-pre{font-size:12px;padding:14px 0}.code-block .cb-line{padding-left:44px}.code-block .cb-line::before{width:32px;padding-right:8px}}.blog-article{max-width:72rem;margin:0 auto;padding:6rem 1.5rem 4rem}.blog-article a{color:#000;text-decoration:underline}.blog-header{margin-bottom:3rem;text-align:left}.blog-main{max-width:48rem}.blog-title-box{padding:1.5rem;background:#f9fafb;border-radius:.5rem;border:1px solid #e5e7eb;margin-bottom:1rem}.blog-title{font-weight:250;color:#111;line-height:1.2;margin-bottom:.75rem;letter-spacing:-.02em}.blog-subtitle{font-size:1.25rem;font-weight:200;line-height:1.6;margin-bottom:0}.blog-meta-box{padding:1.5rem;background:#f9fafb;border-radius:.5rem;border:1px solid #e5e7eb;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem}.author{display:flex;align-items:center;gap:1rem}.author-avatar{width:4rem;height:4rem;border-radius:50%;overflow:hidden;background:#f3f4f6;display:flex;align-items:center;justify-content:center;flex-shrink:0;border:2px solid #000}.author-avatar img{width:100%;height:100%;object-fit:cover}.author-info{display:flex;flex-direction:column;align-items:flex-start;gap:.25rem}.author-name{font-size:1rem;font-weight:600;color:#111}.author-role{font-size:.875rem;color:#6b7280}.blog-meta-details{display:flex;align-items:center;gap:1.5rem}.blog-date,.reading-time{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:#6b7280}.blog-date svg,.reading-time svg{width:1rem;height:1rem;flex-shrink:0}.blog-content{color:#374151;line-height:1.8}.blog-layout{display:block}.blog-toc{display:none}.toc-nav{padding:1.5rem;background:#f9fafb;border-radius:.5rem;border:1px solid #e5e7eb}.toc-mobile{display:block;margin-bottom:2rem}.toc-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;padding:1rem 1.25rem;background:#f9fafb;border:1px solid #e5e7eb;border-radius:.5rem;font-size:.875rem;font-weight:600;color:#111;cursor:pointer;transition:background-color .15s}.toc-toggle:hover{background:#f3f4f6}.toc-toggle:focus-visible{outline:0;box-shadow:0 0 0 3px #000}.toc-toggle-icon{width:1.25rem;height:1.25rem;transition:transform .2s}.toc-toggle[aria-expanded=true] .toc-toggle-icon{transform:rotate(180deg)}.toc-dropdown{margin-top:.5rem;padding:1rem 1.25rem;background:#f9fafb;border:1px solid #e5e7eb;border-radius:.5rem}.toc-dropdown[hidden]{display:none}.toc-dropdown .toc-link{padding:.5rem 0 .5rem .75rem}.toc-dropdown .toc-link-sub{padding-left:1.5rem}.toc-title{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#6b7280;margin-bottom:1rem}.toc-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}.toc-link{display:block;font-size:.875rem;color:#4b5563;text-decoration:none;padding:.375rem 0 .375rem .75rem;border-left:2px solid transparent;transition:color .15s,border-color .15s}.toc-link:hover{color:#111;border-left-color:#111}.toc-link:focus-visible{outline:0;box-shadow:0 0 0 3px #000;border-radius:.25rem}.toc-link.active{color:#111;font-weight:500;border-left-color:#111}.toc-sublist{list-style:none;padding:0;margin:.25rem 0 0;display:flex;flex-direction:column;gap:.125rem}.toc-link-sub{font-size:.8125rem;padding:.25rem 0 .25rem 1.25rem;color:#6b7280}.toc-link-sub:hover{color:#111}.blog-content section{margin-bottom:3rem;scroll-margin-top:6rem}.blog-content h2{font-size:1.75rem;font-weight:700;color:#111;margin-bottom:1rem;margin-top:2.5rem;scroll-margin-top:6rem;letter-spacing:-.01em;line-height:1.3}.blog-content section>h2:first-child{margin-top:0}.blog-content h3{font-size:1.25rem;font-weight:600;color:#111;margin-top:2rem;margin-bottom:.75rem;scroll-margin-top:6rem;line-height:1.4}.blog-content h4{font-size:1.0625rem;font-weight:600;color:#374151;margin-top:1.5rem;margin-bottom:.5rem;line-height:1.4}.blog-content p{margin-bottom:1rem}.blog-content ol,.blog-content ul{margin-bottom:1.5rem;padding-left:1.5rem}.blog-content li{margin-bottom:.5rem;line-height:1.7}.blog-content li strong{color:#111}.blog-content code{font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace;font-size:.875em;background:#f3f4f6;padding:.125rem .375rem;border-radius:.25rem;color:#111}.blog-content .code-block code,.blog-content .code-block-pre code{background:0 0;color:inherit;padding:0;border-radius:0}.blog-content strong{font-weight:600}.blog-content blockquote{margin:1.5rem 0;padding:1rem 1.5rem;border-left:4px solid #111;background:#f8fafc;color:#374151;font-style:italic}.blog-content blockquote p{margin-bottom:0}.blog-content blockquote cite{display:block;margin-top:.75rem;font-size:.875rem;font-style:normal;color:#6b7280}.callout{margin:1.5rem 0;padding:1.25rem 1.5rem;border-radius:.5rem;border:1px solid}.callout-title{display:flex;align-items:center;gap:.5rem;font-weight:600;margin-bottom:.5rem}.callout-title svg{width:1.25rem;height:1.25rem;flex-shrink:0}.callout-info{background:#eff6ff;border-color:#bfdbfe;color:#1e40af}.callout-warning{background:#fffbeb;border-color:#fde68a;color:#92400e}.callout-success{background:#f0fdf4;border-color:#bbf7d0;color:#166534}.callout p:last-child{margin-bottom:0}@media (min-width:1024px){.blog-layout{display:grid;grid-template-columns:220px 1fr;gap:3rem;align-items:start}.blog-toc{display:block;position:sticky;top:6rem;max-height:calc(100vh - 8rem);overflow-y:auto}.toc-mobile{display:none}}.blog-index-container{max-width:72rem;margin:0 auto;padding:6rem 1.5rem 4rem}.blog-index-header{margin-bottom:3rem;text-align:left}.blog-index-header h1{font-size:3rem;font-weight:250;color:#111;line-height:1.2;margin-bottom:.75rem;letter-spacing:-.02em}.blog-index-subtitle{font-size:1.25rem;font-weight:200;line-height:1.6;color:#666;margin:0}.blog-posts-grid{display:grid;grid-template-columns:1fr;gap:2rem;max-width:48rem}.blog-post-card{background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;transition:border-color .2s,box-shadow .2s}.blog-post-card:hover{border-color:#d1d5db;box-shadow:0 4px 6px -1px rgba(0,0,0,.05),0 2px 4px -1px rgba(0,0,0,.03)}.blog-post-card-placeholder{opacity:.6}.blog-post-card-placeholder:hover{border-color:#e5e7eb;box-shadow:none;cursor:default}.blog-post-link{display:block;text-decoration:none;color:inherit}.blog-post-content{padding:1.5rem}.blog-post-date{display:block;font-size:.875rem;color:#6b7280;margin-bottom:.5rem;font-weight:400}.blog-post-title{font-size:1.5rem;font-weight:400;color:#111;line-height:1.3;margin-bottom:.75rem;letter-spacing:-.01em}.blog-post-excerpt{font-size:1rem;line-height:1.6;color:#4b5563;margin-bottom:1rem;display:block}.blog-post-read-more{font-size:.875rem;color:#111;font-weight:500;text-decoration:none;transition:transform .2s;display:inline-block}.blog-post-link:hover .blog-post-read-more{transform:translateX(4px)}@media (max-width:768px){.blog-index-header h1{font-size:2rem}.blog-index-subtitle{font-size:1.125rem}.blog-post-content{padding:1.25rem}.blog-post-title{font-size:1.25rem}.blog-post-excerpt{font-size:.9375rem}}