.blog-shell{max-width:660px;margin:0 auto;padding:5rem 1.5rem 6rem;color:var(--color-ink,#1a1a1a);background:var(--bg-primary,#fdfcfa);font-family:var(--font-crimson-pro),"Iowan Old Style","Source Serif Pro",Georgia,serif;line-height:1.72;font-feature-settings:"kern" 1,"liga" 1,"onum" 1;isolation:isolate}[data-theme=dark] .blog-shell{color:var(--color-ink,#f5f5f4);background:var(--bg-primary,#0e110f)}.blog-shell .skip-link{position:absolute;left:-10000px}.blog-shell .skip-link:focus{position:static}.blog-eyebrow{font-family:var(--font-geist-mono),ui-monospace,monospace;font-size:.78rem;letter-spacing:.02em;text-transform:lowercase;margin:0 0 3rem;opacity:.6;font-feature-settings:"kern" 1,"liga" 1}.blog-eyebrow a{color:inherit;text-decoration:none}.blog-eyebrow a:hover{text-decoration:underline;text-underline-offset:3px}.blog-eyebrow-cursor{color:var(--color-accent,#2d5a3d);display:inline-block;animation:blogCursorBlink 1.5s infinite}@keyframes blogCursorBlink{0%,to{opacity:1}50%{opacity:0}}@media (prefers-reduced-motion:reduce){.blog-eyebrow-cursor{animation:none}}.blog-index-header{margin:0 0 2.5rem}.blog-list-items{list-style:none;padding:0;margin:0}.blog-list-item{padding:1.75rem 0;border-top:1px solid color-mix(in srgb,currentColor 10%,transparent)}.blog-list-item:last-child{border-bottom:1px solid color-mix(in srgb,currentColor 10%,transparent)}.blog-list-title{font-family:var(--font-geist-sans),-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:1.375rem;font-weight:500;line-height:1.25;letter-spacing:-.01em;margin:0 0 .4rem}.blog-list-title a{color:inherit;text-decoration:none;background-image:linear-gradient(currentColor,currentColor);background-size:0 1px;background-repeat:no-repeat;background-position:0 100%;transition:background-size .26s cubic-bezier(.16,1,.3,1)}.blog-list-title a:focus-visible,.blog-list-title a:hover{background-size:100% 1px}.blog-list-meta{font-family:var(--font-geist-mono),ui-monospace,monospace;font-size:.78rem;letter-spacing:.02em;opacity:.55;margin:0;font-feature-settings:"kern" 1,"liga" 1,"onum" 1}.blog-empty{font-style:italic;opacity:.65}.blog-index-footer{margin-top:4rem;font-family:var(--font-geist-mono),ui-monospace,monospace;font-size:.78rem;letter-spacing:.02em;opacity:.5}.blog-index-footer a{color:inherit;text-decoration:none}.blog-index-footer a:hover{text-decoration:underline;text-underline-offset:3px}.blog-article-header{margin-bottom:3.5rem}.blog-article-header h1{font-family:var(--font-geist-sans),-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:clamp(2rem,4.2vw,2.75rem);font-weight:500;line-height:1.08;letter-spacing:-.02em;margin:0 0 1.25rem}.blog-article-dek{font-family:var(--font-crimson-pro),Georgia,serif;font-style:italic;font-size:1.3rem;font-weight:400;line-height:1.45;opacity:.78;margin:0 0 1.5rem;max-width:56ch;font-feature-settings:"kern" 1,"liga" 1,"onum" 1}.blog-article-meta{font-family:var(--font-geist-mono),ui-monospace,monospace;font-size:.78rem;letter-spacing:.02em;opacity:.55;margin:0;font-feature-settings:"kern" 1,"liga" 1,"onum" 1}.blog-article-body{font-family:var(--font-crimson-pro),"Iowan Old Style","Source Serif Pro",Georgia,serif;font-size:1.1875rem;line-height:1.72;font-feature-settings:"kern" 1,"liga" 1,"onum" 1}.blog-article-body>*+*{margin-top:1.4rem}.blog-article-body h2,.blog-article-body h3,.blog-article-body h4{font-family:var(--font-geist-sans),-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-weight:500;letter-spacing:-.01em;line-height:1.2;scroll-margin-top:5rem}.blog-article-body h2{font-size:1.5rem;margin-top:3.5rem}.blog-article-body h3{font-size:1.25rem;margin-top:2.5rem}.blog-article-body h4{font-size:1.125rem;margin-top:2rem}.blog-article-body a{color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:color-mix(in srgb,currentColor 45%,transparent)}.blog-article-body a:hover{text-decoration-color:currentColor}.blog-article-body .heading-anchor{margin-left:.4em;color:inherit;opacity:0;text-decoration:none;font-weight:400;transition:opacity .2s ease}.blog-article-body :is(h1,h2,h3,h4):hover .heading-anchor{opacity:.35}.blog-article-body ol,.blog-article-body ul{padding-left:1.5rem}.blog-article-body li+li{margin-top:.4rem}.blog-article-body blockquote{border-left:2px solid color-mix(in srgb,currentColor 25%,transparent);padding-left:1.25rem;margin-left:0;font-style:italic;opacity:.88}.blog-article-body img,.blog-article-body video{display:block;max-width:100%;height:auto;margin:2rem auto;border-radius:4px}.blog-article-body table{width:100%;border-collapse:collapse;font-size:.95rem;margin:2rem 0}.blog-article-body td,.blog-article-body th{text-align:left;padding:.6rem .75rem;border-bottom:1px solid color-mix(in srgb,currentColor 12%,transparent)}.blog-article-body th{font-weight:600}.blog-article-body :not(pre)>code{font-family:var(--font-geist-mono),ui-monospace,monospace;font-size:.9em;padding:.05em .25em;background:color-mix(in srgb,currentColor 4%,transparent);border-radius:3px;font-feature-settings:"kern" 1,"liga" 1}.blog-article-body pre{background:var(--color-code-bg,#0d1117);color:var(--color-code-fg,#e6edf3);padding:1rem 1.25rem;border-radius:6px;overflow-x:auto;font-size:.875rem;line-height:1.65;margin:2rem 0}.blog-article-body pre code{background:transparent;font-size:inherit;color:inherit}.blog-article-body pre code,.blog-section-break{font-family:var(--font-geist-mono),ui-monospace,monospace;padding:0}.blog-section-break{font-size:.85rem;letter-spacing:.3em;text-align:center;opacity:.35;margin:3.5rem 0!important;border:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.blog-article-body .footnotes{font-size:1rem;margin-top:4rem;padding-top:1.5rem;border-top:1px solid color-mix(in srgb,currentColor 12%,transparent);opacity:.85;font-family:var(--font-crimson-pro),Georgia,serif}.blog-article-body .footnotes ol{padding-left:1.25rem}.blog-article-footer{margin-top:4.5rem;text-align:center}.blog-article-endmark{font-size:.85rem;letter-spacing:.3em;opacity:.35;margin:0 0 2.5rem;-webkit-user-select:none;-moz-user-select:none;user-select:none}.blog-article-bio,.blog-article-endmark{font-family:var(--font-geist-mono),ui-monospace,monospace}.blog-article-bio{font-size:.78rem;letter-spacing:.02em;opacity:.55;margin:0}.blog-article-bio a{color:inherit;text-decoration:none;margin-left:.4rem}.blog-article-bio a:hover{text-decoration:underline;text-underline-offset:3px}.alice-figure{margin:2.5rem 0;--alice-plum-fill:#ede4f0;--alice-plum-stroke:#6b4f7a;--alice-terra-fill:#f5e4dc;--alice-terra-stroke:#9a5640;--alice-ochre-fill:#f4ead0;--alice-ochre-stroke:#8a6f1f;--alice-sage-fill:#e6ece2;--alice-sage-stroke:#5a7355;--alice-accent-fill:#e3ebe6;--alice-accent-stroke:#2c5949;--alice-divider:rgba(10,10,10,0.18);--alice-secondary:var(--text-secondary,#4d4d4d)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .alice-figure{--alice-plum-fill:#2a1f30;--alice-plum-stroke:#b89dc4;--alice-terra-fill:#2e1d17;--alice-terra-stroke:#d4a08a;--alice-ochre-fill:#2b2517;--alice-ochre-stroke:#c9b56a;--alice-sage-fill:#1d2620;--alice-sage-stroke:#9bb293;--alice-accent-fill:#1a2521;--alice-accent-stroke:#8db9a5;--alice-divider:rgba(255,255,255,0.18)}}[data-theme=dark] .alice-figure{--alice-plum-fill:#2a1f30;--alice-plum-stroke:#b89dc4;--alice-terra-fill:#2e1d17;--alice-terra-stroke:#d4a08a;--alice-ochre-fill:#2b2517;--alice-ochre-stroke:#c9b56a;--alice-sage-fill:#1d2620;--alice-sage-stroke:#9bb293;--alice-accent-fill:#1a2521;--alice-accent-stroke:#8db9a5;--alice-divider:rgba(255,255,255,0.18)}.alice-figure svg{display:block;width:100%;height:auto;font-family:var(--font-geist-sans),-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.alice-figure .alice-header{fill:var(--alice-secondary);font-size:12px;font-weight:500}.alice-figure .alice-caption{fill:var(--alice-secondary);font-size:12px;font-weight:400;font-style:italic;opacity:.7}.alice-figure .alice-divider{stroke:var(--alice-divider);stroke-width:.5;stroke-dasharray:3 3;fill:none}.alice-figure .alice-pill{stroke-width:1}.alice-figure .alice-pill--plum{fill:var(--alice-plum-fill);stroke:var(--alice-plum-stroke)}.alice-figure .alice-pill--terra{fill:var(--alice-terra-fill);stroke:var(--alice-terra-stroke)}.alice-figure .alice-pill--ochre{fill:var(--alice-ochre-fill);stroke:var(--alice-ochre-stroke)}.alice-figure .alice-pill--sage{fill:var(--alice-sage-fill);stroke:var(--alice-sage-stroke)}.alice-figure .alice-pill-label{font-size:14px;font-weight:500}.alice-figure .alice-pill-label--plum{fill:var(--alice-plum-stroke)}.alice-figure .alice-pill-label--terra{fill:var(--alice-terra-stroke)}.alice-figure .alice-pill-label--ochre{fill:var(--alice-ochre-stroke)}.alice-figure .alice-pill-label--sage{fill:var(--alice-sage-stroke)}.alice-figure .alice-node-leaf{fill:var(--alice-accent-fill);stroke:var(--alice-accent-stroke);stroke-width:1}.alice-figure .alice-node-center{fill:var(--alice-accent-fill);stroke:var(--alice-accent-stroke);stroke-width:1.25}.alice-figure .alice-node-title{font-size:14px;font-weight:600;fill:var(--alice-accent-stroke)}.alice-figure .alice-node-subtitle{opacity:.75}.alice-figure .alice-leaf-label,.alice-figure .alice-node-subtitle{font-size:12px;font-weight:400;fill:var(--alice-accent-stroke)}.alice-figure .alice-connector{stroke:var(--alice-accent-stroke);stroke-width:1;stroke-opacity:.5;fill:none}.hljs-built_in,.hljs-keyword,.hljs-name,.hljs-selector-tag{color:#ff7b72}.hljs-attr,.hljs-string,.hljs-template-tag,.hljs-template-variable{color:#a5d6ff}.hljs-comment,.hljs-quote{color:#8b949e;font-style:italic}.hljs-bullet,.hljs-literal,.hljs-number,.hljs-symbol{color:#79c0ff}.hljs-section,.hljs-title{color:#d2a8ff}.hljs-class,.hljs-link,.hljs-meta,.hljs-regexp,.hljs-type,.hljs-variable{color:#ffa657}.hljs-tag{color:#7ee787}.hljs-deletion{color:#ffdcd7;background:#67060c}.hljs-addition{color:#aff5b4;background:#033a16}