@font-face{font-family:Google Sans Flex;font-style:normal;font-display:swap;font-weight:1 1000;src:url(/assets/google-sans-flex-latin-wght-normal-CRMKv9uI.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Google Sans Flex;font-style:normal;font-display:swap;font-weight:1 1000;src:url(/assets/google-sans-flex-latin-ext-wght-normal-C0VXOeWd.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Tight;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-tight-latin-wght-normal-DX-nOvPD.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Tight;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-tight-latin-ext-wght-normal-B4u9PlvR.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-latin-wght-normal-XN7g48iV.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-latin-ext-wght-normal-Bwz-egvJ.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--f-heading:"Google Sans Flex", system-ui, sans-serif;--w-heading:601;--f-body:"Google Sans Flex", system-ui, sans-serif;--w-body:400;--f-ui:"Inter Tight", system-ui, sans-serif;--w-ui:400;--f-code:"Geist Mono", ui-monospace, Menlo, monospace;--w-code:400;--fs-base:16px;--fs-small:13.6px;--fs-h3:19.2px;--fs-h2:23.04px;--fs-h1:27.65px;--fs-name:20px;--lh-body:1.5;--lh-head:1.1;--tr-head:-.0125em;--tr-body:0em;--tr-ui:-.0025em;--measure:70ch;--bg:#0d1013;--surface:#15171b;--border:#24272a;--text:#dfe0e2;--muted:#85888d;--accent:#b7b7b7;--u:4px;--page-pad:24px;--column:38rem;--section:10;--row:10px;--r-s:4px;--r-l:16px;--bw:.5px;--hover-dur:.15s;--ease:cubic-bezier(.23, 1, .32, 1);--enter-dur:.52s;--enter-stagger:45ms;--enter-rise:8px;--enter-blur:6px}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f8fafd;--surface:#eef0f4;--border:#d6d9de;--text:#16181b;--muted:#66696d;--accent:#6f6f6f}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--bg);color:var(--text);font-family:var(--f-body);font-weight:var(--w-body);font-size:var(--fs-base);line-height:var(--lh-body);letter-spacing:var(--tr-body);font-synthesis:none;font-kerning:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0}::selection{background:color-mix(in oklch, var(--accent) 35%, var(--bg));color:var(--text)}:focus-visible{outline:2px solid var(--text);outline-offset:2px;border-radius:2px}a,button{touch-action:manipulation}.page{padding-inline:var(--page-pad);padding-block:calc(var(--u) * 16) calc(var(--u) * 28);overflow-x:clip}.frame{max-width:var(--column);margin-inline:auto}.nav,.row-meta,.section-label,.post-meta,.back,.foot,.version-note,.prose figcaption,.prose cite,.empty{font-family:var(--f-ui);font-weight:var(--w-ui);font-size:var(--fs-small);letter-spacing:var(--tr-ui);line-height:1.5}.name{font-family:var(--f-heading);font-weight:var(--w-heading);font-size:var(--fs-name);line-height:var(--lh-head);letter-spacing:var(--tr-head);text-wrap:balance;margin:0}.intro{gap:calc(var(--u) * 3);margin-top:calc(var(--u) * 3);max-width:var(--measure);color:var(--muted);flex-direction:column;display:flex}.intro p{text-wrap:pretty;margin:0}.intro a{color:var(--text);text-decoration:underline;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-underline-offset:.22em;transition:text-decoration-color var(--hover-dur) var(--ease);text-decoration-thickness:1px}.nav{align-items:center;gap:calc(var(--u) * 5);margin-top:calc(var(--u) * 5);flex-wrap:wrap;display:flex}.nav a,.back,.foot a,.theme-toggle{min-height:32px;color:var(--muted);cursor:pointer;transition:color var(--hover-dur) var(--ease);align-items:center;padding:0;text-decoration:none;display:inline-flex}.section{margin-top:calc(var(--u) * var(--section))}.section-label{margin:0 0 calc(var(--u) * 2);font-weight:var(--w-ui);color:var(--muted)}.list{margin:0;padding:0;list-style:none}.row{justify-content:space-between;align-items:baseline;gap:calc(var(--u) * 4);padding-block:var(--row);color:var(--text);transition:opacity var(--hover-dur) var(--ease);text-decoration:none;display:flex}.row-title{text-wrap:pretty;min-width:0}.row-meta{gap:calc(var(--u) * 3);color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;flex-shrink:0;display:flex}.empty{padding-block:var(--row);color:var(--muted);margin:0}@media (width<=520px){.row{gap:var(--u);flex-direction:column}}.post-title{margin:calc(var(--u) * 6) 0 0;font-family:var(--f-heading);font-weight:var(--w-heading);font-size:var(--fs-h1);line-height:var(--lh-head);letter-spacing:var(--tr-head);text-wrap:balance}.post-meta{gap:calc(var(--u) * 4);margin:calc(var(--u) * 3) 0 0;color:var(--muted);font-variant-numeric:tabular-nums;flex-wrap:wrap;display:flex}.version-note{margin:calc(var(--u) * 2) 0 0;color:var(--muted)}.version-note a{color:var(--text);text-decoration:underline;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-underline-offset:.22em;text-decoration-thickness:1px}.prose{gap:calc(var(--fs-base) * var(--lh-body));margin-top:calc(var(--u) * 12);flex-direction:column;display:flex}.prose>*{max-width:var(--measure);margin:0}.prose>pre,.prose>figure,.prose>img{max-width:min(100%, calc(var(--measure) + 8ch))}.prose p,.prose li{text-wrap:pretty}.prose h2,.prose h3{margin-top:calc(var(--u) * 4);font-family:var(--f-heading);font-weight:var(--w-heading);line-height:var(--lh-head);letter-spacing:var(--tr-head);text-wrap:balance}.prose h2{font-size:var(--fs-h2)}.prose h3{font-size:var(--fs-h3)}.prose ul,.prose ol{gap:calc(var(--u) * 1.5);flex-direction:column;padding-inline-start:1.25em;display:flex}.prose li::marker{color:var(--muted)}.prose a{color:inherit;text-decoration:underline;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-underline-offset:.22em;transition:text-decoration-color var(--hover-dur) var(--ease);text-decoration-thickness:1px}.prose blockquote{gap:calc(var(--u) * 2);border-inline-start:2px solid var(--accent);flex-direction:column;margin:0;padding-inline-start:calc(var(--u) * 5);display:flex}.prose blockquote p{margin:0}.prose cite{color:var(--muted);font-style:normal}.prose code{font-family:var(--f-code);font-weight:var(--w-code);letter-spacing:0;background:var(--surface);border:var(--bw) solid var(--border);border-radius:var(--r-s);padding:.1em .35em;font-size:.875em}.prose pre{padding:calc(var(--u) * 4) calc(var(--u) * 5);font-size:var(--fs-small);background:var(--surface);border:var(--bw) solid var(--border);border-radius:var(--r-l);line-height:1.65;overflow-x:auto}.prose pre code{font-size:inherit;white-space:pre;background:0 0;border:0;padding:0}.prose img{border:var(--bw) solid var(--border);border-radius:var(--r-l);width:100%;height:auto;display:block}.prose figure{margin:0}.prose figcaption{margin-top:calc(var(--u) * 2);color:var(--muted)}.foot{isolation:isolate;justify-content:space-between;align-items:center;gap:calc(var(--u) * 4);margin-top:calc(var(--u) * var(--section));padding-top:calc(var(--u) * 5);color:var(--muted);border-top:var(--bw) solid var(--border);flex-wrap:wrap;display:flex;position:relative}.rain{--rain-rgb:175 205 240;z-index:-1;pointer-events:none;position:absolute;inset:-64px -48px -40px;-webkit-mask-image:linear-gradient(90deg,#0000,#000 14% 86%,#0000);mask-image:linear-gradient(90deg,#0000,#000 14% 86%,#0000)}:root[data-theme=light] .rain{--rain-rgb:40 60 90}.rain canvas{width:100%;height:100%;display:block}.wet-line{inset-inline:0;top:calc(var(--bw) * -1);pointer-events:none;background:linear-gradient(90deg,#0000,oklch(75% .13 210/.55) 30%,oklch(68% .22 340/.5) 70%,#0000);height:1px;position:absolute}.foot-links{align-items:center;gap:calc(var(--u) * 4);display:flex}.theme-toggle{font:inherit;letter-spacing:inherit;background:0 0;border:0}.clock{white-space:nowrap;font-variant-numeric:tabular-nums;opacity:0;transition:opacity .3s var(--ease)}.clock[data-ready]{opacity:1}.digit{vertical-align:top;height:1.5em;display:inline-block;overflow:hidden;-webkit-mask-image:linear-gradient(#0000,#000 20% 80%,#0000);mask-image:linear-gradient(#0000,#000 20% 80%,#0000)}.digit-reel{transform:translateY(calc(var(--d) * -1.5em));flex-direction:column;display:flex}.digit-reel>span{height:1.5em;line-height:1.5em}.clock[data-rolling] .digit-reel{transition:transform .7s var(--ease)}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}:root:not([data-theme=light]) .theme-toggle .to-dark,:root[data-theme=light] .theme-toggle .to-light{display:none}.not-found h1{font-family:var(--f-heading);font-weight:var(--w-heading);font-size:var(--fs-h1);line-height:var(--lh-head);letter-spacing:var(--tr-head);margin:0}.not-found p{margin:calc(var(--u) * 3) 0 0;color:var(--muted)}@media (hover:hover) and (pointer:fine){.nav a:hover,.back:hover,.foot a:hover,.theme-toggle:hover{color:var(--text)}.list:hover .row{opacity:.4}.list .row:hover{opacity:1}.prose a:hover,.intro a:hover,.version-note a:hover{-webkit-text-decoration-color:var(--text);text-decoration-color:var(--text)}}@keyframes enter{0%{opacity:0;filter:blur(var(--enter-blur));transform:translateY(var(--enter-rise))}}@media (prefers-reduced-motion:no-preference){[data-enter],.prose>*{animation:enter var(--enter-dur) var(--ease) both;animation-delay:calc(min(var(--i,0), 14) * var(--enter-stagger))}}.prose>:first-child{--i:4}.prose>:nth-child(2){--i:5}.prose>:nth-child(3){--i:6}.prose>:nth-child(4){--i:7}.prose>:nth-child(5){--i:8}.prose>:nth-child(6){--i:9}.prose>:nth-child(7){--i:10}.prose>:nth-child(8){--i:11}.prose>:nth-child(9){--i:12}.prose>:nth-child(10){--i:13}.prose>:nth-child(n+11){--i:14}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important}}
