/* Сброс стандартных отступов и внутренних отступов, установка box-sizing для всех элементов */
* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

/* Определение глобальных переменных для использования в CSS */
:root {
	--index: calc(1vw + 1vh); /* Переменная для расчета размеров на основе размера окна */
	--gutter: 30px; /* Переменная для промежутков между элементами */
	--side-small: 26; /* Переменная для размера малых сторон элементов */
	--side-big: 36; /* Переменная для размера больших сторон элементов */
	--depth: 4000px; /* Переменная для установки высоты контейнера */
	--transition: .75s cubic-bezier(.075, .5, 0, 1); /* Параметры для анимации переходов */
}

/* Скрываем Scrollbar полосы прокрутки для всех браузеров*/
body {
	scrollbar-width: none; /* Firefox */
}
body::-webkit-scrollbar { 
	display: none; /* Safari and Chrome */
}

@font-face {
	font-family: masonchronicles_c;
	src: url(../fonts/masonchronicles.ttf);
	font-weight: 300;
}
@font-face {
	font-family: raleway_c;
	src: url(../fonts/raleway-cyrillic.ttf);
	font-weight: 100;
}
body {
	background-color: #000;
	color: #eeebeb;
	font-size: calc(var(--index) * .8);
	font-family: masonchronicles_c, sans-serif;
	line-height: 1.75;
	height: var(--depth);
	font-weight: 300;
}

/* Стили для контейнера, содержащего галерею */
.ow_container {
	width: 100%;
	height: 100%;
	position: fixed;
	perspective: 1500px;
}

/* Стили для галереи, включающей 3D-преобразования */
.gallery {
	transform-style: preserve-3d;
	height: 100%;
}

/* Стили для каждого отдельного кадра */
.frame {
	width: 100%;
	height: 100%;
	position: absolute;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: var(--transition), opacity .75s ease;
	will-change: transform;
	transform-style: preserve-3d;
}
h1, h2, h3, h4 {
	font-weight: 100;
	text-transform: uppercase;
	width: min-content;
	line-height: 1;
}
.frame h2 {
	text-align: center;
	font-size: calc(var(--index) * 3.3);
	text-shadow: 25px 0 35px rgba(0 0 0 / .6);
}

/* Стили для медиа-элементов в кадре */
.frame-media {
	position: relative;
	width: calc(var(--index) * var(--side-small));
	height: calc(var(--index) * var(--side-big));
	background-position: center;
	background-size: cover;
}

/* Специфические стили для медиа-элементов */
.frame-media_left {
	right: calc(var(--side-small) / 2 * var(--index) + var(--gutter));
}
.frame-media_right {
	left: calc(var(--side-small) / 2 * var(--index) + var(--gutter));
}

/* Стили для фреймов с фоном */
.frame_bg {
	background-color: rgb(0 0 0 / .87);
}

/* Стили для видео */
video.frame-media {
	width: calc(var(--index) * var(--side-big));
	height: calc(var(--index) * var(--side-small));
}
video.frame-media_right {
	left: calc(var(--side-big) / 2 * var(--index) + var(--gutter));
}
video.frame-media_left {
	right: calc(var(--side-big) / 2 * var(--index) + var(--gutter));
}

/* Стили для текста */
.text-right > * {
	position: relative;
	left: 18vw;
}
.text-left > * {
	position: relative;
	right: 18vw;
}
.frame h3 {
	font-size: calc(var(--index) * 3);
}

/* Стили для абзацев внутри кадра */
.frame p {
	max-width: 30vw;
	margin-top: 3vh;
	font-family: raleway_c;
}

/* Стили для кнопки звука */
.soundbutton {
	position: fixed; /*Фиксированное положение при скролле */
	bottom: 5vh; /* Отступ снизу */
	right: 5vw; /* Отступ снизу размещаем кнопку с правой стороны */
	cursor: pointer; /* Курсор в виде руки при наведении */
	width: 44px; /* Ширина кнопки */
	transition: .25s ease; /* Плавное переключение анимации */
}

/* Стили для кнопки звука в состоянии паузы */
.soundbutton.paused {
	opacity: .25; /* Полупрозрачность кнопки при паузе*/
}
