.nbb-opening-overlay {
	position: fixed;
	z-index: 999999;
	inset: 0;
	display: grid;
	place-items: center;
	align-content: center;
	overflow: hidden;
	padding: 20px;
	background: radial-gradient(circle at 50% 48%, rgba(77, 52, 8, .3), rgba(0, 0, 0, .94) 64%);
	isolation: isolate;
}
.nbb-opening-overlay[hidden] { display: none !important; }
.nbb-opening-overlay img {
	position: relative;
	z-index: 2;
	grid-area: 1 / 1;
	width: min(760px, 92vw);
	max-height: 78vh;
	object-fit: contain;
	filter: drop-shadow(0 28px 40px rgba(0, 0, 0, .45));
	opacity: 0;
	transform: scale(.38) translateY(80px);
}
.nbb-opening-overlay .nbb-opening-closed {
	width: min(590px, 82vw);
	opacity: 1;
	transform: scale(1);
}
.nbb-opening-overlay p {
	position: relative;
	z-index: 3;
	margin: -18px 0 0;
	color: #ffe39b;
	font-size: clamp(12px, 2vw, 18px);
	font-weight: 700;
	letter-spacing: .13em;
	text-align: center;
	text-transform: uppercase;
	opacity: 0;
}
.nbb-opening-rays {
	position: absolute;
	z-index: 1;
	width: min(900px, 120vw);
	aspect-ratio: 1;
	border-radius: 50%;
	background: repeating-conic-gradient(from 0deg, rgba(255, 207, 62, .48) 0deg 5deg, transparent 5deg 13deg);
	filter: blur(2px);
	opacity: 0;
}
.nbb-opening-active .nbb-opening-rays { animation: nbb-rays 2.8s ease-out both; }
.nbb-opening-active .nbb-opening-closed { animation: nbb-box-close-away 2.8s ease both; }
.nbb-opening-active .nbb-opening-open { animation: nbb-box-open 2.8s cubic-bezier(.16, .72, .23, 1) both; }
.nbb-opening-active p { animation: nbb-opening-copy 2.8s ease both; }
.nbb-dual-vouchers {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
	max-width: 760px;
	margin: 30px auto 22px;
}
.nbb-metal-voucher {
	position: relative;
	overflow: hidden;
	padding: 28px 22px;
	border-radius: 22px;
	text-align: center;
	box-shadow: 0 18px 45px rgba(25, 35, 48, .18);
}
.nbb-metal-voucher::before {
	content: "";
	position: absolute;
	inset: -90% -35%;
	background: linear-gradient(100deg, transparent 40%, rgba(255, 255, 255, .55) 50%, transparent 60%);
	transform: rotate(12deg);
	animation: nbb-voucher-shine 4s linear infinite;
}
.nbb-metal-voucher > * { position: relative; z-index: 1; }
.nbb-metal-voucher-gold {
	border: 1px solid #f0d06a;
	background: linear-gradient(145deg, #fff5b7, #c89725 62%, #815610);
	color: #2f2104;
}
.nbb-metal-voucher-silver {
	border: 1px solid #eef3f7;
	background: linear-gradient(145deg, #fff, #c3cbd4 62%, #788590);
	color: #142334;
}
.nbb-metal-voucher > span { display: block; font-size: .72rem; font-weight: 900; letter-spacing: .18em; }
.nbb-metal-voucher > strong { display: block; margin: 9px 0 0; font: 500 clamp(3.4rem, 8vw, 6rem)/.9 Georgia, serif; }
.nbb-metal-voucher > em { display: block; margin-top: 5px; font: 600 1.3rem Georgia, serif; letter-spacing: .12em; }
.nbb-metal-voucher > p { margin: 13px 0 !important; color: inherit !important; font-size: .84rem !important; }
.nbb-metal-voucher .nbb-code { margin-top: 16px; background: rgba(255, 255, 255, .7); }
.nbb-card-validity {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
	margin: 12px auto 0;
	padding: 9px;
	border: 1px solid rgba(255, 255, 255, .75);
	border-radius: 7px;
	background: rgba(255, 255, 255, .58);
	font-size: .74rem;
	font-variant-numeric: tabular-nums;
}
.nbb-card-validity b { min-width: 68px; letter-spacing: .04em; }
.nbb-card-validity.nbb-expired { border-color: #b66565; background: #fff0f0; color: #7d2626; }
@keyframes nbb-rays {
	0% { opacity: 0; transform: scale(.2) rotate(0); }
	35% { opacity: .75; }
	100% { opacity: .12; transform: scale(1.35) rotate(38deg); }
}
@keyframes nbb-box-open {
	0%, 20% { opacity: 0; transform: scale(.38) translateY(80px); }
	28% { opacity: 1; transform: scale(1.08) translateY(-8px); }
	45% { transform: scale(.96) translateY(0); }
	70%, 100% { opacity: 1; transform: scale(1) translateY(0); }
}
@keyframes nbb-box-close-away {
	0%, 14% { opacity: 1; transform: scale(.92); }
	22% { opacity: 1; transform: scale(1.04) rotate(-2deg); }
	30%, 100% { opacity: 0; transform: scale(.45) translateY(70px); }
}
@keyframes nbb-opening-copy {
	0%, 38% { opacity: 0; transform: translateY(10px); }
	55%, 90% { opacity: 1; transform: none; }
	100% { opacity: 0; }
}
@keyframes nbb-voucher-shine {
	0% { transform: translateX(-90%) rotate(12deg); }
	100% { transform: translateX(140%) rotate(12deg); }
}
@media (max-width: 720px) {
	.nbb-dual-vouchers { grid-template-columns: 1fr; max-width: 440px; }
}
@media (prefers-reduced-motion: reduce) {
	.nbb-opening-active .nbb-opening-rays,
	.nbb-opening-active img,
	.nbb-opening-active p,
	.nbb-metal-voucher::before { animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
	.nbb-opening-overlay img,
	.nbb-opening-overlay p { opacity: 1; transform: none; }
}
