:root {
	color-scheme: light;
}

html {
	scroll-behavior: smooth;
	scrollbar-color: #a86f45 #f1e8db;
	scrollbar-width: thin;
}

body {
	background-image:
		radial-gradient(circle at top left, rgba(255, 255, 255, 0.34), transparent 16%),
		linear-gradient(180deg, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0));
}

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

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

body::-webkit-scrollbar-thumb {
	background: linear-gradient(180deg, #be8a5d, #6f7e49);
	border-radius: 999px;
	border: 2px solid #f1e8db;
}

body::-webkit-scrollbar-thumb:hover {
	background: linear-gradient(180deg, #a86f45, #55613a);
}

.skip-link {
	position: absolute;
	left: 1rem;
	top: 1rem;
	z-index: 60;
	transform: translateY(-200%);
	border-radius: 999px;
	background: #ffffff;
	color: #1e2117;
	padding: 0.75rem 1rem;
	font-size: 0.875rem;
	font-weight: 700;
	box-shadow: 0 16px 40px rgba(0, 0, 0, 0.12);
	transition: transform 0.2s ease;
}

.skip-link:focus {
	transform: translateY(0);
	outline: 2px solid #a86f45;
	outline-offset: 4px;
}

.nav-link {
	transition: color 0.2s ease, opacity 0.2s ease;
}

.nav-link:hover,
.nav-link:focus-visible {
	color: #f1e3d1;
	outline: none;
	opacity: 1;
}

.hero-shell {
	background-color: #1e2117;
	padding-top: 6rem;
	padding-bottom: 3rem;
}

.hero-image {
	animation: heroDrift 20s ease-in-out infinite;
	transform-origin: center center;
	will-change: transform;
	filter: saturate(0.94) contrast(1.04);
}

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

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

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

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

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

@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;
	}

	.hero-image {
		transform: none !important;
	}
}
