/**
 * @file base.css
 * @brief ggsp framework: reusable structure + components, themed via theme.css tokens.
 * @copyright Copyright (c) 2026 hoff.industries
 */

h2 {
	margin-top: 1.5vh;
	margin-bottom: 1.5vh;
}

html {
	background-size: cover;
	font-family: var(--font-body);
	font-size: 16px;
	font-weight: bold;
	color: var(--text);
	background-color: var(--bg);
}

body {
	margin: 0px;
	min-height: 100vh;
	font-size: 1rem;
}

main {
	color: var(--text);
}

a {
	text-decoration: none;
}

a[href],
a[href]:visited {
	color: var(--accent);
}

.accent, a[href].accent { color: var(--accent); }
.gold, a[href].gold { color: var(--accent-2); }
.orange, a[href].orange { color: var(--accent-3); }

.spaced { margin: 0.3em; }

.stack {
	display: flex;
	flex-direction: row;
}

header {
	box-sizing: border-box;
	display: flex;
	flex-direction: row;
	align-items: center;
	margin: 0px;
	width: 100%;
	height: 4.5rem;
	background-color: var(--header-bg);
}

.footer {
	display: flex;
	flex-direction: row;
}

.header_image {
	margin-left: 0.3vw;
	margin-right: 2vw;
}

.header_image:hover {
	cursor: pointer;
}

.dot_button {
	box-sizing: border-box;
	font-weight: bold;

	display: flex;
	align-items: center;
	justify-content: center;

	text-align: center;
	padding: 0.5rem;
	margin-left: 0.3vw;
	margin-right: 0.3vw;

	height: 55%;
	width: 5rem;
	text-decoration: none;

	background-color: var(--surface);
	border-radius: var(--radius);
}

a.dot_button[href],
a.dot_button[href]:visited,
a.dot_button[href]:hover,
a.dot_button[href]:active {
	color: var(--text);
}

.dot_button.primary {
	border: var(--border-width) solid var(--accent);
}

.dot_button.join,
.dot_button.board {
	border: var(--border-width) solid var(--cta);
}

table {
	border-collapse: separate !important;
}

th {
	color: var(--accent);
	padding-bottom: 0.8rem;
	border-bottom: var(--border-width) solid var(--accent);
}

td {
	padding: 0.8rem;
	border-bottom: var(--border-width) solid var(--accent);
}

.bar {
	box-sizing: border-box;
	padding-left: 0.5rem;
	padding-right: 0.5rem;

	backdrop-filter: blur(20px);
	border-radius: var(--radius);
	background: rgba(0, 0, 0, 0.7);
	max-width: 98vw;
	margin: 1em auto 0;
	width: 97%;
}

.bar.primary {
	border: var(--border-width) solid var(--accent);
}

.bar.primary.big {
	color: var(--text);
	font-size: 1.3em;
	padding: 0.8em;
}

.bar.casino {
	background-color: rgba(182, 193, 98, 0.3);
	border: var(--border-width) solid gold;
}

.bar.overlay {
	position: absolute;
	z-index: 4;
	width: 97%;
	left: 50%;
	transform: translateX(-50%);
	margin: 0;
}

.hero_container {
	max-width: 100%;
	min-height: 10rem;
	background-repeat: no-repeat;
	background-size: cover;
	background-position: 0%, -50%;
}

.hero_container.join {
	color: var(--accent);
	font-size: 5rem;
	height: fit-content;

	align-items: center;
	justify-content: center;

	padding: 1rem;
	padding-top: 0.5rem;
	padding-bottom: 6rem;
	min-height: 1rem;
}

.map_title {
	padding: 0px;
	margin: 0px;
	flex-grow: 1;
	height: auto;
	font-size: 3rem;
}

.tagline {
	margin-left: 0.6vw;
	padding: 0px;
}

.be_smooth {
	font-family: var(--font-display);
	font-size: 8vw;
	color: var(--accent);

	display: flex;
	justify-content: center;
	align-items: center;
}

.join_container {
	width: 100%;
	justify-content: space-between;
}

.logo_layout {
	justify-content: center;
	align-items: center;
	padding-top: 1em;
	padding-bottom: 1em;
	padding-left: 0.8em;
	gap: 2.5em;
}

.scoot {
	margin-left: auto;
}

.image_loader_master,
.image_loader_lazy {
	position: absolute;
	width: 100%;
	background-size: cover;
	background-repeat: no-repeat;
}

.image_loader_master { z-index: 1; }
.image_loader_lazy { z-index: 2; }

.image_loader_blur {
	z-index: 3;
	backdrop-filter: blur(10px);
}

@media (max-aspect-ratio: 1 / 1) {
	.stack { flex-direction: column; }

	header {
		height: auto;
		flex-direction: column;
		justify-content: center;
		align-items: center;
	}

	.footer {
		flex-direction: column;
	}

	.header_image { height: 5vh; width: auto; }

	.dot_button {
		height: auto;
		margin-left: 0px;
		margin-right: 0px;
	}

	.dot_button.primary,
	.dot_button.join,
	.dot_button.board { display: none; width: 95%; }

	.bar { width: 100%; }

	.hero_container {
		justify-content: center;
		background-position: 50%, -50%;
	}

	.map_title {
		text-align: center;
	}

	.flick {
		margin: auto;
		margin-top: 1.5vh;
	}

	.scoot {
		margin: auto;
		margin-bottom: 1.5vh;
	}

	.logo_layout {
		gap: 0px;
	}
}
