/* open-sans-regular - latin_latin-ext */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: local('Open Sans'), local('OpenSans'),
       url('../fonts/open-sans-v13-latin_latin-ext-regular.woff2') format('woff2'),
       url('../fonts/open-sans-v13-latin_latin-ext-regular.woff') format('woff'),
       url('../fonts/open-sans-v13-latin_latin-ext-regular.ttf') format('truetype');
}

/* open-sans-800 - latin_latin-ext */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: local('Open Sans Extrabold'), local('OpenSans-Extrabold'),
       url('../fonts/open-sans-v13-latin_latin-ext-800.woff2') format('woff2'),
       url('../fonts/open-sans-v13-latin_latin-ext-800.woff') format('woff'),
       url('../fonts/open-sans-v13-latin_latin-ext-800.ttf') format('truetype');
}


/* Reset */

	html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, main, section, summary, time, mark, audio, video {
		margin: 0;
		padding: 0;
		border: 0;
		font-size: 100%;
		font: inherit;
		vertical-align: baseline;
	}

	article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, main, section {
		display: block;
	}

	body {
		line-height: 1;
	}

	ol, ul {
		list-style: none;
	}

	blockquote, q {
		quotes: none;
	}

	blockquote:before, blockquote:after, q:before, q:after {
		content: '';
		content: none;
	}

	table {
		border-collapse: collapse;
		border-spacing: 0;
	}

	body {
		-webkit-text-size-adjust: none;
	}

/* Box Model */

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

/* Basic */

	@-ms-viewport {
		width: device-width;
	}

	body {
		background: #2e3842;
	}

		body.is-loading *, body.is-loading *:before, body.is-loading *:after {
			animation: none !important;
			transition: none !important;
		}

	body, input, select, textarea {
		color: #fff;
		font-family: "Open Sans", Helvetica, sans-serif;
		font-size: 14pt;
		font-weight: 400;
		letter-spacing: 0.05em;
		line-height: 1.65em;
	}

		@media screen and (max-width: 1680px) {

			body, input, select, textarea {
				font-size: 13pt;
			}

		}

		@media screen and (max-width: 1280px) {

			body, input, select, textarea {
				font-size: 12pt;
			}

		}

		@media screen and (max-width: 736px) {

			body, input, select, textarea {
				font-size: 11pt;
				letter-spacing: 0.0375em;
			}

		}

	a {
		transition: color 0.2s ease, border-bottom-color 0.2s ease;
		border-bottom: dotted 1px;
		color: inherit;
		text-decoration: none;
	}

		a:hover {
			border-bottom-color: transparent;
		}

	p {
		margin: 0 0 2em 0;
	}

	h1, h2, h3, h4, h5, h6 {
		color: #fff;
		font-weight: 800;
		letter-spacing: 0.225em;
		line-height: 1em;
		margin: 0 0 1em 0;
		text-transform: uppercase;
	}

	h2 {
		font-size: 1.35em;
		line-height: 1.75em;
	}

		@media screen and (max-width: 736px) {

			h2 {
				font-size: 1.1em;
				line-height: 1.65em;
			}

		}

/* Section/Article */

	header p {
		color: rgba(255, 255, 255, 0.5);
		position: relative;
		top: -0.25em;
	}

	@media screen and (max-width: 980px) {

		header br {
			display: none;
		}

	}

/* Form */

	form {
		margin: 0 0 2em 0;
	}

	label {
		color: #fff;
		display: block;
		font-size: 0.9em;
		font-weight: 600;
		margin: 0 0 1em 0;
	}

	input[type="text"],
	input[type="password"],
	input[type="email"],
	select,
	textarea {
		appearance: none;
		background: rgba(144, 144, 144, 0.25);
		border-radius: 3px;
		border: none;
		color: inherit;
		display: block;
		outline: 0;
		padding: 0 1em;
		text-decoration: none;
		width: 100%;
	}

		input[type="text"]:invalid,
		input[type="password"]:invalid,
		input[type="email"]:invalid,
		select:invalid,
		textarea:invalid {
			box-shadow: none;
		}

		input[type="text"]:focus,
		input[type="password"]:focus,
		input[type="email"]:focus,
		select:focus,
		textarea:focus {
			box-shadow: 0 0 0 2px #21b2a6;
		}

	input[type="text"],
	input[type="password"],
	input[type="email"],
	select {
		height: 2.75em;
		padding-top: 0.5em;
		padding-bottom: 0.5em;
	}

	textarea {
		padding: 0.75em 1em;
	}

	::-webkit-input-placeholder {
		color: rgba(255, 255, 255, 0.5) !important;
		opacity: 1.0;
	}

	:-moz-placeholder {
		color: rgba(255, 255, 255, 0.5) !important;
		opacity: 1.0;
	}

	::-moz-placeholder {
		color: rgba(255, 255, 255, 0.5) !important;
		opacity: 1.0;
	}

	:-ms-input-placeholder {
		color: rgba(255, 255, 255, 0.5) !important;
		opacity: 1.0;
	}

/* List */

	ul {
		list-style: disc;
		margin: 0 0 2em 0;
		padding-left: 1em;
	}

		ul li {
			padding-left: 0.5em;
		}

/* Button */

	input[type="submit"],
	input[type="reset"],
	input[type="button"],
	button,
	.button {
		appearance: none;
		transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out;
		background-color: transparent;
		border-radius: 3px;
		border: 0;
		box-shadow: inset 0 0 0 2px #fff;
		color: #fff;
		cursor: pointer;
		display: inline-block;
		font-size: 0.8em;
		font-weight: 600;
		height: 3.125em;
		letter-spacing: 0.225em;
		line-height: 3.125em;
		padding: 0 2.75em;
		text-align: center;
		text-decoration: none;
		text-transform: uppercase;
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
	}

		input[type="submit"]:hover,
		input[type="reset"]:hover,
		input[type="button"]:hover,
		button:hover,
		.button:hover {
			background-color: rgba(144, 144, 144, 0.25);
		}

		input[type="submit"]:active,
		input[type="reset"]:active,
		input[type="button"]:active,
		button:active,
		.button:active {
			background-color: rgba(144, 144, 144, 0.5);
		}

		@media screen and (max-width: 736px) {

			input[type="submit"],
			input[type="reset"],
			input[type="button"],
			button,
			.button {
				height: 3.75em;
				line-height: 3.75em;
			}

		}

/* Wrapper */

	.wrapper {
		padding: 6em 0 4em 0;
	}

		.wrapper > .inner {
			width: 60em;
			margin: 0 auto;
		}

			@media screen and (max-width: 1280px) {

				.wrapper > .inner {
					width: 90%;
				}

			}

			@media screen and (max-width: 980px) {

				.wrapper > .inner {
					width: 100%;
				}

			}

		.wrapper.alt {
			padding: 0;
		}

		.wrapper.style4 {
			background-color: transparent;
		}

		@media screen and (max-width: 980px) {

			.wrapper {
				padding: 4em 3em 2em 3em;
			}

		}

		@media screen and (max-width: 736px) {

			.wrapper {
				padding: 3em 2em 1em 2em;
			}

		}

/* Page Wrapper */

	#page-wrapper {
		transition: opacity 0.5s ease;
		opacity: 1;
		padding-top: 3em;
		background-color: #080808;
		background-image:
			radial-gradient(ellipse at 20% 30%, rgba(56, 189, 248, 0.3) 0%, transparent 60%),
			radial-gradient(ellipse at 80% 70%, rgba(139, 92, 246, 0.19) 0%, transparent 70%),
			radial-gradient(ellipse at 60% 20%, rgba(236, 72, 153, 0.25) 0%, transparent 50%),
			radial-gradient(ellipse at 40% 80%, rgba(34, 197, 94, 0.15) 0%, transparent 65%);
		background-attachment: fixed;
	}

/* Banner */

	#banner {
		display: flex;
		flex-direction: column;
		justify-content: center;
		cursor: default;
		height: 100vh;
		min-height: 35em;
		overflow: hidden;
		position: relative;
		text-align: center;
	}

		#banner h2 {
			transform: scale(1);
			transition: transform 0.5s ease, opacity 0.5s ease;
			display: inline-block;
			font-size: 1.75em;
			opacity: 1;
			padding: 0.35em 1em;
			position: relative;
			z-index: 1;
		}

			#banner h2:before, #banner h2:after {
				transition: width 0.85s ease;
				transition-delay: 0.25s;
				background: #fff;
				content: '';
				display: block;
				height: 2px;
				position: absolute;
				width: 100%;
			}

			#banner h2:before {
				top: 0;
				left: 0;
			}

			#banner h2:after {
				bottom: 0;
				right: 0;
			}

		#banner p {
			letter-spacing: 0.225em;
			text-transform: uppercase;
		}

			#banner p a {
				color: inherit;
			}

		#banner .more {
			transition: transform 0.75s ease, opacity 0.75s ease;
			transition-delay: 3.5s;
			transform: translateY(0);
			border: none;
			bottom: 0;
			color: inherit;
			font-size: 0.8em;
			height: 8.5em;
			left: 50%;
			letter-spacing: 0.225em;
			margin-left: -8.5em;
			opacity: 1;
			outline: 0;
			padding-left: 0.225em;
			position: absolute;
			text-align: center;
			text-transform: uppercase;
			width: 16em;
			z-index: 1;
		}

			#banner .more:after {
				background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMzBweCIgaGVpZ2h0PSIzMHB4IiB2aWV3Qm94PSIwIDAgMzAgMzAiIHpvb21BbmRQYW49ImRpc2FibGUiIHByZXNlcnZlQXNwZWN0UmF0aW89Im5vbmUiPg0KICAgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+PCFbQ0RBVEFbIGxpbmUgeyBzdHJva2U6ICNmZmZmZmY7IHN0cm9rZS13aWR0aDogMzsgfSBdXT48L3N0eWxlPg0KCTxsaW5lIHgxPSIwIiB5MT0iMTUiIHgyPSIxNSIgeTI9IjMwIiAvPg0KCTxsaW5lIHgxPSIzMCIgeTE9IjE1IiB4Mj0iMTUiIHkyPSIzMCIgLz4NCgk8bGluZSB4MT0iMTUiIHkxPSIzMCIgeDI9IjE1IiB5Mj0iMCIgLz4NCjwvc3ZnPg==');
				background-position: center;
				background-repeat: no-repeat;
				background-size: contain;
				bottom: 4em;
				content: '';
				display: block;
				height: 1.5em;
				left: 50%;
				margin: 0 0 0 -0.75em;
				position: absolute;
				width: 1.5em;
			}

		#banner:after {
			pointer-events: none;
			transition: opacity 3s ease-in-out;
			transition-delay: 1.25s;
			content: '';
			background: #2e3842;
			display: block;
			width: 100%;
			height: 100%;
			position: absolute;
			left: 0;
			top: 0;
			opacity: 0;
		}

		@media screen and (max-width: 736px) {

			#banner {
				padding: 7em 3em 5em 3em;
				height: auto;
				min-height: 0;
			}

				#banner h2 {
					font-size: 1.25em;
				}

				#banner br {
					display: none;
				}

				#banner .more {
					display: none;
				}

		}

	body.is-loading #banner h2 {
		transform: scale(0.95);
		opacity: 0;
	}

		body.is-loading #banner h2:before, body.is-loading #banner h2:after {
			width: 0;
		}

	body.is-loading #banner .more {
		transform: translateY(8.5em);
		opacity: 0;
	}

	body.is-loading #banner:after {
		opacity: 1;
	}

/* Footer */

	#footer {
		padding: 6em 0 4em 0;
		text-align: center;
	}

		#footer .copyright {
			color: rgba(255, 255, 255, 0.5);
			font-size: 0.8em;
			letter-spacing: 0.225em;
			list-style: none;
			padding: 0;
			text-transform: uppercase;
		}

			#footer .copyright li {
				border-left: solid 1px rgba(255, 255, 255, 0.5);
				display: inline-block;
				line-height: 1em;
				margin-left: 1em;
				padding-left: 1em;
			}

				#footer .copyright li:first-child {
					border-left: 0;
					margin-left: 0;
					padding-left: 0;
				}

				@media screen and (max-width: 480px) {

					#footer .copyright li {
						border: 0;
						display: block;
						line-height: 1.65em;
						margin: 0;
						padding: 0.5em 0;
					}

				}

		@media screen and (max-width: 980px) {

			#footer {
				padding: 4em 3em 2em 3em;
			}

		}

		@media screen and (max-width: 736px) {

			#footer {
				padding: 3em 2em 1em 2em;
			}

		}

/* Landing */

	body.landing #page-wrapper {
		padding-top: 0;
	}

	#banner .tagline {
		text-transform: uppercase;
		letter-spacing: 0.225em;
		text-align: center;
	}

	#contact .inner header p {
		color: inherit;
	}

	#contact {
		text-align: center;
	}

	#contact form {
		clear: both;
		max-width: 30em;
		margin: 4em auto 1em auto;
	}

	#contact form label {
		margin-top: 1em;
		margin-bottom: 0;
	}

	input[type="text"]:focus,
	input[type="password"]:focus,
	input[type="email"]:focus,
	select:focus,
	textarea:focus {
		box-shadow: 0 0 0 2px #ffffff;
	}

	#contact form input[type="submit"] {
		margin-top: 2em;
	}

	#contact form#contactform label {
		display: none;
	}

	#contact form#contactform textarea,
	#contact form#contactform input[type="text"],
	#contact form#contactform input[type="password"],
	#contact form#contactform input[type="email"] {
		margin-top: 1em;
	}

	#contact form#contactform input#name {
		margin-top: 0;
	}

	#contact form#contactform textarea {
		resize: none;
		overflow: auto;
	}

/* Honeypot — do not use display:none */
.hp-field {
	position: absolute;
	left: -9999px;
	opacity: 0;
	z-index: -1;
	tab-index: -1;
	width: 1px;
    height: 1px;
    overflow: hidden;
}

/* Cloudflare Turnstile container */
#contact .cf-turnstile {
	margin: 1.5em auto 0 auto;
	display: flex;
	justify-content: center;
}

#turnstile-error {
	color:rgba(255, 32, 32, 0.8);
	margin-top:0.5em;
}

/* Inline feedback area */
#form-feedback {
	max-width: 30em;
	margin: 10em auto 4em auto;
	text-align: center;
}

#form-feedback p {
	margin-bottom: 2em;
}

footer#footer {
	padding-top: 2.5em;
	padding-bottom: 2.5em;
	margin-top: 1em;
}

footer#footer ul.copyright {
	margin-bottom: 0;
}

@media screen and (max-width: 980px) {

	#contact form {
		margin-bottom: 0;
		padding-bottom: 3em;
	}

	footer#footer {
		margin-top: 0;
	}
}



