/* Появление при прокрутке. Настройки приезжают переменными на корне блока, вид эффекта —
   атрибутом data-mwc-reveal; см. includes/reveal.php.

   Начальное состояние навешивает не разметка, а класс mwc-reveal, который ставит скрипт.
   Поэтому без JavaScript (и в редакторе Elementor, где атрибуты не выводятся вовсе)
   содержимое просто видно — никогда не бывает так, что страница осталась пустой. */

.mwc-reveal .mwc-rv {
	opacity: 0;
	transition:
		opacity var(--mwc-rv-dur, 900ms) var(--mwc-rv-ease, cubic-bezier(.2, .7, .2, 1)),
		transform var(--mwc-rv-dur, 900ms) var(--mwc-rv-ease, cubic-bezier(.2, .7, .2, 1));
	/* --i задаёт очередь. Его расставляет либо разметка блока (место в ряду — иначе
	   у сотой карточки задержка ушла бы в минуты), либо скрипт, если разметка молчит. */
	transition-delay: calc(var(--mwc-rv-delay, 0ms) + var(--i, 0) * var(--mwc-rv-step, 110ms));
	will-change: opacity, transform;
}

.mwc-reveal[data-mwc-reveal="up"] .mwc-rv {
	transform: translate3d(0, var(--mwc-rv-dist, 26px), 0);
}
.mwc-reveal[data-mwc-reveal="down"] .mwc-rv {
	transform: translate3d(0, calc(-1 * var(--mwc-rv-dist, 26px)), 0);
}
.mwc-reveal[data-mwc-reveal="left"] .mwc-rv {
	transform: translate3d(calc(-1 * var(--mwc-rv-dist, 26px)), 0, 0);
}
.mwc-reveal[data-mwc-reveal="right"] .mwc-rv {
	transform: translate3d(var(--mwc-rv-dist, 26px), 0, 0);
}
.mwc-reveal[data-mwc-reveal="zoom"] .mwc-rv {
	transform: scale(.94);
}
/* «Только проявление» — трансформации нет вообще: у элемента с фоном-картинкой
   сдвиг на дробный пиксель даёт заметное подрагивание. */
.mwc-reveal[data-mwc-reveal="fade"] .mwc-rv {
	transform: none;
}

/* Специфичность та же, что у правил эффекта (0,3,0), но правило ниже — оно и побеждает.
   Так обходимся без !important, который потом нечем перебить в самом блоке. */
.mwc-reveal .mwc-rv.is-in {
	opacity: 1;
	transform: none;
}

/* Показались — освобождаем композитор: will-change на десятках карточек держит слои
   и заметно жрёт память на слабых машинах. */
.mwc-reveal .mwc-rv.is-in {
	will-change: auto;
}

/* Просили меньше движения — отдаём содержимое сразу и целиком. Правило (0,3,0) стоит
   последним, поэтому перебивает и начальное состояние, и эффекты. */
@media (prefers-reduced-motion: reduce) {
	.mwc-reveal[data-mwc-reveal] .mwc-rv {
		opacity: 1;
		transform: none;
		transition: none;
		transition-delay: 0s;
		will-change: auto;
	}
}
