@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/source-sans-3-latin-400-normal.DQi5PRDE.woff2)format("woff2"),url(/_astro/source-sans-3-latin-400-normal.RR2C27NP.woff)format("woff")}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/source-sans-3-latin-600-normal.DeckBYAU.woff2)format("woff2"),url(/_astro/source-sans-3-latin-600-normal.Ck0n4g8U.woff)format("woff")}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/source-sans-3-latin-700-normal.CkzU-mV9.woff2)format("woff2"),url(/_astro/source-sans-3-latin-700-normal.B-h9tW5h.woff)format("woff")}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/source-serif-4-latin-400-normal.DJ5YJwmz.woff2)format("woff2"),url(/_astro/source-serif-4-latin-400-normal.C1O10bxN.woff)format("woff")}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/source-serif-4-latin-600-normal.DouSKlru.woff2)format("woff2"),url(/_astro/source-serif-4-latin-600-normal.DeJomR3S.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/jetbrains-mono-latin-400-normal.V6pRDFza.woff2)format("woff2"),url(/_astro/jetbrains-mono-latin-400-normal.6-qcROiO.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/jetbrains-mono-latin-600-normal.C8RAYTDA.woff2)format("woff2"),url(/_astro/jetbrains-mono-latin-600-normal.BfsvjouI.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/jetbrains-mono-latin-700-normal.BYuf6tUa.woff2)format("woff2"),url(/_astro/jetbrains-mono-latin-700-normal.D3wTyLJW.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-400-normal.DMJ8VG8y.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-400-normal.CvHOgSBP.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-mono-latin-600-normal.BgSNZQsw.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-600-normal.DWFSQ4vo.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/ibm-plex-mono-latin-700-normal.7sUh57Bg.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-700-normal.CNHXzs6v.woff)format("woff")}[data-theme=solarized-light]{--color-scheme:light;--bg:#fdf6e3;--panel:#eee8d5;--line:#93a1a1;--fg:#3f5560;--dim:#4b616a;--ac:#175c94;--on-ac:#fdf6e3;--tint:#f5eed8;--radius:4px;--pill:4px;--font-body:"Source Sans 3", system-ui, sans-serif;--font-head:"Source Serif 4", Georgia, serif;--font-meta:"Source Sans 3", system-ui, sans-serif;--tok-keyword:#5f7000;--tok-string:#1d6f69;--tok-comment:#566b72;--tok-number:#a8331a;--tok-title:#175c94;--tok-type:#8a4b00}[data-theme=hell]{--color-scheme:light;--bg:#f4f5f7;--panel:#fff;--line:#aab1bc;--fg:#14181f;--dim:#4a5361;--ac:#145a70;--on-ac:#fff;--tint:#eef3f5;--radius:10px;--pill:22px;--font-body:"Source Sans 3", system-ui, sans-serif;--font-head:"Source Serif 4", Georgia, serif;--font-meta:"Source Sans 3", system-ui, sans-serif;--tok-keyword:#7a2e8f;--tok-string:#0b6a3b;--tok-comment:#5a6472;--tok-number:#a24a00;--tok-title:#145a70;--tok-type:#8a3b00}[data-theme=solarized-dark]{--color-scheme:dark;--bg:#002b36;--panel:#073642;--line:#586e75;--fg:#a5b3b3;--dim:#a0adad;--ac:#5fb3e8;--on-ac:#002b36;--tint:#0a3f4d;--radius:4px;--pill:4px;--font-body:"Source Sans 3", system-ui, sans-serif;--font-head:"Source Serif 4", Georgia, serif;--font-meta:"Source Sans 3", system-ui, sans-serif;--tok-keyword:#a3b800;--tok-string:#3bc4b9;--tok-comment:#93a1a1;--tok-number:#ff8f78;--tok-title:#5fb3e8;--tok-type:#e0b04a}[data-theme=dracula]{--color-scheme:dark;--bg:#282a36;--panel:#21222c;--line:#6272a4;--fg:#f8f8f2;--dim:#b8c0e0;--ac:#bd93f9;--on-ac:#282a36;--tint:#343746;--radius:6px;--pill:6px;--font-body:"Source Sans 3", system-ui, sans-serif;--font-head:"JetBrains Mono", ui-monospace, monospace;--font-meta:"JetBrains Mono", ui-monospace, monospace;--tok-keyword:#ff79c6;--tok-string:#f1fa8c;--tok-comment:#8e9ed0;--tok-number:#bd93f9;--tok-title:#50fa7b;--tok-type:#8be9fd}[data-theme=matrix]{--color-scheme:dark;--bg:#000a02;--panel:#031307;--line:#168a35;--fg:#3dff74;--dim:#2fcf5b;--ac:#00ff41;--on-ac:#001a06;--tint:#06240d;--radius:0px;--pill:0px;--font-body:"IBM Plex Mono", ui-monospace, monospace;--font-head:"IBM Plex Mono", ui-monospace, monospace;--font-meta:"IBM Plex Mono", ui-monospace, monospace;--tok-keyword:#00ff41;--tok-string:#9dffb4;--tok-comment:#3fae5a;--tok-number:#c8ffd4;--tok-title:#7dff9b;--tok-type:#5fe0a0}[data-theme=nord]{--color-scheme:dark;--bg:#2e3440;--panel:#3b4252;--line:#4c566a;--fg:#eceff4;--dim:#d8dee9;--ac:#88c0d0;--on-ac:#2e3440;--tint:#3b4252;--radius:8px;--pill:18px;--font-body:"Source Sans 3", system-ui, sans-serif;--font-head:"Source Sans 3", system-ui, sans-serif;--font-meta:"Source Sans 3", system-ui, sans-serif;--tok-keyword:#98b8da;--tok-string:#a3be8c;--tok-comment:#a9b4c8;--tok-number:#c9a3c0;--tok-title:#88c0d0;--tok-type:#ebcb8b}[data-theme=gruvbox]{--color-scheme:dark;--bg:#282828;--panel:#3c3836;--line:#665c54;--fg:#ebdbb2;--dim:#bdae93;--ac:#fabd2f;--on-ac:#282828;--tint:#32302f;--radius:2px;--pill:2px;--font-body:"Source Sans 3", system-ui, sans-serif;--font-head:"JetBrains Mono", ui-monospace, monospace;--font-meta:"JetBrains Mono", ui-monospace, monospace;--tok-keyword:#ff7a66;--tok-string:#b8bb26;--tok-comment:#b5a68e;--tok-number:#e090a5;--tok-title:#fabd2f;--tok-type:#8ec07c}[data-theme=monokai]{--color-scheme:dark;--bg:#272822;--panel:#3e3d32;--line:#75715e;--fg:#f8f8f2;--dim:#cfcfc2;--ac:#a6e22e;--on-ac:#272822;--tint:#33342b;--radius:3px;--pill:3px;--font-body:"Source Sans 3", system-ui, sans-serif;--font-head:"JetBrains Mono", ui-monospace, monospace;--font-meta:"JetBrains Mono", ui-monospace, monospace;--tok-keyword:#ff85ad;--tok-string:#e6db74;--tok-comment:#b0ab92;--tok-number:#c4a1ff;--tok-title:#a6e22e;--tok-type:#66d9ef}[data-theme=tokyo-night]{--color-scheme:dark;--bg:#1a1b26;--panel:#24283b;--line:#565f89;--fg:#c0caf5;--dim:#9aa5ce;--ac:#7aa2f7;--on-ac:#1a1b26;--tint:#292e42;--radius:10px;--pill:10px;--font-body:"Source Sans 3", system-ui, sans-serif;--font-head:"JetBrains Mono", ui-monospace, monospace;--font-meta:"JetBrains Mono", ui-monospace, monospace;--tok-keyword:#bb9af7;--tok-string:#9ece6a;--tok-comment:#8995c2;--tok-number:#ff9e64;--tok-title:#7aa2f7;--tok-type:#2ac3de}[data-theme=catppuccin]{--color-scheme:dark;--bg:#1e1e2e;--panel:#313244;--line:#6c7086;--fg:#cdd6f4;--dim:#a6adc8;--ac:#cba6f7;--on-ac:#1e1e2e;--tint:#2a2b3c;--radius:14px;--pill:22px;--font-body:"Source Sans 3", system-ui, sans-serif;--font-head:"Source Sans 3", system-ui, sans-serif;--font-meta:"Source Sans 3", system-ui, sans-serif;--tok-keyword:#cba6f7;--tok-string:#a6e3a1;--tok-comment:#9fa5bd;--tok-number:#fab387;--tok-title:#89b4fa;--tok-type:#f9e2af}:root{color-scheme:light}[hidden]{display:none!important}html{color-scheme:var(--color-scheme,light);background:var(--bg)}body{background:var(--bg);color:var(--fg);font-family:var(--font-body);margin:0;font-size:1.0625rem;line-height:1.6}a{color:var(--ac)}a:focus-visible,button:focus-visible,select:focus-visible{outline:2px solid var(--ac);outline-offset:2px}.site-header{flex-wrap:wrap;align-items:center;gap:.75rem 1.5rem;max-width:46rem;margin:0 auto;padding:1rem 1rem .5rem;display:flex}.site-name{font-family:var(--font-head);color:var(--fg);font-size:1.25rem;font-weight:700;text-decoration:none}.site-header nav{flex:1;gap:1rem;display:flex}.site-header nav a{color:var(--dim);padding:.5rem 0;text-decoration:none}.site-header nav a:hover,.site-header nav a[aria-current=page]{color:var(--fg);text-decoration:underline}.theme-picker{color:var(--dim);font-family:var(--font-meta);align-items:center;gap:.5rem;font-size:.875rem;display:inline-flex}.theme-picker select{min-height:2.5rem;font:inherit;color:var(--fg);background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:0 .5rem}main{max-width:46rem;margin:0 auto;padding:.5rem 1rem 4rem}h1,h2,h3,h4,h5,h6{font-family:var(--font-head);line-height:1.25}h1{margin:1.5rem 0 1rem;font-size:1.9rem}[data-theme=matrix] h1,[data-theme=matrix] h2{text-shadow:0 0 8px #00ff4173}.filter{flex-wrap:wrap;gap:.5rem;margin:0 0 1rem;display:flex}.filter a{border:1px solid var(--line);border-radius:var(--pill);background:var(--panel);min-height:2.5rem;color:var(--fg);font-family:var(--font-meta);align-items:center;padding:0 1rem;font-size:.9375rem;font-weight:600;text-decoration:none;display:inline-flex}.filter a[aria-current=page]{background:var(--fg);border-color:var(--fg);color:var(--bg)}.live-banner{z-index:10;margin:0 0 .75rem;position:sticky;top:.5rem}.live-banner[hidden]{display:none}.live-banner button{border:1px solid var(--fg);border-radius:var(--pill);background:var(--fg);min-height:2.5rem;color:var(--bg);font-family:var(--font-meta);cursor:pointer;padding:0 1rem;font-size:.9375rem;font-weight:600}.entry{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);margin:0 0 1rem;padding:1rem 1.25rem}.entry h2{margin:0 0 .25rem;font-size:1.25rem}.entry h2 a{color:var(--fg);text-decoration:none}.entry h2 a:hover{text-decoration:underline}.entry p{margin:.25rem 0}.entry time,.meta{color:var(--dim);font-family:var(--font-meta);font-size:.875rem}.entry-memo{background:var(--tint)}.excerpt{color:var(--fg)}ul.tags,.tag-index{flex-wrap:wrap;gap:.5rem;margin:.5rem 0 0;padding:0;list-style:none;display:flex}.tags li a,.tags li:not(:has(a)){border:1px solid var(--line);border-radius:var(--pill);font-family:var(--font-meta);color:var(--dim);padding:.125rem .625rem;font-size:.8125rem;text-decoration:none;display:inline-block}.tags li a:hover{color:var(--fg);border-color:var(--ac)}article>ul.tags{margin-bottom:1.25rem}[data-feed-status],.pager{color:var(--dim);font-family:var(--font-meta);flex-wrap:wrap;align-items:center;gap:1rem;font-size:.9375rem;display:flex}.content{overflow-wrap:anywhere}.content>:first-child{margin-top:0}.content img,.content video{border-radius:var(--radius);max-width:100%;height:auto}.content audio{width:100%}.content table{border-collapse:collapse;max-width:100%;display:block;overflow-x:auto}.content th,.content td{border:1px solid var(--line);text-align:left;padding:.25rem .625rem}.content blockquote{border-left:3px solid var(--ac);color:var(--dim);margin:1rem 0;padding:.25rem 1rem}.content pre{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:.75rem 1rem;font-size:.9rem;line-height:1.5;overflow-x:auto}.content code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9em}.content :not(pre)>code{background:var(--panel);border:1px solid var(--line);border-radius:calc(var(--radius) / 2);padding:.0625rem .3125rem}.content .embed{border:1px dashed var(--line);border-radius:var(--radius);padding:1rem}.content .embed button,.embed-start{min-height:2.5rem;font:inherit;color:var(--on-ac);background:var(--ac);border-radius:var(--radius);cursor:pointer;border:0;padding:0 1rem}.embed-frame{aspect-ratio:16/9;border:0;width:100%;display:block}.image-missing{color:var(--dim)}.hljs-keyword,.hljs-selector-tag,.hljs-literal,.hljs-meta{color:var(--tok-keyword)}.hljs-string,.hljs-regexp,.hljs-symbol,.hljs-addition{color:var(--tok-string)}.hljs-comment,.hljs-quote,.hljs-deletion{color:var(--tok-comment);font-style:italic}.hljs-number,.hljs-attr,.hljs-variable,.hljs-template-variable{color:var(--tok-number)}.hljs-title,.hljs-section,.hljs-name,.hljs-selector-id,.hljs-selector-class{color:var(--tok-title)}.hljs-type,.hljs-built_in,.hljs-class,.hljs-params,.hljs-attribute,.hljs-bullet{color:var(--tok-type)}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}@media (prefers-reduced-motion:no-preference){.entry,.filter a{transition:border-color .15s}}[data-search] input[type=search]{width:100%;font:inherit;color:var(--fg);background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:.5rem .75rem}[data-search] [data-search-kind]{flex-wrap:wrap;gap:.5rem;margin:.75rem 0;display:flex}[data-search] button[aria-pressed=true]{background:var(--ac);color:var(--on-ac)}[data-search] ul{padding:0;list-style:none}[data-search] li{margin:1rem 0}[data-search] mark{background:var(--tint);color:var(--fg);font-weight:600}.site-footer{border-top:1px solid var(--line);color:var(--dim);margin-top:3rem;padding:1rem 0}.site-footer nav{flex-wrap:wrap;gap:1rem;display:flex}.comments .comment-list{padding-left:0;list-style:none}.comments .comment-list .comment-list{border-left:2px solid var(--line);padding-left:1.25rem}.comments .comment{margin:1rem 0}.comments .comment-meta{color:var(--dim);font-size:.9em}.comments .comment-author{margin-right:.5rem;font-weight:600}.comments .comment-deleted{color:var(--dim);font-style:italic}.links{margin-top:2rem}.link-list .link-kind{color:var(--dim);font-size:.875rem}.graph{margin:1rem 0}.graph figcaption{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.graph-svg{width:100%;max-width:900px;height:auto;display:block}.graph-local .graph-svg{max-width:420px}.graph-svg .edge{stroke:var(--line);stroke-width:1px}.graph-svg .node circle{fill:var(--ac)}.graph-svg .node-glossary circle{fill:var(--panel);stroke:var(--ac);stroke-width:2px}.graph-svg .node-memo circle{fill:var(--dim)}.graph-svg .node-domain circle{fill:none;stroke:var(--dim);stroke-width:1.5px}.graph-svg .node-center circle{stroke:var(--fg);stroke-width:2px}.graph-svg text{fill:var(--fg);font-size:12px;font-family:var(--font-meta)}.graph-svg .node:focus-visible circle{stroke:var(--fg);stroke-width:3px}.file-tree{margin:.25rem 0;padding-left:1.25rem;list-style:none}main>.file-tree{padding-left:0}.file-tree .folder>details>summary{cursor:pointer;font-weight:600}.file-tree .count{color:var(--dim);font-size:.9em;font-weight:400}.file-tree .file{padding:.1rem 0}
