/* Sanjai Nath – Fluid Motion (original) */

/* ---------- Liquid layer ---------- */
.snm-liquid {
	position: fixed;
	inset: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
	z-index: 40;
	mix-blend-mode: screen;
	opacity: 0;
	transition: opacity 1.8s ease;
}
.snm-liquid.is-on { opacity: .9; }

/* ---------- Intro preloader ---------- */
.snm-intro { display: none; }

html.snm-intro .snm-intro {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 28px;
	position: fixed;
	inset: 0;
	z-index: 100000;
	background: #161616;
	color: #fff;
	will-change: transform;
	/* Safety net: wipe away on its own even if JS never runs. */
	animation: snm-wipe 1s cubic-bezier(.77, 0, .18, 1) 9s forwards;
}
/* Show the page shell immediately behind our loader instead of the theme's blank wait. */
html.snm-intro, html.snm-intro body { background: #161616 !important; }
html.snm-intro body.animsition { opacity: 1 !important; }
/* JS adds this once the page is ready and the letters have played. */
html.snm-intro.snm-done .snm-intro {
	animation: snm-wipe .95s cubic-bezier(.77, 0, .18, 1) forwards;
}
.snm-intro__word {
	display: flex;
	overflow: hidden;
	font-family: Gilroy, "Helvetica Neue", Arial, sans-serif;
	font-weight: 500;
	font-size: clamp(64px, 14vw, 168px);
	line-height: 1.05;
	letter-spacing: -.01em;
	padding: 0 .04em .08em;
}
.snm-intro__word span {
	display: inline-block;
	transform: translateY(110%) rotate(6deg);
	animation: snm-letter .9s cubic-bezier(.16, 1, .3, 1) forwards;
	animation-delay: calc(var(--i) * 70ms + 150ms);
}
.snm-intro__dot {
	color: #6fc1e4;
}
.snm-intro__line {
	width: min(220px, 40vw);
	height: 1px;
	background: rgba(255, 255, 255, .15);
	position: relative;
	overflow: hidden;
}
.snm-intro__line::after {
	content: "";
	position: absolute;
	inset: 0;
	background: #6fc1e4;
	transform: scaleX(0);
	transform-origin: left;
	animation: snm-line 1.4s cubic-bezier(.65, 0, .35, 1) .2s infinite;
}

@keyframes snm-letter { to { transform: translateY(0) rotate(0); } }
@keyframes snm-line {
	0% { transform: scaleX(0); transform-origin: left; }
	50% { transform: scaleX(1); transform-origin: left; }
	50.1% { transform-origin: right; }
	100% { transform: scaleX(0); transform-origin: right; }
}
@keyframes snm-wipe {
	to { transform: translate3d(0, -100%, 0); visibility: hidden; }
}

/* ---------- Reveals ---------- */
html.snm-js .snm-r {
	opacity: 0;
	transform: translate3d(0, 34px, 0);
	filter: blur(8px);
	transition:
		opacity .9s ease,
		transform 1.2s cubic-bezier(.16, 1, .3, 1),
		filter .9s ease;
	transition-delay: calc(var(--snm-d, 0) * 90ms);
	will-change: opacity, transform;
}
html.snm-js .snm-r.snm-in {
	opacity: 1;
	transform: none;
	filter: none;
}

/* ---------- Accessibility ---------- */
@media (prefers-reduced-motion: reduce) {
	html.snm-intro .snm-intro { display: none; }
	html.snm-js .snm-r { transform: none; filter: none; transition: opacity .3s ease; }
}

/* Hide empty background images (portfolio items without a featured image). */
.vlt-section__projects-background img:not([src]),
.vlt-section__projects-background img[src=""] { visibility: hidden; }
