/*! tailwindcss v4.3.0 | 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)))){*,::backdrop,:after,:before{--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-duration:initial}}}html{scroll-behavior:smooth}.blog-content::-webkit-scrollbar{width:8px}.blog-content::-webkit-scrollbar-track{background:0 0}.blog-content::-webkit-scrollbar-thumb{background:var(--primary)}@supports (color:color-mix(in lab,red,red)){.blog-content::-webkit-scrollbar-thumb{background:color-mix(in oklch,var(--primary) 35%,transparent)}}.blog-content::-webkit-scrollbar-thumb{border-radius:4px}.blog-content::-webkit-scrollbar-thumb:hover{background:var(--primary)}@supports (color:color-mix(in lab,red,red)){.blog-content::-webkit-scrollbar-thumb:hover{background:color-mix(in oklch,var(--primary) 55%,transparent)}}.blog-content a:focus,.blog-content button:focus{outline:2px solid var(--ring);outline-offset:2px;border-radius:4px}@media print{.blog-content,.blog-content .bg-gradient-to-br,.blog-content .bg-gradient-to-r{color:#000!important;background:#fff!important}.blog-content .backdrop-blur-sm{-webkit-backdrop-filter:none!important;backdrop-filter:none!important;background:#fff!important;border:1px solid #e5e7eb!important}}@media (max-width:768px){.blog-content h1{font-size:2rem!important;line-height:1.2!important}.blog-content h2{font-size:1.5rem!important;line-height:1.3!important}.blog-content .prose{font-size:16px!important}}.blog-content pre{border:1px solid var(--border)!important;border-radius:12px!important}.blog-content code{border-radius:6px!important;padding:2px 6px!important;font-size:.875em!important}.blog-content [href^=\#]{transition:all .2s ease-in-out}.blog-content [href^=\#]:hover{transform:translate(4px)}.blog-content img{transition:opacity .3s ease-in-out}.blog-content img[loading]{opacity:.7}.blog-content blockquote{font-style:italic;position:relative;border-left:4px solid var(--primary)!important;background:var(--muted)!important}@supports (color:color-mix(in lab,red,red)){.blog-content blockquote{background:color-mix(in oklch,var(--muted) 70%,transparent)!important}}.blog-content blockquote{border-radius:0 8px 8px 0!important;margin:1.5rem 0!important;padding:1rem 1.5rem!important}.blog-content blockquote:before{content:'"';color:var(--primary);opacity:.3;font-family:serif;font-size:3rem;position:absolute;top:-10px;left:10px}.blog-content{padding-top:0}.blog-content>*{scroll-margin-top:120px}@media (max-width:1024px){.blog-content [href^=\#]:hover{transform:none}}.blog-layout{flex-direction:column;min-height:100vh;display:flex}.blog-main{flex:1}.blog-navigation-sticky{z-index:40;background:var(--background);position:sticky;top:0}@supports (color:color-mix(in lab,red,red)){.blog-navigation-sticky{background:color-mix(in oklch,var(--background) 86%,transparent)}}.blog-navigation-sticky{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}.dark .blog-navigation-sticky{background:var(--background)}@supports (color:color-mix(in lab,red,red)){.dark .blog-navigation-sticky{background:color-mix(in oklch,var(--background) 86%,transparent)}}.dark .blog-navigation-sticky{border-bottom-color:var(--border)}.blog-gradient-bg,.dark .blog-gradient-bg{background:var(--background)}.blog-card{transition:all .3s ease-in-out}.blog-card:hover{transform:translateY(-4px);box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.dark .blog-card:hover{box-shadow:0 20px 25px -5px #0000004d,0 10px 10px -5px #0003}.blog-tag{background:var(--secondary);color:var(--secondary-foreground);border:1px solid var(--border);transition:all .2s ease-in-out}.blog-tag:hover{background:var(--accent);color:var(--accent-foreground);transform:scale(1.05)}.dark .blog-tag{color:var(--secondary-foreground);border-color:var(--border)}.blog-prose{max-width:none}.blog-prose h1,.blog-prose h2,.blog-prose h3,.blog-prose h4,.blog-prose h5,.blog-prose h6{color:var(--foreground);font-weight:600}.dark .blog-prose h1,.dark .blog-prose h2,.dark .blog-prose h3,.dark .blog-prose h4,.dark .blog-prose h5,.dark .blog-prose h6{color:var(--foreground)}.blog-prose p{line-height:1.75}.blog-prose p,.dark .blog-prose p{color:var(--muted-foreground)}.blog-prose a{font-weight:500;text-decoration:none;transition:color .2s ease-in-out}.blog-prose a,.blog-prose a:hover{color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.blog-prose a:hover{color:color-mix(in oklch,var(--primary) 82%,var(--foreground))}}.blog-prose a:hover{text-decoration:underline}.dark .blog-prose a,.dark .blog-prose a:hover{color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.dark .blog-prose a:hover{color:color-mix(in oklch,var(--primary) 82%,var(--foreground))}}.blog-prose table{border-collapse:collapse;border:1px solid var(--border);border-radius:8px;width:100%;margin:1.5rem 0;overflow:hidden}.dark .blog-prose table{border-color:var(--border)}.blog-prose td,.blog-prose th{text-align:left;border-bottom:1px solid var(--border);padding:.75rem 1rem}.dark .blog-prose td,.dark .blog-prose th{border-bottom-color:var(--border)}.blog-prose th{font-weight:600}.blog-prose th,.dark .blog-prose th{background:var(--muted);color:var(--foreground)}.blog-prose ol,.blog-prose ul{margin:1rem 0;padding-left:1.5rem}.blog-prose li{margin:.5rem 0}.blog-prose li,.dark .blog-prose li{color:var(--muted-foreground)}.blog-prose li::marker{color:var(--primary)}.blog-prose img{border-radius:8px;margin:1.5rem 0;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.dark .blog-prose img{box-shadow:0 4px 6px -1px #0000004d,0 2px 4px -1px #0003}.blog-prose pre{margin-block:calc(var(--spacing,.25rem) * 6);border-radius:calc(var(--radius) + 4px);border-style:var(--tw-border-style);border-width:1px;position:relative;overflow:hidden}.blog-prose pre,.dark .blog-prose pre{background:var(--muted);border:1px solid var(--border)}.blog-prose pre code{padding:calc(var(--spacing,.25rem) * 4);font-family:var(--font-mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));--tw-leading:var(--leading-relaxed,1.625);line-height:var(--leading-relaxed,1.625);display:block;background:0 0!important;border:none!important;border-radius:0!important;padding:0!important}.blog-prose pre:before{content:"";top:calc(var(--spacing,.25rem) * 0);right:calc(var(--spacing,.25rem) * 0);left:calc(var(--spacing,.25rem) * 0);height:calc(var(--spacing,.25rem) * 10);border-bottom-style:var(--tw-border-style);border-bottom-width:1px;position:absolute}.blog-prose pre:before,.dark .blog-prose pre:before{background:var(--card);border-bottom:1px solid var(--border)}.blog-prose pre:after{content:"";top:calc(var(--spacing,.25rem) * 3);left:calc(var(--spacing,.25rem) * 4);height:calc(var(--spacing,.25rem) * 3);width:calc(var(--spacing,.25rem) * 3);background:var(--muted-foreground);border-radius:3.40282e+38px;position:absolute}@supports (color:color-mix(in lab,red,red)){.blog-prose pre:after{background:color-mix(in oklch,var(--muted-foreground) 32%,transparent)}}.blog-prose pre:after{box-shadow:16px 0 0 var(--muted-foreground),32px 0 0 var(--muted-foreground)}@supports (color:color-mix(in lab,red,red)){.blog-prose pre:after{box-shadow:16px 0 0 color-mix(in oklch,var(--muted-foreground) 32%,transparent),32px 0 0 color-mix(in oklch,var(--muted-foreground) 32%,transparent)}}.blog-prose code:not(pre code){border-radius:calc(var(--radius) - 2px);padding-inline:calc(var(--spacing,.25rem) * 2);padding-block:calc(var(--spacing,.25rem) * 1);font-family:var(--font-mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)))}.blog-prose code:not(pre code),.dark .blog-prose code:not(pre code){background:var(--muted);color:var(--foreground);border:1px solid var(--border)}.blog-prose .prompt-block{margin-block:calc(var(--spacing,.25rem) * 6);border-radius:calc(var(--radius) + 4px);border-style:var(--tw-border-style);background:var(--primary);border-width:1px;position:relative;overflow:hidden}@supports (color:color-mix(in lab,red,red)){.blog-prose .prompt-block{background:color-mix(in oklch,var(--primary) 12%,var(--card))}}.blog-prose .prompt-block{border:1px solid var(--primary)}@supports (color:color-mix(in lab,red,red)){.blog-prose .prompt-block{border:1px solid color-mix(in oklch,var(--primary) 30%,var(--border))}}.dark .blog-prose .prompt-block{background:var(--primary)}@supports (color:color-mix(in lab,red,red)){.dark .blog-prose .prompt-block{background:color-mix(in oklch,var(--primary) 12%,var(--card))}}.dark .blog-prose .prompt-block{border:1px solid var(--primary)}@supports (color:color-mix(in lab,red,red)){.dark .blog-prose .prompt-block{border:1px solid color-mix(in oklch,var(--primary) 30%,var(--border))}}.blog-prose .prompt-block:before{content:"AI Prompt";top:calc(var(--spacing,.25rem) * 3);left:calc(var(--spacing,.25rem) * 16);font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);color:var(--primary);position:absolute}.dark .blog-prose .prompt-block:before{color:var(--primary)}.blog-prose pre:hover{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);transition:all .3s;transform:translateY(-2px)}.blog-prose pre:hover:before,.code-copy-button,.dark .blog-prose pre:hover:before{background:var(--card)}.code-copy-button{top:calc(var(--spacing,.25rem) * 2);right:calc(var(--spacing,.25rem) * 2);border-radius:calc(var(--radius) - 2px);padding:calc(var(--spacing,.25rem) * 2);opacity:0;transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4,0,.2,1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));--tw-duration:.2s;border:1px solid var(--border);transition-duration:.2s;animation-duration:.2s;position:absolute}.blog-prose pre:hover .code-copy-button{opacity:1}.dark .code-copy-button{background:var(--card);border:1px solid var(--border)}.blog-prose .token.comment{color:var(--muted-foreground);font-style:italic}.blog-prose .token.string{color:var(--success)}.blog-prose .token.number{color:var(--destructive)}.blog-prose .token.keyword{color:var(--primary);font-weight:600}.blog-prose .token.function{color:var(--info)}.dark .blog-prose .token.comment{color:var(--muted-foreground)}.dark .blog-prose .token.string{color:var(--success)}.dark .blog-prose .token.number{color:var(--destructive)}.dark .blog-prose .token.keyword{color:var(--primary)}.dark .blog-prose .token.function{color:var(--info)}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-duration{syntax:"*";inherits:false}