:root {
	--color-bg-start: #fdf6ee;
	--color-bg-end: #e8f2f7;
	--color-text: #1a1a1a;
	--color-link: #b34f00;
	--color-link-hover: #17677f;
	--color-link-active: #032559;
	--color-muted: #6b6b6b;
	--color-badge-start: #c2181f;
	--color-badge-end: #a3131a;
	--color-badge-text: #ffffff;
}

@media (prefers-color-scheme: dark) {
	:root {
		--color-bg-start: #26221e;
		--color-bg-end: #10161a;
		--color-text: #e8e8e8;
		--color-link: #ff9d4d;
		--color-link-hover: #63c5e8;
		--color-link-active: #a8c8f0;
		--color-muted: #9a9a9a;
	}
}

* {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

body {
	min-height: 100vh;
	display: flex;
	flex-direction: column;
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	line-height: 1.5;
	color: var(--color-text);
	background: linear-gradient(135deg, var(--color-bg-start), var(--color-bg-end), var(--color-bg-start));
	background-size: 300% 300%;
}

@media (prefers-reduced-motion: no-preference) {
	body {
		animation: bg-drift 30s ease-in-out infinite alternate;
	}
}

@keyframes bg-drift {
	from {
		background-position: 0% 0%;
	}

	to {
		background-position: 100% 100%;
	}
}

main {
	flex: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 2.5rem;
	padding-block: 3rem;
	padding-inline: 1.5rem;
}

h1 {
	font-size: clamp(1.5rem, 4vw, 2.25rem);
	font-weight: 300;
	text-transform: lowercase;
	letter-spacing: 0.12em;
}

nav {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 1.25rem;
}

@media (min-width: 950px) {
	nav {
		flex-direction: row;
		flex-wrap: wrap;
		justify-content: center;
		gap: 2.5rem;
	}
}

a.link {
	color: var(--color-link);
	display: block;
	font-size: 1.5rem;
	text-decoration: none;
	position: relative;
}

a.link::before {
	color: var(--color-muted);
	content: "#";
	font-size: 1.2rem;
	opacity: 0.6;
}

a.link:hover::before {
	opacity: 1;
}

a:hover {
	color: var(--color-link-hover);
}

a:active {
	color: var(--color-link-active);
}

a:focus-visible {
	outline: 2px solid var(--color-link-hover);
	outline-offset: 3px;
	border-radius: 2px;
}

@media (prefers-reduced-motion: no-preference) {
	a.link {
		transition: color 0.3s ease, transform 0.3s ease;
	}

	a.link::before {
		transition: opacity 0.3s ease;
	}

	a.link:hover {
		transform: translateX(5px);
	}
}

.announcements {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	max-inline-size: 60ch;
}

.announcements h2 {
	font-size: 0.9rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--color-muted);
}

.announcements ul {
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.announcements li {
	font-size: 0.9rem;
	line-height: 1.4;
}

.announcements a {
	color: var(--color-link);
	text-decoration: none;
}

.announcements a:hover {
	color: var(--color-link-hover);
	text-decoration: underline;
}

.announcements time {
	color: var(--color-muted);
}

.light {
	background: linear-gradient(135deg, var(--color-badge-start) 0%, var(--color-badge-end) 100%);
	color: var(--color-badge-text);
	padding: 0.2em 0.5em;
	font-weight: bold;
	font-size: 0.8em;
	border-radius: 4px;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

footer {
	display: flex;
	justify-content: center;
	padding-block: 1.25rem;
}

#copyright {
	color: var(--color-muted);
	font-size: 0.85rem;
	letter-spacing: 0.5px;
}
