.modal {
	position: fixed;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	pointer-events: none;
}

.modal .backdrop {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.5);
	opacity: 0;
	transition: opacity 300ms ease;
}

.modal .content {
	position: relative;
	background: white;
	padding: 1rem;
	border-radius: 8px;
	opacity: 0;
	transform: scale(0.95);
	transition: opacity 300ms ease, transform 300ms ease;
}

.modal.show {
	pointer-events: auto;
}

.modal.show .backdrop,
.modal.show .content {
	opacity: 1;
}

.modal.show .content {
	transform: scale(1);
}

.modal.hidden .backdrop,
.modal.hidden .content {
	opacity: 0;
	pointer-events: none;
}