:root{--bg:#ffffff;--fg:#111111;--muted:#667085;--rule:#e6e9ee;--code-bg:#f5f7fa;--accent:#155eef;--accent-soft:#eef4ff}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.75 '-apple-system',BlinkMacSystemFont,segoe ui,Helvetica,Arial,sans-serif;overflow-wrap:break-word}.wrap{width:min(720px,calc(100% - 2.5rem));margin:0 auto}a{color:inherit;text-underline-offset:.15em}a:hover{color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}.skip-link{position:absolute;left:-9999px}.skip-link:focus{left:1rem;top:1rem;padding:.5rem;background:var(--fg);color:var(--bg)}.site-header{display:flex;flex-wrap:wrap;gap:.5rem 1rem;justify-content:space-between;align-items:baseline;padding:1.75rem 0 3.5rem}.site-header .site-name{text-decoration:none;font-weight:700;letter-spacing:-.02em}.site-header nav a{display:inline-block;padding:.5rem 0;margin-left:1rem;color:var(--muted);text-decoration:none;font-size:.9rem}.site-header nav a:first-child{margin-left:0}.site-header nav{margin-left:auto}.site-header nav a:hover,.site-header nav a:focus-visible{color:var(--fg)}.site-footer{margin:4rem 0 0;color:var(--muted);font-size:.875rem}.site-footer .wrap{padding:1.25rem 0 3rem;border-top:1px solid var(--rule)}.site-footer p{margin:0}.social-links{display:flex;gap:.7rem}.social-links a{display:inline-flex;width:2.5rem;height:2.5rem;align-items:center;justify-content:center;border:1px solid var(--rule);border-radius:50%;color:var(--muted);background:#fff}.social-links a:nth-child(1){color:#b42318}.social-links a:nth-child(2){color:#24292f}.social-links a:nth-child(3){color:#0a66c2}.social-links a:nth-child(4){color:#e26522}.social-links a:hover,.social-links a:focus-visible{border-color:initial;background:#fff}.social-links svg{width:1.4rem;height:1.4rem;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.6}.social-links a:nth-child(2) svg,.social-links a:nth-child(3) svg,.social-links a:nth-child(4) svg{fill:currentColor;stroke:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.home-links{display:flex;flex-wrap:wrap;gap:.65rem;margin:0 0 2.25rem}.home-links a{display:inline-block;padding:.5rem .8rem;border:1px solid var(--rule);border-radius:.3rem;color:var(--fg);text-decoration:none;font-size:.9rem;font-weight:600}.home-links a:first-child{border-color:var(--fg);background:var(--fg);color:#fff}.home-links a:hover,.home-links a:focus-visible{border-color:var(--fg);background:var(--code-bg);color:var(--fg)}.home-links a:first-child:hover,.home-links a:first-child:focus-visible{background:#303946;color:#fff}.hire-note{display:inline-block;padding:.45rem .7rem;border-left:3px solid var(--fg);background:var(--code-bg);font-size:.9rem}.hire-note a{font-weight:600}h1,h2,h3,h4{font-weight:600;line-height:1.3;letter-spacing:-.02em;margin:2.5rem 0 .75rem}h1{font-size:clamp(2rem,5vw,3rem);line-height:1.1;margin-top:0}h2{font-size:1.2rem}h3{font-size:1rem}h4{font-size:1rem}p,ul,ol,pre,table,blockquote,figure{margin:0 0 1rem}ul,ol{padding-left:1.25rem}li{margin-bottom:.25rem}hr{border:0;border-top:1px solid var(--rule);margin:2rem 0}.muted,.date{color:var(--muted);font-size:.875rem}.role{margin:.75rem 0 0;color:var(--muted);font-size:1.1rem}.posts{list-style:none;margin:0;padding:0}.posts li{display:flex;gap:1rem;justify-content:space-between;align-items:baseline;margin-bottom:.8rem}.posts .date{flex:none;white-space:nowrap}@media(max-width:32rem){.posts li{display:block;margin-bottom:1rem}.posts .date{display:block}}.post>*{width:min(720px,calc(100% - 2.5rem));margin-left:auto;margin-right:auto}.post-head .hero{margin:1.6rem 0 2rem}.post-head .hero img{display:block;width:100%;height:auto}@media(min-width:1200px){.post{display:grid;grid-template-columns:1fr min(720px,calc(100% - 2.5rem))1fr;max-width:1320px;margin:0 auto}.post>*{width:auto;margin:0}.post>.post-head{grid-column:2;grid-row:1}.post>.content{grid-column:2;grid-row:2}.post>.post-end{grid-column:2;grid-row:3}.post>.toc{grid-column:1;grid-row:2;justify-self:end;align-self:start;position:sticky;top:2rem;width:min(240px,100%);margin:0;padding:0 1.5rem 0 0;border:0;max-height:calc(100vh - 4rem);overflow-y:auto}}.toc{margin-top:1.75rem;margin-bottom:2.5rem;padding:.9rem 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);font-size:.9375rem}.toc-title{margin:0 0 .55rem;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.toc ul{list-style:none;margin:0;padding:0}.toc ul ul{display:none}@media(min-width:1200px){.toc ul ul{display:block;padding-left:.75rem;margin-top:.3rem;font-size:.875rem}.toc ul ul li{margin-bottom:.25rem}}.toc li{margin-bottom:.35rem}.toc li:last-child{margin-bottom:0}.toc a{color:var(--muted);text-decoration:none}.toc a:hover{color:var(--fg);text-decoration:underline}.content h2,.content h3{scroll-margin-top:1.5rem}@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}.content img,.content video{max-width:100%;height:auto;display:block}.content blockquote{margin-left:0;padding-left:1rem;border-left:2px solid var(--rule);color:var(--muted)}.content>p:first-child{font-size:1.08rem}.content a{color:var(--accent)}.content a:hover{color:var(--fg)}.content h4:has(+.startup-summary){margin:2rem 0 0;padding:1rem 1.1rem .35rem;border:1px solid var(--rule);border-bottom:0;border-radius:.55rem .55rem 0 0;background:var(--code-bg);box-shadow:0 4px 16px rgba(16,24,40,4%)}.startup-summary{margin:0;padding:.1rem 1.1rem .9rem;border-left:1px solid var(--rule);border-right:1px solid var(--rule);background:var(--code-bg);color:var(--muted);font-size:.9rem;line-height:1.55;box-shadow:0 4px 16px rgba(16,24,40,4%)}.startup-summary a{font-size:.8rem;font-weight:600;text-decoration:none}.read-more{display:block;margin-top:.65rem;padding:0;border:0;background:0 0;color:var(--accent);cursor:pointer;font:inherit;font-size:.8rem;font-weight:600}.read-more:hover{color:var(--fg)}.startup-work[hidden]{display:none}.content h4:has(+.startup-summary)+.startup-summary+ul{margin:0 0 1.25rem;padding:.85rem 1.1rem .85rem 2.35rem;border:1px solid var(--rule);border-top:1px dashed var(--rule);border-radius:0 0 .55rem .55rem;background:#fff}.content h4:has(+.startup-summary)+.startup-summary+ul li:last-child{margin-bottom:0}@media(min-width:42rem){.content h4:has(+.startup-summary){float:left;clear:both;width:31%;margin:2rem 0 1.25rem;border-bottom:1px solid var(--rule);border-radius:.55rem 0 0 .55rem}.content h4:has(+.startup-summary)+.startup-summary{margin-left:31%;padding-top:1rem;border-top:1px solid var(--rule);border-radius:0 .55rem 0 0}.content h4:has(+.startup-summary)+.startup-summary+ul{margin-left:31%;margin-bottom:1.25rem;border-radius:0 0 .55rem 0}}@media(max-width:41.99rem){.content h4:has(+.startup-summary){margin-top:1.5rem}}code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.875em;background:var(--code-bg);padding:.1em .3em}pre{background:var(--code-bg);padding:.85rem 1rem;overflow-x:auto}pre code{background:0 0;padding:0}pre.mermaid{background:0 0;padding:0;text-align:center}table{border-collapse:collapse;width:100%;display:block;overflow-x:auto;font-size:.9375rem}th,td{border-bottom:1px solid var(--rule);padding:.4rem .6rem;text-align:left}.chroma .k,.chroma .kc,.chroma .kd,.chroma .kn,.chroma .kr,.chroma .kt{color:#cf222e}.chroma .na,.chroma .nc,.chroma .nx,.chroma .p{color:#1f2328}.chroma .nd,.chroma .nt,.chroma .m,.chroma .mi,.chroma .o,.chroma .ow{color:#0550ae}.chroma .nn{color:#24292e}.chroma .nb,.chroma .nf,.chroma .fm{color:#6639ba}.chroma .bp{color:#6a737d}.chroma .nv{color:#953800}.chroma .s,.chroma .sb,.chroma .sd,.chroma .se,.chroma .si{color:#0a3069}.chroma .c,.chroma .cp{color:#57606a;font-style:italic}.chroma .err{color:inherit;background:0 0}.page-nav{margin-top:3rem;font-size:.9375rem}.page-nav a{margin-right:1rem}@media print{:root{--bg:#ffffff;--fg:#000000;--muted:#444444;--rule:#cccccc;--code-bg:#f4f4f4}.site-header nav,.site-footer,.page-nav,.skip-link{display:none}body{font-size:11pt}.wrap{width:100%}h1,h2,h3{break-after:avoid}pre,blockquote,li,img{break-inside:avoid}a{text-decoration:none}.content a[href^=http]::after{content:" (" attr(href)")";font-size:9pt;color:var(--muted)}}