@font-face{font-family:inter;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/inter-400.ttf)format("truetype")}@font-face{font-family:inter;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/inter-500.ttf)format("truetype")}@font-face{font-family:inter;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/inter-600.ttf)format("truetype")}@font-face{font-family:inter;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/inter-700.ttf)format("truetype")}@font-face{font-family:inter;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/inter-800.ttf)format("truetype")}@font-face{font-family:jetbrains mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/jetbrains-mono-400.ttf)format("truetype")}@font-face{font-family:jetbrains mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/jetbrains-mono-500.ttf)format("truetype")}@font-face{font-family:jetbrains mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/jetbrains-mono-600.ttf)format("truetype")}@font-face{font-family:jetbrains mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/jetbrains-mono-700.ttf)format("truetype")}:root{color-scheme:dark;--rosewater:#f5e0dc;--flamingo:#f2cdcd;--pink:#f5c2e7;--mauve:#cba6f7;--red:#f38ba8;--maroon:#eba0ac;--peach:#fab387;--yellow:#f9e2af;--green:#a6e3a1;--teal:#94e2d5;--sky:#89dceb;--sapphire:#74c7ec;--blue:#89b4fa;--lavender:#b4befe;--text:#cdd6f4;--subtext-1:#bac2de;--subtext-0:#a6adc8;--overlay-2:#9399b2;--overlay-1:#7f849c;--overlay-0:#6c7086;--surface-2:#585b70;--surface-1:#45475a;--surface-0:#313244;--base:#1e1e2e;--mantle:#181825;--crust:#11111b;--font-sans:"Inter", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--root-font:17px;--root-font-mobile:16px;--text-xs:0.78rem;--text-sm:0.9rem;--text-base:1rem;--text-md:1.06rem;--text-lg:1.18rem;--text-xl:1.35rem;--text-2xl:1.7rem;--text-3xl:2.25rem;--text-4xl:3rem;--text-code-inline:0.9em;--leading-body:1.72;--leading-copy:1.68;--leading-tight:1.16;--space-1:0.35rem;--space-2:0.65rem;--space-3:1rem;--space-4:1.4rem;--space-5:2rem;--space-6:3rem;--radius:8px;--page-width:1180px}*{box-sizing:border-box}::selection{color:var(--crust);background:var(--pink)}html{min-height:100%;background:var(--base);color:var(--text);font-family:var(--font-sans);font-size:var(--root-font);line-height:var(--leading-body)}body{width:min(100% - 40px,var(--page-width));min-height:100vh;margin:0 auto;display:flex;flex-direction:column}a{color:var(--sapphire);text-decoration-color:var(--surface-2);text-decoration-thickness:1px;text-underline-offset:.2em}a:hover{color:var(--mauve);text-decoration-color:initial}a:focus-visible{outline:2px solid var(--red);outline-offset:3px}.site-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-4)0;border-bottom:1px solid var(--surface-1)}.brand{min-width:0;display:inline-flex;align-items:center;gap:var(--space-2);color:var(--text);line-height:1;text-decoration:none}.brand img{width:42px;height:42px;display:block;border:1px solid var(--surface-1);border-radius:50%;object-fit:cover}.brand span{min-width:0;color:var(--subtext-1);font-size:var(--text-xl);font-weight:700;letter-spacing:0;white-space:nowrap}.brand:hover span{color:var(--text)}nav{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-2);font-size:var(--text-sm)}nav a{min-height:38px;display:inline-flex;align-items:center;padding:0 .85rem;border:1px solid var(--surface-1);border-radius:var(--radius);color:var(--subtext-1);background:0 0;line-height:1.25;text-decoration:none}nav a:hover{color:var(--text);border-color:var(--surface-2);background:var(--mantle)}main{flex:1;padding:var(--space-6)0}h1,h2,h3,h4,h5,h6{margin:0;line-height:var(--leading-tight);letter-spacing:0}h1{color:var(--rosewater);font-size:var(--text-3xl)}h2{color:var(--lavender);font-size:var(--text-2xl)}h3{color:var(--sky);font-size:var(--text-xl)}h4{color:var(--teal);font-size:var(--text-lg)}h5{color:var(--peach);font-size:var(--text-md)}h6{color:var(--flamingo);font-size:var(--text-sm);font-weight:700;text-transform:uppercase}.hero,.page-head{padding-bottom:var(--space-5);border-bottom:1px solid var(--surface-0)}.eyebrow{margin:0 0 var(--space-2);color:var(--mauve);font-size:var(--text-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase}.intro,.dek{color:var(--subtext-1);font-size:var(--text-lg);line-height:1.65}.intro{margin-top:0}.intro p,.dek{max-width:none}.home-intro p{margin:0 0 var(--space-3)}.home-intro p:last-child{margin-bottom:0}.home-intro strong{color:#d8b49a;font-weight:700}.home-intro mark{padding:0;color:var(--rosewater);background:0 0}.topics,.latest{padding-top:var(--space-5)}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-3)}.section-head span{color:var(--subtext-0);font-size:var(--text-sm)}.topic-grid{display:grid;grid-template-columns:1fr;align-items:stretch;gap:var(--space-3)}.topic-card{min-height:176px;height:100%;display:flex;flex-direction:column;justify-content:space-between;gap:var(--space-4);padding:var(--space-4);border:1px solid var(--surface-1);border-radius:var(--radius);color:var(--text);background:var(--mantle);text-decoration:none}.topic-card:hover{color:var(--text);border-color:var(--mauve);background:var(--crust)}.topic-card strong{color:var(--peach);font-size:var(--text-md);line-height:1.25}.topic-card span{color:var(--subtext-1);font-size:var(--text-base);line-height:1.55}.post-list{list-style:none;margin:0;padding:0}.post-list li{padding:var(--space-4)0;border-top:1px solid var(--surface-0)}.post-list a{color:var(--teal);font-size:var(--text-md);font-weight:700;text-decoration:none}.post-list a:hover{color:var(--pink)}.post-list p{margin:var(--space-2)0 0;color:var(--subtext-1)}.post-meta{display:flex;flex-wrap:wrap;gap:var(--space-1);margin-top:var(--space-2)}.post-meta span{display:inline-flex;align-items:center;min-height:1.6rem;padding:0 .5rem;border:1px solid var(--surface-1);border-radius:999px;color:var(--subtext-1);background:var(--mantle);font-size:var(--text-xs);line-height:1}.empty-state{margin:0;padding:var(--space-4);border:1px solid var(--surface-0);border-radius:var(--radius);color:var(--subtext-0);background:var(--mantle)}.post{width:100%}.post .page-head h1{font-size:var(--text-3xl)}.content{padding-top:var(--space-5);color:var(--text);font-size:var(--text-base);line-height:var(--leading-copy)}.content h2{margin:2.1rem 0 .8rem;padding-bottom:var(--space-1);border-bottom:1px solid var(--surface-1);color:var(--mauve);font-size:var(--text-xl)}.content h3{margin:1.65rem 0 .65rem;color:var(--sky);font-size:var(--text-lg)}.content h4{margin:1.45rem 0 .55rem;color:var(--teal);font-size:var(--text-md)}.content h5{margin:1.25rem 0 .5rem;color:var(--peach);font-size:var(--text-base)}.content h6{margin:1.15rem 0 .45rem;color:var(--flamingo);font-size:var(--text-sm);font-weight:700;text-transform:uppercase}.content p{margin:0 0 var(--space-3)}.content a{color:var(--sapphire);text-decoration-color:var(--surface-2)}.content a:hover{color:var(--mauve);text-decoration-color:initial}.content strong{color:var(--rosewater)}.content em{color:var(--flamingo)}.content del{color:var(--overlay-1)}.content small,.content figcaption{color:var(--overlay-2)}.content mark{padding:.05rem .25rem;border-radius:4px;color:var(--crust);background:var(--yellow)}.content blockquote{margin:var(--space-4)0;padding:var(--space-3)var(--space-4);border-left:4px solid var(--mauve);border-radius:0 var(--radius)var(--radius)0;color:var(--subtext-1);background:var(--mantle)}.content blockquote p:last-child{margin-bottom:0}.content code,.content kbd{padding:.12rem .34rem;border:1px solid var(--surface-1);border-radius:5px;color:var(--green);background:var(--mantle);font-family:var(--font-mono);font-size:var(--text-code-inline)}.content pre{overflow-x:auto;margin:var(--space-4)0;padding:var(--space-3);border:1px solid var(--surface-1);border-radius:var(--radius);color:var(--text);background:var(--crust)}.content pre:focus-within{border-color:var(--red)}.content pre code{padding:0;border:0;color:inherit;background:0 0;font-size:var(--text-sm)}.content .pseudocode-block{color:var(--text);background:var(--crust)}.pseudocode-block .ps-keyword{color:var(--mauve);font-weight:700}.pseudocode-block .ps-literal{color:var(--peach)}.pseudocode-block .ps-type{color:var(--sky)}.pseudocode-block .ps-action{color:var(--green)}.pseudocode-block .ps-punctuation{color:var(--yellow)}.content ul,.content ol{margin:0 0 var(--space-3);padding-left:1.35rem}.content li{margin:var(--space-1)0}.content li::marker{color:var(--peach)}.content hr{height:1px;margin:var(--space-5)0;border:0;background:var(--surface-1)}.content abbr[title]{color:var(--pink);text-decoration-color:var(--pink);text-underline-offset:.18em}.content table{width:100%;margin:var(--space-4)0;border-collapse:collapse;font-size:var(--text-sm)}.content th,.content td{padding:.75rem;border:1px solid var(--surface-2);text-align:left}.content th{color:var(--crust);background:var(--sapphire)}.content td{color:var(--subtext-1);background:var(--mantle)}.content :target{scroll-margin-top:var(--space-3)}.site-footer{padding:var(--space-5)0 var(--space-6);border-top:1px solid var(--surface-1);color:var(--flamingo);font-size:var(--text-sm);text-align:center}.social-links{justify-content:center;gap:var(--space-2);margin-bottom:var(--space-3)}.social-links a{width:48px;height:48px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--surface-1);border-radius:var(--radius);color:var(--pink);background:0 0}.social-links a:hover,.social-links a:focus-visible{color:var(--rosewater);border-color:var(--mauve);background:var(--mantle);outline:none}.social-links svg{width:24px;height:24px;fill:currentColor}.site-footer p{margin:0}@media(max-width:640px){html{font-size:var(--root-font-mobile)}body{width:min(100% - 24px,var(--page-width))}.site-header{gap:var(--space-3);padding:var(--space-3)0}.brand img{width:36px;height:36px}.brand span{font-size:var(--text-lg)}nav{flex:none}nav a{min-height:36px;padding:0 .7rem}main{padding:var(--space-5)0}.hero,.page-head{padding-bottom:var(--space-4)}.intro,.dek{font-size:var(--text-md)}.section-head{align-items:flex-start;flex-direction:column;gap:var(--space-1)}}@media(min-width:641px){h1,.post .page-head h1{font-size:var(--text-4xl)}}@media(min-width:641px) and (max-width:920px){.topic-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:921px){.topic-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}