:root {
	--color-navy: #0A2837;
	--color-cyan: #00C2DF;
	--color-white: #f6f2e6;
	--color-purple: #31054c;
	--color-beige: #cbba9a;
	--color-dark-gray: #1c282b;
	--color-light-gray: #95b0b6;
	--color-black: #000000;
}


/** <editor-fold desc="Normalize.css"> **/

/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */

/* Document
   ========================================================================== */

/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */

html {
	line-height: 1.15; /* 1 */
	-webkit-text-size-adjust: 100%; /* 2 */
}

/* Sections
   ========================================================================== */

/**
 * Remove the margin in all browsers.
 */

body {
	margin: 0;
}

/**
 * Render the `main` element consistently in IE.
 */

main {
	display: block;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */

h1 {
	font-size: 2em;
	margin: 0.67em 0;
}

/* Grouping content
   ========================================================================== */

/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */

hr {
	box-sizing: content-box; /* 1 */
	height: 0; /* 1 */
	overflow: visible; /* 2 */
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */

pre {
	font-family: monospace, monospace; /* 1 */
	font-size: 1em; /* 2 */
}

/* Text-level semantics
   ========================================================================== */

/**
 * Remove the gray background on active links in IE 10.
 */

a {
	background-color: transparent;
}

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */

abbr[title] {
	border-bottom: none; /* 1 */
	text-decoration: underline; /* 2 */
	text-decoration: underline dotted; /* 2 */
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */

b,
strong {
	font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */

code,
kbd,
samp {
	font-family: monospace, monospace; /* 1 */
	font-size: 1em; /* 2 */
}

/**
 * Add the correct font size in all browsers.
 */

small {
	font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */

sub,
sup {
	font-size: 75%;
	line-height: 0;
	position: relative;
	vertical-align: baseline;
}

sub {
	bottom: -0.25em;
}

sup {
	top: -0.5em;
}

/* Embedded content
   ========================================================================== */

/**
 * Remove the border on images inside links in IE 10.
 */

img {
	border-style: none;
}

/* Forms
   ========================================================================== */

/**
 * 1. Change the font styles in all browsers.
 * 2. Remove the margin in Firefox and Safari.
 */

button,
input,
optgroup,
select,
textarea {
	font-family: inherit; /* 1 */
	font-size: 100%; /* 1 */
	line-height: 1.15; /* 1 */
	margin: 0; /* 2 */
}

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */

button,
input { /* 1 */
	overflow: visible;
}

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */

button,
select { /* 1 */
	text-transform: none;
}

/**
 * Correct the inability to style clickable types in iOS and Safari.
 */

button,
[type="button"],
[type="reset"],
[type="submit"] {
	-webkit-appearance: button;
}

/**
 * Remove the inner border and padding in Firefox.
 */

button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
	border-style: none;
	padding: 0;
}

/**
 * Restore the focus styles unset by the previous rule.
 */

button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
	outline: 1px dotted ButtonText;
}

/**
 * Correct the padding in Firefox.
 */

fieldset {
	padding: 0.35em 0.75em 0.625em;
}

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *    `fieldset` elements in all browsers.
 */

legend {
	box-sizing: border-box; /* 1 */
	color: inherit; /* 2 */
	display: table; /* 1 */
	max-width: 100%; /* 1 */
	padding: 0; /* 3 */
	white-space: normal; /* 1 */
}

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */

progress {
	vertical-align: baseline;
}

/**
 * Remove the default vertical scrollbar in IE 10+.
 */

textarea {
	overflow: auto;
}

/**
 * 1. Add the correct box sizing in IE 10.
 * 2. Remove the padding in IE 10.
 */

[type="checkbox"],
[type="radio"] {
	box-sizing: border-box; /* 1 */
	padding: 0; /* 2 */
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */

[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
	height: auto;
}

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */

[type="search"] {
	-webkit-appearance: textfield; /* 1 */
	outline-offset: -2px; /* 2 */
}

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */

[type="search"]::-webkit-search-decoration {
	-webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */

::-webkit-file-upload-button {
	-webkit-appearance: button; /* 1 */
	font: inherit; /* 2 */
}

/* Interactive
   ========================================================================== */

/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */

details {
	display: block;
}

/*
 * Add the correct display in all browsers.
 */

summary {
	display: list-item;
}

/* Misc
   ========================================================================== */

/**
 * Add the correct display in IE 10+.
 */

template {
	display: none;
}

/**
 * Add the correct display in IE 10.
 */

[hidden] {
	display: none;
}

/** </editor-fold> **/


/** FONTS **/

/** <editor-fold desc="Font-Inter"> **/

/* inter-100 - latin_latin-ext */
@font-face {
	font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
	font-family: 'Inter';
	font-style: normal;
	font-weight: 100;
	src: url('../fonts/inter-v18-latin_latin-ext-100.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* inter-100italic - latin_latin-ext */
@font-face {
	font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
	font-family: 'Inter';
	font-style: italic;
	font-weight: 100;
	src: url('../fonts/inter-v18-latin_latin-ext-100italic.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* inter-regular - latin_latin-ext */
@font-face {
	font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
	font-family: 'Inter';
	font-style: normal;
	font-weight: 400;
	src: url('../fonts/inter-v18-latin_latin-ext-regular.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* inter-italic - latin_latin-ext */
@font-face {
	font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
	font-family: 'Inter';
	font-style: italic;
	font-weight: 400;
	src: url('../fonts/inter-v18-latin_latin-ext-italic.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* inter-900 - latin_latin-ext */
@font-face {
	font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
	font-family: 'Inter';
	font-style: normal;
	font-weight: 900;
	src: url('../fonts/inter-v18-latin_latin-ext-900.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* inter-900italic - latin_latin-ext */
@font-face {
	font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
	font-family: 'Inter';
	font-style: italic;
	font-weight: 900;
	src: url('../fonts/inter-v18-latin_latin-ext-900italic.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}


/** </editor-fold> **/



/*** SITE STYLES ***/


html {
	font-family: Inter, sans-serif;
	font-weight: 400;
	background-color: var(--color-dark-gray);
	color: var(--color-cyan);
	line-height: 1.5;
	font-size: 14pt;
}

header {
	padding-bottom: 8rem;
}

nav {
	position: fixed;
	top: 0;
	width: 100%;
	background-color: var(--color-black);
	z-index: 100;
}
nav ul {
	position: sticky;
	top: 0;
	display: flex;
	list-style: none;
	justify-content: center;
	align-items: center;
	gap: 0 2rem;
	padding: 0;
	margin: 0;
}

nav .link {
	width: 7rem;
}

nav .logo {
	height: 8rem;
	transition: height 0.3s;
}

nav a {
	font-size: 1.5rem;
	font-variant: small-caps;
	display: block;
	padding: 2rem 0;
	text-align: center;
	color: var(--color-cyan);
	text-decoration: none;
}

nav a:after {
	content: '';
	display: block;
	width: 0;
	height: 0.2rem;
	background-color: var(--color-white);
	transition: width 0.3s;
}

nav a:hover:after {
	width: 100%;
}

.scrolled nav .logo {
	height: 4rem;
}
.scrolled nav a {
	padding: 1rem 0;
}

a {
	color: var(--color-light-gray);
}

.page-content,
.post-content {
	padding-bottom: 3rem;
}

.cta {
	text-align: center;
	font-size: 1.1rem;
}
p:has(>.cta-button) {
	text-align: center;
}
.cta-button {
	display: inline-block;
	padding: 1rem 2rem;
	background-color: var(--color-white);
	color: var(--color-purple);
	text-decoration: none;
	border-radius: 1rem;
	font-variant: small-caps;
	font-size: 1.5rem;
	transition: background-color 0.5s ease, color 0.5s ease;
	border: 2px solid var(--color-purple);
	text-shadow: 1px 1px 2px var(--color-light-gray);
	box-shadow: 1px 1px 3px var(--color-light-gray);
}
.cta-button:hover {
	background-color: var(--color-purple);
	color: var(--color-white);
}


/** Page cover styles for homepage video backgrounds and sliders */

.page-cover {
	height: 65vh;
	position: relative;
	width: 100%;
}

.page-video-backgrounds {
	position: absolute;
	top: 0;
	z-index: 1;
	width: 100%;
	height: 100%;
	overflow: hidden;
	/*filter: blur(2px);
	-webkit-filter: blur(2px);*/
}
.page-video-backgrounds .item {
	display: block;
	object-fit: cover;
	width: 100%;
	opacity: 0;
	position: absolute;
	top: 0;
	left: 0;
	transition: opacity 2s ease-in-out;
}
.page-video-backgrounds .item.active {
	opacity: 1;
}

.page-cover-overlay {
	position: absolute;
	top: 0;
	z-index: 2;
	width: 100%;
	height: 100%;
	background-color: var(--color-dark-gray);
	opacity: 0.6;
}

.page-slogans {
	position: absolute;
	top: 0;
	z-index: 3;
	width: 100%;
	height: 100%;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	margin: 0;
}
.page-slogans .item {
	opacity: 0;
	position: absolute;
	transition: opacity 2s ease-in-out;
	text-shadow: 1px 1px 2px white;
}
.page-slogans .item.active {
	opacity: 1;
}

h1 {
	font-size: 3rem;
	text-align: center;
}

h2 {
	font-size: 2.5rem;
	font-weight: 900;
	text-align: center;
	color: var(--color-light-gray);
}

.page-landings-single .page-content p {
	margin: 1em auto;
	max-width: 60rem;
}

.page-landings-single .page-content video {
	margin: 1em auto 3em;
	max-width: 60rem;
	display: block;
}

.page-landings-single .page-content h3 {
	text-align: center;
}


/** Case study embed **/
.casestudy-list-embed {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(30rem, 1fr));
	gap: 2rem;
	margin: 0 auto;
	max-width: 100rem;
	padding: 0 2rem;
}
.casestudy-list-embed .casestudy {
}
.casestudy-list-embed .casestudy a {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	background-color: var(--color-cyan);
	color: var(--color-purple);
	padding: 2rem;
	border-radius: 1rem;
	position: relative;
	overflow: hidden;
	text-decoration: none;
	height: 20rem;
}
.casestudy-list-embed .casestudy .overlay {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: var(--color-cyan);
	opacity: 0.8;
	z-index: 2;
	transition: opacity 1s;
}
.casestudy-list-embed .casestudy h3 {
	font-size: 2rem;
	margin-bottom: 1rem;
	z-index: 3;
	transition: opacity 1s;
}
.casestudy-list-embed .casestudy img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	position: absolute;
	top: 0;
	z-index: 1;
	transition: transform 1s;
}
.casestudy-list-embed .casestudy .post-content {
	font-size: 1.5rem;
	text-align: center;
	z-index: 3;
	transition: opacity 1s;
}
.casestudy-list-embed .casestudy a:hover .overlay {
	opacity: 0;
}
.casestudy-list-embed .casestudy a:hover h3 {
	opacity: 0;
}
.casestudy-list-embed .casestudy a:hover .post-content {
	opacity: 0;
}
.casestudy-list-embed .casestudy a:hover img {
	transform: scale(1.2);
}


/** General content pages **/

.page-pages-single .page-title:after {
	content: '';
	display: block;
	width: 40rem;
	height: 1px;
	background-color: var(--color-white);
	margin: 1rem auto;
}

.page-pages-single .page-content {
	max-width: 60rem;
	margin: 0 auto;
}


/** Case study page **/
.page-casestudies-single .post-title:after {
	content: '';
	display: block;
	width: 75%;
	height: 1px;
	background-color: var(--color-white);
	margin: 1rem auto;
}
.page-casestudies-single .post-content img {
	max-width: 100%;
	margin: 1em auto;
	display: block;
}

.page-casestudies-single .post-content p {
	margin: 1em auto;
	max-width: 60rem;
}
.page-casestudies-single .post-content blockquote {
  background-color: var(--color-black);
  margin: 2em 0;
  padding: 1em;
}
.page-casestudies-single .post-content blockquote p {
  position: relative;
  padding-left: 3em;
  padding-right: 3em;
}
.page-casestudies-single .post-content blockquote p:before {
	content: '“';
  font-size: 4em;
  position: absolute;
  left: 0.15em;
  top: -0.8em;
}
.page-casestudies-single .post-content blockquote p:after {
	content: '”';
  font-size: 4em;
  position: absolute;
  right: 0.15em;
  bottom: -1.2em;
}

custom-casestudy-video {
	display: block;
	width: 100%;
	position: relative;
	max-height: 65vh;
	overflow: hidden;
	margin: 2rem 0;
}
custom-casestudy-video video {
	object-fit: cover;
	width: 100%;
}
custom-casestudy-video .overlay {
	position: absolute;
	z-index: 2;
	bottom: 0;
	text-align: center;
	width: 100%;
	background-color: var(--color-black);
	opacity: 0.8;
	height: 30%;
	min-height: 10rem;
}
custom-casestudy-video .overlay-content {
	position: absolute;
	z-index: 3;
	bottom: 0;
	text-align: center;
	width: 100%;
	height: 30%;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	min-height: 8rem;
}
custom-casestudy-video a {
	color: var(--color-purple);
	text-decoration: none;
	display: inline-block;
	background: var(--color-white);
	padding: .75em 2em;
	border-radius: 1em;
	width: 10em;
	font-size: 120%;
	border: 3px solid var(--color-purple);
	transition: color 0.5s ease, border-color 0.5s ease, background 0.5s ease;
	margin-bottom: 1rem;
	font-variant: small-caps;
	text-shadow: 1px 1px 2px var(--color-light-gray);
	box-shadow: 1px 1px 3px var(--color-light-gray);
}
custom-casestudy-video a:hover {
	color: var(--color-white);
	border-color: var(--color-white);
	background: var(--color-purple);
}


/** Contact Page **/

.page-pages-contact .form-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 2rem;
}

.page-pages-contact .column-contact label {
	display: block;
	font-size: 1.2rem;
	margin: 2rem 0 0.5rem;
}

.page-pages-contact .column-contact input {
	width: calc(100% - 2rem);
	font-size: 1.2rem;
	padding: 1rem;
	margin: 0;
}
.page-pages-contact .column-contact textarea {
	width: calc(100% - 2rem);
	font-size: 1.2rem;
	padding: 1rem;
	margin: 0;
}
.page-pages-contact .column-contact input[type=submit] {
	width: 10em;
	margin: 2em auto 1em;
	display: block;
	cursor: pointer;
}
.page-pages-contact .column-contact .error {
	border-color: red;
	background-color: #ffc6c6;
}
.page-pages-contact .required-note {
	color: red;
}

.column-discord {
	display: flex;
	flex-direction: column;
	align-items: center;
}
.column-discord a {
	padding: 1em;
	background: var(--color-purple);
	border-radius: 1em;
	display: inline-block;
	border: 2px solid var(--color-white);
	transition: background 0.5s ease;
}
.column-discord a:hover {
	background: var(--color-cyan);
}
.column-discord img {
	width: 10rem;
}

.page-pages-about .page-content .text-image-side {
	align-items: center;
	display: flex;
	margin-bottom: 2em;
}
.page-pages-about .page-content .text-image-side:after {
	content: '';
	display: table;
	clear: both;
}
.page-pages-about .page-content img.left {
	float: left;
	max-width: 35%;
	margin-right: 2em;
}
.page-pages-about .page-content img.right {
	float: right;
	max-width: 35%;
	margin-left: 2em;
}





/** <editor-fold desc="Responsive Styles" **/

@media screen and (max-width: 78rem) {
	/* 1250px */

	.page-landings-single .page-content p,
	.page-casestudies-single .post-content p {
		margin: 1em 5%;
	}

	.page-pages-single .page-content {
		margin: 0 5%;
	}

	.page-landings-single .page-content video {
		width: 100%;
	}
	.page-cover {
		height: 50vw;
	}
}

@media screen and (max-width: 46rem) {
	/* 736px */

	header {
		padding-bottom: 6rem;
	}
	nav ul {
		width: 100vw;
	}
	nav .logo {
		height: 4rem;
	}
	.scrolled nav .logo {
		height: 4rem;
	}

	h1 {
		font-size: 2.5rem;
	}
	h2 {
		font-size: 2rem;
	}
	.page-pages-contact .form-grid {
		grid-template-columns: 1fr;
	}
	.column-contact {
		border-bottom: 1px solid var(--color-cyan);
	}
}

@media screen and (max-width: 40rem) {
	/* 640px */

	nav .link {
		width: 5rem;
	}
	nav a {
		font-size: 1.2rem;
	}
	.casestudy-list-embed {
		grid-template-columns: 100%;
	}
}

@media screen and (max-width: 38rem) {
	/* 608px */

	header {
		padding-bottom: 0;
	}
	nav {
		position: relative;
	}
	nav ul {
		display: grid;
		grid-template-columns: minmax(5rem, 1fr) 2fr 2fr;
		grid-template-areas: "logo home about" "logo contact privacy";
		gap: 0;
		width: 100vw;
	}
	nav .link {
		width: calc(50vw - 5rem);
	}
	nav ul .home-link {
		grid-area: home;
	}
	nav ul .about-link {
		grid-area: about;
	}
	nav ul .logo-link {
		grid-area: logo;
		text-align: center;
	}
	nav ul .contact-link {
		grid-area: contact;
	}
	nav ul .privacy-link {
		grid-area: privacy;
	}
	nav a {
		padding: 1rem 0;
	}
	h1 {
		font-size: 2rem;
	}
	h2 {
		font-size: 1.5rem;
	}
}

/** </editor-fold> **/
