:root {
	--bg: #ffffff;
	--text: #1a1a1a;
	--muted: #6b7280;
	--border: rgba(0, 0, 0, 0.08);
	--surface: rgba(0, 0, 0, 0.03);
	--surface-hover: rgba(0, 0, 0, 0.06);
	--radius: 999px;
}

* {
	box-sizing: border-box;
}

html,
body {
	height: 100%;
}

body {
	margin: 0;
	background: var(--bg);
	color: var(--text);
	font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "PingFang SC",
		"Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC", "Noto Sans SC", Arial, sans-serif;
	line-height: 1.6;
}

.page {
	max-width: 600px;
	margin: 0 auto;
	padding: 88px 20px 64px;
	display: flex;
	flex-direction: column;
	gap: 64px;
}

.hero {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.title {
	margin: 0;
	font-size: 22px;
	font-weight: 700;
	letter-spacing: 0.2px;
}

.subtitle {
	margin: 0;
	font-size: 13px;
	color: var(--muted);
}

.content {
	display: flex;
	flex-direction: column;
	gap: 28px;
}

.greeting {
	margin: 0;
	font-size: 1.5em;
	font-weight: 700;
	position: relative;
	height: 4em;
	display: flex;
	align-items: center;
}

.greeting__stack {
	position: relative;
	display: inline-block;
	white-space: nowrap;
}

.greeting__layer {
	position: absolute;
	left: 0;
	top: 0;
	display: inline-flex;
	white-space: nowrap;
	pointer-events: none;
	visibility: hidden;
}

.greeting__layer--out {
	position: absolute;
}

.greeting__layer--in {
	position: relative;
	visibility: visible;
}

.greeting__char {
	display: inline-block;
	will-change: transform, opacity, filter;
	transition: transform 800ms cubic-bezier(0.23, 1, 0.32, 1),
		opacity 800ms cubic-bezier(0.23, 1, 0.32, 1),
		filter 800ms cubic-bezier(0.23, 1, 0.32, 1);
}

.greeting__layer--in .greeting__char {
	opacity: 0;
	filter: blur(12px);
	transform: translateY(-10px) scale(0.9);
}

.greeting__layer--in:not(.is-active) .greeting__char {
	opacity: 1;
	filter: blur(0);
	transform: translateY(0) scale(1.1);
}

.greeting__layer--out .greeting__char {
	opacity: 1;
	filter: blur(0);
	transform: translateY(0) scale(1.1);
}

.greeting__layer--in.is-active .greeting__char {
	opacity: 1;
	filter: blur(0);
	transform: translateY(0) scale(1.1);
}

.greeting__layer--out.is-active .greeting__char {
	transform: translateY(-10px) scale(0.9);
	opacity: 0;
	filter: blur(12px);
}

@media (prefers-reduced-motion: reduce) {
	.greeting__char {
		transition: none !important;
		filter: none !important;
		transform: none !important;
		opacity: 1 !important;
	}
}


.prose {
	color: rgba(0, 0, 0, 0.72);
	font-size: 14px;
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.prose p {
	margin: 0;
}

.prose em {
	font-style: italic;
}

.prose sup {
	font-size: 0.8em;
	vertical-align: super;
}

.actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 10px 16px;
	border: 1px solid var(--border);
	border-radius: var(--radius);
	background: var(--surface);
	color: rgba(0, 0, 0, 0.75);
	text-decoration: none;
	font-size: 13px;
	transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease,
		transform 160ms ease;
}

.btn:hover {
	background: var(--surface-hover);
	border-color: rgba(0, 0, 0, 0.12);
	color: rgba(0, 0, 0, 0.92);
	transform: translateY(-1px);
}

.btn:active {
	transform: translateY(0);
}
