/*
	Eventually by HTML5 UP
	html5up.net | @ajlkn
	Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
*/

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, 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, 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;
}

mark {
	background-color: #222;
	color: #fff;
}

input::-moz-focus-inner {
	border: 0;
	padding: 0;
}

input, select, textarea {
	-moz-appearance: none;
	-webkit-appearance: none;
	appearance: none;
}

/*
 * Basic
 */

@import url('https://fonts.googleapis.com/css?family=Roboto+Mono:400,700');

html {
	font-size: 17pt;
	overflow-y: scroll;
}

@media screen and (max-width: 1680px) {
	html {
		font-size: 13pt;
	}
}

@media screen and (max-width: 1280px) {
	html {
		font-size: 11pt;
	}
}

@media screen and (max-width: 360px) {
	html {
		font-size: 8pt;
	}
}

body, input, select, textarea {
	color: #555;
	font-family: "Roboto Mono", monospace;
	font-size: 1em;
	font-weight: 400;
	line-height: 1.65;
}

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

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

strong, b {
	color: #222;
	font-weight: 700;
}

em, i {
	font-style: italic;
}

p {
	margin: 0 0 2em 0;
}

h1, h2, h3, h4, h5, h6 {
	color: #222;
	font-weight: 700;
	line-height: 1.5;
	margin: 0 0 1em 0;
}

h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {
	color: inherit;
	text-decoration: none;
}

h1 {
	font-size: 2.5em;
}

h2 {
	font-size: 1.75em;
}

h3 {
	font-size: 1.35em;
}

h4 {
	font-size: 1.1em;
}

h5 {
	font-size: 0.9em;
}

h6 {
	font-size: 0.7em;
}

sub {
	font-size: 0.8em;
	position: relative;
	top: 0.5em;
}

sup {
	font-size: 0.8em;
	position: relative;
	top: -0.5em;
}

/*
 * Form
 */

form {
	margin: 0 0 2em 0;
}

label {
	color: #222;
	display: block;
	font-weight: 700;
	margin: 0 0 1em 0;
}

input[type="text"],
input[type="password"],
input[type="email"],
select,
textarea {
	-moz-appearance: none;
	-webkit-appearance: none;
	appearance: none;
	background: #fff;
	border: 1px solid #555;
	color: #555;
	display: block;
	outline: 0;
	padding: 0.75em;
	text-decoration: none;
	width: 100%;
	margin: 0 0 2em 0;
}

input[type="text"]:focus,
input[type="password"]:focus,
input[type="email"]:focus,
select:focus,
textarea:focus {
	border-color: #ff6348;
	box-shadow: 0 0 0 3px #ff6348;
}

.select-wrapper {
	display: block;
	position: relative;
}

.select-wrapper:before {
	content: "";
	-moz-pointer-events: none;
	pointer-events: none;
	position: absolute;
	right: 0.75em;
	top: 0.75em;
	z-index: 4;
}

input[type="checkbox"],
input[type="radio"] {
	-moz-appearance: none;
	-webkit-appearance: none;
	appearance: none;
	display: block;
	float: left;
	margin-right: 0.75em;
	width: 1em;
	height: 1em;
	border: 1px solid #555;
	cursor: pointer;
}

input[type="checkbox"]:checked,
input[type="radio"]:checked {
	background: #222;
	border-color: #222;
	color: #fff;
}

input[type="checkbox"]:focus,
input[type="radio"]:focus {
	border-color: #ff6348;
	outline: 0;
}

input[type="text"]:disabled,
input[type="password"]:disabled,
input[type="email"]:disabled,
select:disabled,
textarea:disabled {
	background: #222;
	border-color: #222;
	color: #555;
	cursor: not-allowed;
	opacity: 0.25;
}

input[type="submit"],
input[type="reset"],
input[type="button"],
button,
.button {
	-moz-appearance: none;
	-webkit-appearance: none;
	appearance: none;
	background: #222;
	border: 0;
	border-radius: 0.35em;
	color: #fff;
	cursor: pointer;
	display: inline-block;
	font-weight: 700;
	height: 3.5em;
	line-height: 3.5em;
	padding: 0 2.75em;
	text-align: center;
	text-decoration: none;
	white-space: nowrap;
	text-transform: uppercase;
	letter-spacing: 0.125em;
}

input[type="submit"]:hover,
input[type="reset"]:hover,
input[type="button"]:hover,
button:hover,
.button:hover {
	background: #ff6348;
}

input[type="submit"]:active,
input[type="reset"]:active,
input[type="button"]:active,
button:active,
.button:active {
	background: #d63d25;
}

input[type="submit"].disabled, input[type="submit"]:disabled,
input[type="reset"].disabled,
input[type="reset"]:disabled,
input[type="button"].disabled,
input[type="button"]:disabled,
button.disabled,
button:disabled,
.button.disabled,
.button:disabled {
	background: #222;
	border-color: #222;
	color: #555;
	cursor: not-allowed;
	opacity: 0.25;
}

/*
 * Containers
 */

.container {
	margin: 0 auto;
	max-width: 100%;
	width: 100%;
	padding: 0 2em;
}

/*
 * Header
 */

#header {
	background: linear-gradient(135deg, rgba(26, 115, 232, 0.1) 0%, rgba(52, 168, 83, 0.1) 100%);
	border-bottom: 1px solid #ddd;
	color: #555;
	padding: 3em 0;
	text-align: center;
}

#header h1 {
	font-size: 2.5em;
	margin: 0 0 0.25em 0;
}

#header p {
	margin: 0;
	color: #888;
}

@media screen and (max-width: 736px) {
	#header {
		padding: 4em 0;
	}

	#header h1 {
		font-size: 1.75em;
	}
}

/*
 * Footer
 */

#footer {
	background: #f7f7f7;
	border-top: 1px solid #ddd;
	color: #888;
	padding: 2em 0 1.5em 0;
	text-align: center;
}

#footer .icons {
	margin: 0 0 1em 0;
}

#footer .icons a {
	border: 0;
	color: #888;
	display: inline-block;
	font-size: 1.35em;
	height: 2.75em;
	line-height: 2.75em;
	width: 2.75em;
	text-align: center;
	text-decoration: none;
	transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out;
	margin: 0 0.5em;
}

#footer .icons a:hover {
	color: #ff6348;
}

#footer p {
	margin: 0;
	font-size: 0.9em;
}

/*
 * Main
 */

#main {
	background: white;
	padding: 2em 0;
}

body.is-preload #main {
	opacity: 0;
}

@media screen and (max-width: 736px) {
	#main {
		padding: 2em 0;
	}
}

/*
 * Form
 */

#signup-form {
	display: grid;
	grid-template-columns: 1fr auto;
	grid-gap: 1em;
	margin: 3em 0 0 0;
}

#signup-form input[type="email"] {
	margin: 0;
}

#signup-form input[type="submit"] {
	margin: 0;
}

@media screen and (max-width: 620px) {
	#signup-form {
		grid-template-columns: 1fr;
	}

	#signup-form input[type="submit"] {
		margin: 0;
	}
}

/*
 * Tech Stack Carousel
 */

#techstack {
	padding: 2em 0;
	text-align: center;
}

#techstack h2 {
	margin-bottom: 1em;
}

.carousel-container {
	background: rgba(0, 0, 0, 0.05);
	border: 1px solid #ddd;
	border-radius: 0.35em;
	padding: 2em;
	overflow: hidden;
}

.carousel-track {
	display: flex;
	gap: 1em;
	animation: scroll-left 30s linear infinite;
	width: max-content;
}

.carousel-track:hover {
	animation-play-state: paused;
}

@keyframes scroll-left {
	0% { transform: translateX(0); }
	100% { transform: translateX(-50%); }
}

.tech-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.75em 1.5em;
	background: #222;
	color: #fff;
	border-radius: 0.35em;
	white-space: nowrap;
	font-weight: 700;
	flex-shrink: 0;
	transition: all 0.2s ease-in-out;
}

.tech-badge:hover {
	background: #ff6348;
	transform: scale(1.1);
}

/*
 * Transitions
 */

body.is-preload,
body.is-preload #main {
	opacity: 0;
}

body {
	opacity: 1;
	transition: opacity 0.2s ease-in-out;
}

#main {
	opacity: 1;
	transition: opacity 0.2s ease-in-out 0.1s;
}
