:root {
	--glass-bg: rgba(255, 255, 255, 0.14);
	--glass-border: rgba(255, 255, 255, 0.28);
	--text: rgba(255, 255, 255, 0.92);
	--muted: rgba(255, 255, 255, 0.7);
	--shadow: rgba(0, 0, 0, 0.35);
	--blur: 18px;
	--blur-bg: 12px;
	--duration: 28s;
}

@media (prefers-color-scheme: light) {
	:root {
		--glass-bg: rgba(255, 255, 255, 0.5);
		--glass-border: rgba(255, 255, 255, 0.62);
		--text: rgba(0, 0, 0, 0.82);
		--muted: rgba(0, 0, 0, 0.62);
		--shadow: rgba(0, 0, 0, 0.18);
	}
}

* {
	box-sizing: border-box;
}

html,
body {
	height: 100%;
	overflow: hidden;
}

body {
	margin: 0;
	font-family: Recursive, ui-sans-serif, system-ui, -apple-system,
		BlinkMacSystemFont, "Segoe UI", sans-serif;
	font-variation-settings: "wght" 618, "CASL" 0.618, "CRSV" 0.618, "MONO" 0.1618;
	color: var(--text);
}

.hero {
	position: relative;
	width: 100vw;
	height: 100vh;
	isolation: isolate;
	display: flex;
	align-items: center;
	justify-content: center;
}

.bg:before {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	right: 0;
	left: 0;
	backdrop-filter: blur(var(--blur-bg));
	-webkit-backdrop-filter: blur(var(--blur-bg));
}

.bg {
	position: absolute;
	inset: 0;
	background-image: url("./assets/bg.jpeg");
	background-size: cover;
	background-position: center;
	transform: scale(1.02);
	filter: saturate(1.05) contrast(1.02);
	z-index: -2;
}

.vignette {
	position: absolute;
	inset: 0;
	z-index: -1;
	background:
		radial-gradient(
			900px 520px at 50% 63%,
			rgba(0, 0, 0, 0.12),
			rgba(0, 0, 0, 0.35) 55%,
			rgba(0, 0, 0, 0.55) 100%
		),
		linear-gradient(180deg, rgba(0, 0, 0, 0.08), rgba(0, 0, 0, 0.28));
}

.stack {
	display: grid;
	gap: 12px;
	align-items: center;
	justify-items: center;
	margin-bottom: 18vh;
}

.glass {
	background: var(--glass-bg);
	border: 1px solid var(--glass-border);
	backdrop-filter: blur(var(--blur));
	-webkit-backdrop-filter: blur(var(--blur));
	box-shadow: 0 24px 80px var(--shadow);
}

.links {
	width: calc(100vw + 2rem);
	border-radius: 18px;
	padding: 18px 18px 14px;
	text-align: center;
}

.title {
    margin: 0.1618em auto 0.618em;
	letter-spacing: -0.02em;
	font-size: clamp(30px, 4.5vw, 54px);
	line-height: 1.05;
}

.rule {
	border: 0;
	height: 1px;
	width: 100%;
	background: rgba(255, 255, 255, 0.18);
	margin: 14px 0 10px;
}

@media (prefers-color-scheme: light) {
	.rule {
		background: rgba(0, 0, 0, 0.12);
	}
}

/* --- marquees --- */

.marquee {
	width: 100%;
	overflow: hidden;
	position: relative;
	padding: 0;
	mask-image: linear-gradient(
		90deg,
		transparent,
		black 10%,
		black 90%,
		transparent
	);
}

.marquee__track {
	display: flex;
	align-items: center;
	width: max-content;
	will-change: transform;
	animation: marquee-left var(--duration) linear infinite;
}

.marquee--right .marquee__track {
	animation-name: marquee-right;
}

.marquee__set {
	display: flex;
	align-items: center;
	gap: 10px;
	padding-right: 10px;
	margin-top: 0.5rem;
}

@keyframes marquee-left {
	from {
		transform: translateX(0);
	}
	to {
		transform: translateX(-50%);
	}
}

@keyframes marquee-right {
	from {
		transform: translateX(-50%);
	}
	to {
		transform: translateX(0);
	}
}

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

/* epithet marquee */

.epithet {
	margin-top: 10px;
	color: var(--muted);
	font-size: clamp(14px, 2.1vw, 18px);
	min-height: 1.3em;
}

.epithet__item {
	white-space: nowrap;
	letter-spacing: 0.01em;
}

.epithet__dot {
	opacity: 0.55;
	padding: 0 2px;
}

/* links marquee */

.links__track {
	gap: 10px;
}

.links__track a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	white-space: nowrap;
	padding: 8px 10px;
	border-radius: 999px;
	text-decoration: none;
	color: inherit;
	border: 1px solid transparent;
	transition: transform 120ms ease, background-color 120ms ease,
		border-color 120ms ease;
}

.links__track a .icon {
	width: 1.1em;
	height: 1.1em;
	display: block;
}

.links__track a.link--icon {
	padding: 8px 9px;
}

.sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.links__track a:hover {
	transform: translateY(-1px);
	background: rgba(255, 255, 255, 0.08);
	border-color: rgba(255, 255, 255, 0.18);
}

@media (prefers-color-scheme: light) {
	.links__track a:hover {
		background: rgba(255, 255, 255, 0.5);
		border-color: rgba(0, 0, 0, 0.08);
	}
}

@media (max-width: 520px) {
	.stack {
		top: 66%;
	}
	.links {
		padding: 16px 14px 12px;
	}
	.links__track a {
		padding: 7px 9px;
	}
}
