@font-face {
	font-family: 'Perpetua MT Pro';
	font-weight: 400;
	font-style: normal;
	src: url('../fonts/perpetua-mt-pro-regular.woff2') format('woff2');
	font-display: swap;
}

@font-face {
	font-family: 'Perpetua MT Pro';
	font-weight: 700;
	font-style: normal;
	src: url('../fonts/perpetua-mt-pro-bold.woff2') format('woff2');
	font-display: swap;
}

:root {
	--c-pink: #f950ad;
	--c-green: #b7bf10;
	--c-blue: #418fde;
	--c-black: #030402;
	--s-max-width: clamp(calc(36px * 2 + 1640px), calc((36px + (104 * ((100vw - 320px) / 1600))) * 2 + 1640px), calc(140px * 2 + 1640px));
	--s-large: clamp(60px, calc(60px + (85 * ((100vw - 320px) / 1600))), 145px);
}

html {
	position: relative;
	font-size: 16px;
}

body {
	box-sizing: border-box;
	position: relative;
	height: 100vh;
	padding: 10vmin;
	margin: 0;
	font-family: 'Perpetua MT Pro', Perpetua, Baskerville, 'Big Caslon', 'Palatino Linotype', Palatino, serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';
	font-size: 100%;
	font-weight: 400;
	line-height: 1.5;
	color: #fff;
	background: var(--c-black);
	-webkit-font-smoothing: antialiased;
}

.v-unsupported-browser {
	display: none;
	padding: 10px 0;
	font-size: 1.25rem;
	font-weight: 700;
	color: #fff;
	text-align: center;
	text-decoration: none;
	background: #418fde;
}

.v-unsupported-browser__link {
	color: inherit;
	text-decoration: underline;
}

.v-unsupported-browser__link:hover {
	text-decoration: none;
}

.v-hero {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	width: 100%;
	margin: var(--s-large) auto;
	/* height: 100%; */
	text-align: center;
}

.v-hero__title {
	width: 100%;
	max-width: 5em;
	margin: 0 0 clamp(32px, calc(1.52777778vw + 28px), 50px);
	font-size: clamp(4.0625rem, calc(7.5vw + 32px), 9.375rem);
	font-weight: 400;
	line-height: 1;
	letter-spacing: -.01333333em;
}

.v-hero__title-words {
	display: inline-grid;
	grid-template-columns: 1fr;
	grid-template-rows: 1fr;
	text-align: right;
}

.v-hero__title-word {
	grid-column: 1;
	grid-row: 1;
	opacity: 0;
	pointer-events: none;
}

.v-hero__title-word--active {
	opacity: 1;
	pointer-events: all;
}

.v-hero__title-word--blue {
	color: var(--c-blue);
}

.v-hero__title-word--green {
	color: var(--c-green);
}

.v-hero__title-word--pink {
	color: var(--c-pink);
}

.v-hero__divider {
	display: flex;
	gap: clamp(6px, calc(.34722222vw + 4px), 9px);
	width: 100%;
	max-width: clamp(244px, calc(28.75vw + 150px), 564px);
}

.v-hero__bar {
	flex: 1 1 1px;
	height: clamp(5px, calc(.27777778vw + 5px), 9px);
}

.v-hero__bar--blue {
	background: var(--c-blue);
}

.v-hero__bar--green {
	background: var(--c-green);
}

.v-hero__bar--pink {
	background: var(--c-pink);
}

.v-hero__details {
	width: 100%;
	margin: clamp(45px, calc(1.31944444vw + 41px), 60px) 0 0;
	font-size: clamp(1.75rem, calc(1.25vw + 24px), 2.625rem);
	line-height: 1.2;
}

.v-event-stream {
	padding: 0 0 var(--s-large);
	margin: 0;
}

.v-event-stream__container {
	width: 100%;
	max-width: 1630px;
	margin: var(--s-large) auto auto;
	padding-bottom: var(--s-large);
}

.v-event-stream__inner {
	padding-top: calc(var(--s-large) * .35);
}

.v-event-stream__frame-wrap {
	padding: 1rem;
	position: relative;
}

.v-event-stream__bg {
	position: absolute;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: clamp(6px, calc(.34722222vw + 4px), 9px);
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 1;
}

.v-event-stream__bg-square:nth-child(-n + 3) {
	border-top: 3px solid #fff;;
}

.v-event-stream__bg-square:nth-child(3n) {
	border-right: 3px solid #fff;;
}

.v-event-stream__bg-square:nth-child(n + 7) {
	border-bottom: 3px solid #fff;;
}

.v-event-stream__bg-square:nth-child(3n + 1) {
	border-left: 3px solid #fff;
}

.v-event-stream__frame-wrap::after {
	content: '';
	display: block;
	width: 100%;
	height: 100%;
	padding-bottom: 56.25%;
}

.v-event-stream__frame {
	position: absolute;
	top: 1rem;
	left: 1rem;
	width: calc(100% - 2rem);
	height: calc(100% - 2rem);
	z-index: 2;
}

@media screen and (max-width: 767px) {
	.v-hero__details {
		max-width: 7em;
	}

	.v-hero__details--long {
		max-width: calc(100% - 2em);
	}
}

@media screen and (max-width: 550px) {
	.v-event-stream {
		margin: 0 -5vmin;
	}
}