.table{width:100%;text-align:center}.table th{font-weight:600}.table th,.table td{padding:6px 13px;border:1px solid #30363d}.table td>:last-child{margin-bottom:0}.table tr{background-color:#0d1117;border-top:1px solid #21262d}.table tr:nth-child(2n){background-color:#161b22}.table img{background-color:transparent}.table{margin-top:0;margin-bottom:16px}body .gist .highlight{background:#141414}body .gist .blob-num,body .gist .blob-code-inner,body .gist .highlight,body .gist .pl-enm,body .gist .pl-ko,body .gist .pl-mo,body .gist .pl-mp1 .pl-sf,body .gist .pl-ms,body .gist .pl-pdc1,body .gist .pl-scp,body .gist .pl-smc,body .gist .pl-som,body .gist .pl-va,body .gist .pl-vpf,body .gist .pl-vpu,body .gist .pl-mdr{color:#aab1bf;font-size:var(--text-sm)}body .gist .pl-mb,body .gist .pl-pdb{font-weight:700}body .gist .pl-c,body .gist .pl-c span,body .gist .pl-pdc{color:#5b6270;font-style:italic}body .gist .pl-sr .pl-cce{color:#56b5c2;font-weight:400}body .gist .pl-ef,body .gist .pl-en,body .gist .pl-enf,body .gist .pl-eoai,body .gist .pl-kos,body .gist .pl-mh .pl-pdh,body .gist .pl-mr{color:#61afef}body .gist .pl-ens,body .gist .pl-vi{color:#be5046}body .gist .pl-enti,body .gist .pl-mai .pl-sf,body .gist .pl-ml,body .gist .pl-sf,body .gist .pl-sr,body .gist .pl-sr .pl-sra,body .gist .pl-src,body .gist .pl-st,body .gist .pl-vo{color:#56b5c2}body .gist .pl-eoi,body .gist .pl-mri,body .gist .pl-pds,body .gist .pl-pse .pl-s1,body .gist .pl-s,body .gist .pl-s1{color:#97c279}body .gist .pl-k,body .gist .pl-kolp,body .gist .pl-mc,body .gist .pl-pde{color:#c578dd}body .gist .pl-mi,body .gist .pl-pdi{color:#c578dd;font-style:italic}body .gist .pl-mp,body .gist .pl-stp{color:#818896}body .gist .pl-mdh,body .gist .pl-mdi,body .gist .pl-mdr{font-weight:400}body .gist .pl-mdht,body .gist .pl-mi1{color:#97c279;background:#020}body .gist .pl-md,body .gist .pl-mdhf{color:#df6b75;background:#200}body .gist .pl-corl{color:#df6b75;text-decoration:underline}body .gist .pl-ib{background:#df6b75}body .gist .pl-ii{background:#e0c184;color:#fff}body .gist .pl-iu{background:#e05151}body .gist .pl-ms1{color:#aab1bf;background:#373b41}body .gist .pl-c1,body .gist .pl-cn,body .gist .pl-e,body .gist .pl-eoa,body .gist .pl-eoac,body .gist .pl-eoac .pl-pde,body .gist .pl-kou,body .gist .pl-mm,body .gist .pl-mp .pl-s3,body .gist .pl-mq,body .gist .pl-s3,body .gist .pl-sok,body .gist .pl-sv,body .gist .pl-mb{color:#d19965}body .gist .pl-enc,body .gist .pl-entc,body .gist .pl-pse .pl-s2,body .gist .pl-s2,body .gist .pl-sc,body .gist .pl-smp,body .gist .pl-sr .pl-sre,body .gist .pl-stj,body .gist .pl-v,body .gist .pl-pdb{color:#e4bf7a}body .gist .pl-ent,body .gist .pl-entl,body .gist .pl-entm,body .gist .pl-mh,body .gist .pl-pdv,body .gist .pl-smi,body .gist .pl-sol,body .gist .pl-mdh,body .gist .pl-mdi{color:#df6b75}.astro-code{white-space:pre-wrap}strong{color:var(--gray-100)}.content a:has(h2,h3,h4,h5,h6){text-decoration:none;text-decoration-color:var(--link-color);transition:text-decoration-color var(--theme-transition);text-underline-offset:.25em;&:hover{text-decoration-color:var(--link-color);text-decoration:underline}}.blog-post{header{padding-bottom:2.5rem;border-bottom:1px solid var(--gray-800)}.back-link{display:none;text-decoration-color:currentColor;&:hover,&:focus{text-decoration-color:currentColor}}.date{font-size:var(--text-md)}.details{display:flex;flex-direction:column;padding:.5rem;gap:1.5rem;justify-content:space-between;align-items:center}.tags{display:flex;gap:.5rem;flex-wrap:wrap}.description{font-size:var(--text-lg);max-width:54ch}.content{max-width:65ch;margin-inline:unset;text-wrap:pretty;font-size:var(--text-md);>*+*{margin-top:1rem}h2{a{text-decoration:none;color:inherit;&:hover,&:focus{text-decoration:underline;text-decoration-color:var(--link-color)}}}:is(h1,h2,h3,h4,h5){margin-block:1.5rem}img{border-radius:1.5rem;box-shadow:var(--shadow-sm);background:var(--gradient-subtle);border:1px solid var(--gray-800)}blockquote{font-size:var(--text-lg);font-family:var(--font-brand);font-weight:600;line-height:1.1;padding-inline-start:1.5rem;border-inline-start:.25rem solid var(--accent-dark);color:var(--gray-0)}a{&:hover,&:focus{text-decoration-color:currentColor}}}}@media (min-width: 50em){.blog-post{.content{margin-inline:auto;blockquote{font-size:var(--text-2xl)}}.back-link{display:block;align-self:flex-start}.details{flex-direction:row;gap:2.5rem}}}
