:root{color-scheme:dark light;--green-50: oklch(97% 0.010 130);--green-100: oklch(93% 0.019 130);--green-200: oklch(86% 0.029 130);--green-300: oklch(78% 0.038 129);--green-400: oklch(70% 0.045 128);--green-500: oklch(60% 0.051 128);--green-600: oklch(50% 0.054 130);--green-700: oklch(42% 0.051 132);--green-800: oklch(34% 0.045 133);--green-850: oklch(29.5% 0.038 134);--green-900: oklch(25% 0.032 135);--green-925: oklch(20.5% 0.026 135);--green-950: oklch(16% 0.019 135);--ochre-50: oklch(97% 0.014 60);--ochre-100: oklch(93% 0.029 58);--ochre-200: oklch(86% 0.050 56);--ochre-300: oklch(78% 0.072 54);--ochre-400: oklch(72% 0.094 55);--ochre-500: oklch(64% 0.101 50);--ochre-600: oklch(58% 0.108 45);--ochre-700: oklch(50% 0.101 40);--ochre-800: oklch(42% 0.086 38);--ochre-900: oklch(32% 0.065 35);--ochre-950: oklch(22% 0.043 33);--brown-400: oklch(68% 0.045 55);--brown-800: oklch(30% 0.035 55);--brown-950: oklch(14% 0.020 55);--neutral-50: oklch(97.5% 0.005 90);--neutral-100: oklch(94% 0.008 90);--neutral-200: oklch(88% 0.010 90);--neutral-300: oklch(80% 0.012 90);--neutral-400: oklch(70% 0.012 90);--neutral-500: oklch(60% 0.012 90);--neutral-600: oklch(50% 0.010 90);--neutral-700: oklch(40% 0.008 90);--neutral-800: oklch(30% 0.006 90);--neutral-900: oklch(20% 0.004 90);--neutral-950: oklch(12% 0.003 90);--step--2: clamp(0.694rem, 0.686rem + 0.035vi, 0.750rem);--step--1: clamp(0.833rem, 0.824rem + 0.016vi, 0.844rem);--step-0: clamp(1rem, 0.958rem + 0.185vi, 1.125rem);--step-1: clamp(1.2rem, 1.100rem + 0.444vi, 1.500rem);--step-2: clamp(1.44rem, 1.254rem + 0.828vi, 2.000rem);--step-3: clamp(1.728rem, 1.416rem + 1.387vi, 2.665rem);--step-4: clamp(2.074rem, 1.581rem + 2.190vi, 3.552rem);--step-5: clamp(2.488rem, 1.740rem + 3.326vi, 4.733rem);--font-display: "Fraunces", Georgia, serif;--font-body: "Source Serif 4", "Source Serif Pro", Georgia, serif;--font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--leading-tight: 1.1;--leading-snug: 1.25;--leading-normal: 1.4;--leading-relaxed: 1.5;--leading-body: 1.65;--space-3xs: clamp(0.25rem, 0.24rem + 0.046vi, 0.281rem);--space-2xs: clamp(0.5rem, 0.479rem + 0.093vi, 0.563rem);--space-xs: clamp(0.75rem, 0.719rem + 0.139vi, 0.844rem);--space-s: clamp(1rem, 0.958rem + 0.185vi, 1.125rem);--space-m: clamp(1.5rem, 1.438rem + 0.278vi, 1.688rem);--space-l: clamp(2rem, 1.917rem + 0.370vi, 2.25rem);--space-xl: clamp(3rem, 2.875rem + 0.556vi, 3.375rem);--space-2xl: clamp(4rem, 3.833rem + 0.741vi, 4.5rem);--space-3xl: clamp(6rem, 5.75rem + 1.111vi, 6.75rem);--space-2xs-xs: clamp(0.5rem, 0.385rem + 0.509vi, 0.844rem);--space-xs-s: clamp(0.75rem, 0.667rem + 0.370vi, 1.125rem);--space-s-m: clamp(1rem, 0.771rem + 1.019vi, 1.688rem);--space-m-l: clamp(1.5rem, 1.25rem + 1.111vi, 2.25rem);--space-l-xl: clamp(2rem, 1.542rem + 2.037vi, 3.375rem);--space-xl-2xl: clamp(3rem, 2.5rem + 2.222vi, 4.5rem);--space-2xl-3xl: clamp(4rem, 3.083rem + 4.074vi, 6.75rem)}@font-face{font-family:"Brygada 1918";src:url("/assets/fonts/brygada-1918-latin-wght-normal.woff2") format("woff2");font-weight:400 700;font-style:normal;font-display:swap}@font-face{font-family:"Brygada 1918";src:url("/assets/fonts/brygada-1918-latin-wght-italic.woff2") format("woff2");font-weight:400 700;font-style:italic;font-display:swap}@font-face{font-family:"Literata";src:url("/assets/fonts/literata-latin-standard-normal.woff2") format("woff2");font-weight:200 900;font-style:normal;font-display:swap}@font-face{font-family:"Literata";src:url("/assets/fonts/literata-latin-standard-italic.woff2") format("woff2");font-weight:200 900;font-style:italic;font-display:swap}@font-face{font-family:"IBM Plex Mono";src:url("/assets/fonts/ibm-plex-mono-latin-400-normal.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:"IBM Plex Mono";src:url("/assets/fonts/ibm-plex-mono-latin-500-normal.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:"IBM Plex Mono";src:url("/assets/fonts/ibm-plex-mono-latin-600-normal.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:"Lora";src:url("/assets/fonts/lora-latin-wght-normal.woff2") format("woff2");font-weight:400 700;font-style:normal;font-display:swap}@font-face{font-family:"Lora";src:url("/assets/fonts/lora-latin-wght-italic.woff2") format("woff2");font-weight:400 700;font-style:italic;font-display:swap}@font-face{font-family:"Recursive";src:url("/assets/fonts/recursive-latin-full-normal.woff2") format("woff2");font-weight:300 800;font-style:normal;font-display:swap}:root{--font-display: "Brygada 1918", Georgia, serif;--font-body: "Literata", Georgia, serif;--font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace}[data-theme=dark]{--surface-page: var(--green-900);--surface-nav: color-mix(in oklch, var(--green-925) 90%, transparent);--surface-raised: color-mix(in oklch, var(--green-850) 55%, transparent);--ink-heading: var(--green-50);--ink-primary: var(--green-100);--ink-secondary: var(--neutral-300);--ink-tertiary: var(--neutral-500);--rule: color-mix(in oklch, var(--green-700) 45%, transparent);--rule-strong: color-mix(in oklch, var(--green-600) 55%, transparent);--accent: var(--ochre-400);--accent-ink: var(--ochre-300);--tag-bg: color-mix(in oklch, var(--green-800) 55%, transparent);--tag-ink: var(--green-200);--tag-bdr: color-mix(in oklch, var(--green-700) 45%, transparent);--code-bg: var(--green-950);--code-base: var(--neutral-300);--code-kw: var(--ochre-300);--code-fn: var(--green-300);--code-var: var(--green-100);--code-num: var(--ochre-400);--code-com: var(--neutral-500);--code-punc: var(--neutral-400);--code-key: var(--ochre-200)}[data-theme=light]{--surface-page: var(--green-50);--surface-nav: color-mix(in oklch, var(--neutral-50) 92%, transparent);--surface-raised: color-mix(in oklch, var(--ochre-100) 40%, transparent);--ink-heading: var(--green-900);--ink-primary: var(--green-950);--ink-secondary: var(--neutral-700);--ink-tertiary: var(--neutral-500);--rule: color-mix(in oklch, var(--neutral-300) 65%, transparent);--rule-strong: color-mix(in oklch, var(--neutral-400) 70%, transparent);--accent: var(--ochre-700);--accent-ink: var(--ochre-800);--tag-bg: color-mix(in oklch, var(--ochre-100) 55%, transparent);--tag-ink: var(--ochre-900);--tag-bdr: color-mix(in oklch, var(--neutral-200) 75%, transparent);--code-bg: var(--green-950);--code-base: var(--neutral-300);--code-kw: var(--ochre-300);--code-fn: var(--green-300);--code-var: var(--green-100);--code-num: var(--ochre-400);--code-com: var(--neutral-500);--code-punc: var(--neutral-400);--code-key: var(--ochre-200)}*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}body{margin:0;min-block-size:100vh;font-family:var(--font-body);font-size:var(--step-0);line-height:1.75;color:var(--ink-primary);background:var(--surface-page);transition:background .4s ease,color .4s ease}a{color:inherit;text-decoration:none}::selection{background:var(--accent);color:var(--surface-page)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}.blog-eyebrow{font-family:var(--font-mono);font-size:var(--step--2);letter-spacing:.2em;text-transform:uppercase;color:var(--ink-tertiary)}.blog-wrap{max-width:1200px;margin-inline:auto;padding-inline:var(--space-m);padding-block-end:var(--space-2xl)}.measure{max-width:760px;margin-inline:auto}.blog-nav{position:sticky;inset-block-start:0;z-index:20;background:var(--surface-nav);backdrop-filter:blur(16px) saturate(1.4);-webkit-backdrop-filter:blur(16px) saturate(1.4);border-block-end:1px solid var(--rule);transition:background .4s ease,border-color .4s ease}.blog-nav__inner{max-width:1200px;margin-inline:auto;padding:var(--space-xs) var(--space-m);display:flex;align-items:center;justify-content:space-between;gap:var(--space-m)}.blog-brand{display:flex;align-items:center;gap:.7em}.blog-brand__logo{height:32px;width:auto;display:block}.blog-brand__label{font-family:var(--font-mono);font-size:var(--step--2);letter-spacing:.2em;text-transform:uppercase;color:var(--accent)}.blog-nav__links{display:flex;align-items:center;gap:var(--space-m)}.blog-nav__link{font-family:var(--font-mono);font-size:var(--step--1);color:var(--ink-tertiary);transition:color .2s ease}.blog-nav__link:hover,.blog-nav__link.is-current{color:var(--accent)}@media (max-width: 720px){.blog-nav__link:not(.is-current){display:none}}.theme-toggle{position:relative;inline-size:52px;block-size:28px;border-radius:14px;border:1px solid var(--rule-strong);background:var(--surface-raised);cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:0 6px;transition:border-color .2s ease,background .3s ease}.theme-toggle:hover{border-color:var(--accent)}.theme-toggle::after{content:"";position:absolute;inset-block-start:3px;inset-inline-start:3px;inline-size:20px;block-size:20px;border-radius:50%;background:var(--accent);transition:transform .3s cubic-bezier(.4, 0, .2, 1)}[data-theme=light] .theme-toggle::after{transform:translateX(24px)}.theme-toggle__icon{position:relative;z-index:1;font-size:11px;line-height:1}.theme-toggle__moon{color:var(--surface-page)}.theme-toggle__sun{color:var(--ink-tertiary)}[data-theme=light] .theme-toggle__moon{color:var(--ink-tertiary)}[data-theme=light] .theme-toggle__sun{color:var(--surface-page)}.article-meta{display:flex;align-items:center;flex-wrap:wrap;gap:.6em;font-family:var(--font-mono);font-size:var(--step--2);letter-spacing:.05em;color:var(--ink-tertiary)}.article-meta .sep{opacity:.45}.article-meta .hash{color:var(--accent-ink)}.tag-chips{display:flex;flex-wrap:wrap;gap:var(--space-2xs)}.tag-chip{font-family:var(--font-mono);font-size:var(--step--2);color:var(--tag-ink);background:var(--tag-bg);border:1px solid var(--tag-bdr);border-radius:999px;padding:3px 11px;transition:border-color .2s ease,color .2s ease}.tag-chip:hover{border-color:var(--accent);color:var(--accent)}.featured{padding-block-start:var(--space-2xl)}.featured__eyebrow{font-family:var(--font-mono);font-size:var(--step--2);letter-spacing:.2em;text-transform:uppercase;color:var(--accent)}.featured__title{display:block;font-family:var(--font-display);font-weight:700;font-size:var(--step-4);line-height:1.06;letter-spacing:-.02em;color:var(--ink-heading);margin-block-start:var(--space-s);max-inline-size:18ch;transition:color .2s ease}.featured__title:hover{color:var(--accent)}.featured__dek{font-family:var(--font-body);font-size:var(--step-1);line-height:1.55;color:var(--ink-secondary);max-inline-size:58ch;margin-block-start:var(--space-m)}.read-more{display:inline-flex;align-items:center;gap:.5em;font-family:var(--font-mono);font-size:var(--step--1);color:var(--accent);margin-block-start:var(--space-m);transition:gap .2s ease}.read-more:hover{gap:.8em}.section-label{font-family:var(--font-mono);font-size:var(--step--2);letter-spacing:.2em;text-transform:uppercase;color:var(--ink-tertiary)}.rule-strong{block-size:1px;background:var(--rule-strong);border:0}.post-list{margin:0;padding:0;list-style:none}.post-entry{padding-block:var(--space-l);border-block-start:1px solid var(--rule)}.post-entry__title{display:block;font-family:var(--font-display);font-weight:600;font-size:var(--step-3);line-height:1.12;letter-spacing:-.01em;color:var(--ink-heading);margin-block-start:var(--space-2xs);max-inline-size:24ch;transition:color .2s ease}.post-entry__title:hover{color:var(--accent)}.post-entry__dek{font-family:var(--font-body);font-size:var(--step-0);line-height:1.62;color:var(--ink-secondary);max-inline-size:64ch;margin-block-start:var(--space-2xs)}.post-entry .tag-chips{margin-block-start:var(--space-s)}.post-compact{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-l);padding:var(--space-s) var(--space-xs);margin-inline:calc(-1*var(--space-xs));border-block-start:1px solid var(--rule);border-radius:6px;transition:background .2s ease}.post-compact:hover{background:var(--surface-raised)}.post-compact__title{display:block;font-family:var(--font-display);font-weight:500;font-size:var(--step-2);line-height:1.16;letter-spacing:-.005em;color:var(--ink-heading)}.post-compact__meta{display:flex;flex-wrap:wrap;align-items:center;gap:.6em;margin-block-start:var(--space-3xs);font-family:var(--font-mono);font-size:var(--step--2);color:var(--ink-tertiary)}.post-compact__meta .sep{opacity:.45}.post-compact__meta .hash{color:var(--accent-ink)}.post-compact__time{font-family:var(--font-mono);font-size:var(--step--2);color:var(--ink-tertiary);white-space:nowrap}.list-more{padding-block:var(--space-m)}.list-more a{font-family:var(--font-mono);font-size:var(--step--1);color:var(--ink-tertiary);letter-spacing:.04em}.list-more a:hover{color:var(--accent)}.article-back{display:inline-block;font-family:var(--font-mono);font-size:var(--step--2);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-tertiary)}.article-back:hover{color:var(--accent)}.article-header{padding-block:var(--space-m) var(--space-l);border-block-end:1px solid var(--rule)}.article-title{font-family:var(--font-display);font-weight:700;font-size:var(--step-4);line-height:1.08;letter-spacing:-.02em;color:var(--ink-heading);margin:0;max-inline-size:20ch}.article-dek{font-family:var(--font-body);font-style:italic;font-size:var(--step-1);line-height:1.5;color:var(--ink-secondary);max-inline-size:52ch;margin-block-start:var(--space-m)}.article-header .article-meta{margin-block-start:var(--space-m)}.prose{--measure: 60ch;--margin-w: 200px;--margin-gap: 40px;padding-block-start:var(--space-l);display:grid;grid-template-columns:minmax(0, var(--measure)) var(--margin-w);column-gap:var(--margin-gap);align-items:baseline}.prose>*{grid-column:1;margin:0}.prose>*+*{margin-block-start:1.5em}.prose h2{grid-column:1;font-family:var(--font-display);font-weight:600;font-size:var(--step-2);line-height:1.2;letter-spacing:-.01em;color:var(--ink-heading);margin-block-start:1.7em}.prose p{font-family:var(--font-body);font-size:var(--step-0);line-height:1.75;color:var(--ink-primary)}.prose em,.prose i{font-style:italic}.prose strong,.prose b{font-weight:600;color:var(--ink-heading)}.prose a:not(.tag-chip){color:var(--accent);text-decoration:underline;text-decoration-color:var(--rule-strong);text-underline-offset:.16em}.prose a:not(.tag-chip):hover{text-decoration-color:currentColor}.prose code{font-family:var(--font-mono);font-size:.86em;background:var(--surface-raised);border:1px solid var(--rule);border-radius:4px;padding:.06em .38em;color:var(--ink-heading)}.prose blockquote{grid-column:1;max-inline-size:40ch;padding-inline-start:var(--space-m);border-inline-start:2px solid var(--accent);font-family:var(--font-display);font-style:italic;font-size:var(--step-2);line-height:1.35;color:var(--ink-heading)}.prose .sidenote{grid-column:2;align-self:start;font-family:var(--font-body);font-size:var(--step--1);line-height:1.55;color:var(--ink-tertiary);border-block-start:1px solid var(--rule);padding-block-start:8px}.prose .sidenote .sidenote__label{display:block;font-family:var(--font-mono);font-size:.8em;color:var(--accent);margin-block-end:4px}.prose .sidenote code{color:var(--accent-ink);background:none;border:0;padding:0}.prose .code-figure,.prose figure{grid-column:1;max-inline-size:calc(var(--measure) + var(--margin-gap) + var(--margin-w))}@media (max-width: 900px){.prose{grid-template-columns:minmax(0, 1fr)}.prose .sidenote{grid-column:1;max-inline-size:60ch;margin-inline-start:var(--space-s)}}.code-figure{border:1px solid var(--rule);border-radius:8px;overflow:hidden;background:var(--code-bg)}.code-figure figcaption{font-family:var(--font-mono);font-size:var(--step--2);color:var(--ink-tertiary)}.code-figure__bar{display:flex;align-items:center;justify-content:space-between;padding:9px 16px;border-block-end:1px solid color-mix(in oklch, var(--green-700) 40%, rgba(0,0,0,0));background:var(--green-925)}.code-figure__name{font-family:var(--font-mono);font-size:var(--step--2);color:var(--neutral-400);letter-spacing:.04em}.code-figure__lang{font-family:var(--font-mono);font-size:var(--step--2);color:var(--ochre-300);letter-spacing:.12em;text-transform:uppercase}.code-figure pre{margin:0;padding:18px 20px;overflow-x:auto;font-family:var(--font-mono);font-size:var(--step--1);line-height:1.7;color:var(--code-base);background:rgba(0,0,0,0)}.code-figure pre code{background:none;border:0;padding:0;font-size:1em;color:inherit}.code-caption{font-family:var(--font-mono);font-size:var(--step--2);color:var(--ink-tertiary);margin-block-start:10px;line-height:1.5}.footnotes{margin-block-start:var(--space-xl);padding-block-start:var(--space-m);border-block-start:1px solid var(--rule)}.footnotes ol{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:14px}.footnotes li{display:grid;grid-template-columns:24px 1fr;gap:10px;font-family:var(--font-body);font-size:var(--step--1);line-height:1.6;color:var(--ink-secondary)}.footnotes .fn-num{font-family:var(--font-mono);color:var(--accent)}sup.fn-ref a{color:var(--accent);font-family:var(--font-mono);font-size:.7em}.post-nav{margin-block-start:var(--space-l);padding-block:var(--space-m) var(--space-2xl);border-block-start:1px solid var(--rule);display:flex;justify-content:space-between;gap:var(--space-m)}.post-nav__label{display:block;font-family:var(--font-mono);font-size:var(--step--2);color:var(--ink-tertiary);letter-spacing:.06em}.post-nav__title{display:block;font-family:var(--font-display);font-size:var(--step-0);color:var(--ink-heading);margin-block-start:4px}.post-nav a:hover .post-nav__title{color:var(--accent)}.archive-year{display:flex;align-items:baseline;gap:var(--space-s);margin-block:var(--space-l) var(--space-3xs)}.archive-year:first-child{margin-block-start:0}.archive-year__num{font-family:var(--font-display);font-weight:700;font-size:var(--step-3);color:var(--ink-heading);letter-spacing:-.01em}.archive-year__rule{flex:1;block-size:1px;background:var(--rule-strong)}.archive-year__count{font-family:var(--font-mono);font-size:var(--step--2);color:var(--ink-tertiary);letter-spacing:.1em}.archive-row{display:grid;grid-template-columns:88px 1fr auto;align-items:baseline;gap:var(--space-l);padding:var(--space-s) var(--space-xs);margin-inline:calc(-1*var(--space-xs));border-block-start:1px solid var(--rule);border-radius:6px;transition:background .2s ease}.archive-row:hover{background:var(--surface-raised)}.archive-row__date{font-family:var(--font-mono);font-size:var(--step--2);color:var(--ink-tertiary);letter-spacing:.04em}.archive-row__title{display:block;font-family:var(--font-display);font-weight:500;font-size:var(--step-1);line-height:1.22;color:var(--ink-heading)}.archive-row__tags{display:flex;flex-wrap:wrap;gap:.8em;margin-block-start:8px;font-family:var(--font-mono);font-size:var(--step--2);color:var(--accent-ink)}.archive-row__time{font-family:var(--font-mono);font-size:var(--step--2);color:var(--ink-tertiary);white-space:nowrap}.tag-directory{column-count:3;column-gap:var(--space-xl)}@media (max-width: 820px){.tag-directory{column-count:2}}@media (max-width: 520px){.tag-directory{column-count:1}}.tag-directory__row{break-inside:avoid;display:flex;align-items:baseline;gap:.6em;padding-block:11px}.tag-directory__name{font-family:var(--font-mono);color:var(--accent-ink);font-size:var(--step-0);transition:color .2s ease}.tag-directory__name:hover{color:var(--accent)}.tag-directory__row.is-xl .tag-directory__name{font-size:var(--step-2);color:var(--accent)}.tag-directory__row.is-l .tag-directory__name{font-size:var(--step-1);color:var(--accent)}.tag-directory__row.is-s .tag-directory__name{font-size:var(--step--1)}.tag-directory__lead{flex:1;border-block-end:1px dotted var(--rule-strong);transform:translateY(-4px)}.tag-directory__count{font-family:var(--font-mono);font-size:var(--step--1);color:var(--ink-tertiary)}.tag-hero{display:flex;align-items:baseline;gap:.7em;flex-wrap:wrap}.tag-hero__name{font-family:var(--font-mono);font-weight:500;font-size:var(--step-4);line-height:1;letter-spacing:-.01em;color:var(--accent);margin:0}.tag-hero__count{font-family:var(--font-mono);font-size:var(--step-0);color:var(--ink-tertiary)}.prose>pre{grid-column:1;max-inline-size:calc(var(--measure) + var(--margin-gap) + var(--margin-w));margin:0;padding:18px 20px;overflow-x:auto;font-family:var(--font-mono);font-size:var(--step--1);line-height:1.7;color:var(--code-base);background:var(--code-bg);border:1px solid var(--rule);border-radius:8px}.prose>pre code{background:none;border:0;padding:0;font-size:1em;color:inherit}.skip-link{position:absolute;inset-block-start:-100vh;inset-inline-start:0}.skip-link:focus{inset-block-start:0;z-index:100;padding:var(--space-xs) var(--space-s);background:var(--accent);color:var(--surface-page);font-family:var(--font-mono);font-size:var(--step--1)}.author-card{display:flex;gap:var(--space-s);align-items:flex-start;margin-block-start:var(--space-xl);padding:var(--space-m);background:var(--surface-raised);border:1px solid var(--rule);border-radius:.75rem}.author-card__avatar{flex:none;inline-size:3.5rem;block-size:3.5rem;border-radius:50%;border:1px solid var(--rule-strong)}.author-card__body{min-inline-size:0}.author-card__name{font-family:var(--font-display);font-weight:600;color:var(--ink-heading);margin:0}.author-card__bio{font-family:var(--font-body);color:var(--ink-secondary);font-size:var(--step--1);line-height:1.55;margin-block:.35rem .5rem}.author-card__links{display:flex;flex-wrap:wrap;gap:var(--space-s);font-family:var(--font-mono);font-size:var(--step--1)}.author-card__links a{color:var(--accent-ink);text-decoration:none}.author-card__links a:hover{text-decoration:underline}.prose pre[class*=language-],.prose code[class*=language-]{color:var(--code-base)}.prose .token.comment,.prose .token.prolog,.prose .token.doctype,.prose .token.cdata{color:var(--code-com);font-style:italic}.prose .token.punctuation{color:var(--code-punc)}.prose .token.operator,.prose .token.entity{color:var(--code-punc)}.prose .namespace{opacity:.7}.prose .token.keyword,.prose .token.atrule,.prose .token.important,.prose .token.keyword.control-flow{color:var(--code-kw)}.prose .token.builtin,.prose .token.class-name,.prose .token.tag,.prose .token.selector,.prose .token.attr-name{color:var(--code-key)}.prose .token.function,.prose .token.function-name{color:var(--code-fn)}.prose .token.string,.prose .token.char,.prose .token.attr-value,.prose .token.regex,.prose .token.url,.prose .token.inserted{color:var(--code-fn)}.prose .token.variable,.prose .token.property,.prose .token.symbol,.prose .token.constant{color:var(--code-var)}.prose .token.number,.prose .token.boolean{color:var(--code-num)}.prose .token.deleted{color:var(--code-com)}.prose .token.important,.prose .token.bold{font-weight:600}.prose .token.italic{font-style:italic}.republished{max-width:60ch;margin:var(--space-l) 0 0;display:flex;gap:16px;align-items:flex-start;padding:16px 20px;background:var(--surface-raised);border:1px solid var(--rule);border-left:2px solid var(--accent);border-radius:0 8px 8px 0}.republished__icon{font-family:var(--font-mono);font-size:var(--step-1);line-height:1;color:var(--accent);flex-shrink:0;transform:translateY(1px)}.republished__label{display:block;font-family:var(--font-mono);font-size:var(--step--2);letter-spacing:.18em;text-transform:uppercase;color:var(--accent-ink);margin-bottom:5px}.republished__text{font-family:var(--font-body);font-size:var(--step--1);line-height:1.55;color:var(--ink-secondary);margin:0}.republished__link{color:var(--ink-heading);font-weight:500;text-decoration:underline;text-decoration-color:var(--rule-strong);text-underline-offset:.16em}.republished__link:hover{text-decoration-color:currentColor}[data-theme=dark]{--surface-footer: var(--green-925);--ft-border: color-mix(in oklch, var(--green-950) 50%, transparent);--ft-text: var(--green-600);--ft-heading: var(--green-500);--ft-bar-bdr: var(--green-950);--ft-copy: var(--green-700)}[data-theme=light]{--surface-footer: var(--green-900);--ft-border: color-mix(in oklch, var(--green-900) 50%, transparent);--ft-text: var(--green-400);--ft-heading: var(--green-400);--ft-bar-bdr: var(--green-900);--ft-copy: var(--green-600)}.footer{background:var(--surface-footer);border-top:1px solid var(--ft-border);transition:background .4s ease;line-height:var(--leading-body)}.footer-inner{max-width:1280px;margin:0 auto;padding:var(--space-2xl) var(--space-m) var(--space-l)}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:var(--space-xl);margin-bottom:var(--space-xl)}@media (max-width: 768px){.footer-grid{grid-template-columns:1fr 1fr}}.footer-logo{display:block;height:32px;width:auto;max-inline-size:100%;margin-bottom:var(--space-xs)}.footer-tagline{font-family:"Lora",serif;font-size:var(--step--1);color:var(--ft-text);max-width:30ch;line-height:1.55;margin:0}.footer-heading{font-family:"Recursive",monospace;font-variation-settings:"MONO" 1,"CASL" 0;font-size:var(--step--2);font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--ft-heading);margin:0 0 var(--space-s)}.footer-links{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2xs)}.footer-links a{font-family:"Lora",serif;font-size:var(--step--1);color:var(--ft-text);transition:color .2s ease}.footer-links a:hover{color:var(--ochre-400)}.footer-bar{border-top:1px solid var(--ft-bar-bdr);padding-top:var(--space-s);display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:var(--space-s)}.footer-copy{font-family:"Recursive",monospace;font-size:.7rem;color:var(--ft-copy);letter-spacing:.03em}.footer-legal{display:flex;gap:var(--space-s)}.footer-legal a{font-family:"Recursive",monospace;font-size:.7rem;color:var(--ft-copy);transition:color .2s ease}.footer-legal a:hover{color:var(--ochre-400)}