@font-face {
	font-family: "Trade Winds";
	src: url("./fonts/TradeWinds.ttf") format("truetype");
	font-display: swap;
	font-style: normal;
	font-weight: 400;
}

:root {
	color-scheme: light;
	--frontmark-color-scheme: light;
	--frontmark-theme-name: caving;
	--frontmark-font-text: Inter, "Segoe UI", Roboto, "Helvetica Neue", Arial, ui-sans-serif, system-ui, sans-serif;
	--frontmark-font-mono: "Roboto Mono", ui-monospace, SFMono-Regular, Consolas, monospace;
	--frontmark-font-menu: "Segoe UI", Inter, Roboto, "Helvetica Neue", Arial, ui-sans-serif, system-ui, sans-serif;
	--frontmark-theme-ink: #f3fff0;
	--frontmark-theme-night: #ffffff;
	--frontmark-theme-deep: #d8ead5;
	--frontmark-theme-panel: #ffffff;
	--frontmark-theme-panel-soft: #e5f5e0;
	--frontmark-theme-accent: #196119;
	--frontmark-theme-accent-bright: #0f4c0f;
	--frontmark-theme-accent-soft: #064e06;
	--frontmark-theme-steel: #557855;
	--frontmark-theme-text: #0c1d0d;
	--frontmark-theme-muted: #405c40;
	--frontmark-theme-header: #07520f;
	--frontmark-theme-warning: #c99020;
	--frontmark-theme-danger: #a94c5b;
	--frontmark-ink: var(--frontmark-theme-ink);
	--frontmark-night: var(--frontmark-theme-night);
	--frontmark-deep: var(--frontmark-theme-deep);
	--frontmark-panel: var(--frontmark-theme-panel);
	--frontmark-panel-soft: var(--frontmark-theme-panel-soft);
	--frontmark-cyan: var(--frontmark-theme-accent);
	--frontmark-cyan-bright: var(--frontmark-theme-accent-bright);
	--frontmark-cyan-soft: var(--frontmark-theme-accent-soft);
	--frontmark-steel: var(--frontmark-theme-steel);
	--frontmark-text: var(--frontmark-theme-text);
	--frontmark-muted: var(--frontmark-theme-muted);
	--frontmark-header: var(--frontmark-theme-header);
	--frontmark-yellow: var(--frontmark-theme-warning);
	--frontmark-danger: var(--frontmark-theme-danger);
	--frontmark-body-background:
		radial-gradient(circle at 78% 5rem, rgba(25, 97, 25, 0.14), transparent 28rem),
		linear-gradient(180deg, #ffffff, #f3fff0 34rem);
	--frontmark-header-background:
		linear-gradient(180deg, rgba(243, 255, 240, 0.1), transparent 42%),
		radial-gradient(38rem 8rem at 8rem 0, rgba(190, 212, 162, 0.16), transparent 72%),
		repeating-linear-gradient(180deg, transparent 0 0.7rem, rgba(2, 38, 6, 0.1) 0.7rem 0.76rem),
		linear-gradient(180deg, #07520f 0%, #06490d 58%, #043d08 100%);
	--frontmark-header-text: #f3fff0;
	--frontmark-header-border: rgba(3, 40, 7, 0.78);
	--frontmark-theme-nav-height: 78px;
	--frontmark-theme-nav-height-minimized: 52px;
	--frontmark-menu-title-size: 22px;
	--frontmark-menu-title-size-minimized: 17px;
	--frontmark-logo-size: 62px;
	--frontmark-logo-size-minimized: 38px;
	--frontmark-brand-align: flex-start;
	--frontmark-brand-text-align: left;
	--frontmark-header-radius: 0 0 0.35rem 0.35rem;
	--frontmark-header-shadow:
		inset 0 -0.35rem 0 rgba(2, 38, 6, 0.24),
		0 0.5rem 1.25rem rgba(4, 48, 8, 0.24);
	--frontmark-mobile-menu-button-background: #0d6415;
	--frontmark-mobile-menu-button-hover-background: #07520f;
	--frontmark-mobile-menu-button-text: #f3fff0;
	--frontmark-mobile-menu-button-border: rgba(243, 255, 240, 0.34);
	--frontmark-mobile-menu-button-hover-border: rgba(243, 255, 240, 0.64);
	--frontmark-theme-toolbar-background: rgba(229, 245, 224, 0.96);
	--frontmark-theme-toolbar-border: rgba(17, 83, 17, 0.32);
	--frontmark-theme-toolbar-group-background: #f8fff5;
	--frontmark-theme-toolbar-group-border: rgba(17, 83, 17, 0.22);
	--frontmark-theme-toolbar-group-text: #123d14;
	--frontmark-theme-toolbar-button-background: #ffffff;
	--frontmark-theme-toolbar-button-text: #061f08;
	--frontmark-theme-toolbar-button-border: rgba(17, 83, 17, 0.26);
	--frontmark-theme-toolbar-button-hover-background: #d7f5cf;
	--frontmark-theme-toolbar-active-background: #bdebb5;
	--frontmark-theme-toolbar-active-border: #0f4c0f;
	--frontmark-page-tools-background: #f8fff5;
	--frontmark-page-tools-border: rgba(17, 83, 17, 0.28);
	--frontmark-page-tools-text: #405c40;
	--frontmark-page-tools-qr-background: #f3fff0;
	--frontmark-page-tools-qr-foreground: #022606;
	--frontmark-page-tools-action-background: #ffffff;
	--frontmark-page-tools-action-border: rgba(17, 83, 17, 0.26);
	--frontmark-page-tools-action-text: #0c1d0d;
	--frontmark-page-tools-action-hover-background: #d7f5cf;
	--frontmark-page-tools-action-hover-text: #064e06;
	--frontmark-footer-background: #000000;
	--frontmark-footer-fixed-background: #000000;
	--frontmark-footer-border: rgba(231, 242, 207, 0.28);
	--frontmark-footer-text: #c7d5ad;
	--frontmark-footer-strong-text: #f3fff0;
	--frontmark-footer-muted-text: #9eaf8f;
	--frontmark-footer-link: #e2f4d9;
	--frontmark-footer-link-hover: #ffffff;
	--frontmark-footer-social-background: #000000;
	--frontmark-footer-social-border: rgba(231, 242, 207, 0.32);
	--frontmark-footer-social-text: #f3fff0;
	--frontmark-footer-social-hover-background: rgba(231, 242, 207, 0.08);
	--frontmark-footer-social-hover-border: rgba(231, 242, 207, 0.72);
	--frontmark-footer-social-hover-text: #ffffff;
	--frontmark-caving-footer-stalagmite-depth: 88px;
	--frontmark-footer-fixed-extra-clearance: var(--frontmark-caving-footer-stalagmite-depth);
	--frontmark-tag-text: #273222;
	--frontmark-tag-background: #dfe7d8;
	--frontmark-tag-border: rgba(70, 80, 61, 0.4);
	--frontmark-tag-hover-text: #eef3e7;
	--frontmark-tag-hover-background: #46503d;
	--frontmark-tag-hover-border: #b5c2a8;
	--frontmark-container-shadow-long-drop: 1.15rem 1.15rem 0 rgba(17, 83, 17, 0.34);
	--frontmark-container-shadow-hard: 0.55rem 0.55rem 0 rgba(4, 16, 6, 0.56);
	--frontmark-container-shadow-halo: 0 0 2.2rem rgba(41, 128, 41, 0.4);
	--frontmark-container-shadow-light: 0 0.8rem 1.9rem rgba(4, 16, 6, 0.16);
	--frontmark-caving-stalactite-depth: 68px;
	--frontmark-starlight-header-font: -apple-system, "system-ui", "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
	--frontmark-starlight-nav-font: var(--frontmark-font-text);
}

:root :where(header.header, .frontmark-header-shell) .site-title {
	font-family: var(--frontmark-starlight-header-font);
	font-size: 24px;
	line-height: 42px;
}

:root :where(header.header, .frontmark-header-shell) .brand-title {
	font-size: 24px;
	line-height: 26.4px;
}

:root :where(header.header, .frontmark-header-shell) .frontmark-header-nav {
	font-family: var(--frontmark-starlight-nav-font);
	line-height: 28px;
}

:root :where(header.header, .frontmark-header-shell) .frontmark-header-nav a {
	font-family: inherit;
}

:root :where(.frontmark-sidebar-root, .sidebar-content, .sidebar-pane, nav[aria-label="Main"]) :where(a, summary, .group-label) {
	font-family: var(--frontmark-font-text);
}

:root body.site-shell {
	padding-block-start: calc(var(--frontmark-nav-height, 78px) + var(--frontmark-caving-stalactite-depth, 52px));
}

:root :where(header.header, .frontmark-header-shell) {
	overflow: visible;
	isolation: isolate;
}

:root :where(header.header, .frontmark-header-shell) > :where(.header, .frontmark-header-inner) {
	position: relative;
	z-index: 1;
}

:root :where(header.header, .frontmark-header-shell)::after {
	content: "";
	position: absolute;
	inset-inline: 0;
	inset-block-end: calc(var(--frontmark-caving-stalactite-depth, 52px) * -1 + 1px);
	z-index: 0;
	height: var(--frontmark-caving-stalactite-depth, 52px);
	background:
		linear-gradient(91deg, transparent 0 0.92%, rgba(231, 242, 207, 0.18) 0.92% 1.04%, transparent 1.04% 4.66%, rgba(231, 242, 207, 0.34) 4.66% 4.82%, transparent 4.82% 6.06%, rgba(2, 38, 6, 0.24) 6.06% 6.16%, transparent 6.16% 13.18%, rgba(2, 38, 6, 0.36) 13.18% 13.38%, transparent 13.38% 18.3%, rgba(231, 242, 207, 0.18) 18.3% 18.42%, transparent 18.42% 26.08%, rgba(226, 244, 217, 0.22) 26.08% 26.24%, transparent 26.24% 27.02%, rgba(231, 242, 207, 0.16) 27.02% 27.12%, transparent 27.12% 34.42%, rgba(2, 38, 6, 0.34) 34.42% 34.62%, transparent 34.62% 42.64%, rgba(231, 242, 207, 0.16) 42.64% 42.76%, transparent 42.76% 50.92%, rgba(2, 38, 6, 0.32) 50.92% 51.1%, transparent 51.1% 51.86%, rgba(231, 242, 207, 0.18) 51.86% 51.98%, transparent 51.98% 60.18%, rgba(231, 242, 207, 0.3) 60.18% 60.38%, transparent 60.38% 68.44%, rgba(2, 38, 6, 0.24) 68.44% 68.58%, transparent 68.58% 74.96%, rgba(231, 242, 207, 0.28) 74.96% 75.16%, transparent 75.16% 82.64%, rgba(2, 38, 6, 0.22) 82.64% 82.78%, transparent 82.78% 87.26%, rgba(2, 38, 6, 0.36) 87.26% 87.48%, transparent 87.48% 95.42%, rgba(231, 242, 207, 0.22) 95.42% 95.58%, transparent 95.58% 98.02%, rgba(2, 38, 6, 0.2) 98.02% 98.12%, transparent 98.12%),
		linear-gradient(180deg, #043d08 0%, rgba(6, 73, 13, 0.97) 28%, rgba(6, 73, 13, 0) 100%);
	clip-path: polygon(0 0, 0 3%, 0.78% 5%, 1.02% 76%, 1.2% 4%, 4.48% 7%, 4.78% 100%, 5.02% 5%, 5.92% 3%, 6.12% 48%, 6.3% 4%, 12.94% 6%, 13.32% 100%, 13.62% 4%, 18.08% 8%, 18.38% 63%, 18.58% 5%, 25.84% 3%, 26.2% 94%, 26.48% 6%, 26.88% 5%, 27.08% 36%, 27.24% 7%, 34.18% 4%, 34.58% 100%, 34.9% 6%, 42.4% 8%, 42.72% 56%, 42.94% 5%, 50.68% 3%, 51.06% 88%, 51.34% 6%, 51.74% 5%, 51.94% 44%, 52.12% 7%, 59.92% 4%, 60.34% 100%, 60.7% 6%, 68.2% 7%, 68.54% 72%, 68.78% 4%, 74.72% 3%, 75.12% 96%, 75.42% 6%, 82.4% 8%, 82.74% 52%, 82.96% 5%, 87% 4%, 87.42% 100%, 87.78% 7%, 95.18% 5%, 95.54% 80%, 95.8% 3%, 97.86% 6%, 98.08% 42%, 98.28% 5%, 100% 3%, 100% 0);
	filter: drop-shadow(0 0.5rem 0.46rem rgba(1, 24, 4, 0.32));
	pointer-events: none;
}

:root .frontmark-footer {
	position: relative;
	overflow: visible;
	isolation: isolate;
}

:root .frontmark-footer::before {
	content: "";
	position: absolute;
	z-index: 0;
	inset-inline: 0;
	inset-block-start: calc(var(--frontmark-caving-footer-stalagmite-depth, 72px) * -1);
	height: calc(var(--frontmark-caving-footer-stalagmite-depth, 72px) + 2px);
	background:
		radial-gradient(ellipse 0.85rem 2.05rem at 3.9% 80%, rgba(68, 68, 62, 0.15), transparent 76%),
		radial-gradient(ellipse 1.15rem 3.15rem at 7.8% 61%, rgba(88, 88, 80, 0.18), transparent 74%),
		radial-gradient(ellipse 0.95rem 2.35rem at 12.1% 94%, rgba(58, 58, 54, 0.14), transparent 78%),
		radial-gradient(ellipse 1.8rem 4.7rem at 16.9% 57%, rgba(96, 96, 88, 0.2), transparent 72%),
		radial-gradient(ellipse 1.25rem 3.3rem at 22.5% 78%, rgba(74, 74, 68, 0.16), transparent 76%),
		radial-gradient(ellipse 0.95rem 2.4rem at 27.3% 91%, rgba(60, 60, 56, 0.14), transparent 78%),
		radial-gradient(ellipse 2.65rem 6.9rem at 32.6% 38%, rgba(112, 112, 102, 0.21), transparent 70%),
		radial-gradient(ellipse 1.55rem 4.1rem at 38.8% 69%, rgba(82, 82, 76, 0.17), transparent 74%),
		radial-gradient(ellipse 1.2rem 3.1rem at 45.9% 75%, rgba(70, 70, 64, 0.15), transparent 76%),
		radial-gradient(ellipse 3.15rem 8rem at 51.4% 24%, rgba(120, 120, 110, 0.23), transparent 70%),
		radial-gradient(ellipse 1.4rem 3.55rem at 57.9% 56%, rgba(86, 86, 78, 0.17), transparent 74%),
		radial-gradient(ellipse 0.88rem 2rem at 63.3% 92%, rgba(52, 52, 48, 0.14), transparent 78%),
		radial-gradient(ellipse 1.95rem 5.35rem at 66.1% 60%, rgba(88, 88, 80, 0.18), transparent 72%),
		radial-gradient(ellipse 1.4rem 3.8rem at 71.6% 74%, rgba(74, 74, 68, 0.15), transparent 76%),
		radial-gradient(ellipse 2.45rem 6.4rem at 76.8% 31%, rgba(108, 108, 98, 0.2), transparent 70%),
		radial-gradient(ellipse 1.05rem 2.6rem at 83.2% 86%, rgba(62, 62, 58, 0.14), transparent 78%),
		radial-gradient(ellipse 1.75rem 4.5rem at 88.4% 47%, rgba(92, 92, 84, 0.18), transparent 74%),
		radial-gradient(ellipse 1.15rem 3.15rem at 93.6% 78%, rgba(70, 70, 64, 0.15), transparent 76%),
		radial-gradient(ellipse 0.85rem 2.1rem at 98.3% 55%, rgba(84, 84, 76, 0.14), transparent 78%),
		linear-gradient(91deg, transparent 0 3.62%, rgba(68, 68, 62, 0.15) 3.62% 3.78%, transparent 3.78% 7.48%, rgba(88, 88, 80, 0.18) 7.48% 7.72%, transparent 7.72% 11.84%, rgba(58, 58, 54, 0.14) 11.84% 11.98%, transparent 11.98% 16.44%, rgba(96, 96, 88, 0.2) 16.44% 16.76%, transparent 16.76% 22.18%, rgba(74, 74, 68, 0.16) 22.18% 22.38%, transparent 22.38% 27.08%, rgba(60, 60, 56, 0.14) 27.08% 27.22%, transparent 27.22% 32%, rgba(112, 112, 102, 0.21) 32% 32.52%, transparent 32.52% 38.46%, rgba(82, 82, 76, 0.17) 38.46% 38.7%, transparent 38.7% 45.58%, rgba(70, 70, 64, 0.15) 45.58% 45.76%, transparent 45.76% 50.78%, rgba(120, 120, 110, 0.23) 50.78% 51.38%, transparent 51.38% 57.54%, rgba(86, 86, 78, 0.17) 57.54% 57.78%, transparent 57.78% 63.08%, rgba(52, 52, 48, 0.14) 63.08% 63.18%, transparent 63.18% 65.76%, rgba(88, 88, 80, 0.18) 65.76% 66.08%, transparent 66.08% 71.24%, rgba(74, 74, 68, 0.15) 71.24% 71.46%, transparent 71.46% 76.28%, rgba(108, 108, 98, 0.2) 76.28% 76.76%, transparent 76.76% 82.96%, rgba(62, 62, 58, 0.14) 82.96% 83.1%, transparent 83.1% 88.04%, rgba(92, 92, 84, 0.18) 88.04% 88.36%, transparent 88.36% 93.32%, rgba(70, 70, 64, 0.15) 93.32% 93.52%, transparent 93.52% 98.1%, rgba(84, 84, 76, 0.14) 98.1% 98.24%, transparent 98.24%),
		linear-gradient(180deg, #101010 0%, #060606 46%, #000000 100%);
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1000 108' preserveAspectRatio='none'%3E%3Cpath fill='black' d='M0 108V84C10 88 20 82 31 86C42 90 48 74 59 76C70 78 75 50 88 55C101 60 109 97 124 91C139 85 146 67 162 62C178 57 188 82 204 76C219 70 230 93 246 89C263 84 268 61 286 54C304 47 312 28 332 35C352 42 359 73 378 66C396 59 406 86 423 80C442 73 447 41 466 33C486 25 493 11 515 20C536 29 543 64 564 56C584 48 595 102 613 93C631 84 640 74 657 68C676 61 685 83 704 77C722 71 729 52 748 43C767 34 778 20 799 30C820 40 825 88 846 83C866 78 873 58 892 52C910 46 921 37 940 48C958 59 964 80 981 73C991 69 996 63 1000 56V108Z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1000 108' preserveAspectRatio='none'%3E%3Cpath fill='black' d='M0 108V84C10 88 20 82 31 86C42 90 48 74 59 76C70 78 75 50 88 55C101 60 109 97 124 91C139 85 146 67 162 62C178 57 188 82 204 76C219 70 230 93 246 89C263 84 268 61 286 54C304 47 312 28 332 35C352 42 359 73 378 66C396 59 406 86 423 80C442 73 447 41 466 33C486 25 493 11 515 20C536 29 543 64 564 56C584 48 595 102 613 93C631 84 640 74 657 68C676 61 685 83 704 77C722 71 729 52 748 43C767 34 778 20 799 30C820 40 825 88 846 83C866 78 873 58 892 52C910 46 921 37 940 48C958 59 964 80 981 73C991 69 996 63 1000 56V108Z'/%3E%3C/svg%3E");
	-webkit-mask-size: 100% 100%;
	mask-size: 100% 100%;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	filter: drop-shadow(0 -0.22rem 0.2rem rgba(0, 0, 0, 0.7));
	pointer-events: none;
}

:root .frontmark-footer-inner {
	position: relative;
	z-index: 1;
}

:root.frontmark-header-minimized {
	--frontmark-caving-stalactite-depth: 38px;
}

@media (max-width: 49.999rem) {
	:root {
		--frontmark-caving-stalactite-depth: 40px;
	}

	:root mobile-starlight-toc nav {
		top: calc(var(--sl-nav-height) + var(--frontmark-caving-stalactite-depth, 30px) - 1px);
	}

	:root .main-frame {
		padding-top: calc(var(--sl-nav-height) + var(--sl-mobile-toc-height) + var(--frontmark-caving-stalactite-depth, 30px)) !important;
	}
}

:root :where(header.header, .frontmark-header-shell) .frontmark-header-menu-panel a {
	font-family: var(--frontmark-font-text);
}

:root .sl-markdown-content .mkdocs-tag,
:root .prose .mkdocs-tag {
	border-color: var(--frontmark-tag-border);
	color: var(--frontmark-tag-text);
	background: var(--frontmark-tag-background);
}

:root .sl-markdown-content .mkdocs-tag:hover,
:root .sl-markdown-content .mkdocs-tag:focus-visible,
:root .prose .mkdocs-tag:hover,
:root .prose .mkdocs-tag:focus-visible {
	border-color: var(--frontmark-tag-hover-border);
	color: var(--frontmark-tag-hover-text);
	background: var(--frontmark-tag-hover-background);
}

:root .brand-title strong {
	--frontmark-title-effect-color: #c7d5ad;
	--frontmark-title-effect-shadow: #032807;
	isolation: isolate;
	color: var(--frontmark-header-text);
	font-family: var(--frontmark-font-menu);
	font-weight: 850;
	letter-spacing: 0.035em;
	text-shadow:
		0 1px 0 rgba(255, 255, 255, 0.14),
		0 0.18rem 0.46rem rgba(0, 14, 3, 0.48);
}

:root .brand-title strong::before {
	content: "";
	position: absolute;
	z-index: -1;
	inset: -0.12rem -0.28rem -0.18rem;
	border-radius: 0.22rem;
	background:
		linear-gradient(90deg, transparent, rgba(224, 239, 196, 0.08), transparent 72%),
		linear-gradient(180deg, rgba(2, 38, 6, 0.18), transparent);
	opacity: 0.76;
	pointer-events: none;
}

:root .brand-title strong::after {
	content: "";
	position: absolute;
	inset-inline: 0.1rem 0.18rem;
	inset-block-end: -0.28rem;
	height: 0.18rem;
	background:
		radial-gradient(ellipse at 14% 50%, rgba(231, 242, 207, 0.8) 0 0.1rem, transparent 0.11rem),
		radial-gradient(ellipse at 58% 50%, rgba(231, 242, 207, 0.52) 0 0.075rem, transparent 0.085rem),
		linear-gradient(90deg, transparent, color-mix(in srgb, var(--frontmark-title-effect-color) 76%, transparent) 16% 84%, transparent);
	clip-path: polygon(0 62%, 12% 42%, 28% 56%, 44% 34%, 60% 60%, 76% 44%, 90% 58%, 100% 38%, 100% 100%, 0 100%);
	opacity: 0.78;
	pointer-events: none;
}

:root .frontmark-acronym-letter {
	color: #e8f2ce;
	font-size: 1.28em;
	line-height: 0.84;
	text-shadow:
		0 1px 0 rgba(1, 24, 4, 0.68),
		0 0 0.48rem rgba(199, 213, 173, 0.3);
}

:root .brand-title small {
	color: rgba(226, 244, 217, 0.78);
}

:root .brand-version {
	border-color: rgba(226, 244, 217, 0.26);
	background: rgba(2, 40, 7, 0.24);
	color: #ecf9df;
}

:root .frontmark-header-nav a:hover,
:root .frontmark-header-nav a:focus-visible,
:root .frontmark-header-nav a[aria-current="page"] {
	border-color: rgba(226, 244, 217, 0.3);
	background: rgba(243, 255, 240, 0.12);
	color: #f8fff4;
	box-shadow: inset 0 -2px 0 rgba(199, 213, 173, 0.34);
}
