.camps-overview {
	background-color: var(--color-white);
}

.camps-overview__media {
	margin: 0;
}

.camps-overview__image {
	display: block;
	width: 100%;
	height: clamp(22rem, 38vw, 32rem);
	object-fit: cover;
	border-radius: var(--radius-md);
}

.camps-overview__caption {
	margin-top: var(--space-3);
	color: var(--color-muted);
	font-size: var(--font-size-body-sm);
}

.camps-overview__principles {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: var(--space-8);
	margin: var(--space-8) 0 0;
	padding: 0;
	list-style: none;
}

.camps-overview__principle {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	grid-template-rows: auto 1fr;
	column-gap: var(--space-4);
	padding-block: var(--space-5);
	border-top: 1px solid var(--color-border-subtle);
}

.camps-overview__principle::before {
	width: var(--space-2);
	height: var(--space-2);
	grid-row: 1 / span 2;
	margin-top: var(--space-3);
	background-color: var(--color-brand-accent);
	border-radius: var(--radius-circle);
	content: "";
}

.camps-overview__principle .heading-card {
	margin: 0;
}

.camps-overview__principle p {
	margin: var(--space-2) 0 0;
	color: var(--color-muted);
	font-size: var(--font-size-body-sm);
}

.camps-designer-quote {
	color: var(--color-white);
	background-color: var(--color-off-black);
}

.camps-designer-quote__inner {
	padding-block: var(--space-7);
	text-align: center;
}

.camps-designer-quote__quote {
	max-width: var(--content-max-width-lg);
	margin: 0 auto;
	padding: 0;
	border: 0;
}

.camps-designer-quote__quote::before {
	display: block;
	width: var(--space-8);
	height: var(--space-1);
	margin: 0 auto var(--space-5);
	background-color: var(--color-brand-accent);
	content: "";
}

.camps-designer-quote__quote > p {
	margin: 0;
	color: var(--color-white);
	font-size: var(--font-size-body-xl);
	font-weight: var(--font-weight-medium);
	line-height: var(--line-height-copy-lg);
}

.camps-designer-quote__attribution {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--space-2);
	align-items: baseline;
	margin-top: var(--space-4);
}

.camps-designer-quote__attribution cite {
	color: var(--color-white);
	font-family: var(--font-family-heading);
	font-style: normal;
	font-weight: var(--font-weight-semibold);
	letter-spacing: var(--letter-spacing-label);
	text-transform: uppercase;
}

.camps-designer-quote__attribution span {
	color: var(--color-white-alpha-70);
	font-size: var(--font-size-body-sm);
}

.camps-engineering {
	color: var(--color-white);
	background-color: var(--color-off-black);
}

.camps-engineering__list h3 {
	margin: 0;
	color: var(--color-white);
}

.camps-engineering__media {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--space-4);
	margin-top: 0;
}

.camps-engineering__figure {
	margin: 0;
}

.camps-engineering__image {
	display: block;
	width: 100%;
	height: clamp(24rem, 42vw, 34rem);
	object-fit: cover;
	border-radius: var(--radius-md);
}

.camps-engineering__caption {
	margin-top: var(--space-3);
	color: var(--color-white-alpha-72);
	font-size: var(--font-size-body-sm);
}

.camps-engineering__list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: var(--space-8);
	margin: var(--space-8) 0 0;
	padding: 0;
	list-style: none;
}

.camps-engineering__list li {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: var(--space-4);
	padding-block: var(--space-5);
	border-top: 1px solid var(--color-white-alpha-20);
}

.camps-engineering__list li::before {
	width: var(--space-2);
	height: var(--space-2);
	margin-top: var(--space-3);
	background-color: var(--color-brand-accent);
	border-radius: var(--radius-circle);
	content: "";
}

.camps-engineering__list p {
	margin: var(--space-2) 0 0;
	color: var(--color-white-alpha-72);
	font-size: var(--font-size-body-sm);
}

.camps-platforms {
	background-color: var(--color-background-section);
	border-top: 1px solid var(--color-border-subtle);
}

.camps-pricing h3 {
	margin: 0;
}

.camps-platforms__content {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(18rem, 0.85fr);
	gap: var(--space-8);
	align-items: start;
	margin-top: 0;
}

.camps-platforms__table-wrap {
	display: block;
	grid-column: 1;
	grid-row: 1;
}

.camps-platforms__table {
	width: 100%;
	border-collapse: collapse;
}

.camps-platforms__table th,
.camps-platforms__table td {
	padding: var(--space-4) var(--space-3);
	text-align: left;
	vertical-align: top;
	border-top: 1px solid var(--color-border-subtle);
}

.camps-platforms__table thead th {
	padding-top: var(--space-3);
	color: var(--color-muted);
	font-size: var(--font-size-body-xs);
	letter-spacing: var(--letter-spacing-label-wide);
	text-transform: uppercase;
}

.camps-platforms__table tbody th {
	width: 28%;
	color: var(--color-black);
	font-family: var(--font-family-heading);
	font-size: var(--font-size-title-compact);
	line-height: var(--line-height-heading);
	white-space: nowrap;
}

.camps-platforms__model,
.camps-platforms__dimension {
	display: block;
}

.camps-platforms__dimension {
	margin-top: var(--space-1);
	color: var(--color-black-alpha-55);
	font-family: var(--font-family-body);
	font-size: 0.625rem;
	font-weight: var(--font-weight-medium);
	letter-spacing: var(--letter-spacing-label-wide);
	line-height: var(--line-height-snug);
	text-transform: uppercase;
	white-space: normal;
}

.camps-platforms__table td {
	color: var(--color-muted);
}

.camps-pricing {
	position: relative;
	display: flex;
	grid-column: 2;
	grid-row: 1;
	flex-direction: column;
	padding: var(--space-inset-panel);
	overflow: hidden;
	color: var(--color-white);
	background-color: var(--color-off-black);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-raised);
	scroll-margin-top: calc(var(--site-header-height) + var(--space-4));
}

.camps-pricing h3 {
	color: var(--color-white);
}

.camps-pricing h3::after {
	display: block;
	width: 3rem;
	height: 0.2rem;
	margin-top: var(--space-3);
	background-color: var(--color-brand-accent);
	content: "";
}

.camps-pricing__list {
	margin: var(--space-5) 0 0;
	padding: 0;
	list-style: none;
}

.camps-pricing__list li {
	padding-block: var(--space-4);
	border-top: 1px solid var(--color-white-alpha-20);
}

.camps-pricing__label,
.camps-pricing__price {
	display: block;
}

.camps-pricing__label {
	color: var(--color-white-alpha-70);
	font-size: var(--font-size-body-xs);
	font-weight: var(--font-weight-semibold);
	letter-spacing: var(--letter-spacing-label-wide);
	text-transform: uppercase;
}

.camps-pricing__price {
	margin-top: var(--space-1);
	color: var(--color-white);
	font-family: var(--font-family-heading);
	font-size: var(--font-size-title-compact);
	line-height: var(--line-height-heading);
}

.camps-pricing__list p {
	color: var(--color-white-alpha-72);
	font-size: var(--font-size-body-sm);
}

.camps-pricing__list p {
	margin: var(--space-2) 0 0;
}

.camps-pricing__note {
	margin: 0;
	padding-top: var(--space-4);
	color: var(--color-muted);
	font-size: var(--font-size-body-sm);
	border-top: 1px solid var(--color-border-subtle);
}

.camps-heirloom {
	color: var(--color-white);
	background-color: var(--color-off-black);
}

.camps-heirloom__principles h3 {
	margin: 0;
	color: var(--color-white);
}

.camps-heirloom__principles {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	column-gap: var(--space-8);
	margin: 0;
	padding: 0;
	list-style: none;
}

.camps-heirloom__principles li {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: var(--space-4);
	padding-block: var(--space-5);
	border-top: 1px solid var(--color-white-alpha-20);
}

.camps-heirloom__principles li::before {
	width: var(--space-2);
	height: var(--space-2);
	margin-top: var(--space-3);
	background-color: var(--color-brand-accent);
	border-radius: var(--radius-circle);
	content: "";
}

.camps-heirloom__principles p {
	margin: var(--space-2) 0 0;
	color: var(--color-white-alpha-72);
	font-size: var(--font-size-body-sm);
}

.camps-builds {
	background-color: var(--color-background-section);
	border-top: 1px solid var(--color-border-subtle);
}

.camps-builds--with-categories .camps-builds__grid {
	margin-top: var(--space-5);
}

.camps-builds__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--space-layout-md);
}

.camps-builds--tablet-four .camps-builds__grid > .camps-builds__card:nth-child(4) {
	display: none;
}

@media (min-width: 90.01rem) {
	.camps-builds--tablet-four .camps-builds__grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.camps-builds--tablet-four .camps-builds__grid > .camps-builds__card:nth-child(4) {
		display: flex;
	}
}

.camps-builds__card {
	display: flex;
	min-width: 0;
	flex-direction: column;
}

.camps-builds__click-target {
	display: flex;
	min-width: 0;
	flex: 1;
	flex-direction: column;
	color: inherit;
}

.camps-builds__media {
	display: block;
	overflow: hidden;
	background-color: var(--color-white);
	aspect-ratio: 3 / 2;
}

.camps-builds__image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform var(--transition-fast);
}

html.has-hover-input .camps-builds__card:hover .camps-builds__image {
	transform: scale(1.025);
}

.camps-builds__card-body {
	display: flex;
	flex: 1;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--space-5);
	padding: var(--space-inset-card);
}

.camps-builds__card-content {
	width: 100%;
}

.camps-builds__label {
	margin: 0 0 var(--space-3);
	color: var(--color-brand-accent);
	font-family: var(--font-family-heading);
	font-size: var(--font-size-body-sm);
	font-weight: var(--font-weight-semibold);
	letter-spacing: var(--letter-spacing-label-wide);
	text-transform: uppercase;
}

.camps-builds__card .heading-card {
	margin: 0;
	color: var(--color-black);
	transition: color var(--transition-fast);
}

html.has-hover-input .camps-builds__click-target:hover .heading-card {
	color: var(--color-brand-accent);
}

.camps-builds__description {
	margin: var(--space-4) 0 var(--space-6);
	color: var(--color-muted);
	font-size: var(--font-size-body-sm);
}

.camps-builds__tags {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-2);
	margin: var(--space-4) 0 0;
	padding: 0;
	list-style: none;
}

.camps-builds__tags span,
.camps-builds__tag-more span {
	display: inline-flex;
	padding: var(--space-1) var(--space-3);
	color: var(--color-muted);
	font-size: var(--font-size-body-xs);
	font-weight: var(--font-weight-bold);
	background-color: var(--color-background-section-muted);
	border-radius: var(--control-border-radius);
	white-space: nowrap;
}

.camps-builds__tag-more--narrow {
	display: none;
}

.camps-builds__link {
	margin-top: auto;
}

html.has-hover-input .camps-builds__click-target:hover .camps-builds__link {
	color: var(--button-hover-color);
	background-color: var(--button-hover-background);
	border-color: var(--button-hover-border-color);
	transform: translateY(-0.125rem);
}

.camps-waitlist {
	background-color: var(--color-white);
	border-block: 1px solid var(--color-border-subtle);
}

.camps-waitlist__details {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--space-7);
	margin: var(--space-6) 0 0;
}

.camps-waitlist__details > div {
	padding-top: var(--space-5);
	border-top: 1px solid var(--color-border-subtle);
}

.camps-waitlist__details dt {
	color: var(--color-brand-accent);
	font-size: var(--font-size-body-xs);
	font-weight: var(--font-weight-semibold);
	letter-spacing: var(--letter-spacing-label-wide);
	text-transform: uppercase;
}

.camps-waitlist__details dd {
	margin: var(--space-2) 0 0;
}

.camps-waitlist__details strong,
.camps-waitlist__details span {
	display: block;
}

.camps-waitlist__details strong {
	font-family: var(--font-family-heading);
	font-size: var(--font-size-title-card);
	line-height: var(--line-height-heading);
}

.camps-waitlist__details span {
	margin-top: var(--space-2);
	color: var(--color-muted);
	font-size: var(--font-size-body-sm);
}

.camps-waitlist--dark {
	color: var(--color-white);
	background-color: var(--color-off-black);
	border-color: var(--color-white-alpha-20);
}

.camps-waitlist--dark .camps-waitlist__details span {
	color: var(--color-white-alpha-76);
}

.camps-waitlist--dark .camps-waitlist__details > div {
	border-top-color: var(--color-white-alpha-20);
}

.camps-waitlist--cta-right .camps-waitlist__content {
	display: flex;
	flex-direction: column;
}

.camps-waitlist--cta-right .camps-waitlist__cta {
	align-self: flex-end;
}

.camps-waitlist.camps-waitlist--split {
	position: relative;
	overflow: hidden;
}

.camps-waitlist--split .camps-waitlist__reservation {
	display: block;
	margin-top: 0;
	padding: var(--space-0);
	background: transparent;
	border-top: 1px solid var(--color-white-alpha-24);
	border-bottom: 1px solid var(--color-white-alpha-24);
}

.camps-waitlist--split .camps-waitlist__details {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--space-0);
	margin: var(--space-0);
}

.camps-waitlist--split .camps-waitlist__details > div {
	padding: var(--space-5) var(--space-7);
	border-top: var(--space-0);
}

.camps-waitlist--split .camps-waitlist__details > div:first-child {
	padding-inline-start: var(--space-0);
}

.camps-waitlist--split .camps-waitlist__details > div:last-child {
	border-inline-start: 1px solid var(--color-white-alpha-24);
}

.camps-gallery {
	background-color: var(--color-white);
	border-top: 1px solid var(--color-border-subtle);
	scroll-margin-top: var(--site-header-height);
}

.camps-gallery--build.py-8 {
	padding-bottom: var(--space-5);
}

.camps-gallery__toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	justify-content: space-between;
	gap: var(--space-4);
	margin-top: 0;
}

.camps-gallery__filters {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-3);
}

.camps-gallery__filter {
	gap: var(--space-3);
}

.camps-gallery__all-link {
	flex: 0 0 auto;
	margin-left: auto;
	white-space: nowrap;
}

.camps-gallery__view-options {
	position: relative;
	display: none;
	flex: 0 0 auto;
	margin-left: auto;
}

.camps-gallery__view-toggle {
	gap: var(--space-2);
	padding-inline: var(--space-4);
}

.camps-gallery__view-toggle-icon,
.camps-gallery__view-option svg {
	width: 1.25rem;
	height: 1.25rem;
	fill: none;
	stroke: currentcolor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 2;
}

.camps-gallery__view-toggle-icon[hidden] {
	display: none;
}

.camps-gallery__view-chevron {
	width: 1rem;
	height: 1rem;
	fill: none;
	stroke: currentcolor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.75;
	transition: transform var(--transition-fast);
}

.camps-gallery__view-toggle[aria-expanded="true"] .camps-gallery__view-chevron {
	transform: rotate(180deg);
}

.camps-gallery__view-menu {
	position: absolute;
	top: calc(100% + var(--space-2));
	right: 0;
	z-index: 3;
	display: grid;
	grid-template-columns: repeat(2, var(--control-min-height));
	gap: var(--space-1);
	padding: var(--space-2);
	border: 1px solid var(--color-border-subtle);
	border-radius: var(--radius-md);
	box-shadow: var(--shadow-popover);
}

.camps-gallery__view-menu[hidden] {
	display: none;
}

.camps-gallery__view-option {
	display: flex;
	width: var(--control-min-height);
	min-height: var(--control-min-height);
	align-items: center;
	justify-content: center;
	padding: 0;
	color: var(--color-black);
	font-family: var(--font-family-body);
	font-size: var(--font-size-body-sm);
	font-weight: var(--font-weight-semibold);
	background: transparent;
	border: 0;
	border-radius: var(--control-border-radius);
	cursor: pointer;
}

.camps-gallery__view-option[aria-checked="true"] {
	background-color: var(--color-background-section-muted);
}

html.has-hover-input .camps-gallery__view-option:hover {
	background-color: var(--color-background-section-muted);
}

.camps-gallery__view-option:focus-visible {
	outline: var(--focus-ring-width) solid var(--color-focus);
	outline-offset: calc(-1 * var(--focus-ring-offset));
}

.camps-gallery__filter-count {
	display: inline-flex;
	min-width: 1.5rem;
	height: 1.5rem;
	align-items: center;
	justify-content: center;
	padding-inline: var(--space-1);
	font-family: var(--font-family-body);
	font-size: var(--font-size-body-xs);
	background-color: var(--color-white-alpha-16);
	border: 1px solid currentcolor;
	border-radius: var(--radius-pill);
}

.camps-gallery__filter.btn-tertiary .camps-gallery__filter-count {
	background-color: var(--color-background-section-muted);
}

@media (min-width: 62.0625rem) {
	.camps-gallery__view-options {
		display: block;
	}
}

html.has-hover-input .camps-gallery__filter.btn-tertiary:hover .camps-gallery__filter-count,
.camps-gallery__filter.btn-tertiary:active .camps-gallery__filter-count {
	color: var(--color-white);
	background-color: var(--color-white-alpha-16);
	border-color: var(--color-white);
}

.camps-gallery__grid {
	display: grid;
	grid-auto-flow: dense;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: var(--space-4);
	margin-top: 0;
}

.camps-gallery__toolbar + .camps-gallery__grid {
	margin-top: var(--space-7);
}

.camps-gallery__item {
	position: relative;
	min-width: 0;
	margin: 0;
	overflow: hidden;
	background-color: var(--color-off-black);
	aspect-ratio: 1 / 1;
}

.camps-gallery__item--featured {
	grid-column: span 2;
	grid-row: span 2;
}

.camps-gallery__item--wide {
	grid-column: span 2;
	aspect-ratio: 2 / 1;
}

.camps-gallery__item--full {
	grid-column: 1 / -1;
	aspect-ratio: 4 / 1;
}

.camps-gallery__link {
	position: relative;
	display: block;
	width: 100%;
	height: 100%;
	color: var(--color-white);
}

.camps-gallery__link::after {
	position: absolute;
	inset: 36% 0 0;
	background: linear-gradient(to bottom, transparent, var(--color-black-alpha-82));
	content: "";
}

.camps-gallery__image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform var(--transition-fast);
}

html.has-hover-input .camps-gallery__link:hover .camps-gallery__image {
	transform: scale(1.025);
}

.camps-gallery__link:focus-visible {
	outline: var(--focus-ring-width) solid var(--color-white);
	outline-offset: calc(-1 * var(--focus-ring-offset));
}

.camps-gallery__caption {
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 1;
	display: grid;
	gap: var(--space-2);
	padding: var(--space-5);
}

.camps-gallery__category {
	color: var(--color-white);
	font-family: var(--font-family-heading);
	font-size: var(--font-size-body-xs);
	font-weight: var(--font-weight-semibold);
	letter-spacing: var(--letter-spacing-label-wide);
	text-transform: uppercase;
}

.camps-gallery__item-title {
	color: var(--color-white);
	font-family: var(--font-family-heading);
	font-size: var(--font-size-title-compact);
	font-weight: var(--font-weight-semibold);
	line-height: var(--line-height-heading);
	text-transform: uppercase;
}

.camps-gallery__dialog {
	width: min(calc(100% - var(--container-gutter)), 90rem);
	max-width: none;
	max-height: calc(100dvh - var(--space-4));
	margin: auto;
	padding: 0;
	color: var(--color-white);
	background: var(--color-off-black);
	border: 0;
}

html.camps-gallery-dialog-open {
	overflow: hidden;
}

html.camps-gallery-dialog-open body {
	position: fixed;
	top: var(--camps-gallery-scroll-offset, 0);
	right: 0;
	left: 0;
	width: 100%;
	overflow: hidden;
}

.camps-gallery__dialog::backdrop {
	background-color: var(--color-black-alpha-88);
}

.camps-gallery__dialog-shell {
	position: relative;
	display: grid;
	max-height: inherit;
	-webkit-user-select: none;
	user-select: none;
}

.camps-gallery__dialog-bar {
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-4);
	padding: var(--space-4) var(--space-5);
}

.camps-gallery__dialog-count,
.camps-gallery__dialog-title,
.camps-gallery__dialog-description {
	margin: 0;
}

.camps-gallery__dialog-count {
	position: absolute;
	left: 50%;
	color: var(--color-link-hover-on-dark);
	font-size: var(--font-size-body-sm);
	pointer-events: none;
	transform: translateX(-50%);
}

.camps-gallery__dialog-tools,
.camps-gallery__dialog-zoom-controls {
	display: flex;
	align-items: center;
	gap: var(--space-2);
}

.camps-gallery__dialog-icon-button {
	display: inline-flex;
	width: var(--control-min-height);
	height: var(--control-min-height);
	align-items: center;
	justify-content: center;
	padding: 0;
	color: var(--color-white);
	background: var(--color-black-alpha-55);
	border: 1px solid var(--color-white-alpha-55);
	border-radius: var(--control-border-radius);
	cursor: pointer;
	transition:
		color var(--transition-fast),
		background-color var(--transition-fast),
		border-color var(--transition-fast);
}

.camps-gallery__dialog-icon-button svg {
	width: 1.5rem;
	height: 1.5rem;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.75;
	stroke-linecap: round;
	stroke-linejoin: round;
}

html.has-hover-input .camps-gallery__dialog-icon-button:hover {
	color: var(--color-black);
	background: var(--color-white);
	border-color: var(--color-white);
}

.camps-gallery__dialog-close:focus-visible,
.camps-gallery__dialog-navigation-button:focus-visible {
	outline-color: var(--color-white);
}

.camps-gallery__dialog-figure {
	position: relative;
	display: grid;
	min-height: 0;
	max-height: inherit;
	margin: 0;
}

.camps-gallery__dialog-stage {
	position: relative;
	display: grid;
	width: 100%;
	height: min(70dvh, 60rem);
	overflow: hidden;
	background: var(--color-off-black);
	cursor: zoom-in;
	touch-action: none;
}

.camps-gallery__dialog-stage.is-zoomed {
	cursor: grab;
}

.camps-gallery__dialog-stage.is-dragging {
	cursor: grabbing;
}

.camps-gallery__dialog-stage:focus-visible {
	outline: var(--focus-ring-width) solid var(--color-white);
	outline-offset: calc(-1 * var(--focus-ring-offset));
}

.camps-gallery__dialog-image {
	position: absolute;
	inset: 0;
	width: 100%;
	max-width: none;
	height: 100%;
	max-height: none;
	-webkit-user-drag: none;
	object-fit: contain;
	object-position: center;
	will-change: transform;
	transition: transform var(--transition-fast);
}

.camps-gallery__dialog-stage.is-dragging .camps-gallery__dialog-image,
.camps-gallery__dialog-stage.is-wheel-zooming .camps-gallery__dialog-image {
	transition: none;
}

.camps-gallery__dialog-caption {
	display: grid;
	gap: var(--space-2);
	max-width: 60rem;
	margin: 0 auto;
	padding: var(--space-3) var(--space-4) var(--space-4);
	text-align: center;
}

.camps-gallery__dialog-title {
	font-family: var(--font-family-heading);
	font-size: var(--font-size-title-compact);
	font-weight: var(--font-weight-semibold);
	text-transform: uppercase;
}

.camps-gallery__dialog-description {
	color: var(--color-white-alpha-76);
	font-size: var(--font-size-body-sm);
	line-height: var(--line-height-body);
}

.camps-gallery__dialog-build-link {
	--button-color: var(--color-white);
	--button-background: transparent;
	--button-border-color: var(--color-white-alpha-55);
	--button-hover-color: var(--color-black);
	--button-hover-background: var(--color-white);
	--button-hover-border-color: var(--color-white);
	--button-active-color: var(--color-black);
	--button-active-background: var(--color-link-hover-on-dark);
	--button-active-border-color: var(--color-link-hover-on-dark);

	justify-self: center;
	margin-top: var(--space-2);
}

.camps-gallery__dialog-build-link[hidden] {
	display: none;
}

.camps-gallery__dialog-build-link:focus-visible {
	outline-color: var(--color-white);
}

.camps-gallery__dialog-navigation {
	position: absolute;
	top: 50%;
	right: var(--space-6);
	left: var(--space-6);
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: space-between;
	pointer-events: none;
	transform: translateY(-50%);
}

.camps-gallery__dialog-navigation-button {
	pointer-events: auto;
}

.camps-builds__click-target:focus-visible {
	outline: var(--focus-ring-width) solid var(--color-focus);
	outline-offset: calc(-1 * var(--focus-ring-offset));
}

@media (max-width: 62rem) {
	.camps-platforms__content {
		grid-template-columns: 1fr;
		gap: var(--space-6);
	}

	.camps-platforms__table-wrap {
		grid-column: 1;
		grid-row: 2;
	}

	.camps-pricing {
		grid-column: 1;
		grid-row: 1;
	}

	.camps-builds__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.camps-builds--tablet-four .camps-builds__grid > .camps-builds__card:nth-child(4) {
		display: flex;
	}

	.camps-engineering__list {
		grid-template-columns: 1fr;
	}

	.camps-heirloom__principles {
		grid-template-columns: 1fr;
	}

	.camps-waitlist__details {
		grid-template-columns: 1fr;
		gap: var(--space-5);
	}

	.camps-waitlist--split .camps-waitlist__reservation {
		margin-top: var(--space-0);
	}

	.camps-waitlist--split .camps-waitlist__details {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.camps-waitlist--split .camps-waitlist__details > div {
		padding: var(--space-5);
	}

	.camps-waitlist--split .camps-waitlist__details > div:first-child {
		padding-inline-start: var(--space-0);
	}

	.camps-waitlist--split .camps-waitlist__details > div:last-child {
		border-top: var(--space-0);
		border-inline-start: 1px solid var(--color-white-alpha-24);
	}

	.camps-gallery__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 36rem) {
	.camps-platforms__dimension {
		white-space: nowrap;
	}

	.camps-platforms__table td {
		font-size: var(--font-size-body-sm);
	}

	.camps-gallery__dialog-bar {
		padding: var(--space-3);
	}

	.camps-gallery__dialog-tools,
	.camps-gallery__dialog-zoom-controls {
		gap: var(--space-1);
	}

	.camps-gallery__dialog-figure {
		padding-inline: 0;
	}

	.camps-gallery__dialog-stage {
		height: min(72dvh, 42rem);
	}

	.camps-gallery__dialog-image {
		width: 100%;
		max-width: none;
		height: 100%;
		max-height: none;
	}

	.camps-gallery__dialog-navigation {
		right: var(--space-4);
		left: var(--space-4);
	}

	.camps-overview__principles,
	.camps-engineering__media,
	.camps-builds__grid {
		grid-template-columns: 1fr;
	}

	.camps-builds--tablet-four .camps-builds__grid > .camps-builds__card:nth-child(4) {
		display: none;
	}

	.camps-overview__image {
		height: min(78vw, 28rem);
	}

	.camps-engineering__image {
		height: min(110vw, 32rem);
	}

	.camps-gallery__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.camps-gallery__item--featured {
		grid-column: 1 / -1;
		grid-row: span 2;
		aspect-ratio: 1 / 1;
	}

	.camps-gallery__item--wide,
	.camps-gallery__item--full {
		grid-column: auto;
		grid-row: auto;
		aspect-ratio: 1 / 1;
	}

	.camps-gallery__item:not(.camps-gallery__item--featured) .camps-gallery__caption {
		gap: var(--space-1);
		padding: var(--space-3);
	}

	.camps-gallery__item:not(.camps-gallery__item--featured) .camps-gallery__category {
		overflow: hidden;
		letter-spacing: var(--letter-spacing-label);
		text-overflow: ellipsis;
		white-space: nowrap;
	}

	.camps-gallery__item:not(.camps-gallery__item--featured) .camps-gallery__item-title {
		display: -webkit-box;
		overflow: hidden;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 3;
	}

	.camps-gallery__filters {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		width: 100%;
	}

	.camps-gallery__all-link {
		margin-inline: auto;
	}

	.camps-gallery__filter {
		width: 100%;
	}

}

@media (max-width: 21rem) {
	.camps-builds__tag--narrow-hidden,
	.camps-builds__tag-more--default {
		display: none;
	}

	.camps-builds__tag-more--narrow {
		display: list-item;
	}
}

@media (prefers-reduced-motion: reduce) {
	.camps-builds__image,
	.camps-gallery__image {
		transition: none;
	}
}
