:root{--bg:#f9fafc;--ink:#20252e;--muted:#5d646c;--hairline:#dce0e5;--accent:#2f58ae;--accent-hover:#20428d;--selection:#cfdffd;--code-bg:#ebeff4;--code-ink:#20252e;--inline-code-bg:#ebeff4;--syntax-keyword:#674698;--syntax-string:#246e3a;--syntax-function:#045d69;--syntax-constant:#9c5313;--syntax-deleted:#a43b38;--shiki-foreground:var(--code-ink);--shiki-background:var(--code-bg);--shiki-token-keyword:var(--syntax-keyword);--shiki-token-string:var(--syntax-string);--shiki-token-string-expression:var(--syntax-string);--shiki-token-function:var(--syntax-function);--shiki-token-constant:var(--syntax-constant);--shiki-token-comment:var(--muted);--shiki-token-punctuation:var(--muted);--shiki-token-parameter:var(--code-ink);--shiki-token-link:var(--accent);--shiki-token-inserted:var(--syntax-string);--shiki-token-deleted:var(--syntax-deleted);--shiki-token-changed:var(--syntax-constant);--font-sans:-apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", system-ui, Helvetica, Arial, sans-serif;--font-mono:"SF Mono", ui-monospace, "Cascadia Code", Menlo, monospace;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#121519;--ink:#dadce1;--muted:#b4b9c1;--hairline:#2b2f35;--accent:#a4c4ff;--accent-hover:#b8d2ff;--selection:#293c62;--code-bg:#1b1e24;--code-ink:#dadce1;--inline-code-bg:#1b1e24;--syntax-keyword:#c3afea;--syntax-string:#96cea1;--syntax-function:#82d7e6;--syntax-constant:#f0b68f;--syntax-deleted:#f0a9a2;color-scheme:dark}}:root[data-theme=dark]{--bg:#121519;--ink:#dadce1;--muted:#b4b9c1;--hairline:#2b2f35;--accent:#a4c4ff;--accent-hover:#b8d2ff;--selection:#293c62;--code-bg:#1b1e24;--code-ink:#dadce1;--inline-code-bg:#1b1e24;--syntax-keyword:#c3afea;--syntax-string:#96cea1;--syntax-function:#82d7e6;--syntax-constant:#f0b68f;--syntax-deleted:#f0a9a2;color-scheme:dark}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;flex-direction:column;min-height:100vh;font-size:1.0625rem;line-height:1.6;display:flex}main{flex:1}.wrapper{width:100%;max-width:42rem;margin-inline:auto;padding-inline:1.375rem}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover);text-underline-offset:.2em;text-decoration:underline}::selection{background:var(--selection);color:var(--ink)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}h1,h2,h3,h4{letter-spacing:-.015em;text-wrap:balance;font-weight:600;line-height:1.2}.site-header{border-bottom:1px solid var(--hairline)}.header-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1.5rem;padding-block:1.75rem;display:flex}.site-name{letter-spacing:-.02em;color:var(--ink);font-size:1.35rem;font-weight:700;line-height:1.2}.site-name:hover{text-decoration:none}.site-header nav{align-items:center;gap:1.4rem;display:flex}.site-header nav>a{color:var(--muted);border-bottom:2px solid #0000;padding-bottom:.15rem;font-size:.9rem}.site-header nav>a:hover{color:var(--ink);text-decoration:none}.site-header nav>a.active{color:var(--ink);border-bottom-color:var(--accent)}.icon-links{border-left:1px solid var(--hairline);align-items:center;gap:1rem;padding-left:1.2rem;display:flex}.icon-links a{color:var(--muted);display:flex}.icon-links a,.theme-toggle{margin:-4px;padding:4px}.icon-links a:hover{color:var(--accent)}.theme-toggle{color:var(--muted);cursor:pointer;background:0 0;border:none;display:flex}.theme-toggle:hover{color:var(--accent)}.theme-toggle .icon-sun{display:none}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .theme-toggle .icon-moon{display:none}:root:not([data-theme=light]) .theme-toggle .icon-sun{display:block}}:root[data-theme=dark] .theme-toggle .icon-moon{display:none}:root[data-theme=dark] .theme-toggle .icon-sun{display:block}.home-lede{color:var(--muted);text-wrap:pretty;letter-spacing:normal;max-width:36rem;padding-block-start:2.5rem;font-size:1em;font-weight:400;line-height:1.6}.home{padding-block-start:2.75rem}.year-label{font-family:var(--font-mono);letter-spacing:.06em;color:var(--muted);font-size:.85rem;font-weight:600}.year-label:before{content:"# ";content:"# " / "";color:var(--accent)}.post-year+.post-year{margin-top:2.25rem}.empty-note{color:var(--muted);padding-block:1.25rem}.post-list{list-style:none}.post-list>li{border-top:1px solid var(--hairline);grid-template-columns:4.5rem 1fr;gap:1.5rem;padding-block:1.6rem;transition:transform .25s cubic-bezier(.2,.6,.2,1);display:grid}.post-list>li:first-child{border-top:none}.post-list>li:hover{transform:translate(6px)}.post-list time{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--muted);white-space:nowrap;padding-top:.3rem;font-size:.8rem}.post-entry{flex-direction:column;gap:.35rem;display:flex}.post-entry h3{font-size:1.25rem}.post-entry h3 a{color:var(--ink)}.post-entry h3 a:hover,.post-list>li:hover:not(:has(.tag-list a:hover)) .post-entry h3 a{color:var(--accent);text-decoration:none}.post-entry p{color:var(--muted);text-wrap:pretty;font-size:.98rem}.tag-list{flex-wrap:wrap;gap:.5rem;margin-top:.4rem;list-style:none;display:flex}.tag-list a{font-family:var(--font-mono);color:var(--muted);border:1px solid var(--hairline);border-radius:5px;padding:.15em .55em;font-size:.75rem}.tag-list a:hover{color:var(--accent);border-color:var(--accent);text-decoration:none}.tag-heading{padding-block:3rem 1.5rem;font-size:1.7rem}.accent{color:var(--accent)}.post{padding-block:3.5rem 1rem}.post-meta{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--muted);margin-bottom:.9rem;font-size:.8rem}.post-tags{border-top:1px solid var(--hairline);margin-top:3rem;padding-top:1.25rem}.content{flex-direction:column;gap:1.05rem;line-height:1.68;display:flex}.content h1{letter-spacing:-.02em;font-size:2rem;font-weight:700}.content h2{margin-top:1.5rem;font-size:1.4rem}.content h3{margin-top:.9rem;font-size:1.15rem}.content a{text-underline-offset:.2em;text-decoration:underline;text-decoration-color:color-mix(in srgb, var(--accent) 40%, transparent)}.content ul,.content ol{flex-direction:column;gap:.4rem;padding-left:1.4rem;display:flex}.content blockquote{border-left:2px solid color-mix(in oklch, var(--accent) 35%, var(--hairline));color:var(--muted);padding-left:1.2rem}.content img{border-radius:12px;max-width:100%}.content hr{border:none;border-top:1px solid var(--hairline)}code{font-family:var(--font-mono);font-size:.85em}.content :not(pre)>code{background:var(--inline-code-bg);border-radius:5px;padding:.15em .4em}.content pre{color:var(--code-ink);border-radius:12px;padding:1.2rem 1.35rem;line-height:1.55;overflow-x:auto;background:var(--code-bg)!important}.content pre code{background:0 0;padding:0;font-size:.82rem}.content .contact-list{padding-left:0;list-style:none}.site-footer{border-top:1px solid var(--hairline);margin-top:5rem}.footer-row{font-family:var(--font-mono);color:var(--muted);justify-content:space-between;align-items:baseline;padding-block:1.4rem;font-size:.75rem;display:flex}.footer-row a{color:var(--muted)}.footer-row a:hover{color:var(--ink)}@media (width<=540px){.post-list>li{grid-template-columns:1fr;gap:.25rem}.post-list time{padding-top:0}.home-lede{padding-block-start:1.75rem}.home{padding-block-start:2rem}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
