*
{
	font-family: Arial, Helvetica, sans-serif;

	line-height: 1.5em;
}

body
{
	padding-top: calc(80px + env(safe-area-inset-top));
}

a
{
	text-decoration: none;
}

h1
{
	font-size: 32px;
}

h2
{
	font-size: 24px;
}

h3
{
	font-size: 20px;
}

h4
{
	font-size: 16px;
}

h1, h2, h3, h4
{
	text-transform: uppercase;
	letter-spacing: 1px;
}

#header
{
	display: flex;
	position: fixed;

	top: 0;
	width: 100%;
	padding: 0 calc(10% - 25px);

	padding-top: env(safe-area-inset-top);
	
	flex-direction: column;

	box-sizing: border-box;

	backdrop-filter: blur(15px);
	-webkit-backdrop-filter: blur(15px);

	z-index: 1;
}

#header button
{
	padding: 0 25px;
	background-color: transparent;
	border: none;
	border-radius: 0;
}

#header .row
{
	display: flex;
	height: 80px;
}

#menu-head .row:last-of-type
{
	flex-direction: row-reverse;
}

#header img
{
	width: 120px;
	margin: auto 0;
}

#menu-head
{
	display: grid;

	height: 80px;

	grid-template-columns: calc(50% - 110px) 120px calc(50% - 110px);

	gap: 50px;
}

#menu-bar
{
	display: none;

	width: 100%;
	height: 100vh;
}

#header.menu-active #menu-bar
{
	display: flex;
}

#content
{
	min-height: calc(100vh - 160px - env(safe-area-inset-top));
}

#content img
{
	width: 100%;
}

#content .container
{
	display: flex;
	flex-direction: column;
	gap: 50px;

	text-align: left;
	padding: 100px 10%;
}

#content .container h1
{
	margin: 0;
}

#footer
{
	display: flex;

	width: 100%;
	height: 80px;

	text-align: right;
	
	box-sizing: border-box;
	padding: 0 20px;
}

#footer p
{
	width: 100%;
	margin: auto 0;
	text-transform: uppercase;
	letter-spacing: 3px;
	font-size: 14px;
}

#footer img
{
	position: absolute;
	height: 100px;
	left: calc(50% - 50px);
	margin-top: -50px;
	border-radius: 25px;
	box-sizing: border-box;

	border: 5px solid white;
}

.mobile-only
{
	display: none!important;
}

input, textarea, button
{
	outline: none;
	border: none;

	font-size: 14px;

	letter-spacing: 3px;

	padding: 12px;

	min-height: 50px;
	border-radius: 10px;

	transition: .2s ease-in-out background-color, .2s ease-in-out border-color;
}

input[type="submit"], button
{
	padding: 5px 25px;
	text-transform: uppercase;
	cursor: pointer;
	border: none!important;
	font-weight: normal;
}

input::placeholder, textarea::placeholder
{
	text-transform: uppercase;
	letter-spacing: 3px;
}

input:disabled, textarea:disabled, button:disabled
{
	opacity: 0.5;
	pointer-events: none;
}

button .label
{
	position: absolute;
	right: 0;
	top: 0;
	background: transparent!important;
}

#dialogue
{
	display: flex!important;
	position: fixed;

	left: 0;
	top: 0;

	width: 100%;
	height: 100vh;

	padding: 0 10%;

	justify-content: center;
	align-items: center;

	backdrop-filter: blur(5px);
	-webkit-backdrop-filter: blur(5px);

	box-sizing: border-box;

	z-index: 1;

	transition: .3s ease-in-out opacity;

	will-change: opacity;
}

#dialogue.hidden
{
	pointer-events: none;

	opacity: 0;
}

#dialogue .content
{
	display: flex;
	flex-direction: column;
	padding: 40px;
	gap: 40px;

	border-radius: 20px;

	text-align: center;

	transform-style: preserve-3d;
	transition: .3s cubic-bezier(0.68, -0.55, 0.27, 1.55) transform, .3s ease-in-out opacity;

	will-change: transform, opacity;
}

#dialogue.hidden .content
{
	transform: scale(.9);
	opacity: 0;
}

#dialogue .content form
{
	margin: 0;
	gap: 40px;
}

#dialogue .content form button
{
	width: 100%;
}

.card
{
	width: 100%;
	min-width: fit-content;

	padding: 50px;
	border-radius: 20px;
	gap: 20px;
	
	flex-grow: 1;
	flex-basis: 0;

	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);

	box-sizing: border-box;
	background-clip: padding-box;
}

.card button, .card input, #dialogue button, #dialogue input
{
	height: 50px;
	border-radius: 10px;
}

#background
{
	position: fixed;
	
	width: 100%;
	height: 100%;

	overflow: hidden;

	z-index: -1;

	perspective: 8px;
	perspective-origin: top;
}

#background .layer-1, #background .layer-2, #background .layer-3
{
	position: absolute;

	width: 100%;
	height: 100%;

	will-change: top;

	/*transition: 0.1s ease-in-out transform;*/
}

#background .dot
{
	position: absolute;

	border-radius: 100%;

	width: 50px;
	height: 50px;

	background-color: aqua;

	/* box-shadow: 10px 10px 30px rgba(0, 0, 0, 0.5); */

	opacity: 0.5;

	transform: translateX(var(--x)) translateY(var(--y)) scale(var(--scale));
}

#background .layer-1
{
	z-index: -1;
	transform: translateZ(-1px);
}

#background .layer-2
{
	z-index: -2;
	transform: translateZ(-2px);
}

#background .layer-3
{
	z-index: -3;
	transform: translateZ(-3px);
}

#background .dot:nth-child(3n + 1)
{
	background-color: aquamarine;
}

#background .dot:nth-child(3n + 2)
{
	background-color: cyan;
}

#background .dot:nth-child(3n + 3)
{
	background-color: blueviolet;
}

.parallax-container
{
	position: relative!important;
	width: 100%;
	height: 100%;
	overflow-x: hidden;
	overflow-y: scroll!important;
	perspective: 8px;
	perspective-origin: top;
	display: flex;
	z-index: 0!important;
}

@keyframes pulse {
	0% {
		width: 50px;
		height: 50px;
	}

	50% {
		width: 100px;
		height: 100px;
	}

	100% {
		width: 50px;
		height: 50px;
	}
}

.flex details
{
	gap: 20px;
}

.flex details[open]
{
	margin-bottom: 10px;
}

summary
{
	margin-bottom: 10px;
	cursor: pointer;
	user-select: none;
}