@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:ital,wght@0,400;0,500;0,600;0,700;1,400&family=IBM+Plex+Mono:wght@400;500;600&display=swap";.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}:root{--gb-bg-hard: #1b1e1f;--gb-bg: #232829;--gb-bg-soft: #2b3133;--gb-bg-1: #32383a;--gb-bg-2: #3d4446;--gb-bg-3: #4c5456;--gb-bg-4: #5d6668;--gb-fg-0: #f4ede0;--gb-fg: #e6dcc8;--gb-fg-2: #cfc4ab;--gb-fg-3: #b3a78c;--gb-fg-4: #97896e;--gb-gray: #7d7361;--gb-red: #fb4934;--gb-green: #b8bb26;--gb-yellow: #fabd2f;--gb-blue: #83b6d4;--gb-purple: #d3869b;--gb-aqua: #8ec07c;--gb-orange: #fe8019;--gb-red-dim: #cc241d;--gb-green-dim: #98971a;--gb-yellow-dim: #d79921;--gb-blue-dim: #458588;--gb-purple-dim: #b16286;--gb-aqua-dim: #689d6a;--gb-orange-dim: #d65d0e;--gb-red-fill: #3a2622;--gb-green-fill: #2f3320;--gb-yellow-fill: #38321f;--gb-blue-fill: #243133;--gb-purple-fill: #36262c;--gb-aqua-fill: #283128;--gb-orange-fill: #3a2c1d;--surface-app: var(--gb-bg-hard);--surface-base: var(--gb-bg);--surface-card: var(--gb-bg-soft);--surface-raised: var(--gb-bg-1);--surface-hover: var(--gb-bg-1);--surface-active: var(--gb-bg-2);--surface-code: #1b1e1f;--surface-inset: #181b1c;--text-strong: var(--gb-fg-0);--text-body: var(--gb-fg);--text-muted: var(--gb-fg-2);--text-subtle: var(--gb-fg-3);--text-faint: var(--gb-fg-4);--text-disabled: var(--gb-gray);--text-on-accent: #1b1e1f;--text-link: var(--gb-blue);--text-code: #e6dcc8;--border-subtle: #2f3537;--border-default: #3a4143;--border-strong: var(--gb-bg-3);--border-focus: var(--gb-yellow);--brand: var(--gb-aqua);--brand-strong: #a6cf90;--brand-dim: var(--gb-aqua-dim);--brand-fill: var(--gb-aqua-fill);--status-info: var(--gb-blue);--status-info-fill: var(--gb-blue-fill);--status-success: var(--gb-green);--status-success-fill: var(--gb-green-fill);--status-warning: var(--gb-yellow);--status-warning-fill: var(--gb-yellow-fill);--status-danger: var(--gb-red);--status-danger-fill: var(--gb-red-fill);--status-note: var(--gb-purple);--status-note-fill: var(--gb-purple-fill);--syntax-keyword: var(--gb-red);--syntax-string: var(--gb-green);--syntax-number: var(--gb-purple);--syntax-func: var(--gb-green);--syntax-type: var(--gb-yellow);--syntax-comment: var(--gb-gray);--syntax-punct: var(--gb-fg-3);--syntax-var: var(--gb-blue)}:root{--font-sans: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", "Cascadia Code", monospace;--font-display: var(--font-sans);--font-body: var(--font-sans);--fw-regular: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--fs-display: 40px;--fs-h1: 30px;--fs-h2: 23px;--fs-h3: 18px;--fs-h4: 15px;--fs-body: 16px;--fs-body-sm: 14px;--fs-caption: 13px;--fs-micro: 11px;--fs-code: 14px;--fs-code-sm: 13px;--lh-tight: 1.18;--lh-snug: 1.35;--lh-body: 1.65;--lh-code: 1.6;--ls-tight: -.02em;--ls-normal: 0;--ls-wide: .02em;--ls-eyebrow: .14em;--text-display-weight: var(--fw-semibold);--text-h-weight: var(--fw-semibold);--text-eyebrow-weight: var(--fw-semibold)}.t-display{font-family:var(--font-display);font-size:var(--fs-display);line-height:var(--lh-tight);letter-spacing:var(--ls-tight);font-weight:var(--text-display-weight);color:var(--text-strong)}.t-h1{font-family:var(--font-display);font-size:var(--fs-h1);line-height:var(--lh-tight);letter-spacing:var(--ls-tight);font-weight:var(--text-h-weight);color:var(--text-strong)}.t-h2{font-family:var(--font-display);font-size:var(--fs-h2);line-height:var(--lh-snug);font-weight:var(--text-h-weight);color:var(--text-strong)}.t-h3{font-family:var(--font-display);font-size:var(--fs-h3);line-height:var(--lh-snug);font-weight:var(--fw-semibold);color:var(--text-strong)}.t-body{font-family:var(--font-body);font-size:var(--fs-body);line-height:var(--lh-body);font-weight:var(--fw-regular);color:var(--text-body)}.t-caption{font-family:var(--font-body);font-size:var(--fs-caption);line-height:var(--lh-snug);color:var(--text-subtle)}.t-eyebrow{font-family:var(--font-mono);font-size:var(--fs-micro);line-height:1;letter-spacing:var(--ls-eyebrow);text-transform:uppercase;font-weight:var(--text-eyebrow-weight);color:var(--text-faint)}.t-mono{font-family:var(--font-mono);font-size:var(--fs-code);line-height:var(--lh-code);color:var(--text-code)}:root{--sp-0: 0;--sp-1: 2px;--sp-2: 4px;--sp-3: 8px;--sp-4: 12px;--sp-5: 16px;--sp-6: 20px;--sp-7: 24px;--sp-8: 32px;--sp-9: 40px;--sp-10: 48px;--sp-11: 64px;--sp-12: 80px;--sp-13: 96px;--measure: 72ch;--content-max: 760px;--page-max: 1240px;--sidebar-w: 264px;--toc-w: 220px;--topbar-h: 56px;--r-xs: 3px;--r-sm: 5px;--r-md: 7px;--r-lg: 10px;--r-xl: 14px;--r-pill: 999px;--bw-hair: 1px;--bw-thick: 2px}:root{--shadow-none: none;--shadow-sm: 0 1px 2px rgba(0,0,0,.35);--shadow-md: 0 4px 12px rgba(0,0,0,.4);--shadow-lg: 0 12px 32px rgba(0,0,0,.48);--shadow-pop: 0 8px 28px rgba(0,0,0,.55);--highlight-top: inset 0 1px 0 rgba(244,237,224,.04);--highlight-strong: inset 0 1px 0 rgba(244,237,224,.07);--ring-focus: 0 0 0 2px var(--surface-app), 0 0 0 4px var(--gb-yellow);--ring-brand: 0 0 0 2px var(--surface-app), 0 0 0 4px var(--brand);--glow-aqua: 0 0 0 1px var(--gb-aqua), 0 0 16px -2px rgba(142,192,124,.45);--glow-blue: 0 0 0 1px var(--gb-blue), 0 0 16px -2px rgba(131,182,212,.45);--glow-yellow: 0 0 0 1px var(--gb-yellow), 0 0 16px -2px rgba(250,189,47,.45)}:root{--dur-instant: 80ms;--dur-fast: .14s;--dur-base: .22s;--dur-slow: .4s;--dur-flow: 1.6s;--dur-pulse: 2.4s;--ease-crisp: cubic-bezier(.2, 0, 0, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-linear: linear;--ease-step: steps(1, end)}@keyframes mera-dash-flow{to{stroke-dashoffset:-32}}@keyframes mera-node-pulse{0%,to{box-shadow:0 0 0 1px var(--gb-aqua),0 0 #8ec07c00}50%{box-shadow:0 0 0 1px var(--gb-aqua),0 0 18px -2px #8ec07c80}}@keyframes mera-fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes mera-blink{0%,49%{opacity:1}50%,to{opacity:0}}@media (prefers-reduced-motion: reduce){:root{--dur-flow: 0ms;--dur-pulse: 0ms}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--surface-app);color:var(--text-body);font-family:var(--font-body);font-size:var(--fs-body);line-height:var(--lh-body);font-weight:var(--fw-regular);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}::selection{background:#8ec07c4d;color:var(--text-strong)}a{color:var(--text-link);text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:2px}code,pre,kbd,samp{font-family:var(--font-mono)}:focus-visible{outline:none;box-shadow:var(--ring-focus);border-radius:var(--r-xs)}hr{border:none;border-top:1px solid var(--border-subtle);margin:var(--sp-8) 0}*{scrollbar-width:thin;scrollbar-color:var(--gb-bg-3) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-thumb{background:var(--gb-bg-3);border-radius:999px;border:2px solid transparent;background-clip:padding-box}*::-webkit-scrollbar-thumb:hover{background:var(--gb-bg-4)}:root{color-scheme:dark}html,body{margin:0;background:var(--surface-app);color:var(--text-body);font-family:var(--font-sans);-webkit-font-smoothing:antialiased}.prose{font-size:var(--fs-body);line-height:var(--lh-body);color:var(--text-body)}.prose h1{font-size:var(--fs-display);line-height:var(--lh-tight);letter-spacing:-.02em;font-weight:600;color:var(--text-strong);margin:0 0 12px}.prose h2{font-size:var(--fs-h2);font-weight:600;color:var(--text-strong);letter-spacing:-.01em;margin:34px 0 12px;scroll-margin-top:72px}.prose h3{font-size:var(--fs-h3);font-weight:600;color:var(--text-strong);margin:26px 0 10px;scroll-margin-top:72px}.prose p{margin:0 0 14px}.prose a{color:var(--text-link);text-decoration:none;border-bottom:1px solid transparent}.prose a:hover{border-bottom-color:var(--text-link)}.prose ul{margin:0 0 16px;padding-left:0;list-style:none}.prose ul li{display:flex;gap:10px;margin-bottom:6px}.prose ul li:before{content:"";flex:none;margin-top:8px;width:5px;height:5px;border-radius:50%;background:var(--brand)}.prose :not(pre)>code{font-family:var(--font-mono);font-size:.9em;color:var(--gb-aqua);background:var(--surface-code);border:1px solid var(--border-subtle);border-radius:3px;padding:1px 5px}.prose blockquote{margin:0 0 16px;padding-left:14px;border-left:3px solid var(--border-strong);color:var(--text-muted)}
