:root{--bg: #fafafa;--text: #1a1a1a;--muted: #737373;--border: #e5e5e5;--link: #1a1a1a;--link-hover: #525252;--code-bg: #f5f5f5;--maxw: 42rem;--font-size-xs: .8125rem;--font-size-sm: .875rem;--font-size-base: 1.0625rem;--font-size-lg: 1.25rem;--font-size-xl: 1.5rem;--font-size-2xl: 2rem;--spacing-xs: .5rem;--spacing-sm: 1rem;--spacing-md: 1.5rem;--spacing-lg: 2.5rem;--spacing-xl: 4rem}@media(prefers-color-scheme:dark){:root{--bg: #0a0a0a;--text: #ededed;--muted: #a3a3a3;--border: rgba(255, 255, 255, .1);--link: #ededed;--link-hover: #d4d4d4;--code-bg: rgba(255, 255, 255, .06)}}*{box-sizing:border-box;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}html{color-scheme:light dark}body{margin:0;background:var(--bg);color:var(--text);font-family:Instrument Sans,ui-sans-serif,system-ui,-apple-system,sans-serif;font-size:var(--font-size-base);line-height:1.7;font-weight:400;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:var(--link);text-decoration:none;border-bottom:1px solid var(--border);transition:border-color .15s ease}a:hover{border-bottom-color:var(--muted)}.container{max-width:var(--maxw);padding:var(--spacing-xl) var(--spacing-md);margin:0 auto}@media(max-width:640px){.container{padding:var(--spacing-lg) var(--spacing-sm)}}header{display:flex;align-items:baseline;justify-content:space-between;gap:var(--spacing-sm)}nav{display:flex;gap:var(--spacing-md);flex-wrap:wrap;justify-content:flex-end}nav a{font-size:var(--font-size-sm);color:var(--muted);border-bottom:none;padding:.25rem 0;transition:color .15s ease}nav a:hover{color:var(--text)}hr{border:0;border-top:1px solid var(--border);margin:var(--spacing-md) 0}figure{margin:var(--spacing-lg) 0}img{max-width:100%;height:auto;display:block}.hero-figure{position:relative;min-height:200px}@media(min-width:640px){.hero-figure{min-height:280px}}.hero-skeleton{position:absolute;inset:0;background:linear-gradient(90deg,var(--code-bg) 0%,var(--border) 50%,var(--code-bg) 100%);background-size:200% 100%;animation:skeleton-shimmer 1.5s ease-in-out infinite;border-radius:4px}.hero-skeleton-hidden{opacity:0;pointer-events:none;transition:opacity .3s ease}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.hero{width:100%;max-height:500px;object-fit:contain;border-radius:4px}.hero-hidden{opacity:0}.hero-visible{opacity:1;transition:opacity .3s ease}.hero-caption{font-size:var(--font-size-xs);color:var(--muted);margin-top:var(--spacing-xs);line-height:1.5}.hero-caption a{color:var(--muted);border-bottom:1px solid var(--border)}.hero-caption a:hover{color:var(--text)}.small{font-size:var(--font-size-sm)}.muted{color:var(--muted)}.prose h1,.prose h2,.prose h3{font-weight:600;line-height:1.3;letter-spacing:-.02em}.prose h1{font-size:var(--font-size-2xl);margin-top:0;margin-bottom:var(--spacing-sm)}.prose h2{font-size:var(--font-size-xl);margin-top:var(--spacing-xl);margin-bottom:var(--spacing-sm)}.prose h3{font-size:var(--font-size-lg);margin-top:var(--spacing-lg);margin-bottom:var(--spacing-xs)}.prose p{margin:var(--spacing-sm) 0}.prose ul,.prose ol{margin:var(--spacing-sm) 0;padding-left:1.25rem}.prose li{margin:.375rem 0}.prose li::marker{color:var(--muted)}.prose blockquote{margin:var(--spacing-md) 0;padding:var(--spacing-sm) var(--spacing-md);border-left:2px solid var(--border);color:var(--muted);font-style:italic}.prose code{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Monaco,Consolas,monospace;font-size:.9em;background:var(--code-bg);padding:.15em .4em;border-radius:4px}.prose pre{overflow-x:auto;padding:var(--spacing-md);background:var(--code-bg);border-radius:6px;font-size:var(--font-size-sm)}.prose pre code{background:transparent;padding:0}.post-list{list-style:none;padding:0;margin:var(--spacing-lg) 0 0}.post-card{padding:var(--spacing-md) 0;border-bottom:1px solid var(--border)}.post-card:first-child{border-top:1px solid var(--border)}.post-card a{border-bottom:none;font-weight:500}.post-card a:hover{border-bottom:1px solid var(--border)}.post-card p{margin:var(--spacing-xs) 0 0}.tags{display:flex;flex-wrap:wrap;gap:.375rem;margin-top:var(--spacing-sm)}.tag{font-size:var(--font-size-xs);padding:.125rem .5rem;background:var(--code-bg);border:none;border-radius:3px;color:var(--muted);text-decoration:none;display:inline-block;transition:all .15s ease}.tag:hover{color:var(--text)}footer{margin-top:var(--spacing-xl);padding-top:var(--spacing-md);border-top:1px solid var(--border)}.footer-links{display:flex;gap:var(--spacing-md);justify-content:flex-start}.footer-links a{font-size:var(--font-size-sm);color:var(--muted);border-bottom:none;transition:color .15s ease}.footer-links a:hover{color:var(--text)}.writing-section{margin-top:var(--spacing-xl);padding-top:var(--spacing-lg);border-top:1px solid var(--border)}.writing-section h2{font-size:var(--font-size-sm);font-weight:500;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:0 0 var(--spacing-md) 0}.writing-list{list-style:none;padding:0;margin:0}.writing-list li{margin:var(--spacing-xs) 0;line-height:1.5}.writing-list a{font-weight:500}.writing-section>p{margin-top:var(--spacing-md)}.writing-section>p a{font-size:var(--font-size-sm);color:var(--muted)}.writing-section>p a:hover{color:var(--text)}.back-link{display:inline-block;font-size:var(--font-size-sm);color:var(--muted);border-bottom:none;margin-bottom:var(--spacing-md)}.back-link:hover{color:var(--text)}.post-nav{display:flex;justify-content:space-between;gap:var(--spacing-md);margin-top:var(--spacing-xl);padding-top:var(--spacing-md);border-top:1px solid var(--border)}.post-nav-item{flex:1;min-width:0}.post-nav-next{text-align:right}.post-nav-label{display:block;font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:.25rem}.post-nav-item a{font-weight:500}.skip-link{position:absolute;left:-999px;top:auto;width:1px;height:1px;overflow:hidden}.skip-link:focus{position:static;width:auto;height:auto;padding:var(--spacing-xs);border:1px solid var(--border);border-radius:4px}.comments{margin-top:var(--spacing-xl);padding-top:var(--spacing-lg);border-top:1px solid var(--border)}.comments h2{font-size:var(--font-size-sm);font-weight:500;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:0 0 var(--spacing-md) 0}.utterances{max-width:100%}.brand[data-astro-cid-37fxchfa]{font-size:1.35rem;font-weight:600;letter-spacing:-.01em;border-bottom:none;transition:opacity .15s ease}.brand[data-astro-cid-37fxchfa]:hover{opacity:.7}.brandline[data-astro-cid-37fxchfa]{margin-top:.25rem;font-size:var(--font-size-xs);letter-spacing:.01em}.brandline[data-astro-cid-37fxchfa] a[data-astro-cid-37fxchfa]{color:var(--muted);border-bottom:none}.brandline[data-astro-cid-37fxchfa] a[data-astro-cid-37fxchfa]:hover{color:var(--text)}@media(max-width:520px){header[data-astro-cid-37fxchfa]{flex-direction:column;align-items:flex-start;gap:.75rem}nav[data-astro-cid-37fxchfa]{justify-content:flex-start}}
