.site-header[data-astro-cid-3ef6ksr2]{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--c-bg) 88%,transparent);backdrop-filter:saturate(160%) blur(10px);border-bottom:1px solid var(--c-border)}.skip[data-astro-cid-3ef6ksr2]{position:absolute;left:12px;top:-60px;background:var(--c-accent);color:var(--c-accent-text);padding:10px 16px;border-radius:var(--radius);z-index:100;transition:top .15s ease;text-decoration:none;font-weight:600}.skip[data-astro-cid-3ef6ksr2]:focus{top:12px;color:var(--c-accent-text)}.header-inner[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;gap:24px;min-height:68px}.brand[data-astro-cid-3ef6ksr2]{display:inline-flex;align-items:center;gap:10px;color:var(--c-text);text-decoration:none;font-weight:700;margin-right:auto}.brand-mark[data-astro-cid-3ef6ksr2]{display:inline-flex;color:var(--c-accent)}.brand-name[data-astro-cid-3ef6ksr2]{font-family:var(--font-heading);font-size:1.16rem;letter-spacing:-.015em}.nav[data-astro-cid-3ef6ksr2] ul[data-astro-cid-3ef6ksr2]{display:flex;gap:4px;list-style:none;margin:0;padding:0}.nav[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2]{display:block;padding:8px 14px;border-radius:var(--radius-sm);color:var(--c-text-muted);text-decoration:none;font-weight:500;transition:color .15s ease,background-color .15s ease}.nav[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2]:hover{color:var(--c-text);background:var(--c-surface-alt)}.nav[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2][aria-current=page]{color:var(--c-accent);font-weight:600}.header-actions[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;gap:8px}.theme-toggle[data-astro-cid-3ef6ksr2],.menu-toggle[data-astro-cid-3ef6ksr2]{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;background:transparent;border:1px solid var(--c-border);border-radius:var(--radius-sm);color:var(--c-text-muted);cursor:pointer;transition:border-color .15s ease,color .15s ease}.theme-toggle[data-astro-cid-3ef6ksr2]:hover,.menu-toggle[data-astro-cid-3ef6ksr2]:hover{border-color:var(--c-accent);color:var(--c-accent)}.i-moon[data-astro-cid-3ef6ksr2]{display:none}:root[data-theme=dark] .i-sun[data-astro-cid-3ef6ksr2]{display:none}:root[data-theme=dark] .i-moon[data-astro-cid-3ef6ksr2]{display:block}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .i-sun[data-astro-cid-3ef6ksr2]{display:none}:root:not([data-theme=light]) .i-moon[data-astro-cid-3ef6ksr2]{display:block}:root[data-theme=light] .i-sun[data-astro-cid-3ef6ksr2]{display:block}:root[data-theme=light] .i-moon[data-astro-cid-3ef6ksr2]{display:none}}.menu-toggle[data-astro-cid-3ef6ksr2]{display:none;flex-direction:column;gap:4px}.menu-toggle[data-astro-cid-3ef6ksr2] span[data-astro-cid-3ef6ksr2]{width:17px;height:2px;background:currentColor;border-radius:2px}.mobile-nav[data-astro-cid-3ef6ksr2]{border-top:1px solid var(--c-border);background:var(--c-surface)}.mobile-nav[data-astro-cid-3ef6ksr2] ul[data-astro-cid-3ef6ksr2]{list-style:none;margin:0;padding-block:8px}.mobile-nav[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2]{display:block;padding:12px 4px;color:var(--c-text);text-decoration:none;font-weight:500;border-bottom:1px solid var(--c-border)}.mobile-nav[data-astro-cid-3ef6ksr2] li[data-astro-cid-3ef6ksr2]:last-child a[data-astro-cid-3ef6ksr2]{border-bottom:0}@media(max-width:720px){.nav[data-astro-cid-3ef6ksr2]{display:none}.menu-toggle[data-astro-cid-3ef6ksr2]{display:inline-flex}}.site-footer[data-astro-cid-sz7xmlte]{margin-top:64px;background:var(--c-surface-alt);border-top:1px solid var(--c-border);padding-block:52px 28px;font-size:var(--step--1)}.footer-grid[data-astro-cid-sz7xmlte]{display:grid;gap:36px 28px;grid-template-columns:1.6fr repeat(3,1fr);align-items:start}.brand[data-astro-cid-sz7xmlte]{display:inline-flex;align-items:center;gap:9px;color:var(--c-text);text-decoration:none;font-weight:700}.brand-mark[data-astro-cid-sz7xmlte]{display:inline-flex;color:var(--c-accent)}.brand-name[data-astro-cid-sz7xmlte]{font-family:var(--font-heading);font-size:1.05rem}.footer-tag[data-astro-cid-sz7xmlte]{color:var(--c-text-muted);margin:12px 0 0;max-width:34ch}.footer-col[data-astro-cid-sz7xmlte] h2[data-astro-cid-sz7xmlte]{font-family:var(--font-body);font-size:var(--step--1);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--c-text-subtle);margin:0 0 12px}.footer-col[data-astro-cid-sz7xmlte] ul[data-astro-cid-sz7xmlte]{list-style:none;margin:0;padding:0;display:grid;gap:9px}.footer-col[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]{color:var(--c-text-muted);text-decoration:none}.footer-col[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]:hover{color:var(--c-accent);text-decoration:underline}.footer-legal[data-astro-cid-sz7xmlte]{margin-top:40px;padding-top:22px;border-top:1px solid var(--c-border);display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;color:var(--c-text-subtle)}.footer-legal[data-astro-cid-sz7xmlte] p[data-astro-cid-sz7xmlte]{margin:0;max-width:62ch}@media(max-width:860px){.footer-grid[data-astro-cid-sz7xmlte]{grid-template-columns:1fr 1fr}.footer-brand[data-astro-cid-sz7xmlte]{grid-column:1 / -1}}@media(max-width:520px){.footer-grid[data-astro-cid-sz7xmlte]{grid-template-columns:1fr}}:root{color-scheme:light;--c-bg: #fbfaf8;--c-surface: #ffffff;--c-surface-alt: #f4f2ee;--c-border: #e3dfd8;--c-border-strong: #cec9bf;--c-text: #1c1a17;--c-text-muted: #5f594f;--c-text-subtle: #8a8278;--c-accent: #0d6f66;--c-accent-hover: #0a5750;--c-accent-soft: #e2f1ef;--c-accent-text: #ffffff;--c-warn: #9a5b0a;--c-warn-soft: #fdf1de;--c-danger: #a3341f;--c-danger-soft: #fbe9e5;--font-heading: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, "Times New Roman", serif;--font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--step--1: clamp(.83rem, .8rem + .15vw, .9rem);--step-0: clamp(1rem, .96rem + .2vw, 1.09rem);--step-1: clamp(1.2rem, 1.13rem + .35vw, 1.4rem);--step-2: clamp(1.45rem, 1.32rem + .65vw, 1.8rem);--step-3: clamp(1.75rem, 1.53rem + 1.1vw, 2.4rem);--step-4: clamp(2.1rem, 1.72rem + 1.9vw, 3.2rem);--radius-sm: 6px;--radius: 10px;--radius-lg: 16px;--shadow-sm: 0 1px 2px rgba(28, 26, 23, .06);--shadow: 0 2px 8px rgba(28, 26, 23, .07), 0 1px 2px rgba(28, 26, 23, .05);--shadow-lg: 0 12px 32px rgba(28, 26, 23, .1);--wrap: 1120px;--wrap-prose: 720px}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--c-bg: #14140f;--c-surface: #1c1b16;--c-surface-alt: #23221c;--c-border: #33312a;--c-border-strong: #47443b;--c-text: #f2efe8;--c-text-muted: #b3ada1;--c-text-subtle: #8b8479;--c-accent: #4fc3b4;--c-accent-hover: #6fd3c6;--c-accent-soft: #16302d;--c-accent-text: #08221f;--c-warn: #e0a95a;--c-warn-soft: #2e2517;--c-danger: #e08a76;--c-danger-soft: #2f1c17;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow: 0 2px 8px rgba(0, 0, 0, .45), 0 1px 2px rgba(0, 0, 0, .3);--shadow-lg: 0 12px 32px rgba(0, 0, 0, .55)}}:root[data-theme=dark]{color-scheme:dark;--c-bg: #14140f;--c-surface: #1c1b16;--c-surface-alt: #23221c;--c-border: #33312a;--c-border-strong: #47443b;--c-text: #f2efe8;--c-text-muted: #b3ada1;--c-text-subtle: #8b8479;--c-accent: #4fc3b4;--c-accent-hover: #6fd3c6;--c-accent-soft: #16302d;--c-accent-text: #08221f;--c-warn: #e0a95a;--c-warn-soft: #2e2517;--c-danger: #e08a76;--c-danger-soft: #2f1c17;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow: 0 2px 8px rgba(0, 0, 0, .45), 0 1px 2px rgba(0, 0, 0, .3);--shadow-lg: 0 12px 32px rgba(0, 0, 0, .55)}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}body{margin:0;background:var(--c-bg);color:var(--c-text);font-family:var(--font-body);font-size:var(--step-0);line-height:1.65;-webkit-font-smoothing:antialiased;display:flex;flex-direction:column;min-height:100vh}h1,h2,h3,h4{font-family:var(--font-heading);font-weight:600;line-height:1.2;letter-spacing:-.01em;margin:0 0 .5em;text-wrap:balance}h1{font-size:var(--step-4)}h2{font-size:var(--step-3)}h3{font-size:var(--step-2)}h4{font-size:var(--step-1)}p{margin:0 0 1em;text-wrap:pretty}a{color:var(--c-accent);text-decoration-thickness:1px;text-underline-offset:2px}a:hover{color:var(--c-accent-hover)}img,svg,video{max-width:100%;height:auto}:focus-visible{outline:2px solid var(--c-accent);outline-offset:2px;border-radius:3px}.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:20px}.wrap-prose{width:100%;max-width:var(--wrap-prose);margin-inline:auto;padding-inline:20px}.section{padding-block:clamp(48px,7vw,88px)}.section--alt{background:var(--c-surface-alt);border-block:1px solid var(--c-border)}main{flex:1}.eyebrow{font-family:var(--font-body);font-size:var(--step--1);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--c-accent);margin:0 0 12px}.lede{font-size:var(--step-1);color:var(--c-text-muted);line-height:1.55}.btn{display:inline-flex;align-items:center;gap:8px;padding:12px 22px;border-radius:var(--radius);border:1px solid transparent;font-weight:600;font-size:var(--step-0);text-decoration:none;cursor:pointer;transition:background-color .15s ease,border-color .15s ease,transform .15s ease}.btn:hover{transform:translateY(-1px)}.btn--primary{background:var(--c-accent);color:var(--c-accent-text)}.btn--primary:hover{background:var(--c-accent-hover);color:var(--c-accent-text)}.btn--ghost{background:transparent;border-color:var(--c-border-strong);color:var(--c-text)}.btn--ghost:hover{border-color:var(--c-accent);color:var(--c-accent)}.card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-lg);padding:24px;box-shadow:var(--shadow-sm);transition:box-shadow .18s ease,border-color .18s ease,transform .18s ease}a.card:hover{box-shadow:var(--shadow);border-color:var(--c-border-strong);transform:translateY(-2px)}.grid{display:grid;gap:20px}.grid--2{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.grid--3{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.prose{font-size:1.06rem;line-height:1.72}.prose>*+*{margin-top:1.1em}.prose h2{font-size:var(--step-2);margin-top:2.2em;padding-top:.5em;border-top:1px solid var(--c-border)}.prose h3{font-size:var(--step-1);margin-top:1.8em}.prose ul,.prose ol{padding-left:1.35em}.prose li+li{margin-top:.45em}.prose ol{counter-reset:step}.prose strong{color:var(--c-text);font-weight:650}.prose blockquote{margin-inline:0;padding:4px 0 4px 20px;border-left:3px solid var(--c-accent);color:var(--c-text-muted);font-style:italic}.prose code{font-family:var(--font-mono);font-size:.88em;background:var(--c-surface-alt);border:1px solid var(--c-border);border-radius:4px;padding:.1em .35em}.prose pre{background:var(--c-surface-alt);border:1px solid var(--c-border);border-radius:var(--radius);padding:16px;overflow-x:auto}.prose pre code{background:none;border:0;padding:0}.prose table{width:100%;border-collapse:collapse;font-size:.95em;display:block;overflow-x:auto}.prose th,.prose td{text-align:left;padding:11px 14px;border-bottom:1px solid var(--c-border);vertical-align:top}.prose th{background:var(--c-surface-alt);font-weight:650;white-space:nowrap}.prose img{border-radius:var(--radius);border:1px solid var(--c-border)}.prose hr{border:0;border-top:1px solid var(--c-border);margin-block:2.4em}.note{border-radius:var(--radius);padding:16px 18px;border:1px solid var(--c-border);background:var(--c-surface-alt)}.note--tip{background:var(--c-accent-soft);border-color:color-mix(in srgb,var(--c-accent) 30%,transparent)}.note--warn{background:var(--c-warn-soft);border-color:color-mix(in srgb,var(--c-warn) 32%,transparent)}.note p:last-child{margin-bottom:0}.note strong{display:block;margin-bottom:4px}.prose figure{margin:2.2em 0}.prose figure img{display:block;width:100%;border-radius:var(--radius);border:1px solid var(--c-border);background:var(--c-surface)}.prose figcaption{margin-top:10px;font-size:var(--step--1);color:var(--c-text-subtle);line-height:1.5;text-align:center}.prose a[href^=http]:after{content:"↗";display:inline-block;margin-left:.18em;font-size:.78em;vertical-align:.15em;opacity:.65}
