code[class*=language-],pre[class*=language-]{color:#393a34;font-family:Consolas,Bitstream Vera Sans Mono,Courier New,Courier,monospace;direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;font-size:.9375em;line-height:1.6;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]{overflow:auto}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:#998;font-style:italic}.token.namespace{opacity:.7}.token.string,.token.attr-value{color:#e3116c}.token.punctuation,.token.operator{color:#393a34}.token.entity,.token.url,.token.symbol,.token.number,.token.boolean,.token.variable,.token.constant,.token.property,.token.regex,.token.inserted{color:#36acaa}.token.atrule,.token.keyword,.token.attr-name,.language-autohotkey .token.selector{color:#00a4db}.token.function,.token.deleted,.language-autohotkey .token.tag{color:#9a050f}.token.tag,.token.selector,.language-autohotkey .token.keyword{color:#00009f}.token.important,.token.function,.token.bold{font-weight:700}.token.italic{font-style:italic}.code-highlight{float:left;min-width:100%}.code-line{display:block;padding-left:16px;padding-right:16px;margin-left:-16px;margin-right:-16px;border-left:4px solid transparent}.code-line.inserted{background-color:#10b9811a}.code-line.deleted{background-color:#ef44441a}.highlight-line{margin-left:-16px;margin-right:-16px;padding-left:12px;background-color:#37415114;border-left:4px solid #3b82f6}.line-number:before{display:inline-block;width:1rem;text-align:right;margin-right:16px;margin-left:-8px;color:#9ca3af;content:attr(line)}/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-font-weight:initial;--tw-leading:initial;--tw-border-style:solid}}}.techblog-content h2{margin-top:calc(var(--spacing,.25rem)*12);margin-bottom:calc(var(--spacing,.25rem)*6);font-size:var(--text-2xl,1.5rem);line-height:var(--tw-leading,var(--text-2xl--line-height,calc(2/1.5)));--tw-font-weight:var(--font-weight-bold,700);font-weight:var(--font-weight-bold,700)}@media(min-width:640px){.techblog-content h2{margin-top:calc(var(--spacing,.25rem)*16);margin-bottom:calc(var(--spacing,.25rem)*8);font-size:var(--text-3xl,1.875rem);line-height:var(--tw-leading,var(--text-3xl--line-height, 1.2 ))}}.techblog-content h3{margin-top:calc(var(--spacing,.25rem)*10);margin-bottom:calc(var(--spacing,.25rem)*4);font-size:var(--text-xl,1.25rem);line-height:var(--tw-leading,var(--text-xl--line-height,calc(1.75/1.25)));--tw-font-weight:var(--font-weight-bold,700);font-weight:var(--font-weight-bold,700)}@media(min-width:640px){.techblog-content h3{margin-top:calc(var(--spacing,.25rem)*12);margin-bottom:calc(var(--spacing,.25rem)*6);font-size:var(--text-2xl,1.5rem);line-height:var(--tw-leading,var(--text-2xl--line-height,calc(2/1.5)))}}.techblog-content h4{margin-top:calc(var(--spacing,.25rem)*8);margin-bottom:calc(var(--spacing,.25rem)*3);font-size:var(--text-lg,1.125rem);line-height:var(--tw-leading,var(--text-lg--line-height,calc(1.75/1.125)));--tw-font-weight:var(--font-weight-bold,700);font-weight:var(--font-weight-bold,700)}@media(min-width:640px){.techblog-content h4{margin-top:calc(var(--spacing,.25rem)*10);margin-bottom:calc(var(--spacing,.25rem)*4);font-size:var(--text-xl,1.25rem);line-height:var(--tw-leading,var(--text-xl--line-height,calc(1.75/1.25)))}}.techblog-content p{margin-bottom:calc(var(--spacing,.25rem)*4);--tw-leading:1.625;line-height:1.625}.techblog-content ul{margin-bottom:calc(var(--spacing,.25rem)*4);padding-left:calc(var(--spacing,.25rem)*6);list-style-type:disc;list-style-position:outside}.techblog-content ul>*+*{margin-top:.5rem}.techblog-content ol{margin-bottom:calc(var(--spacing,.25rem)*4);padding-left:calc(var(--spacing,.25rem)*6);list-style-type:decimal;list-style-position:outside}.techblog-content ol>*+*{margin-top:.5rem}.techblog-content blockquote:not(.twitter-tweet){margin-block:calc(var(--spacing,.25rem)*6);border-top-right-radius:var(--radius-lg,.5rem);border-bottom-right-radius:var(--radius-lg,.5rem);border-left-style:var(--tw-border-style);border-left-width:4px;border-color:var(--color-brand,#1d4ed8);background-color:var(--color-surface-muted,#f3f4f6);font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25/.875)));color:var(--color-text-muted,#666);padding:1rem 1rem 1rem 1.25rem}@media(min-width:640px){.techblog-content blockquote:not(.twitter-tweet){margin-block:calc(var(--spacing,.25rem)*8);padding:1.25rem 1.5rem 1.25rem 1.75rem}}.techblog-content blockquote:not(.twitter-tweet)>:last-child{margin-bottom:0}.techblog-content blockquote.twitter-tweet{margin-block:calc(var(--spacing,.25rem)*6)}.techblog-content pre{margin-bottom:calc(var(--spacing,.25rem)*6);border-radius:var(--radius-lg,.5rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-border,#1a1a1a1f);overflow-x:auto}@supports (color:color-mix(in lab,red,red)){.techblog-content pre{border-color:var(--color-border,color-mix(in srgb,var(--color-text)12%,transparent))}}.techblog-content pre{background-color:var(--color-surface-sunken,#e8e8e8)}@supports (color:color-mix(in lab,red,red)){.techblog-content pre{background-color:var(--color-surface-sunken,color-mix(in srgb,var(--color-text)10%,var(--color-background)))}}.techblog-content pre{font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25/.875)));padding:1rem 1.25rem!important}@media(min-width:640px){.techblog-content pre{margin-bottom:calc(var(--spacing,.25rem)*8);padding:1.25rem 1.5rem!important}}.techblog-content :not(pre)>code{border-radius:var(--radius-md,.375rem);background-color:var(--color-surface-muted-hover,#e5e7eb);font-family:var(--font-mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);color:var(--color-text,#1a1a1a);padding:0 5px;font-size:95%}.techblog-content a{color:var(--color-brand,#1d4ed8);text-decoration-line:underline}.techblog-content a:hover{color:var(--color-brand-tertiary,#3730a3)}.techblog-content img{border-radius:var(--radius-lg,.5rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-border,#1a1a1a1f);width:auto;max-width:100%}@supports (color:color-mix(in lab,red,red)){.techblog-content img{border-color:var(--color-border,color-mix(in srgb,var(--color-text)12%,transparent))}}.techblog-content figure{margin-block:calc(var(--spacing,.25rem)*8)}.techblog-content .table-wrapper,.techblog-content table{margin-block:calc(var(--spacing,.25rem)*8);width:100%;display:block;overflow-x:auto}.techblog-content table{border-collapse:collapse;border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-border,#1a1a1a1f);min-width:100%}@supports (color:color-mix(in lab,red,red)){.techblog-content table{border-color:var(--color-border,color-mix(in srgb,var(--color-text)12%,transparent))}}.techblog-content thead{background-color:var(--color-surface-muted,#f3f4f6)}.techblog-content tr{border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:var(--color-border,#1a1a1a1f)}@supports (color:color-mix(in lab,red,red)){.techblog-content tr{border-color:var(--color-border,color-mix(in srgb,var(--color-text)12%,transparent))}}.techblog-content th{border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-border,#1a1a1a1f)}@supports (color:color-mix(in lab,red,red)){.techblog-content th{border-color:var(--color-border,color-mix(in srgb,var(--color-text)12%,transparent))}}.techblog-content th{background-color:var(--color-surface-muted,#f3f4f6);padding-inline:calc(var(--spacing,.25rem)*3);padding-block:calc(var(--spacing,.25rem)*2);text-align:left;font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25/.875)));--tw-font-weight:var(--font-weight-bold,700);font-weight:var(--font-weight-bold,700)}@media(min-width:640px){.techblog-content th{padding-inline:calc(var(--spacing,.25rem)*4);padding-block:calc(var(--spacing,.25rem)*3)}}.techblog-content td{border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-border,#1a1a1a1f)}@supports (color:color-mix(in lab,red,red)){.techblog-content td{border-color:var(--color-border,color-mix(in srgb,var(--color-text)12%,transparent))}}.techblog-content td{padding-inline:calc(var(--spacing,.25rem)*3);padding-block:calc(var(--spacing,.25rem)*2);font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25/.875)))}@media(min-width:640px){.techblog-content td{padding-inline:calc(var(--spacing,.25rem)*4);padding-block:calc(var(--spacing,.25rem)*3)}}.techblog-content .overflow-x-auto{margin-block:calc(var(--spacing,.25rem)*8)}.techblog-content .toc{margin-block:calc(var(--spacing,.25rem)*8);border-radius:var(--radius-lg,.5rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-border,#1a1a1a1f)}@supports (color:color-mix(in lab,red,red)){.techblog-content .toc{border-color:var(--color-border,color-mix(in srgb,var(--color-text)12%,transparent))}}.techblog-content .toc{background-color:var(--color-surface-light,#f9fafb);padding:calc(var(--spacing,.25rem)*4)}@media(min-width:640px){.techblog-content .toc{margin-block:calc(var(--spacing,.25rem)*10);padding:calc(var(--spacing,.25rem)*6)}}.techblog-content .toc ul{margin-bottom:calc(var(--spacing,.25rem)*0);padding-left:calc(var(--spacing,.25rem)*0);list-style-type:none}.techblog-content .toc li{padding-block:calc(var(--spacing,.25rem)*1)}.techblog-content .toc .toc-label{margin-bottom:calc(var(--spacing,.25rem)*2);font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25/.875)));--tw-font-weight:var(--font-weight-bold,700);font-weight:var(--font-weight-bold,700);color:var(--color-text-muted,#666);display:block}.techblog-content .toc a{font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25/.875)));color:var(--color-text-muted,#666);text-decoration-line:none}@media(hover:hover){.techblog-content .toc a:hover{color:var(--color-brand,#1d4ed8)}}.techblog-content .note-block{margin-block:calc(var(--spacing,.25rem)*6);border-top-right-radius:var(--radius-lg,.5rem);border-bottom-right-radius:var(--radius-lg,.5rem);border-left-style:var(--tw-border-style);border-left-width:4px;border-color:var(--color-brand,#1d4ed8);background-color:#1d4ed81a}@supports (color:color-mix(in lab,red,red)){.techblog-content .note-block{background-color:color-mix(in oklab,var(--color-brand,#1d4ed8)10%,transparent)}}.techblog-content .note-block{padding:calc(var(--spacing,.25rem)*4);font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25/.875)));color:var(--color-text,#1a1a1a)}@media(min-width:640px){.techblog-content .note-block{margin-block:calc(var(--spacing,.25rem)*8);padding:calc(var(--spacing,.25rem)*6)}}.techblog-content .note-block .note-label{margin-bottom:calc(var(--spacing,.25rem)*2);--tw-font-weight:var(--font-weight-bold,700);font-weight:var(--font-weight-bold,700);color:var(--color-brand-tertiary,#3730a3);display:block}.techblog-content .promo-block{margin-block:calc(var(--spacing,.25rem)*6);border-radius:var(--radius-lg,.5rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-border,#1a1a1a1f)}@supports (color:color-mix(in lab,red,red)){.techblog-content .promo-block{border-color:var(--color-border,color-mix(in srgb,var(--color-text)12%,transparent))}}.techblog-content .promo-block{background-color:var(--color-surface-light,#f9fafb);padding:calc(var(--spacing,.25rem)*4);font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25/.875)));color:var(--color-text,#1a1a1a)}@media(min-width:640px){.techblog-content .promo-block{margin-block:calc(var(--spacing,.25rem)*8);padding:calc(var(--spacing,.25rem)*6)}}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-leading{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}
