.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}:root{--bg:#faf9f7;--ink:#211f1c;--muted:#6d6861;--faint:#a39d94;--line:#e5e1da;--accent:#8a4b2c;--subtle:#f1efeb;--panel:#fffdfa;--term-bg:#14120f;--term-glyph:#d99a72;--term-line:#2a2620;--term-faint:#968d81;--atlas-green:#35543b;--atlas-khaki:#e6e1cc;--atlas-paper:#fbf9f2;--atlas-ink:#23261f;--atlas-annotation:#6b6e60;--atlas-hairline:#e0dbc8;--font-serif:"Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;--font-sans:ui-sans-serif, system-ui, -apple-system, "Segoe UI", Helvetica, sans-serif;--font-mono:ui-monospace, "SF Mono", Menlo, monospace;--ease:cubic-bezier(.2, .7, .2, 1);--t-quick:.14s;--t-move:.2s;--t-rise:.4s}:root.dark{--bg:#171512;--ink:#e9e6e0;--muted:#a29b91;--faint:#6f6a62;--line:#2c2925;--accent:#d99a72;--subtle:#201d19;--panel:#201d19}*,:before,:after{box-sizing:border-box}body{background:var(--bg);color:var(--ink);font-family:var(--font-serif);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:18px;line-height:1.65}.page{background:var(--bg);min-height:100vh;color:var(--ink);flex-direction:column;display:flex}.page>main{flex:1}a{color:var(--ink);transition:color var(--t-quick) var(--ease);text-decoration:none}a:hover{color:var(--accent)}img,video{max-width:100%;height:auto}::selection{background:var(--accent);color:var(--bg)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:3px}.container{width:min(920px,100% - 56px);margin-inline:auto}.container--reading{width:min(672px,100% - 56px)}.eyebrow{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--faint);font-size:11.5px}.pill{font-family:var(--font-mono);letter-spacing:.08em;border:1px solid var(--line);color:var(--faint);cursor:pointer;transition:color var(--t-quick) var(--ease), border-color var(--t-quick) var(--ease);background:0 0;border-radius:99px;padding:5px 12px;font-size:10.5px}.pill:hover{color:var(--accent);border-color:var(--accent)}[data-theme-toggle]:after{content:"DARK"}:root.dark [data-theme-toggle]:after{content:"LIGHT"}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.rise{animation:rise var(--t-rise) var(--ease) backwards}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.prose p{text-wrap:pretty;margin:0 0 22px}.prose>p:first-child{font-size:20px}.prose>p:last-of-type:after{content:"";background:var(--accent);width:7px;height:7px;margin-left:10px;display:inline-block}.prose h2{letter-spacing:-.01em;margin:64px 0 14px;font-size:26px;font-weight:500}.prose h3{letter-spacing:-.01em;margin:32px 0 12px;font-size:21px;font-weight:500}.prose h2,.prose h3,.prose h4{scroll-margin-top:24px}.prose .heading-anchor:before{content:"#"}.prose .heading-anchor{font-family:var(--font-mono);color:var(--faint);opacity:0;transition:opacity var(--t-quick) var(--ease), color var(--t-quick) var(--ease);margin-left:.35em;font-size:.6em;font-weight:400;text-decoration:none}.prose :is(h2,h3,h4):hover .heading-anchor,.prose .heading-anchor:focus-visible{opacity:1}.prose .heading-anchor:hover{color:var(--accent)}@media (hover:none){.prose .heading-anchor{opacity:1}}.prose ul,.prose ol{margin:0 0 22px;padding-left:24px}.prose li+li{margin-top:8px}.prose b,.prose strong{font-weight:600}.prose a{text-decoration:underline;text-decoration-color:var(--faint);text-underline-offset:3px;transition:color var(--t-quick) var(--ease), text-decoration-color var(--t-quick) var(--ease)}.prose a:hover{color:var(--accent);text-decoration-color:var(--accent)}.prose code{font-family:var(--font-mono);background:var(--subtle);border-radius:4px;padding:.15em .35em;font-size:.85em}.prose .code{background:var(--term-bg);border-radius:8px;margin:32px 0;overflow:hidden}.code__bar{border-bottom:1px solid var(--term-line);font-family:var(--font-mono);letter-spacing:.1em;color:var(--term-faint);align-items:center;gap:14px;padding:9px 22px;font-size:10.5px;display:flex}.code__title{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.code__lang{opacity:.65}.code__copy{text-align:right;min-width:7ch;font:inherit;letter-spacing:inherit;color:var(--term-faint);cursor:pointer;transition:color var(--t-quick) var(--ease);background:0 0;border:0;border-radius:4px;flex-shrink:0;margin:-4px -6px -4px 0;padding:4px 6px}.code__copy:hover,.code__copy[data-state=copied]{color:var(--term-glyph)}.code__copy:focus-visible{outline:1px solid var(--term-glyph);outline-offset:1px}.prose pre{margin:0;padding:16px 22px;font-size:13.5px;line-height:1.9;overflow-x:auto}.prose pre code{background:0 0;padding:0;display:grid}.code__pre .line--mark{background:color-mix(in srgb, var(--term-glyph) 11%, transparent);box-shadow:inset 2px 0 0 var(--term-glyph);margin-inline:-22px;padding-inline:22px}@media (width<=640px){.code__bar,.prose pre{padding-inline:16px}.code__pre .line--mark{margin-inline:-16px;padding-inline:16px}}.prose blockquote{border-left:2px solid var(--accent);color:var(--muted);margin:0 0 22px;padding-left:20px;font-style:italic}.prose .table-figure{background:var(--panel);border:1px solid var(--line);counter-increment:table-fig;border-radius:8px;margin:32px 0;overflow:hidden}.table__label{border-bottom:1px solid var(--line);font-family:var(--font-mono);letter-spacing:.1em;color:var(--faint);padding:9px 22px;font-size:10.5px}.table__label:before{content:"TABLE " counter(table-fig)}.table__scroll{overflow-x:auto}.table__scroll:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;border-radius:0 0 6px 6px}.prose table{border-collapse:collapse;font-size:15px}.prose th,.prose td{text-align:left;vertical-align:top;padding:10px 22px}.prose thead th{border-bottom:1px solid var(--line);color:var(--muted);font-weight:600}.prose tbody tr+tr{border-top:1px solid var(--line)}@media (width<=640px){.table__label{padding-inline:16px}.prose th,.prose td{padding:8px 16px}}.prose{counter-reset:figure table-fig}.prose .figure{background:var(--panel);border:1px solid var(--line);counter-increment:figure;border-radius:8px;margin:32px 0;padding:24px}.prose .figure--narrow{max-width:440px;margin-inline:auto;padding:20px}.figure__label{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--faint);margin:0 0 18px;font-size:10.5px;line-height:1.5}.figure__label:before{content:"Fig. " counter(figure) " — "}.prose .pullquote{background:var(--subtle);border-left:2px solid var(--accent);margin:0 0 22px;padding:18px 22px;font-size:21px;line-height:1.5}.prose .definition{text-align:center;flex-direction:column;align-items:center;gap:10px;margin:0 0 26px;padding:8px 0;display:flex}.definition__term{letter-spacing:-.01em;font-size:clamp(23px,6vw,29px);font-weight:500;line-height:1.25}.definition__expansion{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent);font-size:11px;line-height:1.5}.prose .section-label{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--faint);margin:64px 0 20px;font-size:11px;font-weight:500}.prose .section-label .heading-anchor{font-size:1em}.prose .timeline{border-left:1px solid var(--line);flex-direction:column;gap:26px;margin:0 0 26px;padding-left:24px;display:flex}.timeline__entry{flex-direction:column;gap:8px;display:flex}.timeline__label{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent);font-size:10px}.prose .timeline__entry p{margin:0}@media (width<=560px){.prose .figure{padding:18px}.prose .timeline{padding-left:18px}}.prose .sidenote-ref{font-family:var(--font-mono);margin-left:1px;font-size:10.5px;font-weight:500}.prose .sidenote-ref a{color:var(--accent);padding:0 1px;text-decoration:none}.prose .sidenote-ref a:hover{text-underline-offset:2px;text-decoration:underline}.prose .sidenote{font-family:var(--font-sans);color:var(--muted);font-size:13.5px;line-height:1.6;display:none}.prose .sidenote:target{background:var(--panel);border-left:2px solid var(--accent);border-radius:0 6px 6px 0;margin:16px 0 20px;padding:12px 16px;display:block}.sidenote__p{display:block}.sidenote__p+.sidenote__p{margin-top:10px}.sidenote__num{font-family:var(--font-mono);color:var(--accent);vertical-align:.35em;margin-right:5px;font-size:10.5px}@media (width>=1240px){.prose .sidenote,.prose .sidenote:target{float:right;clear:right;background:0 0;border:0;border-radius:0;width:180px;margin:5px -224px 14px 0;padding:0;display:block}.prose .sidenote:target{color:var(--ink)}}.prose .footnotes{border-top:1px solid var(--line);color:var(--muted);margin-top:48px;padding-top:22px;font-size:15px}.prose .footnotes__title{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--faint);margin:0 0 16px;font-size:11px;font-weight:500}.prose .footnotes ol{gap:14px}.prose .footnotes li{scroll-margin-top:24px}.prose .footnotes p{margin:0}.prose .footnotes .data-footnote-backref{color:var(--faint);margin-left:4px;text-decoration:none}.prose .footnotes .data-footnote-backref:hover{color:var(--accent)}.toc{background:var(--panel);border:1px solid var(--line);border-radius:8px;margin:0 0 36px;padding:16px 20px 18px}.toc__title{font-family:var(--font-mono);letter-spacing:.14em;color:var(--faint);margin:0 0 12px;font-size:10.5px}.toc__list{flex-direction:column;gap:9px;margin:0;padding:0;list-style:none;display:flex}.toc__item{font-family:var(--font-sans);font-size:14px;line-height:1.4}.toc__item--3{padding-left:16px;font-size:13px}.toc__item--label{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;padding-top:5px;font-size:10px;line-height:1.7}.toc__item--label .toc__link{color:var(--faint)}.toc__link{color:var(--muted)}.toc__link:hover,.toc__link[aria-current]{color:var(--accent)}@media (width>=1240px){.toc{width:180px;max-height:calc(100vh - 200px);animation:rise var(--t-rise) var(--ease) backwards;background:0 0;border:0;border-radius:0;margin:0;padding:0;position:fixed;top:108px;left:calc(50% - 560px);overflow-y:auto}.toc__title{padding-left:16px}.toc__list{gap:0}.toc__item{border-left:1px solid var(--line);padding:6px 0 6px 15px}.toc__item--3{padding-left:27px}.toc__item--label{padding-top:15px}.toc__item:has(.toc__link[aria-current]){border-left-color:var(--accent)}}html.theme-transition,html.theme-transition *,html.theme-transition :before,html.theme-transition :after{transition:background-color var(--t-move) var(--ease), color var(--t-move) var(--ease), border-color var(--t-move) var(--ease)!important}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media (prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*),[data-astro-transition-scope]{animation:none!important}}
