@charset "UTF-8";@layer reset,abstracts,base,framework,components,utilities;@layer reset{*,:before,:after{box-sizing:border-box;margin:0}html{height:100%;line-sizing:normal;-webkit-text-size-adjust:none;text-size-adjust:none}body{margin:0}[hidden]{display:none}h1,h2,h3,h4,h5,h6,p{padding:0}pre{white-space:pre-wrap}hr{box-sizing:content-box;border-style:solid;border-width:1px 0 0;color:inherit;height:0;overflow:visible;color:currentColor}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle;max-width:100%}audio:not([controls]){display:none}picture{display:contents}source{display:none}img,svg,video,canvas{height:auto}audio{width:100%}img{border-style:none}svg{overflow:hidden}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}progress{vertical-align:baseline}input,button,textarea,select{font:inherit}textarea{resize:vertical;white-space:revert}nav ul{list-style:none}nav li:before{content:"\200b";position:absolute}@media(prefers-reduced-motion:reduce){*,:before,:after{animation-delay:-1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important;background-attachment:initial!important;transition-delay:0s!important;transition-duration:0s!important;scroll-behavior:auto!important}}:root:lang(cy),:not(:lang(cy))>:lang(cy){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(en),:not(:lang(en))>:lang(en){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(de),:not(:lang(de))>:lang(de){quotes:"\201e" "\201c" "\201a" "\2018"}:root:lang(fr),:not(:lang(fr))>:lang(fr){quotes:"\ab" "\bb" "\ab" "\bb"}:root:lang(ja),:not(:lang(ja))>:lang(ja){quotes:"\300c" "\300d" "\300e" "\300f"}:root:lang(ko),:not(:lang(ko))>:lang(ko){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(ru),:not(:lang(ru))>:lang(ru){quotes:"\ab" "\bb" "\201e" "\201c"}}@layer abstracts{:root{--font-heading: Oswald, sans-serif;--font-base: Lora, serif;--font-monospace: "Fira Code VF", monospace;--font-table: Inter, sans-serif;--font-diagram: "F25 Executive", serif;--content-max-width: 78.75rem;--breakout-max-width: 90rem;--prose-max-width: var(--text-max-width);--gutter-width: clamp(.25rem, 3vw - .625rem, 2rem);--fluid-min-width: 320;--fluid-max-width: 1500;--fluid-min-size: 11;--fluid-max-size: 18;--fluid-min-ratio: 1.2;--fluid-max-ratio: 1.33;--leading: 1.5;--text-max-width: 60ch;--text-size: 1.25rem;--fluid-screen: 100vw;--fluid-bp: calc( (var(--fluid-screen) - ((var(--fluid-min-width) / 16) * 1rem)) / ((var(--fluid-max-width) / 16) - (var(--fluid-min-width) / 16)) )}@media screen and (width>=1500px){:root{--fluid-screen: calc(var(--fluid-max-width) * 1px)}}:root{--fluid-min-scale-0: var(--fluid-min-ratio);--fluid-min-scale-1: var(--fluid-min-scale-0) * var(--fluid-min-ratio);--fluid-min-scale-2: var(--fluid-min-scale-1) * var(--fluid-min-ratio);--fluid-min-scale-3: var(--fluid-min-scale-2) * var(--fluid-min-ratio);--fluid-min-scale-4: var(--fluid-min-scale-3) * var(--fluid-min-ratio);--fluid-min-scale-5: var(--fluid-min-scale-4) * var(--fluid-min-ratio);--fluid-min-scale-6: var(--fluid-min-scale-5) * var(--fluid-min-ratio);--fluid-max-scale-0: var(--fluid-max-ratio);--fluid-max-scale-1: var(--fluid-max-scale-0) * var(--fluid-max-ratio);--fluid-max-scale-2: var(--fluid-max-scale-1) * var(--fluid-max-ratio);--fluid-max-scale-3: var(--fluid-max-scale-2) * var(--fluid-max-ratio);--fluid-max-scale-4: var(--fluid-max-scale-3) * var(--fluid-max-ratio);--fluid-max-scale-5: var(--fluid-max-scale-4) * var(--fluid-max-ratio);--fluid-max-scale-6: var(--fluid-max-scale-5) * var(--fluid-max-ratio);--fluid-min-size-0: (var(--fluid-min-size)) / 16;--fluid-min-size-1: (var(--fluid-min-size) * var(--fluid-min-scale-0)) / 16;--fluid-min-size-2: (var(--fluid-min-size) * var(--fluid-min-scale-1)) / 16;--fluid-min-size-3: (var(--fluid-min-size) * var(--fluid-min-scale-2)) / 16;--fluid-min-size-4: (var(--fluid-min-size) * var(--fluid-min-scale-3)) / 16;--fluid-min-size-5: (var(--fluid-min-size) * var(--fluid-min-scale-4)) / 16;--fluid-min-size-6: (var(--fluid-min-size) * var(--fluid-min-scale-5)) / 16;--fluid-max-size-0: (var(--fluid-max-size)) / 16;--fluid-max-size-1: (var(--fluid-max-size) * var(--fluid-max-scale-0)) / 16;--fluid-max-size-2: (var(--fluid-max-size) * var(--fluid-max-scale-1)) / 16;--fluid-max-size-3: (var(--fluid-max-size) * var(--fluid-max-scale-2)) / 16;--fluid-max-size-4: (var(--fluid-max-size) * var(--fluid-max-scale-3)) / 16;--fluid-max-size-5: (var(--fluid-max-size) * var(--fluid-max-scale-4)) / 16;--fluid-max-size-6: (var(--fluid-max-size) * var(--fluid-max-scale-5)) / 16;--fluid-0: calc(((var(--fluid-min-size-0) * 1rem) + (var(--fluid-max-size-0) - var(--fluid-min-size-0)) * var(--fluid-bp)));--fluid-1: calc(((var(--fluid-min-size-1) * 1rem) + (var(--fluid-max-size-1) - var(--fluid-min-size-1)) * var(--fluid-bp)));--fluid-2: calc(((var(--fluid-min-size-2) * 1rem) + (var(--fluid-max-size-2) - var(--fluid-min-size-2)) * var(--fluid-bp)));--fluid-3: calc(((var(--fluid-min-size-3) * 1rem) + (var(--fluid-max-size-3) - var(--fluid-min-size-3)) * var(--fluid-bp)));--fluid-4: calc(((var(--fluid-min-size-4) * 1rem) + (var(--fluid-max-size-4) - var(--fluid-min-size-4)) * var(--fluid-bp)));--fluid-5: calc(((var(--fluid-min-size-5) * 1rem) + (var(--fluid-max-size-5) - var(--fluid-min-size-5)) * var(--fluid-bp)));--fluid-6: calc(((var(--fluid-min-size-6) * 1rem) + (var(--fluid-max-size-6) - var(--fluid-min-size-6)) * var(--fluid-bp)));--flow-spacing: clamp(calc(var(--fluid-1) * var(--leading) * 1.25), 1.25lh, 4rem);--hue-primary: 258.4;--hue-secondary: 36.4;--color-primary-50: color-mix(in oklch, var(--color-primary-500) 4%, Canvas);--color-primary-100: color-mix(in oklch, var(--color-primary-500) 10%, Canvas);--color-primary-200: color-mix(in oklch, var(--color-primary-500) 20%, Canvas);--color-primary-300: color-mix(in oklch, var(--color-primary-500) 35%, Canvas);--color-primary-400: color-mix(in oklch, var(--color-primary-500) 60%, Canvas);--color-primary-500: oklch(.48 .17 var(--hue-primary));--color-primary-600: color-mix(in oklch, var(--color-primary-500) 88%, CanvasText);--color-primary-700: color-mix(in oklch, var(--color-primary-500) 72%, CanvasText);--color-primary-800: color-mix(in oklch, var(--color-primary-500) 56%, CanvasText);--color-primary-900: color-mix(in oklch, var(--color-primary-500) 40%, CanvasText);--color-primary-950: color-mix(in oklch, var(--color-primary-500) 24%, CanvasText);--color-secondary-50: color-mix(in oklch, var(--color-secondary-500) 4%, Canvas);--color-secondary-100: color-mix(in oklch, var(--color-secondary-500) 10%, Canvas);--color-secondary-200: color-mix(in oklch, var(--color-secondary-500) 20%, Canvas);--color-secondary-300: color-mix(in oklch, var(--color-secondary-500) 35%, Canvas);--color-secondary-400: color-mix(in oklch, var(--color-secondary-500) 60%, Canvas);--color-secondary-500: oklch(.504 .155 var(--hue-secondary));--color-secondary-600: color-mix(in oklch, var(--color-secondary-500) 88%, CanvasText);--color-secondary-700: color-mix(in oklch, var(--color-secondary-500) 72%, CanvasText);--color-secondary-800: color-mix(in oklch, var(--color-secondary-500) 56%, CanvasText);--color-secondary-900: color-mix(in oklch, var(--color-secondary-500) 40%, CanvasText);--color-secondary-950: color-mix(in oklch, var(--color-secondary-500) 24%, CanvasText);--color-neutral-50: color-mix(in oklch, CanvasText 4%, Canvas);--color-neutral-100: color-mix(in oklch, CanvasText 8%, Canvas);--color-neutral-200: color-mix(in oklch, CanvasText 15%, Canvas);--color-neutral-300: color-mix(in oklch, CanvasText 25%, Canvas);--color-neutral-400: color-mix(in oklch, CanvasText 38%, Canvas);--color-neutral-500: color-mix(in oklch, CanvasText 50%, Canvas);--color-neutral-600: color-mix(in oklch, CanvasText 60%, Canvas);--color-neutral-700: color-mix(in oklch, CanvasText 70%, Canvas);--color-neutral-800: color-mix(in oklch, CanvasText 80%, Canvas);--color-neutral-900: color-mix(in oklch, CanvasText 88%, Canvas);--color-neutral-950: color-mix(in oklch, CanvasText 94%, Canvas);--color-info: oklch(.65 .22 240);--color-success: oklch(.65 .22 145);--color-warn: oklch(.75 .22 50);--color-error: oklch(.62 .22 25);--color-error-dark: color-mix(in oklch, var(--color-error) 90%, black);--color-black: black;--color-accent: #e64c4e;--bg-color: Canvas;--color: CanvasText;--heading-color: light-dark(var(--color-primary-500), var(--color-primary-700));--lnk-color: color-mix(in oklch, var(--color-info) 75%, CanvasText);--lnk-color-visited: color-mix(in oklch, var(--color-info) 25%, purple 25%, CanvasText);--lnk-color-hover: color-mix(in oklch, var(--color-info) 75%, CanvasText);--lnk-color-active: var(--color-error);--radius-xs: .125rem;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-pill: 10rem;--radius-circle: 50%}@function --elevation(--bg){result: 0 .0625rem .125rem light-dark(lightgray,transparent),0 .25rem .75rem light-dark(lightgray,transparent),0 .75rem 2rem light-dark(lightgray,transparent),inset 0 0 0 1px light-dark(transparent,oklch(from var(--bg) calc(l + .5) c h / .5)),0 0 1rem light-dark(transparent,oklch(from var(--bg) calc(l + .5) c h / .3)),0 0 .1875rem light-dark(transparent,oklch(from var(--bg) calc(l + .5) c h / .5));}}@layer base{@font-face{font-family:Lora;src:url("/css/Lora-VariableFont_wght-MTXJSVS6.woff2") format("woff2 supports variations");src:url("/css/Lora-VariableFont_wght-MTXJSVS6.woff2") format("woff2-variations");font-style:normal;font-weight:400 700;font-display:swap}@font-face{font-family:Lora;src:url("/css/Lora-Italic-VariableFont_wght-BQF2SVDK.woff2") format("woff2 supports variations");src:url("/css/Lora-Italic-VariableFont_wght-BQF2SVDK.woff2") format("woff2-variations");font-style:italic;font-weight:400 700;font-display:swap}@font-face{font-family:Oswald;src:url("/css/Oswald-VariableFont_wght-TOFZ2ON2.woff2") format("woff2 supports variations");src:url("/css/Oswald-VariableFont_wght-TOFZ2ON2.woff2") format("woff2-variations");font-style:normal;font-weight:200 700;font-display:swap}@font-face{font-family:Inter;src:url("/css/Inter.var-LQ3NLNYH.woff2") format("woff2 supports variations");src:url("/css/Inter.var-LQ3NLNYH.woff2") format("woff2-variations");font-weight:100 900;font-style:oblique 0deg 10deg;font-display:swap}@font-face{font-family:Fira Code VF;src:url("/css/FiraCode-VF-CER6R4BH.woff2") format("woff2 supports variations");src:url("/css/FiraCode-VF-CER6R4BH.woff2") format("woff2-variations");font-weight:300 700;font-style:normal;font-display:swap}@font-face{font-family:F25 Executive;src:url("/css/f25_executive-75FKWJWG.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}@view-transition{navigation:auto}html{scroll-behavior:smooth;scroll-padding-block-start:3rem;font-family:var(--font-base);interpolate-size:allow-keywords;background-color:var(--bg-color);color:var(--color);transition:.3s ease-in-out;transition-property:accent-color,background-color,color}body{height:100%;text-decoration-skip-ink:auto;font-optical-sizing:auto;font-variant-ligatures:common-ligatures no-discretionary-ligatures no-historical-ligatures contextual;font-kerning:normal;container-type:size}body.no-scroll{overflow:hidden;height:100vh}.scheme-dark{color-scheme:dark;background-color:var(--bg-color);color:var(--color)}.scheme-light{color-scheme:light;background-color:var(--bg-color);color:var(--color)}main{padding-block:4rem}.sr-only,mark:before,mark:after,del:before,del:after,ins:before,ins:after,s:before,s:after{position:absolute!important;height:1px!important;width:1px!important;clip:rect(1px,1px,1px,1px)!important;clip-path:inset(50%)!important;overflow:hidden!important;border:0!important;padding:0!important;white-space:nowrap!important}hr{opacity:.5;max-width:50%}main,article,section,.container{container-type:inline-size;display:flow-root}.clearfix{display:flow-root}[id],[name]{scroll-margin-block-start:2ex}main img{margin-inline:auto;border-radius:var(--radius-sm)}img:before{--img-border-style: .25em solid color-mix(in oklch, currentColor, transparent 75%);--img-border-space: 1em;border-inline-start:var(--img-border-style);border-block-end:var(--img-border-style);padding-inline-start:var(--img-border-space);padding-block:var(--img-border-space);max-width:42ch;margin-inline:auto;font-style:italic}.icon-inline{display:inline;height:1em;aspect-ratio:1;vertical-align:central}:disabled{opacity:.3}li :disabled{opacity:1}input,details,progress{accent-color:var(--color-accent)}summary{cursor:pointer}summary::marker{color:var(--color-accent);font-size:1.5em}::details-content{block-size:0;opacity:0;padding-block-start:0;overflow:hidden;transition-property:opacity,block-size,content-visibility,padding;transition-duration:.75s;transition-behavior:allow-discrete}details[open]::details-content{block-size:auto;opacity:1;padding-block-start:1lh}a:any-link{color:var(--lnk-color);text-decoration-thickness:.0625rem;transition:.2s ease-in-out;transition-property:all}a:any-link.img-link{border-block-end:.0625rem solid currentColor}a:any-link.img-link:hover{border-block-end-width:.1875rem;border-color:var(--lnk-color-hover)}a:visited{color:var(--lnk-color-visited)}a:hover{text-decoration-thickness:.1875rem;color:var(--lnk-color-hover)}a:focus-visible{outline:.1875rem dotted var(--lnk-color-active);border-block-end:none}a:active{color:var(--lnk-color-active)}ul,ol,dl{margin-block-start:var(--flow-spacing);margin-inline-start:2em;padding:0}:is(li,dd)>:is(ul,ol,dl){margin-block-start:.5lh}@container (width < 60ch){ul,ol{margin-inline-start:1em}dl{margin-inline-start:0}:is(li,dd)>:is(ul,ol,dl){margin-inline-start:.75em}}li{margin-block-end:1lh}li::marker{color:var(--color-accent)}ul>li::marker{content:"\25ba\a0"}ul ul>li::marker{content:"\2736\a0"}ul ul ul>li::marker{content:"\2022\a0"}ol>li::marker{font-family:var(--font-heading);font-size:1.125em;line-height:.8888}dt,dd{margin-block-end:1lh}dt{font-weight:500}dd{margin-inline-start:2em}@container (width < 60ch){dd{margin-inline-start:1em}}:is(dl,ul,ol)>*:last-child{margin-block-end:0}li:has(input[type=checkbox])::marker{content:""}li:has(input[type=checkbox]) input:disabled{accent-color:red}body{font-size:var(--fluid-1);font-family:var(--font-base);line-height:var(--leading)}p,li,dt,dd{max-width:var(--text-max-width);text-box:trim-both cap alphabetic}h1,.heading-1{font-size:var(--fluid-5)}h2,.heading-2{font-size:var(--fluid-4)}h3,.heading-3{font-size:var(--fluid-3)}h4,.heading-4{font-size:var(--fluid-2)}h5,.heading-5{font-size:var(--fluid-1)}h6,.heading-6{margin-bottom:-.5lh;font-size:var(--fluid-0);text-transform:uppercase;letter-spacing:.05em}h1,h2,h3,h4,h5,h6,[class*=heading-]{color:var(--heading-color);font-family:var(--font-heading);font-weight:400;line-height:1.2;text-wrap:balance;text-box:trim-both cap alphabetic}.lede{font-size:1.25em}strong,b{font-weight:600}abbr[title],cite[title],dfn[title]{cursor:help}cite{font-style:italic}code,kbd,pre,samp{font-family:var(--font-monospace);font-size:.9em;font-weight:400;font-style:normal;line-height:inherit;padding-inline:.25ch}:is(code,kbd,pre,samp) code,:is(code,kbd,pre,samp) kbd,:is(code,kbd,pre,samp) samp{font-size:inherit}code{border-radius:var(--radius-xs);background-color:oklch(from currentColor l c h / .1);padding:.1875rem;color:light-dark(darkred,pink)}pre code{background-color:transparent;color:inherit}kbd,samp{color:light-dark(#008000,#00f000);filter:brightness(var(--contrastBrightness, 1))}kbd{font-weight:700}kbd>kbd{--contrastBrightness: 1;margin:0 1px;border:1px solid #888;border-radius:.3125rem;box-shadow:.125em .125em .125em -.0625em currentColor;background-color:#f5f5f5;padding:.075em .3em 0;text-align:center;vertical-align:middle;color:#000;font-family:var(--font-table);font-size:smaller;line-height:1;font-style:normal;font-weight:600}pre{border-radius:var(--radius-md);border:1px solid oklch(from currentColor l c h / .2);padding:1em 1em .5em;background-color:oklch(from currentcolor l c h / .05);color:CanvasText}var{color:light-dark(#b00,#e00);font-family:var(--font-base);font-size:1.05em;font-weight:600;line-height:inherit}q{font-style:italic}q em,q i,q q{font-style:normal}q q em,q q i{font-style:italic}mark:before{content:"[highlight start] "}mark:after{content:" [highlight end]"}del:before{content:"[deletion start] "}del:after{content:" [deletion end]"}ins:before{content:"[insertion start] "}ins:after{content:" [insertion end]"}s:before{content:"[start of stricken text] "}s:after{content:" [end stricken text]"}mark{background-color:color-mix(in oklch,Canvas 10%,Mark)}@media screen and (-ms-high-contrast:active){mark{color:HighlightText;background-color:Highlight}}@media print{mark{border:1pt dotted #000}}ins{text-decoration:none;border-bottom:.2em double var(--color-success)}@media print{ins{border-bottom-width:3pt}}del{text-decoration-color:var(--color-error);text-decoration-thickness:.125em}@media screen and (-ms-high-contrast:active){del{text-decoration-color:Highlight}}.prose{-webkit-hyphens:auto;-webkit-hyphenate-limit-before:4;-webkit-hyphenate-limit-after:3;-webkit-hyphenate-limit-lines:2;hyphens:auto;hyphenate-limit-chars:7 4 3;hyphenate-limit-lines:2;hyphenate-limit-zone:8%;hyphenate-limit-last:always;text-wrap:pretty}.prose pre,.prose code,.prose var,.prose samp,.prose kbd,.prose h1,.prose h2,.prose h3,.prose h4,.prose h5,.prose h6{-webkit-hyphens:manual;hyphens:manual}.prose>*+*{margin-block-start:var(--flow-spacing)}.prose :is(h1,h2,h3,h4,h5,h6)+*{margin-block-start:calc(var(--flow-spacing) * .66)}button,.button,input[type=button],input[type=submit],input[type=reset]{margin:0;padding:.75em;border:1px solid currentColor;border-radius:var(--radius-sm);background-color:var(--color-primary-100);cursor:pointer;color:var(--color-primary-700);font-family:var(--font-table);font-weight:500;line-height:1;text-box:trim-both cap alphabetic}:is(button,.button,input[type=button],input[type=submit],input[type=reset]):hover,:is(button,.button,input[type=button],input[type=submit],input[type=reset]):focus-visible{background-color:var(--color-primary-200);color:contrast-color(var(--color-primary-200))}label,legend,input,output{color:var(--color-primary-950);font-family:var(--font-table)}input,output{border-color:var(--color-primary-400);border-radius:var(--radius-sm);border-style:solid;background-color:light-dark(var(--color-neutral-50),var(--color-neutral-200));padding:.25em .5em;color:CanvasText}label+input{margin-inline-start:1.5em}}@layer framework{.content-grid{--breakout-size: calc((var(--breakout-max-width) - var(--content-max-width)) / 2);--content-size: calc((var(--content-max-width) - var(--prose-max-width)) / 2);display:grid;grid-template-columns:[full-width-start] minmax(var(--gutter-width),1fr) [breakout-start] minmax(0,var(--breakout-size)) [content-start] minmax(0,var(--content-size)) [prose-start] min(100% - (var(--gutter-width) * 2),var(--prose-max-width)) [prose-end] minmax(0,var(--content-size)) [content-end] minmax(0,var(--breakout-size)) [breakout-end] minmax(var(--gutter-width),1fr) [full-width-end];position:relative;align-content:start}.content-grid>*{grid-column:content}.content-grid>:not(.grid-prose,.breakout,.full-bleed),.full-bleed>:not(.grid-prose,.breakout,.full-bleed){grid-column:content}.content-grid>.prose-grid{grid-column:prose}.content-grid>.breakout{grid-column:breakout}.content-grid>.full-bleed{grid-column:full-width;display:grid;grid-template-columns:inherit}.layout-w-sidebar{display:flex;flex-direction:row;flex-wrap:wrap;align-items:flex-start;gap:3cqi;grid-row-gap:4rem}.layout-w-sidebar>:first-child{flex:1 1 var(--prose-max-width)}.layout-w-sidebar>:last-child{flex:1 1 clamp(10rem,25%,16.25rem);max-width:calc(var(--prose-max-width) * .75)}.site-header{position:relative;height:clamp(348px,20vw + 10rem,420px);background-color:var(--bg-color);border-block-end:.9375rem solid var(--bg-color);padding-block-start:4rem;&.[class*="bg-"]{background-image:var(--bg-img, none)}}.site-header:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at center,#0000 0% 36%,#000000a6);z-index:0}.page-home .site-header{height:clamp(450px,40vw + 10rem,560px);padding-block-start:6.75rem}.site-header .full-height{z-index:1}.site-header .full-height *{--color: contrast-color(var(--bg-color));--shadow: contrast-color(var(--color));color:var(--color);text-shadow:0 0 .875em var(--shadow),0 0 .125em var(--shadow),0 0 .0625em var(--shadow)}.site-header .full-height h1{margin-block-start:.25em}.site-header.opacity:before{background-color:inherit;opacity:.8}.site-header .logo{position:absolute;bottom:-.9375rem;width:6.25rem;border-bottom:none;transition:all .25s ease}.site-header .logo:hover,.site-header .logo:focus-visible{filter:brightness(.75);background:none}header[class*=bg-]{position:relative}.page-home .site-header .logo{width:clamp(150px,5vw + 8rem,200px)}.page-home .site-header h1{font-size:calc(var(--fluid-5) * 1.666)}.site-footer{border-top:2px solid oklch(from currentColor l c h/.25);padding-block:1rem 1em;color:CanvasText}.site-footer p{max-width:100%;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.25lh 1em;font-family:var(--font-table);font-weight:300}.site-footer a svg{color:CanvasText}.site-footer img,.site-footer svg{display:inline;height:1em}.site-footer .netlify svg{height:1.125lh}}@layer components{.goat svg{font-family:var(--font-table);font-size:1rem}baseline-status{--bg-color: var(--color-neutral-50);background-color:var(--bg-color);box-shadow:--elevation(var(--bg-color))}blockquote{max-width:70ch;margin-inline:clamp(.5em,3vw,4em);border-left:.1875rem solid var(--color-primary-500);background-color:var(--color-primary-100);padding:1lh 2ch;font-size:1em;font-style:italic}blockquote footer,blockquote em,blockquote i{text-align:right;font-style:normal}table{--bg-color: oklch(from var(--color-primary-200) l c h / .25);--color: CanvasText;--table-padding: .5em .625em .625em;--table-border: 1px solid oklch(from currentColor l c h / .2);border-collapse:separate;border-spacing:0;border-top:var(--table-border);border-left:var(--table-border);font-family:var(--font-table);font-weight:300;font-variant-numeric:tabular-nums}table caption{caption-side:top;padding:var(--table-padding);text-align:left;font-family:var(--font-base);font-size:.9em;font-style:italic}.table-fixed{table-layout:fixed}.table-fixed th,.table-fixed td{overflow:hidden;text-overflow:ellipsis}tr:nth-child(2n){background-color:var(--bg-color)}tr:nth-child(2n) th{background-color:var(--color-primary-200)}tr>:nth-child(1){text-align:var(--col1, inherit)}tr>:nth-child(2){text-align:var(--col2, inherit)}tr>:nth-child(3){text-align:var(--col3, inherit)}tr>:nth-child(4){text-align:var(--col4, inherit)}tr>:nth-child(5){text-align:var(--col5, inherit)}tr>:nth-child(6){text-align:var(--col6, inherit)}tr>:nth-child(7){text-align:var(--col7, inherit)}tr>:nth-child(8){text-align:var(--col8, inherit)}tr>:nth-child(9){text-align:var(--col9, inherit)}tr>:nth-child(10){text-align:var(--col10, inherit)}th,td{vertical-align:top;border-bottom:var(--table-border);border-right:var(--table-border);padding:var(--table-padding);color:var(--color)}th{background-color:var(--color-primary-100);color:contrast-color(var(--color-primary-100));text-align:left;font-weight:500}tfoot :is(th,td){border:var(--table-border);border-width:1px;font-weight:500}tfoot th{font-weight:700}.table-container{overflow:auto;max-height:90vh;background:linear-gradient(oklch(from CanvasText l c h / 0),Canvas 70%) 0 100%,radial-gradient(farthest-side at 50% 100%,oklch(from CanvasText l c h / .2),#0000) 0 100%,linear-gradient(to right,oklch(from CanvasText l c h / 0),Canvas 70%) 0 100%,radial-gradient(farthest-side at 100% 50%,oklch(from CanvasText l c h / .2),oklch(from CanvasText l c h / 0)) 0 100%;background-repeat:no-repeat;background-color:Canvas;background-size:100% 4rem,100% 1.4rem,4rem 100%,1.4rem 100%;background-position:bottom,bottom,100%,100%;background-attachment:local,scroll,local,scroll}.table-container:focus{box-shadow:0 0 .5rem .25rem var(--color);outline:.125rem solid var(--color)}.table-container table{margin:0}.table-container th{position:sticky;top:0;z-index:2}.table-container th[scope=row],.table-container th[scope=rowgroup]{position:sticky;left:0;z-index:1}figure{--figure-text-size: .8em;display:table;max-width:100%;margin:1lh auto;font-size:var(--figure-text-size)}figure img{width:100%;margin:0}figcaption{position:relative;display:table-caption;caption-side:bottom;border-bottom:1px solid oklch(from currentColor l c h/.25);padding-block:1lh;color:CanvasText;line-height:1.462;font-style:italic;filter:brightness(calc(var(--contrastBrightness) * 1.25))}figcaption cite{position:absolute;top:.125rem;right:0;font:small-caps normal 300 .75em / 1 var(--font-heading)}figcaption em,figcaption i{font-style:normal}figcaption span{border-right:1px solid currentColor;padding-inline-end:.5em;font-weight:700;font-style:normal}.fig-border img{border:1px solid oklch(from CanvasText l c h / .25)}.verse{position:relative;list-style:none}.verse li{margin-block-end:.75em;padding-inline-start:.25em;font-size:1.1em;color:var(--color-primary-700)}.verse li::marker{font-size:.5em}.verse-in2 li:nth-child(2n+2){text-indent:1.5em}.verse-in1 li:nth-child(odd){text-indent:1.5em}.verse-s16 li:nth-child(5n+5),.verse-s27 li:nth-child(5n+4),.verse-s38 li:nth-child(5n+3),.verse-s49 li:nth-child(5n+2),.verse-s50 li:nth-child(5n+1){list-style:decimal}.skip-to-content a{position:absolute;opacity:0;pointer-events:none;top:-2.5em;left:50%;transform:translate(-50%);border-left:1px solid currentColor;border-right:1px solid currentColor;border-bottom:1px solid currentColor;border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem;background:transparent;padding:.375rem;color:CanvasText;font-family:sans-serif;z-index:999}.skip-to-content a:focus{top:0;background:red;pointer-events:all;opacity:1;outline-color:transparent;transition:top .1s ease-in,background .5s linear}.main-nav-bar{--padding: 1em;--bg-color: CanvasText;--color: contrast-color(CanvasText);position:fixed;top:0;width:100%;z-index:3;background-color:oklch(from var(--bg-color) l c h/.65);backdrop-filter:blur(.5rem)}@container (height < 33.75rem){.main-nav-bar{position:absolute;top:0}}.main-nav{display:flex;gap:var(--padding);align-items:center;justify-content:space-between;padding-block:.25rem;color:var(--color)}.main-nav ul{margin:0;padding:0;display:flex;gap:1em;font-family:var(--font-heading);font-size:1.125rem;font-weight:300;letter-spacing:.05em}.main-nav li{display:inline-block;margin-block:.1875rem .375rem}.main-nav a{position:relative;display:block;text-decoration:none;padding-block:.15em;color:inherit}.main-nav a:hover{color:oklch(from currentColor l c h/.75);background-color:transparent}.main-nav a:hover,.main-nav [aria-current]{text-decoration:underline;text-decoration-color:oklch(from var(--color-secondary-500) calc(l + .1) calc(c + .05) h);text-decoration-thickness:.125rem;text-underline-offset:.325em}.scheme-switcher{display:flex;padding:.25em;width:fit-content;border:.125em solid var(--color);border-radius:calc(infinity * 1px);background-color:oklch(from var(--bg-color) l c h/.4);font-family:var(--font-table);font-size:.8125rem;font-weight:500}.scheme-switcher button{margin:0;padding:.325em;border:none;border-radius:calc(infinity * 1px);background-color:transparent;cursor:pointer;color:var(--color);font:inherit;line-height:1}.scheme-switcher button[aria-pressed=true]{background-color:var(--color);color:var(--bg-color)}aside{margin-block:var(--flow-spacing);border-left:.1875rem solid var(--color-secondary-500);background-color:var(--color-secondary-100);padding:clamp(.25em,3vw,2em)}@container (width > 50ch){aside{float:right;max-width:50%;margin:1lh 0 1lh 1rem}}.post-heading{font-size:var(--fluid-3);font-variant:small-caps}.post-list{--b-color: var(--color-secondary-400);margin-inline-start:0;border-block-start:1px solid var(--b-color);padding-inline-start:0}.post-list li{max-width:none;margin-block-end:0;list-style:none;border-block-end:1px solid var(--b-color)}.post-list li::marker{content:""}.post-list a{display:flex;flex-direction:row;align-items:self-start;gap:1ch;text-decoration:none;padding:1rem .6875rem}.post-list a:hover,.post-list a:focus-visible{background-color:var(--color-secondary-100)}:is(.post-list a:hover,.post-list a:focus-visible) .post-img img{transform:scale(1.2)}.post-list .post-img{flex:0 0 25%;margin-inline:0;border:1px solid var(--color-neutral-200);border-radius:.125rem}.post-text{display:flex;flex-direction:column;gap:.5lh}.post-text p{color:var(--color);line-height:1.2}.post-text [class*=heading-]{color:var(--heading-color)}.post-text .post-date{display:block;color:var(--color-secondary-600);font:small-caps 300 .8em var(--font-table);letter-spacing:-.05em}.post-cards{margin-inline-start:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),1fr));grid-template-rows:auto auto auto auto;gap:1em}.post-img{aspect-ratio:40/21;overflow:hidden;margin-inline:-.5em}.post-img img{width:100%;height:100%;border-radius:0;object-fit:cover;transition:.2s ease-in-out;transition-property:all}.post-card{display:grid;grid-template-rows:subgrid;grid-row:span 4;margin-block-end:0;padding:0 .5em 1em;border-radius:var(--radius-md);overflow:hidden;cursor:pointer}.post-card::marker{content:""}.post-card:hover,.post-card:focus-within{background-color:var(--color-primary-100)}:is(.post-card:hover,.post-card:focus-within) .post-img img{transform:scale(1.2)}.post-card h2{font-size:var(--fluid-1)}.post-card a{color:inherit;text-decoration-thickness:0}.post-date-time{margin-block-start:0;color:var(--color-secondary-600);font:small-caps 300 var(--fluid-0)/1 var(--font-heading)}.diagram{--color: #000;--bg-color: #eaf6e8;--border-width: 3px;--text-size: var(--fluid-1);--leading: 1.5;--grid: calc(var(--text-size) * var(--leading));max-width:100ch;margin-block-start:2rem;border:var(--border-width) solid seagreen;background-color:var(--bg-color);background-image:linear-gradient(#cec 1px,transparent 0),linear-gradient(#cec 3px,transparent 0),linear-gradient(90deg,#cec 1px,transparent 0),linear-gradient(90deg,#cec 3px,transparent 0);background-size:var(--grid) var(--grid),calc(var(--grid) * 5) calc(var(--grid) * 5),var(--grid) var(--grid),calc(var(--grid) * 5) calc(var(--grid) * 5);background-position:calc(var(--border-width) * -1) calc(var(--grid) * 2 - calc(var(--border-width) * -2));padding:var(--grid);font-family:var(--font-diagram);font-size:var(--text-size);line-height:var(--leading)}:root:has(meta[name=color-scheme][content=dark]) .diagram,.scheme-dark .diagram{filter:brightness(.8) contrast(1.2)}.diagram>*:last-child{margin-block-end:0}.diagram h2,.diagram h3,.diagram h4{margin:calc(var(--grid) * -1) calc(var(--grid) * -1) calc(var(--border-width) * 0);border-block-end:var(--border-width) solid seagreen;background-color:var(--bg-color);padding:var(--grid);color:var(--color);font-family:var(--font-diagram);font-size:inherit;line-height:1;font-weight:700}.diagram p{max-width:none;margin-block:0 calc(var(--leading) * 1.2em);color:var(--color);text-box:trim-both text text}.diagram em,.diagram i{border-bottom:2px solid currentColor;font-style:normal}.diagram strong,.diagram b{font-weight:400;color:var(--color-error)}.diagram figure{margin-block:0 calc(var(--leading) * 1.2em)}.diagram figcaption{border-block-end:none;padding-block:.75em 0;font-size:var(--text-size);line-height:var(--leading);font-style:normal}.diagram figcaption p{margin-block-end:0}.sidebar{position:sticky;top:4rem;margin:0;padding:0;border:none;background:none}.sidebar h2{font-size:var(--fluid-1);text-transform:uppercase}.other{margin-inline:0;list-style-type:none}.other li{margin:0;font-size:.8em}.other li::marker{content:""}.other li:after{content:"</>" / "";display:block;margin-block-end:1.5lh;color:var(--color-secondary-500);font-family:var(--font-table);text-align:center}.other h3{color:var(--color-secondary-500);font-weight:400;font-size:1.2em}.other .img-wrapper{margin:0 -.5em 1em}.other img{border:1px solid var(--color-neutral-300);transition:.2s ease-in-out}.other a{display:block;text-decoration:none;padding:0 .5em 1em}.other a:hover,.other a:focus{background-color:var(--color-primary-100)}:is(.other a:hover,.other a:focus) img{filter:brightness(.75)}.side-nav{position:fixed;top:0;left:0;width:20rem;height:100vh;background-color:var(--color-neutral-100);z-index:100;padding:1rem 0;overflow-y:auto;transform:translate(-100%);transition:transform .3s ease-in-out}.side-nav.open{transform:translate(0)}.side-nav ul{margin:0}.side-nav li{margin:0;border-block-end:1px solid var(--color-neutral-200)}.side-nav li::marker{content:""}.side-nav li ul{border-block-start:1px solid var(--color-neutral-200)}.side-nav li ul li:last-child{border-block-end:none}.side-nav li li a{padding-inline-start:1.25em}.side-nav a{display:block;text-decoration:none;background-color:var(--color-neutral-50);padding:.5em;font-family:var(--font-heading)}.side-nav a:hover,.side-nav a:focus-visible{background-color:var(--color-neutral-100)}.side-nav a[aria-current=page]{background-color:var(--color-primary-200);color:var(--color-neutral-950)}.side-nav a.ancestor{background-color:var(--color-primary-100)}.side-nav-header{display:flex;justify-content:space-between;align-items:center;margin:0 .5rem}.close-btn{background:none;border:none;font-size:32px;cursor:pointer;line-height:1}.page-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:oklch(from #000 l c h / .75);backdrop-filter:blur(.25rem);z-index:98;opacity:0;pointer-events:none;transition:opacity .3s ease-in-out}.page-overlay.open{opacity:1;pointer-events:auto}[class*=info-]{--color: color-mix(var(--color-neutral-500), CanvasText);--bg-color: color-mix(in oklch, var(--color-neutral-500) 20%, Canvas);position:relative;max-width:var(--prose-max-width);border-radius:var(--radius-sm);border:1px solid oklch(from currentColor l c h / .25);background-color:var(--bg-color);padding:1.5em 2ch;color:var(--color)}[class*=info-]:before{position:absolute;left:1.125ch;top:50%;transform:translateY(-50%);width:1.25em;border-radius:var(--radius-circle);background-color:var(--icon-color);text-align:center;color:var(--bg-color);font-family:var(--font-table);font-size:1.5em;line-height:1.25;font-weight:700}.info-info{--color: color-mix(var(--color-info), CanvasText);--icon-color: var(--color-info);--bg-color: color-mix(in oklch, var(--color-info) 20%, Canvas);padding-inline-start:4em}.info-info:before{content:"i";font-family:var(--font-base)}.info-success{--color: color-mix(var(--color-success), CanvasText);--icon-color: var(--color-success);--bg-color: color-mix(in oklch, var(--color-success) 20%, Canvas);padding-inline-start:4em}.info-success:before{content:"\2713"}.info-warning{--color: color-mix(var(--color-warn), CanvasText);--icon-color: var(--color-warn);--bg-color: color-mix(in oklch, var(--color-warn) 20%, Canvas);padding-inline-start:4em}.info-warning:before{content:"\26a0";left:.625ch;background:none;color:var(--icon-color);font-size:2em;font-weight:700}.info-error{--color: color-mix(var(--color-error), CanvasText);--icon-color: var(--color-error);--bg-color: color-mix(in oklch, var(--color-error) 20%, Canvas);padding-inline-start:4em}.info-error:before{content:"\2715"}[src^="https://codepen.io/"]{max-width:31.875rem}.date-readtime{color:color-mix(in oklch,var(--color-info) 75%,CanvasText)}.multi-col-list{padding-inline-start:0;columns:4 17ch;column-rule:.125rem solid var(--color-neutral-200);column-gap:clamp(2rem,calc(var(--gutter-width) * 4),4rem);font-family:var(--font-table);font-weight:500}.multi-col-list li{margin-block-end:0;list-style:none;border-bottom:1px solid var(--color-neutral-200)}.multi-col-list li::marker{content:""}.multi-col-list a{display:block;margin-block-end:0;padding:.5rem .6875rem;color:color-mix(in oklch,var(--color-info) 75%,CanvasText);text-decoration-thickness:0}.multi-col-list a:hover,.multi-col-list a:focus-visible{background-color:oklch(from currentColor l c h / 15%)}.multi-col-list a:active{color:var(--lnk-color-active)}.badge{--color: var(--color-info);--bg-color: color-mix(in oklch, var(--color-info) 25%, Canvas);display:inline-block;vertical-align:top;margin-inline-start:.25ch;border:1px solid var(--color);background-color:var(--bg-color);padding:.25rem;border-radius:var(--radius-pill);color:var(--color);font-size:.6em;text-box:trim-both cap alphabetic}.font-sample{font-size:3rem;line-height:1.1}.font-sample-list{display:grid;grid-template-columns:4ch 1fr;gap:.875rem}.font-sample-list dt{align-self:center;margin-block-end:0;font-family:var(--font-table);line-height:1}.font-sample-list dd{max-width:none;margin:0;align-self:center;white-space:nowrap;line-height:1.25}.tag-list{display:flex;flex-wrap:wrap;gap:.5rem;margin-block-start:2rem;font-size:var(--fluid-0);font-weight:500}.tag-list li{display:inline-block;margin-block-end:0;list-style:none}.tag-list a{--lnk-color: oklch(from var(--color-primary-500) calc(l + .125) calc(c + .2) h);--lnk-color-visited: var(--lnk-color);display:block;border-radius:var(--radius-pill);border:1px solid color-mix(in oklch,currentColor,Canvas);background-color:color-mix(in oklch,var(--color-primary-500) 25%,Canvas);padding:.5em 1em;font-family:var(--font-table);text-decoration:none;text-box:trim-both cap alphabetic}.tag-list a:hover{color:Canvas;background-color:var(--lnk-color)}.nav-control{margin-top:1lh;padding:0;font-size:var(--fluid-2);background:none;border:none;text-decoration:none;cursor:pointer}.nav-control:hover,.nav-control:focus-visible{background-color:transparent;text-decoration:underline;text-decoration-thickness:.1875rem;text-decoration-color:oklch(from var(--color-secondary-500) calc(l + .1) calc(c + .05) h)}.nav-control.up{margin-top:calc(-4rem + 1lh)}}@layer utilities{.mt1{margin-block-start:1rem}.mt1-5{margin-block-start:1.5rem}.mt2{margin-block-start:2rem}.mt3{margin-block-start:3rem}.mt4{margin-block-start:4rem}.mt6{margin-block-start:6rem}.mt8{margin-block-start:8rem}.mblock2{margin-block:2rem}.mblock4{margin-block:4rem}.mblock6{margin-block:6rem}.p2{padding:2rem}.text-balance{text-wrap:balance}.dlig{font-variant-ligatures:discretionary-ligatures}.hlig{font-variant-ligatures:historical-ligatures}.dlig.hlig{font-variant-ligatures:discretionary-ligatures historical-ligatures}.pnum{font-variant-numeric:proportional-nums}.tnum{font-variant-numeric:tabular-nums}.lnum{font-variant-numeric:lining-nums}.onum{font-variant-numeric:oldstyle-nums}.frac{font-variant-numeric:diagonal-fractions}.afrc{font-variant-numeric:stacked-fractions}.ordn{font-variant-numeric:ordinal}.smcp{font-variant-caps:small-caps}.c2sc{font-variant-caps:unicase}.hist{font-variant-alternates:historical-forms}.txt-h1{font-size:var(--fluid-5)}.txt-h2{font-size:var(--fluid-4)}.txt-h3{font-size:var(--fluid-3)}.txt-h4{font-size:var(--fluid-2)}.txt-h5{font-size:var(--fluid-1)}.txt-h6{font-size:var(--fluid-0)}.txt-huge{font-size:17.25rem;line-height:1}.notrim{text-box:trim-both text text}.clip{overflow:clip}.left{text-align:left}.right{text-align:right}.center{text-align:center}.full-height{height:100%}[class*=bg-]{--color: contrast-color(var(--bg-color));background-size:cover;background-position:center;background-color:var(--bg-color);color:var(--color)}section[class*=bg-]{padding:var(--flow-spacing) 4ch}section[class*=bg-] h1,section[class*=bg-] h2,section[class*=bg-] h3,section[class*=bg-] h4,section[class*=bg-] h5,section[class*=bg-] h6,section[class*=bg-] [class*=heading-]{color:var(--color)}.bg-top,.bg-top:after{background-position:top}.bg-bottom,.bg-bottom:after{background-position:bottom}.bg-left,.bg-left:after{background-position:left}.bg-right,.bg-right:after{background-position:right}.bg-top-left,.bg-top-left:after{background-position:top left}.bg-top-right,.bg-top-right:after{background-position:top right}.bg-bottom-left,.bg-bottom-left:after{background-position:bottom left}.bg-bottom-right,.bg-bottom-right:after{background-position:bottom right}.bg-center,.bg-center:after{background-position:center}.bg-upper-left,.bg-upper-left:after{background-position:top 33% left 33%}.bg-upper-right,.bg-upper-right:after{background-position:top 33% right 33%}.bg-lower-left,.bg-lower-left:after{background-position:bottom 33% left 33%}.bg-lower-right,.bg-lower-right:after{background-position:bottom 33% right 33%}@media(min-width:560px){[class*=float-left],[class*=float-right]{max-width:50%}.float-left-medium,.float-right-medium{max-width:33%}.float-left-small,.float-right-small{max-width:25%}[class*=float-]{margin-block:0 .25lh}[class*=float-left]{float:inline-start;margin-inline-end:1.5rem}[class*=float-right]{float:inline-end;margin-inline-start:2rem}}.border{border:.125rem solid oklch(from currentColor l c h/.125)}.pos-right{width:fit-content;justify-self:end}.shadow{box-shadow:0 .0625rem .125rem light-dark(lightgray,transparent),0 .25rem .75rem light-dark(lightgray,transparent),0 .75rem 2rem light-dark(lightgray,transparent),inset 0 0 0 1px light-dark(transparent,oklch(from var(--bg-color) calc(l + .5) c h / .5)),0 0 1rem light-dark(transparent,oklch(from var(--bg-color) calc(l + .5) c h / .3)),0 0 .1875rem light-dark(transparent,oklch(from var(--bg-color) calc(l + .5) c h / .5))}@supports at-rule(@function){.shadow{box-shadow:--elevation(var(--bg-color))}}}
