*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--color-bg: #f9f7f4;--color-surface: #f1efec;--color-surface-alt: #e8e6e2;--color-border: #dcdad6;--color-border-light: #e6e4e0;--color-text: #1a1a1a;--color-text-secondary: #4a4a4a;--color-text-muted: #6b6b6b;--color-text-subtle: #a0a0a0;--color-accent: #3d3d3d;--color-accent-hover: #1a1a1a;--color-link: #4a4a4a;--color-link-hover: #1a1a1a;--font-ui: "IBM Plex Sans", system-ui, -apple-system, sans-serif;--font-prose: "Bitter", Georgia, "Times New Roman", serif;--font-heading: "EB Garamond", Georgia, "Times New Roman", serif;--font-mono: "IBM Plex Mono", "SFMono-Regular", Consolas, monospace;--text-xs: .75rem;--text-sm: .8125rem;--text-base: .9375rem;--text-md: 1rem;--text-lg: 1.125rem;--text-xl: 1.375rem;--text-2xl: 1.75rem;--text-3xl: 2.25rem;--leading-tight: 1.25;--leading-snug: 1.4;--leading-normal: 1.7;--leading-loose: 1.85;--space-0: 0;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--space-24: 6rem;--content-width: 720px;--sidebar-width: 220px;--sidenote-width: 220px;--sidebar-gap: 2.5rem;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 12px;--radius-full: 9999px;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .04);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .06), 0 1px 2px rgba(0, 0, 0, .04);--shadow-md: 0 4px 6px rgba(0, 0, 0, .05), 0 2px 4px rgba(0, 0, 0, .04);--transition-fast: .12s ease;--transition-normal: .2s ease;--transition-slow: .32s ease;--code-bg: #fdfcfb;--code-surface: var(--color-surface);--code-border: var(--color-border);--code-text: var(--color-text);--code-muted: var(--color-text-muted);--code-success: #1a7f37}html{height:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{font-family:var(--font-ui);font-size:var(--text-base);color:var(--color-text);background-color:var(--color-bg);line-height:var(--leading-normal);min-height:100%;display:flex;flex-direction:column;padding:var(--space-2) var(--space-6)}@media(max-width:640px){body{padding:var(--space-2) var(--space-4)}}a{color:var(--color-link);text-decoration-color:var(--color-text-subtle);text-underline-offset:.15em;transition:color var(--transition-fast),text-decoration-color var(--transition-fast)}a:hover{color:var(--color-link-hover);text-decoration-color:var(--color-text-muted)}nav{display:flex;gap:var(--space-6);max-width:var(--content-width);margin-left:auto;margin-right:auto}nav a{font-weight:400}.post-list-wrapper{max-width:var(--content-width);margin:0 auto}.post-list{list-style:none;padding:0;display:grid;grid-template-columns:max-content 1fr;column-gap:var(--space-6);row-gap:var(--space-4);align-items:baseline}.post-list li{display:contents}.post-list .post-date{color:var(--color-text-muted);font-size:var(--text-sm);font-variant-numeric:tabular-nums;white-space:nowrap;padding-top:.1em}.post-list .post-info{display:flex;flex-direction:column;gap:var(--space-1)}.post-list .post-info a{text-decoration:none;color:var(--color-text);transition:color var(--transition-fast)}.post-list .post-info a:hover{color:var(--color-text-secondary)}.post-list .post-authors{color:var(--color-text-muted);font-size:var(--text-sm);line-height:var(--leading-snug)}@media(max-width:480px){.post-list{grid-template-columns:1fr;row-gap:var(--space-2)}.post-list li{display:flex;flex-direction:column;gap:var(--space-1);padding-bottom:var(--space-3);border-bottom:1px solid var(--color-border-light)}.post-list li:last-child{border-bottom:none}}article .post-body{font-family:var(--font-prose);font-size:var(--text-md);font-weight:400;font-optical-sizing:auto;line-height:var(--leading-normal)}article .post-body strong,article .post-body b{font-weight:600}article .post-body h1,article .post-body h2,article .post-body h3,article .post-body h4{font-family:var(--font-heading);font-weight:500;line-height:var(--leading-tight);color:var(--color-text)}article .post-body h2{font-size:var(--text-xl);margin-top:var(--space-10);margin-bottom:var(--space-4)}article .post-body h3{font-size:var(--text-lg);margin-top:var(--space-8);margin-bottom:var(--space-3)}article .post-body h4{font-size:var(--text-md);margin-top:var(--space-6);margin-bottom:var(--space-2)}article .post-body p{margin-bottom:var(--space-4)}article .post-body ul,article .post-body ol{margin-bottom:var(--space-4);padding-left:var(--space-6)}article .post-body li{margin-bottom:var(--space-2)}article .post-body li>ul,article .post-body li>ol{margin-top:var(--space-2);margin-bottom:var(--space-2)}article .post-body blockquote{border-left:3px solid var(--color-border);padding-left:var(--space-5);margin:var(--space-6) 0;color:var(--color-text-secondary);font-style:italic}article .post-body blockquote p:last-child{margin-bottom:0}article .post-body hr{border:none;border-top:1px solid var(--color-border);margin:var(--space-8) 0}article .post-body a{color:var(--color-link);text-decoration:underline;text-decoration-color:var(--color-text-subtle);text-underline-offset:.15em;transition:color var(--transition-fast),text-decoration-color var(--transition-fast)}article .post-body a:hover{color:var(--color-link-hover);text-decoration-color:var(--color-text-muted)}article h1{font-family:var(--font-heading);font-size:var(--text-2xl);font-weight:500;line-height:var(--leading-tight)}article .meta{color:var(--color-text-muted);font-size:var(--text-sm);margin-bottom:var(--space-8)}code,pre,kbd,samp{font-family:var(--font-mono);font-weight:400}article .post-body code{font-size:.88em;background:var(--color-surface);padding:.15em .35em;border-radius:var(--radius-sm);border:1px solid var(--color-border-light)}article .post-body pre code{background:none;padding:0;border-radius:0;border:none;font-size:inherit}article .post-body pre{margin:0;padding:var(--space-4) var(--space-5);overflow-x:auto;border-radius:var(--radius-md);background:var(--code-bg)!important;font-size:var(--text-sm);line-height:var(--leading-normal)}article .post-body img,article .post-body picture,article .post-body svg{max-width:100%;height:auto;display:block;margin-left:auto;margin-right:auto}article .post-body video,article .post-body audio,article .post-body iframe{max-width:100%;width:100%;height:auto;display:block;margin-left:auto;margin-right:auto}article .post-body figure{max-width:100%;margin:0}article .post-body img,article .post-body figure{margin-top:var(--space-5);margin-bottom:var(--space-5);border-radius:var(--radius-md)}.embed-responsive{position:relative;width:100%;padding-bottom:56.25%;height:0;border-radius:var(--radius-md);overflow:hidden}.embed-responsive iframe,.embed-responsive video{position:absolute;top:0;left:0;width:100%;height:100%}::selection{background:#00000014;color:inherit}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-subtle)}nav.svelte-12qhfyh{width:100%;padding:var(--space-5) 0;margin-bottom:var(--space-10)}.nav-inner.svelte-12qhfyh{display:flex;justify-content:space-between;align-items:center;max-width:var(--content-width);margin:0 auto;flex:1}nav.svelte-12qhfyh a:where(.svelte-12qhfyh){color:var(--color-text-muted);text-decoration:none;transition:color var(--transition-fast)}nav.svelte-12qhfyh a:where(.svelte-12qhfyh):hover{color:var(--color-text)}.logo.svelte-12qhfyh{font-weight:600;font-size:var(--text-md);color:var(--color-text);letter-spacing:-.01em}.logo.svelte-12qhfyh:hover{color:var(--color-text-secondary)}.nav-links.svelte-12qhfyh{display:flex;align-items:center;gap:var(--space-6)}.nav-links.svelte-12qhfyh a:where(.svelte-12qhfyh){font-size:var(--text-sm);font-weight:400;position:relative}.nav-links.svelte-12qhfyh a:where(.svelte-12qhfyh):hover{color:var(--color-text)}main.svelte-12qhfyh{flex:1;width:100%}footer.svelte-12qhfyh{margin-top:var(--space-16);padding:var(--space-8) 0 var(--space-6)}.footer-inner.svelte-12qhfyh{max-width:var(--content-width);margin:0 auto;text-align:center}footer.svelte-12qhfyh p:where(.svelte-12qhfyh){color:var(--color-text-subtle);font-size:var(--text-sm);line-height:var(--leading-snug)}@media(max-width:720px){nav.svelte-12qhfyh{padding:var(--space-3) 0;margin-bottom:var(--space-6)}.nav-links.svelte-12qhfyh{gap:var(--space-4)}footer.svelte-12qhfyh{margin-top:var(--space-12)}}
