@import url("https://googleapis.com");

body {
	font-family: "DM Sans", sans-serif;
	background-color: #0f0f0f;
	margin: 0;
	overflow-x: hidden;
}

/* Эффект магии: этот слой заставляет весь белый текст становиться черным, 
когда под ним оказывается белый фон, и оставаться белым на темных картинках */
.ui-wrapper {
	position: relative;
	width: 100%;
	height: 100svh;
	z-index: 5;
	mix-blend-mode: difference;
}

h1 {
	color: #fff;
	font-size: 3rem;
	font-weight: 400;
	letter-spacing: -0.01em;
	line-height: 1.1;
	margin: 0;
}

a, p {
	color: #fff;
	text-decoration: none;
	font-weight: 400;
	letter-spacing: -0.01em;
	display: inline-block;
	margin: 0;
}

img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

nav {
	position: fixed;
	top: 0;
	width: 100%;
	padding: 2rem;
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	z-index: 10;
	box-sizing: border-box;
}

.nav-items {
	display: flex;
	gap: 4rem;	
}

.preloader-overlay {
	position: fixed;
	top: 0;
	width: 100%;
	height: 100svh;
	background-color: #0f0f0f;
	z-index: 20;
}

.preloader-white {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: #fff;
	clip-path: polygon(0% 100%, 100% 100%, 100% 100%, 0% 100%);
	z-index: 21;
}

.preloader-overlay .preloader {
	position: absolute;
	top: 0;
	width: 100%;
	height: 0.5rem;
	background-color: #fff;
	transform: scaleX(0);
	transform-origin: left;
	will-change: transform;
	z-index: 22;
}

.hero {
	position: relative;
	width: 100%;
	height: 100svh;
	overflow: hidden;
}

.intro-img {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 15vw; 
	height: 45vh;
	overflow: hidden;
	border-radius: 1.5rem;
	transform: translate(-50%, -50%); 
	will-change: transform, width, height;
}

.hero-content {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100svh;
	padding: 15svh 2rem 15svh 2rem;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	z-index: 5;
	box-sizing: border-box;
	pointer-events: none;
}

.hero-content a, .hero-content h1 {
	pointer-events: auto;
}

.hero-header {
	width: 60%;
}

/* Оптимизированные маски для текста */
.line-wrapper {
	overflow: hidden;
	display: block;
}

.line {
	display: block;
	will-change: transform;
	transform-origin: left top; /* Чтобы наклон при появлении выглядел изящно */
}

@media (max-width: 1000px) {
	.nav-items {
		flex-direction: column;
		align-items: flex-end;
		gap: 0.5rem;
	}
	.hero-content {
		padding: 15svh 2rem 2rem 2rem;
	}
	.hero-header {
		width: 100%;
	}
	.intro-img {
		width: 25vw;
		height: 35vh;
	}
}
