@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}.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%)}.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}.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)}.btn{--btn-pad-v:var(--padding-sm);--btn-pad-h:var(--padding-md);--border-radius:var(--border-roundness);--btn-interact-translateY:0.1em;--btn-bg:var(--primary);--btn-fg:var(--primary-fg);--btn-active-bg:var(--primary-10);--btn-active-fg:var(--primary-90);background-color:var(--btn-bg);color:var(--btn-fg);display:inline-block;padding:var(--btn-pad-v) var(--btn-pad-h);text-decoration:none;border-radius:var(--border-radius);transition:all 0.2s ease-in-out;border:none;cursor:pointer;user-select:none;margin-top:0.1em;margin-bottom:0.1em;margin-left:var(--inline-block-spacing);margin-right:var(--inline-block-spacing);font-size:1em}.btn:hover,.btn:focus{transform:translateY(calc(-1 * var(--btn-interact-translateY)))}.btn:not(.disabled):not(:disabled):active,.btn.active{background-color:var(--btn-active-bg);color:var(--btn-active-fg);transform:translateY(var(--btn-interact-translateY))}.btn.kw-bg{--btn-bg:var(--bg);--btn-fg:var(--bg-fg);--btn-active-bg:var(--bg-10);--btn-active-fg:var(--bg-90)}.btn.kw-fg{--btn-bg:var(--fg);--btn-fg:var(--fg-fg);--btn-active-bg:var(--fg-10);--btn-active-fg:var(--fg-90)}.btn.kw-text{--btn-bg:var(--text);--btn-fg:var(--text-fg);--btn-active-bg:var(--text-10);--btn-active-fg:var(--text-90)}.btn.kw-primary{--btn-bg:var(--primary);--btn-fg:var(--primary-fg);--btn-active-bg:var(--primary-10);--btn-active-fg:var(--primary-90)}.btn.kw-secondary{--btn-bg:var(--secondary);--btn-fg:var(--secondary-fg);--btn-active-bg:var(--secondary-10);--btn-active-fg:var(--secondary-90)}.btn.kw-accent{--btn-bg:var(--accent);--btn-fg:var(--accent-fg);--btn-active-bg:var(--accent-10);--btn-active-fg:var(--accent-90)}.btn.kw-negative{--btn-bg:var(--negative);--btn-fg:var(--negative-fg);--btn-active-bg:var(--negative-10);--btn-active-fg:var(--negative-90)}.btn.kw-warning{--btn-bg:var(--warning);--btn-fg:var(--warning-fg);--btn-active-bg:var(--warning-10);--btn-active-fg:var(--warning-90)}.btn.kw-info{--btn-bg:var(--info);--btn-fg:var(--info-fg);--btn-active-bg:var(--info-10);--btn-active-fg:var(--info-90)}.btn.kw-positive{--btn-bg:var(--positive);--btn-fg:var(--positive-fg);--btn-active-bg:var(--positive-10);--btn-active-fg:var(--positive-90)}.btn.outline{background-color:transparent;color:var(--btn-bg);border:var(--border-thin-width) solid var(--btn-bg);padding:calc(var(--btn-pad-v) - var(--border-thin-width)) calc(var(--btn-pad-h) - var(--border-thin-width))}.btn.outline:not(.disabled):not(:disabled):active,.btn.outline.active{background-color:var(--btn-active-bg);color:var(--btn-active-fg);border-color:var(--btn-active-bg)}.btn.empty{background-color:transparent;color:var(--btn-bg)}.btn.empty:not(.disabled):not(:disabled):active,.btn.empty.active{background-color:var(--btn-active-bg);color:var(--btn-active-fg)}.btn.disabled,.btn:disabled{opacity:var(--disabled-transparency);cursor:not-allowed;transform:none;pointer-events:none}.btn.icon-only{--btn-pad-v: var(--padding-xs);--btn-pad-h: var(--padding-xs)}.btn.circular{--border-radius:9999em}.btn.square{--border-radius:0}.btn.rounded{--border-radius:0.5em}.btn-group{display:inline-flex;margin-left:var(--inline-block-spacing);margin-right:var(--inline-block-spacing);gap:0.75em}.btn-group.joined:not(.vertical) .btn:not(:first-child),.btn-group.joined.horizontal .btn:not(:first-child){margin-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.btn-group.joined:not(.vertical) .btn:not(:last-child),.btn-group.joined.horizontal .btn:not(:last-child){margin-right:0;border-top-right-radius:0;border-bottom-right-radius:0}.btn-group.joined{gap:0}.btn-group.joined.vertical{flex-direction:column}.btn-group.joined.vertical .btn:not(:first-child){margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.btn-group.joined.vertical .btn:not(:last-child){margin-bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0}.btn-group.vertical{flex-direction:column}.btn-group.unique:has(>.btn.single-use.active){pointer-events:none}.accordion{--accordion-bg:var(--bg);--accordion-border:var(--border);box-shadow:var(--box-shadow);background-color:var(--accordion-bg);border:var(--border-thin-width) solid var(--accordion-border);border-radius:0;padding:var(--padding-sm);margin:var(--padding-sm)}.accordion.borderless{border:none;box-shadow:none}.accordion.kw-bg .accordion-mark{color:var(--bg)}.accordion.kw-fg .accordion-mark{color:var(--fg)}.accordion.kw-text .accordion-mark{color:var(--text)}.accordion.kw-primary .accordion-mark{color:var(--primary)}.accordion.kw-secondary .accordion-mark{color:var(--secondary)}.accordion.kw-accent .accordion-mark{color:var(--accent)}.accordion.kw-negative .accordion-mark{color:var(--negative)}.accordion.kw-warning .accordion-mark{color:var(--warning)}.accordion.kw-info .accordion-mark{color:var(--info)}.accordion.kw-positive .accordion-mark{color:var(--positive)}.accordion>:not(.accordion-sum){transition: max-height var(--transition-slow) ease-in-out;max-height:1000px;overflow:hidden}.accordion:not([open])>:not(.accordion-sum){max-height:0;transition:none}.accordion-sum{position:relative;list-style:none;cursor:pointer;padding:var(--padding-sm) 0;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:var(--letter-spacing)}.accordion-sum.mark-left{flex-direction:row-reverse}.accordion[open] .accordion-sum{padding-bottom:calc(var(--padding-sm)*2);margin-bottom:var(--padding-sm)}.accordion[open] .accordion-sum::after{content:"";position:absolute;bottom:0;left:var(--padding-sm);width:calc(100% - var(--padding-sm) * 2);background-color:var(--border);height:calc(var(--border-thin-width)/2)}.accordion-mark{transition:rotate var(--transition-medium);--mark-rotation:180deg}.accordion[open] .accordion-sum .accordion-mark{rotate:var(--mark-rotation)}.dialog{--dialog-bg:var(--bg);--dialog-fg:var(--text);--dialog-border:var(--border);--dialog-border-radius:var(--border-roundness);padding:var(--padding-sm) var(--padding-md);background-color:var(--dialog-bg);color:var(--dialog-fg);border:var(--border-thin-width) solid var(--dialog-border);border-radius:var(--dialog-border-radius);box-shadow:var(--box-shadow);max-height:90%;width:calc(80ch + (var(--padding-md)*2))}.dialog::backdrop{backdrop-filter:blur(3px) brightness(0.75)}.dialog.rounded{border-radius:var(--border-roundness)}.dialog.square{border-radius:0}.dialog.kw-bg{--dialog-border:var(--bg);--dialog-bg:var(--bg-90);--dialog-fg:var(--bg-10)}.dialog.kw-fg{--dialog-border:var(--fg);--dialog-bg:var(--fg-90);--dialog-fg:var(--fg-10)}.dialog.kw-text{--dialog-border:var(--text);--dialog-bg:var(--text-90);--dialog-fg:var(--text-10)}.dialog.kw-primary{--dialog-border:var(--primary);--dialog-bg:var(--primary-90);--dialog-fg:var(--primary-10)}.dialog.kw-secondary{--dialog-border:var(--secondary);--dialog-bg:var(--secondary-90);--dialog-fg:var(--secondary-10)}.dialog.kw-accent{--dialog-border:var(--accent);--dialog-bg:var(--accent-90);--dialog-fg:var(--accent-10)}.dialog.kw-negative{--dialog-border:var(--negative);--dialog-bg:var(--negative-90);--dialog-fg:var(--negative-10)}.dialog.kw-warning{--dialog-border:var(--warning);--dialog-bg:var(--warning-90);--dialog-fg:var(--warning-10)}.dialog.kw-info{--dialog-border:var(--info);--dialog-bg:var(--info-90);--dialog-fg:var(--info-10)}.dialog.kw-positive{--dialog-border:var(--positive);--dialog-bg:var(--positive-90);--dialog-fg:var(--positive-10)}.callout{--callout-fg:var(--text);--callout-bg:var(--bg);--callout-border:var(--callout-fg);color:var(--callout-fg);background-color:var(--callout-bg);border:var(--border-thin-width) solid var(--callout-border);border-radius:var(--border-roundness);margin:var(--padding-sm) 0;padding:var(--padding-sm) var(--padding-sm);box-shadow:var(--box-shadow);gap:var(--letter-spacing);display:grid;grid-template-areas:"icon content";grid-template-columns:auto 1fr auto;align-items:baseline}.callout.kw-bg{--callout-bg:var(--bg-90);--callout-fg:var(--bg-10);--callout-border:var(--bg);}.callout.kw-fg{--callout-bg:var(--fg-90);--callout-fg:var(--fg-10);--callout-border:var(--fg);}.callout.kw-text{--callout-bg:var(--text-90);--callout-fg:var(--text-10);--callout-border:var(--text);}.callout.kw-primary{--callout-bg:var(--primary-90);--callout-fg:var(--primary-10);--callout-border:var(--primary);}.callout.kw-secondary{--callout-bg:var(--secondary-90);--callout-fg:var(--secondary-10);--callout-border:var(--secondary);}.callout.kw-accent{--callout-bg:var(--accent-90);--callout-fg:var(--accent-10);--callout-border:var(--accent);}.callout.kw-negative{--callout-bg:var(--negative-90);--callout-fg:var(--negative-10);--callout-border:var(--negative);}.callout.kw-warning{--callout-bg:var(--warning-90);--callout-fg:var(--warning-10);--callout-border:var(--warning);}.callout.kw-info{--callout-bg:var(--info-90);--callout-fg:var(--info-10);--callout-border:var(--info);}.callout.kw-positive{--callout-bg:var(--positive-90);--callout-fg:var(--positive-10);--callout-border:var(--positive);}.callout .callout-icon{grid-area:icon}.callout .callout-content{grid-area:content}.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)}