:root{--color-bg:#fff;--color-text:#2b3235;--color-text-secondary:#45514f;--color-text-muted:#6e7679;--color-heading:#1c2224;--color-link:#0b6bcb;--color-link-hover:#0857a6;--color-border:#e2e5e7;--color-border-strong:#c9ced1;--color-accent:#0b6bcb;--color-surface:#f5f7f8;--color-mark-bg:#fff3cd;--color-mark-text:inherit;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";--font-mono:ui-monospace, "SF Mono", "Menlo", "Cascadia Code", monospace;--transition-fast:.15s ease}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;font-size:62.5%}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}body{font-size:1.6rem;font-family:var(--font-sans);color:var(--color-text);background:var(--color-bg);overflow-wrap:break-word;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;width:100%;margin:0 auto;padding:0 20px;line-height:1.65}::selection{background:var(--color-accent);color:#fff}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:2px}.skip-link{background:var(--color-bg);color:var(--color-link);z-index:100;padding:8px 16px;position:absolute;top:0;left:-9999px}.skip-link:focus{left:0}header#banner{flex-wrap:wrap;align-items:baseline;gap:4px 16px;margin:32px 0 28px;display:flex}header#banner a{color:var(--color-heading);text-decoration:none}header#banner a:hover{text-underline-offset:4px;text-decoration:underline}header#banner h2{letter-spacing:-.01em;margin:0;font-size:2.1rem;font-weight:650}header#banner nav ul{text-transform:lowercase;gap:14px;margin:0;padding:0;font-size:1.6rem;list-style-type:none;display:flex}header#banner nav ul li a{color:var(--color-text-muted);transition:color var(--transition-fast)}header#banner nav ul li a:hover{color:var(--color-heading)}header#banner nav ul li a[aria-current=page]{color:var(--color-heading);font-weight:550}main#content a{color:var(--color-link);text-underline-offset:3px;transition:color var(--transition-fast), text-decoration-color var(--transition-fast);text-decoration:underline #0000}main#content a:hover{color:var(--color-link-hover);text-decoration-color:currentColor}main#content h1,main#content h2,main#content h3,main#content h4,main#content h5,main#content h6{color:var(--color-heading);letter-spacing:-.01em;margin-bottom:0;line-height:1.2}main#content h2{margin-top:3.2rem;font-size:2.2rem}main#content h3{margin-top:2.8rem;font-size:1.9rem}main#content h1+p,main#content h2+p,main#content h3+p,main#content h4+p,main#content h5+p,main#content h6+p{margin-top:8px}main#content p{color:var(--color-text-secondary);margin:16px 0}main#content li{color:var(--color-text-secondary)}main#content hr{background:var(--color-border);border:0;height:1px;margin:32px 0}main#content abbr{cursor:help}main#content .page-title{margin:3.2rem 0 .8rem;font-size:2.6rem;font-weight:700}main#content .hero{margin:8px 0 36px}main#content .hero h1{letter-spacing:-.015em;margin:0;font-size:2.4rem;font-weight:700;line-height:1.2}main#content .hero .lede{color:var(--color-text-muted);margin:10px 0 0;font-size:1.05em}main#content .home-section{margin:36px 0}main#content .section-label{text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);margin:0 0 12px;font-size:1.3rem;font-weight:600}main#content .product-list{margin:0;padding:0;list-style:none}main#content .product-list li{padding:12px 0}main#content .product-list li+li{border-top:1px solid var(--color-border)}main#content .product-name{margin:0;font-weight:600}main#content .product-desc{color:var(--color-text-muted);margin:3px 0 0;font-size:.95em}main#content ul.interests{margin:0;padding-left:20px}main#content ul.interests li{margin:4px 0}main#content .connect{margin:36px 0}main#content :is(ul#posts,ul.posts){margin-top:0;padding:0;font-size:1.6rem;list-style-type:none}main#content :is(ul#posts,ul.posts) li{margin:0;padding:0}main#content :is(ul#posts,ul.posts) small{font-variant-numeric:tabular-nums;color:var(--color-text-muted);white-space:nowrap;transition:color var(--transition-fast);margin-left:10px;font-size:.82em}main#content :is(ul#posts,ul.posts) li a{color:var(--color-heading);transition:color var(--transition-fast);border-radius:4px;padding:7px 0;text-decoration:none;display:block}main#content :is(ul#posts,ul.posts) li+li a{border-top:1px solid var(--color-border)}main#content :is(ul#posts,ul.posts) li a:hover,main#content :is(ul#posts,ul.posts) li a:hover small{color:var(--color-link)}@media (width<=769px){main#content :is(ul#posts,ul.posts) small{white-space:normal;margin-left:0;display:block}}main#content header#post-header h1{margin-top:3.2rem;margin-bottom:6px;font-size:2.6rem;font-weight:700;line-height:1.2;display:block}main#content header#post-header .post-meta,main#content header#post-header>div{color:var(--color-text-muted);font-size:.85em;display:block}main#content article{margin-top:2rem}main#content .post-footer{margin:32px 0}main#content ul.tags{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}main#content ul.tags li{color:var(--color-text-muted);background:var(--color-surface);border:1px solid var(--color-border);border-radius:999px;padding:3px 12px;font-size:1.3rem}main#content #toc{border:1px solid var(--color-border-strong);border-radius:6px;margin:16px 0;padding:9px 14px;line-height:26px}main#content #toc h4{margin:0;font-size:1.06em}main#content #toc nav#TableOfContents{margin-top:4px}main#content #toc nav#TableOfContents>ul,main#content #toc nav#TableOfContents>ol{margin-left:-40px}main#content #toc ul,main#content #toc ol{margin:0;padding:0 0 0 40px;font-size:.98em}main#content #toc ul{list-style-type:none}main#content #toc ol{counter-reset:item}main#content #toc ol li{display:block}main#content #toc ol li:before{content:counters(item, ".") ". ";counter-increment:item}main#content img{border-radius:6px;max-width:100%;height:auto;margin:0 auto}main#content figure{margin:16px 0}main#content figure img{max-width:100%;margin:0 auto;display:block}main#content figure figcaption{text-align:center;color:var(--color-text-muted);margin-top:6px;padding:0 10px;font-size:.92em;font-style:italic;line-height:22px}main#content figure figcaption h4{margin:0;font-style:normal;display:inline}main#content figure figcaption p{margin:0;padding-left:8px;display:inline}main#content blockquote{color:var(--color-text-muted);border-left:3px solid var(--color-accent);margin:20px 0;padding:4px 0 4px 20px;font-style:italic}main#content blockquote p{color:inherit}main#content code,main#content pre{font-family:var(--font-mono)}main#content code{background:var(--color-surface);border-radius:4px;padding:2px 6px;font-size:.92em}main#content pre{white-space:pre;border-radius:8px;margin:20px 0;padding:1.5rem;font-size:1.4rem;line-height:1.5;display:block;overflow-x:auto}main#content pre code{background:0 0;padding:0}main#content .footnotes{font-size:.9em}footer#footer{color:var(--color-text-muted);border-top:1px solid var(--color-border);margin:48px 0 0;padding:20px 0 32px;font-size:1.4rem;font-weight:400}footer#footer a{color:var(--color-text-muted);transition:color var(--transition-fast);text-decoration:none}footer#footer a:hover{color:var(--color-link)}#search-container{margin:24px 0 20px}#search-input{width:100%;color:var(--color-text);background:var(--color-bg);border:1px solid var(--color-border-strong);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);border-radius:8px;padding:10px 16px;font-family:inherit;font-size:16px}#search-input::placeholder{color:var(--color-text-muted)}#search-input:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--color-accent) 18%, transparent);outline:none}#search-results{margin-top:10px}#search-results .no-results{color:var(--color-text-muted);font-style:italic}mark{background-color:var(--color-mark-bg);color:var(--color-mark-text);border-radius:2px;padding:.1em .2em}@media (prefers-color-scheme:dark){:root{--color-bg:#101315;--color-text:#e4e6e7;--color-text-secondary:#c9cdcf;--color-text-muted:#9aa2a6;--color-heading:#f2f4f5;--color-link:#4da3ff;--color-link-hover:#7cbcff;--color-border:#262c30;--color-border-strong:#3a4247;--color-accent:#4da3ff;--color-surface:#1a1f22;--color-mark-bg:#4a4000;--color-mark-text:#fff}html{scrollbar-color:#6c6c6c #2e2e2e}body{-moz-osx-font-smoothing:grayscale}::selection{background:var(--color-accent);color:#0b0d0e}#search-input{background:var(--color-surface)}}@media (width>=770px){body{width:90%;max-width:740px}header#banner h2{font-size:2.4rem}main#content .hero h1{font-size:3rem}main#content h2{font-size:2.4rem}main#content h3{font-size:2rem}main#content :is(ul#posts,ul.posts){font-size:1.8rem}main#content header#post-header h1{font-size:3rem}main#content pre{padding:1.5rem 2.2rem}}.astro-code{color:#f8f8f2;border-radius:4px;background-color:#272822!important}.astro-code .err{color:#960050;background-color:#1e0010}.astro-code .hl{background-color:#3c3d38;width:100%;display:block}.astro-code .ln{color:#7f7f7f;margin-right:.4em;padding:0 .4em}.astro-code .k,.astro-code .kc,.astro-code .kd{color:#66d9ef}.astro-code .kn{color:#f92672}.astro-code .kp,.astro-code .kr,.astro-code .kt{color:#66d9ef}.astro-code .na,.astro-code .nc{color:#a6e22e}.astro-code .no{color:#66d9ef}.astro-code .nd,.astro-code .ne,.astro-code .nf,.astro-code .nx{color:#a6e22e}.astro-code .nt{color:#f92672}.astro-code .l{color:#ae81ff}.astro-code .ld,.astro-code .s,.astro-code .sa,.astro-code .sb,.astro-code .sc,.astro-code .dl,.astro-code .sd,.astro-code .s2{color:#e6db74}.astro-code .se{color:#ae81ff}.astro-code .sh,.astro-code .si,.astro-code .sx,.astro-code .sr,.astro-code .s1,.astro-code .ss{color:#e6db74}.astro-code .m,.astro-code .mb,.astro-code .mf,.astro-code .mh,.astro-code .mi,.astro-code .il,.astro-code .mo{color:#ae81ff}.astro-code .o,.astro-code .ow{color:#f92672}.astro-code .c,.astro-code .ch,.astro-code .cm,.astro-code .c1,.astro-code .cs,.astro-code .cp,.astro-code .cpf{color:#75715e}.astro-code .gd{color:#f92672}.astro-code .ge{font-style:italic}.astro-code .gi{color:#a6e22e}.astro-code .gs{font-weight:700}.astro-code .gu{color:#75715e}
