/* ==========================================================================
   iOTA GCC — layout
   Preloader, fixed header, menu overlay, cursor and footer.
   ========================================================================== */

/* --------------------------------------------------------------------------
   Preloader
   -------------------------------------------------------------------------- */

.i-loader {
	position: fixed;
	inset: 0;
	z-index: 200;
	background: radial-gradient(120% 90% at 50% 42%, #141414 0%, #080808 70%, #050505 100%);
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	pointer-events: none;
	transition: opacity .6s ease, visibility .6s ease;
}

.i-loader[hidden],
.i-loader.is-done {
	opacity: 0;
	visibility: hidden;
}

.i-loader__top {
	position: absolute;
	top: 0;
	inset-inline: 0;
	display: flex;
	justify-content: space-between;
	padding: 24px 30px;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .28em;
	text-transform: uppercase;
	color: rgba(245, 242, 234, .4);
	animation: i-softfade 1s ease .2s both;
}

.i-loader__markwrap {
	text-align: center;
	overflow: hidden;
}

.i-loader__mark {
	font-family: 'Bricolage Grotesque', sans-serif;
	font-weight: 800;
	font-size: calc(clamp(4.5rem, 20vw, 16rem) * var(--scale));
	line-height: .9;
	letter-spacing: -.05em;
	white-space: nowrap;
	color: var(--accent);
	animation: i-maskrise 1.15s cubic-bezier(.16, 1, .3, 1) .15s both;
}

.i-loader__mark span {
	font-size: .32em;
	color: #F5F2EA;
	margin-inline-start: .08em;
	letter-spacing: 0;
	vertical-align: baseline;
}

.i-loader__rule {
	width: min(340px, 60vw);
	height: 1px;
	background: rgba(245, 242, 234, .18);
	margin: clamp(20px, 2.4vw, 32px) 0 clamp(14px, 1.8vw, 22px);
	transform-origin: center;
	animation: i-linegrow 1s cubic-bezier(.16, 1, .3, 1) .5s both;
}

.i-loader__tagline {
	font-size: clamp(10px, 1.4vw, 13px);
	font-weight: 600;
	letter-spacing: .34em;
	text-transform: uppercase;
	color: rgba(245, 242, 234, .55);
	animation: i-softfade 1s ease .7s both;
	text-align: center;
	padding-inline: 20px;
}

.i-loader__tagline b {
	color: var(--accent);
	font-weight: 600;
}

.i-loader__bottom {
	position: absolute;
	inset-inline: 0;
	bottom: 0;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 0 30px 22px;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .24em;
	text-transform: uppercase;
	color: rgba(245, 242, 234, .5);
	animation: i-softfade 1s ease .5s both;
}

.i-loader__count { color: var(--accent); }

.i-loader__bar {
	position: absolute;
	inset-inline-start: 0;
	bottom: 0;
	height: 2px;
	width: 0;
	background: var(--accent);
	transition: width .18s linear;
}

/* --------------------------------------------------------------------------
   Header
   -------------------------------------------------------------------------- */

.i-header {
	position: fixed;
	top: 0;
	inset-inline: 0;
	z-index: 80;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 18px 30px;
	mix-blend-mode: difference;
	color: #fff;
	transition: opacity .2s ease;
}

.i-header.is-hidden {
	opacity: 0;
	visibility: hidden;
}

.i-burger {
	display: flex;
	flex-direction: column;
	gap: 6px;
	background: none;
	border: 0;
	cursor: pointer;
	padding: 8px 4px;
}

.i-burger span {
	display: block;
	width: 28px;
	height: 2px;
	background: #fff;
	transition: transform .3s;
}

.i-logo {
	background: none;
	border: 0;
	cursor: pointer;
	color: #fff;
	text-decoration: none;
	font-family: 'Bricolage Grotesque', sans-serif;
	font-weight: 800;
	font-size: 23px;
	letter-spacing: .01em;
	line-height: 1;
}

.i-logo span {
	color: #fff;
	opacity: .72;
	font-weight: 500;
	font-family: 'Archivo', sans-serif;
	font-size: 14px;
	letter-spacing: .16em;
}

.i-header__nav {
	display: flex;
	align-items: center;
	gap: 16px;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .18em;
}

.i-langbtn {
	background: none;
	border: 1px solid #fff;
	color: #fff;
	cursor: pointer;
	text-decoration: none;
	font-family: 'Archivo', sans-serif;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .14em;
	padding: 6px 13px;
	border-radius: 2px;
	line-height: 1.2;
	white-space: nowrap;
}

.i-header__social {
	color: #fff;
	display: flex;
	align-items: center;
}

@media (max-width: 560px) {
	.i-header { padding: 14px 18px; }
	.i-header__social { display: none; }
}

/* --------------------------------------------------------------------------
   Menu overlay
   -------------------------------------------------------------------------- */

.i-menu {
	position: fixed;
	inset: 0;
	z-index: 70;
	background-color: #0A0A0A;
	background-image: var(--grain);
	background-size: 200px;
	background-blend-mode: overlay;
	color: #fff;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 40px 30px;
	animation: i-fadein .3s ease;
	overflow-y: auto;
}

.i-menu[hidden] { display: none; }

.i-menu__close {
	position: absolute;
	top: 20px;
	inset-inline-end: 30px;
	background: none;
	border: 0;
	color: #fff;
	cursor: pointer;
	font-family: 'Archivo', sans-serif;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .2em;
	padding: 8px;
}

.i-menu__nav {
	display: flex;
	flex-direction: column;
	gap: clamp(4px, 1vw, 10px);
	max-width: 1400px;
	margin-inline: auto;
	width: 100%;
}

.i-menu__link {
	cursor: pointer;
	display: flex;
	align-items: baseline;
	gap: 20px;
	color: inherit;
	text-decoration: none;
	font-family: 'Bricolage Grotesque', sans-serif;
	font-weight: 800;
	text-transform: uppercase;
	font-size: calc(clamp(1.9rem, 6.6vw, 5.2rem) * var(--scale));
	line-height: 1.04;
	letter-spacing: -.02em;
	transition: transform .25s, color .25s;
}

.i-menu__link:hover,
.i-menu__link:focus-visible { transform: translateX(14px); }

.i-menu__link.is-current { color: var(--accent); }

.i-menu__num {
	font-family: 'Archivo', sans-serif;
	font-size: 14px;
	font-weight: 600;
	opacity: .5;
}

.i-menu__foot {
	max-width: 1400px;
	margin: clamp(30px, 6vh, 70px) auto 0;
	width: 100%;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 20px;
	font-size: 13px;
	letter-spacing: .04em;
	opacity: .75;
}

.i-menu__foot a {
	color: inherit;
	text-decoration: none;
}

/* --------------------------------------------------------------------------
   Custom cursor
   -------------------------------------------------------------------------- */

.i-cursor {
	position: fixed;
	top: 0;
	inset-inline-start: 0;
	z-index: 300;
	pointer-events: none;
	mix-blend-mode: difference;
	will-change: transform;
	transform: translate3d(-200px, -200px, 0);
}

.i-cursor__dot {
	width: 26px;
	height: 26px;
	border-radius: 50%;
	border: 1px solid #fff;
	transform: translate(-50%, -50%) scale(1);
	transition: transform .3s cubic-bezier(.16, 1, .3, 1);
}

@media (hover: none), (pointer: coarse) {
	.i-cursor { display: none; }
}

/* --------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */

.i-footer {
	background: var(--ink);
	color: var(--paper);
	padding: clamp(70px, 9vw, 130px) 30px 36px;
}

.i-footer__cta {
	text-align: center;
	padding-bottom: clamp(50px, 7vw, 90px);
}

.i-footer__word {
	cursor: pointer;
	display: block;
	color: var(--paper);
	text-decoration: none;
	font-family: 'Bricolage Grotesque', sans-serif;
	font-weight: 800;
	text-transform: lowercase;
	font-size: calc(clamp(3.4rem, 17vw, 17rem) * var(--scale));
	line-height: .82;
	letter-spacing: -.05em;
	transition: color .25s;
}

.i-footer__word:hover { color: var(--accent); }

.i-footer__email {
	display: inline-block;
	margin-top: clamp(22px, 3vw, 40px);
	color: var(--paper);
	text-decoration: none;
	font-family: 'Bricolage Grotesque', sans-serif;
	font-weight: 700;
	font-size: clamp(1.1rem, 2.4vw, 1.9rem);
	letter-spacing: -.01em;
	transition: color .2s;
	overflow-wrap: anywhere;
}

.i-footer__email:hover { color: var(--accent); }

.i-footer__cols {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	gap: 28px;
	border-top: 1px solid rgba(243, 239, 230, .18);
	padding-top: 36px;
}

.i-footer__coltitle {
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: rgba(243, 239, 230, .45);
	margin-bottom: 14px;
}

.i-footer__link,
.i-footer__item {
	display: block;
	color: rgba(243, 239, 230, .85);
	text-decoration: none;
	font-size: 15px;
	padding: 5px 0;
	transition: color .2s;
}

.i-footer__link:hover { color: var(--accent); }

.i-footer__legal {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 16px;
	margin-top: clamp(38px, 5vw, 60px);
	border-top: 1px solid rgba(243, 239, 230, .18);
	padding-top: 26px;
	font-size: 12px;
	color: rgba(243, 239, 230, .45);
}
