:root {
	--font-mono: "Roboto Mono", ui-monospace, monospace;
	--font-sans: "Inter", system-ui, sans-serif;
	--font-display: "TASA Orbiter", system-ui, sans-serif;
	--color-white: oklch(99.703% 0 271.152deg);
	--color-off-white: oklch(98.212% 0 271.152deg);
	--color-n-dark: oklch(28.908% 0 271.152deg);
	--color-n-mid: oklch(80.466% 0 271.152deg);
	--color-n-light: oklch(89.755% 0 271.152deg);
	--color-black: oklch(14.479% 0 271.152deg);
	--color-brand-orange: oklch(66.505% 0.2232 36.725deg);
	--gradient-overlay: linear-gradient(0deg, #0a0a0a66 0%, #0a0a0a66 100%);
	--gradient-bg: linear-gradient(165deg, #0a0a0abf -9%, #2e2e2ebf 55%);
	--fs-display-xl: clamp(5.5rem, 3.75rem + 7.5cqi, 10rem);
	--fs-display-lg: clamp(4.25rem, 3rem + 5cqi, 8rem);
	--fs-display: clamp(3.5rem, 3rem + 2.5cqi, 5rem);
	--fs-h1: clamp(2.5rem, 2.08rem + 2.08cqi, 3.75rem);
	--fs-h2: clamp(2rem, 1.625rem + 1.88cqi, 3.125rem);
	--fs-h3: clamp(1.5rem, 1.27rem + 1.15cqi, 2.1875rem);
	--fs-h4: clamp(1.25rem, 1.04rem + 1.04cqi, 1.875rem);
	--fs-h5: clamp(1.125rem, 1rem + 0.63cqi, 1.5rem);
	--fs-h6: clamp(1rem, 0.92rem + 0.42cqi, 1.25rem);
}

body {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	color: var(--color-black);

	&.no-scroll {
		overflow: hidden;
	}
}

button {
	cursor: pointer;
}

h1,
.text-h1,
h2,
.text-h2,
h3,
.text-h3,
h4,
.text-h4,
h5,
.text-h5,
h6,
.text-h6 {
	margin-bottom: 0;
	font-family: var(--font-display);
	font-weight: 800;
	line-height: 1.1;
}

.display-lg {
	font-size: var(--fs-display-lg);
	line-height: 0.9;
	letter-spacing: -4.3px;
}

.display {
	font-family: var(--font-display);
	font-size: var(--fs-display);
	font-weight: 800;
	line-height: 1.1;
	letter-spacing: -2.15px;
}

h1,
.text-h1 {
	font-size: var(--fs-h1);
	letter-spacing: -1.14px;
}

h2,
.text-h2 {
	font-size: var(--fs-h2);
	letter-spacing: -0.95px;
}

h3,
.text-h3 {
	font-size: var(--fs-h3);
	letter-spacing: -0.67px;
}

h4,
.text-h4 {
	font-size: var(--fs-h4);
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: -0.57px;
}

h5,
.text-h5 {
	font-size: var(--fs-h5);
	line-height: 1.3;
	letter-spacing: -0.46px;
}

h6,
.text-h6 {
	font-size: var(--fs-h6);
	font-weight: 600;
	line-height: 1.3 !important;
	letter-spacing: -0.38px;
}

p {
	margin-bottom: 0;
}

.font-mono {
	font-family: var(--font-mono);
}

.font-sans {
	font-family: var(--font-sans);
}

.font-display {
	font-family: var(--font-display);
}

.fw-extrabold {
	font-weight: 800;
}

.text-black {
	color: var(--color-black) !important;
}

.text-off-white {
	color: var(--color-off-white);
}

.text-brand-orange {
	color: var(--color-brand-orange);
}

.bg-black {
	background-color: var(--color-black) !important;
}

.bg-off-white {
	background-color: var(--color-off-white);
}

.max-w-contain {
	padding-inline: max(1rem, 50% - 40rem);
}

.inset-0 {
	inset: 0;
}

.blur {
	backdrop-filter: blur(8px);
}

@keyframes marching-ants {
	to {
		stroke-dashoffset: -9;
	}
}

@media (width >= 768px) and (prefers-reduced-motion: no-preference) {
	[data-animate] {
		&.is-active {
			animation: enter var(--duration, 1s) ease var(--delay, 0s) 1 normal none;
		}

		&:not(.no-fade) {
			opacity: 0%;
			transition: opacity var(--duration, 1s) ease var(--delay, 0s);

			&.is-active {
				opacity: 100%;
			}
		}
	}

	@keyframes enter {
		from {
			transform: translate(var(--translate-x, 0), var(--translate-y, 0));
		}
	}
}

.btn {
	display: inline-flex;
	gap: 0.5rem;
	align-items: center;
	padding: 0.5rem 1.25rem;
	font-family: var(--font-mono);
	text-transform: uppercase;
	border: none;
	border-radius: 0;
	transition:
		color 0.3s,
		background-color 0.3s;

	& svg {
		width: 1rem;
		height: 1rem;
		transition: rotate 0.3s;
	}

	&:hover svg:not(.inert) {
		rotate: -45deg;
	}
}

.btn-white,
.btn-black,
.btn-orange,
.btn-subtle {
	position: relative;
	z-index: 0;
	overflow: hidden;
	color: var(--btn-color);
	isolation: isolate;

	&::before {
		position: absolute;
		inset-inline: 0;
		bottom: 0;
		z-index: -1;
		height: 100%;
		content: "";
		background-color: var(--btn-color);
		clip-path: inset(calc(100% - 0.25rem) 0 0);
		transition: clip-path 0.3s ease-out;
	}

	&:hover {
		color: var(--btn-hover);

		&::before {
			clip-path: inset(0);
		}
	}
}

.btn-white {
	--btn-color: var(--color-off-white);
	--btn-hover: var(--color-n-dark);

	background-color: var(--color-n-dark);
}

.btn-black {
	--btn-color: var(--color-n-dark);
	--btn-hover: var(--color-off-white);

	background-color: var(--color-off-white);
}

.btn-orange {
	--btn-color: var(--color-brand-orange);
	--btn-hover: var(--color-n-dark);

	background-color: var(--color-n-dark);
}

.btn-subtle {
	--btn-color: var(--color-n-dark);

	&::before {
		--btn-color: var(--color-brand-orange);
	}
}

.btn-link {
	padding: 0;
	font-weight: 700;
	text-decoration: none;

	&:not(.inverted) {
		color: currentcolor;

		&:hover {
			color: var(--color-brand-orange);
		}
	}

	&.inverted {
		color: var(--color-brand-orange);

		&:hover {
			color: currentcolor;
		}
	}
}

.tag {
	padding: 0.25rem;
	font-weight: 700;
	color: var(--color-black);
	background-color: var(--color-n-mid);

	&.primary {
		background-color: var(--color-brand-orange);
	}
}

form :is(label:not(input[type="radio"] + label), legend) {
	display: block;
	margin-bottom: 0.5rem;
	font-family: var(--font-mono);
	font-size: 1.125rem;
	text-transform: uppercase;
}
#contact-form fieldset {
	max-width: 100% !important;
	margin-bottom: 15px;
}
#contact-form fieldset .hs-error-msgs,
#contact-form .hs-error-msgs {
	list-style: none;
	padding: 0;
}
#contact-form fieldset .hs-error-msgs .hs-error-msg,
#contact-form .hs-error-msgs .hs-main-font-element {
	font-size: 0.75rem;
	color: #dc3545;
	margin-top: 3px;
}
#contact-form .hs_submit .hs-button.primary {
	display: inline-flex;
	gap: 0.5rem;
	align-items: center;
	padding: 0.5rem 1.25rem;
	font-family: var(--font-mono);
	text-transform: uppercase;
	border: none;
	border-radius: 0;
	transition:
		color 0.3s,
		background 0.3s;
	border-bottom: 4px solid #fe4c02;
}
#contact-form .hs_submit .hs-button.primary:hover {
	background: #fe4c02;
	color: #fff;
}
.hs-input:not([type="file"]),
.form-field:not([type="file"]) {
	width: 100% !important;
	padding: 0.75rem;
	background-color: var(--color-n-light);
	border: none;
	border-radius: 0;

	&:focus-visible {
		outline: 1px solid var(--color-brand-orange);
		background-color: var(--color-off-white);
	}

	&::placeholder {
		color: var(--color-black);
	}
}

.swiper-controls button {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 1.5rem;
	height: 1.5rem;
	padding: 0;
	color: var(--color-black);
	background: 0 0;
	border: 0;
	transition: color 0.3s;

	&:hover {
		color: var(--color-brand-orange);
	}

	&.swiper-prev {
		rotate: 180deg;
	}

	& svg {
		width: 1.25rem;
		height: 1.25rem;
	}
}

.swiper-pagination {
	--swiper-pagination-progressbar-size: 0.5rem;
	--swiper-pagination-progressbar-bg-color: var(--color-n-light);
	--swiper-pagination-color: var(--color-brand-orange);
	top: initial !important;
	bottom: -1.5rem;
}

#media-control {
	position: absolute;
	right: 1.5rem;
	bottom: 1.5rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.5rem;
	height: 2.5rem;
	padding: 0;
	color: var(--color-off-white);
	background-color: rgb(10 10 10 / 40%);
	border: 1px solid var(--color-off-white);
	transition:
		background-color 150ms ease,
		color 150ms ease;

	&:hover {
		color: var(--color-black);
		background-color: var(--color-off-white);
	}

	svg {
		width: 1rem;
		height: 1rem;
		fill: currentcolor;
	}

	.icon-play {
		display: none;
	}

	&[aria-pressed="false"] {
		.icon-pause {
			display: none;
		}

		.icon-play {
			display: block;
		}
	}
}

section:has(.card-list) h2 {
	@media (width>=768px) {
		max-width: 60%;
	}
}

.card-list {
	grid-template-columns: 1fr;

	@media (width>=768px) {
		grid-template-columns: repeat(2, 1fr);
	}

	@media (width>=1200px) {
		grid-template-columns: repeat(4, 1fr);
	}

	& .card {
		border-radius: 0;
		padding: 2rem;
	}
}

:is(.comparison, #platforms) {
	& .glow {
		inset-inline: 0;
		top: -35rem;
		width: 75rem;
		height: 40rem;
		background-color: var(--color-brand-orange);
		border-radius: 75%;
		filter: blur(120px);
	}

	& .content {
		padding-inline: 2rem;
		background-color: #fefefe1a;

		@media (width>=992px) {
			padding-inline: 4rem;
		}

		& h2 {
			max-width: 42rem;
		}
	}
}

.article-container {
	padding-block: 8rem 6rem;

	@media (width>=768px) {
		background: url("./assets/article-pattern.svg") 100% 0/25% repeat-y;
	}
}

#insight-article .article-container article {
	padding-top: 4rem;

	@media (width>=768px) {
		max-width: 75%;
		padding-top: 8rem;
	}

	& time {
		font-size: 1.5rem;
	}

	& img {
		aspect-ratio: 16/9;
	}
}

#insight-article .article-container .content {
	font-size: 1.25rem;

	& a {
		font-weight: 700;
		color: var(--color-brand-orange);
	}

	& blockquote {
		position: relative;
		padding: 3rem;
		margin-bottom: 0;
		color: var(--color-off-white);
		background-color: var(--color-black);
		border-left: 4px solid var(--color-brand-orange);

		&::before {
			position: absolute;
			width: 1.25rem;
			height: 1.25rem;
			padding: 1.875rem;
			content: "";
			background: var(--color-brand-orange)
				url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='23' height='20' viewBox='0 0 23 20' fill='none'%3E%3Cpath d='M0 14.4487C0 13.2573 0.140556 12.0025 0.421667 10.6844C0.728333 9.36629 1.17556 8.06084 1.76333 6.76806C2.32556 5.50063 3.01556 4.2839 3.83333 3.11787C4.65111 1.95184 5.59667 0.912548 6.67 0L10.5417 2.73764C9.34056 4.53739 8.43333 6.37516 7.82 8.25095C7.23222 10.1267 6.93833 12.1546 6.93833 14.3346V20H0V14.4487ZM12.4583 14.4487C12.4583 13.2573 12.5989 12.0025 12.88 10.6844C13.1867 9.36629 13.6339 8.06084 14.2217 6.76806C14.7839 5.50063 15.4739 4.2839 16.2917 3.11787C17.1094 1.95184 18.055 0.912548 19.1283 0L23 2.73764C21.7989 4.53739 20.8917 6.37516 20.2783 8.25095C19.6906 10.1267 19.3967 12.1546 19.3967 14.3346V20H12.4583V14.4487Z' fill='%23F9F9F9'%3E%3C/path%3E%3C/svg%3E")
				no-repeat center;
		}

		& p {
			margin-top: 4.875rem;
			font-size: var(--fs-h3);
			font-weight: 800;
			line-height: 1.1;
			letter-spacing: -0.67px;
		}
	}

	& p:not(:last-child) {
		margin-bottom: 1rem;
	}

	iframe {
		max-width: 100%;
	}
}

#related {
	padding-block: 6rem;

	& h2 {
		@media (width>=768px) {
			max-width: 60%;
		}
	}
}

.insight {
	& img {
		height: 14rem;
	}

	& svg {
		height: 2rem;
	}

	& p {
		font-size: 1.25rem;
	}

	& .content:not(:has(time))::before {
		display: block;
		height: 1.5em;
		content: "";
	}
}

#menu {
	z-index: 1000;
	display: grid;
	visibility: hidden;
	grid-template-columns: 1fr;
	padding-top: calc(var(--header-height) + 1rem);
	background-color: var(--color-white);
	clip-path: inset(0 0 100%);
	transition:
		clip-path 0.4s cubic-bezier(0.8, 0, 0.2, 1),
		visibility 0s linear 0.4s;

	@media (width>=768px) {
		grid-template-columns: 1fr 1fr;
	}

	& > * {
		opacity: 0%;
		transform: translateY(1rem);
		transition:
			opacity 0.2s,
			transform 0.2s;

		@media (width >= 96rem) {
			padding-top: 6rem;
		}
	}

	&.open {
		visibility: visible;
		clip-path: inset(0);
		transition:
			clip-path 0.4s cubic-bezier(0.8, 0, 0.2, 1),
			visibility linear;

		& > * {
			opacity: 100%;
			transform: translateY(0);
			transition:
				opacity 0.4s 0.4s,
				transform 0.4s 0.4s;
		}
	}

	& .menu-item {
		width: 100%;
		border-bottom: 4px solid var(--color-black);
		transition:
			color 0.15s,
			border-color 0.15s;

		@media (width>=768px) {
			max-width: 32rem;
		}

		&[open],
		&:hover {
			color: var(--color-brand-orange);
		}
	}

	& .marker {
		transition: transform 0.15s;

		details[open] & {
			transform: rotate(180deg);
		}
	}

	& nav a {
		color: var(--color-black);
		text-decoration: none;
	}

	& details a:hover {
		color: var(--color-brand-orange);
		text-decoration: underline;
	}

	& .featured-cta {
		justify-self: end;
		width: 100%;

		@media (width>=768px) {
			max-width: 36rem;
		}
	}
}

#menu #search-form {
	& input {
		color: inherit;
		outline: none;
		background: 0 0;
		border: none;

		&::placeholder {
			color: var(--color-black);
			transition: color 0.15s;
		}

		&:focus-visible::placeholder {
			color: var(--color-n-mid);
		}
	}

	& button {
		color: inherit;
		cursor: pointer;
		background: 0 0;
		border: none;
	}

	&:has(input:focus-visible) {
		color: var(--color-brand-orange);
		border-color: var(--color-brand-orange);
	}
}

#site-header {
	& > div {
		max-width: 100%;
		margin: 0 auto;
		background-color: #fff3;
		mix-blend-mode: difference;
		transition: all 0.3s ease-out;
	}

	&:has(~ .open) > div {
		background-color: transparent;
	}

	& .logo {
		height: 2.5rem;
		color: var(--color-white);

		& svg {
			height: 1.5rem;
		}
	}

	& #menu-btn {
		top: 1rem;
		right: 1rem;
		z-index: 9999;
		place-items: center;
		border: none;

		@media (width>=768px) {
			right: unset;
			left: 50%;
			translate: -50%;
		}

		& > span {
			grid-area: 1/1;
			transition: transform 0.3s;

			svg {
				width: 1rem;
				height: 1rem;
			}
		}

		&:not(.open) .open {
			transform: translateY(150%);
		}

		&.open {
			color: var(--color-white);
			background-color: var(--color-black);

			.closed {
				transform: translateY(-150%);
			}
		}
	}
}

#site-header .cta {
	top: 1rem;
	right: 1rem;
	z-index: 9999;
}

#site-footer nav:not(#legal) {
	grid-template-columns: repeat(2, 1fr);

	@media (width>=768px) {
		grid-template-columns: repeat(3, 1fr);
	}

	@media (width>=992px) {
		grid-template-columns: repeat(6, 1fr);
	}

	& h3 {
		border-bottom: 1px solid var(--color-off-white);

		& a {
			text-decoration: none;
			transition: color 0.15s;

			&:hover {
				color: var(--color-brand-orange);
			}
		}
	}

	& li a {
		font-size: 0.875rem;
		text-decoration: none;

		&:hover {
			text-decoration: 1px underline var(--color-brand-orange);
			text-underline-offset: 1px;
		}
	}
}

#socials a {
	& svg {
		width: 1.25rem;
		height: 1.25rem;
		fill: var(--color-off-white);
		transition: fill 0.15s;
	}

	&:hover svg {
		fill: var(--color-brand-orange);
	}
}

#legal a {
	flex-shrink: 0;
	font-family: var(--font-mono);
	font-weight: 700;
	color: var(--color-off-white);
	text-transform: uppercase;
	text-decoration: none;
	transition: color 0.15s;

	&:hover {
		color: var(--color-brand-orange);
	}
}

#site-footer #logo {
	color: var(--color-n-dark);

	& div {
		height: 0.75rem;
		background-color: var(--color-brand-orange);
	}
}

#hero:not(.subpage) {
	padding-block: 8rem 4rem;
	background: url("data:image/svg+xml,%3csvg%20width='434'%20height='1080'%20viewBox='0%200%20434%201080'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20opacity='0.35'%3e%3cpath%20d='M13.9405%20-37.1257L13.9404%20384.499'%20stroke='%23BFBFBF'%20stroke-width='0.71'%20stroke-miterlimit='10'%20/%3e%3cpath%20d='M58.2618%20-37.1257L58.2617%20384.499'%20stroke='%23BFBFBF'%20stroke-width='2.47'%20stroke-miterlimit='10'%20/%3e%3cpath%20d='M102.585%20-37.1257L102.585%20384.499'%20stroke='%23BFBFBF'%20stroke-width='4.24'%20stroke-miterlimit='10'%20/%3e%3cpath%20d='M146.905%20-37.1257L146.905%20384.499'%20stroke='%23BFBFBF'%20stroke-width='6.35'%20stroke-miterlimit='10'%20/%3e%3cpath%20d='M191.228%20-37.1257L191.228%20384.499'%20stroke='%23BFBFBF'%20stroke-width='8.12'%20stroke-miterlimit='10'%20/%3e%3cpath%20d='M235.551%20-37.1257L235.551%20384.499'%20stroke='%23BFBFBF'%20stroke-width='9.88'%20stroke-miterlimit='10'%20/%3e%3cpath%20d='M279.872%20-37.1257L279.872%20384.499'%20stroke='%23BFBFBF'%20stroke-width='11.65'%20stroke-miterlimit='10'%20/%3e%3cpath%20d='M324.194%20-37.1257L324.194%20384.499'%20stroke='%23BFBFBF'%20stroke-width='13.41'%20stroke-miterlimit='10'%20/%3e%3cpath%20d='M368.517%20-37.1259L368.517%20384.498'%20stroke='%23BFBFBF'%20stroke-width='15.18'%20stroke-miterlimit='10'%20/%3e%3cpath%20d='M412.838%20-37.1259L412.838%20384.498'%20stroke='%23BFBFBF'%20stroke-width='16.94'%20stroke-miterlimit='10'%20/%3e%3cpath%20d='M13.9405%20384.498L13.9404%20806.123'%20stroke='%23BFBFBF'%20stroke-width='27.88'%20stroke-miterlimit='10'%20/%3e%3cpath%20d='M58.2618%20384.498L58.2617%20806.123'%20stroke='%23BFBFBF'%20stroke-width='27.88'%20stroke-miterlimit='10'%20/%3e%3cpath%20d='M102.583%20384.498L102.583%20806.123'%20stroke='%23BFBFBF'%20stroke-width='26.47'%20stroke-miterlimit='10'%20/%3e%3cpath%20d='M146.905%20384.499L146.905%20806.123'%20stroke='%23BFBFBF'%20stroke-width='25.06'%20stroke-miterlimit='10'%20/%3e%3cpath%20d='M191.23%20384.498L191.229%20806.123'%20stroke='%23BFBFBF'%20stroke-width='23.65'%20stroke-miterlimit='10'%20/%3e%3cpath%20d='M235.551%20384.498L235.551%20806.123'%20stroke='%23BFBFBF'%20stroke-width='22.24'%20stroke-miterlimit='10'%20/%3e%3cpath%20d='M279.872%20384.498L279.872%20806.123'%20stroke='%23BFBFBF'%20stroke-width='20.82'%20stroke-miterlimit='10'%20/%3e%3cpath%20d='M324.194%20384.498L324.194%20806.123'%20stroke='%23BFBFBF'%20stroke-width='19.41'%20stroke-miterlimit='10'%20/%3e%3cpath%20d='M368.517%20384.498L368.517%20806.123'%20stroke='%23BFBFBF'%20stroke-width='18'%20stroke-miterlimit='10'%20/%3e%3cpath%20d='M412.838%20384.498L412.838%20806.123'%20stroke='%23BFBFBF'%20stroke-width='16.59'%20stroke-miterlimit='10'%20/%3e%3cpath%20d='M58.2608%20806.122L58.2607%201227.75'%20stroke='%23BFBFBF'%20stroke-width='1.06'%20stroke-miterlimit='10'%20/%3e%3cpath%20d='M102.584%20806.122L102.584%201227.75'%20stroke='%23BFBFBF'%20stroke-width='2.12'%20stroke-miterlimit='10'%20/%3e%3cpath%20d='M146.905%20806.122L146.905%201227.75'%20stroke='%23BFBFBF'%20stroke-width='3.18'%20stroke-miterlimit='10'%20/%3e%3cpath%20d='M191.229%20806.122L191.229%201227.75'%20stroke='%23BFBFBF'%20stroke-width='4.24'%20stroke-miterlimit='10'%20/%3e%3cpath%20d='M235.551%20806.122L235.551%201227.75'%20stroke='%23BFBFBF'%20stroke-width='5.29'%20stroke-miterlimit='10'%20/%3e%3cpath%20d='M279.872%20806.122L279.872%201227.75'%20stroke='%23BFBFBF'%20stroke-width='6.35'%20stroke-miterlimit='10'%20/%3e%3cpath%20d='M324.194%20806.122L324.194%201227.75'%20stroke='%23BFBFBF'%20stroke-width='7.76'%20stroke-miterlimit='10'%20/%3e%3cpath%20d='M368.516%20806.122L368.516%201227.75'%20stroke='%23BFBFBF'%20stroke-width='8.82'%20stroke-miterlimit='10'%20/%3e%3cpath%20d='M412.838%20806.122L412.838%201227.75'%20stroke='%23BFBFBF'%20stroke-width='9.88'%20stroke-miterlimit='10'%20/%3e%3c/g%3e%3c/svg%3e")
		100% no-repeat;

	& hgroup {
		max-width: 54rem;

		& p {
			font-size: 1.25rem;
		}
	}
}

[data-page="404"] #hero {
	padding-bottom: 0;

	& h1 {
		font-size: var(--fs-display-xl);
		line-height: 0.9;
		letter-spacing: -2.15px;
	}
}

#where-to-go {
	padding-bottom: 6rem;

	@media (width>=768px) {
		max-width: 65%;
	}

	& ul {
		& li::marker,
		& a {
			font-weight: 700;
			color: var(--color-brand-orange);
		}
	}
}

[data-page="sitemap"] {
	& #hero {
		padding-bottom: 0;

		& h1 {
			font-size: var(--fs-display-xl);
			line-height: 0.9;
			letter-spacing: -2.15px;
		}
	}

	& .sitemap-group {
		padding: 0;
		padding-left: 1.25rem;

		& .sitemap-group {
			padding-left: 1.25rem;
			list-style: circle;
			margin-top: 0.75rem;
			margin-bottom: 1.5rem;

			& li {
				& a {
					font-size: 1.15rem;
					font-weight: 400;
					text-decoration: none;
				}
			}
		}

		& li {
			& a {
				font-size: 1.25rem;
				font-weight: 500;
				color: var(--bs-body-color);
				text-decoration: none;

				&:hover,
				&.active {
					color: var(--color-brand-orange);
				}
			}

			&.active {
				& a {
					color: var(--color-brand-orange);
				}
			}
		}
	}

	& p {
		font-size: 1.25rem;
	}
}

[data-page="privacy-policy"] #hero {
	padding-bottom: 0;

	& h1 {
		font-size: var(--fs-display-xl);
		line-height: 0.9;
		letter-spacing: -2.15px;
	}

	& p {
		font-size: 1.25rem;
	}
}

[data-page="terms"] #hero {
	padding-bottom: 0;

	& h1 {
		font-size: var(--fs-display-xl);
		line-height: 0.9;
		letter-spacing: -2.15px;
	}

	& p {
		font-size: 1.25rem;
	}
}

[data-page="search"] #hero {
	padding-bottom: 0;

	& h1 {
		font-size: var(--fs-display-xl);
		line-height: 0.9;
		letter-spacing: -2.15px;
	}

	& p {
		font-size: 1.25rem;
	}
}

.breadcrumbs a {
	color: currentcolor;
	text-decoration: none;

	&:hover {
		text-decoration: underline;
	}
}

#hero.subpage {
	padding-block: 8rem 6rem;

	& .overlay {
		background: var(--gradient-overlay);
	}

	& h1 {
		max-width: 44rem;
		margin-bottom: 6rem;
	}

	& hgroup {
		max-width: 58rem;
	}
}

.card {
	& img {
		width: 2.5rem;
		height: 2.5rem;
	}

	& p {
		font-size: 1.125rem;
	}
}

.accordion {
	& summary {
		cursor: pointer;
		border-bottom: 0.25rem solid #0000;
		transition: border-color 0.3s;

		&::marker {
			display: none;
		}
	}

	&:not([open]) summary:hover {
		border-color: var(--color-brand-orange);
	}

	& .marker {
		width: 1rem;
		height: 1rem;

		& svg {
			width: 100%;
			height: 100%;
			transition:
				transform 0.3s,
				opacity 0.3s;
		}
	}

	& .plus {
		opacity: 100%;
		transform: rotate(0) scale(1);
	}

	& .minus {
		opacity: 0%;
		transform: rotate(-90deg) scale(0.5);
	}

	&[open] .plus {
		opacity: 0%;
		transform: rotate(90deg) scale(0.5);
	}

	&[open] .minus {
		opacity: 100%;
		transform: rotate(0) scale(1);
	}

	& .content {
		color: var(--color-black);
		background-color: var(--color-brand-orange);
	}
}

#contact-cta {
	padding-block: 6rem;
	background: url("./assets/contact-pattern.svg");

	@media (width>=768px) {
		padding-block: 8rem;
	}
}

#whats-included {
	padding-block: 6rem;
	background: url("./assets/ignite-pattern.svg") 50% no-repeat;

	& h2 {
		@media (width>=768px) {
			max-width: 60%;
		}
	}

	& #roadmap {
		background: var(--gradient-bg);

		& .milestone {
			width: 100%;

			& p,
			& li {
				font-size: 1.125rem;
			}
		}
	}
}

#qualities {
	padding-block: 8rem;
}

#see-other {
	padding-block: 6rem;
	background: url("./assets/ai-icon.png") 50% no-repeat;

	& .item {
		border-bottom: 4px solid var(--color-brand-orange);
	}
}

#expertise {
	padding-block: 6rem;
	background: url("./assets/expertise-pattern.svg");

	& h2 {
		@media (width>=768px) {
			max-width: 60%;
		}
	}

	& #capabilities {
		grid-template-columns: 1fr;

		@media (width>=768px) {
			grid-template-columns: repeat(2, 1fr);
		}

		@media (width>=992px) {
			grid-template-columns: repeat(3, 1fr);
		}
	}

	& .capability {
		& img {
			height: 14rem;
		}

		& > div {
			background: var(--gradient-bg);
			border-bottom: 4px solid var(--color-brand-orange);
		}
	}
}

#platforms {
	padding-block: 8rem;

	& svg {
		overflow: visible;
	}

	& .lines path {
		animation: 0.4s linear infinite marching-ants;
	}

	& #logos {
		gap: 5rem;

		& .top,
		& .bottom {
			grid-template-columns: repeat(2, minmax(0, 1fr));

			@media (width>=768px) {
				grid-template-columns: repeat(4, minmax(0, 1fr));
			}
		}

		& .item {
			height: 6rem;
			padding: 1.25rem;
			background: #4e4e4e;
			border-image: linear-gradient(to right, var(--color-off-white), #939393) 1 / 1px;
			box-shadow: 0 0 20px #0a0a0a80;
		}
	}
}

.swiper-pagination.custom {
	height: var(--swiper-pagination-progressbar-size);
	background-color: var(--swiper-pagination-progressbar-bg-color);

	& .swiper-pagination-fill {
		background-color: var(--swiper-pagination-color);
		transition: width 0.3s;
	}
}

.accordion-slider {
	padding-block: 6rem;
	background: url("./assets/process-pattern.svg") top repeat-x;

	& h2 {
		@media (width>=768px) {
			max-width: 60%;
		}
	}

	& .slide {
		background: var(--gradient-bg);

		& .content {
			display: flex;

			p {
				margin-bottom: 1rem;
			}
		}

		@media (width>=992px) {
			flex: 0 0 7rem;
			height: 42rem;
			overflow: hidden;
			cursor: pointer;
			transition:
				flex-grow 0.5s,
				flex-basis 0.5s;
		}
	}

	@media (width>=992px) {
		& .slide:not(.open) {
			& header {
				align-items: center;
				padding-inline: 1rem;
			}

			& h3 {
				white-space: nowrap;
				writing-mode: vertical-rl;
				rotate: 180deg;
			}

			& .content {
				display: none;
			}
		}

		& .slide.open {
			flex-grow: 1;
			flex-basis: 0;
			cursor: default;

			& header {
				align-items: flex-start;
				min-width: 50rem;
				padding: 3rem;
			}

			& h3 {
				font-size: var(--fs-display);
				writing-mode: unset;
				rotate: 0deg;
			}

			& .content {
				display: flex;
				min-width: 50rem;
			}
		}
	}

	& .swiper-controls {
		display: none !important;

		@media (width>=992px) {
			display: flex !important;
		}

		& button {
			color: var(--color-off-white);
		}
	}
}

.featured {
	min-height: 24rem;

	img {
		position: absolute;
		inset: 0;
		height: 100%;

		@media (width >= 768px) {
			position: static;
			aspect-ratio: 16 / 9;
		}
	}

	& header {
		height: 3rem;
		background-color: #0a0a0a33;
		transition: height 0.3s ease-out;
	}

	& .content {
		inset-inline: 1rem;
		bottom: 1rem;
		cursor: pointer;
		border-bottom: 0.75rem solid var(--color-black);
		transition:
			color 0.3s,
			background-color 0.3s,
			border-color 0.3s;

		@media (width>=768px) {
			max-width: 60%;
		}
	}

	&.active {
		& .content {
			color: var(--color-off-white);
			background-color: var(--color-black);
			border-bottom-color: var(--color-brand-orange);

			& h3,
			& p,
			& a:not(:hover) {
				color: var(--color-off-white);
			}
		}

		& header {
			height: 100%;
		}
	}
}

#trusted-by {
	padding-block: 4rem;
	color: var(--color-black);

	& .swiper {
		mask-image: linear-gradient(90deg, #0000, #000 15% 85%, #0000);
	}

	& .swiper-wrapper {
		transition-timing-function: linear !important;

		& .swiper-slide {
			&.logo {
				display: flex;
				align-items: center;
				justify-content: center;
				height: 3.75rem;
			}

			&.logo {
				& img {
					height: 2.25rem;
				}
			}
		}
	}
}

	#results {
		padding-block: 2rem 6rem;

		& .featured {
			aspect-ratio: 16/9;
		}
	}

	#proven-track {
		padding-block: 6rem;

		& h2 {
			margin-bottom: 5rem;

			@media (width>=768px) {
				max-width: 60%;
			}
		}

		& .step {
			flex: 18rem;
			background: var(--gradient-bg);
			border-bottom: 4px solid var(--color-brand-orange);
		}
	}

	.link-card {
		& img {
			height: 14rem;
		}
	}

	.comparison {
		padding-block: 8rem;

		& svg {
			overflow: visible;
		}

		& .lines path {
			animation: marching-ants 0.4s linear infinite;
		}

		& .item {
			position: relative;
			padding: 1.25rem;
			background: #4e4e4e;
			border-image-slice: 1;
			border-image-width: 1px;
			box-shadow: 0 0 20px #0a0a0a80;

			.left & {
				border-image-source: linear-gradient(to right, var(--color-off-white), #939393);
			}

			.right & {
				border-image-source: linear-gradient(to left, var(--color-brand-orange), #939393);
			}
		}
	}

	#explore {
		padding-block: 6rem;

		& .card-list {
			& img {
				height: 25rem;
			}

			@media (width>=768px) {
				grid-template-columns: repeat(2, 1fr);
			}
		}
	}

	#openings {
		padding-block: 6rem;

		& h2 {
			margin-bottom: 4rem;

			@media (width>=768px) {
				margin-bottom: 6rem;
			}
		}

		& .accordion {
			&:not(:last-child) {
				margin-bottom: 1rem;
			}

			& a:last-child {
				background-color: var(--color-off-white);
			}

			& .content {
				flex-direction: column;
				color: var(--color-off-white);
				background-color: var(--color-black);

				& h3 {
					font-size: var(--fs-h4);
					line-height: 1.3;
					letter-spacing: -0.57px;
				}

				& p,
				& ul {
					margin-bottom: 1.5rem;
				}

				& strong {
					font-size: 1.25rem;
				}
			}
		}
	}

	#apply {
		padding-bottom: 6rem;
	}

	#apply-form {
		& :is(label:has(~ .form-field[required]), legend)::after {
			position: relative;
			color: var(--color-brand-orange);
			content: "*";
		}

		& input[type="radio"] {
			accent-color: var(--color-brand-orange);

			& + label {
				display: block;
				margin-left: 0.5rem;
			}
		}

		& input[type="file"] {
			cursor: pointer;

			&::file-selector-button {
				padding: 0.5rem 0.75rem;
				font-weight: 700;
				cursor: inherit;
				background-color: var(--color-n-light);
				border: none;
			}
		}
	}

	#what-its-like {
		padding-block: 6rem;

		& #attributes {
			grid-template-columns: 1fr;

			@media (width>=768px) {
				grid-template-columns: repeat(2, 1fr);
			}

			& img {
				aspect-ratio: 16/9;
			}
		}

		& h2 {
			@media (width>=768px) {
				max-width: 60%;
			}
		}
	}

	#your-place {
		padding-block: 6rem;
	}

	.article {
		border-bottom: 4px solid var(--color-brand-orange);
	}

	.pagination {
		grid-column: 1/-1;

		& button {
			display: inline-flex;
			align-items: center;
			justify-content: center;
			width: 2rem;
			height: 2rem;
			border: none;
		}
	}

	#articles {
		grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
		padding-block: 6rem;
	}

	[data-page="team-member"] {
		& body {
			background-color: var(--color-black);
		}

		& #bio {
			padding-top: 4rem;

			@media (width>=768px) {
				padding-top: 8rem;
			}

			& img {
				max-width: 24rem;
				aspect-ratio: 1;
			}

			& p {
				max-width: 65ch;
				font-size: 1.25rem;
			}
		}
	}

	#team {
		padding-block: 6rem;
		background: url("./assets/expertise-pattern.svg");

		& #profiles {
			grid-template-columns: 1fr;

			@media (width>=768px) {
				grid-template-columns: repeat(2, 1fr);
			}

			@media (width>=992px) {
				grid-template-columns: repeat(3, 1fr);
			}

			& .profile {
				& img {
					aspect-ratio: 1;
				}

				& > div {
					background: var(--gradient-bg);
					border-bottom: 4px solid var(--color-brand-orange);
				}
			}
		}
	}

	#get-to-know {
		padding-block: 6rem;

		& .card-list {
			@media (width>=992px) {
				grid-template-columns: repeat(3, 1fr);
			}
		}
	}

	.benefits {
		padding-top: 6rem;
		background: url("./assets/ai-icon.png") 50% no-repeat;

		& .content {
			& hgroup {
				@media (width>=768px) {
					max-width: 50%;
				}
			}
		}

		& div:has(.benefit) {
			grid-template-columns: 1fr;

			@media (width>=768px) {
				grid-template-columns: 1fr 1fr;
			}
		}

		& .benefit {
			border-bottom: 4px solid var(--color-brand-orange);
		}
	}

	#ai-for-manufacturing {
		padding-top: 6rem;

		@media (width>=768px) {
			padding-bottom: 6rem;
		}
	}

	#ignite-cta {
		padding-block: 6rem;
	}

	#featured {
		padding-block: 6rem;
	}

	#insights-listing {
		padding-bottom: 6rem;

		& #filters {
			border-bottom: 2px solid var(--color-n-mid);

			& .tag {
				border: none;
			}

			& select {
				@media (width>=768px) {
					min-width: 28rem;
				}
			}
		}

		& output {
			grid-template-columns: repeat(auto-fill, minmax(400px, 1fr));

			& .insight > div {
				flex-grow: 1;
			}
		}
	}

	#finance-functions {
		padding-top: 8rem;
	}

	#find-solutions {
		padding-block: 8rem;
	}

	#home-insights {
		padding-block: 6rem;

		& .row {
			--bs-gutter-x: 5rem;
		}

		& article {
			& img {
				aspect-ratio: 16/9;
			}

			& p {
				line-height: 1.75;
			}
		}
	}

	#solutions {
		& > div {
			padding: 4rem 2rem;

			@media (width>=768px) {
				padding: 8rem 6rem;
			}
		}

		& .accordion img {
			width: 45%;
			aspect-ratio: 16/9;
		}
	}

	#testimonials {
		padding-block: 4rem 8rem;
		transition: color 0.3s, background-color 0.3s;

		@media (width>=768px) {
			min-height: 100dvh;
			padding-block: 0;
		}

		& blockquote {
			line-height: 1.1;
		}

		&.active {
			color: var(--color-off-white);
			background-color: var(--color-black);

			& .swiper-controls button {
				color: var(--color-off-white);
			}
		}

		.swiper-slide img {
			height: 2rem;
			align-self: end;
		}
	}

	#values {
		padding-block: 6rem;

		@media (width>=768px) {
			padding-block: 8rem;
		}

		img {
			left: 50%;
			translate: -50%;
		}
	}

	[data-page="home"] #hero {
		padding-bottom: 2rem;
		overflow: hidden;
		background-color: var(--color-black);

		& .overlay {
			background: var(--gradient-overlay);
		}

		& hgroup {
			color: var(--color-off-white);

			& h1 {
				max-width: 54rem;
			}

			& p {
				font-family: var(--font-sans);
				font-size: 1.25rem;
			}
		}

		& nav {
			padding-top: 6rem;
			font-family: var(--font-mono);
			text-transform: uppercase;
		}
	}

		[data-page="home"] #hero nav a {
			position: relative;
			z-index: 0;
			display: inline-block;
			padding: 0.5rem 1.25rem;
			overflow: hidden;
			color: var(--color-off-white);
			text-decoration: none;
			appearance: none;
			background: 0 0;
			border: none;

			&:hover span::after,
			&:focus-visible span::after {
				transform: scaleX(1);
			}

			& span {
				position: absolute;
				inset-inline: 0;
				bottom: 0;
				height: 0.25rem;
				background-color: var(--color-n-dark);

				&::after {
					position: absolute;
					top: 0;
					left: 0;
					width: 100%;
					height: 100%;
					content: "";
					background-color: var(--color-brand-orange);
					transform: scaleX(0);
					transform-origin: 0;
					transition: transform 0.15s ease-out;
				}
			}
		}

	#general {
		#hero {
			min-height: unset !important;
			height: 24rem;
		}

		.content {
			max-width: 72rem;
		}
	}

	.icon-md {
		width: 60px;
		height: 60px;
		object-fit: cover;
	}
