*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:var(--typography-font-family-sans, system-ui, sans-serif);font-size:16px;line-height:1.6;color:var(--color-content-default, #171717);background:var(--color-background-default, #fafafa);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration-color:transparent}:root{--focus-scroll-margin: 76px}.app{display:grid;grid-template-columns:264px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;align-self:start;height:100vh;overflow-y:auto;border-right:1px solid var(--color-border-default, #dcdcdc);background:var(--color-background-elevation-raised, #fff);padding:0 0 var(--spacing-600, 2rem)}.brand{display:flex;align-items:center;gap:var(--spacing-250, .625rem);height:56px;padding:0 var(--spacing-400, 1rem);position:sticky;top:0;z-index:1;background:var(--color-background-elevation-raised, #fff);border-bottom:1px solid var(--color-border-default, #dcdcdc)}.brand .mark{width:26px;height:26px;border-radius:7px;background:var(--color-background-brand, #1e5386);display:grid;place-items:center;color:#fff;font-weight:700;font-size:12px;letter-spacing:.02em}.brand .brand-mark-slot{display:inline-flex;width:30px;height:30px;flex:none}.brand .brand-mark-slot :global(svg){width:100%;height:100%;display:block}.brand b{font-weight:600;font-size:16px;letter-spacing:-.01em}.brand .ver{font-size:12px;color:var(--color-content-default-secondary, #646464)}.nav{padding:var(--spacing-400, 1rem) var(--spacing-300, .75rem) 0}.nav-group{margin-bottom:var(--spacing-500, 1.5rem)}.nav-group>h4{margin:0 0 var(--spacing-150, .375rem);padding:0 var(--spacing-300, .75rem);font-size:14px;font-weight:600;color:var(--color-content-default-secondary, #525252)}.nav-group ul{list-style:none;margin:0;padding:0}.nav-link{display:flex;align-items:center;justify-content:space-between;padding:6px var(--spacing-300, .75rem);margin:1px 0;border-radius:7px;font-size:14.5px;color:var(--color-content-default-secondary, #525252);transition:background .12s ease,color .12s ease}.nav-link:hover{background:var(--color-background-elevation-sunken, #f3f7fc);color:var(--color-content-default, #171717)}.nav-link[aria-current=page]{background:color-mix(in srgb,var(--color-background-brand, #1e5386) 10%,transparent);color:var(--color-background-brand, #1e5386);font-weight:600}.nav-link .tag{font-size:11px;font-family:var(--typography-font-family-mono, monospace);color:var(--color-content-default-secondary, #646464);border:1px solid var(--color-border-default, #dcdcdc);border-radius:5px;padding:0 5px;line-height:16px}.nav-link .tag--deprecated{color:var(--color-content-utility-warning, #8a5a00);border-color:var(--color-border-utility-warning, #e6c88a);background:var(--color-background-utility-warning-subtle, #fdf6ec)}.main{min-width:0}.topbar{position:sticky;top:0;z-index:5;height:56px;display:flex;align-items:center;gap:var(--spacing-400, 1rem);padding:0 var(--spacing-600, 2rem);border-bottom:1px solid var(--color-border-default, #dcdcdc);background:color-mix(in srgb,var(--color-background-default, #fafafa) 80%,transparent);backdrop-filter:saturate(1.2) blur(8px)}.search{display:flex;align-items:center;gap:var(--spacing-200, .5rem);width:280px;max-width:40%;padding:7px var(--spacing-300, .75rem);border:1px solid var(--color-border-default, #dcdcdc);border-radius:9px;color:var(--color-content-default-secondary, #646464);font-size:14px;cursor:text;background:var(--color-background-elevation-raised, #fff);font-family:inherit;text-align:left}.search:hover{border-color:var(--color-border-brand, #c6dcf1)}.search kbd{margin-left:auto;font-family:var(--typography-font-family-mono, monospace);font-size:11px;border:1px solid var(--color-border-default, #dcdcdc);border-radius:5px;padding:1px 5px;color:var(--color-content-default-secondary, #646464)}.topbar .spacer{flex:1}.topbar-action{display:inline-flex;align-items:center;gap:var(--spacing-150, .375rem);font-size:14px;color:var(--color-content-default-secondary, #525252);padding:7px var(--spacing-300, .75rem);border:1px solid var(--color-border-default, #dcdcdc);border-radius:9px;background:var(--color-background-elevation-raised, #fff)}.topbar-action:hover{color:var(--color-background-brand, #1e5386);border-color:var(--color-border-brand, #c6dcf1)}.scheme-toggle{display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--color-border-default, #dcdcdc);border-radius:9px;background:var(--color-background-elevation-raised, #fff);color:var(--color-content-default-secondary, #525252);cursor:pointer}.scheme-toggle:hover{color:var(--color-content-default, #171717)}.content-wrap{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:var(--spacing-700, 3rem);max-width:1100px;margin:0 auto;padding:var(--spacing-700, 3rem) var(--spacing-600, 2rem) var(--spacing-900, 6rem)}.article{min-width:0}.toc{position:sticky;top:80px;align-self:start;height:fit-content}.toc h5{margin:0 0 var(--spacing-250, .625rem);font-size:14px;font-weight:600;color:var(--color-content-default-secondary, #525252)}.toc ul{list-style:none;margin:0;padding:0}.toc a{display:block;padding:4px 0 4px 12px;margin-left:-2px;font-size:14px;color:var(--color-content-default-secondary, #525252);border-left:2px solid transparent;transition:color .12s ease,border-color .12s ease}.toc a:hover,.toc a.active{color:var(--color-content-default, #171717);border-color:var(--color-background-brand, #1e5386)}@media(max-width:1080px){.content-wrap{grid-template-columns:minmax(0,1fr)}.toc{display:none}}@media(max-width:760px){.app{grid-template-columns:1fr}.sidebar{display:none}}.article h1:not(.preview__canvas *){font-family:var(--typography-font-family-display, var(--typography-font-family-sans));font-size:34px;font-weight:600;letter-spacing:-.02em;margin:0 0 var(--spacing-200, .5rem);line-height:1.2}.article .lede:not(.preview__canvas *){font-size:18px;color:var(--color-content-default-secondary, #525252);margin:0 0 var(--spacing-600, 2rem);line-height:1.55}.article h2:not(.preview__canvas *){font-size:22px;font-weight:600;letter-spacing:-.01em;color:var(--color-background-brand, #1e5386);margin:var(--spacing-700, 3rem) 0 var(--spacing-300, .75rem);padding-bottom:var(--spacing-200, .5rem);border-bottom:1px solid var(--color-border-default, #dcdcdc);scroll-margin-top:76px}.article h3:not(.preview__canvas *){font-size:16px;font-weight:600;margin:var(--spacing-500, 1.5rem) 0 var(--spacing-250, .625rem);color:var(--color-content-default, #171717)}.article p{color:var(--color-content-default-secondary, #525252)}.article :not(pre)>code{font-family:var(--typography-font-family-mono, monospace);font-size:.875em;background:var(--color-background-elevation-sunken, #f3f7fc);padding:.12em .4em;border-radius:5px;color:var(--color-content-default, #171717)}:where(.article) :where(p,li,dd,dt,blockquote,summary,figcaption) a:not(:where([class])),.article a.prose-link{color:var(--color-content-brand, #2a7e3b);text-decoration:underline;text-underline-offset:2px}:where(.article) :where(p,li,dd,dt,blockquote,summary,figcaption) a:not(:where([class])):hover,.article a.prose-link:hover{text-decoration-thickness:2px}.crumbs{display:flex;gap:8px;align-items:center;font-size:14px;color:var(--color-content-default-secondary, #646464);margin-bottom:var(--spacing-300, .75rem)}.crumbs a:hover{color:var(--color-content-default, #171717)}.meta-row{display:flex;align-items:center;gap:var(--spacing-250, .625rem);flex-wrap:wrap;margin-bottom:var(--spacing-600, 2rem)}.pill{font-size:12.5px;font-weight:500;padding:2px 9px;border-radius:999px;border:1px solid var(--color-border-default, #dcdcdc);color:var(--color-content-default-secondary, #525252)}.pill--stable{color:var(--color-content-utility-success, #1a9b54);border-color:var(--color-border-utility-success);background:var(--color-background-utility-success-subtle)}.pill--deprecated{color:var(--color-content-utility-warning, #8a5a00);border-color:var(--color-border-utility-warning);background:var(--color-background-utility-warning-subtle)}.imp{font-family:var(--typography-font-family-mono, monospace);font-size:13px;color:var(--color-content-default-secondary, #646464);background:var(--color-background-elevation-sunken, #f3f7fc);padding:4px 10px;border-radius:7px}:root{color-scheme:light}html[data-scheme=dark]{color-scheme:dark;--color-background-default: var(--color-gray-dark-1);--color-background-elevation-raised: var(--color-gray-dark-2);--color-background-elevation-floating: var(--color-gray-dark-3);--color-background-elevation-sunken: #0d0d0f;--color-background-default-knockout: var(--color-gray-dark-12);--color-background-default-knockout-hover: var(--color-gray-dark-11);--color-content-default: var(--color-gray-dark-12);--color-content-default-secondary: var(--color-gray-dark-11);--color-content-default-knockout: var(--color-gray-dark-2);--color-border-default: var(--color-gray-dark-6);--color-border-default-subtle: var(--color-gray-dark-5);--color-border-default-strong: var(--color-gray-dark-7);--color-border-default-knockout: var(--color-gray-7);--color-background-brand-subtle: var(--color-grass-dark-1);--color-border-brand: var(--color-grass-dark-6);--color-background-utility-info-subtle: var(--color-blue-dark-1);--color-background-utility-info-muted: var(--color-blue-dark-3);--color-border-utility-info: var(--color-blue-dark-6);--color-background-utility-success-subtle: var(--color-green-dark-1);--color-background-utility-success-muted: var(--color-green-dark-3);--color-border-utility-success: var(--color-green-dark-6);--color-background-utility-warning-subtle: var(--color-yellow-dark-1);--color-background-utility-warning-muted: var(--color-yellow-dark-3);--color-border-utility-warning: var(--color-yellow-dark-6);--color-background-utility-danger-subtle: var(--color-red-dark-1);--color-background-utility-danger-muted: var(--color-red-dark-3);--color-border-utility-danger: var(--color-red-dark-6);--color-content-utility-info: var(--color-blue-dark-11);--color-content-utility-success: var(--color-green-dark-11);--color-content-utility-warning: var(--color-yellow-dark-11);--color-content-utility-danger: var(--color-red-dark-11);--color-content-brand: var(--color-grass-dark-11);--color-background-dataviz-categorical-1: var(--color-grass-dark-9);--color-background-dataviz-categorical-2: var(--color-indigo-dark-9);--color-background-dataviz-categorical-3: var(--color-orange-dark-8);--color-background-dataviz-categorical-4: var(--color-blue-dark-9);--color-background-dataviz-categorical-5: var(--color-crimson-dark-8);--color-background-dataviz-categorical-6: var(--color-cyan-dark-9);--color-background-dataviz-categorical-7: var(--color-violet-dark-8);--color-background-dataviz-categorical-8: var(--color-teal-dark-9);--color-background-dataviz-sequential-1: #305331;--color-background-dataviz-sequential-2: #3e6e40;--color-background-dataviz-sequential-3: #478a4b;--color-background-dataviz-sequential-4: #50a856;--color-background-dataviz-sequential-5: #6dc371;--color-background-dataviz-sequential-6: #94db96;--color-background-dataviz-sequential-7: var(--color-grass-dark-12);--color-background-dataviz-diverging-1: var(--color-blue-dark-11);--color-background-dataviz-diverging-2: var(--color-blue-dark-9);--color-background-dataviz-diverging-3: var(--color-blue-dark-7);--color-background-dataviz-diverging-4: var(--color-gray-dark-4);--color-background-dataviz-diverging-5: var(--color-red-dark-7);--color-background-dataviz-diverging-6: var(--color-red-dark-9);--color-background-dataviz-diverging-7: var(--color-red-dark-11)}html[data-scheme=dark] .nav-link[aria-current=page]{color:var(--color-background-brand)}@font-face{font-family:Anthropic Mono;src:url(/ecology/_astro/AnthropicMono-Variable.B2MNN231.woff2) format("woff2-variations");font-weight:300 800;font-style:normal;font-display:swap}:root{--meta-serif: "Libre Baskerville", Georgia, serif;--meta-serif-weight: 400;--meta-sans: "Public Sans", system-ui, -apple-system, sans-serif;--meta-mono: "Anthropic Mono", ui-monospace, monospace}.app .sidebar,.app .topbar,.app .article{font-family:var(--meta-sans)}.app .article h1:not(.preview__canvas *),.app .article h2:not(.preview__canvas *),.app .article h3:not(.preview__canvas *),.app .article .lede:not(.preview__canvas *),.app .brand b,.app .hero h1,.app .hero .tagline,.app .block-title{font-family:var(--meta-serif);font-weight:var(--meta-serif-weight, 400)}.app .article h1:not(.preview__canvas *){letter-spacing:-.015em}.app .article h2:not(.preview__canvas *){letter-spacing:-.01em;border-bottom-color:var(--color-border-default)}.app .article .lede{color:var(--color-content-default-secondary)}.app .brand b{font-size:17px;letter-spacing:-.01em}.app code,.app .article code,.app .nav-link .tag,.app .search kbd{font-family:var(--meta-mono)}html[data-scheme=light] body{background:var(--color-background-default);color:var(--color-content-default)}html[data-scheme=light] .sidebar,html[data-scheme=light] .brand,html[data-scheme=light] .topbar{background:var(--color-background-default);border-color:var(--color-border-default)}html[data-scheme=light] .topbar{background:color-mix(in srgb,var(--color-background-default) 82%,transparent)}html[data-scheme=light] .sidebar{border-right-color:var(--color-border-default)}html[data-scheme=light] .nav-group>h4{color:var(--color-content-default-secondary, #646464);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}html[data-scheme=light] .nav-link{color:var(--color-content-default-secondary);border-radius:4px}html[data-scheme=light] .nav-link:hover{background:color-mix(in srgb,var(--color-content-default) 4%,transparent);color:var(--color-content-default)}html[data-scheme=light] .nav-link[aria-current=page]{background:color-mix(in srgb,var(--color-content-default) 6%,transparent);color:var(--color-content-default);font-weight:500}html[data-scheme=light] .nav-link .tag{border-color:var(--color-border-default);color:var(--color-content-default-secondary, #646464)}html[data-scheme=light] .brand .ver{color:var(--color-content-default-secondary, #646464)}html[data-scheme=light] .article h1,html[data-scheme=light] .article h2,html[data-scheme=light] .article h3{color:var(--color-content-default)}html[data-scheme=light] .article p{color:var(--color-content-default-secondary)}html[data-scheme=light] .article :not(pre)>code{background:color-mix(in srgb,var(--color-content-default) 5%,transparent);color:var(--color-content-default)}html[data-scheme=light] .search{background:var(--color-background-elevation-raised);border-color:var(--color-border-default);color:var(--color-content-default-secondary, #646464)}html[data-scheme=light] .topbar-action,html[data-scheme=light] .icon-btn,html[data-scheme=light] .scheme-toggle{background:var(--color-background-elevation-raised);border-color:var(--color-border-default);color:var(--color-content-default-secondary)}html[data-scheme=light] .toc a:hover,html[data-scheme=light] .toc a.active{color:var(--color-content-default);border-color:var(--color-background-brand)}.app .article h2{color:var(--color-content-default)}.app .preview__canvas,.app .preview__canvas *{font-family:var(--typography-font-family-sans, system-ui, sans-serif)}.switcher[data-astro-cid-dz5h74bc]{display:inline-flex;align-items:center;gap:var(--spacing-300, .75rem);flex-wrap:wrap}
