:root{color-scheme:light dark;--color-bg: #ffffff;--color-bg-elevated: #ffffff;--color-bg-subtle: #faf7f2;--color-surface: var(--color-bg);--color-surface-raised: var(--color-bg-elevated);--color-text: #0f172a;--color-text-muted: #475569;--color-text-subtle: #64748b;--color-border: color-mix(in oklab, var(--color-text) 12%, transparent);--color-border-strong: color-mix(in oklab, var(--color-text) 22%, transparent);--color-accent: #92400e;--color-accent-hover: #7c2d12;--color-accent-contrast: #ffffff;--color-accent-ink: var(--color-accent-contrast);--color-accent-subtle: color-mix(in oklab, var(--color-accent) 8%, var(--color-bg));--color-accent-border: color-mix(in oklab, var(--color-accent) 30%, transparent);--color-code-bg: #f5f2ec;--color-code-inline-bg: #efebe3;--color-selection-bg: color-mix(in oklab, var(--color-accent) 22%, transparent);--color-focus-ring: var(--color-accent);--color-focus-ring-glow: color-mix(in oklab, var(--color-accent) 28%, transparent);--color-shadow: rgba(15, 23, 42, .08);--viz-cursor: var(--color-accent);--viz-resolved: #16a34a;--viz-muted: #94a3b8;--viz-popped: #dc2626;--viz-default: #475569;--viz-panel-bg: #ffffff;--viz-panel-border: var(--color-border);--viz-caption-bg: #f1f5f9;--viz-code-bg: #0f172a;--viz-code-text: #e2e8f0;--viz-code-active-bg: color-mix(in oklab, var(--color-accent) 25%, transparent);--diagram-primary: #ecd8bd;--diagram-primary-text: #0f172a;--diagram-secondary: #ddd2c4;--diagram-secondary-text: #0f172a;--diagram-tertiary: #dce6d6;--diagram-tertiary-text: #0f172a;--diagram-quaternary: #ebcbb8;--diagram-quaternary-text: #0f172a;--diagram-line: #6b6258;--diagram-note-bg: #f6ede2;--diagram-note-border: #c59667;--diagram-note-text: #0f172a;--callout-note-border: #64748b;--callout-note-bg: #f1f5f9;--callout-insight-border: var(--color-accent);--callout-insight-bg: var(--color-accent-subtle);--callout-warn-border: #ea580c;--callout-warn-bg: #fff7ed;--callout-tip-border: #16a34a;--callout-tip-bg: #f0fdf4;--font-sans: var(--font-atkinson), ui-sans-serif, system-ui, sans-serif;--font-display: var(--font-fraunces), "Iowan Old Style", "Source Serif 4", Georgia, serif;--font-mono: ui-monospace, "SF Mono", "Menlo", "Consolas", monospace;--font-size-base: clamp(16px, .6vw + 14px, 18px);--line-height-prose: 1.65;--line-height-tight: 1.25;--measure: 68ch;--measure-narrow: 52ch;--measure-wide: 80ch;--illustration-fg: var(--color-text);--illustration-bg: var(--color-bg);--illustration-accent: var(--color-accent);--dur-fast: .12s;--dur-base: .2s;--dur-slow: .32s;--ease-standard: cubic-bezier(.4, 0, .2, 1);--ease-emphasized: cubic-bezier(.2, 0, 0, 1);--ease-decel: cubic-bezier(0, 0, .2, 1);--ease-accel: cubic-bezier(.4, 0, 1, 1);--ease-out-quart: cubic-bezier(.25, 1, .5, 1);--ease-in-out-quint: cubic-bezier(.83, 0, .17, 1);--content-width: 720px;--page-padding: 1.25rem}[data-theme=dark]{--color-bg: #0b0d10;--color-bg-elevated: #14171b;--color-bg-subtle: #101317;--color-surface: var(--color-bg);--color-surface-raised: var(--color-bg-elevated);--color-text: #e8e8e7;--color-text-muted: #b6b7ba;--color-text-subtle: #8b8d92;--color-border: color-mix(in oklab, var(--color-text) 20%, transparent);--color-border-strong: color-mix(in oklab, var(--color-text) 34%, transparent);--color-accent: #f4b66a;--color-accent-hover: #f8c88a;--color-accent-contrast: #1a1206;--color-accent-ink: var(--color-accent-contrast);--color-accent-subtle: color-mix(in oklab, var(--color-accent) 10%, var(--color-bg-elevated));--color-accent-border: color-mix(in oklab, var(--color-accent) 34%, transparent);--color-code-bg: #0e1115;--color-code-inline-bg: #181c22;--color-selection-bg: color-mix(in oklab, var(--color-accent) 30%, var(--color-bg));--color-focus-ring: var(--color-accent);--color-focus-ring-glow: color-mix(in oklab, var(--color-accent) 32%, transparent);--color-shadow: rgba(0, 0, 0, .5);--viz-cursor: var(--color-accent);--viz-resolved: #4ade80;--viz-muted: #64748b;--viz-popped: #f87171;--viz-default: #334155;--viz-panel-bg: var(--color-bg-elevated);--viz-panel-border: var(--color-border);--viz-caption-bg: var(--color-bg-subtle);--viz-code-bg: #05070a;--viz-code-text: #e2e8f0;--viz-code-active-bg: color-mix(in oklab, var(--color-accent) 28%, transparent);--diagram-primary: #5a4631;--diagram-primary-text: #e8e8e7;--diagram-secondary: #2f343b;--diagram-secondary-text: #e8e8e7;--diagram-tertiary: #344136;--diagram-tertiary-text: #e8e8e7;--diagram-quaternary: #5a3a2d;--diagram-quaternary-text: #e8e8e7;--diagram-line: #b6b7ba;--diagram-note-bg: #2a2119;--diagram-note-border: #a87a52;--diagram-note-text: #e8e8e7;--callout-note-border: color-mix(in oklab, var(--color-text) 40%, transparent);--callout-note-bg: color-mix(in oklab, var(--color-text) 4%, var(--color-bg-elevated));--callout-insight-border: var(--color-accent);--callout-insight-bg: var(--color-accent-subtle);--callout-warn-border: #fb923c;--callout-warn-bg: color-mix(in oklab, #fb923c 12%, var(--color-bg-elevated));--callout-tip-border: #4ade80;--callout-tip-bg: color-mix(in oklab, #4ade80 10%, var(--color-bg-elevated));--illustration-fg: var(--color-text);--illustration-bg: var(--color-bg);--illustration-accent: var(--color-accent)}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:5rem;scrollbar-gutter:stable;overscroll-behavior-y:none;-webkit-text-size-adjust:100%;scrollbar-width:thin;scrollbar-color:var(--color-border-strong) transparent}html::-webkit-scrollbar{width:8px;height:8px}html::-webkit-scrollbar-track{background:transparent}html::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:4px;border:2px solid transparent;background-clip:content-box}html::-webkit-scrollbar-thumb:hover{background:var(--color-text-subtle);border:2px solid transparent;background-clip:content-box}body{font-family:var(--font-sans);font-optical-sizing:auto;margin:0;padding:0;background:var(--color-bg);color:var(--color-text);font-size:var(--reader-font-size, var(--font-size-base));line-height:var(--line-height-prose);text-align:left;word-wrap:break-word;overflow-wrap:break-word;accent-color:var(--color-accent);caret-color:var(--color-accent);-webkit-tap-highlight-color:transparent;transition:background-color var(--dur-base) var(--ease-standard),color var(--dur-base) var(--ease-standard)}@media(min-width:640px){body{font-size:clamp(17px,.5vw + 15px,20px)}}::selection{background:var(--color-selection-bg);color:var(--color-text)}main{width:var(--content-width);max-width:calc(100% - 2em);margin:auto;padding:2.5em 1em}h1,h2,h3,h4,h5,h6{margin:1.5em 0 .5rem;color:var(--color-text);line-height:var(--line-height-tight);font-weight:700;scroll-margin-top:5rem;font-optical-sizing:auto;text-wrap:balance;letter-spacing:-.01em}h1:first-child,h2:first-child{margin-top:0}h1{font-size:clamp(2rem,1.2vw + 1.75rem,2.5rem)}h2{font-size:clamp(1.45rem,.6vw + 1.25rem,1.75rem)}h3{font-size:clamp(1.2rem,.3vw + 1.1rem,1.375rem)}h4{font-size:1.125rem}@media(max-width:640px){h1{font-size:1.9rem}h2{font-size:1.4rem}}.post-article>h1:first-child,.post-article header h1,.post-hero-title{font-family:var(--font-display);font-weight:600;letter-spacing:-.015em;font-variation-settings:"opsz" 48}.wordmark{font-family:var(--font-display);font-weight:500;font-size:1.0625rem;letter-spacing:-.01em;font-variation-settings:"opsz" 14;color:var(--color-text);text-decoration:none;line-height:1}p{margin:0 0 1em;text-wrap:pretty}a{color:var(--color-accent);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;transition:color var(--dur-base) var(--ease-standard),text-underline-offset var(--dur-base) var(--ease-standard),text-decoration-color var(--dur-base) var(--ease-standard)}a:hover{color:var(--color-accent-hover);text-underline-offset:4px;text-decoration-thickness:2px}:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px;border-radius:4px;box-shadow:0 0 0 4px var(--color-focus-ring-glow);transition:box-shadow var(--dur-fast) var(--ease-standard)}strong,b{font-weight:700}code{padding:.15em .4em;background:var(--color-code-inline-bg);border-radius:4px;font-size:.9em;font-family:var(--font-mono)}pre{padding:1em 1.25em;border-radius:8px;overflow-x:auto;font-size:.9rem;line-height:1.55;background:var(--color-code-bg);border:1px solid var(--color-border);scrollbar-width:thin;scrollbar-color:var(--color-border-strong) transparent}pre::-webkit-scrollbar{height:6px}pre::-webkit-scrollbar-track{background:transparent}pre::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:3px}pre::-webkit-scrollbar-thumb:hover{background:var(--color-text-subtle)}pre>code{all:unset;font-family:var(--font-mono)}[data-theme=dark] .astro-code,[data-theme=dark] .astro-code span{color:var(--shiki-dark)!important;background-color:var(--shiki-dark-bg)!important;font-style:var(--shiki-dark-font-style)!important;font-weight:var(--shiki-dark-font-weight)!important;text-decoration:var(--shiki-dark-text-decoration)!important}blockquote{border-left:2px solid var(--color-accent);padding:.25em 0 .25em 1.25rem;margin:1.75em 0;font-size:1.05em;font-style:italic;color:var(--color-text-muted);position:relative}blockquote p{text-wrap:pretty}blockquote cite,blockquote footer{display:block;margin-top:.5rem;font-style:normal;font-size:.9em;color:var(--color-text-subtle)}blockquote cite:before,blockquote footer:before{content:" -  "}hr{border:none;border-top:1px solid var(--color-border);margin:2em 0}img{max-width:100%;height:auto;border-radius:8px}table{width:100%;border-collapse:collapse;margin:1.25em 0}th,td{padding:.5em .75em;border-bottom:1px solid var(--color-border);text-align:left}th{background:var(--color-bg-subtle);font-weight:700}textarea,input{font-size:16px;font-family:inherit}button{font-family:inherit}.prose{max-width:var(--reader-measure, var(--measure));hanging-punctuation:first last;font-optical-sizing:auto;line-height:var(--line-height-prose)}.prose>:first-child{margin-top:0}.prose>p:first-of-type{margin-top:0}.prose figure{margin:1.75rem auto;text-align:center}.prose figure pre,.prose figure pre code{text-align:left}.prose figure figcaption{margin-top:.5rem;font-size:.9em;font-style:italic;color:var(--color-text-subtle);text-wrap:pretty}.prose pre{margin:1.5rem 0}.prose h2{margin-top:2em}.prose h3{margin-top:1.75em}.heading-anchor{margin-left:.4em;opacity:0;text-decoration:none;color:var(--color-text-subtle);font-weight:400;transition:opacity var(--dur-base) var(--ease-standard),color var(--dur-base) var(--ease-standard)}.heading-anchor:hover,:is(h1,h2,h3,h4,h5,h6):hover .heading-anchor,:is(h1,h2,h3,h4,h5,h6) .heading-anchor:focus-visible{opacity:1;color:var(--color-accent)}.skip-link{position:absolute;left:.5rem;top:-3rem;padding:.5rem 1rem;background:var(--color-accent);color:var(--color-accent-contrast);text-decoration:none;border-radius:4px;z-index:1000;transition:top var(--dur-base) var(--ease-standard)}.skip-link:focus{top:.5rem;color:var(--color-accent-contrast)}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:720px){main{padding:1em}}@supports (animation-timeline: view()){@media(prefers-reduced-motion:no-preference){.post-article .prose :is(h2,h3){animation:heading-reveal linear both;animation-timeline:view();animation-range:entry 0% entry 30%}@keyframes heading-reveal{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.post-article .prose :is(h2,h3){opacity:1!important;transform:none!important;animation:none!important}::view-transition-old(*),::view-transition-new(*){animation:none!important}}::view-transition-old(root),::view-transition-new(root){animation-duration:var(--dur-base);animation-timing-function:var(--ease-standard)}::view-transition-old(post-title),::view-transition-new(post-title){animation-duration:var(--dur-slow);animation-timing-function:var(--ease-emphasized)}::view-transition-old(article-body),::view-transition-new(article-body){animation-duration:var(--dur-slow);animation-timing-function:var(--ease-emphasized)}@media print{body{font-size:12pt;color:#000;background:#fff}.skip-link,header,footer,.theme-toggle,.step-player,.toc,nav{display:none!important}a{color:#000;text-decoration:underline}a[href^=http]:after{content:" (" attr(href) ")";font-size:.85em;color:#444}pre,code{background:#f4f4f4!important;color:#000!important;border:1px solid #ccc}h1,h2,h3{page-break-after:avoid}pre,figure{page-break-inside:avoid}}.post-article{counter-reset:mdx-figures mdx-sidenotes}.post-article p[data-paragraph-anchor]{position:relative}.post-article p[data-paragraph-anchor] .para-anchor{position:absolute;top:.1em;left:-.25rem;transform:translate(-100%);opacity:0;color:var(--color-text-subtle);text-decoration:none;font-size:.95em;line-height:1;padding:0 .25rem;border-radius:4px;transition:opacity var(--dur-fast) var(--ease-standard),color var(--dur-fast) var(--ease-standard);user-select:none}.post-article p[data-paragraph-anchor]:hover .para-anchor,.post-article p[data-paragraph-anchor]:focus-within .para-anchor,.post-article p[data-paragraph-anchor] .para-anchor:focus,.post-article p[data-paragraph-anchor] .para-anchor:focus-visible{opacity:1}.post-article p[data-paragraph-anchor] .para-anchor:hover,.post-article p[data-paragraph-anchor] .para-anchor:focus-visible{color:var(--color-accent);outline:none}.post-article p[data-paragraph-anchor] .para-anchor:focus-visible{box-shadow:0 0 0 2px var(--color-accent)}@media(prefers-reduced-motion:reduce){.post-article p[data-paragraph-anchor] .para-anchor{transition:none}}@media(max-width:720px){.post-article p[data-paragraph-anchor] .para-anchor{left:auto;right:0;transform:none}}.para-toast{position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%) translateY(.5rem);background:var(--color-bg-elevated);color:var(--color-text);border:1px solid var(--color-border);border-radius:8px;padding:.5rem .875rem;font-size:.85rem;box-shadow:0 4px 16px var(--color-shadow, rgba(0, 0, 0, .12));opacity:0;pointer-events:none;transition:opacity var(--dur-fast) var(--ease-standard),transform var(--dur-fast) var(--ease-standard);z-index:60}.para-toast.visible{opacity:1;transform:translate(-50%) translateY(0)}@media(prefers-reduced-motion:reduce){.para-toast{transition:none}}html[data-body-font=serif]{--font-sans: Georgia, "Charter", "Source Serif 4", serif}html[data-motion=reduce] *,html[data-motion=reduce] *:before,html[data-motion=reduce] *:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.note{max-width:60ch}.note p+p{margin-top:.9em}.note hr{border:0;border-top:1px solid var(--color-border);opacity:.5;margin:1.25rem 0}.note blockquote{margin-left:0;padding-left:1rem;border-left:2px solid var(--color-border);color:var(--color-text-muted)}.facet-row{display:flex;flex-direction:column;gap:.5rem;margin:.75rem 0 1rem;padding:.75rem;border:1px solid var(--color-border);border-radius:10px;background:var(--color-bg-subtle)}.facet-row .facet-group{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap}.facet-row .facet-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-subtle);min-width:2.5rem}.facet-chip{font:inherit;font-size:.9rem;display:inline-flex;align-items:center;min-height:44px;background:transparent;color:var(--color-text-muted);border:1px solid var(--color-border);border-radius:999px;padding:.5rem .85rem;cursor:pointer;white-space:nowrap;transition:background .12s ease,color .12s ease,border-color .12s ease}.facet-chip .count{margin-left:.3rem;opacity:.7;font-variant-numeric:tabular-nums;font-size:.85em}.facet-chip:hover{color:var(--color-text);border-color:var(--color-border-strong)}.facet-chip[aria-pressed=true]{background:var(--color-accent);color:var(--color-accent-contrast);border-color:var(--color-accent)}.facet-chip[aria-pressed=true] .count{opacity:.85}.facet-chip:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px}.facet-count{color:var(--color-text-subtle);font-size:.85rem;margin:.25rem 0 .75rem;font-variant-numeric:tabular-nums}.print-only,.print-masthead,.print-only-block{display:none!important}.facet-empty{padding:1rem 0}@media(prefers-reduced-motion:reduce){.facet-chip{transition:none}}
