html {
	scroll-behavior: smooth;
}

:root {
	--dark-grey-bg: #1f2228;
	--grey-bg: #2c333d;
}

h1, h2, h3, p, a {
	margin: 0;
}

body {
	background-color: var(--grey-bg);
	margin: 0;
	max-width: 100vw;
}

nav {
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: var(--dark-grey-bg);
	position: fixed;
	left: 0;
	top: 0;
	width: 100vw;
	padding: 20px 0;
	z-index: 100;
	box-shadow: 0 0 10px 5px rgba(0, 0, 0, 0.2);
}

.nav-inner-container {
	width: 400px;
	max-width: 90%;
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: space-between;
}

.nav-btn {
	display: block;
	width: 50px;
	height: 50px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 10px;
	transition: all 0.2s ease;
}

.nav-btn svg {
	width: 70%;
}

.nav-btn:hover {
	background-color: var(--grey-bg);
}

#banner-section {
	height: 100vh;
	min-height: 45vw;
	background: radial-gradient(
		circle farthest-corner at 100% 0%,
		var(--grey-bg),
		var(--dark-grey-bg)
	);
	width: 100%;
	position: relative;
}

.banner-inner-container {
	position: relative;
	width: 100%;
	height: 100%;
}

.quote-container {
	position: absolute;
	top: calc(5% + 90px);
	left: 5%;
	color: white;
}

.quote-container .quote {
	display: block;
	font-family: 'Poppins', sans-serif;
	font-weight: 200;
	font-size: 1.5vw;
	line-height: 2vw;
}

.quote-container .bold {
	display: block;
	font-family: 'Poppins', sans-serif;
	font-weight: 700;
	font-size: 1.2vw;
	line-height: 1.2vw;
	margin-top: 1.2vw;
}

.josh-container {
	position: absolute;
	left: 2.5%;
	bottom: 1%;
}

.josh-container .cursive {
	display: block;
	font-family: 'Playball', cursive;
	font-size: 20vw;
    font-weight: 400;
    line-height: 14vw;
	overflow: visible;
	color: white;
	z-index: 5;
	position: relative;
}

.josh-container .bold {
	display: block;
	font-family: 'Poppins', sans-serif;
	font-weight: 900;
	font-size: 17vw;
    line-height: 14vw;
	overflow: visible;
	color: #afafaf;
}

.rex-container {
	width: 32%;
	min-height: 100%;
	display: flex;
	align-items: end;
	justify-content: center;
	position: absolute;
	right: 1%;
	bottom: 1%;
	z-index: 10;
}

.rex-container img {
	width: 100%;
}

@media (max-width: 990px) {
	nav {
		top: auto;
		bottom: 0;
	}

	#banner-section {
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: start;
		gap: 10vh;
		padding: 5vh 0;
		height: fit-content;
	}

	.quote-container {
		display: none;
	}

	.josh-container {
		position: relative;
		text-align: center;
		left: auto;
		bottom: auto;
	}

	.rex-container {
		position: relative;
		width: 90%;
		right: auto;
		bottom: auto;
	}

	.banner-inner-container {
		height: fit-content;
	}
}

#tech-section {
	background: radial-gradient(circle farthest-corner at 0% 0%, var(--dark-grey-bg), var(--grey-bg));
}

.sub-section {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 4vw;
	flex-direction: column;
	padding: 6vw 0;
}

.section-heading {
	color: white;
	text-align: center;
	display: flex;
	gap: 1vw;
	max-width: 90%;
	flex-wrap: wrap;
	justify-content: center;
}

.section-heading span {
	font-family: 'Poppins', sans-serif;
	font-weight: 200;
	font-size: 3vw;
    line-height: 3vw;
}

.section-heading .bold {
	font-family: 'Poppins', sans-serif;
	font-weight: 900;
	font-size: 3vw;
    line-height: 3vw;
	text-transform: uppercase;
}

.icon-container {
	width: 90%;
	max-width: 60vw;
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	gap: 3vw;
	align-items: center;
	justify-content: center;
}

.icon-container img {
	width: 4vw;
	height: 4vw;
}

@media (max-width: 990px) {
	.section-heading span,
	.section-heading .bold {
		font-size: 8vw;
		line-height: 8vw;
	}

	.sub-section {
		gap: 8vw;
		padding: 12vw 0;
	}

	.icon-container {
		max-width: 70vw;
		gap: 6vw;
	}

	.icon-container img {
		width: 6vw;
		height: 6vw;
	}

	.bottom-section {
		padding-bottom: calc(12vw + 90px);
	}
}

@media (max-width: 478px) {
	.section-heading span,
	.section-heading .bold {
		font-size: 12vw;
		line-height: 12vw;
	}

	.sub-section {
		gap: 12vw;
		padding: 18vw 0;
	}

	.icon-container {
		max-width: 90vw;
		gap: 10vw;
	}

	.icon-container img {
		width: 12vw;
		height: 12vw;
	}

	.bottom-section {
		padding-bottom: calc(18vw + 90px);
	}
}

#client-section {
	background: radial-gradient(circle farthest-corner at 0% 0%, var(--dark-grey-bg), var(--grey-bg));
}

.client-icon-container img {
	width: 7vw;
    height: 3vw;
}

@media (max-width: 990px) {
	.client-icon-container img {
		width: 12vw;
		height: 6vw;
	}
}

@media (max-width: 476px) {
	.client-icon-container img {
		width: 18vw;
		height: 12vw;
	}
}

#portfolio-section {
	background: radial-gradient(
		circle farthest-corner at 100% 0%,
		var(--grey-bg),
		var(--dark-grey-bg)
	);
}

.portfolio-item-container {
	width: 90%;
	max-width: 60vw;
	display: grid;
	grid-template-columns: 1fr 1fr;
	grid-gap: 4vw;
	align-items: center;
	justify-content: center;
}

.portfolio-item-container img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 1vw;
}

.portfolio-item-text {
	color: white;
	display: flex;
	gap: 1vw;
	flex-direction: column;
	padding: 2vw 0;
}

.portfolio-item-text h3 {
	font-family: 'Poppins', sans-serif;
	font-weight: 700;
	font-size: 1.8vw;
    line-height: 1.8vw;
}

.portfolio-item-text p {
	font-family: 'Poppins', sans-serif;
	font-weight: 200;
	font-size: 0.8vw;
    line-height: 1.4vw;
}

.btn {
	color: white;
	text-decoration: none;
	display: inline-block;
	font-family: 'Poppins', sans-serif;
	font-weight: 700;
	font-size: 0.9vw;
    line-height: 0.9vw;
	padding: 0.8vw 1.4vw;
	border: 1px solid white;
	border-radius: 0.4vw;
	width: fit-content;
	background-color: transparent;
	transition: all 0.3s ease;
}

.btn:hover {
	background-color: white;
	color: var(--grey-bg);
	box-shadow: 0 0 10px 5px rgba(0, 0, 0, 0.2);
}

@media (max-width: 990px) {
	.portfolio-item-container {
		max-width: 85vw;
	}

	.portfolio-item-container img {
		border-radius: 1.5vw;
	}

	.portfolio-item-text {
		color: white;
		display: flex;
		gap: 2vw;
		flex-direction: column;
	}
	
	.portfolio-item-text h3 {
		font-family: 'Poppins', sans-serif;
		font-weight: 700;
		font-size: 3vw;
		line-height: 3vw;
	}
	
	.portfolio-item-text p {
		font-family: 'Poppins', sans-serif;
		font-weight: 200;
		font-size: 1.4vw;
		line-height: 2.8vw;
	}

	.btn {
		font-size: 1.6vw;
		line-height: 1.6vw;
		padding: 1.4vw 2.5vw;
		border-radius: 0.6vw;
	}
}

@media (max-width: 476px) {
	.portfolio-item-container {
		max-width: 90vw;
		grid-template-columns: 1fr;
		text-align: center;
		grid-gap: 6vw;
	}

	.portfolio-item-container img {
		border-radius: 2vw;
		grid-row: 1/2;
	}

	.portfolio-item-text {
		color: white;
		display: flex;
		gap: 5vw;
		flex-direction: column;
	}
	
	.portfolio-item-text h3 {
		font-family: 'Poppins', sans-serif;
		font-weight: 700;
		font-size: 7vw;
		line-height: 7vw;
	}
	
	.portfolio-item-text p {
		font-family: 'Poppins', sans-serif;
		font-weight: 200;
		font-size: 3.5vw;
		line-height: 5.8vw;
	}

	.btn {
		font-size: 4vw;
		line-height: 4vw;
		padding: 3vw 6vw;
		border-radius: 1vw;
		margin: 0 auto;
	}
}

/* Splide */
.splide__slide img {
	border-radius: 0;
}

.splide__track {
	border-radius: 1vw;
}

@media (max-width: 990px) {
	.splide__track {
		border-radius: 1.5vw;
	}
}

@media (max-width: 476px) {
	.splide__track {
		border-radius: 2vw;
	}

	.splide {
		grid-row: 1/2;
	}
}

/* Scroll animations */
.js-scroll {
	transition: all 0.5s ease-out;
	opacity: 0;
	transform: translateY(50%);
	transition-delay: 0.2s;
}

.js-scroll.scrolled {
	opacity: 1;
	transform: translateY(0);
}

.js-scroll.delay {
	transition-delay: 0.4s;
}

.js-scroll.img {
	transform: translateY(15%);
	transition-delay: 0.4s;
}

.js-scroll.img.scrolled {
	opacity: 1;
	transform: translateY(0);
}
