.mp-open {
	position: fixed;
	inset: 0;
	z-index: 9999;
	background: var(--lead);
	overflow: hidden;
	animation: mp-release 0s linear 18s forwards;
}
@keyframes mp-release { to { opacity: 0; visibility: hidden; pointer-events: none; } }

.mp-seen {
	position: absolute; inset: 0; z-index: 4;
	display: grid; place-items: center;
	padding: 0 clamp(18px, 6vw, 80px);
	text-align: center;
	animation: mp-hold 5.6s ease forwards;
}
@keyframes mp-hold {
	0%, 82% { opacity: 1; visibility: visible; }
	100%    { opacity: 0; visibility: hidden; }
}

.mp-seen p {
	margin: 0;
	max-width: 30ch;
	font-family: var(--font-head);
	font-weight: 500;
	text-transform: uppercase;
	font-size: clamp(31px, 3.4vw, 56px);
	line-height: 1.2;
	letter-spacing: .026em;
	color: rgba(255,255,255,.9);
	opacity: 0;
	animation: mp-fade 1.6s ease .45s forwards;
}
.mp-seen p .t {
	display: block;
	color: #FFFFFF;
	font-family: var(--font-script);
	font-style: normal;
	text-transform: none;
	font-size: 2.9em;
	line-height: 1;
	letter-spacing: .012em;
	-webkit-text-stroke: .022em #FFFFFF;
	margin: .14em 0 .16em;
	padding: 0;
}
@keyframes mp-fade { to { opacity: 1; } }
@keyframes mp-lift {
	from { opacity: 0; transform: translate3d(0, 12px, 0); }
	to   { opacity: 1; transform: translate3d(0, 0, 0); }
}

.mp-open__shot { position: absolute; inset: 0; overflow: hidden; }
.mp-open__shot img {
	width: 100%; height: 100%;
	object-fit: cover;
	opacity: 0;
	animation: mp-fade 2.4s ease 4.4s forwards;
}
.mp-open__veil {
	position: absolute; inset: 0;
	background: rgba(255,30,140,.5);
	opacity: 0;
	animation: mp-fade 2.4s ease 4.4s forwards;
}

.mp-open__in {
	position: absolute; inset: 0; z-index: 3;
	display: grid; place-items: center;
	padding: clamp(24px, 5vw, 90px);
	text-align: center;
	pointer-events: none;
}
@media (max-width: 620px) {
	.mp-open__in {
		align-content: center;
		padding: 9vh 10px 12vh;
	}
}
.mp-open__line {
	margin: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0;
}
.mp-open__caps {
	display: block;
	font-family: var(--font-head);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .015em;
	line-height: .94;
	color: #FFFFFF;
	font-size: clamp(31px, 6.4vw, 112px);
	margin: 0;
	opacity: 0;
	will-change: opacity, transform;
	animation: mp-lift 1.9s cubic-bezier(.22,.61,.36,1) 4.9s forwards;
	text-shadow: 0 2px 24px rgba(120,0,50,.3);
}
.mp-open__cackle {
	display: block;
	font-family: var(--font-script);
	color: #FFFFFF;
	position: relative;
	font-size: min(18.4vw, 400px);
	line-height: .86;
	margin: 0;
	padding: .2em 0 .02em;
	white-space: nowrap;
	opacity: 0;
	will-change: opacity, transform;
	animation: mp-lift 2.2s cubic-bezier(.22,.61,.36,1) 5.7s forwards;
	text-shadow:
		.014em .02em 0 rgba(133,0,64,.92),
		.03em .042em 0 rgba(133,0,64,.6),
		.046em .064em 0 rgba(92,0,41,.34),
		0 .06em .55em rgba(70,0,32,.5);
}
.mp-open__caps--b { animation-delay: 7.7s; margin: 0; }

.mp-open__after {
	display: block;
	
	margin: clamp(72px, 8vw, 132px) auto 0;
	max-width: none;
	font-family: var(--font-line);
	font-weight: 400;
	font-style: italic;
	letter-spacing: .022em;
	line-height: 1.42;
	font-size: clamp(25px, 3.6vw, 62px);
	-webkit-text-stroke: 0;
	color: #FFFFFF;
	text-shadow: 0 2px 30px rgba(120,0,50,.42);
	opacity: 0;
	will-change: opacity, transform;
	animation: mp-lift 2.2s cubic-bezier(.22,.61,.36,1) 8.1s forwards;
}

@media (min-width: 1100px) {
	.mp-open__after { white-space: nowrap; }
}

.mp-open__go {
	position: absolute;
	left: 0; right: 0; bottom: clamp(24px, 4vh, 52px);
	z-index: 6;
	text-align: center;
	background: none; border: 0; cursor: pointer;
	font-family: var(--font-head); font-weight: 600; text-transform: uppercase;
	font-size: clamp(12px, 1vw, 14px); letter-spacing: .3em;
	color: rgba(255,255,255,.72);
	opacity: 0;
	animation: mp-fade .9s ease 1.4s forwards;
}
.mp-open__go:hover { color: #fff; }

.mp-open {
	will-change: transform;
}

.mp-open.is-gone {
	transform: translate3d(0, -100%, 0);
	transition: transform 1.5s cubic-bezier(.62, .02, .28, 1);
}

body.mp-lifting #mp-main,
body.mp-lifting .mp-nav {
	animation: mp-riseup 1.5s cubic-bezier(.62, .02, .28, 1) both;
}
@keyframes mp-riseup {
	from { transform: translate3d(0, 46px, 0); opacity: .35; }
	to   { transform: translate3d(0, 0, 0);   opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
	.mp-open.is-gone { transition: none; }
	body.mp-lifting #mp-main, body.mp-lifting .mp-nav { animation: none; }
}
body.mp-shut { overflow: hidden; }

body.mp-shut #mp-main, body.mp-shut .mp-nav,
body.mp-lifting #mp-main, body.mp-lifting .mp-nav,
body.mp-holding #mp-main, body.mp-holding .mp-nav {
	pointer-events: none;
}

@media (prefers-reduced-motion: reduce) {
	
	body.mp-holding #mp-main, body.mp-holding .mp-nav { pointer-events: auto; }

	.mp-open { display: none; }
	.mp-third { position: relative; inset: auto; z-index: 1; }
	.mp-third img { height: 74svh; }
}

@media (max-width: 620px) {
	.mp-open__caps  { font-size: 50px; line-height: .9; }
	.mp-open__after { font-size: 25px; margin-top: 46px; }
}
