@font-face {
	font-family: 'HK Grotesk';
	src: url('fonts/hk-grotesk/font/hkgrotesk-regular-webfont.woff2') format('woff2'),
	     url('fonts/hk-grotesk/font/hkgrotesk-regular-webfont.woff') format('woff');
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'HK Grotesk';
	src: url('fonts/hk-grotesk/font/hkgrotesk-bold-webfont.woff2') format('woff2'),
	     url('fonts/hk-grotesk/font/hkgrotesk-bold-webfont.woff') format('woff');
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}

html,
body {
	width: 100%;
	height: 100%;
	padding: 0;
	margin: 0;
	box-sizing: border-box;
}

* {
	box-sizing: border-box;
}

body {
	font-family: 'HK Grotesk', sans-serif;
	color: #222;
	background-color: #fff;
	font-size: 14px;
	line-height: 1.7;
	display: flex;
	align-items: center;
}

::selection {
	text-shadow: none;
	color: #000;
	background: #FFF9CD;
}

::-moz-selection {
	text-shadow: none;
	color: #000;
	background: #FFF9CD;
}

h1,
h2 {
	font-family: 'HK Grotesk', sans-serif;
	font-weight: 700;
	font-style: normal;
	margin: 1em 0 .66em 0;
}

h1.page-title {
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 5px;
	margin-top: 0;
	margin-bottom: 0.35em;
	line-height: 1.7;
}

.sub-title {
	font-family: 'HK Grotesk', sans-serif;
	font-weight: 700;
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 5px;
	margin-top: 2.4em;
	margin-bottom: 0.35em;
	line-height: 1.7;
}

.content > .sub-title:first-child {
	margin-top: 0;
}

h2 {
	font-size: 2.1em;
	line-height: 1.25;
	font-weight: 700;
	margin-top: 0;
	margin-bottom: 0.9em;
}

p:last-child {
	margin-bottom: 0;
}

.content-wrap {
	width: 80%;
	margin: 0 auto;
	max-height: 100%;
	position: relative;
	z-index: 20;
}

.content {
	padding: 3em 0;
}

.button {
	border: 2px solid #222;
	font-family: inherit;
	font-size: 16px;
	line-height: 1;
	color: #222;
	text-decoration: none;
	background: none;
	cursor: pointer;
	padding: 16px 32px;
	margin: 10px 20px 0 0;
	display: inline-block;
	outline: none;
	position: relative;
	transition: all 0.3s;
	overflow: hidden;
}

.button:only-child {
	margin-right: 0px;
}

.button.soft-rounded {
	border-radius: 5px;
}

.button:after {
	width: 0%;
	height: 100%;
	top: 0;
	left: 0;
	background: #222;
	content: '';
	position: absolute;
	z-index: -1;
	transition: all 0.3s;
}

.button:hover,
.button:active {
	color: #fff !important;
}

.button:active {
	transition: all 0.1s;
	transform: scale(0.9);
	outline: 0;
}

.button:hover:after,
.button:active:after {
	width: 100%;
}

.highlight {
	display: inline-block;
	padding: 0 10px;
	color: #fff;
	background: #111;
}

.text.blue     { color: #0100ff; }
.text.green    { color: #00b388; }
.text.red      { color: #ff322e; }
.text.yellow   { color: #ffcc2f; }
.text.pink     { color: #f94877; }
.text.purple   { color: #554488; }
.text.tango    { color: #E1523D; }
.text.aqua     { color: #0099ff; }
.text.navy     { color: #414f5a; }
.text.leather  { color: #AB9878; }
.text.azure    { color: #02ACAB; }
.text.peach    { color: #FEA680; }
.text.hot-pink { color: #FE65B7; }
.text.coral    { color: #F63341; }
.text.grey     { color: #AAB8C1; }

.typing-container {
	display: inline-block;
	min-height: 1.15em;
	vertical-align: top;
	margin-top: 0.1em;
	margin-bottom: 0.6em;
	font-family: 'HK Grotesk', sans-serif;
	font-weight: 700;
	font-size: 6vw;
	line-height: 1.1;
}

.typed-cursor {
	opacity: 1;
	animation: blink 0.7s infinite;
}

@keyframes blink {
	0%, 100% { opacity: 1; }
	50% { opacity: 0; }
}

.copy-toast {
	position: fixed;
	bottom: 30px;
	left: 50%;
	transform: translateX(-50%) translateY(20px);
	background: #111;
	color: #fff;
	padding: 12px 24px;
	border-radius: 6px;
	font-size: 14px;
	font-weight: 700;
	opacity: 0;
	pointer-events: none;
	transition: all 0.25s ease;
	z-index: 1000;
}

.copy-toast.visible {
	opacity: 1;
	transform: translateX(-50%) translateY(0);
}

@media screen and (max-width: 767px) {
	h2 {
		font-size: 1.6em;
		line-height: 1.3;
	}
}

@media screen and (min-width: 768px) {
	body {
		font-size: 19px;
	}
	.typing-container {
		font-size: 4vw;
		line-height: 1;
	}
}

@media screen and (min-width: 1200px) {
	.content-wrap {
		width: 50%;
	}
}

@media screen and (min-width: 1600px) {
	.content {
		padding: 6em 0;
	}
}