:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--paper:#f5f6f8;--surface:#fff;--ink:#1b2230;--ink-muted:#4d5663;--line:#dde1e6;--night:#1b2230;--night-line:#364152;--on-night:#f3f5f8;--on-night-muted:#aeb7c4;--signal:#0a64cc;--signal-soft:#e6f0fb;--on-signal:#fff;--on-topic:#1b2230;--green:#6db52e;--orange:#f05a2c;--amber:#ffb81c;--purple:#9c88e8;--link:var(--signal);--violet:var(--purple);--soft:#eef0f3;--ok:#3e8e1a;--ok-bg:#e5f4e4;--mid:#9a6a00;--mid-bg:#fbf0d6;--bad:#c2410c;--bad-bg:#fbe6de;--note-bg:#fff7e3;--note-line:#e3b23c;--note-ink:#5c4a16;--code-bg:#1b2230;--code-ink:#e6e9ee;--tok-key:#9cc8ff;--tok-str:#b8e08f;--tok-num:#ffb81c;--tok-lit:#c9b8ff;--tok-punct:#8a94a3;--iso-edge:#1b2230;--iso-label-ink:#4d5663;--iso-label-bg:#f5f6f8;--iso-grid:#dde1e6;--iso-zone:#e8ebef;--iso-zone-side:#d5dae0;--font-display:"Space Grotesk", "Segoe UI", system-ui, sans-serif;--font-sans:"Inter", "Segoe UI", system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", "Cascadia Code", ui-monospace, Menlo, monospace;--display-xl-size:64px;--display-xl-lh:1.05;--display-xl-weight:600;--display-xl-tracking:-.02em;--display-l-size:44px;--display-l-lh:1.1;--display-l-weight:600;--display-l-tracking:-.015em;--heading-size:30px;--heading-lh:1.2;--heading-weight:600;--title-size:21px;--title-lh:1.3;--title-weight:600;--body-l-size:19px;--body-l-lh:1.6;--body-l-weight:400;--body-size:16px;--body-lh:1.6;--body-weight:400;--small-size:14px;--small-lh:1.5;--small-weight:400;--label-size:12px;--label-lh:1.4;--label-weight:500;--label-tracking:.06em;--code-size:14px;--code-lh:1.7;--code-weight:400;--space-1:4px;--space-2:8px;--space-3:16px;--space-4:24px;--space-5:40px;--space-6:72px;--space-7:120px;--radius-sm:6px;--radius-md:12px;--radius-lg:24px;--radius-pill:999px;--stroke-edge:3px;--stroke-icon:2px;--dur-fast:.16s;--dur-base:.28s;--dur-node:.42s;--dur-edge:.6s;--dur-stagger:.12s;--dur-morph:.9s;--dur-intro:6s;--ease-out:cubic-bezier(.2, .8, .2, 1);--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--ease-snap:cubic-bezier(.34, 1.4, .64, 1);--col:760px;--wide:1160px;--page:1200px}html.dark{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--paper:#151a21;--surface:#1e252f;--ink:#f3f5f8;--ink-muted:#aeb7c4;--line:#323b48;--night:#232b38;--night-line:#3e4a5c;--on-night-muted:#bcc4d0;--signal:#5aa9f0;--signal-soft:#16304f;--on-signal:#151a21;--green:#7cc63d;--orange:#f47248;--purple:#b2a3ee;--soft:#222a37;--ok:#8fd16a;--ok-bg:#1f3319;--mid:#f4c557;--mid-bg:#3a3016;--bad:#ff8a62;--bad-bg:#3d2219;--note-bg:#2a2516;--note-line:#8c6e1e;--note-ink:#f1dfa8;--code-bg:#0e1218;--iso-edge:#f3f5f8;--iso-label-ink:#aeb7c4;--iso-label-bg:#151a21;--iso-grid:#323b48;--iso-zone:#232b38;--iso-zone-side:#161c25}@media (prefers-reduced-motion:reduce){:root{--dur-fast:0s;--dur-base:0s;--dur-node:0s;--dur-edge:0s;--dur-stagger:0s;--dur-morph:0s}}*,:before,:after,::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border:0 solid #e5e7eb}:before,:after{--tw-content:""}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--font-sans);font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}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(--font-mono);font-feature-settings:normal;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}button,input,optgroup,select,textarea{font-feature-settings:inherit;font-variation-settings:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:#0000;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{margin:0;padding:0;list-style:none}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder{opacity:1;color:#9ca3af}textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}html{background:var(--paper);color:var(--ink);font-family:var(--font-sans);font-size:var(--body-size);line-height:var(--body-lh);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--paper);flex-direction:column;min-height:100vh;display:flex}h1,h2,h3,h4{font-family:var(--font-display);text-wrap:balance;font-weight:600}:focus-visible{outline:3px solid var(--amber);outline-offset:2px}::selection{background:var(--signal-soft);color:var(--ink)}.display-xl{font-family:var(--font-display);font-weight:var(--display-xl-weight);font-size:40px;line-height:var(--display-xl-lh);letter-spacing:var(--display-xl-tracking);text-wrap:balance}.display-l{font-family:var(--font-display);font-weight:var(--display-l-weight);font-size:32px;line-height:var(--display-l-lh);letter-spacing:var(--display-l-tracking);text-wrap:balance}.heading{font-family:var(--font-display);font-weight:var(--heading-weight);font-size:24px;line-height:var(--heading-lh);text-wrap:balance}@media (width>=640px){.display-xl{font-size:var(--display-xl-size)}.display-l{font-size:var(--display-l-size)}.heading{font-size:var(--heading-size)}}.title{font-family:var(--font-display);font-weight:var(--title-weight);font-size:var(--title-size);line-height:var(--title-lh)}.body-l{font-size:var(--body-l-size);line-height:var(--body-l-lh)}.small{font-size:var(--small-size);line-height:var(--small-lh)}.label{font-family:var(--font-mono);font-weight:var(--label-weight);font-size:var(--label-size);line-height:var(--label-lh);letter-spacing:var(--label-tracking);text-transform:uppercase}.night-band{background-color:var(--night);background-image:radial-gradient(circle,var(--night-line) 1px,transparent 1.5px);color:var(--on-night);background-position:12px 12px;background-size:24px 24px}.ext-arrow{vertical-align:-.05em;flex:none;width:.85em;height:.85em;margin-left:.15em;display:inline-block}.container-page{width:100%;max-width:var(--page);padding-inline:var(--space-4);margin-inline:auto}.skip-link{left:var(--space-3);z-index:100;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--ink);color:var(--paper);font-weight:600;position:absolute;top:-100px}.skip-link:focus-visible{top:var(--space-3)}[data-category=build]{--cat:var(--signal);--on-cat:var(--on-signal)}[data-category=run]{--cat:var(--green);--on-cat:var(--on-topic)}[data-category=lab]{--cat:var(--orange);--on-cat:var(--on-topic)}[data-category=ideas]{--cat:var(--purple);--on-cat:var(--on-topic)}[data-category=field-notes]{--cat:var(--amber);--on-cat:var(--on-topic)}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.block{display:block}.inline{display:inline}.flex{display:flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.flex-1{flex:1}.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.flex-wrap{flex-wrap:wrap}.text-wrap{text-wrap:wrap}.rounded{border-radius:.25rem}.border{border-width:1px}.font-display{font-family:var(--font-display)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.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)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}::view-transition-group(*){animation-duration:var(--dur-morph);animation-timing-function:var(--ease-in-out)}::view-transition-old(root){animation-duration:var(--dur-base)}::view-transition-new(root){animation-duration:var(--dur-base)}@media (prefers-reduced-motion:reduce){::view-transition-group(*){animation:none!important}::view-transition-old(*){animation:none!important}::view-transition-new(*){animation:none!important}}.thumbnail[data-bricks]{background:var(--night);place-items:center;display:grid}.thumbnail[data-bricks] svg{width:auto;max-width:70%;height:auto;max-height:80%}.focus\:outline-none:focus{outline-offset:2px;outline:2px solid #0000}.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}.monogram[data-astro-cid-3xuyrsd6]{flex:none}.monogram-ground[data-astro-cid-3xuyrsd6]{fill:#1b2230;stroke:#1b2230;stroke-width:2px}html.dark .monogram-ground[data-astro-cid-3xuyrsd6]{fill:var(--night);stroke:var(--night-line)}.lang-switch[data-astro-cid-tqie5aoj]{align-items:center;gap:0;display:inline-flex}.lang-item[data-astro-cid-tqie5aoj]{justify-content:center;align-items:center;gap:var(--space-2);border-radius:var(--radius-md);min-width:44px;min-height:44px;color:var(--ink);transition:background-color var(--dur-fast) var(--ease-out);text-decoration:none;display:inline-flex}.lang-item[data-astro-cid-tqie5aoj] .flag{box-shadow:0 0 0 1px var(--line);border-radius:3px;flex:none}.is-current[data-astro-cid-tqie5aoj] .flag{box-shadow:0 0 0 1px var(--line),0 0 0 4px var(--paper),0 0 0 6px var(--ink)}a[data-astro-cid-tqie5aoj].lang-item:hover{background:var(--soft)}a[data-astro-cid-tqie5aoj].lang-item:focus-visible{outline-offset:-3px}.lang-name[data-astro-cid-tqie5aoj]{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (width<=767px){html.js .lang-switch[data-astro-cid-tqie5aoj]{flex-direction:column;align-items:stretch}html.js .lang-item[data-astro-cid-tqie5aoj]{justify-content:flex-start;gap:var(--space-3);padding-inline:var(--space-2)}html.js .lang-name[data-astro-cid-tqie5aoj]{clip-path:none;width:auto;height:auto;position:static;overflow:visible}}.theme-toggle[data-astro-cid-xybtvccz]{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);width:44px;height:44px;color:var(--ink);cursor:pointer;transition:border-color var(--dur-fast) var(--ease-out);place-items:center;display:grid}.theme-toggle[data-astro-cid-xybtvccz]:hover{border-color:var(--ink-muted)}html:not(.js) .theme-toggle[data-astro-cid-xybtvccz],.theme-toggle[data-astro-cid-xybtvccz] .icon-sun,html.dark .theme-toggle[data-astro-cid-xybtvccz] .icon-moon{display:none}html.dark .theme-toggle[data-astro-cid-xybtvccz] .icon-sun{display:block}.menu-button[data-astro-cid-yt5xbuwq]{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);width:44px;height:44px;color:var(--ink);cursor:pointer;place-items:center;display:none}@media (width<=767.98px){html.js .menu-button[data-astro-cid-yt5xbuwq]{display:grid}}.site-header[data-astro-cid-r7uuxm25]{border-bottom:1px solid var(--line);background:var(--paper)}.header-row[data-astro-cid-r7uuxm25]{justify-content:space-between;align-items:center;gap:var(--space-2) var(--space-4);min-height:80px;padding-block:var(--space-3);flex-wrap:wrap;display:flex}.brand[data-astro-cid-r7uuxm25]{min-height:44px;color:var(--ink);align-items:center;gap:12px;text-decoration:none;display:inline-flex}.brand-name[data-astro-cid-r7uuxm25]{font-family:var(--font-display);letter-spacing:-.005em;font-size:19px;font-weight:600}.menu-panel[data-astro-cid-r7uuxm25]{align-items:center;gap:var(--space-2) var(--space-4);flex-wrap:wrap;display:flex}.panel-top[data-astro-cid-r7uuxm25]{display:none}.nav-list[data-astro-cid-r7uuxm25]{align-items:center;gap:0 var(--space-1);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.nav-link[data-astro-cid-r7uuxm25]{min-height:44px;color:var(--ink);font-size:var(--body-size);border-radius:var(--radius-sm);align-items:center;padding-inline:14px;font-weight:500;text-decoration:none;display:inline-flex;position:relative}.nav-link[data-astro-cid-r7uuxm25]:after{content:"";transform-origin:0;background:currentColor;height:2px;position:absolute;bottom:8px;left:14px;right:14px;transform:scaleX(0)}.nav-link[data-astro-cid-r7uuxm25][aria-current=page]:after{transform:scaleX(1)}@media (hover:hover) and (prefers-reduced-motion:no-preference){.nav-link[data-astro-cid-r7uuxm25]:after{transition:transform var(--dur-fast) var(--ease-out)}}.nav-link[data-astro-cid-r7uuxm25]:hover:after,.nav-link[data-astro-cid-r7uuxm25]:focus-visible:after{transform:scaleX(1)}.header-tools[data-astro-cid-r7uuxm25]{align-items:center;gap:var(--space-2);display:flex}@media (width<=767.98px){.menu-panel[data-astro-cid-r7uuxm25]{gap:var(--space-2);flex-basis:100%}.nav-list[data-astro-cid-r7uuxm25]{margin-inline-start:-14px}.header-row[data-astro-cid-r7uuxm25]{padding-block:20px}html.js .menu-panel[data-astro-cid-r7uuxm25]{z-index:50;align-items:stretch;gap:var(--space-4);padding:20px var(--space-4) var(--space-5);background:var(--paper);flex-flow:column;display:none;position:fixed;inset:0;overflow-y:auto}html.js .menu-panel[data-astro-cid-r7uuxm25][data-open]{display:flex}html.js .panel-top[data-astro-cid-r7uuxm25]{justify-content:space-between;align-items:center;display:flex}html.js .nav-list[data-astro-cid-r7uuxm25]{border-top:1px solid var(--line);flex-direction:column;align-items:stretch;margin:0}html.js .nav-link[data-astro-cid-r7uuxm25]{border-bottom:1px solid var(--line);width:100%;min-height:56px;font-family:var(--font-display);font-weight:600;font-size:var(--title-size);border-radius:0;padding-inline:0}html.js .nav-link[data-astro-cid-r7uuxm25]:after{display:none}html.js .nav-link[data-astro-cid-r7uuxm25][aria-current=page]{text-underline-offset:6px;text-decoration:underline;text-decoration-thickness:2px}}.panel-close[data-astro-cid-r7uuxm25]{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);width:44px;height:44px;color:var(--ink);cursor:pointer;place-items:center;display:grid}html.menu-open{overflow:hidden}.site-footer[data-astro-cid-pnrjdgm4]{background:var(--night);color:var(--on-night-muted);font-size:var(--small-size);line-height:var(--small-lh)}.footer-row[data-astro-cid-pnrjdgm4]{gap:var(--space-3);padding-block:var(--space-5);grid-template-columns:1fr;display:grid}@media (width>=1024px){.footer-row[data-astro-cid-pnrjdgm4]{justify-content:space-between;align-items:center;gap:var(--space-4);padding-block:var(--space-4);display:flex}.footer-links[data-astro-cid-pnrjdgm4]{justify-content:flex-end}.footer-networks[data-astro-cid-pnrjdgm4],.footer-links[data-astro-cid-pnrjdgm4]{flex-wrap:nowrap;flex:none}}.footer-note[data-astro-cid-pnrjdgm4],.footer-disclaimer[data-astro-cid-pnrjdgm4],.footer-links[data-astro-cid-pnrjdgm4],.footer-trademark[data-astro-cid-pnrjdgm4]{margin:0}.footer-about[data-astro-cid-pnrjdgm4]{gap:var(--space-1);max-width:62ch;display:grid}.footer-links[data-astro-cid-pnrjdgm4]{align-items:center;gap:0 var(--space-2);flex-wrap:wrap;display:flex}.footer-links[data-astro-cid-pnrjdgm4] a[data-astro-cid-pnrjdgm4]{min-height:44px;color:var(--on-night);text-underline-offset:3px;align-items:center;text-decoration:underline;display:inline-flex}.footer-links[data-astro-cid-pnrjdgm4] a[data-astro-cid-pnrjdgm4]:hover{color:var(--amber)}.footer-networks[data-astro-cid-pnrjdgm4]{gap:var(--space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.footer-button[data-astro-cid-pnrjdgm4]{border:1px solid var(--night-line);border-radius:var(--radius-md);width:44px;height:44px;color:var(--on-night);transition:border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out);place-items:center;display:grid}.footer-button[data-astro-cid-pnrjdgm4]:hover{border-color:var(--on-night-muted);color:var(--amber)}.footer-trademark[data-astro-cid-pnrjdgm4]{padding-bottom:var(--space-4);font-size:var(--label-size)}.date-wink[data-astro-cid-mz2wsz3c]{background:var(--amber);color:var(--on-topic);font-size:var(--small-size)}.wink-row[data-astro-cid-mz2wsz3c]{justify-content:space-between;align-items:center;gap:var(--space-3);min-height:44px;margin:0 auto;display:flex}.wink-close[data-astro-cid-mz2wsz3c]{width:44px;height:44px;color:inherit;cursor:pointer;background:0 0;border:0;place-items:center;font-size:18px;display:grid}