@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/inter-latin.woff2)format("woff2")}:root{color:#404040;font-synthesis:none;--bg:#fff;--text:#404040;--muted:#737373;--faint:#a3a3a3;--line:#f5f5f5;--hover:#fafafa;--icon:#f5f5f5;color-scheme:light dark;background:#fff;font-family:Inter,Arial,sans-serif}*{box-sizing:border-box}body{margin:0;font-size:16px;line-height:1.5}a{color:inherit;text-decoration:none}h1,h2,h3,p{font:inherit;margin:0}strong{font-weight:600}svg,img{display:block}img{max-width:100%;height:auto}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible{outline:2px solid var(--muted);outline-offset:5px;border-radius:3px}.shell{max-width:460px;margin:24px}.introduction{text-transform:lowercase}.monogram{background:var(--text);width:36px;height:36px;color:var(--bg);letter-spacing:-1.5px;border-radius:50%;justify-content:center;align-items:center;margin-top:40px;margin-bottom:32px;font-size:20px;font-weight:600;line-height:1;display:flex}.introduction h1{margin-top:6px}.introduction p{width:91.6667%;color:var(--muted);margin-top:16px;line-height:25px}.introduction h1+p{margin-top:32px}.introduction p a{color:var(--text)}.introduction p a:hover{text-underline-offset:3px;text-decoration:underline}.social-links{align-items:center;margin-top:24px;margin-left:-8px;display:flex}.social-links a{color:#525252;border-radius:13px;align-items:center;gap:8px;padding:12px;display:flex}.social-links a:hover{background:var(--hover)}.blog-link{font-size:14px}.blog-link span{color:var(--faint)}.section-heading{color:var(--faint);text-transform:lowercase;margin-top:40px;margin-bottom:8px;font-size:14px;line-height:20px}.work-row{border-radius:12px;gap:16px;margin:0 -16px;padding:16px 16px 0;display:flex}.work-row:is(a):hover{background:var(--hover)}.company-icon{background:var(--icon);width:36px;height:36px;color:var(--faint);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-top:2px;font-size:14px;font-weight:600;display:flex;overflow:hidden;box-shadow:0 1px 1px #00000005,0 2px 2px #00000005,0 4px 4px #00000005,0 6px 8px #00000005}.company-icon img{object-fit:cover;width:36px;height:36px}.work-detail{border-bottom:1px solid var(--line);flex:1;min-width:0;padding-bottom:16px;font-size:14px;line-height:20px}.work-row:last-child .work-detail,.work-row:is(a):hover .work-detail{border-color:#0000}.work-meta{color:var(--muted);justify-content:space-between;align-items:center;gap:8px;display:flex}.years{white-space:nowrap;color:var(--faint);font-variant-numeric:tabular-nums;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace}footer{color:var(--faint);text-transform:lowercase;margin-top:80px;margin-bottom:160px;font-size:14px;line-height:20px}.skip-link{background:var(--bg);z-index:1;padding:8px 12px;position:absolute;top:8px;left:8px;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.back-nav{color:var(--muted);justify-content:space-between;gap:16px;margin-bottom:48px;padding-top:40px;font-size:14px;display:flex}.back-nav a:hover{color:var(--text)}.page-title{letter-spacing:-.6px;font-size:24px;font-weight:600;line-height:32px}.page-description{color:var(--muted);margin-top:16px;line-height:25px}.page-description a{text-decoration:underline}.empty-state{color:var(--faint);margin-top:48px;font-size:14px}.post-list{margin:32px 0 0;padding:0;list-style:none}.post-list li+li{border-top:1px solid var(--line)}.post-list a{border-radius:12px;margin:0 -16px;padding:20px 16px;display:block}.post-list a:hover{background:var(--hover)}.post-list h2{font-weight:600}.post-list p{color:var(--muted);margin-top:6px;font-size:14px}.post-list time,.prose time{color:var(--faint);margin-top:10px;font-size:13px;display:block}.dev-note{color:var(--muted);border:1px dashed var(--faint);border-radius:6px;margin:32px 0;padding:12px;font-size:12px}.dev-note a{text-underline-offset:3px;text-decoration:underline}.prose{overflow-wrap:anywhere;line-height:1.75}.prose h1{letter-spacing:-1px;font-size:32px;font-weight:600;line-height:1.2}.prose header{margin-bottom:40px}.prose .article-description{color:var(--muted);margin-top:20px}.prose h2{letter-spacing:-.4px;margin-top:40px;margin-bottom:16px;font-size:22px;font-weight:600;line-height:1.4}.prose h3{margin-top:32px;margin-bottom:12px;font-size:18px;font-weight:600}.prose p,.prose ul,.prose ol{margin:20px 0}.prose a{text-underline-offset:3px;text-decoration:underline}.prose code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.85em}.prose :not(pre)>code{background:var(--icon);border-radius:4px;padding:2px 5px}.prose pre{border:1px solid var(--line);border-radius:8px;max-width:100%;margin:24px 0;padding:20px;font-size:14px;line-height:1.7;overflow-x:auto}.prose pre code{font-size:inherit}.prose blockquote{border-left:2px solid var(--faint);color:var(--muted);margin:24px 0;padding-left:20px}.prose table{border-collapse:collapse;margin:24px 0;font-size:14px;display:block;overflow-x:auto}.prose td,.prose th{text-align:left;border-bottom:1px solid var(--line);min-width:120px;padding:12px 16px 12px 0}.prose hr{border:0;border-top:1px solid var(--line);margin:32px 0}.prose img{border-radius:8px;margin:24px auto}@media (width>=768px){.shell{width:460px;margin:80px auto}.shell.wide{width:680px;max-width:680px}}@media (width<=767px){.shell{max-width:none}.prose h1{font-size:28px}.work-meta .role{min-width:0}}@media (prefers-color-scheme:dark){:root{color:#d4d4d4;--bg:#0a0a0a;--text:#d4d4d4;--muted:#a3a3a3;--faint:#737373;--line:#171717;--hover:#171717;--icon:#262626;background:#0a0a0a}.introduction p a,.social-links a{color:#a3a3a3}.work-meta{color:#737373}.astro-code,.astro-code span{color:var(--shiki-dark)!important;background-color:var(--shiki-dark-bg)!important;font-style:var(--shiki-dark-font-style)!important;font-weight:var(--shiki-dark-font-weight)!important;text-decoration:var(--shiki-dark-text-decoration)!important}}.introduction{flex-direction:column;display:flex}.introduction p a{border-bottom:1px solid}.section-heading,footer{color:#a3a3a3}
