@font-face{font-family:Inter;font-style:normal;font-weight:400 700;font-display:block;src:url(/fonts/inter-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:italic;font-weight:400 500;font-display:block;src:url(/fonts/inter-latin-italic.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400 500;font-display:block;src:url(/fonts/jetbrains-mono-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "Menlo", monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1.125rem;--text-lg: 1.333rem;--text-xl: 1.5rem;--text-2xl: 1.875rem;--text-3xl: 2.369rem;--leading: 1.6;--leading-tight: 1.25;--measure: 42rem;--ink: #2c2825;--ink-muted: #7a7470;--ink-faint: #b0aaa5;--surface: #faf8f5;--surface-alt: #f1eeea;--accent: #a65d3f;--rule: #e0dbd6;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 2rem;--space-xl: 3rem;--space-2xl: 5rem}[data-theme=dark]{--ink: #e0dbd6;--ink-muted: #9a9490;--ink-faint: #5e5955;--surface: #1c1a18;--surface-alt: #262321;--accent: #d4845f;--rule: #3a3633}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:100%;-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{font-family:var(--font-body);font-size:var(--text-base);line-height:var(--leading);color:var(--ink);background:var(--surface);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.site{max-width:calc(var(--measure) + 16rem);margin:0 auto;padding:var(--space-lg) var(--space-lg) var(--space-2xl)}.site-header{display:flex;justify-content:space-between;align-items:baseline;padding-bottom:var(--space-lg);margin-bottom:var(--space-xl);border-bottom:1px solid var(--rule)}.site-name{font-size:var(--text-base);font-weight:400;font-style:italic;letter-spacing:.01em}.site-name a{color:var(--ink);text-decoration:none}.site-nav{display:flex;align-items:center;gap:var(--space-md);list-style:none;font-size:var(--text-sm)}.site-nav a{color:var(--ink-muted);text-decoration:none;transition:color .15s ease}.site-nav a:hover,.site-nav a[aria-current=page]{color:var(--ink)}.theme-toggle{background:none;border:none;cursor:pointer;padding:2px;display:flex;align-items:center}.theme-toggle svg{display:block}.prose{max-width:100%}.prose>*+*{margin-top:var(--space-md)}.prose h2{font-size:var(--text-xl);font-weight:600;line-height:var(--leading-tight);margin-top:var(--space-xl)}.prose h3{font-size:var(--text-lg);font-weight:600;line-height:var(--leading-tight);margin-top:var(--space-lg)}.prose h4{font-size:var(--text-base);font-weight:600;line-height:var(--leading-tight);margin-top:var(--space-lg)}.prose a{color:var(--accent);text-decoration-thickness:1px;text-underline-offset:2px;transition:color .15s ease}.prose a:hover{color:var(--ink)}.prose blockquote{border-left:2px solid var(--rule);padding-left:var(--space-md);color:var(--ink-muted);font-style:italic}.prose .twitter-tweet{margin-left:auto!important;margin-right:auto!important}.prose .callout{border-left:3px solid var(--ink-faint);padding:var(--space-md) var(--space-md) var(--space-md) var(--space-lg);border-radius:0 4px 4px 0;font-size:var(--text-sm);color:var(--ink-muted);line-height:1.6;position:relative}.prose .callout:before{position:absolute;left:var(--space-sm);top:var(--space-md);font-size:1rem;line-height:1}.prose .callout p+p{margin-top:var(--space-sm)}.prose .callout-note{border-left-color:#0d6efd}.prose .callout-note:before{content:"ℹ";color:#0d6efd}.prose .callout-important{border-left-color:#d9534f}.prose .callout-important:before{content:"❗";color:#d9534f}.prose .callout-warning{border-left-color:#e9a321}.prose .callout-warning:before{content:"⚠";color:#e9a321}.prose .callout-tip{border-left-color:#198754}.prose .callout-tip:before{content:"💡";color:#198754}.prose .callout-caution{border-left-color:#fd7e14}.prose .callout-caution:before{content:"⚠";color:#fd7e14}.prose code{font-family:var(--font-mono);font-size:.85em;background:var(--surface-alt);padding:.1em .3em;border-radius:3px}.prose pre{background:var(--surface-alt);padding:var(--space-md);border-radius:4px;overflow-x:auto;font-size:var(--text-sm);line-height:1.5}.prose pre code{background:none;padding:0}.copy-btn{position:absolute;top:var(--space-xs);right:var(--space-xs);background:none;border:none;color:var(--ink-faint);cursor:pointer;padding:4px;border-radius:3px;opacity:0;transition:opacity .15s ease,color .15s ease}pre:hover .copy-btn{opacity:1}.copy-btn:hover{color:var(--ink)}.prose img{display:block;max-width:100%;height:auto;margin-left:auto;margin-right:auto;border-radius:4px}.poem{text-align:center;font-style:italic;color:var(--ink-muted);line-height:2;padding:var(--space-lg) 0}.prose hr{border:none;border-top:1px solid var(--rule);margin:var(--space-xl) 0}.prose ul,.prose ol{padding-left:1.4em}.prose li+li{margin-top:var(--space-xs)}.article-header{margin-bottom:var(--space-xl)}.article-title{font-size:var(--text-2xl);font-weight:700;line-height:var(--leading-tight)}.article-meta{margin-top:var(--space-sm);font-size:var(--text-sm);color:var(--ink-muted);font-style:italic}.article-description{margin-top:var(--space-sm);color:var(--ink-muted);font-size:var(--text-base)}.article-confidence{margin-top:var(--space-xs);font-size:var(--text-xs);color:var(--ink-faint);font-style:italic}.post-legend{display:flex;gap:var(--space-md);margin-bottom:var(--space-lg);font-size:var(--text-xs);color:var(--ink-faint)}.post-legend-item{display:inline-flex;align-items:center;gap:4px}.post-list{list-style:none}.post-list li+li{border-top:1px solid var(--rule)}.post-link{display:flex;align-items:center;gap:var(--space-sm);text-decoration:none;color:var(--ink);padding:var(--space-xs) 0;transition:color .15s ease}.post-link:hover{color:var(--accent)}.post-date{font-size:var(--text-xs);color:var(--ink-faint);font-variant-numeric:tabular-nums;flex-shrink:0;width:7em}.post-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:14px}.post-title{font-size:var(--text-base);font-weight:500}.landing{padding-top:var(--space-lg)}.landing p{font-size:var(--text-lg);color:var(--ink-muted);line-height:var(--leading)}.landing p+p{margin-top:var(--space-md)}.landing strong{color:var(--ink)}.landing a{color:var(--accent);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px}.landing a:hover{color:var(--ink)}.landing-quote{font-style:italic;color:var(--ink);padding-left:var(--space-md);border-left:2px solid var(--rule)}.site-footer{margin-top:var(--space-2xl);padding-top:var(--space-lg);border-top:1px solid var(--rule);font-size:var(--text-xs);color:var(--ink-faint);display:flex;justify-content:space-between;align-items:baseline}.site-footer a{color:var(--ink-muted);text-decoration:none}.site-footer a:hover{color:var(--ink)}.page-title{font-size:var(--text-2xl);font-weight:700;line-height:var(--leading-tight);margin-bottom:var(--space-xl)}.about-header{display:flex;align-items:center;gap:var(--space-lg);margin-bottom:var(--space-lg)}.about-photo{width:120px;height:120px;border-radius:50%;object-fit:cover;flex-shrink:0}.about-name{font-size:var(--text-2xl);font-weight:700;line-height:var(--leading-tight)}.about-tagline{font-size:var(--text-sm);color:var(--ink-muted);font-style:italic;margin-top:2px}.about-meta{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:var(--space-xs);font-size:var(--text-xs);color:var(--ink-faint)}.about-meta a{color:var(--accent);text-decoration:none}.about-meta a:hover{color:var(--ink)}.resume-download svg{vertical-align:-1px}.cv-entry{margin-bottom:var(--space-md)}.cv-row{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-md)}.cv-title{font-weight:600;font-size:var(--text-sm)}.cv-date{font-size:var(--text-xs);color:var(--ink-faint);white-space:nowrap;flex-shrink:0}.cv-org{font-size:var(--text-xs);color:var(--accent);margin-top:1px}.cv-desc{font-size:var(--text-xs);color:var(--ink-muted);margin-top:2px}.cv-desc a{color:var(--accent);text-decoration:none}.cv-desc a:hover{color:var(--ink)}.about-footer-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-lg)}.about-footer-grid h3{font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint);margin-bottom:var(--space-xs)}.about-footer-grid p{font-size:var(--text-sm);color:var(--ink-muted)}.talks-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.talks-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.talks-table th{text-align:left;font-weight:500;color:var(--ink-faint);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;padding:var(--space-sm) var(--space-sm) var(--space-sm) 0;border-bottom:1px solid var(--rule)}.talks-table td{padding:var(--space-sm) var(--space-sm) var(--space-sm) 0;border-bottom:1px solid var(--rule);vertical-align:top;color:var(--ink)}.talks-table a{color:var(--accent);text-decoration:none;transition:color .15s ease}.talk-speakers{display:block;font-size:var(--text-xs);color:var(--ink-faint);font-style:italic;margin-top:2px}.talks-table a:hover{color:var(--ink)}@media(max-width:640px){:root{--text-base: 1.0625rem;--text-2xl: 1.75rem;--text-3xl: 2rem}.site{padding:var(--space-md) var(--space-md) var(--space-xl)}.site-header{gap:var(--space-sm)}.site-footer{flex-direction:column;gap:var(--space-xs)}.about-header{flex-direction:column;text-align:center}.about-meta{justify-content:center}.cv-row{flex-direction:column;gap:0}.about-footer-grid{grid-template-columns:1fr}.index-link{flex-direction:column;gap:0}}
