@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){:root,:host{--color-global-bg:oklch(98.5% .004 250);--color-global-text:oklch(23% .012 255);--color-muted:oklch(48% .012 255);--color-link:oklch(45% .09 245);--color-accent:oklch(45% .09 245);--color-accent-2:oklch(23% .012 255);--color-quote:oklch(39% .012 255);--color-line:oklch(89% .006 250)}*,:before,:after,::backdrop{--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-content:""}}}@property --color-global-bg{syntax:"<color>";inherits:true;initial-value:oklch(98.5% .004 250)}@property --color-global-text{syntax:"<color>";inherits:true;initial-value:oklch(23% .012 255)}@property --color-muted{syntax:"<color>";inherits:true;initial-value:oklch(48% .012 255)}@property --color-link{syntax:"<color>";inherits:true;initial-value:oklch(45% .09 245)}@property --color-accent{syntax:"<color>";inherits:true;initial-value:oklch(45% .09 245)}@property --color-accent-2{syntax:"<color>";inherits:true;initial-value:oklch(23% .012 255)}@property --color-quote{syntax:"<color>";inherits:true;initial-value:oklch(39% .012 255)}@property --color-line{syntax:"<color>";inherits:true;initial-value:oklch(89% .006 250)}:root,:host{--color-global-bg:oklch(98.5% .004 250);--color-entry:oklch(99% .003 250);--color-paper-2:oklch(96% .006 250);--color-global-text:oklch(23% .012 255);--color-muted:oklch(48% .012 255);--color-link:oklch(45% .09 245);--color-accent:oklch(45% .09 245);--color-accent-2:oklch(23% .012 255);--color-quote:oklch(39% .012 255);--color-line:oklch(89% .006 250);--color-code-bg:oklch(95.5% .006 250);--color-code-block:oklch(20% .014 255);--color-code-text:oklch(91% .008 250);--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--font-serif:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--font-display:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--font-body:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--font-mono:ui-monospace, "SFMono-Regular", Menlo, Monaco, Consolas, "Liberation Mono", monospace;--ease-out:cubic-bezier(.16, 1, .3, 1);--dur-micro:.12s;--dur-short:.22s;--spacing:.25rem;--container-3xl:48rem;--text-xs:.75rem;--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--font-weight-normal:400;--font-weight-semibold:600;--leading-tight:1.25;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--aspect-video:16 / 9;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}:root{--color-paper:var(--color-global-bg);--color-paper-2:oklch(96% .006 250);--color-ink:var(--color-global-text);--color-ink-2:oklch(39% .012 255);--color-rule:var(--color-line);--color-focus:oklch(42% .12 245);--font-body:var(--font-serif);--font-wordmark:var(--font-display);--space-3xs:.125rem;--space-2xs:.25rem;--space-xs:.5rem;--space-sm:.75rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2.5rem;--space-2xl:4rem;--space-3xl:6rem;--text-xs:.75rem;--text-sm:.8125rem;--text-base:1rem;--text-md:1.125rem;--text-lg:1.5rem;--text-xl:1.75rem;--text-2xl:2.25rem;--main-width:45rem;--nav-width:64rem;--page-gap:1.5rem;--content-gap:1.25rem;--header-height:3.75rem;--footer-height:3.75rem;--rule-thin:1px;--radius-card:.5rem;--radius-control:.375rem;--z-base:1;--z-raised:10;--z-dropdown:100;--z-sticky:200;--z-modal:400;--z-toast:500;--z-tooltip:600}@layer theme;@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}html{color-scheme:light dark;accent-color:var(--color-accent);scrollbar-gutter:stable;font-family:var(--font-body);background:var(--color-global-bg);overflow-x:clip}html[data-theme=light]{color-scheme:light}html[data-theme=dark]{color-scheme:dark}body{background:var(--color-global-bg);min-width:0;min-height:100vh;color:var(--color-global-text);font-family:var(--font-body);font-size:var(--text-base);word-break:break-word;font-weight:400;line-height:1.6;overflow-x:visible}:target{scroll-margin-block:5rem}code,kbd,samp,pre{font-family:var(--font-mono)}a{text-underline-offset:.18em}a:active,button:active{color:var(--color-global-text)}button:disabled,button[aria-disabled=true]{cursor:not-allowed;opacity:.55}::selection{background:#d2dde7}@supports (color:color-mix(in lab,red,red)){::selection{background:color-mix(in oklab,var(--color-accent) 18%,var(--color-global-bg))}}:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px;border-radius:var(--radius-control)}:where([data-astro-image]){object-fit:var(--fit);object-position:var(--pos)}[data-astro-image=full-width]{width:100%}[data-astro-image=constrained]{max-width:100%}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}}@layer components{.admonition{--admonition-color:var(--color-link);padding:var(--space-md);background:var(--color-paper-2);border-inline-start:3px solid var(--admonition-color);padding-inline-start:var(--space-lg)}.admonition .admonition-title{align-items:center;gap:var(--space-xs);color:var(--color-global-text);font-size:var(--text-base);text-transform:capitalize;margin:0;font-weight:700;display:flex}.admonition .admonition-title:before{width:var(--space-xs);height:var(--space-xs);background:var(--admonition-color);content:"";border-radius:50%;flex:none;display:inline-block}.admonition .admonition-content>:last-child{margin-bottom:0}.github-card{border-radius:var(--radius-md);background-color:#191d230d}@supports (color:color-mix(in lab,red,red)){.github-card{background-color:color-mix(in oklab,var(--color-global-text) 5%,transparent)}}.github-card{padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 3)}.github-card .gh-title{align-items:center;gap:calc(var(--spacing) * 2);font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height));display:flex;position:relative}.github-card .gh-title .gh-avatar{height:calc(var(--spacing) * 6);width:calc(var(--spacing) * 6);background-color:#191d2333;border-radius:3.40282e38px;flex:none}@supports (color:color-mix(in lab,red,red)){.github-card .gh-title .gh-avatar{background-color:color-mix(in oklab,var(--color-global-text) 20%,transparent)}}.github-card .gh-title .gh-avatar{background-image:none;background-position:50%;background-size:cover}.github-card .gh-title .gh-text{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.github-card .gh-title .gh-text:after{inset:calc(var(--spacing) * 0);--tw-content:"";content:var(--tw-content);position:absolute}.github-card .gh-title .gh-icon{pointer-events:none;height:calc(var(--spacing) * 6);width:calc(var(--spacing) * 6);background-color:var(--color-global-text);flex:none;margin-inline-start:auto;-webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='31' height='32' viewBox='0 0 496 512'><path fill='%23a1f7cb' d='M165.9 397.4c0 2-2.3 3.6-5.2 3.6c-3.3.3-5.6-1.3-5.6-3.6c0-2 2.3-3.6 5.2-3.6c3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9c2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9c.3 2 2.9 3.3 5.9 2.6c2.9-.7 4.9-2.6 4.6-4.6c-.3-1.9-3-3.2-5.9-2.9M244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2c12.8 2.3 17.3-5.6 17.3-12.1c0-6.2-.3-40.4-.3-61.4c0 0-70 15-84.7-29.8c0 0-11.4-29.1-27.8-36.6c0 0-22.9-15.7 1.6-15.4c0 0 24.9 2 38.6 25.8c21.9 38.6 58.6 27.5 72.9 20.9c2.3-16 8.8-27.1 16-33.7c-55.9-6.2-112.3-14.3-112.3-110.5c0-27.5 7.6-41.3 23.6-58.9c-2.6-6.5-11.1-33.3 2.6-67.9c20.9-6.5 69 27 69 27c20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27c13.7 34.7 5.2 61.4 2.6 67.9c16 17.7 25.8 31.5 25.8 58.9c0 96.5-58.9 104.2-114.8 110.5c9.2 7.9 17 22.9 17 46.4c0 33.7-.3 75.4-.3 83.6c0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252C496 113.3 383.5 8 244.8 8M97.2 352.9c-1.3 1-1 3.3.7 5.2c1.6 1.6 3.9 2.3 5.2 1c1.3-1 1-3.3-.7-5.2c-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9c1.6 1 3.6.7 4.3-.7c.7-1.3-.3-2.9-2.3-3.9c-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2c2.3 2.3 5.2 2.6 6.5 1c1.3-1.3.7-4.3-1.3-6.2c-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9c1.6 2.3 4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2c-1.4-2.3-4-3.3-5.6-2'/%3E%3C/svg%3E") 50%/24px no-repeat;mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='31' height='32' viewBox='0 0 496 512'><path fill='%23a1f7cb' d='M165.9 397.4c0 2-2.3 3.6-5.2 3.6c-3.3.3-5.6-1.3-5.6-3.6c0-2 2.3-3.6 5.2-3.6c3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9c2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9c.3 2 2.9 3.3 5.9 2.6c2.9-.7 4.9-2.6 4.6-4.6c-.3-1.9-3-3.2-5.9-2.9M244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2c12.8 2.3 17.3-5.6 17.3-12.1c0-6.2-.3-40.4-.3-61.4c0 0-70 15-84.7-29.8c0 0-11.4-29.1-27.8-36.6c0 0-22.9-15.7 1.6-15.4c0 0 24.9 2 38.6 25.8c21.9 38.6 58.6 27.5 72.9 20.9c2.3-16 8.8-27.1 16-33.7c-55.9-6.2-112.3-14.3-112.3-110.5c0-27.5 7.6-41.3 23.6-58.9c-2.6-6.5-11.1-33.3 2.6-67.9c20.9-6.5 69 27 69 27c20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27c13.7 34.7 5.2 61.4 2.6 67.9c16 17.7 25.8 31.5 25.8 58.9c0 96.5-58.9 104.2-114.8 110.5c9.2 7.9 17 22.9 17 46.4c0 33.7-.3 75.4-.3 83.6c0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252C496 113.3 383.5 8 244.8 8M97.2 352.9c-1.3 1-1 3.3.7 5.2c1.6 1.6 3.9 2.3 5.2 1c1.3-1 1-3.3-.7-5.2c-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9c1.6 1 3.6.7 4.3-.7c.7-1.3-.3-2.9-2.3-3.9c-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2c2.3 2.3 5.2 2.6 6.5 1c1.3-1.3.7-4.3-1.3-6.2c-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9c1.6 2.3 4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2c-1.4-2.3-4-3.3-5.6-2'/%3E%3C/svg%3E") 50%/24px no-repeat}.github-card .gh-description{margin-top:calc(var(--spacing) * 4);--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.github-card .gh-chips{margin-top:calc(var(--spacing) * 4);align-items:center;gap:calc(var(--spacing) * 4);flex-wrap:wrap;display:flex}.github-card .gh-chips .gh-stars,.github-card .gh-chips .gh-forks,.github-card .gh-chips .gh-license,.github-card .gh-chips .gh-followers,.github-card .gh-chips .gh-repositories{align-items:center;column-gap:calc(var(--spacing) * 1);display:flex}:is(.github-card .gh-chips .gh-stars,.github-card .gh-chips .gh-forks,.github-card .gh-chips .gh-license,.github-card .gh-chips .gh-followers,.github-card .gh-chips .gh-repositories):before{height:calc(var(--spacing) * 5);width:calc(var(--spacing) * 5);background-color:var(--color-global-text);--tw-content:"";content:var(--tw-content);-webkit-mask:var(--chip-image) center center / 16px auto no-repeat;mask:var(--chip-image) center center / 16px auto no-repeat;display:block}.github-card .gh-chips .gh-stars{--chip-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' height='16' viewBox='0 0 16 16' version='1.1' width='16'><path d='M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25Zm0 2.445L6.615 5.5a.75.75 0 0 1-.564.41l-3.097.45 2.24 2.184a.75.75 0 0 1 .216.664l-.528 3.084 2.769-1.456a.75.75 0 0 1 .698 0l2.77 1.456-.53-3.084a.75.75 0 0 1 .216-.664l2.24-2.183-3.096-.45a.75.75 0 0 1-.564-.41L8 2.694Z'/></svg>")}.github-card .gh-chips .gh-forks{--chip-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' height='16' viewBox='0 0 16 16' version='1.1' width='16'><path d='M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75v-.878a2.25 2.25 0 1 1 1.5 0v.878a2.25 2.25 0 0 1-2.25 2.25h-1.5v2.128a2.251 2.251 0 1 1-1.5 0V8.5h-1.5A2.25 2.25 0 0 1 3.5 6.25v-.878a2.25 2.25 0 1 1 1.5 0ZM5 3.25a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Zm6.75.75a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Zm-3 8.75a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Z'/></svg>")}.github-card .gh-chips .gh-license{--chip-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' height='16' viewBox='0 0 16 16' version='1.1' width='16'><path d='M8.75.75V2h.985c.304 0 .603.08.867.231l1.29.736c.038.022.08.033.124.033h2.234a.75.75 0 0 1 0 1.5h-.427l2.111 4.692a.75.75 0 0 1-.154.838l-.53-.53.529.531-.001.002-.002.002-.006.006-.006.005-.01.01-.045.04c-.21.176-.441.327-.686.45C14.556 10.78 13.88 11 13 11a4.498 4.498 0 0 1-2.023-.454 3.544 3.544 0 0 1-.686-.45l-.045-.04-.016-.015-.006-.006-.004-.004v-.001a.75.75 0 0 1-.154-.838L12.178 4.5h-.162c-.305 0-.604-.079-.868-.231l-1.29-.736a.245.245 0 0 0-.124-.033H8.75V13h2.5a.75.75 0 0 1 0 1.5h-6.5a.75.75 0 0 1 0-1.5h2.5V3.5h-.984a.245.245 0 0 0-.124.033l-1.289.737c-.265.15-.564.23-.869.23h-.162l2.112 4.692a.75.75 0 0 1-.154.838l-.53-.53.529.531-.001.002-.002.002-.006.006-.016.015-.045.04c-.21.176-.441.327-.686.45C4.556 10.78 3.88 11 3 11a4.498 4.498 0 0 1-2.023-.454 3.544 3.544 0 0 1-.686-.45l-.045-.04-.016-.015-.006-.006-.004-.004v-.001a.75.75 0 0 1-.154-.838L2.178 4.5H1.75a.75.75 0 0 1 0-1.5h2.234a.249.249 0 0 0 .125-.033l1.288-.737c.265-.15.564-.23.869-.23h.984V.75a.75.75 0 0 1 1.5 0Zm2.945 8.477c.285.135.718.273 1.305.273s1.02-.138 1.305-.273L13 6.327Zm-10 0c.285.135.718.273 1.305.273s1.02-.138 1.305-.273L3 6.327Z'/></svg>")}.github-card .gh-chips .gh-followers{--chip-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' text='muted' height='16' viewBox='0 0 16 16' version='1.1' width='16'><path d='M2 5.5a3.5 3.5 0 1 1 5.898 2.549 5.508 5.508 0 0 1 3.034 4.084.75.75 0 1 1-1.482.235 4 4 0 0 0-7.9 0 .75.75 0 0 1-1.482-.236A5.507 5.507 0 0 1 3.102 8.05 3.493 3.493 0 0 1 2 5.5ZM11 4a3.001 3.001 0 0 1 2.22 5.018 5.01 5.01 0 0 1 2.56 3.012.749.749 0 0 1-.885.954.752.752 0 0 1-.549-.514 3.507 3.507 0 0 0-2.522-2.372.75.75 0 0 1-.574-.73v-.352a.75.75 0 0 1 .416-.672A1.5 1.5 0 0 0 11 5.5.75.75 0 0 1 11 4Zm-5.5-.5a2 2 0 1 0-.001 3.999A2 2 0 0 0 5.5 3.5Z'/></svg>")}.github-card .gh-chips .gh-repositories{--chip-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' height='16' viewBox='0 0 16 16' version='1.1' width='16'><path d='M2 2.5A2.5 2.5 0 0 1 4.5 0h8.75a.75.75 0 0 1 .75.75v12.5a.75.75 0 0 1-.75.75h-2.5a.75.75 0 0 1 0-1.5h1.75v-2h-8a1 1 0 0 0-.714 1.7.75.75 0 1 1-1.072 1.05A2.495 2.495 0 0 1 2 11.5Zm10.5-1h-8a1 1 0 0 0-1 1v6.708A2.486 2.486 0 0 1 4.5 9h8ZM5 12.25a.25.25 0 0 1 .25-.25h3.5a.25.25 0 0 1 .25.25v3.25a.25.25 0 0 1-.4.2l-1.45-1.087a.249.249 0 0 0-.3 0L5.4 15.7a.25.25 0 0 1-.4-.2Z'/></svg>")}.github-card .gh-chips .gh-language,.github-card .gh-chips .gh-region{margin-inline-start:auto}.github-card.gh-loading .gh-title .gh-avatar,.github-card.gh-loading .gh-description,.github-card.gh-loading .gh-chips span{animation:var(--animate-pulse);border-radius:var(--radius-xl);background-color:#191d2380}@supports (color:color-mix(in lab,red,red)){.github-card.gh-loading .gh-title .gh-avatar,.github-card.gh-loading .gh-description,.github-card.gh-loading .gh-chips span{background-color:color-mix(in oklab,var(--color-global-text) 50%,transparent)}}.github-card.gh-loading .gh-title .gh-avatar,.github-card.gh-loading .gh-description,.github-card.gh-loading .gh-chips span{color:#0000}.github-card.gh-loading .gh-chips span:before{background-color:#0000}.github-card.gh-error .gh-avatar,.github-card.gh-error .gh-description,.github-card.gh-error .gh-chips{display:none}.page-shell{width:100%;max-width:calc(var(--main-width) + var(--page-gap) * 2);padding-inline:clamp(.875rem,4vw,var(--page-gap));margin-inline:auto}.title{min-width:0;color:var(--color-accent-2);font-family:var(--font-display);font-size:var(--text-xl);letter-spacing:-.025em;overflow-wrap:anywhere;text-wrap:balance;font-style:normal;font-weight:700;line-height:1.2}.mono-label,.meta-text{color:var(--color-muted);font-family:var(--font-body);font-size:var(--text-sm);font-variant-numeric:tabular-nums;line-height:1.45}.cactus-link{color:var(--color-link);text-decoration:underline;-webkit-text-decoration-color:var(--color-line);text-decoration-color:var(--color-line);text-underline-offset:.18em;text-decoration-thickness:1px}.cactus-link:hover,.cactus-link:focus-visible{-webkit-text-decoration-color:var(--color-link);text-decoration-color:var(--color-link);text-decoration-thickness:2px}.home-info{padding-block:var(--space-xs) var(--space-2xl)}.home-title{max-width:18ch;font-family:var(--font-display);letter-spacing:-.03em;text-wrap:balance;font-size:clamp(2rem,7vw,2.5rem);font-style:normal;font-weight:700;line-height:1.2}.home-copy{max-width:65ch;margin-top:var(--space-md);font-size:var(--text-base);line-height:1.65}.home-copy+.home-copy{margin-top:var(--space-sm)}.section-block{margin-block:var(--space-xl) var(--space-2xl)}.section-head{justify-content:space-between;align-items:baseline;gap:var(--space-md);margin-bottom:var(--space-lg);display:flex}.section-title{font-family:var(--font-display);font-size:var(--text-lg);letter-spacing:-.018em;font-style:normal;font-weight:700;line-height:1.25}.section-link,.back-link{color:var(--color-link);font-size:var(--text-sm);text-decoration:underline;-webkit-text-decoration-color:var(--color-line);text-decoration-color:var(--color-line);white-space:nowrap;text-decoration-thickness:1px}.section-link:hover,.section-link:focus-visible,.back-link:hover,.back-link:focus-visible{-webkit-text-decoration-color:var(--color-link);text-decoration-color:var(--color-link);text-decoration-thickness:2px}.entry-list{gap:var(--space-lg);list-style:none;display:grid}.index-list{border-block:var(--rule-thin) solid var(--color-line);list-style:none}.index-row{justify-content:space-between;align-items:center;gap:var(--space-lg);border-bottom:var(--rule-thin) solid var(--color-line);min-height:3.25rem;display:flex}.index-row:last-child{border-bottom:0}.index-row a{color:var(--color-global-text);text-decoration:none}.index-row a:hover,.index-row a:focus-visible{color:var(--color-link);text-decoration:underline}.post-card,.project-card{padding:var(--space-lg);background:var(--color-entry);border:var(--rule-thin) solid var(--color-line);border-radius:var(--radius-card);position:relative}@media(hover:hover)and (pointer:fine){.post-card:hover,.project-card:hover{background:var(--color-paper-2);border-color:#9b9fa4}@supports (color:color-mix(in lab,red,red)){.post-card:hover,.project-card:hover{border-color:color-mix(in oklab,var(--color-muted) 48%,var(--color-line))}}}.post-card--with-cover{grid-template-columns:minmax(0,1fr) minmax(13rem,38%);padding:0;display:grid;overflow:hidden}.post-card-cover{background:var(--color-paper-2);border-inline-start:var(--rule-thin) solid var(--color-line);grid-area:1/2;min-height:100%;display:block;overflow:hidden}.post-card-cover img{object-fit:cover;object-position:50% 50%;width:100%;height:100%;transition:filter var(--dur-short) var(--ease-out);display:block}.post-card-cover:hover img,.post-card-cover:focus-visible img{filter:saturate(.92)contrast(1.04)}.post-card--with-cover .post-card-body{padding:var(--space-lg);grid-area:1/1}.entry-title{font-family:var(--font-display);font-size:var(--text-lg);letter-spacing:-.018em;overflow-wrap:anywhere;font-style:normal;font-weight:700;line-height:1.3}.entry-title a{text-decoration:none}.entry-title a:hover,.entry-title a:focus-visible{text-decoration:underline;-webkit-text-decoration-color:var(--color-link);text-decoration-color:var(--color-link);text-decoration-thickness:2px}.entry-summary{margin-top:var(--space-xs);color:var(--color-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.875rem;line-height:1.6;display:-webkit-box;overflow:hidden}.entry-meta{align-items:center;gap:var(--space-xs);margin-top:var(--space-sm);color:var(--color-muted);font-size:var(--text-sm);font-variant-numeric:tabular-nums;flex-wrap:wrap;display:flex}.entry-meta a{white-space:nowrap}.article-header{margin-bottom:var(--space-xl);padding-top:clamp(1.5rem,4vw,3rem)}.article-heading{max-width:45rem}.article-heading--feature{width:min(50rem,100vw - 2rem);max-width:none;margin-inline:50%;transform:translate(-50%)}.article-title{max-width:24ch;font-family:var(--font-display);letter-spacing:-.03em;overflow-wrap:anywhere;text-wrap:balance;font-size:clamp(2rem,4vw,2.5rem);font-style:normal;font-weight:700;line-height:1.15}.article-meta{margin-top:var(--space-md)}.article-deck{align-items:flex-start;gap:var(--space-md);max-width:52rem;margin-top:var(--space-lg);color:var(--color-ink-2);text-wrap:pretty;font-size:clamp(1.0625rem,2vw,1.25rem);line-height:1.65;display:flex}.article-deck p{margin:0}.article-deck-mark{background:var(--color-accent);flex:0 0 1.5rem;height:1px;margin-top:.85em}.article-tags{gap:var(--space-xs) var(--space-md);margin-top:var(--space-lg);color:var(--color-muted);font-size:var(--text-sm);flex-wrap:wrap;display:flex}.article-tags a{text-decoration-color:#0000}.article-tags a:hover,.article-tags a:focus-visible{color:var(--color-link);text-decoration-color:currentColor}.article-cover{width:min(50rem,100vw - 2rem);margin:var(--space-xl) 50% 0;transform:translate(-50%)}.article-cover-frame{background:var(--color-paper-2);border-radius:var(--radius-card);overflow:hidden}.article-cover-frame img{width:100%;height:auto;display:block}.article-cover-credit{margin-top:var(--space-xs);color:var(--color-muted);font-size:var(--text-xs);text-align:left;line-height:1.5}.article-cover-credit a{color:inherit;-webkit-text-decoration-color:var(--color-line);text-decoration-color:var(--color-line)}.article-cover-credit a:hover,.article-cover-credit a:focus-visible{color:var(--color-link);text-decoration-color:currentColor}.toc-panel{margin-bottom:var(--space-2xl);padding-block:var(--space-sm);border-block:var(--rule-thin) solid var(--color-line);background:0 0;font-size:.9375rem}.toc-panel summary{cursor:pointer;min-height:2.75rem;color:var(--color-global-text);align-items:center;font-weight:500;list-style-position:inside;display:flex}.toc-panel nav{padding:var(--space-xs) var(--space-md) var(--space-sm)}.toc-panel ol{gap:var(--space-xs);display:grid}.toc-panel a{color:var(--color-muted);text-decoration:none}.toc-panel a:hover,.toc-panel a:focus-visible{color:var(--color-link);text-decoration:underline}.social-list{gap:var(--space-sm) var(--space-lg);flex-wrap:wrap;list-style:none;display:flex}.social-list a{color:var(--color-muted);font-size:var(--text-sm);white-space:nowrap;-webkit-text-decoration:underline #0000;text-decoration:underline #0000}.social-list a:hover,.social-list a:focus-visible{color:var(--color-link);text-decoration-color:currentColor}.to-top-button{z-index:var(--z-raised);width:2.75rem;height:2.75rem;color:var(--color-muted);background:var(--color-global-bg);border:var(--rule-thin) solid var(--color-line);cursor:pointer;opacity:0;pointer-events:none;transition:opacity var(--dur-short) var(--ease-out),color var(--dur-micro) var(--ease-out),border-color var(--dur-micro) var(--ease-out);border-radius:50%;place-items:center;display:grid;position:fixed;inset-block-end:max(var(--space-lg),env(safe-area-inset-bottom));inset-inline-end:var(--space-lg)}.to-top-button[data-show=true]{opacity:1;pointer-events:auto}.to-top-button:hover,.to-top-button:focus-visible{color:var(--color-link);border-color:var(--color-link)}.article-footer-nav{margin-top:var(--space-3xl)}.article-footer-tags{gap:var(--space-xs) var(--space-md);margin-top:var(--space-3xl);padding-top:var(--space-lg);border-top:var(--rule-thin) solid var(--color-line);color:var(--color-muted);font-size:var(--text-sm);flex-wrap:wrap;display:flex}.article-footer-tags a{text-decoration-color:#0000}.article-footer-tags a:hover,.article-footer-tags a:focus-visible{color:var(--color-link);text-decoration-color:currentColor}.article-footer-source{margin-top:var(--space-lg);color:var(--color-muted);font-size:var(--text-sm)}.article-footer-source a{color:var(--color-link);text-decoration:underline}}@layer utilities{.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.relative{position:relative}.static{position:static}.inset-0{inset:calc(var(--spacing) * 0)}.inset-x-0{inset-inline:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.top-full{top:100%}.z-\[var\(--z-sticky\)\]{z-index:var(--z-sticky)}.prose{--tw-prose-body:var(--color-global-text);--tw-prose-bold:var(--color-accent-2);--tw-prose-bullets:var(--color-muted);--tw-prose-code:var(--color-global-text);--tw-prose-headings:var(--color-accent-2);--tw-prose-hr:var(--color-line);--tw-prose-links:var(--color-link);--tw-prose-quotes:var(--color-quote);--tw-prose-th-borders:var(--color-line);--tw-prose-td-borders:var(--color-line);max-width:65ch;font-family:var(--font-body);font-size:var(--text-base);font-variant-numeric:oldstyle-nums;line-height:1.65}.prose :where(p,ul,ol,dl,figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:var(--content-gap)}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){font-family:var(--font-display);margin-top:1.75rem;margin-bottom:1.25rem;font-size:1.75rem;font-style:normal;font-weight:700;line-height:1.25}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){font-family:var(--font-display);margin-top:1.5rem;margin-bottom:1rem;font-size:1.5rem;font-style:normal;font-weight:700;line-height:1.3}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){font-family:var(--font-display);margin-top:1.25rem;margin-bottom:.75rem;font-size:1.125rem;font-style:normal;font-weight:700;line-height:1.35}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){-webkit-text-decoration-color:var(--color-line);text-decoration-color:var(--color-line);text-underline-offset:.18em;text-decoration-thickness:1px}.prose :where(a:hover,a:focus-visible):not(:where([class~=not-prose],[class~=not-prose] *)){-webkit-text-decoration-color:var(--color-link);text-decoration-color:var(--color-link);text-decoration-thickness:2px}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){padding-block:var(--space-md);border-block:var(--rule-thin) solid var(--color-line);font-style:normal}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){max-width:100%;margin-block:var(--space-md);border-radius:var(--radius-control)}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){max-width:75%;margin:var(--space-xs) auto var(--space-xl);color:var(--color-muted);text-align:center;font-size:.9375rem;line-height:1.35}.prose :where(code):not(:where(pre code,[class~=not-prose],[class~=not-prose] *)){background:var(--color-code-bg);border-radius:.2rem;padding:.2em .35em;font-size:.82em}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){background:var(--color-code-block);border-radius:var(--radius-card)}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){white-space:pre-wrap;overflow-wrap:anywhere}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){margin-block:var(--space-xl);border-top:var(--rule-thin) solid var(--color-line)}.mx-1{margin-inline:calc(var(--spacing) * 1)}.mx-auto{margin-inline:auto}.my-8{margin-block:calc(var(--spacing) * 8)}.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);margin-top:1.2em;margin-bottom:1.2em;font-size:1.25em;line-height:1.6}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);text-underline-offset:2px;font-weight:500;text-decoration:underline}@media(hover:hover){.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)):hover{-webkit-text-decoration-color:var(--color-link);text-decoration-color:var(--color-link);text-decoration-thickness:2px}}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:700}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em;list-style-type:decimal}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em;list-style-type:disc}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-counters);font-weight:400}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.25em;font-weight:600}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-style:solid;border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"“""”""‘""’";border-left-color:var(--color-line);border-left-width:3px;margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:var(--space-md);font-style:normal;font-weight:500}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:0;margin-bottom:.888889em;font-size:2.25em;font-weight:800;line-height:1.11111}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:900}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:2em;margin-bottom:1em;font-size:1.5em;font-weight:700;line-height:1.33333}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:800}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.6em;margin-bottom:.6em;font-size:1.25em;font-weight:600;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.5em;margin-bottom:.5em;font-weight:600;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em;display:block}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-kbd);box-shadow:0 0 0 1px var(--tw-prose-kbd-shadows),0 3px 0 var(--tw-prose-kbd-shadows);padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;border-radius:.3125rem;padding-inline-start:.375em;font-family:inherit;font-size:.875em;font-weight:500}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)):where([data-theme=dark],[data-theme=dark] *){background:var(--color-global-text)}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);background:#e9eff4;font-size:.875em;font-weight:600}@supports (color:color-mix(in lab,red,red)){.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){background:color-mix(in oklab,var(--color-accent) 7%,var(--color-global-bg))}}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){border-radius:3px;padding-inline:.25em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before,.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);padding-top:.857143em;padding-inline-end:1.14286em;padding-bottom:.857143em;border-radius:.375rem;margin-top:1.71429em;margin-bottom:1.71429em;padding-inline-start:1.14286em;font-size:.875em;font-weight:400;line-height:1.71429;overflow-x:auto}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit;background-color:#0000;border-width:0;border-radius:0;padding:0}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before,.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){table-layout:auto;width:100%;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.71429}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:none;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);vertical-align:bottom;padding-inline-end:.571429em;border-bottom:1px solid var(--color-line);padding-bottom:.571429em;padding-inline-start:.571429em;font-weight:700}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:none;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders);border-top:1px solid var(--color-line)}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);margin-top:.857143em;font-size:.875em;line-height:1.42857}.prose{--tw-prose-body:oklch(37.3% .034 259.733);--tw-prose-headings:oklch(21% .034 264.665);--tw-prose-lead:oklch(44.6% .03 256.802);--tw-prose-links:oklch(21% .034 264.665);--tw-prose-bold:oklch(21% .034 264.665);--tw-prose-counters:oklch(55.1% .027 264.364);--tw-prose-bullets:oklch(87.2% .01 258.338);--tw-prose-hr:oklch(92.8% .006 264.531);--tw-prose-quotes:oklch(21% .034 264.665);--tw-prose-quote-borders:oklch(92.8% .006 264.531);--tw-prose-captions:oklch(55.1% .027 264.364);--tw-prose-kbd:oklch(21% .034 264.665);--tw-prose-kbd-shadows:oklab(21% -.00316127 -.0338527/.1);--tw-prose-code:oklch(21% .034 264.665);--tw-prose-pre-code:oklch(92.8% .006 264.531);--tw-prose-pre-bg:oklch(27.8% .033 256.848);--tw-prose-th-borders:oklch(87.2% .01 258.338);--tw-prose-td-borders:oklch(92.8% .006 264.531);--tw-prose-invert-body:oklch(87.2% .01 258.338);--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:oklch(70.7% .022 261.325);--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:oklch(70.7% .022 261.325);--tw-prose-invert-bullets:oklch(44.6% .03 256.802);--tw-prose-invert-hr:oklch(37.3% .034 259.733);--tw-prose-invert-quotes:oklch(96.7% .003 264.542);--tw-prose-invert-quote-borders:oklch(37.3% .034 259.733);--tw-prose-invert-captions:oklch(70.7% .022 261.325);--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:#ffffff1a;--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:oklch(87.2% .01 258.338);--tw-prose-invert-pre-bg:#00000080;--tw-prose-invert-th-borders:oklch(44.6% .03 256.802);--tw-prose-invert-td-borders:oklch(37.3% .034 259.733);font-size:1rem;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.571429em;padding-inline-end:.571429em;padding-bottom:.571429em;padding-inline-start:.571429em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.prose :where(sup):not(:where([class~=not-prose],[class~=not-prose] *)){margin-inline-start:calc(var(--spacing) * .5)}.prose :where(sup):not(:where([class~=not-prose],[class~=not-prose] *)) a:after{content:"]"}.prose :where(sup):not(:where([class~=not-prose],[class~=not-prose] *)) a:before{content:"["}@media(hover:hover){.prose :where(sup):not(:where([class~=not-prose],[class~=not-prose] *)) a:hover{color:var(--color-link)}}.prose :where(th[align=center],td[align=center]):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:center}.prose :where(th[align=right],td[align=right]):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:right}.prose :where(th[align=left],td[align=left]):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:left}.prose :where(.expressive-code,.admonition,.github-card):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:calc(var(--spacing)*4);margin-bottom:calc(var(--spacing)*4)}.ms-1{margin-inline-start:calc(var(--spacing) * 1)}.ms-4{margin-inline-start:calc(var(--spacing) * 4)}.ms-auto{margin-inline-start:auto}.me-auto{margin-inline-end:auto}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-10{margin-top:calc(var(--spacing) * 10)}.mt-16{margin-top:calc(var(--spacing) * 16)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.mb-10{margin-bottom:calc(var(--spacing) * 10)}.mb-12{margin-bottom:calc(var(--spacing) * 12)}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.aspect-video{aspect-ratio:var(--aspect-video)}.h-5{height:calc(var(--spacing) * 5)}.h-11{height:calc(var(--spacing) * 11)}.h-124{height:calc(var(--spacing) * 124)}.h-128{height:calc(var(--spacing) * 128)}.h-156{height:calc(var(--spacing) * 156)}.h-auto{height:auto}.h-full{height:100%}.max-h-full{max-height:100%}.min-h-11{min-height:calc(var(--spacing) * 11)}.min-h-screen{min-height:100vh}.w-5{width:calc(var(--spacing) * 5)}.w-11{width:calc(var(--spacing) * 11)}.w-full{width:100%}.max-w-3xl{max-width:var(--container-3xl)}.max-w-full{max-width:100%}.max-w-prose{max-width:65ch}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.cursor-pointer{cursor:pointer}.grid-cols-\[auto_1fr\]{grid-template-columns:auto 1fr}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-x-1{column-gap:calc(var(--spacing) * 1)}.gap-x-4{column-gap:calc(var(--spacing) * 4)}.gap-x-6{column-gap:calc(var(--spacing) * 6)}.gap-y-1{row-gap:calc(var(--spacing) * 1)}.gap-y-3{row-gap:calc(var(--spacing) * 3)}.overflow-hidden{overflow:hidden}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-line{border-color:var(--color-line)}.bg-global-bg{background-color:var(--color-global-bg)}.p-6{padding:calc(var(--spacing) * 6)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-\[14px\]{padding-inline:14px}.py-2{padding-block:calc(var(--spacing) * 2)}.py-4{padding-block:calc(var(--spacing) * 4)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pt-8{padding-top:calc(var(--spacing) * 8)}.pt-12{padding-top:calc(var(--spacing) * 12)}.text-center{text-align:center}.font-body{font-family:var(--font-body)}.font-mono{font-family:var(--font-mono)}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.leading-\[1\.6\]{--tw-leading:1.6;line-height:1.6}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[-0\.015em\]{--tw-tracking:-.015em;letter-spacing:-.015em}.break-words{overflow-wrap:break-word}.whitespace-nowrap{white-space:nowrap}.text-accent{color:var(--color-accent)}.text-global-text{color:var(--color-global-text)}.text-muted{color:var(--color-muted)}.capitalize{text-transform:capitalize}.italic{font-style:italic}.no-underline{text-decoration-line:none}.underline{text-decoration-line:underline}.decoration-accent{-webkit-text-decoration-color:var(--color-accent);text-decoration-color:var(--color-accent)}.decoration-1{text-decoration-thickness:1px}.underline-offset-4{text-underline-offset:4px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.group-aria-expanded\:block:is(:where(.group)[aria-expanded=true] *){display:block}.group-aria-expanded\:hidden:is(:where(.group)[aria-expanded=true] *){display:none}.group-\[\.menu-open\]\:z-\[var\(--z-dropdown\)\]:is(:where(.group).menu-open *){z-index:var(--z-dropdown)}.group-\[\.menu-open\]\:flex:is(:where(.group).menu-open *){display:flex}.backdrop\:bg-global-text\/20::backdrop{background-color:#191d2333}@supports (color:color-mix(in lab,red,red)){.backdrop\:bg-global-text\/20::backdrop{background-color:color-mix(in oklab,var(--color-global-text) 20%,transparent)}}.open\:flex:is([open],:popover-open,:open){display:flex}@media(hover:hover){.hover\:text-accent:hover{color:var(--color-accent)}.hover\:text-global-text:hover{color:var(--color-global-text)}.hover\:underline:hover{text-decoration-line:underline}}.focus\:not-sr-only:focus{clip-path:none;white-space:normal;width:auto;height:auto;margin:0;padding:0;position:static;overflow:visible}.focus\:fixed:focus{position:fixed}.focus\:start-1:focus{inset-inline-start:calc(var(--spacing) * 1)}.focus\:top-1\.5:focus{top:calc(var(--spacing) * 1.5)}@media(min-width:40rem){.sm\:invisible{visibility:hidden}.sm\:static{position:static}.sm\:z-auto{z-index:auto}.sm\:mx-auto{margin-inline:auto}.sm\:mt-16{margin-top:calc(var(--spacing) * 16)}.sm\:mb-14{margin-bottom:calc(var(--spacing) * 14)}.sm\:mb-auto{margin-bottom:auto}.sm\:flex{display:flex}.sm\:hidden{display:none}.sm\:h-max{height:max-content}.sm\:max-h-\[calc\(100\%-8rem\)\]{max-height:calc(100% - 8rem)}.sm\:min-h-\[15rem\]{min-height:15rem}.sm\:w-\[calc\(100\%-3rem\)\]{width:calc(100% - 3rem)}.sm\:max-w-\[45rem\]{max-width:45rem}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:gap-1{gap:calc(var(--spacing) * 1)}.sm\:rounded-lg{border-radius:var(--radius-lg)}.sm\:border-0{border-style:var(--tw-border-style);border-width:0}.sm\:bg-transparent{background-color:#0000}.sm\:p-0{padding:calc(var(--spacing) * 0)}.sm\:px-6{padding-inline:calc(var(--spacing) * 6)}.sm\:pt-6{padding-top:calc(var(--spacing) * 6)}.sm\:pt-8{padding-top:calc(var(--spacing) * 8)}.sm\:text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}}.dark\:block:where([data-theme=dark],[data-theme=dark] *){display:block}.dark\:hidden:where([data-theme=dark],[data-theme=dark] *){display:none}}html[data-theme=dark]{--color-global-bg:oklch(19% .012 255);--color-entry:oklch(23% .014 255);--color-paper-2:oklch(24% .014 255);--color-global-text:oklch(91% .008 250);--color-muted:oklch(69% .012 250);--color-link:oklch(77% .08 245);--color-accent:oklch(77% .08 245);--color-accent-ink:oklch(18% .012 255);--color-accent-2:oklch(94% .006 250);--color-quote:oklch(74% .01 250);--color-line:oklch(31% .012 255);--color-code-bg:oklch(26% .014 255);--color-code-block:oklch(15% .012 255);--color-code-text:oklch(91% .008 250);--color-ink-2:oklch(74% .01 250);--color-focus:oklch(79% .11 245)}.prose{--tw-prose-body:var(--color-global-text);--tw-prose-headings:var(--color-accent-2);--tw-prose-lead:var(--color-muted);--tw-prose-links:var(--color-link);--tw-prose-bold:var(--color-accent-2);--tw-prose-counters:var(--color-muted);--tw-prose-bullets:var(--color-muted);--tw-prose-hr:var(--color-line);--tw-prose-quotes:var(--color-quote);--tw-prose-quote-borders:var(--color-line);--tw-prose-captions:var(--color-muted);--tw-prose-kbd:var(--color-global-text);--tw-prose-kbd-shadows:var(--color-line);--tw-prose-code:var(--color-global-text);--tw-prose-pre-code:var(--color-code-text);--tw-prose-pre-bg:var(--color-code-block);--tw-prose-th-borders:var(--color-line);--tw-prose-td-borders:var(--color-line);max-width:65ch;color:var(--color-global-text);font-family:var(--font-body);font-size:var(--text-base);line-height:1.65}.article-page[lang^=zh] .prose{letter-spacing:.005em;text-wrap:pretty;line-height:1.85}.article-page[lang^=zh] .prose h2{text-wrap:balance;margin-top:3.5rem;margin-bottom:1.25rem;line-height:1.4}.prose blockquote p:first-of-type:before,.prose blockquote p:last-of-type:after{content:none}.prose blockquote{border-inline-start:0;padding-inline-start:0}@media(max-width:39.99rem){.section-head{align-items:flex-start;gap:var(--space-xs);flex-direction:column}.post-card,.project-card{padding:var(--space-md)}.post-card--with-cover{padding:0;display:block}.post-card-cover{aspect-ratio:16/9;border-inline-start:0;border-bottom:var(--rule-thin) solid var(--color-line);min-height:0}.post-card--with-cover .post-card-body{padding:var(--space-md)}.article-heading--feature,.article-cover{width:calc(100vw - 1rem)}.article-title{font-size:clamp(1.95rem,9vw,2.2rem)}.article-deck{gap:var(--space-sm)}.article-deck-mark{flex-basis:1.25rem}.to-top-button{inset-block-end:max(var(--space-md),env(safe-area-inset-bottom));inset-inline-end:var(--space-md)}}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes pulse{50%{opacity:.5}}.pagefind-ui__result.svelte-j9e30.svelte-j9e30{list-style-type:none;display:flex;align-items:flex-start;gap:min(calc(40px * var(--pagefind-ui-scale)),3%);padding:calc(30px * var(--pagefind-ui-scale)) 0 calc(40px * var(--pagefind-ui-scale));border-top:solid var(--pagefind-ui-border-width) var(--pagefind-ui-border)}.pagefind-ui__result.svelte-j9e30.svelte-j9e30:last-of-type{border-bottom:solid var(--pagefind-ui-border-width) var(--pagefind-ui-border)}.pagefind-ui__result-thumb.svelte-j9e30.svelte-j9e30{width:min(30%,calc((30% - (100px * var(--pagefind-ui-scale))) * 100000));max-width:calc(120px * var(--pagefind-ui-scale));margin-top:calc(10px * var(--pagefind-ui-scale));aspect-ratio:var(--pagefind-ui-image-box-ratio);position:relative}.pagefind-ui__result-image.svelte-j9e30.svelte-j9e30{display:block;position:absolute;left:50%;transform:translate(-50%);font-size:0;width:auto;height:auto;max-width:100%;max-height:100%;border-radius:var(--pagefind-ui-image-border-radius)}.pagefind-ui__result-inner.svelte-j9e30.svelte-j9e30{flex:1;display:flex;flex-direction:column;align-items:flex-start;margin-top:calc(10px * var(--pagefind-ui-scale))}.pagefind-ui__result-title.svelte-j9e30.svelte-j9e30{display:inline-block;font-weight:700;font-size:calc(21px * var(--pagefind-ui-scale));margin-top:0;margin-bottom:0}.pagefind-ui__result-title.svelte-j9e30 .pagefind-ui__result-link.svelte-j9e30{color:var(--pagefind-ui-text);text-decoration:none}.pagefind-ui__result-title.svelte-j9e30 .pagefind-ui__result-link.svelte-j9e30:hover{text-decoration:underline}.pagefind-ui__result-excerpt.svelte-j9e30.svelte-j9e30{display:inline-block;font-weight:400;font-size:calc(16px * var(--pagefind-ui-scale));margin-top:calc(4px * var(--pagefind-ui-scale));margin-bottom:0;min-width:calc(250px * var(--pagefind-ui-scale))}.pagefind-ui__loading.svelte-j9e30.svelte-j9e30{color:var(--pagefind-ui-text);background-color:var(--pagefind-ui-text);border-radius:var(--pagefind-ui-border-radius);opacity:.1;pointer-events:none}.pagefind-ui__result-tags.svelte-j9e30.svelte-j9e30{list-style-type:none;padding:0;display:flex;gap:calc(20px * var(--pagefind-ui-scale));flex-wrap:wrap;margin-top:calc(20px * var(--pagefind-ui-scale))}.pagefind-ui__result-tag.svelte-j9e30.svelte-j9e30{padding:calc(4px * var(--pagefind-ui-scale)) calc(8px * var(--pagefind-ui-scale));font-size:calc(14px * var(--pagefind-ui-scale));border-radius:var(--pagefind-ui-border-radius);background-color:var(--pagefind-ui-tag)}.pagefind-ui__result.svelte-4xnkmf.svelte-4xnkmf{list-style-type:none;display:flex;align-items:flex-start;gap:min(calc(40px * var(--pagefind-ui-scale)),3%);padding:calc(30px * var(--pagefind-ui-scale)) 0 calc(40px * var(--pagefind-ui-scale));border-top:solid var(--pagefind-ui-border-width) var(--pagefind-ui-border)}.pagefind-ui__result.svelte-4xnkmf.svelte-4xnkmf:last-of-type{border-bottom:solid var(--pagefind-ui-border-width) var(--pagefind-ui-border)}.pagefind-ui__result-nested.svelte-4xnkmf.svelte-4xnkmf{display:flex;flex-direction:column;padding-left:calc(20px * var(--pagefind-ui-scale))}.pagefind-ui__result-nested.svelte-4xnkmf.svelte-4xnkmf:first-of-type{padding-top:calc(10px * var(--pagefind-ui-scale))}.pagefind-ui__result-nested.svelte-4xnkmf .pagefind-ui__result-link.svelte-4xnkmf{font-size:.9em;position:relative}.pagefind-ui__result-nested.svelte-4xnkmf .pagefind-ui__result-link.svelte-4xnkmf:before{content:"⤷ ";position:absolute;top:0;right:calc(100% + .1em)}.pagefind-ui__result-thumb.svelte-4xnkmf.svelte-4xnkmf{width:min(30%,calc((30% - (100px * var(--pagefind-ui-scale))) * 100000));max-width:calc(120px * var(--pagefind-ui-scale));margin-top:calc(10px * var(--pagefind-ui-scale));aspect-ratio:var(--pagefind-ui-image-box-ratio);position:relative}.pagefind-ui__result-image.svelte-4xnkmf.svelte-4xnkmf{display:block;position:absolute;left:50%;transform:translate(-50%);font-size:0;width:auto;height:auto;max-width:100%;max-height:100%;border-radius:var(--pagefind-ui-image-border-radius)}.pagefind-ui__result-inner.svelte-4xnkmf.svelte-4xnkmf{flex:1;display:flex;flex-direction:column;align-items:flex-start;margin-top:calc(10px * var(--pagefind-ui-scale))}.pagefind-ui__result-title.svelte-4xnkmf.svelte-4xnkmf{display:inline-block;font-weight:700;font-size:calc(21px * var(--pagefind-ui-scale));margin-top:0;margin-bottom:0}.pagefind-ui__result-title.svelte-4xnkmf .pagefind-ui__result-link.svelte-4xnkmf{color:var(--pagefind-ui-text);text-decoration:none}.pagefind-ui__result-title.svelte-4xnkmf .pagefind-ui__result-link.svelte-4xnkmf:hover{text-decoration:underline}.pagefind-ui__result-excerpt.svelte-4xnkmf.svelte-4xnkmf{display:inline-block;font-weight:400;font-size:calc(16px * var(--pagefind-ui-scale));margin-top:calc(4px * var(--pagefind-ui-scale));margin-bottom:0;min-width:calc(250px * var(--pagefind-ui-scale))}.pagefind-ui__loading.svelte-4xnkmf.svelte-4xnkmf{color:var(--pagefind-ui-text);background-color:var(--pagefind-ui-text);border-radius:var(--pagefind-ui-border-radius);opacity:.1;pointer-events:none}.pagefind-ui__result-tags.svelte-4xnkmf.svelte-4xnkmf{list-style-type:none;padding:0;display:flex;gap:calc(20px * var(--pagefind-ui-scale));flex-wrap:wrap;margin-top:calc(20px * var(--pagefind-ui-scale))}.pagefind-ui__result-tag.svelte-4xnkmf.svelte-4xnkmf{padding:calc(4px * var(--pagefind-ui-scale)) calc(8px * var(--pagefind-ui-scale));font-size:calc(14px * var(--pagefind-ui-scale));border-radius:var(--pagefind-ui-border-radius);background-color:var(--pagefind-ui-tag)}legend.svelte-1v2r7ls.svelte-1v2r7ls{position:absolute;clip:rect(0 0 0 0)}.pagefind-ui__filter-panel.svelte-1v2r7ls.svelte-1v2r7ls{min-width:min(calc(260px * var(--pagefind-ui-scale)),100%);flex:1;display:flex;flex-direction:column;margin-top:calc(20px * var(--pagefind-ui-scale))}.pagefind-ui__filter-group.svelte-1v2r7ls.svelte-1v2r7ls{border:0;padding:0}.pagefind-ui__filter-block.svelte-1v2r7ls.svelte-1v2r7ls{padding:0;display:block;border-bottom:solid calc(2px * var(--pagefind-ui-scale)) var(--pagefind-ui-border);padding:calc(20px * var(--pagefind-ui-scale)) 0}.pagefind-ui__filter-name.svelte-1v2r7ls.svelte-1v2r7ls{font-size:calc(16px * var(--pagefind-ui-scale));position:relative;display:flex;align-items:center;list-style:none;font-weight:700;cursor:pointer;height:calc(24px * var(--pagefind-ui-scale))}.pagefind-ui__filter-name.svelte-1v2r7ls.svelte-1v2r7ls::-webkit-details-marker{display:none}.pagefind-ui__filter-name.svelte-1v2r7ls.svelte-1v2r7ls:after{position:absolute;content:"";right:calc(6px * var(--pagefind-ui-scale));top:50%;width:calc(8px * var(--pagefind-ui-scale));height:calc(8px * var(--pagefind-ui-scale));border:solid calc(2px * var(--pagefind-ui-scale)) currentColor;border-right:0;border-top:0;transform:translateY(-70%) rotate(-45deg)}.pagefind-ui__filter-block[open].svelte-1v2r7ls .pagefind-ui__filter-name.svelte-1v2r7ls:after{transform:translateY(-70%) rotate(-225deg)}.pagefind-ui__filter-group.svelte-1v2r7ls.svelte-1v2r7ls{display:flex;flex-direction:column;gap:calc(20px * var(--pagefind-ui-scale));padding-top:calc(30px * var(--pagefind-ui-scale))}.pagefind-ui__filter-value.svelte-1v2r7ls.svelte-1v2r7ls{position:relative;display:flex;align-items:center;gap:calc(8px * var(--pagefind-ui-scale))}.pagefind-ui__filter-value.svelte-1v2r7ls.svelte-1v2r7ls:before{position:absolute;content:"";top:50%;left:calc(8px * var(--pagefind-ui-scale));width:0px;height:0px;border:solid 1px #fff;opacity:0;transform:translate(calc(4.5px * var(--pagefind-ui-scale) * -1),calc(.8px * var(--pagefind-ui-scale))) skew(-5deg) rotate(-45deg);transform-origin:top left;border-top:0;border-right:0;pointer-events:none}.pagefind-ui__filter-value.pagefind-ui__filter-value--checked.svelte-1v2r7ls.svelte-1v2r7ls:before{opacity:1;width:calc(9px * var(--pagefind-ui-scale));height:calc(4px * var(--pagefind-ui-scale));transition:width .1s ease-out .1s,height .1s ease-in}.pagefind-ui__filter-checkbox.svelte-1v2r7ls.svelte-1v2r7ls{margin:0;width:calc(16px * var(--pagefind-ui-scale));height:calc(16px * var(--pagefind-ui-scale));border:solid 1px var(--pagefind-ui-border);appearance:none;-webkit-appearance:none;border-radius:calc(var(--pagefind-ui-border-radius) / 2);background-color:var(--pagefind-ui-background);cursor:pointer}.pagefind-ui__filter-checkbox.svelte-1v2r7ls.svelte-1v2r7ls:checked{background-color:var(--pagefind-ui-primary);border:solid 1px var(--pagefind-ui-primary)}.pagefind-ui__filter-label.svelte-1v2r7ls.svelte-1v2r7ls{cursor:pointer;font-size:calc(16px * var(--pagefind-ui-scale));font-weight:400}.pagefind-ui--reset *:where(:not(html,iframe,canvas,img,svg,video):not(svg *,symbol *)){all:unset;display:revert;outline:revert}.pagefind-ui--reset *,.pagefind-ui--reset *:before,.pagefind-ui--reset *:after{box-sizing:border-box}.pagefind-ui--reset a,.pagefind-ui--reset button{cursor:revert}.pagefind-ui--reset ol,.pagefind-ui--reset ul,.pagefind-ui--reset menu{list-style:none}.pagefind-ui--reset img{max-width:100%}.pagefind-ui--reset table{border-collapse:collapse}.pagefind-ui--reset input,.pagefind-ui--reset textarea{-webkit-user-select:auto}.pagefind-ui--reset textarea{white-space:revert}.pagefind-ui--reset meter{-webkit-appearance:revert;appearance:revert}.pagefind-ui--reset ::placeholder{color:unset}.pagefind-ui--reset :where([hidden]){display:none}.pagefind-ui--reset :where([contenteditable]:not([contenteditable=false])){-moz-user-modify:read-write;-webkit-user-modify:read-write;overflow-wrap:break-word;-webkit-line-break:after-white-space;-webkit-user-select:auto}.pagefind-ui--reset :where([draggable=true]){-webkit-user-drag:element}.pagefind-ui--reset mark{all:revert}:root{--pagefind-ui-scale:.8;--pagefind-ui-primary:#393939;--pagefind-ui-text:#393939;--pagefind-ui-background:#ffffff;--pagefind-ui-border:#eeeeee;--pagefind-ui-tag:#eeeeee;--pagefind-ui-border-width:2px;--pagefind-ui-border-radius:8px;--pagefind-ui-image-border-radius:8px;--pagefind-ui-image-box-ratio:3 / 2;--pagefind-ui-font:system, -apple-system, "BlinkMacSystemFont", ".SFNSText-Regular", "San Francisco", "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", "Ubuntu", "arial", sans-serif}.pagefind-ui.svelte-e9gkc3{width:100%;color:var(--pagefind-ui-text);font-family:var(--pagefind-ui-font)}.pagefind-ui__hidden.svelte-e9gkc3{display:none!important}.pagefind-ui__suppressed.svelte-e9gkc3{opacity:0;pointer-events:none}.pagefind-ui__form.svelte-e9gkc3{position:relative}.pagefind-ui__form.svelte-e9gkc3:before{background-color:var(--pagefind-ui-text);width:calc(18px * var(--pagefind-ui-scale));height:calc(18px * var(--pagefind-ui-scale));top:calc(23px * var(--pagefind-ui-scale));left:calc(20px * var(--pagefind-ui-scale));content:"";position:absolute;display:block;opacity:.7;-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12.7549 11.255H11.9649L11.6849 10.985C12.6649 9.845 13.2549 8.365 13.2549 6.755C13.2549 3.165 10.3449 0.255005 6.75488 0.255005C3.16488 0.255005 0.254883 3.165 0.254883 6.755C0.254883 10.345 3.16488 13.255 6.75488 13.255C8.36488 13.255 9.84488 12.665 10.9849 11.685L11.2549 11.965V12.755L16.2549 17.745L17.7449 16.255L12.7549 11.255ZM6.75488 11.255C4.26488 11.255 2.25488 9.245 2.25488 6.755C2.25488 4.26501 4.26488 2.255 6.75488 2.255C9.24488 2.255 11.2549 4.26501 11.2549 6.755C11.2549 9.245 9.24488 11.255 6.75488 11.255Z' fill='%23000000'/%3E%3C/svg%3E%0A");mask-image:url("data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12.7549 11.255H11.9649L11.6849 10.985C12.6649 9.845 13.2549 8.365 13.2549 6.755C13.2549 3.165 10.3449 0.255005 6.75488 0.255005C3.16488 0.255005 0.254883 3.165 0.254883 6.755C0.254883 10.345 3.16488 13.255 6.75488 13.255C8.36488 13.255 9.84488 12.665 10.9849 11.685L11.2549 11.965V12.755L16.2549 17.745L17.7449 16.255L12.7549 11.255ZM6.75488 11.255C4.26488 11.255 2.25488 9.245 2.25488 6.755C2.25488 4.26501 4.26488 2.255 6.75488 2.255C9.24488 2.255 11.2549 4.26501 11.2549 6.755C11.2549 9.245 9.24488 11.255 6.75488 11.255Z' fill='%23000000'/%3E%3C/svg%3E%0A");-webkit-mask-size:100%;mask-size:100%;z-index:9;pointer-events:none}.pagefind-ui__search-input.svelte-e9gkc3{height:calc(64px * var(--pagefind-ui-scale));padding:0 calc(70px * var(--pagefind-ui-scale)) 0 calc(54px * var(--pagefind-ui-scale));background-color:var(--pagefind-ui-background);border:var(--pagefind-ui-border-width) solid var(--pagefind-ui-border);border-radius:var(--pagefind-ui-border-radius);font-size:calc(21px * var(--pagefind-ui-scale));position:relative;appearance:none;-webkit-appearance:none;display:flex;width:100%;box-sizing:border-box;font-weight:700}.pagefind-ui__search-input.svelte-e9gkc3::placeholder{opacity:.2}.pagefind-ui__search-clear.svelte-e9gkc3{position:absolute;top:calc(3px * var(--pagefind-ui-scale));right:calc(3px * var(--pagefind-ui-scale));height:calc(58px * var(--pagefind-ui-scale));padding:0 calc(15px * var(--pagefind-ui-scale)) 0 calc(2px * var(--pagefind-ui-scale));color:var(--pagefind-ui-text);font-size:calc(14px * var(--pagefind-ui-scale));cursor:pointer;background-color:var(--pagefind-ui-background);border-radius:var(--pagefind-ui-border-radius)}.pagefind-ui__drawer.svelte-e9gkc3{gap:calc(60px * var(--pagefind-ui-scale));display:flex;flex-direction:row;flex-wrap:wrap}.pagefind-ui__results-area.svelte-e9gkc3{min-width:min(calc(400px * var(--pagefind-ui-scale)),100%);flex:1000;margin-top:calc(20px * var(--pagefind-ui-scale))}.pagefind-ui__results.svelte-e9gkc3{padding:0}.pagefind-ui__message.svelte-e9gkc3{box-sizing:content-box;font-size:calc(16px * var(--pagefind-ui-scale));height:calc(24px * var(--pagefind-ui-scale));padding:calc(20px * var(--pagefind-ui-scale)) 0;display:flex;align-items:center;font-weight:700;margin-top:0}.pagefind-ui__button.svelte-e9gkc3{margin-top:calc(40px * var(--pagefind-ui-scale));border:var(--pagefind-ui-border-width) solid var(--pagefind-ui-border);border-radius:var(--pagefind-ui-border-radius);height:calc(48px * var(--pagefind-ui-scale));padding:0 calc(12px * var(--pagefind-ui-scale));font-size:calc(16px * var(--pagefind-ui-scale));color:var(--pagefind-ui-primary);background:var(--pagefind-ui-background);width:100%;text-align:center;font-weight:700;cursor:pointer}.pagefind-ui__button.svelte-e9gkc3:hover{border-color:var(--pagefind-ui-primary);color:var(--pagefind-ui-primary);background:var(--pagefind-ui-background)}:root{--pagefind-ui-font: var(--font-body)}#cactus__search{--pagefind-ui-primary: var(--color-link);--pagefind-ui-text: var(--color-global-text);--pagefind-ui-background: var(--color-global-bg);--pagefind-ui-border: var(--color-line);--pagefind-ui-border-width: 1px}#cactus__search .pagefind-ui__search-input{min-height:2.75rem;color:var(--color-global-text);background:var(--color-global-bg);border:1px solid var(--color-line);outline:2px solid transparent;outline-offset:1px;font-family:var(--font-body)}@media(hover:hover)and (pointer:fine){#cactus__search .pagefind-ui__search-input:hover{background:var(--color-paper-2)}}#cactus__search .pagefind-ui__search-input:focus-visible{outline-color:var(--color-focus)}#cactus__search .pagefind-ui__search-clear{width:2.75rem;min-height:2.75rem;padding:0;overflow:hidden;background:transparent;border-radius:var(--radius-control)}#cactus__search .pagefind-ui__search-clear:focus-visible{outline:2px solid var(--color-focus);outline-offset:1px}#cactus__search .pagefind-ui__search-clear:before{display:block;width:100%;height:100%;background-color:var(--color-muted);content:"";-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='1.5' stroke='currentColor' %3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M6 18L18 6M6 6l12 12'%3E%3C/path%3E%3C/svg%3E") center / 55% no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='1.5' stroke='currentColor' %3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M6 18L18 6M6 6l12 12'%3E%3C/path%3E%3C/svg%3E") center / 55% no-repeat}#cactus__search .pagefind-ui__result{border-color:var(--color-line)}#cactus__search .pagefind-ui__result-link{color:var(--color-global-text);text-decoration:underline;text-decoration-color:var(--color-line);text-decoration-thickness:1px;text-underline-offset:.18em}#cactus__search .pagefind-ui__result-link:hover,#cactus__search .pagefind-ui__result-link:focus-visible{text-decoration-color:var(--color-link);text-decoration-thickness:2px}#cactus__search mark{color:var(--color-global-text);background:var(--color-paper-2);font-weight:700}
