:root {
	--sm-ink: #14241c;
	--sm-ink-soft: rgba(20, 36, 28, 0.72);
	--sm-paper: #dfece6;
	--sm-teal: #0d9488;
	--sm-gold: #e0a106;
	--sm-white: #f5faf7;
	--sm-display: "Fraunces", Georgia, serif;
	--sm-sans: "Manrope", "Segoe UI", sans-serif;
}

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

html,
body {
	margin: 0;
	min-height: 100%;
}

body.sm-soon {
	min-height: 100vh;
	min-height: 100dvh;
	color: var(--sm-ink);
	font-family: var(--sm-sans);
	background: var(--sm-paper);
	overflow-x: hidden;
	position: relative;
}

.sm-soon__sky {
	position: fixed;
	inset: 0;
	z-index: 0;
	background:
		radial-gradient(120% 80% at 12% 18%, rgba(224, 161, 6, 0.28), transparent 55%),
		radial-gradient(90% 70% at 88% 12%, rgba(13, 148, 136, 0.22), transparent 50%),
		linear-gradient(165deg, #c5dce8 0%, #dfece6 42%, #c9ddd2 100%);
}

.sm-soon__ledger {
	position: fixed;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	opacity: 0.18;
	background-image:
		repeating-linear-gradient(
			transparent,
			transparent 31px,
			rgba(20, 36, 28, 0.35) 31px,
			rgba(20, 36, 28, 0.35) 32px
		);
	mask-image: linear-gradient(90deg, transparent 0%, #000 18%, #000 72%, transparent 100%);
}

.sm-soon__glow {
	position: fixed;
	width: min(70vw, 640px);
	height: min(70vw, 640px);
	right: -8%;
	bottom: -18%;
	z-index: 1;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(224, 161, 6, 0.35), transparent 68%);
	filter: blur(8px);
}

.sm-soon__stage {
	position: relative;
	z-index: 3;
	width: 100%;
	max-width: none;
	padding: clamp(2.5rem, 8vh, 5.5rem) clamp(1.25rem, 5vw, 4rem);
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	text-align: center;
	min-height: 100vh;
	min-height: 100dvh;
}

.sm-soon__brand {
	margin: 0 0 1.25rem;
	font-family: var(--sm-display);
	font-size: clamp(2.75rem, 9vw, 5.25rem);
	font-weight: 700;
	line-height: 0.95;
	letter-spacing: -0.03em;
}

.sm-soon__headline {
	margin: 0;
	font-family: var(--sm-display);
	font-size: clamp(1.35rem, 3.2vw, 1.85rem);
	font-weight: 500;
	font-style: italic;
	color: var(--sm-teal);
}

.sm-soon__mark {
	position: fixed;
	z-index: 2;
	margin: 0;
	right: clamp(-2rem, -2vw, 2rem);
	bottom: clamp(-1rem, 2vh, 2rem);
	width: min(48vw, 420px);
	pointer-events: none;
	transform: rotate(2deg);
}

.sm-soon__mark svg {
	display: block;
	width: 100%;
	height: auto;
	filter: drop-shadow(0 18px 40px rgba(20, 36, 28, 0.12));
}

.sm-soon__pen {
	stroke-dasharray: 180;
	stroke-dashoffset: 0;
}

@media (prefers-reduced-motion: no-preference) {
	.sm-soon__sky {
		animation: sm-sky-drift 18s ease-in-out infinite alternate;
	}

	.sm-soon__glow {
		animation: sm-glow-breathe 10s ease-in-out infinite;
	}

	.sm-soon__brand {
		animation: sm-rise 0.9s cubic-bezier(0.22, 1, 0.36, 1) 0.08s both;
	}

	.sm-soon__headline {
		animation: sm-rise 0.9s cubic-bezier(0.22, 1, 0.36, 1) 0.22s both;
	}

	.sm-soon__mark {
		animation: sm-mark-in 1.2s cubic-bezier(0.22, 1, 0.36, 1) 0.28s both;
	}

	.sm-soon__pen {
		stroke-dashoffset: 180;
		animation: sm-pen 2.4s ease forwards 1s;
	}
}

@keyframes sm-rise {
	from {
		opacity: 0;
		transform: translateY(1.15rem);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes sm-mark-in {
	from {
		opacity: 0;
		transform: translateY(2rem) rotate(4deg);
	}
	to {
		opacity: 1;
		transform: translateY(0) rotate(2deg);
	}
}

@keyframes sm-pen {
	to {
		stroke-dashoffset: 0;
	}
}

@keyframes sm-sky-drift {
	from {
		transform: scale(1) translate3d(0, 0, 0);
	}
	to {
		transform: scale(1.04) translate3d(-1.5%, 1%, 0);
	}
}

@keyframes sm-glow-breathe {
	0%,
	100% {
		opacity: 0.7;
		transform: scale(1);
	}
	50% {
		opacity: 1;
		transform: scale(1.08);
	}
}

@media (max-width: 760px) {
	.sm-soon__mark {
		width: min(72vw, 280px);
		opacity: 0.55;
		right: -10%;
		bottom: 8%;
	}

}
