.atypb-template {
	align-items: center;
	background:
		radial-gradient(circle at top left, color-mix(in srgb, var(--atypb-primary) 22%, transparent), transparent 34%),
		linear-gradient(135deg, var(--atypb-bg), #ffffff);
	background-position: center;
	background-size: cover;
	color: var(--atypb-text);
	display: flex;
	font-family: var(--atypb-font-family);
	font-size: var(--atypb-font-size);
	font-weight: var(--atypb-font-weight);
	justify-content: center;
	margin: var(--atypb-margin) auto;
	min-height: min(780px, 94vh);
	overflow: hidden;
	padding: var(--atypb-padding);
	position: relative;
	text-align: var(--atypb-align);
}

.atypb-template *,
.atypb-template *::before,
.atypb-template *::after {
	box-sizing: border-box;
}

.atypb-template::before,
.atypb-template::after {
	background: color-mix(in srgb, var(--atypb-primary) 14%, transparent);
	border-radius: 999px;
	content: "";
	filter: blur(2px);
	height: 220px;
	position: absolute;
	width: 220px;
}

.atypb-template::before {
	right: -80px;
	top: 10%;
}

.atypb-template::after {
	bottom: -90px;
	left: -60px;
}

.atypb-template .atypb-card {
	background: rgba(255, 255, 255, 0.94);
	border: 1px solid rgba(255, 255, 255, 0.72);
	border-radius: var(--atypb-radius);
	box-shadow: 0 30px 100px rgba(15, 23, 42, 0.18);
	max-width: min(100%, var(--atypb-width));
	overflow: hidden;
	padding: clamp(32px, 6vw, 78px);
	position: relative;
	width: 100%;
	z-index: 1;
}

.atypb-template h1 {
	color: var(--atypb-text);
	font-size: clamp(42px, 8vw, 96px);
	font-weight: 900;
	letter-spacing: 0;
	line-height: 0.95;
	margin: 0 0 18px;
}

.atypb-subtitle {
	color: var(--atypb-primary);
	font-size: clamp(20px, 3vw, 32px);
	font-weight: 800;
	line-height: 1.25;
	margin: 0 0 18px;
}

.atypb-message {
	line-height: 1.75;
	margin: 0 auto 32px;
	max-width: 700px;
}

.atypb-message p {
	margin: 0 0 12px;
}

.atypb-button {
	background: var(--atypb-button-bg);
	border-radius: calc(var(--atypb-radius) * 0.75);
	box-shadow: 0 14px 34px color-mix(in srgb, var(--atypb-button-bg) 32%, transparent);
	color: #fff;
	display: inline-flex;
	font-weight: 800;
	justify-content: center;
	line-height: 1;
	padding: 17px 30px;
	text-decoration: none;
	transition: background 160ms ease, transform 160ms ease, box-shadow 160ms ease;
}

.atypb-button:hover,
.atypb-button:focus {
	background: var(--atypb-button-hover);
	box-shadow: 0 18px 42px rgba(15, 23, 42, 0.22);
	color: #fff;
	transform: translateY(-2px);
}

.atypb-logo {
	display: block;
	height: auto;
	margin: 0 auto 26px;
	max-height: 82px;
	max-width: 220px;
}

.atypb-template footer {
	border-top: 1px solid rgba(15, 23, 42, 0.1);
	font-size: 14px;
	margin-top: 34px;
	padding-top: 20px;
}

.atypb-kicker {
	background: color-mix(in srgb, var(--atypb-primary) 12%, white);
	border: 1px solid color-mix(in srgb, var(--atypb-primary) 18%, transparent);
	border-radius: 999px;
	color: var(--atypb-primary);
	display: inline-block;
	font-size: 12px;
	font-weight: 900;
	letter-spacing: 0.14em;
	margin-bottom: 18px;
	padding: 9px 15px;
	text-transform: uppercase;
}

.atypb-check-wrap {
	align-items: center;
	background: color-mix(in srgb, var(--atypb-primary) 12%, white);
	border-radius: 999px;
	display: inline-flex;
	height: 96px;
	justify-content: center;
	margin-bottom: 22px;
	width: 96px;
}

.atypb-check {
	align-items: center;
	background: var(--atypb-primary);
	border-radius: 999px;
	box-shadow: 0 18px 46px color-mix(in srgb, var(--atypb-primary) 36%, transparent);
	color: #fff;
	display: inline-flex;
	font-size: 42px;
	font-weight: 900;
	height: 72px;
	justify-content: center;
	width: 72px;
}

.atypb-elegant {
	background:
		linear-gradient(115deg, color-mix(in srgb, var(--atypb-primary) 18%, #ffffff), #ffffff 48%, var(--atypb-bg));
}

.atypb-elegant .atypb-card {
	border: 1px solid color-mix(in srgb, var(--atypb-primary) 18%, transparent);
	box-shadow: 0 34px 90px rgba(76, 29, 149, 0.16);
}

.atypb-elegant .atypb-card::before {
	background: linear-gradient(90deg, transparent, var(--atypb-primary), transparent);
	content: "";
	height: 4px;
	left: 10%;
	position: absolute;
	right: 10%;
	top: 0;
}

.atypb-celebration {
	background:
		radial-gradient(circle at 20% 20%, #fff 0 2px, transparent 3px),
		radial-gradient(circle at 70% 30%, color-mix(in srgb, var(--atypb-primary) 80%, #fff) 0 3px, transparent 4px),
		linear-gradient(135deg, var(--atypb-bg), #fff);
	background-size: 44px 44px, 64px 64px, cover;
}

.atypb-confetti {
	background:
		linear-gradient(90deg, var(--atypb-primary) 0 10px, transparent 10px 20px),
		linear-gradient(90deg, #22c55e 0 8px, transparent 8px 18px),
		linear-gradient(90deg, #f59e0b 0 7px, transparent 7px 16px);
	height: 100%;
	inset: 0;
	opacity: 0.18;
	position: absolute;
	transform: rotate(-8deg);
}

.atypb-glass {
	background:
		radial-gradient(circle at 25% 20%, color-mix(in srgb, var(--atypb-primary) 36%, transparent), transparent 28%),
		radial-gradient(circle at 75% 80%, rgba(14, 165, 233, 0.25), transparent 30%),
		linear-gradient(135deg, #f8fafc, var(--atypb-bg));
}

.atypb-glass .atypb-card {
	backdrop-filter: blur(18px);
	background: rgba(255, 255, 255, 0.72);
	border: 1px solid rgba(255, 255, 255, 0.82);
}

.atypb-bold {
	background: linear-gradient(135deg, var(--atypb-primary), color-mix(in srgb, var(--atypb-primary) 62%, #111827));
}

.atypb-bold .atypb-card {
	background: #fff;
	border-radius: min(var(--atypb-radius), 28px);
	box-shadow: 16px 16px 0 rgba(15, 23, 42, 0.24), 0 32px 70px rgba(15, 23, 42, 0.22);
}

.atypb-bold h1 {
	color: var(--atypb-primary);
	text-transform: uppercase;
}

@media (max-width: 700px) {
	.atypb-template {
		min-height: auto;
		padding: 24px;
	}

	.atypb-template .atypb-card {
		padding: 30px 22px;
	}

	.atypb-check-wrap {
		height: 76px;
		width: 76px;
	}

	.atypb-check {
		font-size: 32px;
		height: 56px;
		width: 56px;
	}
}
