@font-face{font-family:Inter;font-style:normal;font-weight:100;font-display:swap;src:url(../../../fonts/inter/Inter-Thin.woff2) format("woff2")}@font-face{font-family:Inter;font-style:italic;font-weight:100;font-display:swap;src:url(../../../fonts/inter/Inter-ThinItalic.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:200;font-display:swap;src:url(../../../fonts/inter/Inter-ExtraLight.woff2) format("woff2")}@font-face{font-family:Inter;font-style:italic;font-weight:200;font-display:swap;src:url(../../../fonts/inter/Inter-ExtraLightItalic.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:300;font-display:swap;src:url(../../../fonts/inter/Inter-Light.woff2) format("woff2")}@font-face{font-family:Inter;font-style:italic;font-weight:300;font-display:swap;src:url(../../../fonts/inter/Inter-LightItalic.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../../../fonts/inter/Inter-Regular.woff2) format("woff2")}@font-face{font-family:Inter;font-style:italic;font-weight:400;font-display:swap;src:url(../../../fonts/inter/Inter-Italic.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(../../../fonts/inter/Inter-Medium.woff2) format("woff2")}@font-face{font-family:Inter;font-style:italic;font-weight:500;font-display:swap;src:url(../../../fonts/inter/Inter-MediumItalic.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(../../../fonts/inter/Inter-SemiBold.woff2) format("woff2")}@font-face{font-family:Inter;font-style:italic;font-weight:600;font-display:swap;src:url(../../../fonts/inter/Inter-SemiBoldItalic.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(../../../fonts/inter/Inter-Bold.woff2) format("woff2")}@font-face{font-family:Inter;font-style:italic;font-weight:700;font-display:swap;src:url(../../../fonts/inter/Inter-BoldItalic.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:800;font-display:swap;src:url(../../../fonts/inter/Inter-ExtraBold.woff2) format("woff2")}@font-face{font-family:Inter;font-style:italic;font-weight:800;font-display:swap;src:url(../../../fonts/inter/Inter-ExtraBoldItalic.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:900;font-display:swap;src:url(../../../fonts/inter/Inter-Black.woff2) format("woff2")}@font-face{font-family:Inter;font-style:italic;font-weight:900;font-display:swap;src:url(../../../fonts/inter/Inter-BlackItalic.woff2) format("woff2")}@font-face{font-family:InterDisplay;font-style:normal;font-weight:100;font-display:swap;src:url(/fonts/inter/InterDisplay-Thin.woff2) format("woff2")}@font-face{font-family:InterDisplay;font-style:italic;font-weight:100;font-display:swap;src:url(/fonts/inter/InterDisplay-ThinItalic.woff2) format("woff2")}@font-face{font-family:InterDisplay;font-style:normal;font-weight:200;font-display:swap;src:url(/fonts/inter/InterDisplay-ExtraLight.woff2) format("woff2")}@font-face{font-family:InterDisplay;font-style:italic;font-weight:200;font-display:swap;src:url(/fonts/inter/InterDisplay-ExtraLightItalic.woff2) format("woff2")}@font-face{font-family:InterDisplay;font-style:normal;font-weight:300;font-display:swap;src:url(/fonts/inter/InterDisplay-Light.woff2) format("woff2")}@font-face{font-family:InterDisplay;font-style:italic;font-weight:300;font-display:swap;src:url(/fonts/inter/InterDisplay-LightItalic.woff2) format("woff2")}@font-face{font-family:InterDisplay;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/inter/InterDisplay-Regular.woff2) format("woff2")}@font-face{font-family:InterDisplay;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/inter/InterDisplay-Italic.woff2) format("woff2")}@font-face{font-family:InterDisplay;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/inter/InterDisplay-Medium.woff2) format("woff2")}@font-face{font-family:InterDisplay;font-style:italic;font-weight:500;font-display:swap;src:url(/fonts/inter/InterDisplay-MediumItalic.woff2) format("woff2")}@font-face{font-family:InterDisplay;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/inter/InterDisplay-SemiBold.woff2) format("woff2")}@font-face{font-family:InterDisplay;font-style:italic;font-weight:600;font-display:swap;src:url(/fonts/inter/InterDisplay-SemiBoldItalic.woff2) format("woff2")}@font-face{font-family:InterDisplay;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/inter/InterDisplay-Bold.woff2) format("woff2")}@font-face{font-family:InterDisplay;font-style:italic;font-weight:700;font-display:swap;src:url(/fonts/inter/InterDisplay-BoldItalic.woff2) format("woff2")}@font-face{font-family:InterDisplay;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/inter/InterDisplay-ExtraBold.woff2) format("woff2")}@font-face{font-family:InterDisplay;font-style:italic;font-weight:800;font-display:swap;src:url(/fonts/inter/InterDisplay-ExtraBoldItalic.woff2) format("woff2")}@font-face{font-family:InterDisplay;font-style:normal;font-weight:900;font-display:swap;src:url(/fonts/inter/InterDisplay-Black.woff2) format("woff2")}@font-face{font-family:InterDisplay;font-style:italic;font-weight:900;font-display:swap;src:url(/fonts/inter/InterDisplay-BlackItalic.woff2) format("woff2")}@font-feature-values InterVariable{@character-variant{cv01:1;cv02:2;cv03:3;cv04:4;cv05:5;cv06:6;cv07:7;cv08:8;cv09:9;cv10:10;cv11:11;cv12:12;cv13:13;alt-1:1;alt-3:9;open-4:2;open-6:3;open-9:4;lc-l-with-tail:5;simplified-u:6;alt-double-s:7;uc-i-with-serif:8;uc-g-with-spur:10;single-story-a:11;compact-lc-f:12;compact-lc-t:13}@styleset{ss01:1;ss02:2;ss03:3;ss04:4;ss05:5;ss06:6;ss07:7;ss08:8;open-digits:1;disambiguation:2;disambiguation-except-zero:4;round-quotes-and-commas:3;square-punctuation:7;square-quotes:8;circled-characters:5;squared-characters:6}}@font-feature-values Inter{@character-variant{cv01:1;cv02:2;cv03:3;cv04:4;cv05:5;cv06:6;cv07:7;cv08:8;cv09:9;cv10:10;cv11:11;cv12:12;cv13:13;alt-1:1;alt-3:9;open-4:2;open-6:3;open-9:4;lc-l-with-tail:5;simplified-u:6;alt-double-s:7;uc-i-with-serif:8;uc-g-with-spur:10;single-story-a:11;compact-lc-f:12;compact-lc-t:13}@styleset{ss01:1;ss02:2;ss03:3;ss04:4;ss05:5;ss06:6;ss07:7;ss08:8;open-digits:1;disambiguation:2;disambiguation-except-zero:4;round-quotes-and-commas:3;square-punctuation:7;square-quotes:8;circled-characters:5;squared-characters:6}}@font-feature-values InterDisplay{@character-variant{cv01:1;cv02:2;cv03:3;cv04:4;cv05:5;cv06:6;cv07:7;cv08:8;cv09:9;cv10:10;cv11:11;cv12:12;cv13:13;alt-1:1;alt-3:9;open-4:2;open-6:3;open-9:4;lc-l-with-tail:5;simplified-u:6;alt-double-s:7;uc-i-with-serif:8;uc-g-with-spur:10;single-story-a:11;compact-lc-f:12;compact-lc-t:13}@styleset{ss01:1;ss02:2;ss03:3;ss04:4;ss05:5;ss06:6;ss07:7;ss08:8;open-digits:1;disambiguation:2;disambiguation-except-zero:4;round-quotes-and-commas:3;square-punctuation:7;square-quotes:8;circled-characters:5;squared-characters:6}}@font-face{font-family:Borel;font-style:normal;font-weight:100;font-display:swap;src:url(../../../fonts/borel/Borel-Regular.woff2) format("woff2")}*{box-sizing:border-box}:root{--neutral-color: #fff;--neutral-invert: #000;--base-accent: #000;--base-background: #fff;--base-foreground: #000;--base-active: var(--base-background);--base-disabled: rgb(from var(--base-foreground) r g b / .4);--host-background: #fff;--base-grid: #0001;--base-surface: #00000006;--base-surface-off: #0000000c;--base-surface-mid: #0000001c;--base-surface-on: #000;color:var(--base-foreground)}::selection{background-color:var(--base-foreground);color:var(--base-background)}@media(prefers-color-scheme:dark){:root{--neutral-color: #000;--neutral-invert: #fff;--base-accent: #fff;--base-background: #000;--base-foreground: #fff;--host-background: #000;--base-grid: #fff1;--base-surface: #ffffff09;--base-surface-off: #fff1;--base-surface-mid: #fff2;--base-surface-on: #fff}}html{padding:0;margin:0;width:100vw;font-family:Inter,sans-serif;font-feature-settings:"ss01" on,"ss02" on}body{width:100vw;min-height:100vh;padding:0;margin:0;--tile-size: 64px;--line-width: 1px;--line-angle: 0deg;--line-color: var(--base-grid);--vert-angle: calc(var(--line-angle) + 90deg);background-image:repeating-linear-gradient(var(--line-angle),var(--line-color) 0px,var(--line-color) var(--line-width),#0000 var(--line-width),#0000 var(--tile-size)),repeating-linear-gradient(var(--vert-angle),var(--line-color) 0px,var(--line-color) var(--line-width),#0000 var(--line-width),#0000 var(--tile-size));background-color:var(--host-background)}h1,h2,h3,h4,p{padding:0;margin:0}a:not(.raw){position:relative;color:inherit;transition-property:background-color,padding,margin;transition-timing-function:cubic-bezier(0,.55,.45,1);transition-duration:.1s}a:not(.raw):hover{background-color:var(--base-surface-off);padding:.25rem;margin:-.25rem}a[target=_blank]:not(.raw):after{background-color:var(--base-background);border:1px solid currentColor;display:flex;justify-content:center;align-items:center;width:12px;height:12px;font-size:75%;content:"↗";-webkit-user-select:none;user-select:none;opacity:0;position:absolute;top:0;right:-1.5cap;transition-property:opacity;transition-timing-function:cubic-bezier(0,.55,.45,1);transition-duration:.1s}a[target=_blank]:not(.raw):hover:after{opacity:1}input:not(.raw),select:not(.raw),textarea:not(.raw){width:100%;color:var(--base-foreground);font:inherit;padding:.5rem;background-color:transparent;border:2px solid var(--base-accent);outline:none;transition-property:background-color;transition-timing-function:cubic-bezier(0,.55,.45,1);transition-duration:.1s}input:not(.raw):not(:read-only):hover,input:not(.raw):not(:read-only):focus,textarea:not(.raw):not(:read-only):hover,textarea:not(.raw):not(:read-only):focus,select:not(.raw):not(:disabled):hover,select:not(.raw):not(:disabled):focus{background-color:var(--base-surface-off)}input:not(.raw):not([data-preserve-contrast]):read-only,textarea:not(.raw):not([data-preserve-contrast]):read-only,select:not(.raw):not([data-preserve-contrast]):disabled{border-color:var(--base-surface-mid);color:var(--base-disabled)}.avatar{object-fit:cover}.cursive{font-family:Borel;line-height:50%;padding-top:1cap}.base-page{display:flex;flex-direction:column;gap:2rem;width:calc(100% - 2.5rem);max-width:720px;padding:2.5rem 0}.base-page.extended{max-width:840px}.intro{width:100%;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:.5rem}.intro .greeting{display:flex;flex-direction:column}.intro .greeting p{font-size:2rem}.intro .greeting h1{font-size:3rem;margin-top:-.5rem}.intro .greeting:has(i) h1{margin-bottom:-.375rem}.intro .greeting i{font-size:1.25rem;opacity:.5}.intro .chips{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.5rem}.intro .chips>span{font-size:1.25rem;font-weight:500;padding:.25rem .625rem;background-color:var(--base-background);border:2px solid var(--base-foreground)}.blurb{font-weight:550;font-style:italic}@media screen and (max-width:520px){.intro{grid-template-columns:1fr;justify-content:center;text-align:center}.intro .chips{justify-content:center}}*[data-hover-palette=red]:hover{--base-accent: #c22648}*[data-hover-palette=orange]:hover{--base-accent: #bd5326}*[data-hover-palette=yellow]:hover{--base-accent: #9d6b00}*[data-hover-palette=green]:hover{--base-accent: #36835f}*[data-hover-palette=blue]:hover{--base-accent: #296fbf}.links{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem;width:100%}@media screen and (max-width:768px){.links{grid-template-columns:1fr 1fr}}@media screen and (max-width:480px){.links{grid-template-columns:1fr}}.links a{background-color:var(--base-background);border:2px solid var(--base-accent);color:var(--base-foreground);text-decoration:none;display:flex;flex-direction:column;padding:1rem;transition-property:background-color,color;transition-timing-function:cubic-bezier(0,.55,.45,1);transition-duration:.15s}.links a>b{font-size:1.25rem;padding-bottom:.125rem}.links a:hover{background-color:var(--base-accent);color:var(--base-background)}.force-light:hover{color:#fff!important}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse{0%{opacity:1}50%{opacity:.75}to{opacity:1}}.nav-loader{position:fixed;bottom:1rem;left:50%;display:flex;align-items:center;overflow:hidden;translate:-50% 0;padding:.5rem 1rem;font-size:1.25rem;background-color:var(--base-foreground);color:var(--base-background);border:2px solid var(--base-background);box-shadow:0 0 0 2px var(--base-foreground);transition-property:padding,opacity;transition-timing-function:cubic-bezier(.16,1,.3,1);transition-duration:.25s;z-index:999}.nav-loader.hidden{padding:.125rem;opacity:0;transition-timing-function:cubic-bezier(.7,0,.84,0);transition-delay:.5s}.nav-loader span{display:flex;align-items:center;gap:.375rem;overflow:hidden;text-overflow:clip;white-space:break-all}.nav-loader .pending svg,.loader{animation-name:spin;animation-duration:1.5s;animation-iteration-count:infinite;animation-timing-function:linear;animation-fill-mode:both}.nav-loader .pending{animation-name:pulse;animation-duration:1.5s;animation-iteration-count:infinite;animation-timing-function:cubic-bezier(.37,0,.63,1);animation-fill-mode:both}.markdown-content{width:100%;max-width:100%;word-wrap:break-word;color:#000}.markdown-content p:has(>img){text-align:center}.markdown-content img{max-width:100%;margin:0 auto;width:auto;border:1px solid var(--base-surface-mid);background-color:var(--base-surface)}.markdown-content p{margin:.5rem 0}.markdown-content a{color:var(--base-foreground)}.markdown-content .footnote-ref a,.markdown-content a.footnote-backref{text-decoration:none}.markdown-content em>strong{background-color:var(--base-surface-off);color:var(--base-foreground);padding:.125rem;margin:-.125rem}.markdown-content del{color:var(--base-disabled)}.markdown-content pre{display:block;overflow:auto;background-color:var(--base-surface);border:1px solid var(--base-surface-mid);color:var(--base-foreground);padding:.5rem}.markdown-content code{background-color:var(--base-surface-off);border:1px solid var(--base-surface-mid);color:var(--base-foreground);padding:.1rem .25rem}.markdown-content pre code{background-color:transparent;border:none;color:inherit;padding:0}.markdown-content hr{border:none;border-top:2px dashed rgb(from var(--base-accent) r g b / .4);margin:1rem 0}.markdown-content table{width:100%;padding:2px;margin:1rem 0;border:1px solid var(--base-surface-mid);border-collapse:collapse}.markdown-content thead{background-color:var(--base-surface-off);border-bottom:1px solid var(--base-surface-mid);color:var(--base-foreground);text-align:left}.markdown-content th,.markdown-content td{border:1px solid var(--base-surface-mid);border-top:0;border-bottom:0;padding:.375rem .5rem}.markdown-content ul{padding:0;margin:.25rem 0;padding-left:1rem}.markdown-content math{font-size:1.125rem}.markdown-content .katex-html{display:none}.markdown-content details{background-color:transparent;padding:0rem;transition-property:background-color,padding,margin;transition-timing-function:cubic-bezier(.23,1,.32,1);transition-duration:.1s}.markdown-content details:open{background-color:var(--base-surface-off);margin:0 -1rem;padding:1rem}.markdown-content summary{background-color:var(--base-surface-off);color:var(--base-foreground);padding:.25rem .5rem;transition-property:background-color,color,margin;transition-timing-function:cubic-bezier(.23,1,.32,1);transition-duration:.1s;-webkit-user-select:none;user-select:none}.markdown-content details:open summary{background-color:var(--base-foreground);color:var(--base-background);margin-bottom:.75rem}.markdown-content .callout{--fg: #000;--accent: #000;background-color:rgb(from var(--accent) r g b / .05);border:1px solid rgb(from var(--accent) r g b / .1);color:rgb(from color-mix(in srgb,var(--fg) 50%,var(--accent) 50%) r g b / .75);display:grid;grid-template-columns:max-content 1fr;gap:.5rem;padding:1rem;width:100%}.markdown-content .callout:not(:has(b)){align-items:center}.markdown-content .callout>span>b{display:block;font-size:1.25rem;margin-bottom:.25rem}.markdown-content .callout>span>b,.markdown-content svg{color:var(--accent)}.markdown-content .callout[data-variant=critical]{--accent: #c22648}.markdown-content .callout[data-variant=warning]{--accent: #9d6b00}.markdown-content .callout[data-variant=success]{--accent: #36835f}.markdown-content .callout[data-variant=info]{--accent: #296fbf}.markdown-content .callout[data-variant=tip]{--accent: #6d41b4}@media(prefers-color-scheme:dark){.markdown-content{color:#fff}.markdown-content .callout{--fg: #fff;--accent: #fff;background-color:rgb(from var(--accent) r g b / .15);border:1px solid rgb(from var(--accent) r g b / .2)}.markdown-content .callout>span>b,.markdown-content svg{color:color-mix(in srgb,var(--fg) 50%,var(--accent) 50%)}}
