/* Fonts: Playfair Display + Inter */
:root {
	--bg-0: #0b0b12;
	--bg-1: #0f101a;
	--fg: #f6f7fb;
	--muted: #b8bdc9;
	--accent: #f0b3c8; /* soft rose */
	--accent-2: #89c2ff; /* soft blue */
	--glass: rgba(255, 255, 255, 0.06);
	--glass-border: rgba(255, 255, 255, 0.12);
	--shadow: 0 10px 40px rgba(0, 0, 0, 0.35);
}

* {
	box-sizing: border-box;
}

html,
body {
	height: 100%;
}

body {
	margin: 0;
	color: var(--fg);
	background: radial-gradient(
			1200px 700px at 20% 10%,
			rgba(255, 182, 193, 0.08),
			transparent 55%
		),
		radial-gradient(
			900px 600px at 80% 80%,
			rgba(137, 194, 255, 0.1),
			transparent 50%
		),
		linear-gradient(180deg, var(--bg-0), var(--bg-1));
	font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Helvetica,
		Arial, "Apple Color Emoji", "Segoe UI Emoji";
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

.background-gradient::before {
	content: "";
	position: fixed;
	inset: 0;
	background: radial-gradient(
			1000px 1000px at 10% -10%,
			rgba(240, 179, 200, 0.18),
			transparent 60%
		),
		radial-gradient(
			800px 600px at 100% 100%,
			rgba(137, 194, 255, 0.15),
			transparent 50%
		);
	filter: blur(40px) saturate(110%);
	pointer-events: none;
}

.container {
	min-height: 100%;
	display: grid;
	place-items: center;
	padding: 32px 16px;
}

.card {
	width: 100%;
	max-width: 680px;
	padding: 32px 28px;
	background: linear-gradient(
		180deg,
		rgba(255, 255, 255, 0.06),
		rgba(255, 255, 255, 0.03)
	);
	border: 1px solid var(--glass-border);
	border-radius: 18px;
	box-shadow: var(--shadow);
	backdrop-filter: blur(10px) saturate(120%);
}

.header h1 {
	font-family: "Playfair Display", Georgia, "Times New Roman", serif;
	font-weight: 700;
	letter-spacing: 0.2px;
	font-size: clamp(28px, 4vw, 38px);
	margin: 0 0 8px;
}

.subtitle {
	margin: 0 0 18px;
	color: var(--muted);
	font-size: clamp(16px, 2.2vw, 18px);
}

.cta {
	display: grid;
	gap: 14px;
	margin: 8px 0 10px;
}

.reveal-btn {
	appearance: none;
	border: 0;
	border-radius: 14px;
	padding: 14px 18px;
	background: linear-gradient(
		135deg,
		rgba(240, 179, 200, 0.18),
		rgba(137, 194, 255, 0.18)
	);
	border: 1px solid rgba(255, 255, 255, 0.18);
	color: var(--fg);
	font-weight: 600;
	font-size: 16px;
	cursor: pointer;
	transition: transform 0.12s ease, box-shadow 0.2s ease, background 0.3s ease;
}
.reveal-btn:hover {
	transform: translateY(-1px);
	box-shadow: 0 8px 26px rgba(240, 179, 200, 0.18),
		0 10px 30px rgba(137, 194, 255, 0.18);
}
.reveal-btn:active {
	transform: translateY(0px) scale(0.99);
}

.number {
	user-select: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	border-radius: 12px;
	border: 1px dashed rgba(255, 255, 255, 0.2);
	padding: 10px 14px;
	font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas,
		"Liberation Mono", "Courier New", monospace;
	font-size: 18px;
	letter-spacing: 0.8px;
	background: rgba(255, 255, 255, 0.04);
	white-space: nowrap;
}

.hint {
	margin: 0;
	color: var(--muted);
	font-size: 13px;
}

.footer {
	display: grid;
	justify-items: center;
	gap: 8px;
	margin-top: 24px;
}

.qr img {
	width: 128px;
	height: 128px;
	image-rendering: crisp-edges;
	border-radius: 8px;
	border: 1px solid rgba(255, 255, 255, 0.18);
	background: #fff;
}
.qr-caption {
	margin: 6px 0 0;
	color: var(--muted);
	font-size: 12px;
}

@media (min-width: 768px) {
	.card {
		padding: 40px 36px;
	}
}
