*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#fcfcfa;--text:#1a1a1a;--muted:#505a4f;--light:#5f675d;--link:#372a39;--border:#dedede;--bg-code:#f5e9bf;--font:system-ui,-apple-system,sans-serif;--max:68ch;--pad:1.5rem;color-scheme:light dark}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#111;--text:#e8e8e8;--muted:#9aa79a;--light:#b0b0b0;--link:#f5e9bf;--border:#3a3a3a;--bg-code:#1b1b1b}}:root[data-theme=dark]{--bg:#111;--text:#e8e8e8;--muted:#9aa79a;--light:#b0b0b0;--link:#f5e9bf;--border:#3a3a3a;--bg-code:#1b1b1b}html{font:clamp(16px,.95rem + .25vw,18px)/1.65 var(--font);color:var(--text);background:var(--bg)}body{max-width:var(--max);margin:0 auto;padding:0 var(--pad);min-height:100vh;display:flex;flex-direction:column}h1,h2,h3{font-weight:600;line-height:1.2}h1{font-size:clamp(1.6rem,1.3rem + 1.2vw,2.25rem);margin-bottom:1rem}h2{font-size:clamp(1.25rem,1.15rem + .6vw,1.6rem);margin-bottom:.75rem}h3{font-size:clamp(1.125rem,1.08rem + .35vw,1.35rem);margin-bottom:.5rem}p{margin-bottom:1.125rem}a{color:var(--link);text-decoration:none}a:hover{text-decoration:underline}ul,ol{margin-bottom:1rem;padding-left:1.25rem}li{margin-bottom:.35rem}code{font-family:ui-monospace,Cascadia Mono,Segoe UI Mono,Ubuntu Mono,Roboto Mono,Menlo,Monaco,Consolas,monospace;font-size:.9em;background:var(--bg-code);padding:.15rem .4rem;border-radius:4px}pre{background:var(--bg-code);padding:1rem;border-radius:8px;overflow-x:auto;margin-bottom:1rem}pre code{background:0;padding:0}blockquote{border-left:3px solid var(--border);padding-left:1rem;margin:1rem 0;color:var(--muted);font-style:italic}img{max-width:100%;height:auto}hr{border:0;height:1px;background:var(--border);margin:2rem 0}:focus-visible{outline:2px solid var(--link);outline-offset:2px;border-radius:4px}body>header{padding:1.5rem 0;border-bottom:1px solid var(--border)}nav{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}.logo{font-weight:600;color:var(--text);text-decoration:none}.logo:hover{text-decoration:none}.nav-links{display:flex;gap:1.5rem}.nav-links a{color:var(--muted);font-size:.9375rem}.nav-links a:hover{color:var(--text);text-decoration:none}.nav-links a[aria-current=page]{color:var(--text);font-weight:500}main{flex:1;padding:2.25rem 0 3.25rem}footer{padding:2rem 0;border-top:1px solid var(--border);font-size:.875rem;color:var(--light);display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}footer a{color:var(--light)}footer a:hover{color:var(--muted)}.intro{color:var(--muted);margin-bottom:2.5rem}.section-label{font-size:.875rem;font-weight:500;color:var(--light);margin-bottom:.75rem}.posts-list{list-style:none;padding:0;margin:0}.posts-list li{padding:1rem 0;border-bottom:1px solid var(--border)}.posts-list li:first-child{padding-top:0}.posts-list li:last-child{border:0}.posts-list a{color:inherit;display:block}.posts-list a:hover{text-decoration:none}.posts-list h3{font-size:1.125rem;margin-bottom:.25rem}.posts-list a:hover h3{color:var(--link)}.post-desc{color:var(--muted);margin:.25rem 0 .5rem;font-size:.9375rem;line-height:1.5}.meta{font-size:.875rem;color:var(--light)}.meta .sep{margin:0 .35rem;opacity:.5}.updated-meta{margin-bottom:1.5rem}.view-all{color:var(--muted);font-size:.875rem;margin-top:1rem;display:inline-block}.post-header{margin-bottom:2rem}.post-header h1{margin-bottom:.25rem}.prose{line-height:1.75}.prose a{text-decoration:underline;text-underline-offset:.15em}.prose a[target=_blank]:after{content:" ↗";font-size:.75em;vertical-align:super;opacity:.7}.prose h2{margin-top:2rem}.prose h3{margin-top:1.5rem}.prose table{width:100%;border-collapse:collapse;margin:1.5rem 0;font-size:.9375rem}.prose thead{border-bottom:2px solid var(--border)}.prose th{text-align:left;font-weight:600;padding:.75rem 1rem;color:var(--text)}.prose td{padding:.75rem 1rem;border-bottom:1px solid var(--border);vertical-align:top}.prose tbody tr:last-child td{border-bottom:0}.prose tbody tr:hover{background:color-mix(in srgb,var(--border) 25%,transparent)}@media (max-width:640px){.prose table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}.prose th,.prose td{padding:.5rem .75rem;white-space:nowrap}}.post-footer{margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--border)}.back{margin-top:2rem;color:var(--light);font-size:.875rem;display:inline-flex;align-items:center;gap:.35rem}.empty{color:var(--light);font-style:italic}.faq-section{margin-top:2.5rem;padding-top:2rem;border-top:1px solid var(--border)}.faq-section h2{font-size:1.25rem;margin-bottom:1.25rem}.faq-list{margin:0}.faq-item{margin-bottom:1.25rem;padding-bottom:1.25rem;border-bottom:1px solid var(--border)}.faq-item:last-child{margin-bottom:0;padding-bottom:0;border:0}.faq-item dt{font-weight:600;margin-bottom:.5rem;color:var(--text)}.faq-item dd{margin:0;color:var(--muted);line-height:1.6}@media (max-width:640px){:root{--pad:1rem}}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .astro-code,:root:not([data-theme=light]) .astro-code span{color:var(--shiki-dark)!important;background-color:var(--shiki-dark-bg)!important}}:root[data-theme=dark] .astro-code,:root[data-theme=dark] .astro-code span{color:var(--shiki-dark)!important;background-color:var(--shiki-dark-bg)!important}.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}.footer-links[data-astro-cid-sz7xmlte]{display:flex;gap:1rem;align-items:center}.footer-links[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]{display:flex;align-items:center}#theme-toggle[data-astro-cid-sz7xmlte]{background:0 0;border:0;cursor:pointer;color:var(--light);padding:0;display:flex;align-items:center}#theme-toggle[data-astro-cid-sz7xmlte]:hover{color:var(--muted)}.icon-light[data-astro-cid-sz7xmlte]{display:block}.icon-dark[data-astro-cid-sz7xmlte]{display:none}:root[data-theme=dark] .icon-light[data-astro-cid-sz7xmlte]{display:none}:root[data-theme=dark] .icon-dark[data-astro-cid-sz7xmlte]{display:block}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .icon-light[data-astro-cid-sz7xmlte]{display:none}:root:not([data-theme=light]) .icon-dark[data-astro-cid-sz7xmlte]{display:block}}