:root{color-scheme:light dark;--color-base00:light-dark(#ffffff, #1d1f21);--color-base01:light-dark(#e0e0e0, #282a2e);--color-base02:light-dark(#c5c8c6, #373b41);--color-base03:light-dark(#b4b7b4, #969896);--color-base04:light-dark(#969896, #b4b7b4);--color-base05:light-dark(#373b41, #c5c8c6);--color-base06:light-dark(#282a2e, #e0e0e0);--color-base07:light-dark(#1d1f21, #ffffff);--color-base08:light-dark(#c82829, #cc6666);--color-base09:light-dark(#f5871f, #de935f);--color-base0a:light-dark(#eab700, #f0c674);--color-base0b:light-dark(#718c00, #b5bd68);--color-base0c:light-dark(#3e999f, #8abeb7);--color-base0d:light-dark(#4271ae, #81a2be);--color-base0e:light-dark(#8959a8, #b294bb);--color-base0f:light-dark(#a3685a, #a3685a);--color-background:var(--color-base00);--color-background-mask:light-dark(#000000, #ffffff);--color-text:var(--color-base05);--color-text-mute:var(--color-base03);--color-link:var(--color-base0d);--color-block-background:color-mix(in srgb, var(--color-background), var(--color-background-mask) 3%);--color-block-border:color-mix(in srgb, var(--color-background), var(--color-background-mask) 12%);--font-monospace:ui-monospace, "SF Mono", "Menlo", "Cascadia Code", "Consolas", "Hack", "Adwaita Mono", "Liberation Mono", "DejaVu Sans Mono", "Roboto Mono", monospace;--font-sans-serif:ui-sans-serif, "SF Pro", "Helvetica Neue", "Segoe UI", "Noto Sans", "Adwaita Sans", "Liberation Sans", "DejaVu Sans", "Roboto", sans-serif}body{background-color:var(--color-background);color:var(--color-text);font-family:var(--font-sans-serif);line-height:1.5;margin-inline:auto;max-inline-size:82ch;padding:1rem;-webkit-text-size-adjust:100%;text-size-adjust:100%}nav{align-items:center;display:flex;font-size:.9rem;font-weight:500;justify-content:space-between}.nav-section{display:flex;gap:1rem}article{hanging-punctuation:first last;text-wrap:pretty}.article-header{margin-block:2rem;text-align:center}.article-title{font-size:2rem;font-weight:700;margin-block:.25rem;text-wrap:balance}.article-subtitle{font-weight:500}.home-article{display:flex;flex-direction:row;gap:.5rem}@media(max-width:600px){.home-article{flex-direction:column;gap:0}}.home-article-time{color:var(--color-text-mute)}a{color:var(--color-link);text-decoration:none}a:hover{text-decoration:underline}code,pre{background:var(--color-block-background);border:1px solid var(--color-block-border);border-radius:4px}code{font-family:var(--font-monospace);font-size:85%;padding-block:.1rem;padding-inline:.25rem}pre{overflow:auto;padding:1rem}pre code{background:0 0;border:none;padding:0}blockquote{background:var(--color-block-background);border-inline-start:.25rem solid var(--color-block-border);margin-block:1rem;margin-inline:1.5rem;padding-block:.1rem;padding-inline:1rem .75rem}table{border-collapse:collapse}td,th{border:1px solid var(--color-block-border);padding-block:.5rem;padding-inline:1rem}tr:nth-child(even){background:var(--color-block-background)}.chroma{color:var(--color-base05);background-color:var(--color-block-background);-webkit-text-size-adjust:none}.bg{color:var(--color-base05);background-color:var(--color-block-background)}.chroma .err{color:var(--color-base08)}.chroma .x{color:var(--color-base05)}.chroma .line{display:flex}.chroma .hl{background-color:var(--color-base02)}.chroma .lnlinks{outline:none;text-decoration:none;color:inherit}.chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:var(--color-base03)}.chroma .lnt{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:var(--color-base03)}.chroma .lntable{border-spacing:0;padding:0;margin:0;border:0}.chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}.chroma .k{color:var(--color-base0e)}.chroma .kc{color:var(--color-base09)}.chroma .kd{color:var(--color-base0e)}.chroma .kn{color:var(--color-base0e)}.chroma .kp{color:var(--color-base0e)}.chroma .kr{color:var(--color-base0e)}.chroma .kt{color:var(--color-base0a)}.chroma .n{color:var(--color-base05)}.chroma .na{color:var(--color-base09)}.chroma .nb{color:var(--color-base0e)}.chroma .bp{color:var(--color-base05)}.chroma .nc{color:var(--color-base0a)}.chroma .no{color:var(--color-base09)}.chroma .nd{color:var(--color-base09)}.chroma .ni{color:var(--color-base05)}.chroma .ne{color:var(--color-base05)}.chroma .nf{color:var(--color-base0d)}.chroma .fm{color:var(--color-base0d)}.chroma .nl{color:var(--color-base08)}.chroma .nn{color:var(--color-base05)}.chroma .nx{color:var(--color-base05)}.chroma .nt{color:var(--color-base08)}.chroma .nv{color:var(--color-base08)}.chroma .vc{color:var(--color-base08)}.chroma .vg{color:var(--color-base08)}.chroma .vi{color:var(--color-base08)}.chroma .vm{color:var(--color-base08)}.chroma .m{color:var(--color-base09)}.chroma .mb{color:var(--color-base09)}.chroma .mf{color:var(--color-base09)}.chroma .mh{color:var(--color-base09)}.chroma .mi{color:var(--color-base09)}.chroma .il{color:var(--color-base09)}.chroma .mo{color:var(--color-base09)}.chroma .l{color:var(--color-base05)}.chroma .ld{color:var(--color-base05)}.chroma .s{color:var(--color-base0b)}.chroma .sa{color:var(--color-base0b)}.chroma .sb{color:var(--color-base0b)}.chroma .sc{color:var(--color-base0b)}.chroma .dl{color:var(--color-base0b)}.chroma .sd{color:var(--color-base0b)}.chroma .s2{color:var(--color-base0b)}.chroma .se{color:var(--color-base0c)}.chroma .sh{color:var(--color-base0b)}.chroma .si{color:var(--color-base0b)}.chroma .sx{color:var(--color-base0b)}.chroma .sr{color:var(--color-base0c)}.chroma .s1{color:var(--color-base0b)}.chroma .ss{color:var(--color-base0b)}.chroma .o{color:var(--color-base05)}.chroma .ow{color:var(--color-base05)}.chroma .p{color:var(--color-base05)}.chroma .c{color:var(--color-base03)}.chroma .ch{color:var(--color-base03)}.chroma .cm{color:var(--color-base03)}.chroma .cp{color:var(--color-base03)}.chroma .cpf{color:var(--color-base03)}.chroma .c1{color:var(--color-base03)}.chroma .cs{color:var(--color-base03)}.chroma .g{color:var(--color-base05)}.chroma .gd{color:var(--color-base08)}.chroma .ge{font-style:italic}.chroma .gr{color:var(--color-base08)}.chroma .gh{font-weight:700}.chroma .gi{color:var(--color-base0b)}.chroma .go{color:var(--color-base03)}.chroma .gp{color:var(--color-base05)}.chroma .gs{font-weight:700}.chroma .gu{font-weight:700}.chroma .gt{color:var(--color-base05)}.chroma .gl{text-decoration:underline}