@charset "utf-8";
@font-face {
	font-family: "General Sans";
	src: url("../fonts/generalsans-regular-webfont.woff") format("woff");
	font-weight: normal;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "General Sans";
	src: url("../fonts/generalsans-medium-webfont.woff") format("woff");
	font-weight: 500;
	font-style: normal;
	font-display: swap;
}
:root {
	--font: "General Sans", -apple-system, system-ui, "sans-serif";
	--white: #fff;
	--blue: #030e3f;
	--dark: #020721;
	--dark0: rgba(2, 7, 33, 0);
	--grey: #a7afc3;
	--grey0: rgba(167, 175, 195, 0);
}
html,
body {
	height: 100%;
	box-sizing: border-box;
	text-rendering: optimizeLegibility !important;
	-webkit-font-smoothing: antialiased;
}
body {
	margin: 0;
	padding: 0;
	background: var(--grey);
	font-family: var(--font);
	color: var(--white);
	line-height: 1.4;
	font-weight: normal;
	-webkit-text-size-adjust: none;
	display: flex;
	flex-direction: column;
}
*,
*:before,
*:after {
	box-sizing: border-box;
}
form,
fieldset {
	margin: 0;
	padding: 0;
	border: 0;
}
input::-ms-clear {
	display: none;
}
button::-moz-focus-inner {
	border: 0;
}
textarea {
	resize: none;
}
video {
	-webkit-mask-image: -webkit-radial-gradient(white, black);
	-webkit-backface-visibility: hidden;
	-moz-backface-visibility: hidden;
}
header,
nav,
section,
article,
aside,
footer,
menu,
time,
figure,
figcaption,
main {
	display: block;
}
img,
svg,
picture {
	border: 0;
	outline: none;
	vertical-align: top;
	margin: 0;
	padding: 0;
}
a {
	color: inherit;
	text-decoration: none;
	outline: none;
	cursor: pointer;
}
a[href^="tel"] {
	color: inherit !important;
	text-decoration: none !important;
}
.mainwrap {
	width: 100%;
	min-height: 100%;
	position: relative;
	display: flex;
	flex-direction: column;
}
.mainwrap > * {
	flex: 0 0 auto;
	width: 100%;
}
.logo {
	z-index: 101;
	width: 120px;
	height: 120px;
	text-decoration: none;
	color: var(--white);
	text-align: left;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	line-height: 1.1;
	padding: 22px 14px 18px 14px;
	transition: 1.2s cubic-bezier(0.165, 0.84, 0.44, 1);
}
.logo svg {
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
	fill: var(--blue);
	transition: fill 0.5s ease;
}
.logo .big {
	font-weight: 500;
	font-size: 21px;
	position: relative;
}
.logo .small {
	font-size: 7px;
	position: relative;
	letter-spacing: 0.4em;
	text-transform: uppercase;
}
.top-block {
	height: 100vh;
	height: 100svh;
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	line-height: 1.1;
	background: url("../img/top.svg") no-repeat 50% 50%;
	background-size: cover;
}
.top-block video {
	width: 100%;
	height: 100%;
	transform: translate3d(0, calc(-20% * var(--percent1) + 10% * var(--percent2)), 0)
		scale(calc(1.3 - 0.3 * var(--percent1)));

	object-fit: cover;
	object-position: center;
	position: absolute;
	top: 0;
	left: 0;
}
.container {
	position: relative;
	flex: 0 0 auto;
	width: 100%;
	margin: 0 auto;
}
.dot-title {
	color: var(--white);
	font-size: 20px;
	font-weight: normal;
	margin: 0 0 23px 0;
	padding: 0 0 0 22px;
	position: relative;
}
.dot-title:before {
	content: "";
	position: absolute;
	width: 6px;
	height: 6px;
	background: var(--white);
	border-radius: 50%;
	margin: -3px 0;
	top: 0.7em;
	left: 0;
}
.about {
	background: var(--dark);
	overflow: hidden;
	position: relative;
}
.shadow-text {
	--percent: 0;
	--num: 1;
	--width: 0;
	position: relative;
	z-index: 2;
}
.shadow-text .lines {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	overflow: hidden;
	backface-visibility: hidden;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
}
.shadow-text .lines > * {
	flex: 0 0 auto;
	height: calc((100% / var(--num)));
	background: var(--dark);
	opacity: 0.7;
	backface-visibility: hidden;
	will-change: transform;
	transform: translate3d(calc(var(--width) * var(--percent)), 0, 0);
	transition: opacity 0.2s linear;
}
.shadow-text.end .lines > * {
	opacity: 0;
}
.shadow-text .lines > *:before {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	right: 100%;
	margin-right: -1px;
	width: 200px;
	max-width: 25vw;
	background: linear-gradient(to right, var(--dark0) 0%, var(--dark) 100%);
}
.shadow-text .lines > *:nth-child(1) {
	width: 100%;
}
.shadow-text .lines > *:nth-child(2) {
	width: 200%;
}
.shadow-text .lines > *:nth-child(3) {
	width: 300%;
}
.shadow-text .lines > *:nth-child(4) {
	width: 400%;
}
.shadow-text .lines > *:nth-child(5) {
	width: 500%;
}
.shadow-text .lines > *:nth-child(6) {
	width: 600%;
}
.shadow-text .lines > *:nth-child(7) {
	width: 700%;
}
.shadow-text .lines > *:nth-child(8) {
	width: 800%;
}
.shadow-text .lines > *:nth-child(9) {
	width: 900%;
}
.shadow-text .lines > *:nth-child(10) {
	width: 1000%;
}
.about .years {
	z-index: 1;
	position: relative;
	overflow: hidden;
	font-weight: normal;
	--percent1: 0;
	--percent2: 0;
}
.about .years:before,
.about .years:after {
	content: "";
	position: absolute;
	height: 25%;
	left: 0;
	right: 0;
	z-index: 2;
}
.about .years:before {
	top: 0;
	background: linear-gradient(to bottom, var(--dark) 0%, var(--dark0) 100%);
}
.about .years:after {
	bottom: 0;
	background: linear-gradient(to bottom, var(--dark0) 0%, var(--dark) 100%);
}
.about .years img {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	backface-visibility: hidden;
	will-change: transform;
}
.about .years .container {
	display: flex;
	justify-content: flex-end;
}
.about .years .text {
	flex: 0 0 auto;
	max-width: 100%;
	position: relative;
	z-index: 3;
}
.about .years .text > * {
	position: relative;
	overflow: hidden;
	white-space: nowrap;
}
.about .years .text > * > * {
	display: inline-block;
	vertical-align: top;
	opacity: 0;
	transition: 0.8s cubic-bezier(0.165, 0.84, 0.44, 1);
	transform: translate3d(0, 100%, 0);
}
.about .years.ready .text > * > * {
	transform: translate3d(0, 0, 0);
	transition-duration: 1s;
	opacity: 1;
}
.about .years.ready .text > *:nth-child(2) > * {
	transition-delay: 0.05s;
}
.about .years.ready .text > *:nth-child(3) > * {
	transition-delay: 0.1s;
}
.about .years.ready .text > *:nth-child(4) > * {
	transition-delay: 0.15s;
}
.about .years.ready .text > *:nth-child(5) > * {
	transition-delay: 0.2s;
}
.about .years.ready .text > *:nth-child(6) > * {
	transition-delay: 0.25s;
}
.about .years.ready .text > *:nth-child(7) > * {
	transition-delay: 0.3s;
}
.about:after {
	content: "";
	pointer-events: none;
	position: absolute;
	top: 100%;
	left: 75%;
	background-repeat: no-repeat;
	background-position: 50% 50%;
	background-size: contain;
	animation: slow-rotating 40s linear infinite;
	z-index: 5;
}
@-webkit-keyframes slow-rotating {
	from {
		transform: rotate(0deg);
	}
	to {
		transform: rotate(-360deg);
	}
}
@keyframes slow-rotating {
	from {
		transform: rotate(0deg);
	}
	to {
		transform: rotate(-360deg);
	}
}
.about {
	position: sticky;
	top: calc(var(--height) * -1 + 100vh);
	top: calc(var(--height) * -1 + 100lvh);
}
.equipment {
	z-index: 10;
	position: relative;
	backface-visibility: hidden;
	transform: translateZ(0);
	will-change: opacity;
	min-height: 100vh;
	min-height: 100lvh;
	background: var(--grey);
}
.equipment .bg {
	/* overflow: hidden; */
	backface-visibility: hidden;
}
.equipment .bg video,
.equipment .bg img {
	object-fit: cover;
	object-position: right;
	position: absolute;
	bottom: 0;
	right: 0;
}
.equipment .big {
	max-width: 12.522em;
}
.equipment ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	width: 100%;
	flex: 0 0 auto;
	max-width: 22.291em;
	position: relative;
	z-index: 2;
}
.equipment li {
	list-style: none;
	margin: 0;
	padding: 0;
}
.equipment li:before {
	content: "";
	display: block;
	width: 30px;
	height: 30px;
	background-repeat: no-repeat;
	background-position: 50% 50%;
	background-size: contain;
	position: static;
	min-width: 0;
	margin: 0 0 18px 0;
	padding: 0;
	opacity: 1;
}
.equipment li:nth-child(4n - 3):before {
	background-image: url("../img/figures/Circle.svg");
}
.equipment li:nth-child(4n - 2):before {
	background-image: url("../img/figures/Triangle.svg");
}
.equipment li:nth-child(4n - 1):before {
	background-image: url("../img/figures/Square.svg");
}
.equipment li:nth-child(4n):before {
	background-image: url("../img/figures/Cube.svg");
}
.equipment {
	position: sticky;
	top: calc(var(--height) * -1 + 100vh);
	top: calc(var(--height) * -1 + 100lvh);
}
.bottom-section {
	position: relative;
	z-index: 20;
}
.service {
	--percent: 0;
	--percent1: 0;
	background: var(--dark);
	position: relative;
	overflow: hidden;
	backface-visibility: hidden;
	min-height: 100vh;
	min-height: 100lvh;
}
.service .bg,
.contacts .bg {
	position: absolute;
	top: 0;
	left: 0;
	bottom: 0;
	right: 0;
	background: var(--grey);
	opacity: calc(1 * var(--percent1));
}
.service .big {
	max-width: 12.522em;
}
.service ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	gap: 40px 0;
	position: relative;
	z-index: 20;
}
.service li {
	user-select: none;
	flex: 0 0 auto;
	list-style: none;
	margin: 0 auto;
	overflow: hidden;
	backface-visibility: hidden;
	background: url("../img/service.svg") no-repeat 50% 50%;
	background-size: 100% 100%;
	will-change: transform;
	color: var(--dark);
	width: 21.277777em;
	height: 24.055555em;
	padding: 0 1.388888em;
	font-size: 18px;
}
.service .image,
.service .big2,
.service .text {
	transition: 0.7s cubic-bezier(0.455, 0.03, 0.515, 0.955);
	transition-property: transform, opacity;
	backface-visibility: hidden;
	transform: translate3d(0, 0, 0);
	will-change: transform, opacity;
}
.service .image {
	position: relative;
	height: 18.722222em;
}
.service .image img {
	position: absolute;
	top: 60%;
	left: 50%;
	object-fit: contain;
	object-position: center;
	backface-visibility: hidden;
	animation: bouge 3s ease infinite alternate;
	transform: translateY(0%) rotate(3deg);
	/* width: 19.444444em;
	height: 19.444444em; */
	margin: -9.722222em;
	width: 100%;
    height: 100%;
	max-height: 160px;
}

.service li:nth-child(odd) .image img {
	animation-direction: alternate-reverse;
}
@-webkit-keyframes bouge {
	from {
		transform: translateY(0%) rotate(-1.5deg);
	}
	to {
		transform: translateY(5%) rotate(1.5deg);
	}
}
@keyframes bouge {
	from {
		transform: translateY(0%) rotate(-2deg);
	}
	to {
		transform: translateY(5%) rotate(2deg);
	}
}
@keyframes bouge-3 {
	from {
		transform: translateY(5%) rotate(-3deg);
	}
	to {
		transform: translateY(0) rotate(-3deg);
	}
}
@keyframes bouge-4 {
	from {
		transform: translateY(5%) rotate(-1deg);
	}
	to {
		transform: translateY(0) rotate(-1deg);
	}
}
@keyframes bouge-2 {
	from {
		transform: translateY(0%);
	}
	to {
		transform: translateY(20px);
	}
}
.service .big2 {
	line-height: 1.1;
	font-size: 1.666666em;
	height: 3.2em;
}
.service .text {
	line-height: 1.3;
}
.service .plus {
	position: absolute;
	z-index: 3;
	width: 1.666666em;
	height: 1.666666em;
	background: var(--dark);
	border-radius: 50%;
	transition-property: transform, background;
	transition-duration: 0.4s;
	transition-timing-function: ease;
	bottom: 2.666666em;
	right: 3.111111em;
	display: flex;
	align-items: center;
	justify-content: center;
	transform: rotate(0deg);
}
.service .plus svg {
	width: 12px;
	height: 12px;
	transition: fill 0.4s ease;
	fill: var(--white);
}
/* .hover-text {
	transform: translateY(0);
	will-change: transform, opacity;
	transition: 0.7s cubic-bezier(0.455, 0.03, 0.515, 0.955);
} */
@media (pointer: fine) {
	.service li:hover .image {
		transform: translate3d(0, calc(-16.444444em - 20%), 0);
	}
	.service li:hover .big2 {
		transform: translate3d(0, -8.666666em, 0);
	}
	.service li:hover .text {
		transform: translate3d(0, -15.75em, 0);
	}
	.service li:hover .plus {
		background-color: #ececed;
		transform: rotate(180deg);
	}
	.service li:hover .plus svg {
		fill: var(--dark);
	}
}
@media (pointer: coarse) {
	.service li.open .image {
		transform: translate3d(0, calc(-14.444444em - 20%), 0);
	}

	.service li.open .big2 {
		transform: translate3d(0, -8.666666em, 0);
	}
	.service li.open .text {
		transform: translate3d(0, -15.75em, 0);
	}
	.service li.open .plus {
		background-color: #ececed;
		transform: rotate(180deg);
	}
	.service li.open .plus svg {
		fill: var(--dark);
	}
}
.contacts {
	background: var(--dark);
	position: relative;
	min-height: 100lvh;
	min-height: 100vh;
}
.contacts .big {
	max-width: 18.8em;
}
.contacts .small {
	font-size: 18px;
	opacity: 0.5;
	margin: 0 0 7px 0;
}
.contacts .small:not(:first-child) {
	margin-top: 60px;
}
.contacts .text {
	position: relative;
	font-size: 22px;
}
.contacts .image {
	pointer-events: none;
}
.contacts .image,
.contacts .text {
	backface-visibility: hidden;
	will-change: transform;
}
.contacts .bottom {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 20px;
	font-size: 16px;
}
.contacts .bottom a {
	font-weight: 500;
	text-decoration: underline;
}
.no-sticky {
	position: relative !important;
	top: auto !important;
}
.about.hide,
.equipment.hide {
	opacity: 0;
	pointer-events: none;
}

html.lenis {
	height: auto;
}

.lenis.lenis-smooth {
	scroll-behavior: auto;
}

.lenis.lenis-smooth [data-lenis-prevent] {
	overscroll-behavior: contain;
}

.lenis.lenis-stopped {
	overflow: hidden;
}

.lenis.lenis-scrolling iframe {
	pointer-events: none;
}

[data-aos="fade-up"] {
	transform: translate(0);
}
