html {
	background: #fffaf1;
	scroll-behavior: smooth;
	scroll-padding-top: 40px;
}

body.home_page {
	min-height: 100dvh;
	background: #fffaf1;
	color: var(--bd-ink);
}

.home_header {
	position: fixed;
	left: 0;
	top: 0;
	z-index: 20;
	width: 100%;
	background: var(--bd-brown);
	box-shadow: 0 12px 26px rgba(0, 0, 0, .16);
}

.home_logo {
	display: flex;
	justify-content: center;
	padding: calc(.72rem + env(safe-area-inset-top)) 1rem .62rem;
}

.home_logo img {
	width: min(245px, 68vw);
	height: auto;
	display: block;
}

.home_nav {
	width: 100%;
	margin: 0;
	padding: 0;
	background: var(--bd-lightbrown);
}

.home_nav_inner {
	display: flex;
	justify-content: center;
	width: min(680px, 100%);
	margin: 0 auto;
}

.home_nav a {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 1 1 0;
	min-height: 32px;
	padding: .48rem 1rem;
	color: #fffaf1;
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .08em;
	text-decoration: none;
	text-transform: uppercase;
}

.home_nav a:link,
.home_nav a:visited,
.home_nav a:hover {
	color: #fffaf1;
}

.home_nav a:hover,
.home_nav a:focus-visible {
	background: rgba(255, 250, 241, .12);
}

.home_hero {
	position: relative;
	min-height: 100dvh;
	display: grid;
	align-items: end;
	overflow: hidden;
	background: var(--bd-brown);
}

.home_hero_media {
	position: absolute;
	inset: 0;
	display: block;
	background: #2d241b;
}

.home_hero_media::after {
	content: "";
	position: absolute;
	inset: 0;
	background:
		linear-gradient(rgba(45, 32, 19, .18), rgba(45, 32, 19, .72)),
		linear-gradient(90deg, rgba(0, 0, 0, .28), rgba(0, 0, 0, .04) 55%, rgba(0, 0, 0, .2));
	z-index: 2;
}

.home_hero_photo {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0;
	transform: scale(1.04);
	animation: homeHeroFade calc(var(--hero-count, 1) * 6s) infinite;
	animation-delay: calc(var(--hero-index, 0) * 6s);
}

.home_hero_content {
	position: relative;
	z-index: 3;
	width: min(940px, calc(100% - 2rem));
	margin: 0 auto;
	padding: 10rem 0 clamp(2rem, 6vw, 4.5rem);
	color: #fffaf1;
}

.home_kicker,
.home_section_kicker {
	margin: 0 0 .7rem;
	font-size: .74rem;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.home_kicker {
	color: #f4dbc0;
}

.home_hero h1 {
	width: min(790px, 100%);
	margin: 0;
	font-family: "Playfair Display", "Times New Roman", serif;
	font-size: clamp(3.4rem, 9vw, 7.9rem);
	font-weight: 700;
	line-height: .9;
}

.home_deck {
	width: min(560px, 100%);
	margin: 1.15rem 0 0;
	font-family: "Playfair Display", "Times New Roman", serif;
	font-size: clamp(1.15rem, 2.2vw, 1.55rem);
	line-height: 1.3;
}

.home_section {
	width: min(1080px, calc(100% - 2rem));
	margin: 0 auto;
	padding: clamp(2.2rem, 6vw, 4.5rem) 0;
	scroll-margin-top: 40px;
}

.home_intro {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 1rem 2rem;
	align-items: end;
	border-bottom: 4px double #70512b;
}

.home_intro .home_section_kicker,
.home_intro h2,
.home_intro p {
	grid-column: 1;
}

.home_section_kicker {
	color: var(--bd-brown);
}

.home_section h2 {
	margin: 0;
	color: #231d16;
	font-family: "Playfair Display", "Times New Roman", serif;
	font-size: clamp(2rem, 5vw, 4.2rem);
	font-weight: 700;
	line-height: .98;
}

.home_intro p {
	width: min(620px, 100%);
	margin: .25rem 0 0;
	color: var(--bd-muted);
	font-size: .98rem;
	line-height: 1.55;
}

.home_cta {
	grid-column: 2;
	grid-row: 1 / span 3;
	align-self: center;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: .8rem 1.15rem;
	background: var(--bd-lightbrown);
	border: 1px solid var(--bd-lightbrown);
	color: #fff;
	font-size: .9rem;
	font-weight: 700;
	text-decoration: none;
	text-transform: uppercase;
	letter-spacing: .06em;
}

.home_cta:link,
.home_cta:visited,
.home_cta:hover {
	color: #fff;
}

.home_cta:hover,
.home_cta:focus-visible {
	filter: brightness(1.12);
}

.home_section_header {
	margin-bottom: 1.1rem;
}

.home_video,
.home_matterport {
	border-bottom: 1px solid #eadfce;
}

.home_video_frame,
.home_embed_frame {
	position: relative;
	aspect-ratio: 16 / 9;
	background: #2d241b;
	border: 1px solid #d8c8b2;
	overflow: hidden;
	box-shadow: 0 18px 36px rgba(0, 0, 0, .12);
}

.home_video_frame iframe,
.home_embed_frame iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
	display: block;
}

.home_photo_grid {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	grid-auto-rows: clamp(90px, 9vw, 132px);
	gap: .7rem;
	grid-auto-flow: dense;
}

.home_photo_card {
	position: relative;
	display: block;
	background: #f6efe4;
	border: 1px solid #d8c8b2;
	overflow: hidden;
}

.home_photo_card::after {
	content: "View on Airbnb";
	position: absolute;
	left: .7rem;
	bottom: .7rem;
	padding: .42rem .58rem;
	background: rgba(255, 250, 241, .92);
	color: #3b2a16;
	font-size: .67rem;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	opacity: 0;
	transform: translateY(4px);
	transition: opacity .16s ease, transform .16s ease;
}

.home_photo_card:hover::after,
.home_photo_card:focus-visible::after {
	opacity: 1;
	transform: translateY(0);
}

.home_photo_card img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .35s ease, filter .35s ease;
}

.home_photo_card:hover img,
.home_photo_card:focus-visible img {
	transform: scale(1.035);
	filter: sepia(.12) contrast(.98);
}

.home_photo_card:nth-child(12n + 1) {
	grid-column: span 7;
	grid-row: span 4;
}

.home_photo_card:nth-child(12n + 2) {
	grid-column: span 5;
	grid-row: span 4;
}

.home_photo_card:nth-child(12n + 3),
.home_photo_card:nth-child(12n + 4),
.home_photo_card:nth-child(12n + 5) {
	grid-column: span 4;
	grid-row: span 3;
}

.home_photo_card:nth-child(12n + 6) {
	grid-column: span 12;
	grid-row: span 3;
}

.home_photo_card:nth-child(12n + 7),
.home_photo_card:nth-child(12n + 8),
.home_photo_card:nth-child(12n + 9),
.home_photo_card:nth-child(12n + 10) {
	grid-column: span 3;
	grid-row: span 3;
}

.home_photo_card:nth-child(12n + 11),
.home_photo_card:nth-child(12n + 12) {
	grid-column: span 6;
	grid-row: span 3;
}

.home_footer {
	padding: 1.25rem 1rem calc(1.25rem + env(safe-area-inset-bottom));
	background: #fffaf1;
	border-top: 1px solid #eadfce;
	text-align: center;
}

.home_footer p {
	margin: 0;
	color: #aaa29a;
	font-size: .72rem;
	font-weight: 500;
	letter-spacing: .04em;
	text-transform: uppercase;
}

@keyframes homeHeroFade {
	0% {
		opacity: 0;
		transform: scale(1.06);
	}
	6%,
	20% {
		opacity: 1;
		transform: scale(1);
	}
	26%,
	100% {
		opacity: 0;
		transform: scale(1.02);
	}
}

@media (prefers-reduced-motion: reduce) {
	.home_hero_photo {
		animation: none;
	}

	.home_hero_photo:first-child {
		opacity: 1;
	}

	.home_photo_card img {
		transition: none;
	}
}

@media (max-width: 760px) {
	.home_hero_content {
		padding-bottom: 2rem;
	}

	.home_intro {
		grid-template-columns: 1fr;
	}

	.home_cta {
		grid-column: 1;
		grid-row: auto;
		width: 100%;
	}

	.home_photo_grid {
		grid-template-columns: repeat(6, minmax(0, 1fr));
		grid-auto-rows: clamp(84px, 16vw, 116px);
	}

	.home_photo_card:nth-child(n) {
		grid-column: span 3;
		grid-row: span 2;
	}

	.home_photo_card:nth-child(6n + 1),
	.home_photo_card:nth-child(6n + 4) {
		grid-column: span 6;
		grid-row: span 3;
	}
}

@media (max-width: 480px) {
	.home_logo {
		padding: .7rem .8rem .55rem;
	}

	.home_logo img {
		width: min(220px, 72vw);
	}

	html {
		scroll-padding-top: 40px;
	}

	.home_nav {
		width: 100%;
		padding: 0;
	}

	.home_nav_inner {
		width: min(420px, 100%);
	}

	.home_nav a {
		padding: .4rem .45rem;
		font-size: .66rem;
	}

	.home_section {
		scroll-margin-top: 40px;
	}

	.home_hero h1 {
		font-size: clamp(2.85rem, 17vw, 4rem);
	}

	.home_photo_grid {
		grid-template-columns: 1fr;
		grid-auto-rows: auto;
	}

	.home_photo_card:nth-child(n) {
		grid-column: auto;
		grid-row: auto;
		aspect-ratio: 4 / 3;
	}
}
