.blog{--ink:#1d1d1d;--muted:#747474;--underline:#0066ff59;--underline-hover:#3b82f6bf;min-height:100vh;color:var(--ink);-webkit-font-smoothing:antialiased;background:#fff;font:18px/1.65 -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica Neue,Arial,sans-serif}.blog a{color:inherit;text-decoration:none}.blog a:focus-visible{outline:2px solid var(--underline-hover);outline-offset:3px}.blog-page{grid-template-columns:160px minmax(0,660px);column-gap:clamp(24px,6vw,64px);max-width:1000px;margin:0 auto;padding:56px clamp(20px,4vw,40px) 64px;display:grid}.blog-sidebar{align-self:start;position:sticky;top:56px}.blog-name{letter-spacing:-.01em;font-weight:600}.blog-nav{flex-direction:column;align-items:flex-start;gap:2px;margin-top:10px;font-size:16px;display:flex}.blog-nav a[aria-current=page]{font-weight:600}@media (max-width:760px){.blog-page{grid-template-columns:minmax(0,1fr);padding-top:28px}.blog-sidebar{align-items:baseline;gap:20px;margin-bottom:36px;display:flex;position:static}.blog-nav{flex-direction:row;margin-top:0}}.blog-prose a,.blog-back,.blog-list a:hover{background-image:radial-gradient(circle at right center, var(--underline) 1.4px, transparent 1.6px), linear-gradient(var(--underline), var(--underline)), radial-gradient(circle at left center, var(--underline) 1.4px, transparent 1.6px);-webkit-box-decoration-break:clone;box-decoration-break:clone;background-position:0 100%,bottom,100% 100%;background-repeat:no-repeat;background-size:1.5px 3px,calc(100% - 3px) 3px,1.5px 3px;padding-bottom:2px}.blog-prose a:hover,.blog-back:hover{--underline:var(--underline-hover)}.blog-section+.blog-section{margin-top:40px}.blog-section-title a:hover{text-underline-offset:4px;text-decoration:underline}.blog-section-title{margin:0 0 12px;font-size:16px;font-weight:800}.blog-list{margin:0;padding:0;list-style:none}.blog-list li{justify-content:space-between;align-items:baseline;gap:24px;padding:3px 0;display:flex}.blog-list a{font-weight:500}.blog-date{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.blog-list .blog-date{font-size:16px}.blog-projects{margin:0;padding:0;list-style:none}.blog-projects li+li{margin-top:28px}.blog-project-image{max-width:100%;height:auto;margin-bottom:10px;display:block}.blog-project-head{justify-content:space-between;align-items:baseline;gap:24px;display:flex}.blog-project-head a{font-weight:500}.blog-project-head a:hover{background-image:radial-gradient(circle at right center, var(--underline) 1.4px, transparent 1.6px), linear-gradient(var(--underline), var(--underline)), radial-gradient(circle at left center, var(--underline) 1.4px, transparent 1.6px);background-position:0 100%,bottom,100% 100%;background-repeat:no-repeat;background-size:1.5px 3px,calc(100% - 3px) 3px,1.5px 3px;padding-bottom:2px}.blog-project-head .blog-date{font-size:16px}.blog-project-summary{color:#555;margin:4px 0 0}.blog-back{margin-bottom:20px;font-size:16px;display:inline-block}.blog-post-title{letter-spacing:-.02em;margin:0 0 10px;font-size:34px;font-weight:600;line-height:1.2}.blog-post-header .blog-date{margin-bottom:32px;font-size:16px;display:block}.blog-prose article>*+*{margin-top:18px}.blog-prose h2{margin-top:36px;font-size:1.4em;font-weight:600;line-height:1.3}.blog-prose h3{margin-top:28px;font-size:1.15em;font-weight:600;line-height:1.35}.blog-prose strong{font-weight:600}.blog-prose em{font-style:italic}.blog-prose ul,.blog-prose ol{padding-left:1.4em}.blog-prose ul{list-style:outside}.blog-prose ol{list-style:decimal}.blog-prose li+li{margin-top:6px}.blog-prose blockquote{color:#555;border-left:3px solid #e4e4e4;margin-left:0;padding-left:18px}.blog-prose img,.blog-prose video{max-width:100%;height:auto;display:block}.blog-prose code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.88em}.blog-prose pre{background:#f6f6f6;padding:14px 16px;overflow-x:auto}.blog-prose hr{border:0;border-top:1px solid #e4e4e4;margin:32px 0}
