/* ==========================================================================
   Maria Vasii — Motion (expertiză · opulență discretă)
   ========================================================================== */

:root {
	--mv-ease-out: cubic-bezier(0.22, 1, 0.36, 1);
	--mv-ease-lux: cubic-bezier(0.16, 0.84, 0.44, 1);
	--mv-ease-soft: cubic-bezier(0.4, 0, 0.2, 1);
	--mv-duration-reveal: 0.95s;
	--mv-stagger-step: 0.1s;
}

/* --- Scroll reveal --- */

.mv-reveal {
	opacity: 0;
	transform: translate3d(0, 32px, 0);
	filter: blur(6px);
	transition:
		opacity var(--mv-duration-reveal) var(--mv-ease-lux),
		transform var(--mv-duration-reveal) var(--mv-ease-lux),
		filter 1.1s var(--mv-ease-lux);
	will-change: opacity, transform, filter;
}

.mv-reveal.is-visible {
	opacity: 1;
	transform: none;
	filter: none;
}

.mv-reveal--soft {
	transform: translate3d(0, 18px, 0);
	filter: blur(3px);
}

.mv-reveal-stagger .mv-stagger-item {
	opacity: 0;
	transform: translate3d(0, 26px, 0);
	transition:
		opacity 0.85s var(--mv-ease-lux),
		transform 0.85s var(--mv-ease-lux),
		box-shadow 0.45s var(--mv-ease-out),
		border-color 0.45s var(--mv-ease-out);
	transition-delay: calc(var(--mv-stagger-index, 0) * var(--mv-stagger-step));
}

.mv-reveal-stagger.is-visible .mv-stagger-item {
	opacity: 1;
	transform: none;
}

/* --- Section titles (linie bronze) --- */

.mv-section__header.mv-reveal.is-visible .mv-section__title::after {
	transform: scaleX(1);
	opacity: 1;
}

.mv-section__title::after {
	content: "";
	display: block;
	width: 4.5rem;
	height: 2px;
	margin-top: 0.75rem;
	border-radius: 2px;
	background: linear-gradient(90deg, var(--mv-bronze), rgba(var(--mv-bronze-rgb), 0.15));
	transform: scaleX(0);
	transform-origin: left center;
	opacity: 0;
	transition:
		transform 1.15s var(--mv-ease-lux) 0.12s,
		opacity 0.8s ease 0.12s;
}

/* --- Ambient sections --- */

.mv-section--lux {
	overflow: hidden;
}

.mv-section--lux::before {
	content: "";
	position: absolute;
	inset: -20% -10%;
	background:
		radial-gradient(ellipse 50% 40% at 15% 20%, rgba(var(--mv-bronze-rgb), 0.11), transparent 55%),
		radial-gradient(ellipse 45% 35% at 85% 75%, rgba(var(--mv-bronze-rgb), 0.07), transparent 50%);
	opacity: 0.85;
	pointer-events: none;
	animation: mv-ambient-drift 22s ease-in-out infinite alternate;
}

@keyframes mv-ambient-drift {
	from { transform: translate3d(0, 0, 0) scale(1); }
	to { transform: translate3d(-2%, 1.5%, 0) scale(1.04); }
}

/* --- Glass shimmer --- */

html.mv-motion-lux .mv-glass--ultra::after {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	background: linear-gradient(
		105deg,
		transparent 42%,
		rgba(255, 255, 255, 0.045) 50%,
		transparent 58%
	);
	transform: translateX(-120%);
	animation: mv-glass-shine 9s ease-in-out infinite;
}

@keyframes mv-glass-shine {
	0%, 72% { transform: translateX(-120%); }
	100% { transform: translateX(120%); }
}

html.mv-motion-lux .mv-glass--ultra {
	position: relative;
	overflow: hidden;
}

html.mv-motion-lux .mv-header__chrome--ivory {
	position: relative;
	overflow: hidden;
}

html.mv-motion-lux .mv-header__chrome--ivory::after {
	animation: mv-header-gold-pulse 8s ease-in-out infinite;
}

@keyframes mv-header-gold-pulse {
	0%, 100% { opacity: 0.75; }
	50% { opacity: 1; }
}

/* --- Hero intro --- */

@keyframes mv-rise {
	from {
		opacity: 0;
		transform: translate3d(0, 22px, 0);
		filter: blur(4px);
	}
	to {
		opacity: 1;
		transform: none;
		filter: none;
	}
}

@keyframes mv-hero-frame-in {
	from {
		opacity: 0;
		transform: scale(0.985) translate3d(0, 12px, 0);
	}
	to {
		opacity: 1;
		transform: none;
	}
}

html.mv-motion-ready .mv-hero--motion .mv-hero-slider__viewport {
	animation: mv-hero-frame-in 1.15s var(--mv-ease-lux) 0.05s backwards;
}

html.mv-motion-ready .mv-body--home .mv-hero--dissolve .mv-hero-slider__viewport {
	animation: mv-hero-dissolve-in 1.35s var(--mv-ease-lux) 0.05s backwards;
}

@keyframes mv-hero-dissolve-in {
	from {
		opacity: 0;
		filter: blur(10px);
	}
	to {
		opacity: 1;
		filter: none;
	}
}

html.mv-motion-ready .mv-hero-intro > * {
	animation: mv-rise 0.95s var(--mv-ease-lux) backwards;
}

html.mv-motion-ready .mv-hero-intro > *:nth-child(1) { animation-delay: 0.2s; }
html.mv-motion-ready .mv-hero-intro > *:nth-child(2) { animation-delay: 0.32s; }
html.mv-motion-ready .mv-hero-intro > *:nth-child(3) { animation-delay: 0.44s; }
html.mv-motion-ready .mv-hero-intro > *:nth-child(4) { animation-delay: 0.56s; }
html.mv-motion-ready .mv-hero-intro > *:nth-child(5) { animation-delay: 0.68s; }

/* --- Cards & opulență hover --- */

html.mv-motion-lux .mv-card__link {
	transition:
		border-color 0.45s var(--mv-ease-out),
		transform 0.55s var(--mv-ease-lux),
		box-shadow 0.55s var(--mv-ease-out);
}

html.mv-motion-lux .mv-card__link:hover {
	transform: translateY(-6px);
	box-shadow:
		0 22px 48px rgba(0, 0, 0, 0.38),
		0 0 0 1px rgba(var(--mv-bronze-rgb), 0.22),
		0 0 32px rgba(var(--mv-bronze-rgb), 0.08);
}

html.mv-motion-lux .mv-card__media img {
	transition: transform 0.75s var(--mv-ease-lux);
}

html.mv-motion-lux .mv-card__link:hover .mv-card__media img {
	transform: scale(1.06);
}

html.mv-motion-lux .mv-why-card {
	transition:
		transform 0.5s var(--mv-ease-lux),
		border-color 0.45s ease,
		box-shadow 0.5s ease;
}

html.mv-motion-lux .mv-why-card:hover {
	transform: translateY(-4px);
	border-color: rgba(var(--mv-bronze-rgb), 0.35);
	box-shadow: 0 16px 40px rgba(0, 0, 0, 0.28);
}

/* --- Nav & buttons --- */

html.mv-motion-lux .mv-nav__list a {
	position: relative;
}

html.mv-motion-lux .mv-nav__list a::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: -0.35rem;
	width: 100%;
	height: 1px;
	background: linear-gradient(90deg, var(--mv-bronze), transparent);
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform 0.45s var(--mv-ease-lux);
}

html.mv-motion-lux .mv-nav__list a:hover::after,
html.mv-motion-lux .mv-nav__list .current-menu-item > a::after {
	transform: scaleX(1);
}

html.mv-motion-lux .mv-btn--primary {
	position: relative;
	overflow: hidden;
}

html.mv-motion-lux .mv-btn--primary::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(120deg, transparent 30%, rgba(255, 255, 255, 0.18) 50%, transparent 70%);
	transform: translateX(-130%);
	transition: transform 0.65s var(--mv-ease-out);
	pointer-events: none;
}

html.mv-motion-lux .mv-btn--primary:hover::after {
	transform: translateX(130%);
}

/* --- Process steps --- */

.mv-process__item.mv-stagger-item.is-step-lit .mv-process__num {
	color: var(--mv-bronze-highlight);
	text-shadow: 0 0 24px rgba(var(--mv-bronze-rgb), 0.35);
}

.mv-trust__list .mv-stagger-item {
	position: relative;
}

.mv-trust__list .mv-stagger-item::before {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 0;
	height: 1px;
	background: linear-gradient(90deg, var(--mv-bronze), transparent);
	transition: width 0.9s var(--mv-ease-lux);
	transition-delay: calc(var(--mv-stagger-index, 0) * var(--mv-stagger-step) + 0.2s);
}

.mv-reveal-stagger.is-visible .mv-trust__list .mv-stagger-item::before {
	width: 2.5rem;
}

/* --- Link arrow --- */

html.mv-motion-lux .mv-link-arrow svg {
	transition: transform 0.45s var(--mv-ease-lux);
}

/* --- Header chrome --- */

html.mv-motion-lux .mv-header__chrome--ivory {
	transition:
		background 0.5s var(--mv-ease-soft),
		box-shadow 0.5s var(--mv-ease-soft),
		border-color 0.5s var(--mv-ease-soft),
		transform 0.5s var(--mv-ease-lux);
}

html.mv-motion-lux .mv-header.is-scrolled .mv-header__chrome--ivory {
	transform: translateY(-1px);
}

/* --- Accordion --- */

.mv-accordion__panel[hidden] {
	display: none;
}

html.mv-motion-lux .mv-accordion__item.is-open .mv-accordion__panel:not([hidden]) {
	animation: mv-rise 0.45s var(--mv-ease-out);
}

/* --- Site decor (alb · auriu) --- */

.mv-site-decor {
	position: fixed;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	overflow: hidden;
}

.mv-site-decor__veil {
	position: absolute;
	inset: 0;
	background:
		radial-gradient(ellipse 90% 55% at 50% -10%, rgba(245, 241, 232, 0.07), transparent 58%),
		radial-gradient(ellipse 60% 40% at 100% 30%, rgba(212, 184, 138, 0.06), transparent 55%),
		radial-gradient(ellipse 50% 35% at 0% 70%, rgba(182, 154, 107, 0.05), transparent 50%);
}

.mv-site-decor__mesh {
	position: absolute;
	inset: -30%;
	opacity: 0.45;
	background:
		repeating-linear-gradient(
			-12deg,
			transparent,
			transparent 48px,
			rgba(245, 241, 232, 0.018) 48px,
			rgba(245, 241, 232, 0.018) 49px
		),
		repeating-linear-gradient(
			78deg,
			transparent,
			transparent 64px,
			rgba(212, 184, 138, 0.012) 64px,
			rgba(212, 184, 138, 0.012) 65px
		);
}

html.mv-motion-lux .mv-site-decor__mesh {
	animation: mv-decor-mesh 48s linear infinite;
}

@keyframes mv-decor-mesh {
	from { transform: translate3d(0, 0, 0) rotate(0deg); }
	to { transform: translate3d(-2%, 1.5%, 0) rotate(1.5deg); }
}

.mv-site-decor__orb {
	position: absolute;
	border-radius: 50%;
	filter: blur(70px);
	opacity: 0.55;
}

.mv-site-decor__orb--1 {
	width: min(42vw, 520px);
	height: min(42vw, 520px);
	left: -8%;
	top: 8%;
	background: radial-gradient(circle, rgba(245, 241, 232, 0.14) 0%, rgba(212, 184, 138, 0.08) 45%, transparent 70%);
}

.mv-site-decor__orb--2 {
	width: min(36vw, 440px);
	height: min(36vw, 440px);
	right: -6%;
	top: 32%;
	background: radial-gradient(circle, rgba(212, 184, 138, 0.16) 0%, rgba(182, 154, 107, 0.06) 50%, transparent 72%);
}

.mv-site-decor__orb--3 {
	width: min(50vw, 560px);
	height: min(50vw, 560px);
	left: 20%;
	bottom: -18%;
	background: radial-gradient(circle, rgba(245, 241, 232, 0.08) 0%, rgba(212, 184, 138, 0.05) 55%, transparent 75%);
}

html.mv-motion-lux .mv-site-decor__orb--1 {
	animation: mv-decor-float-a 26s ease-in-out infinite alternate;
}

html.mv-motion-lux .mv-site-decor__orb--2 {
	animation: mv-decor-float-b 32s ease-in-out infinite alternate;
}

html.mv-motion-lux .mv-site-decor__orb--3 {
	animation: mv-decor-float-c 38s ease-in-out infinite alternate;
}

@keyframes mv-decor-float-a {
	from { transform: translate3d(0, 0, 0) scale(1); }
	to { transform: translate3d(4%, 6%, 0) scale(1.06); }
}

@keyframes mv-decor-float-b {
	from { transform: translate3d(0, 0, 0) scale(1); }
	to { transform: translate3d(-5%, 4%, 0) scale(1.04); }
}

@keyframes mv-decor-float-c {
	from { transform: translate3d(0, 0, 0) scale(1); }
	to { transform: translate3d(3%, -4%, 0) scale(1.05); }
}

.mv-site-decor__beam {
	position: absolute;
	height: 1px;
	left: -20%;
	width: 140%;
	background: linear-gradient(
		90deg,
		transparent 0%,
		rgba(245, 241, 232, 0) 35%,
		rgba(245, 241, 232, 0.35) 48%,
		rgba(212, 184, 138, 0.75) 50%,
		rgba(245, 241, 232, 0.35) 52%,
		rgba(245, 241, 232, 0) 65%,
		transparent 100%
	);
	opacity: 0.35;
}

.mv-site-decor__beam--1 {
	top: 18%;
}

.mv-site-decor__beam--2 {
	top: 62%;
	opacity: 0.22;
}

html.mv-motion-lux .mv-site-decor__beam {
	animation: mv-decor-beam 14s ease-in-out infinite;
}

html.mv-motion-lux .mv-site-decor__beam--2 {
	animation-duration: 19s;
	animation-delay: -6s;
}

@keyframes mv-decor-beam {
	0%, 100% { transform: translateX(-8%) scaleX(0.85); opacity: 0.15; }
	50% { transform: translateX(8%) scaleX(1); opacity: 0.45; }
}

.mv-site-decor__corner {
	position: absolute;
	width: clamp(72px, 12vw, 120px);
	height: clamp(72px, 12vw, 120px);
	opacity: 0.55;
}

.mv-site-decor__corner--tl {
	top: clamp(4.5rem, 10vh, 6.5rem);
	left: clamp(0.5rem, 2vw, 1.25rem);
}

.mv-site-decor__corner--br {
	right: clamp(0.5rem, 2vw, 1.25rem);
	bottom: clamp(3rem, 8vh, 5rem);
}

html.mv-motion-lux .mv-site-decor__corner-path {
	stroke-dasharray: 140;
	stroke-dashoffset: 140;
	animation: mv-decor-draw 4.5s var(--mv-ease-lux) forwards;
}

html.mv-motion-lux .mv-site-decor__corner--br .mv-site-decor__corner-path {
	animation-delay: 0.6s;
}

html.mv-motion-lux .mv-site-decor__corner-dot {
	animation: mv-decor-pulse 3.5s ease-in-out infinite;
}

@keyframes mv-decor-draw {
	to { stroke-dashoffset: 0; }
}

@keyframes mv-decor-pulse {
	0%, 100% { opacity: 0.45; filter: drop-shadow(0 0 0 rgba(212, 184, 138, 0)); }
	50% { opacity: 1; filter: drop-shadow(0 0 8px rgba(212, 184, 138, 0.55)); }
}

.mv-site-decor__sparkles {
	position: absolute;
	inset: 0;
}

.mv-site-decor__spark {
	position: absolute;
	width: 3px;
	height: 3px;
	border-radius: 50%;
	background: radial-gradient(circle, #f5f1e8 0%, #d4b88a 55%, transparent 100%);
	box-shadow: 0 0 10px rgba(212, 184, 138, 0.45);
	opacity: 0;
}

html.mv-motion-lux .mv-site-decor__spark {
	animation: mv-decor-spark 4.5s ease-in-out infinite;
	animation-delay: calc(var(--mv-spark-i, 0) * 0.37s);
}

/* pseudo-random positions from index */
.mv-site-decor__spark:nth-child(1) { left: 8%; top: 22%; }
.mv-site-decor__spark:nth-child(2) { left: 18%; top: 58%; }
.mv-site-decor__spark:nth-child(3) { left: 28%; top: 14%; }
.mv-site-decor__spark:nth-child(4) { left: 42%; top: 72%; }
.mv-site-decor__spark:nth-child(5) { left: 55%; top: 28%; }
.mv-site-decor__spark:nth-child(6) { left: 63%; top: 48%; }
.mv-site-decor__spark:nth-child(7) { left: 71%; top: 12%; }
.mv-site-decor__spark:nth-child(8) { left: 82%; top: 66%; }
.mv-site-decor__spark:nth-child(9) { left: 90%; top: 34%; }
.mv-site-decor__spark:nth-child(10) { left: 12%; top: 82%; }
.mv-site-decor__spark:nth-child(11) { left: 36%; top: 38%; }
.mv-site-decor__spark:nth-child(12) { left: 48%; top: 8%; }
.mv-site-decor__spark:nth-child(13) { left: 76%; top: 78%; }
.mv-site-decor__spark:nth-child(14) { left: 94%; top: 52%; }

@keyframes mv-decor-spark {
	0%, 100% { opacity: 0; transform: scale(0.6); }
	45% { opacity: 0.85; transform: scale(1); }
	70% { opacity: 0.2; transform: scale(0.8); }
}

html.mv-motion-lux .mv-site-decor {
	transition: transform 0.1s linear;
	will-change: transform;
}

@media (max-width: 767px) {
	.mv-site-decor__corner--br {
		display: none;
	}

	.mv-site-decor__beam--2 {
		display: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.mv-reveal,
	.mv-reveal-stagger .mv-stagger-item {
		opacity: 1 !important;
		transform: none !important;
		filter: none !important;
		transition: none !important;
	}

	.mv-section__title::after {
		transform: scaleX(1);
		opacity: 1;
	}

	html.mv-motion-ready .mv-hero--motion .mv-hero-slider__viewport,
	html.mv-motion-ready .mv-hero-intro > * {
		animation: none !important;
	}

	.mv-section--lux::before,
	html.mv-motion-lux .mv-glass--ultra::after,
	html.mv-motion-lux .mv-site-decor__mesh,
	html.mv-motion-lux .mv-site-decor__orb,
	html.mv-motion-lux .mv-site-decor__beam,
	html.mv-motion-lux .mv-site-decor__corner-path,
	html.mv-motion-lux .mv-site-decor__corner-dot,
	html.mv-motion-lux .mv-site-decor__spark {
		animation: none !important;
	}

	.mv-site-decor__corner-path {
		stroke-dashoffset: 0;
	}

	html.mv-motion-lux .mv-about-ambient__drift {
		animation: none !important;
	}

	html.mv-motion-lux .mv-about-universe__star,
	html.mv-motion-lux .mv-about-universe__nebula {
		animation: none !important;
	}

	html.mv-motion-lux .mv-hero-ambient__glow {
		animation: none !important;
	}

	.mv-about-universe__star {
		opacity: 0.3;
	}
}

/* --- Despre: ambient pagină --- */

@keyframes mv-about-ambient-drift {
	from {
		transform: translate3d(0, 0, 0);
	}
	to {
		transform: translate3d(4%, -3%, 0);
	}
}

html.mv-motion-lux .mv-about-ambient__drift--1 {
	animation: mv-about-ambient-drift 16s ease-in-out infinite alternate;
}

html.mv-motion-lux .mv-about-ambient__drift--2 {
	animation: mv-about-ambient-drift 22s ease-in-out infinite alternate-reverse;
}

html.mv-motion-lux .mv-about-ambient__drift--3 {
	animation: mv-about-ambient-drift 19s ease-in-out infinite alternate;
}

body.mv-body--universe .mv-site-decor__mesh {
	opacity: 0.48;
}

body.mv-body--universe .mv-site-decor__spark {
	animation-duration: 6s !important;
}

body.mv-body--universe .mv-site-decor__orb {
	opacity: 0.65;
}

html.mv-motion-lux body.mv-body--universe .mv-site-decor__beam {
	animation-duration: 14s;
}

@keyframes mv-universe-star-twinkle {
	0%,
	100% {
		opacity: 0.12;
		transform: translate(-50%, -50%) scale(1);
	}
	50% {
		opacity: 0.42;
		transform: translate(-50%, -50%) scale(1);
	}
}

@keyframes mv-universe-moon-glow {
	0%,
	100% {
		opacity: 0.55;
		filter: drop-shadow(0 0 8px rgba(197, 155, 96, 0.35));
	}
	50% {
		opacity: 1;
		filter: drop-shadow(0 0 16px rgba(225, 190, 137, 0.65));
	}
}

@keyframes mv-universe-petal-float {
	0% {
		transform: translate(-50%, -50%) rotate(var(--pr)) translate3d(0, 0, 0);
		opacity: 0;
	}
	12% {
		opacity: 0.7;
	}
	88% {
		opacity: 0.45;
	}
	100% {
		transform: translate(-50%, -50%) rotate(calc(var(--pr) + 140deg)) translate3d(28px, -120px, 0);
		opacity: 0;
	}
}

@keyframes mv-universe-nebula-breathe {
	0%,
	100% {
		transform: scale(1) translate3d(0, 0, 0);
		opacity: 0.32;
	}
	50% {
		transform: scale(1.04) translate3d(1%, -1%, 0);
		opacity: 0.42;
	}
}

html.mv-motion-lux .mv-about-universe__star {
	animation: mv-universe-star-twinkle var(--st, 6s) ease-in-out infinite;
	animation-delay: var(--sd, 0s);
}

html.mv-motion-lux .mv-about-universe__nebula {
	animation: mv-universe-nebula-breathe 28s ease-in-out infinite alternate;
}

html.mv-motion-lux .mv-about-universe__nebula--ivory {
	animation-delay: -6s;
}

html.mv-motion-lux .mv-about-universe__nebula--deep {
	animation-delay: -11s;
}

@keyframes mv-hero-ambient-drift {
	from {
		transform: translate3d(0, 0, 0);
		opacity: 0.32;
	}
	to {
		transform: translate3d(2%, -2%, 0);
		opacity: 0.48;
	}
}

html.mv-motion-lux .mv-hero-ambient__glow--copy {
	animation: mv-hero-ambient-drift 26s ease-in-out infinite alternate;
}

html.mv-motion-lux .mv-hero-ambient__glow--media {
	animation: mv-hero-ambient-drift 32s ease-in-out infinite alternate-reverse;
}

body.mv-body--universe .mv-site-decor__veil {
	opacity: 1;
	background:
		radial-gradient(ellipse 90% 55% at 50% -10%, rgba(245, 241, 232, 0.11), transparent 58%),
		radial-gradient(ellipse 60% 40% at 100% 30%, rgba(212, 184, 138, 0.09), transparent 55%),
		radial-gradient(ellipse 50% 35% at 0% 70%, rgba(182, 154, 107, 0.08), transparent 50%);
}
