@font-face{font-family:Manrope;font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/manrope-regular.ttf') format('truetype')}
@font-face{font-family:Manrope;font-style:normal;font-weight:500;font-display:swap;src:url('/fonts/manrope-medium.ttf') format('truetype')}
@font-face{font-family:Manrope;font-style:normal;font-weight:600;font-display:swap;src:url('/fonts/manrope-semibold.ttf') format('truetype')}
:root{color-scheme:light;--paper:#fff;--blue:#244edb;--ink:#24315a;--muted:#69738d;--line:#dce2f3;--motion:cubic-bezier(.32,.72,0,1);--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-6:1.5rem;--space-8:2rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;font-family:Manrope,sans-serif;font-size:16px;font-synthesis:none}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:var(--space-12)}
body{margin:0;background:var(--paper);color:var(--ink);font-size:1rem;line-height:1.5rem;-webkit-font-smoothing:antialiased}
::selection{background:var(--line);color:var(--blue)}
a{color:var(--blue);text-decoration:none;text-underline-offset:4px;text-decoration-thickness:1px;transition:color 200ms var(--motion),opacity 200ms var(--motion),transform 200ms var(--motion)}
a:hover{text-decoration:underline}
a:active{opacity:.65;transform:translateY(1px)}
a:focus-visible{outline:2px solid var(--blue);outline-offset:4px;border-radius:2px}
p{margin:0;text-wrap:pretty}
h1,h2,h3{margin:0;text-wrap:balance}
.skip{position:fixed;z-index:2;top:var(--space-4);left:var(--space-4);padding:var(--space-2) var(--space-3);background:var(--paper);transform:translateY(-5rem)}
.skip:focus{transform:none}
.site{width:min(100% - var(--space-12),48rem);margin-inline:auto;padding-top:var(--space-12)}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);margin-bottom:var(--space-20)}
.wordmark{font-size:1.25rem;line-height:1.75rem;font-weight:600;letter-spacing:-.04em}
nav{display:flex;flex-wrap:wrap;gap:var(--space-6)}
nav a{display:inline-block;color:var(--muted);font-size:.875rem;line-height:1.25rem}
nav a[aria-current],nav a:hover{color:var(--blue)}
nav a[aria-current]{text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:8px}
#about{max-width:42.5rem;margin-bottom:var(--space-20)}
h1{width:fit-content;max-width:100%;padding-bottom:.15em;font-size:2.25rem;line-height:2.5rem;font-weight:600;letter-spacing:-.04em;color:#000;background:linear-gradient(to right,#000,#666);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:var(--space-4)}
.lead{font-size:1.125rem;line-height:1.75rem}
.bio{margin-top:var(--space-4);color:var(--muted)}
.index-section{display:grid;grid-template-columns:6rem minmax(0,1fr);gap:var(--space-8);margin-bottom:var(--space-16)}
h2{padding-top:var(--space-1);font-size:.875rem;line-height:1.25rem;font-weight:500;color:var(--muted)}
.entries{display:grid;gap:var(--space-8)}
.entry{min-width:0}
.entry-summary{margin-top:var(--space-3)}
h3{font-size:1.125rem;line-height:1.75rem;font-weight:500}
h3 a{display:inline-block}
.meta{color:var(--muted);font-size:.875rem;line-height:1.25rem;margin-top:var(--space-2)}
.entry-meta{display:flex;flex-wrap:wrap;column-gap:var(--space-4);row-gap:var(--space-2);align-items:baseline}
.recording{display:inline-block;font-size:.875rem;line-height:1.25rem;text-decoration:underline;text-decoration-color:var(--line)}
.social-links{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:var(--space-6);row-gap:var(--space-3)}
.social-links a{display:inline-block;font-size:1rem;line-height:1.5rem}
footer{display:flex;justify-content:space-between;gap:var(--space-4);margin-top:var(--space-20);padding-block:var(--space-6) var(--space-12);border-top:1px solid var(--line);font-size:.75rem;line-height:1rem;color:var(--muted)}
footer a{color:var(--muted)}
.footer-links{display:flex;gap:var(--space-4);flex-shrink:0}
.page-heading{margin-bottom:var(--space-12)}
.empty-state{color:var(--muted)}
.post{max-width:42.5rem;margin-inline:auto}
.post-heading{margin-bottom:var(--space-12)}
.back-link{display:inline-block;font-size:.875rem;line-height:1.25rem;margin-bottom:var(--space-8)}
.draft-notice{color:var(--blue);font-size:.875rem;line-height:1.25rem;margin-bottom:var(--space-4)}
.prose{line-height:1.75rem;overflow-wrap:anywhere}
.prose>*+*{margin-top:var(--space-6)}
.prose h2,.prose h3,.prose h4{padding:0;color:var(--ink);font-weight:600;margin-top:var(--space-12);margin-bottom:var(--space-4);scroll-margin-top:var(--space-8)}
.prose h2{font-size:1.5rem;line-height:2rem}
.prose h3{font-size:1.125rem;line-height:1.75rem}
.prose h4{font-size:1rem;line-height:1.5rem}
.prose a{text-decoration:underline;text-decoration-color:var(--line)}
.prose a:hover{text-decoration-color:var(--blue)}
.prose strong{font-weight:600}
.prose em{font-style:normal;text-decoration:underline;text-decoration-color:var(--line)}
.prose ul,.prose ol{padding-left:var(--space-6)}
.prose li+li{margin-top:var(--space-2)}
.prose li>p{margin-block:var(--space-2)}
.prose blockquote{margin-inline:0;padding-left:var(--space-6);border-left:2px solid var(--blue);color:var(--muted)}
.prose img,.prose video{display:block;max-width:100%;height:auto;margin-block:var(--space-8)}
.prose code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.875em;background:#f3f5fb;border-radius:3px;padding:.125rem .25rem}
.prose pre{padding:var(--space-6);border:1px solid var(--line);overflow-x:auto;font-size:.875rem;line-height:1.5rem;tab-size:2}
.prose pre code{padding:0;background:none;border-radius:0;font-size:inherit}
.prose table{display:block;max-width:100%;overflow-x:auto;border-collapse:collapse;font-size:.875rem;line-height:1.5rem}
.prose th,.prose td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--line);text-align:left;min-width:7rem}
.prose th{font-weight:600}
.prose hr{border:0;border-top:1px solid var(--line);margin-block:var(--space-12)}
.topbar,#about{animation:arrive 800ms var(--motion) both}
#about{animation-delay:100ms}
.will-reveal{opacity:0;transform:translateY(1rem);transition:opacity 800ms var(--motion),transform 800ms var(--motion)}
.will-reveal.is-visible{opacity:1;transform:none}
@keyframes arrive{from{opacity:0;transform:translateY(1rem)}to{opacity:1;transform:none}}
@media(max-width:640px){
 html{scroll-padding-top:var(--space-6)}
 .site{padding-top:var(--space-8)}
 .topbar{flex-wrap:wrap;row-gap:var(--space-4);margin-bottom:var(--space-12)}
 nav{gap:var(--space-4)}
 h1{font-size:1.875rem;line-height:2.25rem}
 .lead{font-size:1rem;line-height:1.5rem}
 #about{margin-bottom:var(--space-12)}
 .index-section{grid-template-columns:minmax(0,1fr);gap:var(--space-6);margin-bottom:var(--space-12)}
 h2{padding-top:0}
 .entries{gap:var(--space-6)}
 h3{font-size:1rem;line-height:1.5rem}
 footer{flex-wrap:wrap;margin-top:var(--space-12);padding-bottom:var(--space-8)}
 .post-heading{margin-bottom:var(--space-8)}
 .prose pre{padding:var(--space-4)}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.will-reveal{opacity:1;transform:none}}
@media print{.topbar,footer,.skip{display:none}.site{width:100%;padding:0}.will-reveal{opacity:1;transform:none}h1{-webkit-text-fill-color:var(--ink);background:none}}
