@font-face{font-family:Figtree;font-style:normal;font-weight:300 900;font-display:swap;src:url(/fonts/Figtree-Variable.woff2)format("woff2")}@font-face{font-family:"source serif 4";font-style:normal;font-weight:200 900;font-display:swap;src:url(/fonts/SourceSerif4-Variable.woff2)format("woff2")}@font-face{font-family:"source serif 4";font-style:italic;font-weight:200 900;font-display:swap;src:url(/fonts/SourceSerif4-Italic-Variable.woff2)format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/fonts/JetBrainsMono-Variable.woff2)format("woff2")}:root,[data-theme=light]{color-scheme:light;--bg:#fff;--wash:#f3f6f2;--ink:#161a17;--ink-2:#59625a;--rule:#e3e8e1;--rule-strong:#c4ccc1;--control-edge:#828c80;--accent:#2e7d32;--accent-ink:#fff;--accent-hover:#1f5c23;--read:#697266}[data-theme=dark]{color-scheme:dark;--bg:#0e1210;--wash:#161b17;--ink:#eaeee9;--ink-2:#9aa59b;--rule:#232a24;--rule-strong:#38423a;--control-edge:#7a857b;--accent:#6fbf73;--accent-ink:#0e1210;--accent-hover:#93d596;--read:#8a9489}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--bg:#0e1210;--wash:#161b17;--ink:#eaeee9;--ink-2:#9aa59b;--rule:#232a24;--rule-strong:#38423a;--control-edge:#7a857b;--accent:#6fbf73;--accent-ink:#0e1210;--accent-hover:#93d596;--read:#8a9489}}:root{--font-ui:"Figtree", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-text:"Source Serif 4", "Source Serif Pro", Georgia, "Times New Roman", serif;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--t-xs:.8125rem;--t-sm:.9375rem;--t-md:1.0625rem;--t-body:1.1875rem;--t-lg:1.375rem;--t-xl:1.75rem;--t-2xl:clamp(1.75rem, 1.2rem + 1.6vw, 2.25rem);--t-3xl:clamp(2rem, 1.2rem + 2.6vw, 3.25rem);--t-4xl:clamp(2.75rem, 1.3rem + 5vw, 5.25rem);--lh-tight:1.08;--lh-snug:1.25;--lh-ui:1.5;--lh-read:1.65;--track-display:-.03em;--track-head:-.02em;--track-ui:-.005em;--s-1:.25rem;--s-2:.5rem;--s-3:.75rem;--s-4:1rem;--s-5:1.5rem;--s-6:2rem;--s-7:3rem;--s-8:4.5rem;--s-9:7rem;--page:72rem;--gutter:clamp(1rem, 4vw, 2rem);--rail:11rem;--measure:41rem;--toc:14rem;--hair:1px solid var(--rule);--hair-strong:1px solid var(--rule-strong);--r-1:4px;--r-2:8px;--r-pill:999px;--ease:cubic-bezier(.22, 1, .36, 1);--dur:.16s}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:var(--s-8);scrollbar-color:var(--rule-strong)transparent;scrollbar-width:thin}body{background:var(--bg);color:var(--ink);font-family:var(--font-ui);font-size:var(--t-sm);line-height:var(--lh-ui);letter-spacing:var(--track-ui);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums;caret-color:var(--accent);flex-direction:column;min-height:100vh;margin:0;display:flex}main{flex:1 0 auto}::selection{background:color-mix(in srgb,var(--accent) 28%,transparent);color:var(--ink)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--rule-strong);border-radius:var(--r-pill);border:2px solid var(--bg)}::-webkit-scrollbar-track{background:0 0}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:var(--r-1)}img,svg{max-width:100%;display:block}h1,h2,h3,h4{font-family:var(--font-ui);font-weight:700;line-height:var(--lh-snug);letter-spacing:var(--track-head);text-wrap:balance;margin:0}p{margin:0}ul,ol{margin:0;padding:0;list-style:none}a{color:var(--accent);text-underline-offset:.2em;transition:color var(--dur)var(--ease);text-decoration-thickness:1px}a:hover{color:var(--accent-hover)}hr{border:0;border-top:var(--hair);margin:var(--s-7)0}button,input{font:inherit;color:inherit;letter-spacing:inherit}time{font-variant-numeric:tabular-nums}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.icon{fill:none;stroke:currentColor;stroke-width:1.75px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:1.25rem;height:1.25rem}.icon--sm{width:1rem;height:1rem}.container{width:100%;max-width:calc(var(--page) + 2 * var(--gutter));padding-inline:var(--gutter);margin-inline:auto}.section{grid-template-columns:var(--rail)minmax(0,1fr);column-gap:var(--s-6);padding-block:var(--s-6)var(--s-8);display:grid;position:relative}.section:before{content:"";top:0;left:var(--gutter);right:var(--gutter);border-top:var(--hair);position:absolute}.section .post-list,.section .topic-list{border-top:0}.section .post-row:first-child,.section .topic-row:first-child{padding-top:var(--s-1)}.section__title{font-size:var(--t-sm);letter-spacing:var(--track-ui);font-weight:600;line-height:var(--lh-ui);padding-top:var(--s-1)}.section__title a{color:var(--ink);text-decoration:none}.section__more{margin-top:var(--s-5);font-weight:600}.skip-link{left:var(--s-4);background:var(--ink);color:var(--bg);padding:var(--s-2)var(--s-4);border-radius:var(--r-1);z-index:10;position:absolute;top:-4rem}.skip-link:focus{top:var(--s-3)}@media(max-width:52rem){.section{row-gap:var(--s-4);padding-bottom:var(--s-7);grid-template-columns:minmax(0,1fr)}}.link{align-items:center;gap:var(--s-2);font-weight:600;text-decoration:none;display:inline-flex}.link:hover{text-decoration:underline}.link .icon{transition:transform var(--dur)var(--ease)}.link:hover .icon{transform:translate(3px)}.link--quiet{color:var(--ink-2);font-weight:500}.link--quiet:hover{color:var(--ink)}.btn{justify-content:center;align-items:center;gap:var(--s-2);min-height:2.75rem;padding:0 var(--s-5);border:1px solid var(--accent);border-radius:var(--r-2);background:var(--accent);color:var(--accent-ink);font-weight:600;font-size:var(--t-sm);cursor:pointer;transition:background var(--dur)var(--ease),border-color var(--dur)var(--ease);text-decoration:none;display:inline-flex}.btn:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:var(--accent-ink)}.btn--ghost{color:var(--ink);border-color:var(--control-edge);background:0 0}.btn--ghost:hover{background:var(--wash);border-color:var(--ink);color:var(--ink)}.btn[disabled],.btn[aria-disabled=true]{opacity:.45;cursor:not-allowed}.masthead{border-bottom:var(--hair);background:var(--bg);z-index:5;position:sticky;top:0}.masthead__inner{align-items:center;gap:var(--s-5);flex-wrap:wrap;min-height:4rem;display:flex}.brand{align-items:center;gap:var(--s-2);color:var(--ink);font-weight:700;font-size:var(--t-lg);letter-spacing:var(--track-head);line-height:1;text-decoration:none;display:inline-flex}.brand:hover{color:var(--ink)}.brand .icon{width:1.625rem;height:1.625rem;color:var(--accent);stroke-width:1.75px}.nav{gap:var(--s-1);margin-left:var(--s-3);display:flex}.nav a{min-height:2.75rem;color:var(--ink-2);padding:var(--s-2)var(--s-3);border-radius:var(--r-1);white-space:nowrap;align-items:center;font-weight:500;text-decoration:none;display:inline-flex}.nav a:hover{color:var(--ink)}.nav a[aria-current=page]{color:var(--accent);font-weight:600}.masthead__tools{align-items:center;gap:var(--s-2);margin-left:auto;display:flex}.search{align-items:center;gap:var(--s-2);width:13rem;min-height:2.5rem;padding:0 var(--s-3);border:1px solid var(--control-edge);border-radius:var(--r-2);background:var(--bg);color:var(--ink-2);transition:border-color var(--dur)var(--ease);display:flex}.search:focus-within{border-color:var(--accent);outline:2px solid var(--accent);outline-offset:2px}.search input{min-width:0;color:var(--ink);background:0 0;border:0;outline:0;flex:1}.search input::placeholder{color:var(--ink-2);opacity:1}.theme-toggle{border-radius:var(--r-2);width:2.75rem;height:2.75rem;color:var(--ink-2);cursor:pointer;transition:color var(--dur)var(--ease),border-color var(--dur)var(--ease);background:0 0;border:1px solid #0000;place-items:center;display:inline-grid}.theme-toggle:hover{color:var(--ink);border-color:var(--rule-strong)}.theme-toggle .icon--moon,[data-theme=dark] .theme-toggle .icon--sun{display:none}[data-theme=dark] .theme-toggle .icon--moon{display:block}@media(max-width:60rem){.nav{width:100%;margin:0 calc(-1 * var(--s-3));padding-bottom:var(--s-2);order:3}}@media(min-width:60.01rem) and (max-width:72rem){.masthead .search{width:10rem}}.tags{gap:var(--s-2);flex-wrap:wrap;display:flex}.tag{padding:.125rem var(--s-2);border:var(--hair-strong);border-radius:var(--r-1);color:var(--ink-2);font-size:var(--t-xs);transition:color var(--dur)var(--ease),border-color var(--dur)var(--ease);font-weight:500;line-height:1.5;text-decoration:none;display:inline-block}.tag:hover{color:var(--accent);border-color:var(--accent)}.meta{align-items:center;gap:var(--s-1)var(--s-3);color:var(--ink-2);font-size:var(--t-xs);flex-wrap:wrap;font-weight:500;display:flex}.meta>*+:before{content:"";border-radius:var(--r-pill);background:var(--ink-2);width:3px;height:3px;margin-right:var(--s-3);vertical-align:middle;display:inline-block}.post-list{border-top:var(--hair)}.post-row{column-gap:var(--s-5);padding-block:var(--s-5);border-bottom:var(--hair);grid-template-columns:7rem minmax(0,1fr);display:grid;position:relative}.post-list--bare{border-top:0}.post-row__date{color:var(--ink-2);font-size:var(--t-xs);padding-top:.45rem;font-weight:500}.post-row__title{font-size:var(--t-lg);letter-spacing:var(--track-head);font-weight:600;line-height:var(--lh-snug)}.post-row__title a{color:var(--ink);transition:color var(--dur)var(--ease);text-decoration:none}.post-row__title a:after{content:"";position:absolute;inset:0}.post-row:hover .post-row__title a,.post-row__title a:hover{color:var(--accent)}.post-row__title a:visited{color:var(--read)}.post-row:hover .post-row__title a:visited{color:var(--accent)}.post-row__summary{margin-top:var(--s-2);max-width:60ch;color:var(--ink-2);font-family:var(--font-text);font-size:var(--t-md);line-height:1.5}.post-row .tags{margin-top:var(--s-3);z-index:1;position:relative}.post-row.is-hover .post-row__title a{color:var(--accent)}.post-row.is-read .post-row__title a{color:var(--read)}.post-row--compact{padding-block:var(--s-3);align-items:baseline}.post-row--compact .post-row__date{padding-top:0}.post-row--compact .post-row__title{font-size:var(--t-md);font-weight:500}.post-row--lead .post-row__title{font-size:var(--t-xl);font-weight:700}.post-row--lead .post-row__summary{font-size:var(--t-lg);color:var(--ink);line-height:1.45}@media(max-width:40rem){.post-row{row-gap:var(--s-1);grid-template-columns:minmax(0,1fr)}.post-row__date{padding-top:0}}.featured{max-width:52rem;position:relative}.featured__title{font-size:var(--t-3xl);font-weight:700;line-height:var(--lh-tight);letter-spacing:var(--track-display);margin-top:var(--s-3)}.featured__title a{color:var(--ink);text-decoration:none}.featured__title a:after{content:"";position:absolute;inset:0}.featured:hover .featured__title a{color:var(--accent)}.featured__summary{margin-top:var(--s-4);max-width:34em;font-family:var(--font-text);font-size:var(--t-lg);line-height:1.5}.featured .link{margin-top:var(--s-5)}.featured .tags{margin-top:var(--s-4);z-index:1;position:relative}.hero{padding-block:var(--s-8)var(--s-8)}.hero__name{font-size:var(--t-4xl);letter-spacing:var(--track-display);font-weight:700;line-height:1}.hero__promise{margin-top:var(--s-5);max-width:30em;font-size:var(--t-xl);letter-spacing:var(--track-head);text-wrap:pretty;font-weight:400;line-height:1.35}.topic-list{border-top:var(--hair)}.topic-row{column-gap:var(--s-5);padding-block:var(--s-4);border-bottom:var(--hair);grid-template-columns:17rem minmax(0,1fr)auto;align-items:baseline;display:grid;position:relative}.topic-row__name{font-size:var(--t-lg);letter-spacing:var(--track-head);font-weight:600}.topic-row__name a{color:var(--ink);transition:color var(--dur)var(--ease);text-decoration:none}.topic-row__name a:after{content:"";position:absolute;inset:0}.topic-row:hover .topic-row__name a{color:var(--accent)}.topic-row__desc{color:var(--ink-2);font-family:var(--font-text);font-size:var(--t-md);line-height:1.5}.topic-row .icon{color:var(--ink-2);transition:transform var(--dur)var(--ease),color var(--dur)var(--ease)}.topic-row:hover .icon{color:var(--accent);transform:translate(3px)}.topic-marker{align-items:center;gap:var(--s-2);color:var(--ink);font-weight:600;text-decoration:none;display:inline-flex}.topic-marker .icon{color:var(--accent);width:1rem;height:1rem}.topic-marker:hover{color:var(--accent)}@media(max-width:52rem){.topic-row{row-gap:var(--s-1);grid-template-columns:minmax(0,1fr)auto}.topic-row__desc{grid-column:1}.topic-row .icon{grid-area:1/2}}.paths{gap:var(--s-6);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.path{border-top:2px solid var(--ink);padding-top:var(--s-4)}.path__title{font-size:var(--t-xl);letter-spacing:var(--track-head);font-weight:700}.path__desc{margin-top:var(--s-3);color:var(--ink-2);font-family:var(--font-text);font-size:var(--t-md);line-height:1.5}.path__list{margin-top:var(--s-4);border-top:var(--hair)}.path__list li{border-bottom:var(--hair)}.path__list a{padding-block:var(--s-3);color:var(--ink);font-weight:500;line-height:1.35;text-decoration:none;display:block}.path__list a:hover{color:var(--accent)}.path__list a:visited{color:var(--read)}.path .link{margin-top:var(--s-4)}@media(max-width:64rem){.paths{gap:var(--s-7);grid-template-columns:minmax(0,1fr)}}.series{max-width:48rem}.series__title{font-size:var(--t-xl);letter-spacing:var(--track-head);font-weight:700}.series__desc{margin-top:var(--s-2);max-width:52ch;color:var(--ink-2);font-family:var(--font-text);font-size:var(--t-md);line-height:1.5}.series__list{margin-top:var(--s-4);border-top:var(--hair);counter-reset:part}.series__item{counter-increment:part;column-gap:var(--s-3);padding-block:var(--s-3);border-bottom:var(--hair);grid-template-columns:2.25rem minmax(0,1fr)auto;align-items:baseline;display:grid}.series__item:before{content:counter(part);color:var(--ink-2);font-size:var(--t-xs);font-weight:600}.series__item a{color:var(--ink);font-weight:500;text-decoration:none}.series__item a:hover{color:var(--accent)}.series__item a:visited{color:var(--read)}.series__item time{color:var(--ink-2);font-size:var(--t-xs)}.series__item [aria-current=page]{color:var(--accent);font-weight:700}.series__item:has([aria-current=page]):before{color:var(--accent)}.series__title a{color:var(--ink);text-decoration:none}.series__title a:hover{color:var(--accent);text-decoration:underline}.series--box{padding:var(--s-5);border:var(--hair);border-radius:var(--r-2);background:var(--wash);max-width:none}.series--box .series__title{font-size:var(--t-lg)}.series--box .series__item{grid-template-columns:2rem minmax(0,1fr)}.series--box .series__item time{display:none}.toc{font-size:var(--t-sm)}.toc__title{margin-bottom:var(--s-3);font-weight:600}.toc ol{border-left:var(--hair)}.toc a{padding:var(--s-1)var(--s-3);color:var(--ink-2);transition:color var(--dur)var(--ease);border-left:1px solid #0000;margin-left:-1px;line-height:1.4;text-decoration:none;display:block}.toc a:hover{color:var(--ink)}.toc a[aria-current=true]{color:var(--accent);border-left-color:var(--accent);font-weight:600}.breadcrumb{padding-block:var(--s-5)0}.breadcrumb ol{gap:var(--s-2);color:var(--ink-2);font-size:var(--t-xs);flex-wrap:wrap;align-items:center;font-weight:500;display:flex}.breadcrumb li+li:before{content:"/";margin-right:var(--s-2);color:var(--rule-strong)}.breadcrumb a{color:var(--ink-2);text-decoration:none}.breadcrumb a:hover{color:var(--accent);text-decoration:underline}.breadcrumb [aria-current=page]{color:var(--ink)}.article-head{padding-block:var(--s-7)var(--s-6)}.article-head__inner{max-width:var(--measure);margin-inline:auto}.article-head h1,.page-head h1{font-size:var(--t-3xl);font-weight:700;line-height:var(--lh-tight);letter-spacing:var(--track-display)}.article-head .dek{margin-top:var(--s-4);font-family:var(--font-text);font-size:var(--t-lg);color:var(--ink-2);max-width:36em;line-height:1.5}.article-head .meta{margin-top:var(--s-5)}.article-grid{grid-template-columns:minmax(0,1fr)minmax(0,var(--measure))minmax(0,1fr);column-gap:var(--s-7);padding-bottom:var(--s-8);display:grid}.article-grid>.prose{grid-column:2}.article-grid>.toc-rail{top:var(--s-8);max-width:var(--toc);padding-top:var(--s-2);grid-area:1/3;align-self:start;position:sticky}.article-after{max-width:var(--measure);margin-inline:auto}.article-after>*+*{margin-top:var(--s-6)}@media(max-width:70rem){.article-grid{grid-template-columns:minmax(0,var(--measure));justify-content:center}.article-grid>.prose,.article-grid>.toc-rail{grid-column:1}.article-grid>.toc-rail{max-width:none;margin-bottom:var(--s-6);padding:var(--s-4);border:var(--hair);border-radius:var(--r-2);order:-1;grid-row:auto;position:static}}.prose{font-family:var(--font-text);font-size:var(--t-body);line-height:var(--lh-read);letter-spacing:0;font-variant-numeric:normal;hanging-punctuation:first}.prose>*+*{margin-top:1.25em}.prose h2{font-family:var(--font-ui);font-size:var(--t-2xl);line-height:var(--lh-snug);letter-spacing:var(--track-head);margin-top:2.2em}.prose h2+*{margin-top:.75em}.prose h3{font-size:var(--t-lg);margin-top:1.8em}.prose a{text-underline-offset:.22em;text-decoration:underline;text-decoration-thickness:1px}.prose strong{font-weight:700}.prose ul,.prose ol{padding-left:1.4em}.prose ul{list-style:outside}.prose ol{list-style:decimal}.prose li{padding-left:.2em}.prose li+li{margin-top:.5em}.prose li::marker{color:var(--ink-2)}.prose hr{margin:2.5em 0}.prose code{font-family:var(--font-mono);background:var(--wash);border:var(--hair);border-radius:var(--r-1);font-variant-ligatures:none;padding:.1em .35em;font-size:.85em}.prose pre{font-family:var(--font-mono);font-size:var(--t-sm);padding:var(--s-4)var(--s-5);background:var(--wash);border:var(--hair);border-radius:var(--r-2);tab-size:2;line-height:1.6;overflow-x:auto}.prose pre code{font-size:inherit;background:0 0;border:0;padding:0}.table-wrap{border:var(--hair);border-radius:var(--r-2);overflow-x:auto}.table-wrap table{border-collapse:collapse;width:100%;font-family:var(--font-ui);font-size:var(--t-sm);line-height:1.4}.table-wrap th,.table-wrap td{padding:var(--s-3)var(--s-4);text-align:left;border-bottom:var(--hair);vertical-align:top}.table-wrap th{background:var(--wash);white-space:nowrap;font-weight:600}.table-wrap tr:last-child td{border-bottom:0}.table-wrap td.num,.table-wrap th.num{text-align:right;font-variant-numeric:tabular-nums}.prose .pullquote,.pullquote{padding-block:var(--s-5);border-top:1px solid var(--ink);border-bottom:var(--hair);font-family:var(--font-ui);font-size:var(--t-xl);letter-spacing:var(--track-head);text-wrap:balance;margin-block:2em;font-weight:600;line-height:1.25}.pullquote cite{margin-top:var(--s-3);font-size:var(--t-sm);color:var(--ink-2);letter-spacing:var(--track-ui);font-style:normal;font-weight:500;display:block}.callout{padding:var(--s-4)var(--s-5);border:var(--hair);border-radius:var(--r-2);background:var(--wash);font-family:var(--font-text);font-size:var(--t-md);column-gap:var(--s-3);grid-template-columns:auto minmax(0,1fr);line-height:1.55;display:grid}.callout .icon{color:var(--accent);margin-top:.15em}.callout strong{font-family:var(--font-ui)}.prevnext{border-top:var(--hair);border-bottom:var(--hair);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.prevnext a{gap:var(--s-1);padding:var(--s-5)var(--s-4)var(--s-5)0;color:var(--ink);transition:color var(--dur)var(--ease);text-decoration:none;display:grid}.prevnext a+a{padding:var(--s-5)0 var(--s-5)var(--s-5);border-left:var(--hair);text-align:right;justify-items:end}.prevnext__title{font-size:var(--t-lg);font-weight:600;line-height:var(--lh-snug);letter-spacing:var(--track-head)}.prevnext a:hover .prevnext__title{color:var(--accent)}.prevnext .meta{gap:var(--s-2)}.prevnext .meta:before{content:none}.prevnext__empty{padding:var(--s-5)0 var(--s-5)var(--s-5);border-left:var(--hair);color:var(--ink-2);text-align:right}@media(max-width:40rem){.prevnext{grid-template-columns:minmax(0,1fr)}.prevnext a+a,.prevnext__empty{border-left:0;border-top:var(--hair);text-align:left;justify-items:start;padding-left:0}}.pagination ul{align-items:center;gap:var(--s-1);display:flex}.pagination a,.pagination span{min-width:2.5rem;min-height:2.5rem;padding:0 var(--s-3);border-radius:var(--r-2);color:var(--ink-2);place-items:center;font-weight:500;text-decoration:none;display:inline-grid}.pagination a:hover{background:var(--wash);color:var(--ink)}.pagination [aria-current=page]{color:var(--ink);border:1px solid var(--ink);font-weight:700}.pagination .pagination__step{gap:var(--s-2);color:var(--accent);font-weight:600;display:inline-flex}.page-head{padding-block:var(--s-7)var(--s-7)}.page-head__desc{margin-top:var(--s-4);max-width:34em;font-family:var(--font-text);font-size:var(--t-lg);line-height:1.5}.page-head__note{margin-top:var(--s-3);color:var(--ink-2);max-width:44em}.related{gap:var(--s-2)var(--s-6);flex-wrap:wrap;display:flex}.year-nav{gap:var(--s-2)var(--s-5);margin-top:var(--s-5);flex-wrap:wrap;display:flex}.year-nav a{color:var(--ink);font-weight:600;text-decoration:none}.year-nav a:hover{color:var(--accent)}.year-nav span{color:var(--ink-2);font-weight:400;font-size:var(--t-xs);margin-left:var(--s-1)}.year{grid-template-columns:var(--rail)minmax(0,1fr);column-gap:var(--s-6);border-top:var(--hair);padding-block:var(--s-6)var(--s-6);display:grid}.year__label{font-size:var(--t-2xl);letter-spacing:var(--track-display);top:var(--s-8);align-self:start;font-weight:700;line-height:1;position:sticky}.year__count{margin-top:var(--s-2);font-size:var(--t-xs);color:var(--ink-2);letter-spacing:var(--track-ui);font-weight:500;display:block}.archive-row{column-gap:var(--s-4);padding-block:var(--s-3);border-bottom:var(--hair);grid-template-columns:4.5rem minmax(0,1fr)auto;align-items:baseline;display:grid;position:relative}.archive-row:first-child{padding-top:0}.archive-row__date{color:var(--ink-2);font-size:var(--t-xs);font-weight:500}.archive-row__title{font-size:var(--t-lg);font-weight:500;line-height:var(--lh-snug);letter-spacing:var(--track-head)}.archive-row__title a{color:var(--ink);transition:color var(--dur)var(--ease);text-decoration:none}.archive-row__title a:after{content:"";position:absolute;inset:0}.archive-row:hover .archive-row__title a{color:var(--accent)}.archive-row__title a:visited{color:var(--read)}.archive-row:hover .archive-row__title a:visited{color:var(--accent)}.archive-row__series{color:var(--ink-2);font-size:var(--t-xs);font-weight:500}@media(max-width:52rem){.year{row-gap:var(--s-4);grid-template-columns:minmax(0,1fr)}.year__label{align-items:baseline;gap:var(--s-3);display:flex;position:static}.year__count{margin-top:0}}@media(max-width:40rem){.archive-row{grid-template-columns:3.75rem minmax(0,1fr)}.archive-row__series{grid-column:2}.archive-row__title{font-size:var(--t-md)}}.newsletter{max-width:40rem}.newsletter__title{font-size:var(--t-2xl);letter-spacing:var(--track-display);font-weight:700;line-height:var(--lh-tight)}.newsletter__text{margin-top:var(--s-3);font-family:var(--font-text);font-size:var(--t-lg);max-width:30em;line-height:1.5}.newsletter__form{gap:var(--s-2);margin-top:var(--s-5);flex-wrap:wrap;display:flex}.field{min-height:2.75rem;padding:0 var(--s-4);border:1px solid var(--control-edge);border-radius:var(--r-2);background:var(--bg);color:var(--ink);flex:15rem}.field::placeholder{color:var(--ink-2);opacity:1}.field:focus{outline:2px solid var(--accent);outline-offset:2px;border-color:var(--accent)}.field[aria-invalid=true]{border-color:var(--ink)}.newsletter__note{margin-top:var(--s-3);color:var(--ink-2);font-size:var(--t-xs)}.newsletter--band{max-width:none;padding-block:var(--s-7);border-top:var(--hair);border-bottom:var(--hair)}.footer{margin-top:var(--s-8);border-top:var(--hair);padding-block:var(--s-7)var(--s-6);color:var(--ink-2)}.footer__grid{gap:var(--s-6);grid-template-columns:minmax(0,2fr)repeat(3,minmax(0,1fr));display:grid}.footer .brand{color:var(--ink)}.footer__about{margin-top:var(--s-3);max-width:30ch;font-family:var(--font-text);font-size:var(--t-md);line-height:1.5}.footer__heading{color:var(--ink);margin-bottom:var(--s-3);font-weight:600;font-size:var(--t-sm)}.footer li+li{margin-top:var(--s-2)}.footer a{color:var(--ink-2);text-decoration:none}.footer a:hover{color:var(--accent);text-decoration:underline}.footer__legal{margin-top:var(--s-7);padding-top:var(--s-4);border-top:var(--hair);font-size:var(--t-xs)}@media(max-width:52rem){.footer__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.footer__grid>:first-child{grid-column:1/-1}}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}[hidden]{display:none!important}.search-link{display:none}@media(max-width:60rem){.masthead{position:static}.nav{flex-wrap:wrap;row-gap:0}.masthead .search{display:none}.search-link{border-radius:var(--r-2);width:2.75rem;height:2.75rem;color:var(--ink-2);place-items:center;display:inline-grid}.search-link:hover{color:var(--ink)}}.reading-progress{z-index:20;background:var(--accent);width:0;height:3px;position:fixed;top:0;left:0}.feature-image{border-radius:var(--r-2);background:var(--wash);margin:0;overflow:hidden}.feature-image img{object-fit:cover;width:100%;height:100%}.article-hero{max-width:60rem;margin:0 auto var(--s-7);aspect-ratio:16/9}.featured--media{gap:var(--s-6);grid-template-columns:minmax(0,1fr)minmax(0,1fr);align-items:start;max-width:none;display:grid}.featured--media .feature-image{aspect-ratio:3/2;order:2}@media(max-width:64rem){.featured--media{grid-template-columns:minmax(0,1fr)}}.featured .link{color:var(--accent)}@media(max-width:40rem){.hero{padding-block:var(--s-7)}.hero__promise{font-size:1.25rem}}.actions{align-items:center;gap:var(--s-4);padding-block:var(--s-4);border-top:var(--hair);border-bottom:var(--hair);grid-template-columns:auto 1fr auto;display:grid}.actions__label{font-size:var(--t-sm);color:var(--ink-2);font-weight:500}.actions__destinations{flex-wrap:wrap;gap:0;display:flex}.action{justify-content:center;align-items:center;gap:var(--s-2);border-radius:var(--r-1);min-width:2.75rem;min-height:2.75rem;color:var(--ink-2);font:inherit;font-size:var(--t-sm);cursor:pointer;transition:color var(--dur)var(--ease),background var(--dur)var(--ease);background:0 0;border:0;padding:0;font-weight:500;display:inline-flex}.action svg{flex:none;width:1.0625rem;height:1.0625rem}.action--social svg{filter:grayscale()}[data-theme=dark] .action--social svg{filter:grayscale()brightness(1.8)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .action--social svg{filter:grayscale()brightness(1.8)}}.action:hover{color:var(--accent);background:var(--wash)}.action--copy{min-width:6.625rem;padding-inline:var(--s-2)}.action[data-state=done]{color:var(--accent)}@media(max-width:40rem){.actions{row-gap:var(--s-1);padding-block:var(--s-3);grid-template-columns:1fr auto}.actions__destinations{grid-area:2/1/auto/-1;justify-content:space-between}.action--copy{grid-area:1/2}}.prose h4{font-size:var(--t-md);margin-top:1.6em}.prose em{font-style:italic}.prose img{border-radius:var(--r-2);height:auto;margin-inline:auto}.prose figure{margin:2em 0}.prose figcaption{margin-top:var(--s-2);font-family:var(--font-ui);font-size:var(--t-xs);color:var(--ink-2);text-align:center}.prose blockquote{padding-left:var(--s-5);border-left:1px solid var(--ink);color:var(--ink);margin:2em 0 3.25em;font-style:italic;position:relative}.prose blockquote>*+*{margin-top:.75em}.prose table{border-collapse:collapse;max-width:100%;font-family:var(--font-ui);font-size:var(--t-sm);line-height:1.4;display:block;overflow-x:auto}.prose th,.prose td{padding:var(--s-2)var(--s-3);border-bottom:var(--hair);text-align:left;vertical-align:top}.prose th{border-bottom:var(--hair-strong);font-weight:600}.prose details{padding:var(--s-3)var(--s-4);border:var(--hair);border-radius:var(--r-2)}.prose summary{font-family:var(--font-ui);cursor:pointer;font-weight:600}.prose details[open] summary{margin-bottom:var(--s-3)}.prose :is(h2,h3,h4){position:relative}.heading-link{color:var(--ink-2);opacity:0;transition:opacity var(--dur)var(--ease);margin-left:.35em;font-weight:400;text-decoration:none}.prose :is(h2,h3,h4):hover .heading-link,.heading-link:focus-visible{opacity:1}.heading-link:hover{color:var(--accent)}@media(hover:none){.heading-link{opacity:.6}}.highlight{border:var(--hair);border-radius:var(--r-2);background:var(--wash);margin-block:1.5em;position:relative;overflow:hidden}.prose .highlight pre{background:0 0;border:0;border-radius:0;margin:0}.chroma .ln{color:var(--ink-2)}.copy-code{top:var(--s-2);right:var(--s-2);z-index:1;padding:var(--s-1)var(--s-2);border:var(--hair-strong);border-radius:var(--r-1);background:var(--bg);color:var(--ink-2);font-family:var(--font-ui);font-size:var(--t-xs);cursor:pointer;font-weight:600;line-height:1.4;position:absolute}.copy-code:hover{color:var(--ink);border-color:var(--ink)}.quote-tools{z-index:2;font-style:normal;position:absolute;bottom:-2.5rem;right:0}.quote-tools-trigger{align-items:center;gap:var(--s-2);padding:var(--s-1)var(--s-2);border:var(--hair-strong);border-radius:var(--r-1);background:var(--bg);color:var(--ink-2);font-family:var(--font-ui);font-size:var(--t-xs);cursor:pointer;transition:color var(--dur)var(--ease),border-color var(--dur)var(--ease);font-weight:600;line-height:1.4;display:inline-flex}.quote-tools-trigger:hover,.quote-tools-trigger[aria-expanded=true]{color:var(--ink);border-color:var(--ink)}.quote-tools-menu{right:0;bottom:calc(100% + var(--s-2));min-width:11rem;padding:var(--s-1);border:var(--hair-strong);border-radius:var(--r-2);background:var(--bg);box-shadow:0 8px 24px color-mix(in srgb,var(--ink) 12%,transparent);display:grid;position:absolute}.quote-tools-action{width:100%;padding:var(--s-2)var(--s-3);border-radius:var(--r-1);color:var(--ink);font-family:var(--font-ui);font-size:var(--t-sm);cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;font-weight:500;text-decoration:none;display:flex}.quote-tools-action:hover,.quote-tools-action:focus-visible{background:var(--wash);color:var(--accent)}.quote-tools-action__content{align-items:center;gap:var(--s-2);display:inline-flex}.quote-tools-action svg{flex:none;width:1rem;height:1rem}.prose :is(p,li),.post-row__summary,.featured__summary,.page-head__desc,.page-head__note,.topic-row__desc,.path__desc,.series__desc,.newsletter__text,.footer__about{text-wrap:pretty}.section__count{margin-left:var(--s-2);color:var(--ink-2);font-weight:500}.section__list{margin-top:var(--s-6)}.post-row__note{margin-top:var(--s-1);color:var(--ink-2);font-size:var(--t-xs)}.tag__count{margin-left:var(--s-1);color:var(--ink-2)}button.tag{font-family:var(--font-ui);cursor:pointer;background:0 0}.topic-row--tags{grid-template-columns:17rem minmax(0,1fr)}@media(max-width:52rem){.topic-row--tags{grid-template-columns:minmax(0,1fr)}}.pagination{margin-top:var(--s-6)}.page-body{max-width:var(--measure);padding-bottom:var(--s-7);margin-inline:auto}.search--page{width:100%;max-width:32rem;min-height:2.75rem;margin-bottom:var(--s-7)}.search-suggestions{margin-bottom:var(--s-5)}.search-suggestions .tag{min-height:2.75rem;padding-inline:var(--s-3);align-items:center;display:inline-flex}.search-results{min-height:12rem;padding-bottom:var(--s-6)}.block-title{font-size:var(--t-xl);letter-spacing:var(--track-head);margin-bottom:var(--s-4);font-weight:700}.topic-row--stacked{row-gap:var(--s-1);grid-template-columns:minmax(0,1fr)auto}.topic-row--stacked .topic-row__desc{grid-column:1}.topic-row--stacked .icon{grid-area:1/2}.end-mark{margin-top:var(--s-6);color:var(--accent);justify-content:center;display:flex}.footer__byline{margin-top:var(--s-2);max-width:30ch;font-size:var(--t-xs)}.newsletter__embed{margin-top:var(--s-5);min-height:3.5rem}.newsletter__embed--dark,[data-theme=dark] .newsletter__embed--light{display:none}[data-theme=dark] .newsletter__embed--dark{display:block}.bg,.chroma{-webkit-text-size-adjust:none}.highlight .bg,.highlight .chroma{background-color:#0000!important}.chroma .err{color:#f6f8fa;background-color:#82071e}.chroma .lnlinks{color:inherit;outline:none;text-decoration:none}.chroma .lntd{vertical-align:top;border:0;margin:0;padding:0}.chroma .lntable{border-spacing:0;border:0;margin:0;padding:0}.chroma .hl{background-color:#dedede}.chroma .lnt,.chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;color:#7f7f7f;margin-right:.4em;padding:0 .4em}.chroma .line{display:flex}.chroma .k,.chroma .kc,.chroma .kd,.chroma .kn,.chroma .kp,.chroma .kr,.chroma .kt{color:#cf222e}.chroma .na,.chroma .nc{color:#1f2328}.chroma .no,.chroma .nd{color:#0550ae}.chroma .ni{color:#6639ba}.chroma .nl{color:#900;font-weight:700}.chroma .nn{color:#24292e}.chroma .nx{color:#1f2328}.chroma .nt{color:#0550ae}.chroma .nb{color:#6639ba}.chroma .bp{color:#6a737d}.chroma .nv,.chroma .vc,.chroma .vg,.chroma .vi,.chroma .vm{color:#953800}.chroma .nf,.chroma .fm{color:#6639ba}.chroma .s,.chroma .sa,.chroma .sb,.chroma .sc,.chroma .dl,.chroma .sd,.chroma .s2,.chroma .se,.chroma .sh,.chroma .si,.chroma .sx,.chroma .sr,.chroma .s1{color:#0a3069}.chroma .ss{color:#032f62}.chroma .m,.chroma .mb,.chroma .mf,.chroma .mh,.chroma .mi,.chroma .il,.chroma .mo,.chroma .o,.chroma .ow{color:#0550ae}.chroma .p{color:#1f2328}.chroma .c,.chroma .ch,.chroma .cm,.chroma .c1,.chroma .cs,.chroma .cp,.chroma .cpf{color:#57606a}.chroma .gd{color:#82071e;background-color:#ffebe9}.chroma .ge{color:#1f2328}.chroma .gi{color:#116329;background-color:#dafbe1}.chroma .go{color:#1f2328}.chroma .gl{text-decoration:underline}.chroma .w{color:#fff}html[data-theme=dark] .bg{color:#e6edf3}html[data-theme=dark] .chroma{color:#e6edf3;-webkit-text-size-adjust:none}html[data-theme=dark] .highlight .bg,html[data-theme=dark] .highlight .chroma{background-color:#0000!important}html[data-theme=dark] .chroma .err{color:#f85149}html[data-theme=dark] .chroma .lnlinks{color:inherit;outline:none;text-decoration:none}html[data-theme=dark] .chroma .lntd{vertical-align:top;border:0;margin:0;padding:0}html[data-theme=dark] .chroma .lntable{border-spacing:0;border:0;margin:0;padding:0}html[data-theme=dark] .chroma .hl{background-color:#6e7681}html[data-theme=dark] .chroma .lnt{white-space:pre;-webkit-user-select:none;user-select:none;color:#737679;margin-right:.4em;padding:0 .4em}html[data-theme=dark] .chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;color:#6e7681;margin-right:.4em;padding:0 .4em}html[data-theme=dark] .chroma .line{display:flex}html[data-theme=dark] .chroma .k{color:#ff7b72}html[data-theme=dark] .chroma .kc{color:#79c0ff}html[data-theme=dark] .chroma .kd,html[data-theme=dark] .chroma .kn{color:#ff7b72}html[data-theme=dark] .chroma .kp{color:#79c0ff}html[data-theme=dark] .chroma .kr,html[data-theme=dark] .chroma .kt{color:#ff7b72}html[data-theme=dark] .chroma .nc{color:#f0883e;font-weight:700}html[data-theme=dark] .chroma .no{color:#79c0ff;font-weight:700}html[data-theme=dark] .chroma .nd{color:#d2a8ff;font-weight:700}html[data-theme=dark] .chroma .ni{color:#ffa657}html[data-theme=dark] .chroma .ne{color:#f0883e;font-weight:700}html[data-theme=dark] .chroma .nl{color:#79c0ff;font-weight:700}html[data-theme=dark] .chroma .nn{color:#ff7b72}html[data-theme=dark] .chroma .py{color:#79c0ff}html[data-theme=dark] .chroma .nt{color:#7ee787}html[data-theme=dark] .chroma .nv,html[data-theme=dark] .chroma .vc,html[data-theme=dark] .chroma .vg,html[data-theme=dark] .chroma .vi,html[data-theme=dark] .chroma .vm{color:#79c0ff}html[data-theme=dark] .chroma .nf,html[data-theme=dark] .chroma .fm{color:#d2a8ff;font-weight:700}html[data-theme=dark] .chroma .l{color:#a5d6ff}html[data-theme=dark] .chroma .ld{color:#79c0ff}html[data-theme=dark] .chroma .s{color:#a5d6ff}html[data-theme=dark] .chroma .sa{color:#79c0ff}html[data-theme=dark] .chroma .sb,html[data-theme=dark] .chroma .sc{color:#a5d6ff}html[data-theme=dark] .chroma .dl{color:#79c0ff}html[data-theme=dark] .chroma .sd,html[data-theme=dark] .chroma .s2{color:#a5d6ff}html[data-theme=dark] .chroma .se,html[data-theme=dark] .chroma .sh{color:#79c0ff}html[data-theme=dark] .chroma .si,html[data-theme=dark] .chroma .sx{color:#a5d6ff}html[data-theme=dark] .chroma .sr{color:#79c0ff}html[data-theme=dark] .chroma .s1,html[data-theme=dark] .chroma .ss,html[data-theme=dark] .chroma .m,html[data-theme=dark] .chroma .mb,html[data-theme=dark] .chroma .mf,html[data-theme=dark] .chroma .mh,html[data-theme=dark] .chroma .mi,html[data-theme=dark] .chroma .il,html[data-theme=dark] .chroma .mo{color:#a5d6ff}html[data-theme=dark] .chroma .o,html[data-theme=dark] .chroma .ow{color:#ff7b72;font-weight:700}html[data-theme=dark] .chroma .c,html[data-theme=dark] .chroma .ch,html[data-theme=dark] .chroma .cm,html[data-theme=dark] .chroma .c1{color:#8b949e;font-style:italic}html[data-theme=dark] .chroma .cs,html[data-theme=dark] .chroma .cp,html[data-theme=dark] .chroma .cpf{color:#8b949e;font-style:italic;font-weight:700}html[data-theme=dark] .chroma .gd{color:#ffa198;background-color:#490202}html[data-theme=dark] .chroma .ge{font-style:italic}html[data-theme=dark] .chroma .gr{color:#ffa198}html[data-theme=dark] .chroma .gh{color:#79c0ff;font-weight:700}html[data-theme=dark] .chroma .gi{color:#56d364;background-color:#0f5323}html[data-theme=dark] .chroma .go,html[data-theme=dark] .chroma .gp{color:#8b949e}html[data-theme=dark] .chroma .gs{font-weight:700}html[data-theme=dark] .chroma .gu{color:#79c0ff}html[data-theme=dark] .chroma .gt{color:#ff7b72}html[data-theme=dark] .chroma .gl{text-decoration:underline}html[data-theme=dark] .chroma .w{color:#6e7681}#pagefind-search{--pagefind-ui-font:var(--font-ui);--pagefind-ui-text:var(--ink);--pagefind-ui-background:var(--bg);--pagefind-ui-border:var(--control-edge);--pagefind-ui-primary:var(--accent);--pagefind-ui-tag:var(--bg);--pagefind-ui-border-width:1px;--pagefind-ui-border-radius:8px;--pagefind-ui-image-border-radius:8px;--pagefind-ui-scale:.9}#pagefind-search .pagefind-ui__search-input{font-weight:500}#pagefind-search .pagefind-ui__search-input::placeholder{color:var(--ink-2);opacity:1}#pagefind-search .pagefind-ui__search-input:focus{outline:2px solid var(--accent);outline-offset:2px;border-color:var(--accent)}#pagefind-search .pagefind-ui__search-clear{color:var(--ink-2);font-size:var(--t-xs);font-weight:600}#pagefind-search .pagefind-ui__drawer{gap:var(--s-6)}#pagefind-search .pagefind-ui__filter-panel{flex:0 0 var(--rail);min-width:0}#pagefind-search .pagefind-ui__filter-name{font-size:var(--t-sm);font-weight:600}#pagefind-search .pagefind-ui__filter-label{font-size:var(--t-xs);color:var(--ink-2)}#pagefind-search .pagefind-ui__results-area{flex:1;min-width:min(100%,24rem)}#pagefind-search .pagefind-ui__message{font-size:var(--t-sm);color:var(--ink-2);font-weight:500}#pagefind-search .pagefind-ui__result{padding-block:var(--s-5);border-top:0;border-bottom:var(--hair)}#pagefind-search .pagefind-ui__result-title{font-size:var(--t-lg);letter-spacing:var(--track-head);font-weight:600}#pagefind-search .pagefind-ui__result-link{color:var(--ink);text-decoration:none}#pagefind-search .pagefind-ui__result-link:hover{color:var(--accent);text-decoration:underline;text-decoration-thickness:1px}#pagefind-search .pagefind-ui__result-excerpt{font-family:var(--font-text);font-size:var(--t-md);color:var(--ink-2);line-height:1.5}#pagefind-search mark{background:color-mix(in srgb,var(--accent) 22%,transparent);color:var(--ink);border-radius:2px;padding-inline:.1em}#pagefind-search .pagefind-ui__result-nested{margin-top:var(--s-2);padding-left:var(--s-4);border-left:var(--hair)}#pagefind-search .pagefind-ui__result-nested .pagefind-ui__result-link{font-size:var(--t-sm);font-weight:500}#pagefind-search .pagefind-ui__result-nested .pagefind-ui__result-link:before{content:none}#pagefind-search .pagefind-ui__result-tags{margin-top:var(--s-3);gap:var(--s-2)}#pagefind-search .pagefind-ui__result-tag{padding:.125rem var(--s-2);border:var(--hair-strong);border-radius:var(--r-1);color:var(--ink-2);font-size:var(--t-xs);background:0 0;font-weight:500}#pagefind-search .pagefind-ui__button{border:1px solid var(--control-edge);border-radius:var(--r-2);background:var(--bg);color:var(--ink);font-weight:600}#pagefind-search .pagefind-ui__button:hover{border-color:var(--ink);background:var(--wash)}@media(max-width:52rem){#pagefind-search .pagefind-ui__filter-panel{flex-basis:100%}}.chroma .line.diff.add,.highlight .line.diff.add{background:#22c55e2e;border-left:2px solid #22c55e99;width:100%;margin-left:-.25rem;padding-left:.25rem;display:inline-block}.chroma .line.diff.remove,.highlight .line.diff.remove{background:#ef44442e;border-left:2px solid #ef444499;width:100%;margin-left:-.25rem;padding-left:.25rem;display:inline-block}.chroma .line.highlighted,.highlight .line.highlighted{background:color-mix(in srgb,var(--accent) 10%,transparent);border-left:2px solid color-mix(in srgb,var(--accent) 60%,transparent);width:100%;margin-left:-.25rem;padding-left:.25rem;display:inline-block}html[data-theme=dark] .chroma .line.diff.add,html[data-theme=dark] .highlight .line.diff.add{background:#22c55e38}html[data-theme=dark] .chroma .line.diff.remove,html[data-theme=dark] .highlight .line.diff.remove{background:#ef444438}.code-block{position:relative}.code-block__file{border:1px solid color-mix(in srgb,var(--accent) 16%,var(--rule));background:color-mix(in srgb,var(--bg) 80%,var(--wash));font-family:var(--font-mono);color:var(--ink);border-bottom:0;border-radius:.5rem .5rem 0 0;margin-bottom:-.25rem;padding:.25rem .65rem;font-size:.78rem;display:inline-block}