.blog-skip-link{z-index:9999;background:var(--background);border:2px solid var(--primary);color:var(--primary);border-radius:.375rem;padding:.5rem 1rem;font-size:.875rem;font-weight:600;text-decoration:none;transition:top .1s;position:absolute;top:-100%;left:1rem}.blog-skip-link:focus{top:1rem}.prose{color:var(--foreground);word-wrap:break-word;overflow-wrap:break-word;font-size:1.0625rem;line-height:1.8}.prose h1,.prose h2,.prose h3,.prose h4{letter-spacing:-.025em;color:var(--foreground);overflow-wrap:break-word;word-break:break-word;scroll-margin-top:5rem;font-weight:700}.prose h1{margin:0 0 1.5rem;font-size:2.25rem;line-height:1.2}.prose h2{border-bottom:1px solid var(--border);margin:2.5rem 0 1rem;padding-bottom:.4rem;font-size:1.5rem;line-height:1.3}.prose h3{margin:2rem 0 .75rem;font-size:1.25rem;line-height:1.4}.prose h4{margin:1.5rem 0 .5rem;font-size:1.0625rem}.prose p{margin:1.25rem 0}.prose p:first-child{margin-top:0}.prose a{color:var(--primary);text-decoration:underline;-webkit-text-decoration-color:color-mix(in oklch,var(--primary)40%,transparent);text-decoration-color:color-mix(in oklch,var(--primary)40%,transparent);text-underline-offset:3px;transition:text-decoration-color .15s}.prose a:hover{-webkit-text-decoration-color:var(--primary);text-decoration-color:var(--primary)}.prose a:focus-visible{outline:2px solid var(--ring);outline-offset:2px;border-radius:2px;text-decoration:none}.prose strong{color:var(--foreground);font-weight:600}.prose em{font-style:italic}.prose ul,.prose ol{margin:1.25rem 0;padding-left:1.75rem}.prose li{margin:.4rem 0}.prose ul li{list-style-type:disc}.prose ol li{list-style-type:decimal}.prose li>ul,.prose li>ol{margin:.25rem 0}.prose blockquote{border-left:3px solid var(--primary);color:var(--muted-foreground);background:color-mix(in oklch,var(--primary)5%,transparent);border-radius:0 .375rem .375rem 0;margin:1.75rem 0;padding:.5rem 0 .5rem 1.25rem;font-style:italic}.prose hr{border:none;border-top:1px solid var(--border);margin:2.5rem 0}.prose img{border:1px solid var(--border);border-radius:.75rem;max-width:100%;height:auto;margin:2rem auto;display:block}.prose .table-wrapper{-webkit-overflow-scrolling:touch;margin:1.75rem 0;overflow-x:auto}.prose table{border-collapse:collapse;width:100%;min-width:400px;font-size:.9375rem}.prose th{text-align:left;background:var(--muted);border:1px solid var(--border);white-space:nowrap;padding:.6rem 1rem;font-size:.875rem;font-weight:600}.prose td{border:1px solid var(--border);vertical-align:top;padding:.6rem 1rem}.prose tr:nth-child(2n) td{background:var(--muted)}.prose code:not(pre code){font-family:var(--font-mono,ui-monospace,monospace);background:var(--muted);border:1px solid var(--border);color:var(--primary);word-break:break-all;border-radius:.3em;padding:.15em .45em;font-size:.875em}.prose pre{-webkit-overflow-scrolling:touch;background:#070707;background:lab(1.98454% 0 0);border:1px solid #222;border:1px solid lab(13% 0 0);border-radius:.75rem;margin:1.75rem 0;padding:1.25rem 1.5rem;font-size:.875rem;line-height:1.7;overflow-x:auto}.prose pre code{font-family:var(--font-mono,ui-monospace,monospace);color:#e4e4e4;color:lab(90.72% .0000298023 -.0000119209);font-size:inherit;word-break:normal;background:0 0;border:none;padding:0}.hljs-comment,.hljs-quote{color:#8b949e;font-style:italic}.hljs-keyword,.hljs-selector-tag,.hljs-addition{color:#ff7b72}.hljs-number,.hljs-literal{color:#79c0ff}.hljs-string,.hljs-doctag{color:#a5d6ff}.hljs-title,.hljs-name{color:#d2a8ff}.hljs-type,.hljs-class .hljs-title{color:#ffa657}.hljs-attribute,.hljs-symbol{color:#79c0ff}.hljs-built_in,.hljs-builtin-name{color:#ffa657}.hljs-params{color:#e6edf3}.hljs-deletion{color:#ff7b72;background:#ff7b721a}.hljs-meta{color:#79c0ff}.hljs-link{color:#a5d6ff;text-decoration:underline}.blog-tag{background:color-mix(in oklch,var(--primary)10%,transparent);color:color-mix(in oklch,var(--primary)80%,var(--foreground));border:1px solid color-mix(in oklch,var(--primary)20%,transparent);text-overflow:ellipsis;white-space:nowrap;border-radius:99px;align-items:center;max-width:18ch;padding:.2rem .65rem;font-size:.75rem;font-weight:500;transition:background .15s,color .15s;display:inline-flex;overflow:hidden}.blog-tag:hover{background:color-mix(in oklch,var(--primary)20%,transparent);color:color-mix(in oklch,var(--primary)90%,var(--foreground))}.blog-card{border:1px solid var(--border);background:var(--card);border-radius:1rem;min-width:0;transition:border-color .15s,box-shadow .15s,transform .15s;overflow:hidden}.blog-card:hover{border-color:color-mix(in oklch,var(--primary)40%,transparent);box-shadow:0 4px 24px color-mix(in oklch,var(--primary)8%,transparent);transform:translateY(-2px)}.blog-card:focus-visible{outline:2px solid var(--ring);outline-offset:3px;border-color:var(--primary);box-shadow:none;transform:none}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.blog-skip-link{transition:none}}