:root {
	--bg: #111111;
	--panel: #1c1c1c;
	--line: #2e2e2e;
	--line-soft: #242424;
	--accent: #5877ff;
	--accent-lo: #4c66e6;

	--ok: #4ade80;
	--ok-bg: #091e11;
	--bad: #e05252;
	--bad-bg: #33191b;

	--text: #e6e6e6;
	--text-dim: #8d8d8d;
	--text-faint: #5f5f5f;

	background-color: var(--bg);
	width: 100%;
	max-width: 700px;
	margin-left: auto;
	margin-right: auto;
	padding-bottom: 100px;
	box-sizing: border-box;
}

a {
	all: unset;
}

:focus-visible {
	outline: 1px solid var(--accent);
	outline-offset: 1px;
}

h1 {
	font-family: sans-serif;
	color: var(--text);
	margin: 0;
	font-size: 1rem;
}

h2 {
	font-family: sans-serif;
	color: var(--text);
	margin: 0;
	font-size: 0.9rem;
	font-weight: 800;
}

p {
	font-family: sans-serif;
	color: var(--text-dim);
	margin: 0;
	font-size: 0.8rem;
}

.logo {
	cursor: pointer;
	margin: 0;
	position: relative;
	top: 3px;
}

.nav {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	position: sticky;
	top: 0;
	padding-top: 5px;
	background-color: var(--bg);
	border-bottom-style: solid;
	border-width: 1px;
	border-color: var(--line);
	padding: 10px;
	padding-left: 8px;
	padding-right: 8px;
	z-index: 10;
}

.options {
	display: flex;
	gap: 5px;
}

.option {
	cursor: pointer;
	display: inline-block;
	font-family: sans-serif;
	font-size: 0.8333rem;
	line-height: normal;
	background: none;
	border: none;
	color: var(--text-dim);
	transition: 0.08s;
	padding: 3px;
	padding-left: 7px;
	padding-right: 7px;
	border-radius: 3px;
	border: solid 1px transparent;
}

.option:hover {
	color: var(--accent);
	background-color: var(--line-soft);
	border: solid 1px var(--line);
}

.sel {
	cursor: pointer;
	display: inline-block;
	font-family: sans-serif;
	font-size: 0.8333rem;
	line-height: normal;
	background: none;
	border: none;
	transition: 0.08s;
	padding: 3px;
	padding-left: 7px;
	padding-right: 7px;
	border-radius: 3px;
	border: solid 1px transparent;
	color: var(--accent);
	background-color: var(--line-soft);
	border: solid 1px var(--line);
}

.highlight {
	background-color: var(--accent);
	color: var(--bg);
	font-weight: 700;
}

.highlight:hover {
	background-color: var(--accent-lo);
	color: var(--bg);
	border: solid 1px var(--accent);
}

.fbzr-hero {
	width: 100%;
	height: auto;
}

.hero {
	display: flex;
	justify-content: center;
	align-items: center;
	background-image: linear-gradient(190deg, var(--accent-lo), transparent 70%);
	border-radius: 5px;
}

.link {
	color: white;
	text-decoration: underline;
	cursor: pointer;
}

.overview {
	display: flex;
	flex-direction: column;
	gap: 30px;
	margin-top: 30px;
}

.feature {
	display: flex;
	flex-direction: row;
	gap: 12px;
}

footer {
	display: flex;
	justify-content: space-between;
	margin-top: 60px;
	border-top-style: solid;
	border-width: 1px;
	border-color: var(--line);
	padding-top: 12px;
}

.links {
	display: flex;
	flex-direction: column;
	gap: 5px;
}

.link-muted {
	color: var(--text-faint);
	font-family: sans-serif;
	margin: 0;
	cursor: pointer;
	font-size: 0.9rem;
}

.link-muted:hover {
	text-decoration: underline;
}

.muted {
	color: var(--text-faint);
	font-family: sans-serif;
	margin: 0;
	font-size: 0.9rem;
}

.timeline-entry {
	display: flex;
	gap: 12px;
}

.timeline-dot {
	background-color: var(--line);
	height: 8px;
	width: 8px;
	border-radius: 50%;
	position: relative;
	top: 8px;
}

.timeline-desc {
	border-left-style: solid;
	position: relative;
	right: 16.1px;
	bottom: 7px;
	padding-left: 15px;
	padding-top: 15px;
	padding-bottom: 50px;
	border-width: 1px;
	border-color: var(--line);
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.first {
	position: relative;
	top: 20px;
}

.mid {
	position: relative;
	bottom: 70px;
}

.mid .timeline-desc {
	border: none;
}

.mid .timeline-desc::before {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	width: 1px;
	background: linear-gradient(to bottom, var(--line), var(--accent));
}

.end {
	position: relative;
	bottom: 90px;
}

.last {
	border: none;
}

.last-dot {
	background-color: var(--accent);
}

.current {
	background-image: linear-gradient(var(--accent), transparent);
	border-radius: 5px;
}

.timeline-image {
	width: 660px;
	height: auto;
}

.feature-image {
	width: 300px;
	height: auto;
}

.ex-feature {
	padding: 20px;
	position: relative;
	top: 20px;
}

.comparison {
	display: flex;
	flex-wrap: wrap;
	margin-top: 40px;
}

.group {
	display: flex;
	flex-direction: column;
	gap: 12px;
	flex: 1 1 240px;
	min-width: 0;
	padding: 12px;
}

.group-logo {
	width: 100px;
}

.logo-container {
	display: flex;
	justify-content: center;
	gap: 12px;
}

.icon {
	width: 30px;
	height: 30px;
}

.discord {
	position: relative;
	top: 8px;
	margin-bottom: 15px;
}

table {
	font-family: sans-serif;
	color: var(--text);
	border-style: solid;
	border-width: 1px;
	border-color: var(--line-soft);
	border-radius: 5px;
}

td {
	padding: 3px;
	text-align: center;
	background-color: var(--panel);
	font-size: 0.8rem;
	cursor: default;
}

.category {
	font-weight: 800;
}

.negative {
	background-color: var(--bad-bg);
	color: var(--bad);
}

.positive {
	background-color: var(--ok-bg);
	color: var(--ok);
}

.explainer:hover {
	text-decoration: underline;
}

.writeup {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.header {
	margin-top: 100px;
	font-size: 2rem;
}

.extends {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.diagram {
	margin-top: 20px;
	margin-bottom: 20px;
}

@media (max-width: 560px) {
	.feature {
		flex-direction: column;
	}

	.feature-image,
	.timeline-image {
		width: 100%;
		max-width: 100%;
	}

	.timeline-entry > div {
		min-width: 0;
	}
}