/*
Master Style Sheet
This handles the base style of all pages.
*/

:root {
	/* Backgrounds */
	--bg-primary: #0f172a;
	--bg-secondary: #111827;

	/* Primary Accent (Deep) */
	--accent-purple: #4d1182;
	--accent-hover: #6d368f;

	/* Lighter Accent Variants */
	--accent-light: #8b5cf6;
	--accent-soft: #a78bfa;
	--accent-glow: #c4b5fd;

	/* Complementary Cool Accent */
	--accent-blue: #3502b5;
	--accent-blue-soft: #4202e3;

	/* Cyan Accents */
	--accent-cyan: #06b6d4;
	--accent-cyan-soft: #22d3ee;

	/* Silver Accents */
	--silver-accent: #b8b8b8;
	--silver-dark-accent: #636363;

	/* Text */
	--text-primary: #f1f5f9;
	--text-secondary: #cbd5e1;
	--text-muted: #94a3b8;

	/* Borders */
	--border-subtle: #334155;
	--border-accent: #8b5cf6;

	/* Yellow Accent */
	--accent-yellow: #dcdcaa;
}

.wip-badge {
	display: inline-block;
	font-size: 0.6rem;
	padding: 1px 5px;
	background: rgba(220, 220, 170, 0.12);
	border: 1px solid rgba(220, 220, 170, 0.3);
	color: var(--accent-yellow);
	border-radius: 3px;
	margin-left: 6px;
	vertical-align: middle;
	font-weight: 400;
	letter-spacing: 0.05em;
}

.wip-badge.done-badge {
	background: rgba(106, 153, 85, 0.15);
	border-color: rgba(106, 153, 85, 0.45);
	color: #89d185;
}

/* Live and still being improved */
.wip-badge.live-badge {
	background: rgba(34, 211, 238, 0.12);
	border-color: rgba(34, 211, 238, 0.45);
	color: var(--accent-cyan-soft);
}

.version-tag {
	font-size: 0.7rem;
	font-weight: 400;
	color: var(--text-muted);
	vertical-align: middle;
	margin-left: 4px;
}

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

body {
	background-color: var(--bg-primary);
	color: var(--text-secondary);
	font-family:
		system-ui,
		-apple-system,
		BlinkMacSystemFont,
		"Segoe UI",
		sans-serif;
	line-height: 1.6;
	letter-spacing: 0.3px;
	margin: 0 auto;
	max-width: 900px;
}

main {
	padding: 0 1.25rem;
}

header {
	background-color: var(--accent-purple);
	padding: 16px 20px;

	position: sticky;
	top: 0;
	z-index: 1000;

	box-shadow: 0 4px 10px rgba(0, 0, 0, 0.25);
}

nav {
	width: 99%;
	margin: 0 auto;
	display: flex;
	justify-content: space-between;
	align-items: center;
}

nav a {
	color: var(--text-primary);
	text-decoration: none;
	margin-left: 16px;
	padding: 8px 14px;
	border: 2px solid transparent;
	border-radius: 6px;
	font-weight: 500;
	transition:
		background-color 0.2s ease,
		border-color 0.2s ease,
		color 0.2s ease;
}

nav a:hover {
	background-color: var(--accent-hover);
}

nav a.active {
	background-color: var(--text-secondary);
	color: var(--bg-primary);
	border-color: var(--text-secondary);
}

footer {
	background-color: var(--bg-primary);
	border-top: 1px solid var(--border-subtle);
	padding: 40px 20px;
	text-align: center;
	font-size: 0.9rem;
	color: var(--text-secondary);
}

footer p {
	margin: 0 auto 16px auto;
}

h1 {
	font-size: 2.8rem;
	color: var(--text-primary);
	margin-bottom: 20px;
	text-align: center;
}

h2 {
	font-size: 2rem;
	color: var(--text-primary);
	margin-bottom: 16px;
	border-left: 4px solid var(--accent-purple);
	padding-left: 12px;
}

h3 {
	font-size: 1.5rem;
	color: var(--text-primary);
	margin-bottom: 12px;
}

h4 {
	font-size: 1.2rem;
	color: var(--text-primary);
	margin-bottom: 10px;
}

p {
	margin-bottom: 16px;
	max-width: 70ch;
}

a {
	color: var(--accent-cyan);
	text-decoration: none;
	transition: color 0.2s ease;
}

a:hover {
	color: var(--accent-glow);
}

.btn {
	display: inline-block;
	padding: 0.75rem 1.5rem;
	margin-top: 1rem;

	background-color: var(--accent-cyan);
	color: var(--accent-purple);
	text-decoration: none;
	border-radius: 8px;

	box-shadow: 0 6px 0 rgba(0, 0, 0, 0.35);

	transition:
		background-color 0.3s ease,
		transform 0.1s ease,
		box-shadow 0.1s ease;
}

.btn:hover {
	background-color: var(--accent-cyan-soft);
	transform: translateY(-2px);
	box-shadow: 0 8px 0 rgba(0, 0, 0, 0.4);
	color: var(--accent-hover);
}

.btn:active {
	transform: translateY(4px);
	box-shadow: 0 2px 0 rgba(0, 0, 0, 0.35);
}

ul {
	list-style-type: disc;
	padding-left: 2rem;
	margin-bottom: 1rem;
}

@media (max-width: 768px) {
	nav a {
		padding: 6px 10px;
		font-size: 0.9rem;
	}
}

@media (max-width: 600px) {
	header {
		padding: 6px 10px;
	}

	nav {
		flex-wrap: wrap;
		justify-content: center;
		gap: 4px;
		width: 100%;
	}

	nav a {
		margin-left: 0;
		text-align: center;
		padding: 5px 10px;
		font-size: 0.85rem;
	}

	h1 {
		font-size: 2rem;
	}

	h2 {
		font-size: 1.5rem;
	}

	h3 {
		font-size: 1.25rem;
	}

	main {
		padding: 0 0.75rem;
	}
}
