@font-face{font-family:Archivo;src:url(/fonts/archivo-wdth.woff2)format("woff2");font-weight:100 900;font-stretch:62% 125%;font-style:normal;font-display:swap}@font-face{font-family:Archivo;src:url(/fonts/archivo-wdth-italic.woff2)format("woff2");font-weight:100 900;font-stretch:62% 125%;font-style:italic;font-display:swap}@font-face{font-family:PP Model Mono;src:url(/fonts/PPModelMono-Medium.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:PP Model Mono;src:url(/fonts/PPModelMono-MediumItalic.woff2)format("woff2");font-weight:500;font-style:italic;font-display:swap}@font-face{font-family:PP Model Mono Fallback;src:local(Menlo),local(Consolas),local(DejaVu Sans Mono),local(Liberation Mono);size-adjust:111.3%;ascent-override:91.66%;descent-override:25.88%;line-gap-override:0%}@font-face{font-family:Archivo Fallback;src:local(Arial),local(ArialMT),local(Helvetica);size-adjust:98.7%;ascent-override:88.96%;descent-override:21.28%;line-gap-override:0%}@font-face{font-family:Archivo Display Fallback;src:local(Arial Bold),local(Arial-BoldMT),local(Helvetica Bold),local(Helvetica-Bold),local(Liberation Sans Bold),local(LiberationSans-Bold);font-weight:100 900;size-adjust:69%;ascent-override:127.25%;descent-override:30.43%;line-gap-override:0%}@font-face{font-family:Archivo Expanded Fallback;src:local(Arial Bold),local(Arial-BoldMT),local(Helvetica Bold),local(Helvetica-Bold),local(Liberation Sans Bold),local(LiberationSans-Bold);font-weight:100 900;size-adjust:128.2%;ascent-override:68.49%;descent-override:16.38%;line-gap-override:0%}*,:before,:after{box-sizing:border-box}:root{--grid-columns:4;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}@media (width>=900px){:root{--grid-columns:12}}html{background:var(--color-bg);color:var(--color-text)}body{font-family:var(--font-family);font-size:var(--type-body-size);font-stretch:var(--type-body-wdth);font-weight:var(--type-body-wght);line-height:var(--type-body-lh);letter-spacing:var(--type-body-ls);background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;flex-direction:column;min-height:100svh;margin:0;display:flex}body>.site-footer{flex-grow:1}img{max-width:100%;display:block}h1,h2,h3,p,figure,dl,dd{margin:0}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}:focus-visible{outline:var(--focus-width) solid var(--color-focus);outline-offset:var(--focus-offset);border-radius:var(--radius-focus)}.on-inverse :focus-visible,.on-inverse:focus-visible{outline-color:var(--color-focus-inverse)}main:focus-visible{outline:none}.text-link{text-decoration:underline;text-decoration-thickness:var(--underline-weight);text-underline-offset:var(--underline-offset)}.text-link:is(:hover,:focus-visible){color:var(--color-accent-text)}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){html:not([data-motion]) *,html:not([data-motion]) :before,html:not([data-motion]) :after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}html[data-smooth-scroll=on]{scroll-behavior:smooth}html[data-motion=reduced]{scroll-behavior:auto}@media (prefers-reduced-motion:reduce){html:not([data-motion=on]){scroll-behavior:auto}}html[data-motion=reduced]::view-transition-group(*){animation:none!important}html[data-motion=reduced]::view-transition-old(*){animation:none!important}html[data-motion=reduced]::view-transition-new(*){animation:none!important}.skip-link{left:var(--page-margin);top:var(--space-2);z-index:var(--z-viewer);min-height:var(--target-min);padding:var(--space-3) var(--space-4);background:var(--color-inverse);color:var(--color-text-inverse);align-items:center;display:inline-flex;position:absolute;transform:translateY(-200%)}.skip-link:focus-visible{transform:none}.btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--target-min);padding:0 var(--space-5);border-radius:var(--radius-control);color:var(--color-text);cursor:pointer;transition:background-color var(--dur-fast) var(--ease-press), color var(--dur-fast) var(--ease-press), border-color var(--dur-fast) var(--ease-press);background:0 0;border:1px solid;text-decoration:none;display:inline-flex}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--color-inverse);border-color:var(--color-inverse);color:var(--color-text-inverse)}.btn-primary:is(:hover,:focus-visible){background:var(--color-accent-text);border-color:var(--color-accent-text);color:var(--color-text-inverse)}.btn-secondary:is(:hover,:focus-visible){background:var(--color-inverse);border-color:var(--color-inverse);color:var(--color-text-inverse)}.on-inverse .btn{color:var(--color-text-inverse)}.on-inverse .btn-primary{background:var(--color-text-inverse);border-color:var(--color-text-inverse);color:var(--color-inverse)}.on-inverse .btn-primary:is(:hover,:focus-visible){background:var(--color-accent-on-inverse);border-color:var(--color-accent-on-inverse);color:var(--color-inverse)}.on-inverse .btn-secondary:is(:hover,:focus-visible){background:var(--color-text-inverse);border-color:var(--color-text-inverse);color:var(--color-inverse)}.btn-in-link,.btn-in-link:is(:hover,:focus-visible){color:inherit;background:0 0;border-color:currentColor}html[data-motion=reduced] .btn{transition-duration:0s}html[data-motion=reduced] .btn:active{transform:none}.t-lede,.t-body,.t-body-s,.t-label{font-family:var(--font-family)}.t-display-m-expanded{font-family:var(--font-family-expanded)}.t-display-xl,.t-display-l,.t-display-m,.t-display-s,.t-display-xs,.t-numeral{font-family:var(--font-family-display)}.t-slug{font-family:var(--font-mono);font-weight:500;font-stretch:100%}.t-display-xl{font-size:var(--type-display-xl-size);font-stretch:var(--type-display-xl-wdth);font-weight:var(--type-display-xl-wght);line-height:var(--type-display-xl-lh);letter-spacing:var(--type-display-xl-ls);text-transform:var(--type-display-xl-tt)}.t-display-l{font-size:var(--type-display-l-size);font-stretch:var(--type-display-l-wdth);font-weight:var(--type-display-l-wght);line-height:var(--type-display-l-lh);letter-spacing:var(--type-display-l-ls);text-transform:var(--type-display-l-tt)}.t-display-m{font-size:var(--type-display-m-size);font-stretch:var(--type-display-m-wdth);font-weight:var(--type-display-m-wght);line-height:var(--type-display-m-lh);letter-spacing:var(--type-display-m-ls);text-transform:var(--type-display-m-tt)}.t-display-m-expanded{font-size:var(--type-display-m-expanded-size);font-stretch:var(--type-display-m-expanded-wdth);font-weight:var(--type-display-m-expanded-wght);line-height:var(--type-display-m-expanded-lh);letter-spacing:var(--type-display-m-expanded-ls);text-transform:var(--type-display-m-expanded-tt)}.t-display-s{font-size:var(--type-display-s-size);font-stretch:var(--type-display-s-wdth);font-weight:var(--type-display-s-wght);line-height:var(--type-display-s-lh);letter-spacing:var(--type-display-s-ls);text-transform:var(--type-display-s-tt)}.t-display-xs{font-size:var(--type-display-xs-size);font-stretch:var(--type-display-xs-wdth);font-weight:var(--type-display-xs-wght);line-height:var(--type-display-xs-lh);letter-spacing:var(--type-display-xs-ls);text-transform:var(--type-display-xs-tt)}.t-numeral{font-size:var(--type-numeral-size);font-stretch:var(--type-numeral-wdth);font-weight:var(--type-numeral-wght);line-height:var(--type-numeral-lh);letter-spacing:var(--type-numeral-ls);text-transform:var(--type-numeral-tt);font-variant-numeric:tabular-nums}.t-lede{font-size:var(--type-lede-size);font-stretch:var(--type-lede-wdth);font-weight:var(--type-lede-wght);line-height:var(--type-lede-lh);letter-spacing:var(--type-lede-ls);text-transform:var(--type-lede-tt)}.t-body{font-size:var(--type-body-size);font-stretch:var(--type-body-wdth);font-weight:var(--type-body-wght);line-height:var(--type-body-lh);letter-spacing:var(--type-body-ls);text-transform:var(--type-body-tt)}.t-body-s{font-size:var(--type-body-s-size);font-stretch:var(--type-body-s-wdth);font-weight:var(--type-body-s-wght);line-height:var(--type-body-s-lh);letter-spacing:var(--type-body-s-ls);text-transform:var(--type-body-s-tt)}.t-label{font-size:var(--type-label-size);font-stretch:var(--type-label-wdth);font-weight:var(--type-label-wght);line-height:var(--type-label-lh);letter-spacing:var(--type-label-ls);text-transform:var(--type-label-tt)}.t-slug{font-size:var(--type-slug-size);line-height:var(--type-slug-lh);letter-spacing:var(--type-slug-ls);text-transform:var(--type-slug-tt);color:var(--color-text-muted)}.on-inverse .t-slug{color:var(--color-text-inverse-muted)}.sheet{padding-inline:max(var(--page-margin), calc((100% - var(--content-max)) / 2))}.grid{grid-template-columns:repeat(var(--grid-columns), minmax(0, 1fr));column-gap:var(--grid-gutter);display:grid}.rule-top{border-top:1px solid var(--color-text)}.on-inverse{background:var(--color-inverse);color:var(--color-text-inverse)}.tk-comment{color:var(--code-token-comment)}.tk-string{color:var(--code-token-string)}.tk-keyword{color:var(--code-token-keyword)}.tk-constant{color:var(--code-token-constant)}.tk-function{color:var(--code-token-function)}.tk-type{color:var(--code-token-type)}.tk-property{color:var(--code-token-property)}.tk-punctuation{color:var(--code-token-punctuation)}.tk-link{color:var(--code-token-link)}.tk-i{font-style:italic}.tk-b{font-weight:650}.tk-u{text-decoration:underline}.site-header[data-astro-cid-nen7h5rs]{background:var(--color-bg);border-bottom:1px solid var(--color-text);z-index:var(--z-nav);position:relative}.slug-bar[data-astro-cid-nen7h5rs]{justify-content:space-between;gap:var(--space-4);padding-block:var(--space-2);border-bottom:1px solid var(--color-rule-subtle);display:flex}.slug-centre[data-astro-cid-nen7h5rs]{text-align:center;display:none}.sheet-long[data-astro-cid-nen7h5rs]{display:none}.nav-row[data-astro-cid-nen7h5rs]{justify-content:space-between;align-items:center;gap:var(--space-5);min-height:60px;display:flex}.brand[data-astro-cid-nen7h5rs]{font-size:var(--wordmark);min-height:var(--target-min);align-items:center;display:inline-flex}.nav-inline[data-astro-cid-nen7h5rs]{align-items:center;gap:var(--space-3);margin:0;padding:0;list-style:none;display:none}.nav-link[data-astro-cid-nen7h5rs]{padding:0 var(--space-4);position:relative}.nav-link[data-astro-cid-nen7h5rs]:after{content:"";height:var(--rule-accent);background:var(--color-accent);transform-origin:0;transition:transform var(--dur-fast) var(--ease-press);position:absolute;bottom:0;left:0;right:0;transform:scaleX(0)}.nav-link[data-astro-cid-nen7h5rs][aria-current=page]:after{transition-duration:var(--dur-base);transform:scaleX(1)}.index-button[data-astro-cid-nen7h5rs]{min-height:var(--target-min);padding:0 var(--space-5);background:var(--color-inverse);color:var(--color-text-inverse);border-radius:var(--radius-control);cursor:pointer;border:0;align-items:center;display:inline-flex}.index-button[data-astro-cid-nen7h5rs]:active,.index-button[data-astro-cid-nen7h5rs].is-close{background:var(--color-accent-text)}@media (width>=900px){.slug-bar[data-astro-cid-nen7h5rs]{padding-block:10px}.slug-centre[data-astro-cid-nen7h5rs],.sheet-long[data-astro-cid-nen7h5rs]{display:inline}.sheet-short[data-astro-cid-nen7h5rs]{display:none}.nav-row[data-astro-cid-nen7h5rs]{min-height:56px}}@media (width>=1000px){.site-header[data-astro-cid-nen7h5rs][data-inline=yes] .nav-inline[data-astro-cid-nen7h5rs]{display:flex}.site-header[data-astro-cid-nen7h5rs][data-inline=yes] .index-button[data-astro-cid-nen7h5rs][data-index-open]{display:none}}.index-dialog[data-astro-cid-nen7h5rs]{background:var(--color-surface);width:100%;max-width:none;height:100%;max-height:none;color:var(--color-text);border:0;margin:0;padding:0}.index-dialog[data-astro-cid-nen7h5rs]::backdrop{background:0 0}.index-head[data-astro-cid-nen7h5rs]{background:var(--color-bg);border-bottom:1px solid var(--color-text);justify-content:space-between;align-items:center;min-height:60px;display:flex}.index-list[data-astro-cid-nen7h5rs]{padding-block:var(--space-5) var(--space-7);margin:0;list-style:none}.index-row[data-astro-cid-nen7h5rs]{padding-block:var(--space-4);border-top:1px solid var(--color-text);grid-template-columns:36px 1fr;align-items:baseline;display:grid}.index-row[data-astro-cid-nen7h5rs][aria-current=page]{box-shadow:inset var(--rule-accent) 0 0 var(--color-accent);padding-left:var(--space-3)}.index-dialog[data-astro-cid-nen7h5rs][open]{animation:index-in var(--dur-page) var(--ease-feed)}html[data-motion=reduced] .index-dialog[data-astro-cid-nen7h5rs][open]{animation:index-fade var(--dur-instant) linear}@keyframes index-in{0%{transform:translateY(100%)}}@keyframes index-fade{0%{opacity:0}}.site-footer[data-astro-cid-jo6i4kqk]{justify-content:space-between;gap:var(--space-7);padding-block:var(--space-section) var(--space-7);flex-direction:column;display:flex}.site-footer[data-astro-cid-jo6i4kqk].slim{padding-block:var(--space-5)}.footer-contact[data-astro-cid-jo6i4kqk]{gap:var(--space-4);flex-direction:column;display:flex}.footer-email[data-astro-cid-jo6i4kqk]{padding-block:var(--space-2);font-size:var(--footer-email-size);overflow-wrap:anywhere;color:var(--color-text-inverse);box-shadow:inset 0 calc(-1 * var(--rule-accent)) 0 var(--color-accent);transition:box-shadow var(--dur-base) var(--ease-press);align-self:flex-start;line-height:.9}.footer-email[data-astro-cid-jo6i4kqk]:hover,.footer-email[data-astro-cid-jo6i4kqk]:focus-visible{box-shadow:inset 0 -1.2em 0 var(--color-accent)}.footer-line[data-astro-cid-jo6i4kqk]{max-width:var(--measure);color:var(--color-text-inverse-muted)}.footer-base[data-astro-cid-jo6i4kqk]{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.footer-button[data-astro-cid-jo6i4kqk]{text-transform:none;overflow-wrap:anywhere;max-width:100%}.motion-switch[data-astro-cid-jo6i4kqk]{align-items:center;gap:var(--space-2);min-height:var(--target-min);padding:0 var(--space-3);color:var(--color-text-inverse);border:1px solid var(--color-control-border-inverse);border-radius:var(--radius-control);cursor:pointer;background:0 0;display:inline-flex}.motion-switch[data-astro-cid-jo6i4kqk]:active{background:var(--color-press-fill);transform:translateY(1px)}.motion-state[data-astro-cid-jo6i4kqk]{color:var(--color-text-inverse-muted)}.viewer[data-astro-cid-wtcqywq5]{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;padding:var(--space-4) var(--page-margin) var(--space-5);background:var(--color-inverse);color:var(--color-text-inverse);border:0;margin:0;display:none;overflow:hidden}.viewer[data-astro-cid-wtcqywq5][open]{row-gap:var(--space-4);animation:viewer-in var(--dur-base) var(--ease-press);grid-template-rows:auto minmax(0,1fr) auto;display:grid}.viewer[data-astro-cid-wtcqywq5]::backdrop{background:var(--color-inverse)}@keyframes viewer-in{0%{opacity:0}to{opacity:1}}.v-bar[data-astro-cid-wtcqywq5]{justify-content:space-between;align-items:center;gap:var(--space-4);color:var(--color-text-inverse-muted);display:flex}.v-steps[data-astro-cid-wtcqywq5]{gap:var(--space-3);flex-shrink:0;display:flex}.v-steps[data-astro-cid-wtcqywq5][hidden]{display:none}.v-btn[data-astro-cid-wtcqywq5]{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--target-min);min-width:var(--target-min);padding:0 var(--space-3);color:var(--color-text-inverse);border:1px solid var(--color-control-border-inverse);border-radius:var(--radius-control);cursor:pointer;transition:background-color var(--dur-fast) var(--ease-press);background:0 0;display:inline-flex}.v-btn[data-astro-cid-wtcqywq5]:is(:hover,:focus-visible){background:var(--color-press-fill)}.v-btn[data-astro-cid-wtcqywq5]:active{transform:translateY(1px)}.v-btn[data-astro-cid-wtcqywq5][disabled]{opacity:.35;cursor:default}.v-btn[data-astro-cid-wtcqywq5][disabled]:is(:hover,:focus-visible){background:0 0}.v-stage[data-astro-cid-wtcqywq5]{min-height:0;padding:var(--mark-clearance);place-items:center;display:grid}.v-frame[data-astro-cid-wtcqywq5]{min-width:0;min-height:0;display:block;position:relative}.v-frame[data-astro-cid-wtcqywq5] img[data-astro-cid-wtcqywq5]{width:100%;height:100%;display:block}.v-slug[data-astro-cid-wtcqywq5]{color:var(--color-text-inverse-muted);min-height:1.3em}.marks[data-astro-cid-wtcqywq5]{pointer-events:none;--mark-color:var(--color-text-inverse);position:absolute;inset:0}.t[data-astro-cid-wtcqywq5]{background:var(--mark-color);position:absolute}.tl-h[data-astro-cid-wtcqywq5],.tr-h[data-astro-cid-wtcqywq5],.bl-h[data-astro-cid-wtcqywq5],.br-h[data-astro-cid-wtcqywq5]{width:var(--mark-length);height:var(--mark-weight)}.tl-v[data-astro-cid-wtcqywq5],.tr-v[data-astro-cid-wtcqywq5],.bl-v[data-astro-cid-wtcqywq5],.br-v[data-astro-cid-wtcqywq5]{width:var(--mark-weight);height:var(--mark-length)}.tl-h[data-astro-cid-wtcqywq5]{top:0;left:calc(-1 * var(--mark-clearance))}.tr-h[data-astro-cid-wtcqywq5]{top:0;right:calc(-1 * var(--mark-clearance))}.bl-h[data-astro-cid-wtcqywq5]{bottom:0;left:calc(-1 * var(--mark-clearance))}.br-h[data-astro-cid-wtcqywq5]{bottom:0;right:calc(-1 * var(--mark-clearance))}.tl-v[data-astro-cid-wtcqywq5]{left:0;top:calc(-1 * var(--mark-clearance))}.tr-v[data-astro-cid-wtcqywq5]{right:0;top:calc(-1 * var(--mark-clearance))}.bl-v[data-astro-cid-wtcqywq5]{left:0;bottom:calc(-1 * var(--mark-clearance))}.br-v[data-astro-cid-wtcqywq5]{right:0;bottom:calc(-1 * var(--mark-clearance))}.v-frame[data-astro-cid-wtcqywq5].is-plate .marks[data-astro-cid-wtcqywq5]{display:none}.v-frame[data-astro-cid-wtcqywq5].is-plate img[data-astro-cid-wtcqywq5]{outline:1px solid var(--color-rule-inverse-subtle);outline-offset:-1px}@media (height<=380px){.marks[data-astro-cid-wtcqywq5]{display:none}}html[data-motion=reduced] .viewer[data-astro-cid-wtcqywq5][open]{animation:none}html[data-motion=reduced] .v-btn[data-astro-cid-wtcqywq5]{transition-duration:0s}html[data-motion=reduced] .v-btn[data-astro-cid-wtcqywq5]:active{transform:none}@media (width<=599px){.v-bar-base[data-astro-cid-wtcqywq5]{align-items:stretch;gap:var(--space-3);flex-direction:column}.v-steps[data-astro-cid-wtcqywq5]>.v-btn[data-astro-cid-wtcqywq5]{flex:1}}
