@import url('https://fonts.googleapis.com/css2?family=Fira+Code:wght@300..700&family=Noto+Sans:ital,wght@0,100..900;1,100..900&family=Noto+Serif:ital,wght@0,100..900;1,100..900&display=swap');@import url('https://cdnjs.cloudflare.com/ajax/libs/font-awesome/7.0.0/css/all.min.css');:root{--letter-spacing:0.5em;--muted-transparency:0.75;--disabled-transparency:0.75;--border-roundness:0.5em;--box-shadow:rgba(0, 0, 0, 0.025) 0 6px 24px 0px, rgba(0, 0, 0, 0.028) 0 0 0 1px;--inline-block-spacing:0.25em;--border-thin-width:0.125em}:root{--padding-min:0.1em;--padding-xxs:0.125em;--padding-xs:0.25em;--padding-sm:0.5em;--padding-md:1em;--padding-lg:1.5em;--padding-xl:2em}:root{--transition-fast:150ms;--transition-medium:300ms;--transition-slow:500ms}@media (prefers-reduce-motion: reduce) {:root{--transition-fast:0ms;--transition-medium:0ms;--transition-slow:0ms;}}@media (prefers-color-scheme: dark) {:root{--box-shadow:none;}}.anim-fast{--anim-duration:var(--transition-fast)}.anim-medium{--anim-duration:var(--transition-medium)}.anim-slow{--anim-duration:var(--transition-slow)}.anim-fade-in{animation:fadeIn var(--anim-duration) ease forwards}.anim-fade-out{animation:fadeOut var(--anim-duration) ease forwards}.anim-rotate{animation:rotateAnim var(--anim-duration) ease forwards}.anim-grow-down{animation:growDown var(--anim-duration) ease forwards}.anim-shrink-up{animation:shrinkUp var(--anim-duration) ease forwards}@keyframes growDown{0%{transform:scaleY(0);transform-origin:top;}100%{transform:scaleY(1);transform-origin:top;}}@keyframes shrinkUp{0%{transform:scaleY(1);transform-origin:top;}100%{transform:scaleY(0);transform-origin:top;}}@keyframes fadeIn{0%{opacity:0;}100%{opacity:1;}}@keyframes fadeOut{0%{opacity:1;}100%{opacity:0;}}@keyframes rotateAnim{0%{transform:rotate(0deg);}100%{transform:rotate(180deg);}}:root{--font-sans:'Noto Sans', sans-serif;--font-serif:'Noto Serif', serif;--font-mono:'Noto Sans Mono', monospace;--font-weight-light:300;--font-weight-regular:400;--font-weight-medium:500;--font-weight-bold:700;--font-family:var(--font-sans), var(--font-serif), var(--font-mono)}html,body{font-variant-numeric:slashed-zero;font-family:var(--font-family);font-weight:var(--font-weight-regular);font-size:100%;line-height:1.5;color:var(--text)}.text-bg{color:var(--bg)}.text-fg{color:var(--fg)}.text-text{color:var(--text)}.text-primary{color:var(--primary)}.text-secondary{color:var(--secondary)}.text-accent{color:var(--accent)}.text-negative{color:var(--negative)}.text-warning{color:var(--warning)}.text-info{color:var(--info)}.text-positive{color:var(--positive)}.text-md{font-size:1rem}h1,h2,h3,h4,h5,h6{text-align:initial}h1,h2,h3,h4,h5,h6,.text-h1,.text-h2,.text-h3,.text-h4,.text-h5,.text-h6{font-weight:var(--font-weight-bold)}h1,.text-h1,.text-huge{font-size:2.489em}h2,.text-h2,.text-xxxl{font-size:2.074em}h3,.text-h3,.text-xxl{font-size:1.728em}h4,.text-h4,.text-xl{font-size:1.44em}h5,.text-h5,.text-l{font-size:1.2em}h6,.text-h6{font-size:1em}small,.text-s{font-size:0.833em}.text-strong,.text-bold,strong{font-weight:var(--font-weight-bold)}em,i,.text-italic{font-style:italic}u,.text-underline{text-decoration:underline}code,.text-mono{font-family:var(--font-mono)}.text-serif{font-family:var(--font-serif)}.text-sans{font-family:var(--font-sans)}.text-muted{opacity:var(--muted-transparency)}.text-center{text-align:center}.text-right{text-align:right}.text-left{text-align:left}.text-justify{text-align:justify}.text-inline{display:inline}.text-block{display:block}body{background-color:var(--bg)}body,html{margin:0;padding:0;scroll-behavior:smooth}body{min-height:100vh;display:grid}body:has(.header){grid-template-rows:auto 1fr auto}body:not(:has(.header)){grid-template-rows:1fr auto}.main{max-width:80ch;width:100%;margin:0 auto;padding:var(--padding-md)}.hero{background-color:var(--primary);color:var(--primary-fg);text-align:center;padding:var(--padding-md);padding-bottom:var(--padding-lg)}.hero-title{font-size:3rem;margin:0}.hero-subtitle{font-size:1.5rem;margin:0;opacity:var(--muted-transparency)}*,*::before,*::after {box-sizing: border-box}.block-center{display:block;margin-left:auto;margin-right:auto}.full-width{width:100%}.stretch-width{width:100%;width:stretch}.icon.inline{display:inline;margin-inline-end:0.75ch}.icon.inline.right{margin-inline-end:initial;margin-inline-start:0.75ch}.icon.kw-bg{color:var(--bg)}.icon.kw-fg{color:var(--fg)}.icon.kw-text{color:var(--text)}.icon.kw-primary{color:var(--primary)}.icon.kw-secondary{color:var(--secondary)}.icon.kw-accent{color:var(--accent)}.icon.kw-negative{color:var(--negative)}.icon.kw-warning{color:var(--warning)}.icon.kw-info{color:var(--info)}.icon.kw-positive{color:var(--positive)}.avatar{--avatar-size:2em;--avatar-bg:var(--primary-90);--avatar-fg:var(--primary-10);--avatar-border-radius:var(--border-roundness);position:relative;display:flex;align-items:center;justify-content:center;line-height:1;overflow:hidden;width:var(--avatar-size);height:var(--avatar-size);background-color:var(--avatar-bg);color:var(--avatar-fg);font-size:1.25em;border-radius:var(--avatar-border-radius);user-select:none;margin:var(--padding-sm);box-shadow:var(--box-shadow)}.avatar.circular{--avatar-border-radius:50%}.avatar.square{--avatar-border-radius:0}.avatar.rounded{--avatar-border-radius:var(--border-roundness)}.avatar.kw-bg{--avatar-bg:var(--bg-90);--avatar-fg:var(--bg-10)}.avatar.kw-fg{--avatar-bg:var(--fg-90);--avatar-fg:var(--fg-10)}.avatar.kw-text{--avatar-bg:var(--text-90);--avatar-fg:var(--text-10)}.avatar.kw-primary{--avatar-bg:var(--primary-90);--avatar-fg:var(--primary-10)}.avatar.kw-secondary{--avatar-bg:var(--secondary-90);--avatar-fg:var(--secondary-10)}.avatar.kw-accent{--avatar-bg:var(--accent-90);--avatar-fg:var(--accent-10)}.avatar.kw-negative{--avatar-bg:var(--negative-90);--avatar-fg:var(--negative-10)}.avatar.kw-warning{--avatar-bg:var(--warning-90);--avatar-fg:var(--warning-10)}.avatar.kw-info{--avatar-bg:var(--info-90);--avatar-fg:var(--info-10)}.avatar.kw-positive{--avatar-bg:var(--positive-90);--avatar-fg:var(--positive-10)}.avatar.inline{margin:0;display:inline-flex;vertical-align:baseline;margin-inline:var(--letter-spacing) var(--letter-spacing)}.avatar.inline:empty{vertical-align:middle}.avatar-huge{font-size:3.739em}.avatar-xxxl{font-size:3.324em}.avatar-xxl{font-size:2.978em}.avatar-xl{font-size:2.69em}.avatar-l{font-size:2.45em}.avatar-md{font-size:1.25em}.avatar-s{font-size:1em}.avatar[data-image]:before{content:'';position:absolute;width:100%;height:100%;top:0;left:0;background-image:var(--avatar-src);background-color:transparent;background-size:cover;background-position:center;background-repeat:no-repeat}.anchor{cursor:pointer}.anchor.subtle{text-decoration:none}.anchor:not(.subtle):hover,.anchor:not(.subtle):active,.anchor:not(.subtle):focus{text-decoration:underline}.anchor.kw-bg{color:var(--bg);}.anchor.kw-bg:visited,.anchor.kw-bg:active,.anchor.kw-bg:hover,.anchor.kw-bg:focus{color:var(--bg-50)}.anchor.kw-fg{color:var(--fg);}.anchor.kw-fg:visited,.anchor.kw-fg:active,.anchor.kw-fg:hover,.anchor.kw-fg:focus{color:var(--fg-50)}.anchor.kw-text{color:var(--text);}.anchor.kw-text:visited,.anchor.kw-text:active,.anchor.kw-text:hover,.anchor.kw-text:focus{color:var(--text-50)}.anchor.kw-primary{color:var(--primary);}.anchor.kw-primary:visited,.anchor.kw-primary:active,.anchor.kw-primary:hover,.anchor.kw-primary:focus{color:var(--primary-50)}.anchor.kw-secondary{color:var(--secondary);}.anchor.kw-secondary:visited,.anchor.kw-secondary:active,.anchor.kw-secondary:hover,.anchor.kw-secondary:focus{color:var(--secondary-50)}.anchor.kw-accent{color:var(--accent);}.anchor.kw-accent:visited,.anchor.kw-accent:active,.anchor.kw-accent:hover,.anchor.kw-accent:focus{color:var(--accent-50)}.anchor.kw-negative{color:var(--negative);}.anchor.kw-negative:visited,.anchor.kw-negative:active,.anchor.kw-negative:hover,.anchor.kw-negative:focus{color:var(--negative-50)}.anchor.kw-warning{color:var(--warning);}.anchor.kw-warning:visited,.anchor.kw-warning:active,.anchor.kw-warning:hover,.anchor.kw-warning:focus{color:var(--warning-50)}.anchor.kw-info{color:var(--info);}.anchor.kw-info:visited,.anchor.kw-info:active,.anchor.kw-info:hover,.anchor.kw-info:focus{color:var(--info-50)}.anchor.kw-positive{color:var(--positive);}.anchor.kw-positive:visited,.anchor.kw-positive:active,.anchor.kw-positive:hover,.anchor.kw-positive:focus{color:var(--positive-50)}.card-header{margin-bottom:var(--padding-sm)}.card-footer{margin-top:var(--padding-md);padding-top:var(--padding-sm);border-top:var(--border-thin-width) solid var(--border)}.card{--card-bg:var(--bg);--card-fg:var(--text);--card-border:var(--border);--card-border-radius:var(--border-roundness);padding:var(--padding-sm) var(--padding-md);background-color:var(--card-bg);color:var(--card-fg);border:var(--border-thin-width) solid var(--card-border);border-radius:var(--card-border-radius);box-shadow:var(--box-shadow);margin:var(--padding-md) 0}.card.rounded{border-radius:var(--border-roundness)}.card.square{border-radius:0}.card.compact{margin:0;padding:var(--padding-sm)}.card.kw-bg{--card-border:var(--bg);--card-bg:var(--bg-90);--card-fg:var(--bg-10)}.card.kw-fg{--card-border:var(--fg);--card-bg:var(--fg-90);--card-fg:var(--fg-10)}.card.kw-text{--card-border:var(--text);--card-bg:var(--text-90);--card-fg:var(--text-10)}.card.kw-primary{--card-border:var(--primary);--card-bg:var(--primary-90);--card-fg:var(--primary-10)}.card.kw-secondary{--card-border:var(--secondary);--card-bg:var(--secondary-90);--card-fg:var(--secondary-10)}.card.kw-accent{--card-border:var(--accent);--card-bg:var(--accent-90);--card-fg:var(--accent-10)}.card.kw-negative{--card-border:var(--negative);--card-bg:var(--negative-90);--card-fg:var(--negative-10)}.card.kw-warning{--card-border:var(--warning);--card-bg:var(--warning-90);--card-fg:var(--warning-10)}.card.kw-info{--card-border:var(--info);--card-bg:var(--info-90);--card-fg:var(--info-10)}.card.kw-positive{--card-border:var(--positive);--card-bg:var(--positive-90);--card-fg:var(--positive-10)}.card.borderless{border:none;box-shadow:none}.card.glass{backdrop-filter:blur(3px);background-color:transparent;background-color:color-mix(in srgb,var(--card-bg),transparent 90%)}.card-group{display:flex;gap:var(--inline-block-spacing)}.card-group.grid{display:grid}.card-group.grid.vertical{grid-auto-flow: row}.card-group.flex.vertical{flex-direction: column}.card-group.grid.horizontal{grid-auto-flow: column}.card-group.flex.horizontal{flex-direction: row}.card-group.grid.vertical.wrap{grid-template-columns:repeat(auto-fit,minmax(200px, 1fr))}.card-group.grid.horizontal.wrap{grid-template-rows:repeat(auto-fit, minmax(200px, 1fr))}.card-group.flex.wrap{flex-wrap:wrap}