:root{--bg:#fff;--text:#2c2c2c;--text-soft:#5c5c5c;--text-faint:#888;--link:#2c2c2c;--link-hover:#000;--rule:#e8e8e8;--column:38rem;--font-body:Georgia, "Times New Roman", Times, serif;--font-ui:"Helvetica Neue", Helvetica, Arial, sans-serif}*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:1.125rem;line-height:1.75}a{color:var(--link);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.12em}a:hover{color:var(--link-hover)}.site{max-width:var(--column);margin:0 auto;padding:3rem 1.5rem 4rem}.masthead{text-align:center;margin-bottom:3rem;padding-bottom:2rem;border-bottom:1px solid var(--rule)}.site-title{margin:0;font-family:var(--font-ui);font-size:1.75rem;font-weight:700;letter-spacing:-.02em;line-height:1.2}.site-title a{color:var(--text);text-decoration:none}.site-title a:hover{color:var(--link-hover)}.site-tagline{margin:.65rem 0 0;font-family:var(--font-body);font-size:1.05rem;font-style:italic;color:var(--text-soft);line-height:1.5}.site-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:.35rem 1.25rem;margin-top:1.35rem;font-family:var(--font-ui);font-size:.8125rem;text-transform:uppercase;letter-spacing:.08em}.site-nav a{color:var(--text-soft);text-decoration:none}.site-nav a:hover,.site-nav a[aria-current=page]{color:var(--text);text-decoration:underline}.section-label,.page-title{font-family:var(--font-ui);font-size:.75rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--text-faint);margin:0 0 1.5rem}.page-head{margin-bottom:2rem}.page-title{font-size:1.75rem;letter-spacing:-.02em;text-transform:none;color:var(--text);font-weight:700;line-height:1.25}.page-lead{margin:.75rem 0 0;color:var(--text-soft);font-size:1.05rem}.post-index+.post-index{margin-top:3rem;padding-top:2.5rem;border-top:1px solid var(--rule)}.post-list{list-style:none;margin:0;padding:0}.post-list-item+.post-list-item{margin-top:2.25rem;padding-top:2.25rem;border-top:1px solid var(--rule)}.post-list-item:first-child{margin-top:0;padding-top:0;border-top:none}.post-list-title{margin:0;font-family:var(--font-ui);font-size:1.35rem;font-weight:700;line-height:1.35;letter-spacing:-.01em}.post-list-title a{text-decoration:none;color:var(--text)}.post-list-title a:hover{text-decoration:underline;color:var(--link-hover)}.post-list-meta,.entry-meta{margin:.5rem 0 0;font-family:var(--font-ui);font-size:.8125rem;color:var(--text-faint)}.post-byline::before{content:" · "}.post-list-excerpt,.entry-lead{margin:.65rem 0 0;color:var(--text-soft);font-size:1.05rem;line-height:1.65}.empty{color:var(--text-soft);font-style:italic}.intro{margin-bottom:2.5rem;color:var(--text-soft)}.entry-header{margin-bottom:2rem;text-align:center}.entry-title{margin:0;font-family:var(--font-ui);font-size:clamp(1.5rem,4vw,1.875rem);font-weight:700;line-height:1.3;letter-spacing:-.02em}.entry-content{margin-top:0}.entry-back{margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--rule);font-family:var(--font-ui);font-size:.875rem}.entry-back a{text-decoration:none}.entry-back a:hover{text-decoration:underline}.prose>*+*{margin-top:1.25em}.prose h2,.prose h3,.prose h4{font-family:var(--font-ui);font-weight:700;line-height:1.35;color:var(--text);letter-spacing:-.01em}.prose h2{font-size:1.25rem;margin-top:2.25em}.prose h3{font-size:1.125rem;margin-top:2em}.prose p{text-align:left}.prose blockquote{margin:1.5em 0;padding-left:1.25rem;border-left:3px solid var(--rule);color:var(--text-soft);font-style:italic}.prose code{font-family:ui-monospace,Menlo,Monaco,Consolas,monospace;font-size:.88em;background:#f4f4f4;padding:.12em .35em}.prose pre{overflow-x:auto;padding:1rem 1.15rem;background:#f8f8f8;border:1px solid var(--rule);font-size:.9rem;line-height:1.55}.prose pre code{background:0 0;padding:0}.project-links{margin:.5rem 0 0;font-family:var(--font-ui);font-size:.875rem}.project-links a+a{margin-left:1rem}.site-footer{margin-top:4rem;padding-top:2rem;border-top:1px solid var(--rule);text-align:center;font-family:var(--font-ui);font-size:.75rem;color:var(--text-faint)}.site-footer p{margin:0}@media(max-width:480px){.site{padding-top:2rem}.masthead{margin-bottom:2rem}}