:root {
	color-scheme: light;
	--page-bg: #f5f5f7;
	--card-bg: rgba(255, 255, 255, 0.9);
	--text: #1d1d1f;
	--hairline: rgba(0, 0, 0, 0.13);
	--link: #0071e3;
	--link-bg: rgba(0, 113, 227, 0.09);
	--link-bg-hover: rgba(0, 113, 227, 0.14);
	--shadow: 0 20px 64px rgba(0, 0, 0, 0.1), 0 2px 10px rgba(0, 0, 0, 0.05);
	--radius-card: 32px;
	--radius-image: 26px;
}

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

html {
	height: 100%;
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
}

body {
	min-height: 100%;
	margin: 0;
	font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	font-size: 16px;
	line-height: 1.45;
	color: var(--text);
	background:
		radial-gradient(circle at 50% -10%, rgba(255, 255, 255, 0.96), rgba(245, 245, 247, 0.22) 40%, transparent 64%),
		var(--page-bg);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

.page-shell {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 100vh;
	padding: max(24px, env(safe-area-inset-top)) max(18px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(18px, env(safe-area-inset-left));
}

@supports (min-height: 100svh) {
	.page-shell {
		min-height: 100svh;
	}
}

@supports (min-height: 100dvh) {
	.page-shell {
		min-height: 100dvh;
	}
}

.card {
	width: min(100%, 680px);
	padding: clamp(28px, 5vw, 52px);
	text-align: center;
	background: var(--card-bg);
	border: 1px solid rgba(255, 255, 255, 0.78);
	border-radius: var(--radius-card);
	box-shadow: var(--shadow);
	backdrop-filter: saturate(180%) blur(22px);
	-webkit-backdrop-filter: saturate(180%) blur(22px);
}

.message {
	max-width: 560px;
	margin: 0 auto;
}

.message-line {
	margin: 0;
	letter-spacing: -0.018em;
}

.message-line.primary {
	font-size: clamp(1.05rem, 1rem + 0.45vw, 1.34rem);
	font-weight: 600;
}

.message-line.secondary {
	margin-top: 0.55rem;
	font-size: clamp(1rem, 0.96rem + 0.32vw, 1.22rem);
	font-weight: 500;
}

.divider {
	width: min(100%, 520px);
	height: 1px;
	margin: clamp(20px, 4vw, 30px) auto;
	background: linear-gradient(90deg, transparent, var(--hairline) 15%, var(--hairline) 85%, transparent);
}

.countdown {
	display: inline-grid;
	place-items: center;
	min-width: 48px;
	margin: clamp(20px, 4vw, 30px) auto clamp(18px, 3.5vw, 28px);
	padding: 0.42rem 0.72rem;
	border-radius: 999px;
	background: rgba(0, 0, 0, 0.045);
	color: var(--text);
}

.countdown-number {
	font-size: clamp(1.45rem, 1.22rem + 1vw, 2rem);
	font-weight: 600;
	line-height: 1;
	letter-spacing: -0.04em;
	font-variant-numeric: tabular-nums;
}

.image-frame {
	width: min(58vw, 280px);
	min-width: 210px;
	margin: 0 auto clamp(24px, 4.8vw, 38px);
	padding: clamp(6px, 1vw, 8px);
	border-radius: calc(var(--radius-image) + 8px);
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.78), rgba(255, 255, 255, 0.34));
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7), 0 10px 28px rgba(0, 0, 0, 0.08);
}

.logo {
	display: block;
	width: 100%;
	height: auto;
	border-radius: var(--radius-image);
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
}

.site-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 42px;
	padding: 0.65rem 1.05rem;
	border-radius: 999px;
	font-size: clamp(1rem, 0.96rem + 0.24vw, 1.15rem);
	font-weight: 600;
	line-height: 1.1;
	letter-spacing: -0.018em;
	color: var(--link);
	background: var(--link-bg);
	text-decoration: none;
	transition: background-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.site-link:focus-visible {
	outline: 3px solid rgba(0, 113, 227, 0.34);
	outline-offset: 3px;
}

@media (hover: hover) and (pointer: fine) {
	.site-link:hover {
		background: var(--link-bg-hover);
		box-shadow: 0 6px 18px rgba(0, 113, 227, 0.14);
		transform: translateY(-1px);
	}
}

@media (max-width: 480px) {
	.page-shell {
		padding-block: max(18px, env(safe-area-inset-top)) max(18px, env(safe-area-inset-bottom));
	}

	.card {
		padding: 26px 20px;
		border-radius: 28px;
	}

	.image-frame {
		width: min(68vw, 250px);
		min-width: 190px;
	}
}

@media (max-height: 720px) {
	.page-shell {
		padding-block: max(14px, env(safe-area-inset-top)) max(14px, env(safe-area-inset-bottom));
	}

	.card {
		padding-block: 22px;
	}

	.divider {
		margin-block: 15px;
	}

	.countdown {
		margin-block: 14px;
	}

	.image-frame {
		width: min(46vw, 220px);
		margin-bottom: 18px;
	}
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
	}
}
