:root {
	margin: 0;
	padding: 0;

	scroll-behavior: smooth;

	font-family: "Open Sans", sans-serif;
	font-optical-sizing: auto;
	font-weight: 400;
	font-style: normal;
	font-variation-settings: "wdth" 100;

	--dark-color: rgb(27, 27, 27);
}

body {
	display: flex;
	flex-flow: column nowrap;
	background-color: black;
	color: white;

	margin: 0;
}

body::-webkit-scrollbar {
	display: none; /* Safari and Chrome */
}

a {
	display: inline-block;
	text-decoration: none;
	color: white;
	font-weight: bold;
	text-transform: uppercase;
	border-bottom: 1px solid transparent;

	&:hover:after {
		transform: scaleX(1);
	}

	&:after {
		display: block;
		content: "";
		border-bottom: solid 1px white;
		transform: scaleX(0);
		transition: transform 0.3s ease-in-out;
	}
}

.nav-btn {
	&:after {
		transform-origin: 0% 50%;
	}
}

.svg-btn {
	outline: none;
	border: none;
	background-color: transparent;
	cursor: pointer;

	transition: all 0.15s ease;

	& svg {
		width: 2em;
		height: 2em;

		& path {
			fill: white;
		}
	}
}

.discord-btn {
	&:hover {
		transform: rotateZ(-10deg);
		& svg {
			& path {
				fill: #7289da;
			}
		}
	}
}

.yt-btn {
	&:hover {
		transform: rotateZ(10deg);
		& svg {
			& path {
				fill: #ff0000;
			}
		}
	}
}

header {
	position: fixed;
	display: flex;
	flex-flow: row nowrap;
	justify-content: space-evenly;
	align-items: center;
	padding: 1em;
	color: #fff;
	top: 0;
	width: 100%;

	z-index: 100;

	transition: all 0.3s ease-in-out;

	& ul {
		display: flex;
		justify-content: center;
		flex-flow: row nowrap;
		gap: 3em;

		list-style-type: none;
	}

	& img {
		width: 4rem;
		cursor: pointer;
		filter: drop-shadow(3px 3px 5px #0101017a);
	}

	& .link-btns {
		width: 6rem;
	}
}

header.scrolled {
	background-color: #000000;
	/* border-bottom: 1px solid rgba(255, 255, 255, 0.741); */
	padding: 0.5em 1em;

	& a {
		&:after {
			border-bottom: solid 1px rgb(12, 12, 12);
		}
	}

	& .link-btns {
		& svg path {
			/* fill: rgb(255, 255, 255); */
		}
	}

	& img {
		filter: drop-shadow(3px 3px 5px #0101019d);
	}
}

.welcome-section {
	display: flex;
	position: relative;
	justify-content: center;

	background-color: black;

	& .background {
		position: absolute;
		width: 100%;
		height: 100%;
		object-fit: cover;
		top: 0;
		z-index: 0;
		opacity: 0.1;

		mask-image: linear-gradient(
			to bottom,
			rgba(0, 0, 0, 1) 80%,
			rgba(0, 0, 0, 0) 100%
		);
	}

	& .welcome-content {
		display: flex;
		flex-flow: row nowrap;
		justify-content: center;
		align-items: center;
		text-align: center;
		min-height: 70dvh;
		z-index: 1;

		padding: 5em 10em;

		gap: 2em;

		width: 100%;
		max-width: 1000px;

		& .title {
			text-shadow: 0px 0px 10px #bb64ff,
				/* Sombra difusa en el primer color */ 0px 0px 20px #f2416b,
				/* Sombra más amplia en el segundo color */ 0px 0px 30px #eb7500; /* Sombra más amplia en el tercer color */
			text-align: center;
			font-size: 2.5em;
			font-weight: bold;
			text-transform: uppercase;
		}

		& .title2 {
			margin: 0 auto;
			padding-top: 0;
			text-shadow: 0px 0px 10px #bb64ff,
				/* Sombra difusa en el primer color */ 0px 0px 20px #f2416b,
				/* Sombra más amplia en el segundo color */ 0px 0px 30px #eb7500; /* Sombra más amplia en el tercer color */
			text-align: center;
			font-size: 3.5em;
			font-weight: bolder;
			text-transform: uppercase;
		}

		& .left-content {
			display: flex;
			flex-flow: column nowrap;
			justify-content: center;
			align-items: start;
			text-align: left;
			gap: 0em;

			min-width: 50%;
			max-width: 60%;
		}

		& .right-content {
			display: flex;
			flex-flow: column nowrap;
			justify-content: center;

			& img {
				width: 100%;
			}
		}
	}
}

.features-section {
	scroll-margin-top: 4rem;
	display: flex;
	flex-flow: column nowrap;
	align-items: center;
	justify-content: center;
	padding: 10em 10em;
	background-color: rgb(8, 4, 4);
	background-image: url("./images/repeat.png");

	mask-image: linear-gradient(
		to bottom,
		rgba(0, 0, 0, 0) 0%,
		rgba(0, 0, 0, 1) 20%,
		rgba(0, 0, 0, 1) 80%,
		rgba(0, 0, 0, 0) 100%
	);

	& .section-title {
		font-size: 2.6rem;
		font-weight: bold;
		color: #ffffff;
		text-shadow: 1px 1px 0px #bb64ff, /* Primera sombra */ 2px 2px 0px #f2416b,
			/* Segunda sombra */ 3px 3px 0px #eb7500; /* Tercera sombra */

		margin-bottom: 1.5rem;
	}

	& .feature-list {
		display: grid;
		grid-template-columns: 1fr 1fr;
		justify-content: center;
		max-width: 1500px;

		gap: 1em;

		& .feature {
			display: flex;
			flex-flow: column nowrap;
			justify-content: center;
			align-items: center;

			padding: 1.2em;
			gap: 0.5em;

			text-align: center;
			color: rgb(255, 255, 255);
			border-radius: 5px;

			& svg {
				width: 3em;
				height: 3em;
			}

			& .title {
				font-weight: bold;
			}
		}
	}
}

.clients-section {
	scroll-margin-top: 4rem;
	display: flex;
	flex-flow: column nowrap;
	justify-content: space-between;
	align-items: center;

	margin: 0 auto;

	padding: 5em;
	width: 100%;
	max-width: 1500px;

	gap: 2em;
	color: var(--dark-color);

	& .title {
		font-size: 2.6rem;
		font-weight: bold;
		color: white;
		text-shadow: 1px 1px 0px #bb64ff, /* Primera sombra */ 2px 2px 0px #f2416b,
			/* Segunda sombra */ 3px 3px 0px #eb7500; /* Tercera sombra */
	}

	& .clients-list {
		display: grid;
		grid-template-columns: 1fr 1fr;
		justify-content: center;

		width: 100%;

		gap: 0.8rem;

		& .client-card {
			display: flex;
			flex-flow: row nowrap;
			justify-content: center;
			align-items: center;

			color: white;
			background-image: url("./images/repeat.png");
			border: 1px solid rgb(217, 217, 217);
			border-radius: 10px;

			padding: 1rem;

			gap: 0.5rem;

			& img {
				width: auto;
				max-height: 5rem;

				align-self: start;
			}

			& .client-info {
				display: flex;
				flex-flow: column nowrap;

				gap: 0.3rem;

				& .name {
					font-size: 1.2rem;
					font-weight: bold;
				}

				& .msg {
					font-weight: 500;
					color: rgb(170, 170, 170);
				}

				& .client-contact {
					display: flex;
					flex-flow: row nowrap;
					justify-content: start;
					align-items: center;

					gap: 0.2rem;

					& a {
						color: black;
						text-transform: lowercase;
					}
				}
			}
		}
	}

	& .wrapper {
		width: 90%;
		max-width: 1000px;
		margin-inline: auto;
		position: relative;
		height: 100px;
		margin-top: 5rem;
		overflow: hidden;
		mask-image: linear-gradient(
			to right,
			rgba(0, 0, 0, 0),
			rgba(0, 0, 0, 1) 20%,
			rgba(0, 0, 0, 1) 80%,
			rgba(0, 0, 0, 0)
		);

		& .item {
			width: 5rem;
			height: 5rem;
			position: absolute;
			left: max(calc(100px * 8), 100%);
			animation-name: scrollLeft;
			animation-duration: 20s;
			animation-timing-function: linear;
			animation-iteration-count: infinite;

			& img {
				width: 100%;
				height: auto;
			}
		}
	
		& .item1 {
			animation-delay: calc(20s / 6 * (6 - 1) * -1);
		}
	
		& .item2 {
			animation-delay: calc(20s / 6 * (6 - 2) * -1);
		}
	
		& .item3 {
			animation-delay: calc(20s / 6 * (6 - 3) * -1);
		}
	
		& .item4 {
			animation-delay: calc(20s / 6 * (6 - 4) * -1);
		}
	
		& .item5 {
			animation-delay: calc(20s / 6 * (6 - 5) * -1);
		}
	
		& .item6 {
			animation-delay: calc(20s / 6 * (6 - 6) * -1);
		}
	}
}

@keyframes scrollLeft {
	to {
		left: -200px;
	}
}

footer {
	position: relative;
	display: flex;
	flex-flow: row nowrap;
	align-items: center;
	justify-content: center;
	background-color: black;
	color: white;
	padding: 2em 4em;

	& .background {
		position: absolute;
		width: 100%;
		height: 100%;
		object-fit: cover;
		top: 0;
		z-index: 0;
		opacity: 0.1;
		mask-image: linear-gradient(
			to bottom,
			rgba(0, 0, 0, 0) 0%,
			rgba(0, 0, 0, 1) 20%
		);
	}

	& .footer-section {
		display: flex;
		flex-flow: row nowrap;
		justify-content: space-between;
		align-items: center;
		text-align: left;

		width: 1500px;

		& .copyright {
			width: fit-content;
		}

		& .btns-section {
			display: flex;
			flex-flow: row nowrap;
			width: fit-content;

			& img {
				width: 4em;
			}

			& .link-btns {
				display: none;
			}
		}
	}
}

.btn {
	appearance: none;
	background-color: #ffffff;
	border-width: 0;
	box-sizing: border-box;
	color: var(--dark-color);
	cursor: pointer;
	display: inline-block;
	font-family: Clarkson, Helvetica, sans-serif;
	font-size: 14px;
	font-weight: 500;
	letter-spacing: 0;
	line-height: 1em;
	margin: 0;
	opacity: 1;
	outline: 0;
	padding: 1.5em 2.2em;
	position: relative;
	text-align: center;
	text-decoration: none;
	text-rendering: geometricprecision;
	text-transform: uppercase;
	transition: opacity 300ms cubic-bezier(0.694, 0, 0.335, 1),
		background-color 100ms cubic-bezier(0.694, 0, 0.335, 1),
		color 100ms cubic-bezier(0.694, 0, 0.335, 1);
	user-select: none;
	-webkit-user-select: none;
	touch-action: manipulation;
	vertical-align: baseline;
	white-space: nowrap;

	&:before {
		animation: opacityFallbackOut 0.5s step-end forwards;
		backface-visibility: hidden;
		background-color: #ebebeb;
		clip-path: polygon(-1% 0, 0 0, -25% 100%, -1% 100%);
		content: "";
		height: 100%;
		left: 0;
		position: absolute;
		top: 0;
		transform: translateZ(0);
		transition: clip-path 0.5s cubic-bezier(0.165, 0.84, 0.44, 1),
			-webkit-clip-path 0.5s cubic-bezier(0.165, 0.84, 0.44, 1);
		width: 100%;
	}

	&:hover:before {
		animation: opacityFallbackIn 0s step-start forwards;
		clip-path: polygon(0 0, 101% 0, 101% 101%, 0 101%);
	}

	&:after {
		background-color: #ffffff;
	}

	& span {
		z-index: 1;
		position: relative;
	}
}

@media (max-width: 1200px) {
	.welcome-section {
		& .welcome-content {
			padding: 10rem 4rem;
		}
	}

	.clients-section {
		flex-flow: column nowrap;
		& .clients-list {
			display: flex;
			flex-flow: row wrap;

			width: 100%;
		}
	}
}

@media (max-width: 600px) {
	.svg-btn {
		& svg {
			width: 3em;
			height: 3em;
		}
	}

	a {
		font-size: smaller;
	}

	.welcome-section {
		& .welcome-content {
			display: flex;
			flex-flow: column-reverse nowrap;
			justify-content: center;
			align-items: start;
			text-align: left;
			min-height: 100dvh;

			padding: 5rem 1rem;

			& .left-content {
				display: flex;
				flex-flow: column nowrap;
				justify-content: center;
				align-items: start;
				text-align: left;
				gap: 1em;

				max-width: 100%;
			}

			& .right-content {
				display: flex;
				flex-flow: column nowrap;
				justify-content: center;

				& img {
					width: 100%;
				}
			}
		}
	}

	header {
		padding: 0.5em 0;

		& .link-btns {
			display: none;
		}

		& img {
			width: 3em;
		}
	}

	header.scrolled {
		padding: 0.3em 0;
	}

	.features-section {
		padding: 10em 1em;

		& .section-title {
			font-size: 2.2rem;
		}

		& .feature-list {
			display: grid;
			grid-template-columns: 1fr;
			justify-content: center;
		}
	}

	.clients-section {
		padding: 2em 1em;

		& .title {
			font-size: 2.2rem;
		}

		& .clients-list {
			display: flex;
			flex-flow: column nowrap;

			& img {
				width: auto;
				max-height: 3rem;
			}
		}
	}

	footer {
		padding: 3em 2em;

		& .footer-section {
			justify-content: center;

			& .btns-section {
				justify-content: space-between;
				align-items: center;
				width: 100%;

				& img {
					width: 3em;
					height: auto;
				}

				& .link-btns {
					display: flex;
					width: 100%;
					justify-content: end;

					gap: 2rem;

					& svg {
						width: 2em;
						height: 2em;
					}
				}
			}

			& .copyright {
				display: none;
			}
		}
	}
}
