nav[data-astro-cid-dmqpwcec]{max-width:var(--wide-width);margin:0 auto;padding:2.4rem 2rem 1.8rem;display:flex;align-items:baseline;justify-content:space-between;font-family:var(--font-ui)}.wordmark[data-astro-cid-dmqpwcec]{font-size:.84rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink)}.nav-links[data-astro-cid-dmqpwcec]{display:flex;gap:2rem}.nav-links[data-astro-cid-dmqpwcec] a[data-astro-cid-dmqpwcec]{font-size:.79rem;font-weight:500;color:var(--ink-muted);letter-spacing:.02em;transition:color .2s}.nav-links[data-astro-cid-dmqpwcec] a[data-astro-cid-dmqpwcec]:hover,.nav-links[data-astro-cid-dmqpwcec] a[data-astro-cid-dmqpwcec].active{color:var(--ink)}@media(max-width:640px){nav[data-astro-cid-dmqpwcec]{padding:1.6rem 1.2rem 1.2rem}.nav-links[data-astro-cid-dmqpwcec]{gap:1.2rem}}footer[data-astro-cid-sz7xmlte]{max-width:var(--wide-width);margin:0 auto;padding:3rem 2rem;border-top:1px solid var(--rule);display:flex;justify-content:space-between;align-items:baseline;font-family:var(--font-ui);font-size:.74rem;color:var(--ink-faint)}footer[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]{color:var(--ink-muted);transition:color .2s}footer[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]:hover{color:var(--ink)}.footer-links[data-astro-cid-sz7xmlte]{display:flex;gap:1.6rem}@media(max-width:640px){footer[data-astro-cid-sz7xmlte]{flex-direction:column;gap:1rem;padding:2rem 1.2rem}}:root{--ink: #1a1a1a;--ink-muted: #6b6b6b;--ink-faint: #9a9a9a;--surface: #faf9f7;--surface-warm: #f3f1ed;--accent: #2d5a3d;--accent-light: #e8f0eb;--rule: #ddd8d0;--content-width: 680px;--wide-width: 920px;--font-body: "Newsreader", Georgia, serif;--font-ui: "DM Sans", system-ui, sans-serif;--font-mono: "JetBrains Mono", monospace}@media(prefers-color-scheme:dark){:root{--ink: #e8e4de;--ink-muted: #9a9590;--ink-faint: #6e6963;--surface: #141210;--surface-warm: #1e1c19;--accent: #6db87e;--accent-light: #1c2a20;--rule: #2e2a25}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:19px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth}body{font-family:var(--font-body);color:var(--ink);background:var(--surface);line-height:1.72;min-height:100vh}a{color:inherit;text-decoration:none}img{max-width:100%;height:auto}ul,ol{list-style:none}@media(max-width:640px){html{font-size:17px}}.fade-in{opacity:0;transform:translateY(12px);animation:fadeUp .6s ease forwards}@keyframes fadeUp{to{opacity:1;transform:translateY(0)}}.fade-in:nth-child(2){animation-delay:.08s}.fade-in:nth-child(3){animation-delay:.16s}.fade-in:nth-child(4){animation-delay:.24s}.fade-in:nth-child(5){animation-delay:.32s}@media(prefers-reduced-motion:reduce){.fade-in{opacity:1;transform:none;animation:none}}.prose h2{font-size:1.2rem;font-weight:600;margin-top:2.4rem;margin-bottom:.8rem;letter-spacing:-.005em}.prose h3{font-size:1.05rem;font-weight:600;margin-top:2rem;margin-bottom:.6rem}.prose p{margin-bottom:1.3rem;font-size:1rem;line-height:1.72}.prose a{color:var(--accent);text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px}.prose a:hover{text-decoration-thickness:2px}.prose blockquote{border-left:3px solid var(--accent);padding-left:1.4rem;margin:2rem 0;color:var(--ink-muted);font-style:italic}.prose blockquote p{margin-bottom:0}.prose ul,.prose ol{margin:1.3rem 0;padding-left:1.6rem}.prose ul{list-style:disc}.prose ol{list-style:decimal}.prose li{margin-bottom:.5rem;line-height:1.65}.prose code{font-family:var(--font-mono);font-size:.82em;background:var(--surface-warm);padding:.15em .4em;border-radius:3px;border:1px solid var(--rule)}.prose pre{background:var(--surface-warm);background-color:var(--surface-warm)!important;border:1px solid var(--rule);border-radius:6px;padding:1.4rem 1.6rem;margin:2rem 0;overflow-x:auto;font-family:var(--font-mono);font-size:.78rem;line-height:1.65}.prose pre code{background:none;border:none;padding:0;font-size:inherit}.prose hr{border:none;border-top:1px solid var(--rule);margin:2.4rem 0}.prose strong{font-weight:600}.prose em{font-style:italic}html[data-theme=dark] .astro-code,html[data-theme=dark] .astro-code span{color:var(--shiki-dark)!important;background-color:transparent!important}@media(prefers-color-scheme:dark){.astro-code,.astro-code span{color:var(--shiki-dark)!important;background-color:transparent!important}}
