[data-blog-theme=dark]{--blog-bg:#0a0a0a;--blog-bg-elevated:#1a1a1a;--blog-bg-subtle:#ffffff08;--blog-bg-muted:#ffffff0f;--blog-bg-hover:#ffffff0a;--blog-bg-input:#ffffff0f;--blog-border:#ffffff14;--blog-border-hover:#ffffff1f;--blog-border-muted:#ffffff0f;--blog-text-heading:white;--blog-text-primary:#ffffffe6;--blog-text-body:#fff9;--blog-text-secondary:#ffffff80;--blog-text-muted:#fff6;--blog-text-faint:#ffffff4d;--blog-accent:#5b8def;--blog-accent-muted:#5b8def33;--blog-link:#436ec1;--blog-code-bg:#ffffff0f;--blog-code-text:#8ab4d4;--blog-code-block-bg:#1a1a1a;--blog-code-block-text:#fffc;--blog-glass-bg:#0009;--blog-glass-border:#ffffff14;--blog-progress-bg:#5b8def;--blog-progress-track:#1f1f1f;--blog-overlay-bg:#0009;--blog-dialog-bg:#1a1a1af2;--blog-dialog-border:#ffffff1a;--blog-gradient-start:#fff;--blog-gradient-mid:#b8cbede6;--blog-gradient-end:#436ec1cc;--blog-danger:#ef4444;--blog-reader-active:#22c55e}[data-blog-theme=light]{--blog-bg:#fafafa;--blog-bg-elevated:#fff;--blog-bg-subtle:#00000005;--blog-bg-muted:#0000000d;--blog-bg-hover:#00000008;--blog-bg-input:#0000000a;--blog-border:#0000001a;--blog-border-hover:#0000002e;--blog-border-muted:#0000000f;--blog-text-heading:#111;--blog-text-primary:#000000d9;--blog-text-body:#0009;--blog-text-secondary:#00000080;--blog-text-muted:#0006;--blog-text-faint:#00000040;--blog-accent:#3b6fd4;--blog-accent-muted:#3b6fd41f;--blog-link:#3b6fd4;--blog-code-bg:#0000000d;--blog-code-text:#2b6cb0;--blog-code-block-bg:#f0f0f0;--blog-code-block-text:#000c;--blog-glass-bg:#ffffffbf;--blog-glass-border:#0000001a;--blog-progress-bg:#3b6fd4;--blog-progress-track:#e5e5e5;--blog-overlay-bg:#0000004d;--blog-dialog-bg:#fffffff7;--blog-dialog-border:#0000001f;--blog-gradient-start:#111;--blog-gradient-mid:#3b5998;--blog-gradient-end:#3b6fd4;--blog-danger:#dc2626;--blog-reader-active:#16a34a}[data-blog-theme=hacker]{--blog-bg:#0a0a0a;--blog-bg-elevated:#111;--blog-bg-subtle:#33ff0008;--blog-bg-muted:#33ff0014;--blog-bg-hover:#33ff000d;--blog-bg-input:#33ff000f;--blog-border:#33ff0026;--blog-border-hover:#33ff004d;--blog-border-muted:#33ff0014;--blog-text-heading:#3f0;--blog-text-primary:#33ff00e6;--blog-text-body:#3f09;--blog-text-secondary:#33ff0080;--blog-text-muted:#3f06;--blog-text-faint:#33ff0040;--blog-accent:#3f0;--blog-accent-muted:#33ff0026;--blog-link:#3f0;--blog-code-bg:#33ff0014;--blog-code-text:#3f0;--blog-code-block-bg:#0d0d0d;--blog-code-block-text:#3f0c;--blog-glass-bg:#000000bf;--blog-glass-border:#33ff0026;--blog-progress-bg:#3f0;--blog-progress-track:#0d1a0d;--blog-overlay-bg:#000000b3;--blog-dialog-bg:#0a0a0af7;--blog-dialog-border:#3f03;--blog-gradient-start:#3f0;--blog-gradient-mid:#2c0;--blog-gradient-end:#3f0;--blog-danger:#f33;--blog-reader-active:#3f0}html[data-blog-theme=light] body{background-color:#fafafa!important}.blog-main{background-color:var(--blog-bg);min-height:100vh;color:var(--blog-text-body);overflow-x:hidden}.blog-index{max-width:80rem;margin:0 auto;padding:4rem 1rem 6rem}@media (min-width:768px){.blog-index{padding:6rem 1.5rem 8rem}}.blog-post{max-width:var(--blog-content-width,720px);overflow-wrap:break-word;word-break:break-word;margin:0 auto;padding:3rem 1rem 6rem}@media (min-width:768px){.blog-post{padding:4rem 1.5rem 8rem}}.blog-post-hero{border-bottom:1px solid var(--blog-border);margin-bottom:3rem;padding-bottom:2rem}.blog-post-hero h1{letter-spacing:-.03em;color:var(--blog-text-heading);overflow-wrap:break-word;word-break:break-word;margin-bottom:1rem;font-size:1.625rem;font-weight:700;line-height:1.15}@media (min-width:480px){.blog-post-hero h1{font-size:2rem}}@media (min-width:768px){.blog-post-hero h1{font-size:2.75rem}}.blog-post-hero .subtitle{color:var(--blog-text-secondary);margin-bottom:1.5rem;font-size:1rem;line-height:1.6}@media (min-width:480px){.blog-post-hero .subtitle{font-size:1.125rem}}.blog-post-meta{color:var(--blog-text-muted);align-items:center;gap:.75rem;font-size:.875rem;display:flex}.blog-post-meta .author-avatar{object-fit:cover;border-radius:50%;width:36px;height:36px}.blog-post-meta .author-name{color:var(--blog-text-body);font-weight:500}.blog-post-meta .divider{color:var(--blog-text-faint)}.blog-reading-mode-row{margin-top:1rem}.blog-content h2{color:var(--blog-text-heading);letter-spacing:-.02em;overflow-wrap:break-word;margin-top:2.5rem;margin-bottom:1rem;font-size:1.375rem;font-weight:700}@media (min-width:480px){.blog-content h2{font-size:1.5rem}}.blog-content h3{color:var(--blog-text-primary);overflow-wrap:break-word;margin-top:2rem;margin-bottom:.75rem;font-size:1.125rem;font-weight:600}@media (min-width:480px){.blog-content h3{font-size:1.25rem}}.blog-content p{font-size:var(--blog-font-size,1rem);line-height:var(--blog-line-height,1.75);font-family:var(--blog-font-family,inherit);color:var(--blog-text-body);margin-bottom:1.25rem}@media (min-width:480px){.blog-content p{font-size:var(--blog-font-size,1.0625rem)}}.blog-content p strong{color:var(--blog-text-primary);font-weight:600}.blog-content a{color:var(--blog-link);text-decoration:none}.blog-content a:hover{text-decoration:underline}.blog-content ul,.blog-content ol{margin-bottom:1.25rem;padding-left:1.25rem}@media (min-width:480px){.blog-content ul,.blog-content ol{padding-left:1.5rem}}.blog-content li{font-size:var(--blog-font-size,1rem);line-height:var(--blog-line-height,1.75);font-family:var(--blog-font-family,inherit);color:var(--blog-text-body);margin-bottom:.5rem}@media (min-width:480px){.blog-content li{font-size:var(--blog-font-size,1.0625rem)}}.blog-content li strong{color:var(--blog-text-primary)}.blog-content blockquote{border-left:3px solid color-mix(in oklch,var(--blog-link)50%,transparent);margin:1.5rem 0;padding-left:1.25rem;font-style:italic}.blog-content blockquote p{color:var(--blog-text-secondary)}.blog-content hr{background:var(--blog-border);border:none;height:1px;margin:2.5rem 0}.blog-content :not(pre)>code{background-color:var(--blog-code-bg);color:var(--blog-code-text);word-break:break-all;border-radius:4px;padding:.15em .4em;font-family:Geist Mono,ui-monospace,monospace;font-size:.9em}.blog-content pre{background-color:var(--blog-code-block-bg);border:1px solid var(--blog-border);border-radius:8px;max-width:100%;margin:1.5rem 0;padding:1.25rem;font-size:.875rem;line-height:1.6;overflow-x:auto}@media (max-width:480px){.blog-content pre{border-radius:6px;padding:1rem;font-size:.8125rem}}.blog-content pre code{color:var(--blog-code-block-text);font-size:inherit;background:0 0;padding:0}.blog-demo{border:1px solid var(--blog-border);border-radius:12px;margin:2rem 0;overflow:hidden}.blog-demo-label{text-transform:uppercase;letter-spacing:.05em;color:var(--blog-text-muted);background:var(--blog-bg-subtle);border-bottom:1px solid var(--blog-border-muted);padding:.5rem 1rem;font-family:Geist Mono,ui-monospace,monospace;font-size:.75rem;font-weight:600}.blog-demo-content{background:var(--blog-bg-subtle);padding:1.5rem;overflow:hidden}@media (max-width:480px){.blog-demo-content{padding:.75rem}}.blog-demo-content>*{min-width:0;max-width:100%}.blog-demo-full{margin-left:-1rem;margin-right:-1rem}@media (min-width:768px){.blog-demo-full{margin-left:-2rem;margin-right:-2rem}}.blog-post-with-toc .blog-demo-full{margin-left:0;margin-right:0}.blog-stat{background:var(--blog-bg-subtle);border:1px solid var(--blog-border-muted);border-radius:12px;grid-template-columns:repeat(4,1fr);gap:1.5rem;margin:2rem 0;padding:1.5rem;display:grid}@media (max-width:480px){.blog-stat{grid-template-columns:repeat(2,1fr);gap:1rem}}.blog-stat-item{text-align:center}.blog-stat-value{color:var(--blog-text-heading);letter-spacing:-.02em;font-size:1.5rem;font-weight:700;font-family:var(--font-bungee),sans-serif}@media (min-width:480px){.blog-stat-value{font-size:1.75rem}}.blog-stat-label{color:var(--blog-text-muted);margin-top:.25rem;font-size:.8125rem}.blog-card{background:var(--blog-bg-subtle);border:1px solid var(--blog-border-muted);border-radius:12px;padding:2rem;text-decoration:none;transition:border-color .2s,background-color .2s;display:block}.blog-card:hover{border-color:var(--blog-border-hover);background:var(--blog-bg-hover)}.blog-card-tag{text-transform:uppercase;letter-spacing:.08em;color:var(--blog-link);margin-bottom:.75rem;font-family:Geist Mono,ui-monospace,monospace;font-size:.6875rem;font-weight:600;display:inline-block}.blog-card h3{color:var(--blog-text-heading);letter-spacing:-.02em;margin-bottom:.5rem;font-size:1.375rem;font-weight:700;line-height:1.3}.blog-card p{color:var(--blog-text-secondary);margin-bottom:1rem;font-size:.9375rem;line-height:1.6}.blog-card-footer{color:var(--blog-text-faint);font-size:.8125rem}.blog-hero{box-sizing:border-box;justify-content:center;align-items:center;min-height:100dvh;padding-top:5.5rem;padding-bottom:2rem;display:flex;position:relative;overflow:hidden}@media (min-width:768px){.blog-hero{padding-top:4rem}}.blog-gradient-text{background:linear-gradient(135deg,var(--blog-gradient-start)0%,var(--blog-gradient-mid)40%,var(--blog-gradient-end)100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.hero-glow{background:radial-gradient(ellipse 80% 60% at 50% 40%,color-mix(in oklch,var(--blog-accent)8%,transparent)0%,transparent 70%);position:absolute;inset:0}.hero-noise{pointer-events:none;z-index:1;opacity:.03;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");background-repeat:repeat;position:absolute;inset:0}.hero-bottom-fade{pointer-events:none;z-index:1;background:linear-gradient(to top,var(--blog-bg),var(--blog-bg)10%,transparent);height:12rem;position:absolute;bottom:0;left:0;right:0}.hero-content{z-index:10;text-align:center;box-sizing:border-box;flex-direction:column;align-items:center;width:100%;min-width:0;max-width:100%;padding:0 1.25rem;display:flex;position:relative}@media (min-width:480px){.hero-content{padding:0 1.5rem}}.hero-heading{letter-spacing:-.02em;overflow-wrap:break-word;max-width:100%;margin-bottom:1.5rem;font-size:clamp(2.25rem,8vw,7rem);font-weight:700;line-height:1}[data-blog-theme=hacker] .hero-heading{text-shadow:0 0 4px #3f0,0 0 12px #33ff0080,0 0 40px #33ff0040}.hero-subtitle{max-width:42rem;color:var(--blog-text-secondary);margin-bottom:2rem;font-size:1rem;line-height:1.7}@media (min-width:480px){.hero-subtitle{font-size:1.125rem}}@media (min-width:768px){.hero-subtitle{font-size:1.25rem}}.hero-separator{background:color-mix(in oklch,var(--blog-accent)30%,transparent);width:80px;height:1px}.hero-featured-card{border:1px solid var(--blog-border);background:var(--blog-glass-bg);-webkit-backdrop-filter:blur(20px);box-sizing:border-box;border-radius:12px;width:100%;min-width:0;max-width:480px;padding:1.25rem;text-decoration:none;transition:border-color .2s,background-color .2s;display:block}@media (min-width:480px){.hero-featured-card{padding:2rem}}.hero-featured-card:hover{border-color:var(--blog-border-hover);background:color-mix(in oklch,var(--blog-glass-bg)90%,var(--blog-accent)10%)}.hero-featured-card-tag{text-transform:uppercase;letter-spacing:.08em;color:var(--blog-accent);margin-bottom:.75rem;font-family:Geist Mono,ui-monospace,monospace;font-size:.6875rem;font-weight:600;display:inline-block}.hero-featured-card-title{color:var(--blog-text-heading);font-size:1.0625rem;font-weight:700;line-height:1.3;font-family:var(--font-bungee),sans-serif;overflow-wrap:break-word;word-break:break-word;margin-bottom:.5rem}@media (min-width:480px){.hero-featured-card-title{font-size:1.25rem}}@media (min-width:640px){.hero-featured-card-title{font-size:1.5rem}}.hero-featured-card-desc{-webkit-line-clamp:3;color:var(--blog-text-secondary);-webkit-box-orient:vertical;margin-bottom:1rem;font-size:.875rem;line-height:1.6;display:-webkit-box;overflow:hidden}@media (min-width:480px){.hero-featured-card-desc{-webkit-line-clamp:2;font-size:.9375rem}}.hero-featured-card-footer{flex-direction:column;align-items:flex-start;gap:.75rem;margin-top:auto;display:flex}@media (min-width:480px){.hero-featured-card-footer{flex-direction:row;justify-content:space-between;align-items:center;gap:0}}.hero-featured-card-meta{color:var(--blog-text-faint);font-family:Geist Mono,ui-monospace,monospace;font-size:.8125rem}.hero-cta-button{color:#fff;background:var(--blog-accent);border-radius:9999px;justify-content:center;align-items:center;gap:6px;width:100%;padding:10px 20px;font-family:Geist Mono,ui-monospace,monospace;font-size:.8125rem;font-weight:600;transition:opacity .2s;display:inline-flex}@media (min-width:480px){.hero-cta-button{width:auto;padding:6px 16px}}.hero-featured-card:hover .hero-cta-button{opacity:.85}[data-blog-theme=hacker] .hero-cta-button{color:#0a0a0a}.hero-duo{flex-direction:column;gap:1rem;width:100%;min-width:0;max-width:960px;margin-top:2rem;display:flex}@media (min-width:480px){.hero-duo{gap:1.5rem}}@media (min-width:1024px){.hero-duo{flex-direction:row;align-items:stretch}.hero-duo>*{flex:1;min-width:0}}.hero-duo .blog-subscribe{flex-direction:column;justify-content:center;max-width:none;margin:0;display:flex}.hero-duo .hero-featured-card{flex-direction:column;max-width:none;display:flex}@media (prefers-reduced-motion:reduce){.hero-content *{transition:none!important;animation:none!important}}.blog-index-grid{gap:1.5rem;display:grid}@media (min-width:768px){.blog-index-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:1024px){.blog-index-grid{grid-template-columns:repeat(3,1fr)}}[data-blog-theme=dark] .blog-main+footer,[data-blog-theme=hacker] .blog-main+footer{background-color:#0a0a0a}[data-blog-theme=light] .blog-main+footer{background-color:#fafafa}[data-blog-theme=light] .blog-main+footer *{color:#080a0e;color:lab(2.72854% -.0508502 -2.03854)}[data-blog-theme=light] .blog-main+footer a:hover{opacity:.7}[data-blog-theme=light] .blog-main+footer .h-px{background:linear-gradient(90deg,#0000,#0000001a,#0000)!important}[data-blog-theme=light] .blog-main+footer .rounded-lg[style]{background:linear-gradient(135deg,#0000001a 0%,#00000008 50%,#0000000f 100%)!important}[data-blog-theme=hacker] .blog-main+footer{font-family:Geist Mono,ui-monospace,monospace}[data-blog-theme=hacker] .blog-main+footer *{color:#3f09}[data-blog-theme=hacker] .blog-main+footer a:hover{color:#3f0}[data-blog-theme=hacker] .blog-main+footer h3,[data-blog-theme=hacker] .blog-main+footer span{color:#3f0c}[data-blog-theme=hacker] .blog-main+footer .h-px{background:linear-gradient(90deg,#0000,#33ff0026,#0000)}[data-blog-theme=hacker] .blog-main+footer img,[data-blog-theme=hacker] .blog-main+footer p{filter:sepia()hue-rotate(70deg)saturate(1.5)}.blog-text-heading{color:var(--blog-text-heading)}.blog-text-primary{color:var(--blog-text-primary)}.blog-text-body{color:var(--blog-text-body)}.blog-text-secondary{color:var(--blog-text-secondary)}.blog-text-muted{color:var(--blog-text-muted)}.blog-text-faint{color:var(--blog-text-faint)}.blog-bg-input{background-color:var(--blog-bg-input)}.blog-bg-elevated{background-color:var(--blog-bg-elevated)}.blog-border{border-color:var(--blog-border)}.blog-subscribe{background:var(--blog-bg-subtle);border:1px solid var(--blog-border-muted);text-align:center;box-sizing:border-box;border-radius:12px;min-width:0;max-width:480px;margin:0 auto;padding:1.25rem}@media (min-width:480px){.blog-subscribe{padding:2rem}}.blog-subscribe-heading{color:var(--blog-text-heading);font-size:1.25rem;font-weight:700;font-family:var(--font-bungee),sans-serif;letter-spacing:-.02em;margin-bottom:.25rem}.blog-subscribe-text{color:var(--blog-text-secondary);margin-bottom:1.25rem;font-size:.9375rem}.blog-subscribe-form{flex-direction:column;gap:.625rem;display:flex}.blog-subscribe-row{gap:.625rem;min-width:0;display:flex}@media (max-width:380px){.blog-subscribe-row{flex-direction:column}}.blog-subscribe-input{border:1px solid var(--blog-border);background:var(--blog-bg-input);min-width:0;color:var(--blog-text-primary);border-radius:8px;outline:none;flex:1;padding:10px 14px;font-size:.875rem;transition:border-color .2s}.blog-subscribe-input::placeholder{color:var(--blog-text-muted)}.blog-subscribe-input:focus{border-color:var(--blog-accent)}.blog-subscribe-input:disabled{opacity:.6}.blog-subscribe-btn{color:#fff;background:var(--blog-accent);cursor:pointer;border:none;border-radius:9999px;padding:10px 20px;font-size:.875rem;font-weight:600;transition:opacity .2s,transform .2s}.blog-subscribe-btn:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}.blog-subscribe-btn:disabled{opacity:.6;cursor:not-allowed}[data-blog-theme=hacker] .blog-subscribe-btn{color:#0a0a0a}.blog-subscribe-success{padding:1rem 0}.blog-subscribe-success-heading{color:var(--blog-text-heading);margin-bottom:.5rem;font-size:1.125rem;font-weight:700}.blog-subscribe-success-text{color:var(--blog-text-secondary);font-size:.9375rem;line-height:1.6}.blog-subscribe-success-text strong{color:var(--blog-text-primary)}
.blog-cta-card{background:var(--blog-bg-subtle);border:1px solid var(--blog-border-muted);text-align:center;border-radius:12px;margin:3rem 0;padding:2rem}.blog-cta-headline{color:var(--blog-text-heading);font-size:1.25rem;font-weight:700;font-family:var(--font-bungee),sans-serif;letter-spacing:-.02em;margin-bottom:.25rem}.blog-cta-subtitle{color:var(--blog-text-secondary);margin-bottom:1.5rem;font-size:.9375rem}.blog-cta-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:.75rem;display:flex}.blog-cta-btn-primary{color:#fff;background:var(--blog-accent);border-radius:9999px;align-items:center;gap:6px;padding:10px 20px;font-size:.875rem;font-weight:600;text-decoration:none;transition:opacity .2s,transform .2s;display:inline-flex}.blog-cta-btn-primary:hover{opacity:.9;transform:translateY(-1px)}[data-blog-theme=hacker] .blog-cta-btn-primary{color:#0a0a0a}.blog-cta-btn-secondary{color:var(--blog-text-body);background:var(--blog-bg-muted);border-radius:9999px;align-items:center;gap:6px;padding:10px 20px;font-size:.875rem;font-weight:600;text-decoration:none;transition:background .2s,transform .2s;display:inline-flex}.blog-cta-btn-secondary:hover{background:var(--blog-border-hover);transform:translateY(-1px)}.blog-post-with-toc{max-width:var(--blog-content-width,720px);overflow-wrap:break-word;word-break:break-word;min-width:0;margin:0 auto;padding:6rem 1rem;position:relative}@media (min-width:768px){.blog-post-with-toc{padding:7rem 1.5rem 8rem}}.blog-toc-wrapper{display:none}@media (min-width:1380px){.blog-toc-wrapper{z-index:39;width:180px;display:block;position:fixed;top:7rem;left:1.5rem}}.blog-post-with-toc .blog-post-content{min-width:0;max-width:100%}.blog-section-collapsible{transition:grid-template-rows .4s ease-out,opacity .3s ease-out;display:grid}.blog-section-collapsible[data-collapsed=true]{opacity:0;grid-template-rows:0fr}.blog-section-collapsible[data-collapsed=false]{opacity:1;grid-template-rows:1fr}.blog-section-collapsible[data-collapsed=false]>.blog-section-collapsible-inner{min-width:0;overflow:visible}.blog-section-collapsible[data-collapsed=true]>.blog-section-collapsible-inner{overflow:hidden}.blog-tldr-summary{color:var(--blog-text-muted);margin-bottom:.5rem;font-size:.9375rem;line-height:1.6;transition:opacity .3s ease-out}[data-reading-mode=tldr] h2{margin-top:1.5rem;margin-bottom:.5rem}[data-reading-mode=tldr] h3{margin-top:1.25rem;margin-bottom:.5rem}[data-reading-mode=tldr] hr{margin:1.25rem 0}.blog-demo-source{background:var(--blog-bg-subtle)}.blog-minimap{z-index:39;opacity:.5;transition:opacity .2s;display:none;position:fixed;top:7rem;right:1.5rem}.blog-minimap:hover{opacity:1}@media (min-width:1380px){.blog-minimap{display:block}}.blog-paragraph-reactions{position:relative}.blog-reaction-gutter{z-index:10;flex-direction:column;align-items:flex-start;gap:4px;margin-left:12px;display:flex;position:absolute;top:4px;left:100%}@media (max-width:1379px){.blog-reaction-gutter{display:none}}.blog-reaction-trigger{cursor:pointer;background:var(--blog-bg-muted);width:24px;height:24px;color:var(--blog-text-muted);border:none;border-radius:50%;outline:none;justify-content:center;align-items:center;transition:background .15s,color .15s;display:flex}.blog-reaction-trigger:hover{background:var(--blog-border-hover);color:var(--blog-text-body)}.blog-reaction-picker{background:var(--blog-bg-elevated);border:1px solid var(--blog-dialog-border);box-shadow:0 8px 32px #0006,0 0 0 1px var(--blog-border-muted);z-index:9999;white-space:nowrap;border-radius:12px;gap:2px;padding:4px;display:flex}.blog-reaction-picker button{cursor:pointer;background:0 0;border:none;border-radius:8px;outline:none;justify-content:center;align-items:center;width:32px;height:32px;font-size:16px;transition:background .15s,transform .15s;display:flex}.blog-reaction-picker button:hover{background:var(--blog-bg-muted);transform:scale(1.15)}.blog-reaction-picker button.reacted{background:var(--blog-accent-muted);transform:scale(1.1)}.blog-reaction-pill{background:var(--blog-bg-muted);color:var(--blog-text-body);cursor:pointer;border:none;border-radius:9999px;outline:none;align-items:center;gap:3px;padding:2px 7px;font-size:.6875rem;line-height:1.4;transition:background .15s;display:inline-flex}.blog-reaction-pill:hover{background:var(--blog-border-hover)}.blog-reaction-pill.user-reacted{background:var(--blog-accent-muted)}.blog-mobile-indicators{pointer-events:none;z-index:49;width:24px;position:fixed;top:56px;bottom:40px;right:0;overflow:hidden}.blog-mobile-indicator{will-change:top;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;display:flex;position:absolute;top:0;right:-12px}.blog-mobile-indicator span{color:#fff;margin-right:4px;font-size:10px;font-weight:700;line-height:1}.blog-reader-count{background:var(--blog-bg-muted);color:var(--blog-text-secondary);border-radius:9999px;align-items:center;gap:6px;padding:4px 12px;font-size:.75rem;display:inline-flex}.blog-reader-dot{background:var(--blog-reader-active);border-radius:50%;width:6px;height:6px;animation:2s ease-in-out infinite blog-reader-pulse}@keyframes blog-reader-pulse{0%,to{opacity:1}50%{opacity:.4}}.blog-focus-mode nav,.blog-focus-mode footer,.blog-focus-mode .blog-toc-wrapper,.blog-focus-mode .blog-minimap,.blog-focus-mode .blog-reader-count,.blog-focus-mode .blog-reaction-gutter,.blog-focus-mode .blog-bottom-bar,.blog-focus-mode .blog-mobile-indicators,.blog-focus-mode .blog-cursors-overlay{transition:opacity .4s ease-out;opacity:0!important;pointer-events:none!important}[data-blog-theme=hacker] .blog-main{font-family:Geist Mono,ui-monospace,monospace}[data-blog-theme=hacker] .blog-content h2,[data-blog-theme=hacker] .blog-content h3,[data-blog-theme=hacker] .blog-post-hero h1{text-shadow:0 0 2px #3f0,0 0 8px #3f06,0 0 20px #3f03}[data-blog-theme=hacker] .blog-content p,[data-blog-theme=hacker] .blog-content li{text-shadow:0 0 4px #33ff0026}[data-blog-theme=hacker] .blog-content :not(pre)>code{color:#3f0!important;background-color:#33ff0014!important}[data-blog-theme=hacker] .blog-content img,[data-blog-theme=hacker] .blog-demo img,[data-blog-theme=hacker] nav img,[data-blog-theme=hacker] .author-avatar{filter:sepia()hue-rotate(70deg)saturate(1.5)}[data-blog-theme=hacker] .blog-presence-avatar{color:#0a0a0a!important;background:#3f0!important}[data-blog-theme=hacker] .blog-demo-content{filter:sepia(.85)hue-rotate(90deg)saturate(2)brightness(.85)}[data-blog-theme=light] nav span{color:#080a0e;color:lab(2.72854% -.0508502 -2.03854)}[data-blog-theme=hacker] nav span{color:#3f0}@keyframes blog-crt-flicker{0%{opacity:.98}50%{opacity:1}to{opacity:.97}}[data-blog-theme=hacker] .blog-main:before{content:"";z-index:1;pointer-events:none;background:repeating-linear-gradient(#0000 0 2px,#00000026 2px 4px);animation:.1s infinite blog-crt-flicker;position:fixed;inset:0}[data-blog-theme=hacker] .blog-main:after{content:"";z-index:1;pointer-events:none;background:radial-gradient(#0000 60%,#0006 100%);position:fixed;inset:0}@media (prefers-reduced-motion:reduce){[data-blog-theme=hacker] .blog-main:before{animation:none;display:none}}.blog-comments-section{border-top:1px solid var(--blog-border);margin:3rem 0;padding-top:2rem}.blog-comments-header{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.blog-comments-heading{color:var(--blog-text-heading);font-size:1.375rem;font-weight:700;font-family:var(--font-bungee),sans-serif;letter-spacing:-.02em;margin:0}.blog-comments-signed-in{color:var(--blog-text-secondary);margin-bottom:.75rem;font-size:.875rem}.blog-comments-signed-in strong{color:var(--blog-text-primary)}.blog-comments-composer{margin-bottom:2rem}.blog-comments-loading{color:var(--blog-text-muted);text-align:center;padding:2rem 0;font-size:.875rem}.blog-comments-empty{color:var(--blog-text-muted);text-align:center;padding:2rem 0;font-size:.9375rem}.blog-comments-list{flex-direction:column;gap:.25rem;display:flex}.blog-comment-auth{background:var(--blog-bg-subtle);border:1px solid var(--blog-border-muted);text-align:center;border-radius:12px;margin-bottom:2rem;padding:2rem}.blog-comment-auth-heading{color:var(--blog-text-heading);font-size:1.25rem;font-weight:700;font-family:var(--font-bungee),sans-serif;letter-spacing:-.02em;margin-bottom:.25rem}.blog-comment-auth-text{color:var(--blog-text-secondary);margin-bottom:1.25rem;font-size:.9375rem}.blog-comment-auth-form{flex-direction:column;gap:.625rem;margin-bottom:.75rem;display:flex}.blog-comment-auth-toggle{color:var(--blog-text-secondary);font-size:.875rem}.blog-comment-auth-row{gap:.625rem;display:flex}.blog-comment-auth-success{padding:1rem 0}.blog-comment-auth-success-heading{color:var(--blog-text-heading);margin-bottom:.5rem;font-size:1.125rem;font-weight:700}.blog-comment-auth-success-text{color:var(--blog-text-secondary);font-size:.9375rem;line-height:1.6}.blog-comment-auth-success-text strong{color:var(--blog-text-primary)}.blog-comment-form{flex-direction:column;gap:.5rem;display:flex}.blog-comment-form-textarea{border:1px solid var(--blog-border);background:var(--blog-bg-input);width:100%;min-height:80px;color:var(--blog-text-primary);resize:none;border-radius:8px;outline:none;padding:10px 14px;font-family:inherit;font-size:.9375rem;line-height:1.6;transition:border-color .2s}.blog-comment-form-textarea::placeholder{color:var(--blog-text-muted)}.blog-comment-form-textarea:focus{border-color:var(--blog-accent)}.blog-comment-form-textarea:disabled{opacity:.6}.blog-comment-form-actions{justify-content:flex-end;gap:.5rem;display:flex}.blog-comment-form-submit{color:#fff;background:var(--blog-accent);cursor:pointer;border:none;border-radius:9999px;padding:10px 20px;font-size:.875rem;font-weight:600;transition:opacity .2s,transform .2s}.blog-comment-form-submit:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}.blog-comment-form-submit:disabled{opacity:.6;cursor:not-allowed}[data-blog-theme=hacker] .blog-comment-form-submit{color:#0a0a0a}.blog-comment-form-cancel{color:var(--blog-text-body);background:var(--blog-bg-muted);cursor:pointer;border:none;border-radius:9999px;padding:10px 20px;font-size:.875rem;font-weight:600;transition:background .2s,transform .2s}.blog-comment-form-cancel:hover{background:var(--blog-border-hover);transform:translateY(-1px)}.blog-comment-thread{border-bottom:1px solid var(--blog-border-muted);padding:1rem 0}.blog-comment-thread:last-child{border-bottom:none}.blog-comment{flex-direction:column;gap:.5rem;display:flex}.blog-comment-reply{margin-left:2.5rem;padding-top:.75rem}@media (max-width:480px){.blog-comment-reply{margin-left:1.25rem}}.blog-comment-header{align-items:center;gap:.625rem;display:flex}.blog-comment-avatar{background:var(--blog-accent-muted);width:32px;height:32px;color:var(--blog-accent);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.6875rem;font-weight:700;display:flex}.blog-comment-meta{flex-wrap:wrap;align-items:baseline;gap:.5rem;display:flex}.blog-comment-author{color:var(--blog-text-primary);font-size:.875rem;font-weight:600}.blog-comment-time{color:var(--blog-text-muted);font-size:.75rem}.blog-comment-edited{color:var(--blog-text-faint);font-style:italic}.blog-comment-body{color:var(--blog-text-body);white-space:pre-wrap;word-break:break-word;padding-left:2.625rem;font-size:.9375rem;line-height:1.7}@media (max-width:480px){.blog-comment-body{padding-left:0}}.blog-comment-actions{gap:.75rem;padding-left:2.625rem;display:flex}@media (max-width:480px){.blog-comment-actions{padding-left:0}}.blog-comment-action{color:var(--blog-text-muted);cursor:pointer;background:0 0;border:none;padding:0;font-size:.75rem;font-weight:500;transition:color .15s}.blog-comment-action:hover{color:var(--blog-text-body)}.blog-comment-action-danger:hover{color:var(--blog-danger)}.blog-comment-reply-form{margin-top:.5rem;padding-left:2.625rem}@media (max-width:480px){.blog-comment-reply-form{padding-left:0}}.blog-comment-replies{flex-direction:column;display:flex}.blog-comment-deleted{opacity:.5}.blog-comment-avatar-deleted{background:var(--blog-bg-muted);color:var(--blog-text-faint)}.blog-comment-author-deleted,.blog-comment-body-deleted{color:var(--blog-text-muted);font-style:italic}.blog-comment-quote{border-left:3px solid var(--blog-accent);background:var(--blog-bg-muted);border-radius:0 6px 6px 0;margin-left:2.625rem;padding:.5rem .75rem}.blog-comment-quote-clickable{cursor:pointer;transition:background .15s}.blog-comment-quote-clickable:hover{background:var(--blog-accent-muted)}.blog-comment-quote-section{text-transform:uppercase;letter-spacing:.05em;color:var(--blog-accent);margin-bottom:.125rem;font-size:.6875rem;font-weight:600}.blog-comment-quote-text{color:var(--blog-text-secondary);font-size:.875rem;font-style:italic;line-height:1.5}.blog-comment-pending-quote{border-left:3px solid var(--blog-accent);background:var(--blog-bg-muted);border-radius:0 6px 6px 0;align-items:flex-start;gap:.75rem;min-width:0;margin-bottom:.75rem;padding:.5rem .75rem;display:flex}@media (max-width:480px){.blog-comment-quote{margin-left:0}}.blog-subscribe-popup{z-index:9999;background:var(--blog-bg);border:1px solid var(--blog-border-muted);border-bottom:none;border-radius:14px 14px 0 0;justify-content:center;align-items:center;gap:1.5rem;max-width:100vw;padding:1.25rem 1.5rem;display:flex;position:fixed;bottom:40px;left:0;right:0;overflow:hidden;box-shadow:0 -4px 20px #00000026}.blog-subscribe-popup-close{color:var(--blog-text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px;line-height:0;transition:color .15s;position:absolute;top:.75rem;right:.75rem}.blog-subscribe-popup-close:hover{color:var(--blog-text-primary)}.blog-subscribe-popup-copy{flex-shrink:0}.blog-subscribe-popup-heading{color:var(--blog-text-heading);letter-spacing:-.01em;white-space:nowrap;margin-bottom:.125rem;font-size:1rem;font-weight:700}.blog-subscribe-popup-text{color:var(--blog-text-secondary);font-size:.875rem}.blog-subscribe-popup-form{align-items:center;gap:.5rem;display:flex}.blog-subscribe-popup-row{gap:.5rem;display:flex}.blog-subscribe-popup-form .blog-subscribe-input{flex:1;min-width:0;padding:8px 12px;font-size:.875rem}.blog-subscribe-popup-form .blog-subscribe-btn{white-space:nowrap;padding:8px 16px;font-size:.875rem}.blog-subscribe-popup-success{text-align:center;padding:.5rem 0}@media (max-width:960px){.blog-subscribe-popup{text-align:center;flex-direction:column;gap:.75rem;padding:1rem 1rem 1.25rem}.blog-subscribe-popup-form{flex-direction:column;width:100%}.blog-subscribe-popup-row{width:100%}}.blog-comment-reactions{flex-wrap:wrap;align-items:center;gap:4px;padding-left:2.625rem;display:flex}@media (max-width:480px){.blog-comment-reactions{padding-left:0}}.blog-margin-panel .blog-comment-reactions{padding-left:0}.blog-comment-reaction-pill{background:var(--blog-bg-muted);color:var(--blog-text-body);cursor:pointer;border:none;border-radius:9999px;outline:none;align-items:center;gap:3px;padding:2px 8px;font-size:.75rem;line-height:1.4;transition:background .15s;display:inline-flex}.blog-comment-reaction-pill:hover{background:var(--blog-border-hover)}.blog-comment-reaction-pill span{color:var(--blog-text-muted);font-size:.625rem}.blog-comment-reaction-active{background:var(--blog-accent-muted)}.blog-comment-reaction-picker-wrapper{display:inline-flex;position:relative}.blog-comment-reaction-add{cursor:pointer;background:var(--blog-bg-muted);width:22px;height:22px;color:var(--blog-text-muted);border:none;border-radius:50%;outline:none;justify-content:center;align-items:center;transition:background .15s,color .15s;display:flex}.blog-comment-reaction-add:hover{background:var(--blog-border-hover);color:var(--blog-text-body)}.blog-comment-reaction-picker{background:var(--blog-bg-elevated);border:1px solid var(--blog-dialog-border);box-shadow:0 8px 32px #0006,0 0 0 1px var(--blog-border-muted);z-index:50;white-space:nowrap;border-radius:12px;gap:2px;margin-bottom:4px;padding:4px;display:flex;position:absolute;bottom:100%;left:0}.blog-comment-reaction-picker button{cursor:pointer;background:0 0;border:none;border-radius:8px;outline:none;justify-content:center;align-items:center;width:30px;height:30px;font-size:15px;transition:background .15s,transform .15s;display:flex}.blog-comment-reaction-picker button:hover{background:var(--blog-bg-muted);transform:scale(1.15)}.blog-comment-reaction-picker button.reacted{background:var(--blog-accent-muted);transform:scale(1.1)}.blog-margin-badge{cursor:pointer;color:var(--blog-text-muted);background:var(--blog-bg-muted);z-index:10;white-space:nowrap;border:none;border-radius:9999px;outline:none;align-items:center;gap:3px;padding:3px 8px;font-size:.6875rem;font-weight:600;transition:background .15s,color .15s;display:inline-flex}.blog-margin-badge:hover{background:var(--blog-border-hover);color:var(--blog-text-body)}.blog-margin-badge-active{background:var(--blog-accent-muted);color:var(--blog-accent)}.blog-margin-badge span{font-size:.625rem}@media (max-width:1379px){.blog-margin-badge{display:none}}.blog-margin-panel{background:var(--blog-dialog-bg);border:1px solid var(--blog-dialog-border);-webkit-backdrop-filter:blur(20px);box-shadow:0 8px 32px #0000004d,0 0 0 1px var(--blog-border-muted);border-radius:12px;flex-direction:column;display:flex;overflow:hidden}.blog-margin-panel-header{border-bottom:1px solid var(--blog-border-muted);flex-shrink:0;justify-content:space-between;align-items:center;padding:10px 12px;display:flex}.blog-margin-panel-body{flex:1;max-height:240px;padding:8px 12px;overflow-y:auto}.blog-margin-panel-footer{border-top:1px solid var(--blog-border-muted);flex-shrink:0;padding:8px 12px}.blog-margin-panel-footer .blog-comment-form-textarea{min-height:48px;padding:6px 10px;font-size:.8125rem}.blog-margin-panel-footer .blog-comment-form-submit,.blog-margin-panel-footer .blog-comment-form-cancel{padding:6px 14px;font-size:.75rem}.blog-margin-panel-footer .blog-comment-auth{border-radius:8px;margin-bottom:0;padding:12px}.blog-margin-panel-footer .blog-comment-auth-heading{font-size:.875rem}.blog-margin-panel-footer .blog-comment-auth-form{gap:.5rem}.blog-margin-panel-footer .blog-subscribe-input{padding:6px 10px;font-size:.8125rem}.blog-margin-panel-footer .blog-subscribe-btn{padding:6px 14px;font-size:.8125rem}.blog-margin-comment-header{align-items:center;gap:6px;display:flex}.blog-margin-comment-avatar{background:var(--blog-accent-muted);width:22px;height:22px;color:var(--blog-accent);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.5625rem;font-weight:700;display:flex}.blog-focus-mode .blog-margin-badge,.blog-focus-mode .blog-margin-panel{transition:opacity .4s ease-out;opacity:0!important;pointer-events:none!important}.blog-typography-slider{appearance:none;background:var(--blog-bg-muted);cursor:pointer;border-radius:2px;outline:none;height:4px}.blog-typography-slider::-webkit-slider-thumb{appearance:none;background:var(--blog-accent);border:2px solid var(--blog-bg-elevated);cursor:pointer;border-radius:50%;width:14px;height:14px;transition:transform .1s;box-shadow:0 1px 3px #0000004d}.blog-typography-slider::-webkit-slider-thumb:hover{transform:scale(1.2)}.blog-typography-slider::-moz-range-thumb{background:var(--blog-accent);border:2px solid var(--blog-bg-elevated);cursor:pointer;border-radius:50%;width:14px;height:14px;box-shadow:0 1px 3px #0000004d}.blog-typography-slider::-moz-range-track{background:var(--blog-bg-muted);border-radius:2px;height:4px}.bionic-bold{font-weight:var(--blog-bionic-weight,700);color:var(--blog-text-primary)}[data-blog-theme=hacker] .bionic-bold{opacity:1}.ambient-volume-slider{appearance:none;background:var(--blog-bg-muted);cursor:pointer;touch-action:none;border-radius:2px;outline:none;height:4px}.ambient-volume-slider::-webkit-slider-thumb{appearance:none;background:var(--blog-accent);border:2px solid var(--blog-bg-elevated);cursor:pointer;border-radius:50%;width:12px;height:12px;transition:transform .1s;box-shadow:0 1px 3px #0000004d}.ambient-volume-slider::-webkit-slider-thumb:hover{transform:scale(1.2)}.ambient-volume-slider::-moz-range-thumb{background:var(--blog-accent);border:2px solid var(--blog-bg-elevated);cursor:pointer;border-radius:50%;width:12px;height:12px;box-shadow:0 1px 3px #0000004d}.ambient-volume-slider::-moz-range-track{background:var(--blog-bg-muted);border-radius:2px;height:4px}
