.blog,.blog-post{text-align:left;justify-content:flex-start}.blog-container,.blog-post-container{width:100%;margin:0 auto}.blog-container{max-width:860px}.blog-post-container{max-width:720px}.blog-header{margin-bottom:2rem}.blog-intro{opacity:.7;max-width:55ch;margin-top:.5rem}.blog-empty{opacity:.5}.blog-list{flex-direction:column;align-items:stretch;gap:1rem;list-style:none;display:flex}.blog-card{border:var(--border-px) solid rgba(var(--primary-r), var(--primary-g), var(--primary-b), .5);opacity:1;-webkit-tap-highlight-color:transparent;border-radius:5px;flex-direction:column;gap:.5rem;height:100%;padding:2rem;transition:border .3s ease-out;display:flex}.blog-card:hover{border-color:rgba(var(--primary-r), var(--primary-g), var(--primary-b), 1)}.blog-card h2{font-size:1.7rem;line-height:1.25}.blog-card-meta,.blog-tags,.blog-card-cta{opacity:.5;font-size:.855rem}.blog-card-summary{opacity:.7}.blog-card-footer{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem;margin-top:.25rem;display:flex}.blog-card-cta{white-space:nowrap;align-items:center;gap:.25rem;transition:opacity .3s ease-out;display:inline-flex}.blog-card:hover .blog-card-cta{opacity:1}.blog-back{align-self:flex-start;align-items:center;gap:.25rem;font-size:.855rem;display:inline-flex}.blog-post-header{margin-top:1.5rem}.blog-post-header h1{line-height:1.2}.blog-post-meta{opacity:.5;margin-top:.75rem;font-size:.855rem}.blog-post-nav{grid-template-columns:1fr 1fr;gap:1rem;margin-top:3rem;display:grid}.blog-post-nav-link{border:var(--border-px) solid rgba(var(--primary-r), var(--primary-g), var(--primary-b), .5);opacity:1;-webkit-tap-highlight-color:transparent;border-radius:5px;flex-direction:column;gap:.25rem;padding:1rem;transition:border .3s ease-out;display:flex}.blog-post-nav-link:hover{border-color:rgba(var(--primary-r), var(--primary-g), var(--primary-b), 1)}.blog-post-nav-link-newer{text-align:right;grid-column:2;align-items:flex-end}.blog-post-nav-label{opacity:.5;align-items:center;gap:.25rem;font-size:.855rem;display:inline-flex}.blog-post-body{margin-top:2rem}.blog-post-body>*+*{margin-top:1.25rem}.blog-post-body h1,.blog-post-body h2,.blog-post-body h3,.blog-post-body h4{margin-top:2rem}.blog-post-body h1{font-size:1.7rem}.blog-post-body h2{font-size:1.425rem}.blog-post-body h3{font-size:1.14rem}.blog-post-body h4{font-size:.95rem;font-weight:700}.blog-post-body .blog-heading-anchor{opacity:0;margin-left:.5rem;text-decoration:none;transition:opacity .3s ease-out}.blog-post-body .blog-heading:hover .blog-heading-anchor,.blog-post-body .blog-heading-anchor:focus-visible{opacity:1}@media (hover:none){.blog-post-body .blog-heading-anchor{opacity:.5}}.blog-post-body ul,.blog-post-body ol{padding-left:1.25rem}.blog-post-body li+li{margin-top:.5rem}.blog-post-body li>*{margin-top:.75rem}.blog-post-body li>:first-child{margin-top:0}.blog-post-body hr{border:none;border-top:var(--border-px) solid rgba(var(--primary-r), var(--primary-g), var(--primary-b), .25)}.blog-post-body a{opacity:1;text-underline-offset:.25rem;overflow-wrap:anywhere;text-decoration:underline;text-decoration-color:rgba(var(--primary-r), var(--primary-g), var(--primary-b), .5);transition:text-decoration-color .3s ease-out}.blog-post-body a:hover{text-decoration-color:rgba(var(--primary-r), var(--primary-g), var(--primary-b), 1)}.blog-post-body blockquote{border:var(--border-px) solid rgba(var(--primary-r), var(--primary-g), var(--primary-b), .5);border-radius:5px;padding:1.5rem}.blog-post-body blockquote p{opacity:.7;font-style:italic}.blog-alert{--alert-color:var(--primary-color);border:var(--border-px) solid color-mix(in srgb, var(--alert-color) 80%, transparent);border-radius:5px;padding:1.5rem}.blog-alert-note{--alert-color:var(--alert-note)}.blog-alert-tip{--alert-color:var(--alert-tip)}.blog-alert-important{--alert-color:var(--alert-important)}.blog-alert-warning{--alert-color:var(--alert-warning)}.blog-alert-caution{--alert-color:var(--alert-caution)}.blog-alert>*+*{margin-top:.5rem}.blog-alert-label{color:var(--alert-color);font-size:.855rem;font-weight:700}.blog-post-body details{border:var(--border-px) solid rgba(var(--primary-r), var(--primary-g), var(--primary-b), .5);border-radius:5px;padding:1.25rem 1.5rem;transition:border .3s ease-out}.blog-post-body details:hover{border-color:rgba(var(--primary-r), var(--primary-g), var(--primary-b), 1)}.blog-post-body summary{opacity:.5;cursor:pointer;-webkit-tap-highlight-color:transparent;margin:-1.25rem -1.5rem;padding:1.25rem 1.5rem;list-style:none;transition:opacity .3s ease-out}.blog-post-body summary::-webkit-details-marker{display:none}.blog-post-body summary:before{content:"+";width:1rem;display:inline-block}.blog-post-body details[open]>summary:before{content:"−"}.blog-post-body summary:hover,.blog-post-body details[open]>summary{opacity:1}.blog-post-body details[open]>summary{margin-bottom:0}.blog-post-body summary:focus-visible{outline:var(--border-px) solid var(--primary-color);outline-offset:-4px;border-radius:5px}.blog-image{border:var(--border-px) solid rgba(var(--primary-r), var(--primary-g), var(--primary-b), .5);border-radius:5px;max-width:100%;height:auto;display:block}.blog-table{overflow-x:auto}.blog-table table{border-collapse:collapse;width:100%}.blog-table th,.blog-table td{text-align:left;border:var(--border-px) solid rgba(var(--primary-r), var(--primary-g), var(--primary-b), .25);padding:.5rem .75rem}.blog-table th{font-weight:700}.blog-code{border:var(--border-px) solid rgba(var(--primary-r), var(--primary-g), var(--primary-b), .5);border-radius:5px;padding:1.25rem 1.5rem;overflow-x:auto}.blog-code-label{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.75rem;font-size:.855rem;display:flex}.blog-code-language{opacity:.5}.blog-copy{color:var(--primary-color);opacity:.5;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;align-items:center;padding:0;transition:opacity .3s ease-out;display:inline-flex}.blog-copy:hover,.blog-copy.is-copied{opacity:1}.blog-copy-icon{place-items:center;width:1.14rem;height:1.14rem;display:grid}.blog-copy-icon i{grid-area:1/1;font-size:1.14rem;line-height:1;transition:opacity .3s ease-out,transform .3s ease-out}.blog-copy .bx-check,.blog-copy.is-copied .bx-copy{opacity:0;transform:scale(.6)}.blog-copy .bx-copy,.blog-copy.is-copied .bx-check{opacity:1;transform:scale(1)}.blog-copy:focus-visible{opacity:1}@media (prefers-reduced-motion:reduce){.blog-copy-icon i{transition:none;transform:none}.blog-copy .bx-check,.blog-copy.is-copied .bx-copy{transform:none}}.blog-code pre{overflow-x:auto}.blog-code code{font-family:var(--font-family);font-variant-numeric:tabular-nums;white-space:pre;color:rgba(var(--primary-r), var(--primary-g), var(--primary-b), .85);font-size:.855rem}.blog-code .token.comment,.blog-code .token.prolog,.blog-code .token.cdata,.blog-code .token.doctype{color:rgba(var(--primary-r), var(--primary-g), var(--primary-b), .6);font-style:italic}.blog-code .token.punctuation,.blog-code .token.operator{color:rgba(var(--primary-r), var(--primary-g), var(--primary-b), .7)}.blog-code .token.keyword,.blog-code .token.atrule,.blog-code .token.rule,.blog-code .token.selector,.blog-code .token.important{color:var(--accent-violet)}.blog-code .token.string,.blog-code .token.char,.blog-code .token.attr-value,.blog-code .token.regex,.blog-code .token.url,.blog-code .token.inserted{color:var(--accent-green)}.blog-code .token.number,.blog-code .token.boolean,.blog-code .token.constant,.blog-code .token.symbol{color:var(--accent-amber)}.blog-code .token.function,.blog-code .token.generic-function,.blog-code .token.class-name,.blog-code .token.builtin,.blog-code .token.tag,.blog-code .token.title{color:var(--accent-cyan)}.blog-code .token.deleted{color:var(--accent-red)}.blog-code .token.attr-name,.blog-code .token.property,.blog-code .token.variable,.blog-code .token.parameter{color:rgba(var(--primary-r), var(--primary-g), var(--primary-b), .95)}.blog-code .token.namespace{opacity:.7}.blog-code .token.bold{font-weight:700}.blog-code .token.italic{font-style:italic}@media (width<=768px){.blog-header h1,.blog-post-header h1{font-size:1.9rem}.blog-card{padding:1.5rem}.blog-card h2{font-size:1.425rem}.blog-post-nav{grid-template-columns:1fr}.blog-post-nav-link-newer{text-align:left;grid-column:1;align-items:flex-start}}
