html {
	scroll-behavior: smooth;
	scrollbar-color: #8d5838 #ebe2d5;
	scrollbar-width: thin;
}

body {
	background-image:
		radial-gradient(circle at 16% 8%, rgba(255, 255, 255, 0.9), transparent 24%),
		radial-gradient(circle at 84% 2%, rgba(189, 115, 72, 0.08), transparent 16%),
		radial-gradient(circle at 1px 1px, rgba(69, 93, 79, 0.05) 1px, transparent 0),
		linear-gradient(180deg, #f8f3ed 0%, #f6f1ea 100%);
	background-size: auto, auto, 18px 18px, auto;
}

body::-webkit-scrollbar {
	width: 10px;
}

body::-webkit-scrollbar-track {
	background: #ebe2d5;
}

body::-webkit-scrollbar-thumb {
	background: linear-gradient(180deg, #a15c39, #455d4f);
	border-radius: 999px;
	border: 2px solid #ebe2d5;
}

body::-webkit-scrollbar-thumb:hover {
	background: linear-gradient(180deg, #844a31, #38493f);
}

body::before {
	content: "";
	position: fixed;
	inset: 0;
	pointer-events: none;
	background:
		radial-gradient(circle at top, rgba(255, 255, 255, 0.48), transparent 38%),
		linear-gradient(180deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0));
	z-index: -1;
}

a,
button,
input,
select,
textarea {
	transition: color 180ms ease, background-color 180ms ease, border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
	outline: 2px solid #bd7348;
	outline-offset: 3px;
}

.hero-image {
	animation: heroDrift 18s ease-in-out infinite;
	transform-origin: center center;
	will-change: transform;
}

.section-kicker {
	display: inline-flex;
	align-items: center;
	gap: 0.85rem;
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	color: #a15c39;
}

.section-kicker::before {
	content: "";
	width: 2.75rem;
	height: 1px;
	background: rgba(161, 92, 57, 0.45);
}

.nav-scrolled {
	background: rgba(24, 33, 29, 0.88);
	border-color: rgba(255, 255, 255, 0.08);
}

[data-reveal] {
	opacity: 0;
	transform: translate3d(0, 36px, 0);
	transition: opacity 0.9s ease, transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
	will-change: opacity, transform;
}

[data-reveal="left"] {
	transform: translate3d(-42px, 24px, 0);
}

[data-reveal="right"] {
	transform: translate3d(42px, 24px, 0);
}

[data-reveal].is-visible {
	opacity: 1;
	transform: translate3d(0, 0, 0);
}

#form-feedback.is-success {
	display: block;
	background: #dde7e2;
	color: #38493f;
}

#form-feedback.is-error {
	display: block;
	background: #f6dfd8;
	color: #7c3928;
}

@keyframes heroDrift {
	0% {
		transform: scale(1.03) translate3d(0, 0, 0);
	}
	50% {
		transform: scale(1.08) translate3d(0, -1.4%, 0);
	}
	100% {
		transform: scale(1.03) translate3d(0, 0, 0);
	}
}

@media (max-width: 767px) {
	html {
		scroll-padding-top: 5.5rem;
	}
}

@media (min-width: 768px) {
	html {
		scroll-padding-top: 6.5rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		animation: none !important;
		transition-duration: 0.01ms !important;
	}

	[data-reveal] {
		opacity: 1 !important;
		transform: none !important;
	}
}
