:root{--font-sans:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--font-serif:"Iowan Old Style","Palatino Linotype",Palatino,Charter,Georgia,serif;--font-mono:ui-monospace,"SF Mono","JetBrains Mono",Menlo,Consolas,monospace;--text-xs:.8125rem;--text-sm:.875rem;--text-base:1.0625rem;--text-lg:1.25rem;--text-xl:1.5rem;--text-2xl:2rem;--text-3xl:clamp(2.25rem,5vw + 1rem,3.5rem);--leading-tight:1.2;--leading-normal:1.65;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4.5rem;--width-page:68rem;--width-prose:42rem;--gutter:clamp(1rem,4vw,2rem);--radius:.5rem;--radius-lg:.875rem;--color-bg:#fbfaf8;--color-surface:#fff;--color-text:#1c1b19;--color-muted:#6b6760;--color-border:#e6e2dc;--color-accent:#c2410c;--color-accent-soft:#fdeee6;--color-code-bg:#f4f2ee;--color-focus:#2563eb;--shadow-card:0 1px 2px #0000000a,0 4px 16px #0000000a;--shadow-card-hover:0 2px 4px #0000000f,0 10px 28px #00000014;--transition:.15s ease}@media (prefers-color-scheme:dark){:root{--color-bg:#141311;--color-surface:#1c1b18;--color-text:#ece9e4;--color-muted:#a19d95;--color-border:#2e2c28;--color-accent:#fb923c;--color-accent-soft:#3a2416;--color-code-bg:#1f1e1b;--color-focus:#60a5fa;--shadow-card:0 1px 2px #0000004d;--shadow-card-hover:0 4px 20px #00000073}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:var(--space-6)}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;display:flex;flex-direction:column;min-height:100vh;margin:0}main{flex:1}h1,h2,h3,h4{line-height:var(--leading-tight);letter-spacing:-.015em;margin:0;font-weight:650}p,ul,ol,figure,blockquote,pre,table{margin:0}a{color:var(--color-accent);text-decoration-thickness:1px;text-underline-offset:.18em}a:hover{text-decoration-thickness:2px}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px;border-radius:2px}img,svg,video,canvas{display:block;max-width:100%;height:auto}code,kbd,pre{font-family:var(--font-mono);font-size:.9em}hr{border:0;border-top:1px solid var(--color-border)}::selection{background:var(--color-accent-soft)}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}.container{max-width:var(--width-page);padding-inline:var(--gutter);width:100%;margin-inline-start:auto;margin-inline-end:auto}.skip-link{position:absolute;left:-999px}.skip-link:focus{left:var(--space-4);top:var(--space-4);background:var(--color-surface);padding:var(--space-2)var(--space-3);z-index:10}.site-header{border-bottom:1px solid var(--color-border)}.site-header__inner{display:flex;justify-content:space-between;align-items: center;gap:var(--space-4);padding-block:var(--space-4)}.site-header__brand{color:var(--color-text);text-decoration:none;letter-spacing:-.01em;font-weight:650}.site-nav{display:flex;gap:var(--space-5);font-size:var(--text-sm)}.site-nav a{color:var(--color-muted);text-decoration:none}.site-nav a:hover,.site-nav a[aria-current=page]{color:var(--color-text)}.site-footer{border-top:1px solid var(--color-border);margin-top:var(--space-8);font-size:var(--text-sm);color:var(--color-muted)}.site-footer__inner{display:flex;justify-content:space-between;gap:var(--space-3);padding-block:var(--space-5);flex-wrap:wrap}.site-footer a{color:inherit;margin-left:var(--space-4)}.hero{padding-block:var(--space-8)var(--space-7)}.hero__eyebrow{color:var(--color-accent);font-size:var(--text-sm);letter-spacing:.06em;text-transform:uppercase;margin-bottom:var(--space-3);font-weight:600}.hero__title{font-family:var(--font-serif);font-size:var(--text-3xl);letter-spacing:-.02em;font-weight:600}.hero__intro{margin-top:var(--space-4);font-size:var(--text-lg);color:var(--color-muted);max-width:38rem}.section{padding-block:var(--space-6)}.section__head{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-4)}.section__title{font-size:var(--text-sm);letter-spacing:.06em;text-transform:uppercase;color:var(--color-muted);margin-bottom:var(--space-5);font-weight:600}.section__more{font-size:var(--text-sm);text-decoration:none}.page-title{font-family:var(--font-serif);font-size:var(--text-2xl);margin:var(--space-6)0 var(--space-5)}.contact{max-width:calc(var(--width-prose) + 2*var(--gutter))}.contact__name{font-size:var(--text-xl);margin-top:calc(-1*var(--space-3));margin-bottom:var(--space-3);font-weight:600}.contact__intro{font-size:var(--text-lg);color:var(--color-muted);margin-bottom:var(--space-6)}.contact__card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5);margin-bottom:var(--space-4)}.contact__label{font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--color-muted);margin-bottom:var(--space-2);font-weight:600}.contact__reveal{font:inherit;color:var(--color-accent);background:var(--color-accent-soft);border-radius:var(--radius);padding:var(--space-2)var(--space-4);cursor:pointer;border:0;font-weight:600}.contact__reveal:hover{filter:brightness(.97)}.contact__email{font-size:var(--text-lg);word-break:break-all;font-weight:600}.contact__hint{font-size:var(--text-sm);color:var(--color-muted)}.contact__links{list-style:none;display:flex;gap:var(--space-4);flex-wrap:wrap;padding:0}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,19rem),1fr));gap:var(--space-5)}.card{position:relative;display:flex;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-card);transition:box-shadow var(--transition),transform var(--transition);flex-direction:column}.card:hover{box-shadow:var(--shadow-card-hover);transform:translateY(-2px)}.card__cover{aspect-ratio:16/9;object-fit:cover;background:var(--color-code-bg);border-bottom:1px solid var(--color-border);width:100%}.card__body{display:flex;gap:var(--space-2);padding:var(--space-4)var(--space-5)var(--space-5);flex-direction:column;flex:1}.card__title{font-size:var(--text-lg)}.card__title a{color:var(--color-text);text-decoration:none}.card__title a:after{content:"";position:absolute;inset:0}.card__desc{color:var(--color-muted);font-size:var(--text-sm);flex:1}.post-list{list-style:none;border-top:1px solid var(--color-border);padding:0}.post-row{display:grid;grid-template-columns:8rem 1fr;gap:var(--space-4);padding-block:var(--space-4);border-bottom:1px solid var(--color-border)}.post-row__date{color:var(--color-muted);font-size:var(--text-sm);font-variant-numeric:tabular-nums;padding-top:.15em}.post-row__title{color:var(--color-text);text-decoration:none;font-weight:600}.post-row__title:hover{color:var(--color-accent)}.post-row__desc{color:var(--color-muted);font-size:var(--text-sm);margin-top:var(--space-1)}@media (max-width:36rem){.post-row{grid-template-columns:1fr;gap:var(--space-1)}}.tags{display:flex;gap:var(--space-2);list-style:none;margin-top:var(--space-2);flex-wrap:wrap;padding:0}.tags li{font-size:var(--text-xs);color:var(--color-muted);border:1px solid var(--color-border);border-radius:999px;padding:.1em .65em}.badge{display:inline-block;vertical-align:middle;font-size:var(--text-xs);color:var(--color-accent);background:var(--color-accent-soft);border-radius:999px;padding:.1em .6em;font-weight:600}.post{max-width:calc(var(--width-prose) + 2*var(--gutter));padding-top:var(--space-7)}.post__header{display:flex;align-items: flex-start;gap:var(--space-3);padding-bottom:var(--space-6);margin-bottom:var(--space-6);border-bottom:1px solid var(--color-border);flex-direction:column}.post__title{font-family:var(--font-serif);font-size:var(--text-3xl);letter-spacing:-.02em;font-weight:600}.post__desc{font-size:var(--text-lg);color:var(--color-muted)}.post__meta{display:flex;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-muted)}.toc{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-4)var(--space-5);margin-bottom:var(--space-6);font-size:var(--text-sm)}.toc__title{margin-bottom:var(--space-2);font-weight:600}.toc ol{list-style:none;display:grid;gap:var(--space-1);padding:0}.toc a{color:var(--color-muted);text-decoration:none}.toc a:hover{color:var(--color-accent)}.toc__l3{padding-left:var(--space-4)}.prose>*+*{margin-top:var(--space-5)}.prose h2{font-size:var(--text-xl);margin-top:var(--space-7)}.prose h3{font-size:var(--text-lg);margin-top:var(--space-6)}.prose h2+*,.prose h3+*{margin-top:var(--space-3)}.prose .anchor{margin-left:var(--space-2);color:var(--color-muted);text-decoration:none;opacity:0;transition:opacity var(--transition)}.prose :-webkit-any(h2,h3,h4):hover .anchor{opacity:1}.prose :-moz-any(h2,h3,h4):hover .anchor{opacity:1}.prose :is(h2,h3,h4):hover .anchor{opacity:1}.prose .anchor:focus-visible{opacity:1}.prose ul,.prose ol{padding-left:var(--space-5)}.prose li+li{margin-top:var(--space-1)}.prose .task-list-item{list-style:none;margin-left:calc(-1*var(--space-5))}.prose blockquote{border-left:3px solid var(--color-accent);padding-left:var(--space-4);color:var(--color-muted)}.prose img{border-radius:var(--radius);margin-inline-start:auto;margin-inline-end:auto}.prose :not(pre)>code{background:var(--color-code-bg);border:1px solid var(--color-border);border-radius:.3em;padding:.1em .35em}.prose table{border-collapse:collapse;font-size:var(--text-sm);display:block;overflow-x:auto;width:100%}.prose th,.prose td{text-align:left;padding:var(--space-2)var(--space-3);border-bottom:1px solid var(--color-border)}.prose th{font-weight:600}.code{position:relative}.code[data-lang]:not([data-lang=text]):before{content:attr(data-lang);position:absolute;top:var(--space-2);right:var(--space-3);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-muted)}.shiki{border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-4)var(--space-5);overflow-x:auto;line-height:1.55;font-size:var(--text-sm);background:var(--color-code-bg)!important}.shiki,.shiki span{color:var(--shiki-light)}@media (prefers-color-scheme:dark){.shiki,.shiki span{color:var(--shiki-dark)}}.prose .katex-display{overflow-x:auto;overflow-y:hidden;padding-block:var(--space-2)}.prose pre.mermaid{display:flex;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-5);font-family:var(--font-mono);font-size:var(--text-sm);white-space:pre-wrap;justify-content:center}
