.site-header[data-astro-cid-3ef6ksr2]{padding-block:var(--space-5)}.bar[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}.wordmark[data-astro-cid-3ef6ksr2]{font-weight:var(--fw-bold);font-size:var(--fs-500);letter-spacing:-.02em;color:var(--fg);text-decoration:none}:root{--bg: #faf9f5;--bg-subtle: #f0eee6;--fg: #141413;--fg-muted: #5e5d59;--border: #e8e6dc;--accent: #d97757;--accent-strong: #c6613f;--btn-bg: #141413;--btn-bg-hover: #3d3d3a;--btn-fg: #faf9f5;--selection-bg: rgba(217, 119, 87, .5);--selection-fg: #141413;--font-sans: var(--font-inter, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif);--fs-300: .875rem;--fs-400: 1rem;--fs-500: 1.125rem;--fs-600: 1.375rem;--fs-700: 1.75rem;--fs-800: 2.25rem;--fs-900: 3rem;--lh-tight: 1.08;--lh-snug: 1.35;--lh-normal: 1.6;--fw-normal: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-7: 3rem;--space-8: 4rem;--space-9: 6rem;--site-width: 80rem;--site-margin: clamp(2rem, 1.08rem + 3.92vw, 5rem);--measure: 42rem;--radius-sm: .25rem;--radius: .5rem;--radius-card: .75rem;--radius-lg: 1rem;--shadow-card: rgba(0, 0, 0, .01) 0 2px 2px, rgba(0, 0, 0, .02) 0 4px 4px, rgba(0, 0, 0, .04) 0 16px 24px}::selection{background:var(--selection-bg);color:var(--selection-fg)}img::selection{background:transparent}*,*:before,*:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{min-height:100vh;font-family:var(--font-sans);font-size:var(--fs-400);line-height:var(--lh-normal);color:var(--fg);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}img,picture,svg,video{display:block;max-width:100%;height:auto}input,button,textarea,select{font:inherit;color:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}h1,h2,h3,h4{line-height:var(--lh-tight);font-weight:var(--fw-bold);letter-spacing:-.02em;text-wrap:balance}h1{font-size:clamp(2rem,1.3rem + 3.2vw,2.75rem)}h2{font-size:clamp(1.5rem,1.15rem + 1.6vw,2rem)}h3{font-size:var(--fs-600)}h4{font-size:var(--fs-500)}a{color:var(--fg);text-decoration:underline;text-underline-offset:.2em;text-decoration-thickness:1px}a:hover{color:var(--fg-muted)}strong,b{font-weight:var(--fw-semibold)}:focus-visible{outline:2px solid var(--fg);outline-offset:2px;border-radius:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;left:var(--space-4);top:-4rem;z-index:100;background:var(--bg);color:var(--fg);padding:var(--space-2) var(--space-4);border:1px solid var(--border);border-radius:var(--radius);text-decoration:none}.skip-link:focus{top:var(--space-4)}.container{width:100%;max-width:var(--site-width);margin-inline:auto;padding-inline:var(--site-margin)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:2.25rem;padding:.5rem 1rem;border:1px solid transparent;border-radius:var(--radius);font-size:.9375rem;font-weight:var(--fw-normal);line-height:1;letter-spacing:-.005em;text-decoration:none;cursor:pointer}.btn-primary{background:var(--btn-bg);color:var(--btn-fg);border-color:var(--btn-bg)}.btn-primary:hover{background:var(--btn-bg-hover);border-color:var(--btn-bg-hover)}.btn-secondary{background:transparent;color:var(--fg);border-color:var(--border)}.btn-secondary:hover{border-color:var(--fg-muted)}.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed;pointer-events:none}.prose{max-width:var(--measure)}.prose>*+*{margin-top:var(--space-4)}.prose h2{margin-top:var(--space-7)}.prose h3{margin-top:var(--space-6)}.prose ul,.prose ol{padding-left:var(--space-5)}.prose li+li{margin-top:var(--space-2)}.prose code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9em;background:var(--bg-subtle);padding:.15em .35em;border-radius:var(--radius-sm)}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
