:root {
	--black: rgb(16,16,16);
	--gray: rgb(38,38,38);
	--white: rgb(240,240,240);

	--elem-width: min(800px,90vw);
	--elem-height: min(800px,90vh);

	--border-radius: 15px;

	color: var(--white);
	background: var(--black);

	font-family: system-ui, sans-serif;
}

body {
	display: flex;
	flex-direction: column;
	align-items: center;

	margin-top: 0;
}

.banner {
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.banner-background {
	border-radius: var(--border-radius);
	background-color: var(--gray);
	object-fit: cover;
}

.banner-background, .banner-content {
	height: var(--elem-height);
	overflow-y: auto;
}

.banner-content {
	margin: 10px;
	position: relative;
	top: calc(-1 * var(--elem-height));
}

.header {
	position: sticky;
	top: 0;
	display: flex;

	background: var(--gray);
	color: var(--white);

	padding: 10px;
	margin-bottom: 10px;

	align-items: center;

	font-size: 1.2em;

	width: calc(100vw - 20px);
}

.header-link {
	text-decoration: none;
	font-weight: bold;
	color: var(--white);
	padding-left: 0.5em;
	margin-left: 0.5em;
	border-left: solid var(--white) 2px;
}

.header-img {
	margin-left: 0.8em;
	height: 2em;
	width: 2em;
	border-radius: 100%;
	object-fit: cover;
}

.content,
.form,
.banner,
.banner-background {
	border: solid var(--gray) 3px;
    padding: 25px;
    margin: 25px;
	border-radius: var(--border-radius);
	width: var(--elem-width);	
}

.form {
	grid-template-columns: 0.7fr 1fr;
	display: grid;
}

.form-key {
	margin-right: 10px;
}

.form-input {
	border: solid var(--gray) 3px;
	background: var(--black);
	border-radius: var(--border-radius);

	color: var(--white);

	font-size: 1rem;
	padding: 0.5rem;
	margin-bottom: 0.5rem;
}

.form-message {
	font-style: italic;
}

.map {
    width: var(--elem-height);
    height: var(--elem-height);
    background: var(--gray);
    image-rendering: pixelated; 
    image-rendering: crisp-edges;
}

a {
    color: var(--white);
}