@layer typedoc {
	:root {
		--dim-toolbar-contents-height: 2.5rem;
		--dim-toolbar-border-bottom-width: 1px;
		--dim-header-height: calc(
			var(--dim-toolbar-border-bottom-width) + var(--dim-toolbar-contents-height)
		);

		/* 0rem For mobile; unit is required for calculation in `calc` */
		--dim-container-main-margin-y: 0rem;

		--dim-footer-height: 3.5rem;

		--modal-animation-duration: 0.2s;
	}

	:root {
		/* Light */
		--light-color-background: #f2f4f8;
		--light-color-background-secondary: #eff0f1;
		/* Not to be confused with [:active](https://developer.mozilla.org/en-US/docs/Web/CSS/:active) */
		--light-color-background-active: #d6d8da;
		--light-color-background-warning: #e6e600;
		--light-color-warning-text: #222;
		--light-color-accent: #c5c7c9;
		--light-color-active-menu-item: var(--light-color-background-active);
		--light-color-text: #222;
		--light-color-contrast-text: #000;
		--light-color-text-aside: #5e5e5e;

		--light-color-icon-background: var(--light-color-background);
		--light-color-icon-text: var(--light-color-text);

		--light-color-comment-tag-text: var(--light-color-text);
		--light-color-comment-tag: var(--light-color-background);

		--light-color-link: #1f70c2;
		--light-color-focus-outline: #3584e4;

		--light-color-ts-keyword: #056bd6;
		--light-color-ts-project: #b111c9;
		--light-color-ts-module: var(--light-color-ts-project);
		--light-color-ts-namespace: var(--light-color-ts-project);
		--light-color-ts-enum: #7e6f15;
		--light-color-ts-enum-member: var(--light-color-ts-enum);
		--light-color-ts-variable: #4760ec;
		--light-color-ts-function: #572be7;
		--light-color-ts-class: #1f70c2;
		--light-color-ts-interface: #108024;
		--light-color-ts-constructor: var(--light-color-ts-class);
		--light-color-ts-property: #9f5f30;
		--light-color-ts-method: #be3989;
		--light-color-ts-reference: #ff4d82;
		--light-color-ts-call-signature: var(--light-color-ts-method);
		--light-color-ts-index-signature: var(--light-color-ts-property);
		--light-color-ts-constructor-signature: var(--light-color-ts-constructor);
		--light-color-ts-parameter: var(--light-color-ts-variable);
		/* type literal not included as links will never be generated to it */
		--light-color-ts-type-parameter: #a55c0e;
		--light-color-ts-accessor: #c73c3c;
		--light-color-ts-get-signature: var(--light-color-ts-accessor);
		--light-color-ts-set-signature: var(--light-color-ts-accessor);
		--light-color-ts-type-alias: #d51270;
		/* reference not included as links will be colored with the kind that it points to */
		--light-color-document: #000000;

		--light-color-alert-note: #0969d9;
		--light-color-alert-tip: #1a7f37;
		--light-color-alert-important: #8250df;
		--light-color-alert-warning: #9a6700;
		--light-color-alert-caution: #cf222e;

		--light-external-icon: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' width='10' height='10'><path fill-opacity='0' stroke='%23000' stroke-width='10' d='m43,35H5v60h60V57M45,5v10l10,10-30,30 20,20 30-30 10,10h10V5z'/></svg>");
		--light-color-scheme: light;
	}

	:root {
		/* Dark */
		--dark-color-background: #2b2e33;
		--dark-color-background-secondary: #1e2024;
		/* Not to be confused with [:active](https://developer.mozilla.org/en-US/docs/Web/CSS/:active) */
		--dark-color-background-active: #5d5d6a;
		--dark-color-background-warning: #bebe00;
		--dark-color-warning-text: #222;
		--dark-color-accent: #9096a2;
		--dark-color-active-menu-item: var(--dark-color-background-active);
		--dark-color-text: #f5f5f5;
		--dark-color-contrast-text: #ffffff;
		--dark-color-text-aside: #dddddd;

		--dark-color-icon-background: var(--dark-color-background-secondary);
		--dark-color-icon-text: var(--dark-color-text);

		--dark-color-comment-tag-text: var(--dark-color-text);
		--dark-color-comment-tag: var(--dark-color-background);

		--dark-color-link: #00aff4;
		--dark-color-focus-outline: #4c97f2;

		--dark-color-ts-keyword: #3399ff;
		--dark-color-ts-project: #e358ff;
		--dark-color-ts-module: var(--dark-color-ts-project);
		--dark-color-ts-namespace: var(--dark-color-ts-project);
		--dark-color-ts-enum: #f4d93e;
		--dark-color-ts-enum-member: var(--dark-color-ts-enum);
		--dark-color-ts-variable: #798dff;
		--dark-color-ts-function: #a280ff;
		--dark-color-ts-class: #8ac4ff;
		--dark-color-ts-interface: #6cff87;
		--dark-color-ts-constructor: var(--dark-color-ts-class);
		--dark-color-ts-property: #ff984d;
		--dark-color-ts-method: #ff4db8;
		--dark-color-ts-reference: #ff4d82;
		--dark-color-ts-call-signature: var(--dark-color-ts-method);
		--dark-color-ts-index-signature: var(--dark-color-ts-property);
		--dark-color-ts-constructor-signature: var(--dark-color-ts-constructor);
		--dark-color-ts-parameter: var(--dark-color-ts-variable);
		/* type literal not included as links will never be generated to it */
		--dark-color-ts-type-parameter: #e07d13;
		--dark-color-ts-accessor: #ff6060;
		--dark-color-ts-get-signature: var(--dark-color-ts-accessor);
		--dark-color-ts-set-signature: var(--dark-color-ts-accessor);
		--dark-color-ts-type-alias: #ff6492;
		/* reference not included as links will be colored with the kind that it points to */
		--dark-color-document: #ffffff;

		--dark-color-alert-note: #0969d9;
		--dark-color-alert-tip: #1a7f37;
		--dark-color-alert-important: #8250df;
		--dark-color-alert-warning: #9a6700;
		--dark-color-alert-caution: #cf222e;

		--dark-external-icon: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' width='10' height='10'><path fill-opacity='0' stroke='%23fff' stroke-width='10' d='m43,35H5v60h60V57M45,5v10l10,10-30,30 20,20 30-30 10,10h10V5z'/></svg>");
		--dark-color-scheme: dark;
	}

	@media (prefers-color-scheme: light) {
		:root {
			--color-background: var(--light-color-background);
			--color-background-secondary: var(--light-color-background-secondary);
			--color-background-active: var(--light-color-background-active);
			--color-background-warning: var(--light-color-background-warning);
			--color-warning-text: var(--light-color-warning-text);
			--color-accent: var(--light-color-accent);
			--color-active-menu-item: var(--light-color-active-menu-item);
			--color-text: var(--light-color-text);
			--color-contrast-text: var(--light-color-contrast-text);
			--color-text-aside: var(--light-color-text-aside);

			--color-icon-background: var(--light-color-icon-background);
			--color-icon-text: var(--light-color-icon-text);

			--color-comment-tag-text: var(--light-color-text);
			--color-comment-tag: var(--light-color-background);

			--color-link: var(--light-color-link);
			--color-focus-outline: var(--light-color-focus-outline);

			--color-ts-keyword: var(--light-color-ts-keyword);
			--color-ts-project: var(--light-color-ts-project);
			--color-ts-module: var(--light-color-ts-module);
			--color-ts-namespace: var(--light-color-ts-namespace);
			--color-ts-enum: var(--light-color-ts-enum);
			--color-ts-enum-member: var(--light-color-ts-enum-member);
			--color-ts-variable: var(--light-color-ts-variable);
			--color-ts-function: var(--light-color-ts-function);
			--color-ts-class: var(--light-color-ts-class);
			--color-ts-interface: var(--light-color-ts-interface);
			--color-ts-constructor: var(--light-color-ts-constructor);
			--color-ts-property: var(--light-color-ts-property);
			--color-ts-method: var(--light-color-ts-method);
			--color-ts-reference: var(--light-color-ts-reference);
			--color-ts-call-signature: var(--light-color-ts-call-signature);
			--color-ts-index-signature: var(--light-color-ts-index-signature);
			--color-ts-constructor-signature: var(--light-color-ts-constructor-signature);
			--color-ts-parameter: var(--light-color-ts-parameter);
			--color-ts-type-parameter: var(--light-color-ts-type-parameter);
			--color-ts-accessor: var(--light-color-ts-accessor);
			--color-ts-get-signature: var(--light-color-ts-get-signature);
			--color-ts-set-signature: var(--light-color-ts-set-signature);
			--color-ts-type-alias: var(--light-color-ts-type-alias);
			--color-document: var(--light-color-document);

			--color-alert-note: var(--light-color-alert-note);
			--color-alert-tip: var(--light-color-alert-tip);
			--color-alert-important: var(--light-color-alert-important);
			--color-alert-warning: var(--light-color-alert-warning);
			--color-alert-caution: var(--light-color-alert-caution);

			--external-icon: var(--light-external-icon);
			--color-scheme: var(--light-color-scheme);
		}
	}

	@media (prefers-color-scheme: dark) {
		:root {
			--color-background: var(--dark-color-background);
			--color-background-secondary: var(--dark-color-background-secondary);
			--color-background-active: var(--dark-color-background-active);
			--color-background-warning: var(--dark-color-background-warning);
			--color-warning-text: var(--dark-color-warning-text);
			--color-accent: var(--dark-color-accent);
			--color-active-menu-item: var(--dark-color-active-menu-item);
			--color-text: var(--dark-color-text);
			--color-contrast-text: var(--dark-color-contrast-text);
			--color-text-aside: var(--dark-color-text-aside);

			--color-icon-background: var(--dark-color-icon-background);
			--color-icon-text: var(--dark-color-icon-text);

			--color-comment-tag-text: var(--dark-color-text);
			--color-comment-tag: var(--dark-color-background);

			--color-link: var(--dark-color-link);
			--color-focus-outline: var(--dark-color-focus-outline);

			--color-ts-keyword: var(--dark-color-ts-keyword);
			--color-ts-project: var(--dark-color-ts-project);
			--color-ts-module: var(--dark-color-ts-module);
			--color-ts-namespace: var(--dark-color-ts-namespace);
			--color-ts-enum: var(--dark-color-ts-enum);
			--color-ts-enum-member: var(--dark-color-ts-enum-member);
			--color-ts-variable: var(--dark-color-ts-variable);
			--color-ts-function: var(--dark-color-ts-function);
			--color-ts-class: var(--dark-color-ts-class);
			--color-ts-interface: var(--dark-color-ts-interface);
			--color-ts-constructor: var(--dark-color-ts-constructor);
			--color-ts-property: var(--dark-color-ts-property);
			--color-ts-method: var(--dark-color-ts-method);
			--color-ts-reference: var(--dark-color-ts-reference);
			--color-ts-call-signature: var(--dark-color-ts-call-signature);
			--color-ts-index-signature: var(--dark-color-ts-index-signature);
			--color-ts-constructor-signature: var(--dark-color-ts-constructor-signature);
			--color-ts-parameter: var(--dark-color-ts-parameter);
			--color-ts-type-parameter: var(--dark-color-ts-type-parameter);
			--color-ts-accessor: var(--dark-color-ts-accessor);
			--color-ts-get-signature: var(--dark-color-ts-get-signature);
			--color-ts-set-signature: var(--dark-color-ts-set-signature);
			--color-ts-type-alias: var(--dark-color-ts-type-alias);
			--color-document: var(--dark-color-document);

			--color-alert-note: var(--dark-color-alert-note);
			--color-alert-tip: var(--dark-color-alert-tip);
			--color-alert-important: var(--dark-color-alert-important);
			--color-alert-warning: var(--dark-color-alert-warning);
			--color-alert-caution: var(--dark-color-alert-caution);

			--external-icon: var(--dark-external-icon);
			--color-scheme: var(--dark-color-scheme);
		}
	}

	:root[data-theme='light'] {
		--color-background: var(--light-color-background);
		--color-background-secondary: var(--light-color-background-secondary);
		--color-background-active: var(--light-color-background-active);
		--color-background-warning: var(--light-color-background-warning);
		--color-warning-text: var(--light-color-warning-text);
		--color-icon-background: var(--light-color-icon-background);
		--color-accent: var(--light-color-accent);
		--color-active-menu-item: var(--light-color-active-menu-item);
		--color-text: var(--light-color-text);
		--color-contrast-text: var(--light-color-contrast-text);
		--color-text-aside: var(--light-color-text-aside);
		--color-icon-text: var(--light-color-icon-text);

		--color-comment-tag-text: var(--light-color-text);
		--color-comment-tag: var(--light-color-background);

		--color-link: var(--light-color-link);
		--color-focus-outline: var(--light-color-focus-outline);

		--color-ts-keyword: var(--light-color-ts-keyword);
		--color-ts-project: var(--light-color-ts-project);
		--color-ts-module: var(--light-color-ts-module);
		--color-ts-namespace: var(--light-color-ts-namespace);
		--color-ts-enum: var(--light-color-ts-enum);
		--color-ts-enum-member: var(--light-color-ts-enum-member);
		--color-ts-variable: var(--light-color-ts-variable);
		--color-ts-function: var(--light-color-ts-function);
		--color-ts-class: var(--light-color-ts-class);
		--color-ts-interface: var(--light-color-ts-interface);
		--color-ts-constructor: var(--light-color-ts-constructor);
		--color-ts-property: var(--light-color-ts-property);
		--color-ts-method: var(--light-color-ts-method);
		--color-ts-reference: var(--light-color-ts-reference);
		--color-ts-call-signature: var(--light-color-ts-call-signature);
		--color-ts-index-signature: var(--light-color-ts-index-signature);
		--color-ts-constructor-signature: var(--light-color-ts-constructor-signature);
		--color-ts-parameter: var(--light-color-ts-parameter);
		--color-ts-type-parameter: var(--light-color-ts-type-parameter);
		--color-ts-accessor: var(--light-color-ts-accessor);
		--color-ts-get-signature: var(--light-color-ts-get-signature);
		--color-ts-set-signature: var(--light-color-ts-set-signature);
		--color-ts-type-alias: var(--light-color-ts-type-alias);
		--color-document: var(--light-color-document);

		--color-note: var(--light-color-note);
		--color-tip: var(--light-color-tip);
		--color-important: var(--light-color-important);
		--color-warning: var(--light-color-warning);
		--color-caution: var(--light-color-caution);

		--external-icon: var(--light-external-icon);
		--color-scheme: var(--light-color-scheme);
	}

	:root[data-theme='dark'] {
		--color-background: var(--dark-color-background);
		--color-background-secondary: var(--dark-color-background-secondary);
		--color-background-active: var(--dark-color-background-active);
		--color-background-warning: var(--dark-color-background-warning);
		--color-warning-text: var(--dark-color-warning-text);
		--color-icon-background: var(--dark-color-icon-background);
		--color-accent: var(--dark-color-accent);
		--color-active-menu-item: var(--dark-color-active-menu-item);
		--color-text: var(--dark-color-text);
		--color-contrast-text: var(--dark-color-contrast-text);
		--color-text-aside: var(--dark-color-text-aside);
		--color-icon-text: var(--dark-color-icon-text);

		--color-comment-tag-text: var(--dark-color-text);
		--color-comment-tag: var(--dark-color-background);

		--color-link: var(--dark-color-link);
		--color-focus-outline: var(--dark-color-focus-outline);

		--color-ts-keyword: var(--dark-color-ts-keyword);
		--color-ts-project: var(--dark-color-ts-project);
		--color-ts-module: var(--dark-color-ts-module);
		--color-ts-namespace: var(--dark-color-ts-namespace);
		--color-ts-enum: var(--dark-color-ts-enum);
		--color-ts-enum-member: var(--dark-color-ts-enum-member);
		--color-ts-variable: var(--dark-color-ts-variable);
		--color-ts-function: var(--dark-color-ts-function);
		--color-ts-class: var(--dark-color-ts-class);
		--color-ts-interface: var(--dark-color-ts-interface);
		--color-ts-constructor: var(--dark-color-ts-constructor);
		--color-ts-property: var(--dark-color-ts-property);
		--color-ts-method: var(--dark-color-ts-method);
		--color-ts-reference: var(--dark-color-ts-reference);
		--color-ts-call-signature: var(--dark-color-ts-call-signature);
		--color-ts-index-signature: var(--dark-color-ts-index-signature);
		--color-ts-constructor-signature: var(--dark-color-ts-constructor-signature);
		--color-ts-parameter: var(--dark-color-ts-parameter);
		--color-ts-type-parameter: var(--dark-color-ts-type-parameter);
		--color-ts-accessor: var(--dark-color-ts-accessor);
		--color-ts-get-signature: var(--dark-color-ts-get-signature);
		--color-ts-set-signature: var(--dark-color-ts-set-signature);
		--color-ts-type-alias: var(--dark-color-ts-type-alias);
		--color-document: var(--dark-color-document);

		--color-note: var(--dark-color-note);
		--color-tip: var(--dark-color-tip);
		--color-important: var(--dark-color-important);
		--color-warning: var(--dark-color-warning);
		--color-caution: var(--dark-color-caution);

		--external-icon: var(--dark-external-icon);
		--color-scheme: var(--dark-color-scheme);
	}

	html {
		color-scheme: var(--color-scheme);
		@media (prefers-reduced-motion: no-preference) {
			scroll-behavior: smooth;
		}
	}

	*:focus-visible,
	.tsd-accordion-summary:focus-visible svg {
		outline: 2px solid var(--color-focus-outline);
	}

	.always-visible,
	.always-visible .tsd-signatures {
		display: inherit !important;
	}

	h1,
	h2,
	h3,
	h4,
	h5,
	h6 {
		line-height: 1.2;
	}

	h1 {
		font-size: 1.875rem;
		margin: 0.67rem 0;
	}

	h2 {
		font-size: 1.5rem;
		margin: 0.83rem 0;
	}

	h3 {
		font-size: 1.25rem;
		margin: 1rem 0;
	}

	h4 {
		font-size: 1.05rem;
		margin: 1.33rem 0;
	}

	h5 {
		font-size: 1rem;
		margin: 1.5rem 0;
	}

	h6 {
		font-size: 0.875rem;
		margin: 2.33rem 0;
	}

	dl,
	menu,
	ol,
	ul {
		margin: 1em 0;
	}

	dd {
		margin: 0 0 0 34px;
	}

	.container {
		max-width: 1700px;
		padding: 0 2rem;
	}

	/* Footer */
	footer {
		border-top: 1px solid var(--color-accent);
		padding-top: 1rem;
		padding-bottom: 1rem;
		max-height: var(--dim-footer-height);
	}
	footer > p {
		margin: 0 1em;
	}

	.container-main {
		margin: var(--dim-container-main-margin-y) auto;
		/* toolbar, footer, margin */
		min-height: calc(
			100svh - var(--dim-header-height) - var(--dim-footer-height) - 2 *
				var(--dim-container-main-margin-y)
		);
	}

	@keyframes fade-in {
		from {
			opacity: 0;
		}
		to {
			opacity: 1;
		}
	}
	@keyframes fade-out {
		from {
			opacity: 1;
			visibility: visible;
		}
		to {
			opacity: 0;
		}
	}
	@keyframes pop-in-from-right {
		from {
			transform: translate(100%, 0);
		}
		to {
			transform: translate(0, 0);
		}
	}
	@keyframes pop-out-to-right {
		from {
			transform: translate(0, 0);
			visibility: visible;
		}
		to {
			transform: translate(100%, 0);
		}
	}
	body {
		background: var(--color-background);
		font-family:
			-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif,
			'Apple Color Emoji', 'Segoe UI Emoji';
		font-size: 16px;
		color: var(--color-text);
		margin: 0;
	}

	a {
		color: var(--color-link);
		text-decoration: none;
	}
	a:hover {
		text-decoration: underline;
	}
	a.external[target='_blank'] {
		background-image: var(--external-icon);
		background-position: top 3px right;
		background-repeat: no-repeat;
		padding-right: 13px;
	}
	a.tsd-anchor-link {
		color: var(--color-text);
	}
	:target {
		scroll-margin-block: calc(var(--dim-header-height) + 0.5rem);
	}

	code,
	pre {
		font-family: Menlo, Monaco, Consolas, 'Courier New', monospace;
		padding: 0.2em;
		margin: 0;
		font-size: 0.875rem;
		border-radius: 0.8em;
	}

	pre {
		position: relative;
		white-space: pre-wrap;
		word-wrap: break-word;
		padding: 10px;
		border: 1px solid var(--color-accent);
		margin-bottom: 8px;
	}
	pre code {
		padding: 0;
		font-size: 100%;
	}
	pre > button {
		position: absolute;
		top: 10px;
		right: 10px;
		opacity: 0;
		transition: opacity 0.1s;
		box-sizing: border-box;
	}
	pre:hover > button,
	pre > button.visible,
	pre > button:focus-visible {
		opacity: 1;
	}

	blockquote {
		margin: 1em 0;
		padding-left: 1em;
		border-left: 4px solid gray;
	}

	img {
		max-width: 100%;
	}

	* {
		scrollbar-width: thin;
		scrollbar-color: var(--color-accent) var(--color-icon-background);
	}

	*::-webkit-scrollbar {
		width: 0.75rem;
	}

	*::-webkit-scrollbar-track {
		background: var(--color-icon-background);
	}

	*::-webkit-scrollbar-thumb {
		background-color: var(--color-accent);
		border-radius: 999rem;
		border: 0.25rem solid var(--color-icon-background);
	}

	dialog {
		border: none;
		outline: none;
		padding: 0;
		background-color: var(--color-background);
	}
	dialog::backdrop {
		display: none;
	}
	#tsd-overlay {
		background-color: rgba(0, 0, 0, 0.5);
		position: fixed;
		z-index: 9999;
		top: 0;
		left: 0;
		right: 0;
		bottom: 0;
		animation: fade-in var(--modal-animation-duration) forwards;
	}
	#tsd-overlay.closing {
		animation-name: fade-out;
	}

	.tsd-typography {
		line-height: 1.333em;
	}
	.tsd-typography ul {
		list-style: square;
		padding: 0 0 0 20px;
		margin: 0;
	}
	.tsd-typography .tsd-index-panel h3,
	.tsd-index-panel .tsd-typography h3,
	.tsd-typography h4,
	.tsd-typography h5,
	.tsd-typography h6 {
		font-size: 1em;
	}
	.tsd-typography h5,
	.tsd-typography h6 {
		font-weight: normal;
	}
	.tsd-typography p,
	.tsd-typography ul,
	.tsd-typography ol {
		margin: 1em 0;
	}
	.tsd-typography table {
		border-collapse: collapse;
		border: none;
	}
	.tsd-typography td,
	.tsd-typography th {
		padding: 6px 13px;
		border: 1px solid var(--color-accent);
	}
	.tsd-typography thead,
	.tsd-typography tr:nth-child(even) {
		background-color: var(--color-background-secondary);
	}

	.tsd-alert {
		padding: 8px 16px;
		margin-bottom: 16px;
		border-left: 0.25em solid var(--alert-color);
	}
	.tsd-alert blockquote > :last-child,
	.tsd-alert > :last-child {
		margin-bottom: 0;
	}
	.tsd-alert-title {
		color: var(--alert-color);
		display: inline-flex;
		align-items: center;
	}
	.tsd-alert-title span {
		margin-left: 4px;
	}

	.tsd-alert-note {
		--alert-color: var(--color-alert-note);
	}
	.tsd-alert-tip {
		--alert-color: var(--color-alert-tip);
	}
	.tsd-alert-important {
		--alert-color: var(--color-alert-important);
	}
	.tsd-alert-warning {
		--alert-color: var(--color-alert-warning);
	}
	.tsd-alert-caution {
		--alert-color: var(--color-alert-caution);
	}

	.tsd-breadcrumb {
		margin: 0;
		margin-top: 1rem;
		padding: 0;
		color: var(--color-text-aside);
	}
	.tsd-breadcrumb a {
		color: var(--color-text-aside);
		text-decoration: none;
	}
	.tsd-breadcrumb a:hover {
		text-decoration: underline;
	}
	.tsd-breadcrumb li {
		display: inline;
	}
	.tsd-breadcrumb li:after {
		content: ' / ';
	}

	.tsd-comment-tags {
		display: flex;
		flex-direction: column;
	}
	dl.tsd-comment-tag-group {
		display: flex;
		align-items: center;
		overflow: hidden;
		margin: 0.5em 0;
	}
	dl.tsd-comment-tag-group dt {
		display: flex;
		margin-right: 0.5em;
		font-size: 0.875em;
		font-weight: normal;
	}
	dl.tsd-comment-tag-group dd {
		margin: 0;
	}
	code.tsd-tag {
		padding: 0.25em 0.4em;
		border: 0.1em solid var(--color-accent);
		margin-right: 0.25em;
		font-size: 70%;
	}
	h1 code.tsd-tag:first-of-type {
		margin-left: 0.25em;
	}

	dl.tsd-comment-tag-group dd:before,
	dl.tsd-comment-tag-group dd:after {
		content: ' ';
	}
	dl.tsd-comment-tag-group dd pre,
	dl.tsd-comment-tag-group dd:after {
		clear: both;
	}
	dl.tsd-comment-tag-group p {
		margin: 0;
	}

	.tsd-panel.tsd-comment .lead {
		font-size: 1.1em;
		line-height: 1.333em;
		margin-bottom: 2em;
	}
	.tsd-panel.tsd-comment .lead:last-child {
		margin-bottom: 0;
	}

	.tsd-filter-visibility h4 {
		font-size: 1rem;
		padding-top: 0.75rem;
		padding-bottom: 0.5rem;
		margin: 0;
	}
	.tsd-filter-item:not(:last-child) {
		margin-bottom: 0.5rem;
	}
	.tsd-filter-input {
		display: flex;
		width: -moz-fit-content;
		width: fit-content;
		align-items: center;
		-webkit-user-select: none;
		-moz-user-select: none;
		-ms-user-select: none;
		user-select: none;
		cursor: pointer;
	}
	.tsd-filter-input input[type='checkbox'] {
		cursor: pointer;
		position: absolute;
		width: 1.5em;
		height: 1.5em;
		opacity: 0;
	}
	.tsd-filter-input input[type='checkbox']:disabled {
		pointer-events: none;
	}
	.tsd-filter-input svg {
		cursor: pointer;
		width: 1.5em;
		height: 1.5em;
		margin-right: 0.5em;
		border-radius: 0.33em;
		/* Leaving this at full opacity breaks event listeners on Firefox.
        Don't remove unless you know what you're doing. */
		opacity: 0.99;
	}
	.tsd-filter-input input[type='checkbox']:focus-visible + svg {
		outline: 2px solid var(--color-focus-outline);
	}
	.tsd-checkbox-background {
		fill: var(--color-accent);
	}
	input[type='checkbox']:checked ~ svg .tsd-checkbox-checkmark {
		stroke: var(--color-text);
	}
	.tsd-filter-input input:disabled ~ svg > .tsd-checkbox-background {
		fill: var(--color-background);
		stroke: var(--color-accent);
		stroke-width: 0.25rem;
	}
	.tsd-filter-input input:disabled ~ svg > .tsd-checkbox-checkmark {
		stroke: var(--color-accent);
	}

	.settings-label {
		font-weight: bold;
		text-transform: uppercase;
		display: inline-block;
	}

	.tsd-filter-visibility .settings-label {
		margin: 0.75rem 0 0.5rem 0;
	}

	.tsd-theme-toggle .settings-label {
		margin: 0.75rem 0.75rem 0 0;
	}

	.tsd-hierarchy h4 label:hover span {
		text-decoration: underline;
	}

	.tsd-hierarchy {
		list-style: square;
		margin: 0;
	}
	.tsd-hierarchy-target {
		font-weight: bold;
	}
	.tsd-hierarchy-toggle {
		color: var(--color-link);
		cursor: pointer;
	}

	.tsd-full-hierarchy:not(:last-child) {
		margin-bottom: 1em;
		padding-bottom: 1em;
		border-bottom: 1px solid var(--color-accent);
	}
	.tsd-full-hierarchy,
	.tsd-full-hierarchy ul {
		list-style: none;
		margin: 0;
		padding: 0;
	}
	.tsd-full-hierarchy ul {
		padding-left: 1.5rem;
	}
	.tsd-full-hierarchy a {
		padding: 0.25rem 0 !important;
		font-size: 1rem;
		display: inline-flex;
		align-items: center;
		color: var(--color-text);
	}
	.tsd-full-hierarchy svg[data-dropdown] {
		cursor: pointer;
	}
	.tsd-full-hierarchy svg[data-dropdown='false'] {
		transform: rotate(-90deg);
	}
	.tsd-full-hierarchy svg[data-dropdown='false'] ~ ul {
		display: none;
	}

	.tsd-panel-group.tsd-index-group {
		margin-bottom: 0;
	}
	.tsd-index-panel .tsd-index-list {
		list-style: none;
		line-height: 1.333em;
		margin: 0;
		padding: 0.25rem 0 0 0;
		overflow: hidden;
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		column-gap: 1rem;
		grid-template-rows: auto;
	}
	@media (max-width: 1024px) {
		.tsd-index-panel .tsd-index-list {
			grid-template-columns: repeat(2, 1fr);
		}
	}
	@media (max-width: 768px) {
		.tsd-index-panel .tsd-index-list {
			grid-template-columns: repeat(1, 1fr);
		}
	}
	.tsd-index-panel .tsd-index-list li {
		-webkit-page-break-inside: avoid;
		-moz-page-break-inside: avoid;
		-ms-page-break-inside: avoid;
		-o-page-break-inside: avoid;
		page-break-inside: avoid;
	}

	.tsd-flag {
		display: inline-block;
		padding: 0.25em 0.4em;
		border-radius: 4px;
		color: var(--color-comment-tag-text);
		background-color: var(--color-comment-tag);
		text-indent: 0;
		font-size: 75%;
		line-height: 1;
		font-weight: normal;
	}

	.tsd-anchor {
		position: relative;
		top: -100px;
	}

	.tsd-member {
		position: relative;
	}
	.tsd-member .tsd-anchor + h3 {
		display: flex;
		align-items: center;
		margin-top: 0;
		margin-bottom: 0;
		border-bottom: none;
	}

	.tsd-navigation.settings {
		margin: 0;
		margin-bottom: 1rem;
	}
	.tsd-navigation > a,
	.tsd-navigation .tsd-accordion-summary {
		width: calc(100% - 0.25rem);
		display: flex;
		align-items: center;
	}
	.tsd-navigation a,
	.tsd-navigation summary > span,
	.tsd-page-navigation a {
		display: flex;
		width: calc(100% - 0.25rem);
		align-items: center;
		padding: 0.25rem;
		color: var(--color-text);
		text-decoration: none;
		box-sizing: border-box;
	}
	.tsd-navigation a.current,
	.tsd-page-navigation a.current {
		background: var(--color-active-menu-item);
		color: var(--color-contrast-text);
	}
	.tsd-navigation a:hover,
	.tsd-page-navigation a:hover {
		text-decoration: underline;
	}
	.tsd-navigation ul,
	.tsd-page-navigation ul {
		margin-top: 0;
		margin-bottom: 0;
		padding: 0;
		list-style: none;
	}
	.tsd-navigation li,
	.tsd-page-navigation li {
		padding: 0;
		max-width: 100%;
	}
	.tsd-navigation .tsd-nav-link {
		display: none;
	}
	.tsd-nested-navigation {
		margin-left: 3rem;
	}
	.tsd-nested-navigation > li > details {
		margin-left: -1.5rem;
	}
	.tsd-small-nested-navigation {
		margin-left: 1.5rem;
	}
	.tsd-small-nested-navigation > li > details {
		margin-left: -1.5rem;
	}

	.tsd-page-navigation-section > summary {
		padding: 0.25rem;
	}
	.tsd-page-navigation-section > summary > svg {
		margin-right: 0.25rem;
	}
	.tsd-page-navigation-section > div {
		margin-left: 30px;
	}
	.tsd-page-navigation ul {
		padding-left: 1.75rem;
	}

	#tsd-sidebar-links a {
		margin-top: 0;
		margin-bottom: 0.5rem;
		line-height: 1.25rem;
	}
	#tsd-sidebar-links a:last-of-type {
		margin-bottom: 0;
	}

	a.tsd-index-link {
		padding: 0.25rem 0 !important;
		font-size: 1rem;
		line-height: 1.25rem;
		display: inline-flex;
		align-items: center;
		color: var(--color-text);
	}
	.tsd-accordion-summary {
		list-style-type: none; /* hide marker on non-safari */
		outline: none; /* broken on safari, so just hide it */
		display: flex;
		align-items: center;
		gap: 0.25rem;
		box-sizing: border-box;
	}
	.tsd-accordion-summary::-webkit-details-marker {
		display: none; /* hide marker on safari */
	}
	.tsd-accordion-summary,
	.tsd-accordion-summary a {
		-moz-user-select: none;
		-webkit-user-select: none;
		-ms-user-select: none;
		user-select: none;

		cursor: pointer;
	}
	.tsd-accordion-summary a {
		width: calc(100% - 1.5rem);
	}
	.tsd-accordion-summary > * {
		margin-top: 0;
		margin-bottom: 0;
		padding-top: 0;
		padding-bottom: 0;
	}
	/*
     * We need to be careful to target the arrow indicating whether the accordion
     * is open, but not any other SVGs included in the details element.
     */
	.tsd-accordion:not([open]) > .tsd-accordion-summary > svg:first-child {
		transform: rotate(-90deg);
	}
	.tsd-index-content > :not(:first-child) {
		margin-top: 0.75rem;
	}
	.tsd-index-summary {
		margin-top: 1.5rem;
		margin-bottom: 0.75rem;
		display: flex;
		align-content: center;
	}

	.tsd-no-select {
		-webkit-user-select: none;
		-moz-user-select: none;
		-ms-user-select: none;
		user-select: none;
	}
	.tsd-kind-icon {
		margin-right: 0.5rem;
		width: 1.25rem;
		height: 1.25rem;
		min-width: 1.25rem;
		min-height: 1.25rem;
	}
	.tsd-signature > .tsd-kind-icon {
		margin-right: 0.8rem;
	}

	.tsd-panel {
		margin-bottom: 2.5rem;
	}
	.tsd-panel.tsd-member {
		margin-bottom: 4rem;
	}
	.tsd-panel:empty {
		display: none;
	}
	.tsd-panel > h1,
	.tsd-panel > h2,
	.tsd-panel > h3 {
		margin: 1.5rem -1.5rem 0.75rem -1.5rem;
		padding: 0 1.5rem 0.75rem 1.5rem;
	}
	.tsd-panel > h1.tsd-before-signature,
	.tsd-panel > h2.tsd-before-signature,
	.tsd-panel > h3.tsd-before-signature {
		margin-bottom: 0;
		border-bottom: none;
	}

	.tsd-panel-group {
		margin: 2rem 0;
	}
	.tsd-panel-group.tsd-index-group {
		margin: 2rem 0;
	}
	.tsd-panel-group.tsd-index-group details {
		margin: 2rem 0;
	}
	.tsd-panel-group > .tsd-accordion-summary {
		margin-bottom: 1rem;
	}

	#tsd-search[open] {
		animation: fade-in var(--modal-animation-duration) ease-out forwards;
	}
	#tsd-search[open].closing {
		animation-name: fade-out;
	}

	/* Avoid setting `display` on closed dialog */
	#tsd-search[open] {
		display: flex;
		flex-direction: column;
		padding: 1rem;
		width: 32rem;
		max-width: 90vw;
		max-height: calc(100vh - env(keyboard-inset-height, 0px) - 25vh);
		/* Anchor dialog to top */
		margin-top: 10vh;
		border-radius: 6px;
		will-change: max-height;
	}
	#tsd-search-input {
		box-sizing: border-box;
		width: 100%;
		padding: 0 0.625rem; /* 10px */
		outline: 0;
		border: 2px solid var(--color-accent);
		background-color: transparent;
		color: var(--color-text);
		border-radius: 4px;
		height: 2.5rem;
		flex: 0 0 auto;
		font-size: 0.875rem;
		transition:
			border-color 0.2s,
			background-color 0.2s;
	}
	#tsd-search-input:focus-visible {
		background-color: var(--color-background-active);
		border-color: transparent;
		color: var(--color-contrast-text);
	}
	#tsd-search-input::placeholder {
		color: inherit;
		opacity: 0.8;
	}
	#tsd-search-results {
		margin: 0;
		padding: 0;
		list-style: none;
		flex: 1 1 auto;
		display: flex;
		flex-direction: column;
		overflow-y: auto;
	}
	#tsd-search-results:not(:empty) {
		margin-top: 0.5rem;
	}
	#tsd-search-results > li {
		background-color: var(--color-background);
		line-height: 1.5;
		box-sizing: border-box;
		border-radius: 4px;
	}
	#tsd-search-results > li:nth-child(even) {
		background-color: var(--color-background-secondary);
	}
	#tsd-search-results > li:is(:hover, [aria-selected='true']) {
		background-color: var(--color-background-active);
		color: var(--color-contrast-text);
	}
	/* It's important that this takes full size of parent `li`, to capture a click on `li` */
	#tsd-search-results > li > a {
		display: flex;
		align-items: center;
		padding: 0.5rem 0.25rem;
		box-sizing: border-box;
		width: 100%;
	}
	#tsd-search-results > li > a > .text {
		flex: 1 1 auto;
		min-width: 0;
		overflow-wrap: anywhere;
	}
	#tsd-search-results > li > a .parent {
		color: var(--color-text-aside);
	}
	#tsd-search-results > li > a mark {
		color: inherit;
		background-color: inherit;
		font-weight: bold;
	}
	#tsd-search-status {
		flex: 1;
		display: grid;
		place-content: center;
		text-align: center;
		overflow-wrap: anywhere;
	}
	#tsd-search-status:not(:empty) {
		min-height: 6rem;
	}

	.tsd-signature {
		margin: 0 0 1rem 0;
		padding: 1rem 0.5rem;
		border: 1px solid var(--color-accent);
		font-family: Menlo, Monaco, Consolas, 'Courier New', monospace;
		font-size: 14px;
		overflow-x: auto;
	}

	.tsd-signature-keyword {
		color: var(--color-ts-keyword);
		font-weight: normal;
	}

	.tsd-signature-symbol {
		color: var(--color-text-aside);
		font-weight: normal;
	}

	.tsd-signature-type {
		font-style: italic;
		font-weight: normal;
	}

	.tsd-signatures {
		padding: 0;
		margin: 0 0 1em 0;
		list-style-type: none;
	}
	.tsd-signatures .tsd-signature {
		margin: 0;
		border-color: var(--color-accent);
		border-width: 1px 0;
		transition: background-color 0.1s;
	}
	.tsd-signatures .tsd-index-signature:not(:last-child) {
		margin-bottom: 1em;
	}
	.tsd-signatures .tsd-index-signature .tsd-signature {
		border-width: 1px;
	}
	.tsd-description .tsd-signatures .tsd-signature {
		border-width: 1px;
	}

	ul.tsd-parameter-list,
	ul.tsd-type-parameter-list {
		list-style: square;
		margin: 0;
		padding-left: 20px;
	}
	ul.tsd-parameter-list > li.tsd-parameter-signature,
	ul.tsd-type-parameter-list > li.tsd-parameter-signature {
		list-style: none;
		margin-left: -20px;
	}
	ul.tsd-parameter-list h5,
	ul.tsd-type-parameter-list h5 {
		font-size: 16px;
		margin: 1em 0 0.5em 0;
	}
	.tsd-sources {
		margin-top: 1rem;
		font-size: 0.875em;
	}
	.tsd-sources a {
		color: var(--color-text-aside);
		text-decoration: underline;
	}
	.tsd-sources ul {
		list-style: none;
		padding: 0;
	}

	.tsd-page-toolbar {
		position: sticky;
		z-index: 1;
		top: 0;
		left: 0;
		width: 100%;
		color: var(--color-text);
		background: var(--color-background-secondary);
		border-bottom: var(--dim-toolbar-border-bottom-width) var(--color-accent) solid;
		transition: transform 0.3s ease-in-out;
	}
	.tsd-page-toolbar a {
		color: var(--color-text);
	}
	.tsd-toolbar-contents {
		display: flex;
		align-items: center;
		height: var(--dim-toolbar-contents-height);
		margin: 0 auto;
	}
	.tsd-toolbar-contents > .title {
		font-weight: bold;
		margin-right: auto;
	}
	#tsd-toolbar-links {
		display: flex;
		align-items: center;
		gap: 1.5rem;
		margin-right: 1rem;
	}

	.tsd-widget {
		box-sizing: border-box;
		display: inline-block;
		opacity: 0.8;
		height: 2.5rem;
		width: 2.5rem;
		transition:
			opacity 0.1s,
			background-color 0.1s;
		text-align: center;
		cursor: pointer;
		border: none;
		background-color: transparent;
	}
	.tsd-widget:hover {
		opacity: 0.9;
	}
	.tsd-widget:active {
		opacity: 1;
		background-color: var(--color-accent);
	}
	#tsd-toolbar-menu-trigger {
		display: none;
	}

	.tsd-member-summary-name {
		display: inline-flex;
		align-items: center;
		padding: 0.25rem;
		text-decoration: none;
	}

	.tsd-anchor-icon {
		display: inline-flex;
		align-items: center;
		margin-left: 0.5rem;
		color: var(--color-text);
		vertical-align: middle;
	}

	.tsd-anchor-icon svg {
		width: 1em;
		height: 1em;
		visibility: hidden;
	}

	.tsd-member-summary-name:hover > .tsd-anchor-icon svg,
	.tsd-anchor-link:hover > .tsd-anchor-icon svg,
	.tsd-anchor-icon:focus-visible svg {
		visibility: visible;
	}

	.deprecated {
		text-decoration: line-through !important;
	}

	.warning {
		padding: 1rem;
		color: var(--color-warning-text);
		background: var(--color-background-warning);
	}

	.tsd-kind-project {
		color: var(--color-ts-project);
	}
	.tsd-kind-module {
		color: var(--color-ts-module);
	}
	.tsd-kind-namespace {
		color: var(--color-ts-namespace);
	}
	.tsd-kind-enum {
		color: var(--color-ts-enum);
	}
	.tsd-kind-enum-member {
		color: var(--color-ts-enum-member);
	}
	.tsd-kind-variable {
		color: var(--color-ts-variable);
	}
	.tsd-kind-function {
		color: var(--color-ts-function);
	}
	.tsd-kind-class {
		color: var(--color-ts-class);
	}
	.tsd-kind-interface {
		color: var(--color-ts-interface);
	}
	.tsd-kind-constructor {
		color: var(--color-ts-constructor);
	}
	.tsd-kind-property {
		color: var(--color-ts-property);
	}
	.tsd-kind-method {
		color: var(--color-ts-method);
	}
	.tsd-kind-reference {
		color: var(--color-ts-reference);
	}
	.tsd-kind-call-signature {
		color: var(--color-ts-call-signature);
	}
	.tsd-kind-index-signature {
		color: var(--color-ts-index-signature);
	}
	.tsd-kind-constructor-signature {
		color: var(--color-ts-constructor-signature);
	}
	.tsd-kind-parameter {
		color: var(--color-ts-parameter);
	}
	.tsd-kind-type-parameter {
		color: var(--color-ts-type-parameter);
	}
	.tsd-kind-accessor {
		color: var(--color-ts-accessor);
	}
	.tsd-kind-get-signature {
		color: var(--color-ts-get-signature);
	}
	.tsd-kind-set-signature {
		color: var(--color-ts-set-signature);
	}
	.tsd-kind-type-alias {
		color: var(--color-ts-type-alias);
	}

	/* if we have a kind icon, don't color the text by kind */
	.tsd-kind-icon ~ span {
		color: var(--color-text);
	}

	/* mobile */
	@media (max-width: 769px) {
		#tsd-toolbar-menu-trigger {
			display: inline-block;
			/* temporary fix to vertically align, for compatibility */
			line-height: 2.5;
		}
		#tsd-toolbar-links {
			display: none;
		}

		.container-main {
			display: flex;
		}
		.col-content {
			float: none;
			max-width: 100%;
			width: 100%;
		}
		.col-sidebar {
			position: fixed !important;
			overflow-y: auto;
			-webkit-overflow-scrolling: touch;
			z-index: 1024;
			top: 0 !important;
			bottom: 0 !important;
			left: auto !important;
			right: 0 !important;
			padding: 1.5rem 1.5rem 0 0;
			width: 75vw;
			visibility: hidden;
			background-color: var(--color-background);
			transform: translate(100%, 0);
		}
		.col-sidebar > *:last-child {
			padding-bottom: 20px;
		}
		.overlay {
			content: '';
			display: block;
			position: fixed;
			z-index: 1023;
			top: 0;
			left: 0;
			right: 0;
			bottom: 0;
			background-color: rgba(0, 0, 0, 0.75);
			visibility: hidden;
		}

		.to-has-menu .overlay {
			animation: fade-in 0.4s;
		}

		.to-has-menu .col-sidebar {
			animation: pop-in-from-right 0.4s;
		}

		.from-has-menu .overlay {
			animation: fade-out 0.4s;
		}

		.from-has-menu .col-sidebar {
			animation: pop-out-to-right 0.4s;
		}

		.has-menu body {
			overflow: hidden;
		}
		.has-menu .overlay {
			visibility: visible;
		}
		.has-menu .col-sidebar {
			visibility: visible;
			transform: translate(0, 0);
			display: flex;
			flex-direction: column;
			gap: 1.5rem;
			max-height: 100vh;
			padding: 1rem 2rem;
		}
		.has-menu .tsd-navigation {
			max-height: 100%;
		}
		.tsd-navigation .tsd-nav-link {
			display: flex;
		}
	}

	/* one sidebar */
	@media (min-width: 770px) {
		.container-main {
			display: grid;
			grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
			grid-template-areas: 'sidebar content';
			--dim-container-main-margin-y: 2rem;
		}

		.tsd-breadcrumb {
			margin-top: 0;
		}

		.col-sidebar {
			grid-area: sidebar;
		}
		.col-content {
			grid-area: content;
			padding: 0 1rem;
		}
	}
	@media (min-width: 770px) and (max-width: 1399px) {
		.col-sidebar {
			max-height: calc(
				100vh - var(--dim-header-height) - var(--dim-footer-height) - 2 *
					var(--dim-container-main-margin-y)
			);
			overflow: auto;
			position: sticky;
			top: calc(var(--dim-header-height) + var(--dim-container-main-margin-y));
		}
		.site-menu {
			margin-top: 1rem;
		}
	}

	/* two sidebars */
	@media (min-width: 1200px) {
		.container-main {
			grid-template-columns: minmax(0, 1fr) minmax(0, 2.5fr) minmax(0, 20rem);
			grid-template-areas: 'sidebar content toc';
		}

		.col-sidebar {
			display: contents;
		}

		.page-menu {
			grid-area: toc;
			padding-left: 1rem;
		}
		.site-menu {
			grid-area: sidebar;
		}

		.site-menu {
			margin-top: 0rem;
		}

		.page-menu,
		.site-menu {
			max-height: calc(
				100vh - var(--dim-header-height) - var(--dim-footer-height) - 2 *
					var(--dim-container-main-margin-y)
			);
			overflow: auto;
			position: sticky;
			top: calc(var(--dim-header-height) + var(--dim-container-main-margin-y));
		}
	}
}
