@font-face{font-display:swap;font-family:Source Sans\ 3;font-style:normal;font-weight:200 900;src:url(/fonts/source-sans-3-latin-wght-normal.woff2) format("woff2")}.blog-page{--blog-accent:#9d4310;font-family:Source Sans\ 3,sans-serif;font-size:1.1875rem;line-height:1.6}.dark .blog-page{--blog-accent:#ffae6e}.blog-page :is(h1,h2,h3,p,figure,blockquote){margin:0}.blog-page :is(h1,h2,h3){color:var(--ink);font-family:Source Sans\ 3,sans-serif;font-weight:600;letter-spacing:-.025em}.blog-page h1{font-size:clamp(3rem,5.5vw,4.5rem);line-height:1.08}.blog-page h2{font-size:2rem;line-height:1.2}.blog-page h3{font-size:1.625rem;line-height:1.25}.blog-page a{text-underline-offset:.2em}.blog-page a:hover{color:var(--blog-accent)}.blog-page :is(a,button,input,summary):focus-visible{outline:2px solid var(--blog-accent);outline-offset:5px}.blog-index-content{margin-inline:auto;padding-inline:2rem;width:min(100%,68rem)}.blog-index-intro{padding-block:9.5rem 3rem}.blog-index-intro>p{color:var(--ink-muted);font-size:1.375rem;margin-top:1.5rem;max-width:56ch}.blog-search{margin-top:2rem}.blog-search label{display:block;font-size:1rem;font-weight:600;margin-bottom:.6rem}.blog-search-controls{align-items:center;display:flex;flex-wrap:wrap;gap:.75rem}.blog-search input{background:var(--canvas);border:1px solid var(--line-strong);border-radius:4px;color:var(--ink);font:inherit;font-size:1rem;min-height:3rem;min-width:0;padding:.6rem .85rem;width:min(100%,27rem)}.blog-search input::-moz-placeholder{color:var(--ink-muted);opacity:1}.blog-search input::placeholder{color:var(--ink-muted);opacity:1}.blog-search button{background:var(--ink);border-radius:4px;color:var(--canvas);font-size:1rem;font-weight:600;min-height:3rem;padding:.6rem 1.2rem}.blog-search button:hover{background:var(--blog-accent)}.blog-index-section{border-top:1px solid var(--line-strong);padding-block:2.5rem 3.5rem}.blog-index-section h2{color:var(--blog-accent);font-size:1rem;font-weight:600;letter-spacing:.08em;line-height:1.5;text-transform:uppercase}.blog-featured{-moz-column-gap:3rem;column-gap:3rem;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);margin-top:2rem}.blog-featured article:first-child{grid-row:span 2}.blog-featured article:first-child h3{font-size:2.5rem;line-height:1.15}.blog-featured article:last-child{border-top:1px solid var(--line);margin-top:1.5rem;padding-top:1.5rem}.blog-featured article>p{color:var(--ink-muted);font-size:1.125rem;margin-top:.8rem}.blog-meta{color:var(--ink-muted);display:flex;flex-wrap:wrap;font-size:.9375rem;gap:.3rem 1.25rem;line-height:1.6}.blog-featured .blog-meta{margin-top:1.25rem}.blog-section-heading{align-items:baseline;display:flex;flex-wrap:wrap;gap:.5rem 2rem;justify-content:space-between}.blog-section-heading>p{color:var(--ink-muted);font-size:1rem;overflow-wrap:anywhere}.blog-note-row{border-bottom:1px solid var(--line);display:grid;gap:2rem;grid-template-columns:9rem minmax(0,1fr);padding-block:1.75rem}.blog-note-row:first-child{margin-top:1rem}.blog-note-date{color:var(--ink-muted);display:flex;flex-direction:column;font-size:.9375rem;gap:.25rem}.blog-note-row h3{max-width:55ch}.blog-note-row p{color:var(--ink-muted);font-size:1.125rem;margin-top:.75rem;max-width:70ch}.blog-all-notes{padding-bottom:5rem}.blog-text-link{align-items:center;display:inline-flex;font-size:1rem;font-weight:600;min-height:2.75rem;text-decoration:underline;text-decoration-color:var(--line-strong)}.blog-empty{padding-block:2rem}.blog-empty p{margin-bottom:.5rem}.blog-reading-content{margin-inline:auto;padding-inline:2rem;width:min(100%,56rem)}.blog-post-intro{padding-block:7.5rem 2.5rem}.blog-back{align-items:center;color:var(--ink-muted);display:inline-flex;font-size:1rem;margin-bottom:1.75rem;min-height:2.75rem;text-decoration:underline;text-decoration-color:var(--line-strong)}.blog-post-intro h1{font-size:clamp(2.375rem,4.5vw,3.5rem);line-height:1.12;max-width:26ch;overflow-wrap:anywhere}.blog-post-intro .blog-meta{margin-top:1.5rem}.blog-post-tags{color:var(--ink-muted);font-size:.9375rem;margin-top:.65rem!important}.blog-markdown{margin-top:1rem}.blog-page .blog-content{color:var(--ink);font-family:Source Sans\ 3,sans-serif;font-size:1.25rem;line-height:1.75;max-width:72ch;overflow-wrap:anywhere}.blog-page .blog-content p{margin:0 0 1.4rem;text-align:left}.blog-page .blog-content p:first-child{border:0;color:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;margin-bottom:1.4rem;padding:0}.blog-page .blog-content :is(h2,h3,h4){border:0;color:var(--ink);font-family:Source Sans\ 3,sans-serif;font-weight:600;letter-spacing:-.02em;padding:0}.blog-page .blog-content h2{font-size:2rem;line-height:1.2;margin:3rem 0 1rem}.blog-page .blog-content h3{font-size:1.5rem;line-height:1.3;margin:2.25rem 0 .9rem}.blog-page .blog-content h4{font-size:1.25rem;line-height:1.35;margin:2rem 0 .75rem}.blog-page .blog-content :is(strong,b){color:var(--ink);font-weight:650}.blog-page .blog-content em{color:inherit}.blog-page .blog-content a{color:var(--blog-accent);font-weight:inherit;text-decoration:underline;text-decoration-color:currentColor;text-underline-offset:.18em}.blog-page .blog-content a:hover{color:var(--ink)}.blog-page .blog-content :is(ul,ol){margin:0 0 1.5rem;padding-left:1.4rem}.blog-page .blog-content ul{list-style:disc}.blog-page .blog-content ol{list-style:decimal}.blog-page .blog-content li{line-height:inherit;margin-bottom:.6rem;padding-left:.25rem}.blog-page .blog-content li::marker{color:var(--blog-accent)}.blog-page .blog-content code{background:var(--surface-muted);border-radius:3px;color:var(--ink);font-family:var(--font-mono);font-size:.82em;padding:.1em .25em}.blog-page .blog-content pre{background:var(--surface-muted);border:1px solid var(--line);border-radius:6px;color:var(--ink);font-size:.9375rem;line-height:1.7;margin:1.75rem 0;max-width:100%;overflow-x:auto;padding:1.25rem;scrollbar-color:var(--line-strong) transparent}.blog-page .blog-content pre code{background:none;color:inherit;font-size:inherit;overflow-wrap:normal;padding:0;white-space:pre}.blog-page .blog-content blockquote{border:0;border-block:1px solid var(--line-strong);color:var(--ink);margin:2rem 0;padding:1.25rem 0}.blog-page .blog-content blockquote p:last-child{margin-bottom:0}.blog-page .blog-content figure{margin:2rem 0}.blog-page .blog-content img{background:var(--surface-muted);border:0;border-radius:6px;box-shadow:none;height:auto;max-width:100%;width:100%}.blog-page .blog-content figcaption{color:var(--ink-muted);font-size:1rem;line-height:1.5;margin-top:.75rem;text-align:left}.blog-page .blog-content hr{border:0;border-top:1px solid var(--line-strong);margin:2.5rem 0}.blog-page .blog-content table{background:transparent;border:0;border-collapse:collapse;border-radius:0;box-shadow:none;display:block;margin:2rem 0;max-width:100%;overflow-x:auto;width:100%}.blog-page .blog-content thead{background:var(--surface-muted)}.blog-page .blog-content :is(th,td){border:0;border-bottom:1px solid var(--line);color:var(--ink);font-size:1rem;line-height:1.5;min-width:8.5rem;padding:.8rem;text-align:left;text-transform:none;white-space:normal}.blog-page .blog-content :is(th,td):first-child{min-width:7rem;white-space:normal}.blog-page .blog-content th{font-weight:650}.blog-post-footer{border-top:1px solid var(--line-strong);gap:1rem 2rem;justify-content:space-between;margin-top:3rem;padding-block:1.5rem 4rem}.blog-post-footer,.blog-social-actions{align-items:center;display:flex;flex-wrap:wrap}.blog-social-actions{gap:.5rem 1.25rem}.blog-social-actions button{align-items:center;color:var(--ink);display:inline-flex;font-size:1rem;gap:.5rem;justify-content:center;min-height:2.75rem}.blog-social-actions button:hover{color:var(--blog-accent)}.blog-social-actions svg{height:18px;width:18px}@media (max-width:740px){.blog-index-content{padding-inline:1.5rem}.blog-index-intro{padding-block:7.25rem 2rem}.blog-index-intro>p{font-size:1.25rem}.blog-search-controls input{flex:1 1 12rem;width:100%}.blog-index-section{padding-block:2rem}.blog-featured{gap:1.5rem;grid-template-columns:minmax(0,1fr);margin-top:1.5rem}.blog-featured article:first-child{grid-row:auto}.blog-featured article:first-child h3{font-size:2rem}.blog-featured article+article{border-top:1px solid var(--line);margin:0;padding-top:1.5rem}.blog-note-row{gap:.65rem;grid-template-columns:minmax(0,1fr);padding-block:1.5rem}.blog-note-date{flex-direction:row;flex-wrap:wrap;gap:.3rem 1.25rem}.blog-note-row h3{font-size:1.5rem}.blog-reading-content{padding-inline:1.5rem}.blog-post-intro{padding-block:6rem 2rem}.blog-page .blog-content{font-size:1.125rem;line-height:1.75}.blog-page .blog-content h2{font-size:1.75rem}.blog-page .blog-content pre{font-size:.875rem;padding:1rem}.blog-page .blog-content table{margin-inline:0;width:100%}.blog-page .blog-content :is(th,td){min-width:9rem;padding:.7rem}.blog-post-footer{align-items:flex-start;flex-direction:column;padding-bottom:3rem}}.blog-reading-content{width:min(100%,72rem)}.blog-post-footer,.blog-post-intro{max-width:49rem}.blog-reading-layout{align-items:start;display:grid;gap:3rem;grid-template-areas:"body tools";grid-template-columns:minmax(0,1fr) 13rem}.blog-reading-layout>.blog-content{grid-area:body;min-width:0;width:100%}.blog-content :is(h2,h3,h4)[id]{scroll-margin-top:7rem}.article-tools-rail{grid-area:tools;min-width:0;position:static}.article-tools-rail[data-sticky=true]{position:sticky;top:var(--article-tools-top,6.5rem)}.article-reading-tools{font-size:.9375rem;line-height:1.45;padding-bottom:.5rem}.article-progress{margin-bottom:1.75rem}.article-progress-label{color:var(--ink-muted);display:flex;font-size:.875rem;font-variant-numeric:tabular-nums;gap:.5rem;justify-content:space-between;margin-bottom:.6rem}.article-mobile-progress progress,.article-progress progress{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--line);border:0;border-radius:0;color:var(--blog-accent);display:block;height:3px;width:100%}.article-mobile-progress progress::-webkit-progress-bar,.article-progress progress::-webkit-progress-bar{background:var(--line)}.article-mobile-progress progress::-webkit-progress-value,.article-progress progress::-webkit-progress-value{background:var(--blog-accent)}.article-mobile-progress progress::-moz-progress-bar,.article-progress progress::-moz-progress-bar{background:var(--blog-accent)}.blog-page .article-contents h2{font-size:1rem;font-weight:600;letter-spacing:0;margin:0 0 .8rem}.article-section-list{list-style:none;margin:0;padding:0}.article-section-list li+li{margin-top:.1rem}.article-section-list a{color:var(--ink-muted);display:block;overflow-wrap:anywhere;padding:.45rem 0;text-decoration:none}.article-section-list a[aria-current=location]{color:var(--blog-accent);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.25em}.article-section-list .article-subsection{font-size:.875rem;padding-left:.9rem}.article-mobile-progress{--blog-accent:var(--focus-ring);background:var(--canvas);color:var(--ink-muted);display:none;font-family:Source Sans\ 3,sans-serif;inset:100% 0 auto;pointer-events:none;position:absolute}.article-mobile-progress-label{display:flex;font-size:.8125rem;font-variant-numeric:tabular-nums;justify-content:space-between;line-height:1.5;padding:.15rem max(1.25rem,env(safe-area-inset-right)) .15rem max(1.25rem,env(safe-area-inset-left))}.article-mobile-progress progress{height:4px}.article-mobile-progress--fallback{display:block}@media (max-width:1050px){.blog-reading-content{width:min(100%,56rem)}.blog-reading-layout{display:flex;flex-direction:column;gap:0}.article-tools-rail,.article-tools-rail[data-sticky=true]{margin-bottom:2rem;position:static;width:100%}.article-contents{border-block:1px solid var(--line-strong);padding-block:1rem}.article-section-list a{align-items:center;display:flex;min-height:2.75rem}.article-progress{display:none}.article-mobile-progress{display:block}}@media (min-width:650px) and (max-width:1050px){.article-section-list{-moz-columns:2;column-count:2;-moz-column-gap:2rem;column-gap:2rem}.article-section-list li{-moz-column-break-inside:avoid;break-inside:avoid}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@media print{.article-mobile-progress,.article-tools-rail{display:none}.blog-reading-layout{display:block}}.article-section-list li{align-items:start;display:grid;grid-template-columns:minmax(0,1fr) 2.75rem}.article-section-list a{min-width:0}.article-section-list .copy-control{display:contents}.copy-button{color:var(--ink);cursor:pointer;font:inherit;min-height:2.75rem}.copy-button:hover{color:var(--blog-accent)}.copy-button:disabled{cursor:wait;opacity:.6}.copy-control--icon .copy-button{align-items:center;color:var(--ink-muted);display:inline-flex;justify-content:center;width:2.75rem}.copy-control--icon .copy-button:hover{color:var(--blog-accent)}.copy-fallback{color:var(--ink-muted);display:block;font-size:.9375rem;grid-column:1/-1;margin-block:.5rem!important;width:100%}.copy-fallback textarea{background:var(--canvas);border:1px solid var(--line-strong);border-radius:3px;color:var(--ink);display:block;font:.9375rem/1.5 var(--font-mono);margin-top:.5rem;max-height:12rem;padding:.65rem;resize:vertical;width:100%}.article-share-controls{display:grid;font-size:1rem;gap:.15rem;grid-template-columns:minmax(0,1fr)}.article-share-controls>a{align-items:center;display:inline-flex;gap:.7rem;min-height:2.75rem;text-decoration:none;width:100%}.article-share-controls :is(a,button):hover{color:var(--blog-accent)}.article-share-controls svg{flex-shrink:0;height:18px;width:18px}.article-share-controls .copy-button{align-items:center;display:flex;gap:.7rem;text-align:left;width:100%}.article-share-controls .copy-control{max-width:100%;min-width:0}.article-sharing{scroll-margin-top:7rem;width:100%}.article-sharing-heading{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;justify-content:space-between;margin-bottom:.75rem}.blog-page .article-sharing-heading h2{font-size:1.5rem}.blog-like-action{align-items:center;color:var(--ink);display:inline-flex;font-size:1rem;gap:.5rem;min-height:2.75rem}.blog-like-action:hover{color:var(--blog-accent)}.blog-like-action:disabled{cursor:wait;opacity:.6}.blog-like-action svg{height:18px;width:18px}.article-like-status{color:var(--blog-accent);font-size:1rem}.article-like-status:empty{display:none}@media print{.article-sharing,.copy-control{display:none}}.blog-post-tags{display:flex;flex-wrap:wrap;gap:0 1.25rem;list-style:none;padding:0}.blog-post-tags a{align-items:center;display:inline-flex;min-height:2.75rem;text-decoration:underline;text-decoration-color:var(--line-strong);text-underline-offset:.2em}.blog-post-tags a:hover{color:var(--blog-accent)}.blog-related{max-width:49rem;padding-block:0 4rem}.blog-page .blog-related h2{font-size:1.5rem;font-weight:600;margin-bottom:1.5rem}.blog-related ul{list-style:none;margin:0;padding:0}.blog-related li{border-top:1px solid var(--line);padding-block:1.25rem}.blog-page .blog-related h3{font-size:1.5rem;font-weight:600;line-height:1.3;overflow-wrap:anywhere}.blog-related h3 a{display:inline-block;text-decoration:underline;text-decoration-color:var(--line-strong);text-decoration-thickness:1px;text-underline-offset:.18em}.blog-related h3 a:hover{color:var(--blog-accent)}.blog-related .blog-meta{margin-top:.5rem}@media (max-width:740px){.blog-page .blog-related h3{font-size:1.375rem}}@media print{.blog-related{display:none}}