:root {
	--primary: #066bff;
	--on-primary: #ffffff;
	--on-filled: #066bff;
	--font: "Roboto", "Noto Sans", system-ui, -apple-system, sans-serif;
	--safe-top: env(safe-area-inset-top, 0px);
	--safe-right: env(safe-area-inset-right, 0px);
	--safe-bottom: env(safe-area-inset-bottom, 0px);
	--safe-left: env(safe-area-inset-left, 0px);
	--ease: cubic-bezier(0.2, 0, 0, 1);
	--edge: max(100px, min(16vw, 280px, calc((100vw - 70rem) / 2)));
}

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

html,
body {
	height: 100%;
	background: var(--primary);
	color: var(--on-primary);
	font-family: var(--font);
	-webkit-font-smoothing: antialiased;
	-webkit-tap-highlight-color: transparent;
}

body {
	overflow: hidden;
}

.landing {
	display: flex;
	align-items: center;
	justify-content: space-between;
	column-gap: clamp(24px, 3vw, 56px);
	row-gap: 0;
	height: 100%;
	height: 100dvh;
	width: 100%;
	background: var(--primary);
	padding-left: calc(var(--edge) + var(--safe-left));
	padding-right: calc(var(--edge) + var(--safe-right));
}

.pane {
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 0;
	min-height: 0;
}

.pane-brand {
	flex: 0 0 auto;
	justify-content: flex-start;
	padding: calc(24px + var(--safe-top)) 0 24px;
}

.pane-actions {
	flex: 0 0 auto;
	justify-content: flex-end;
	padding: calc(24px + var(--safe-top)) 0 calc(24px + var(--safe-bottom));
}

.brand {
	--mark: clamp(88px, 12vw, 200px);
	display: flex;
	align-items: center;
	gap: clamp(12px, 2vw, 24px);
	min-width: 0;
}

.logo {
	display: block;
	flex-shrink: 0;
	width: var(--mark);
	height: var(--mark);
	user-select: none;
	pointer-events: none;
}

.wordmark {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	height: var(--mark);
	color: #ffffff;
	font-family: "Anton", sans-serif;
	font-weight: 400;
	font-size: calc(var(--mark) * 0.58);
	line-height: 0.75;
	letter-spacing: -0.05em;
	white-space: nowrap;
}

.actions {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: clamp(12px, 2.2vh, 20px);
	width: 320px;
}

.btn {
	appearance: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: 0 24px;
	border-radius: 999px;
	border: 2px solid var(--on-primary);
	font: inherit;
	font-size: clamp(15px, 2.2vw, 17px);
	font-weight: 600;
	letter-spacing: 0.01em;
	line-height: 1;
	cursor: pointer;
	user-select: none;
	transition:
		transform 120ms var(--ease),
		background-color 120ms var(--ease),
		color 120ms var(--ease),
		opacity 120ms var(--ease);
}

.actions .btn {
	min-height: 58px;
	padding-block: 10px;
}

.actions-or {
	margin: 0;
	color: var(--on-primary);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.08em;
	line-height: 1;
	text-align: center;
}

.btn-stacked {
	flex-direction: column;
	gap: 3px;
	line-height: 1.15;
}

.btn-label {
	font-weight: 600;
}

.btn-sub {
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.01em;
	opacity: 0.72;
}

.btn-filled {
	background: var(--on-primary);
	color: var(--on-filled);
}

.btn-outline {
	background: transparent;
	color: var(--on-primary);
}

.btn-main {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

.btn-icon {
	flex-shrink: 0;
	display: block;
}

.btn:active {
	transform: scale(0.98);
}

.btn:focus-visible {
	outline: 3px solid var(--on-primary);
	outline-offset: 3px;
}

@media (hover: hover) and (pointer: fine) {
	.btn-filled:hover {
		opacity: 0.92;
	}

	.btn-outline:hover {
		background: rgb(255 255 255 / 0.12);
	}
}

.landing.is-stacked {
	display: grid;
	grid-template-columns: 1fr;
	grid-template-rows: 1fr 1fr;
	row-gap: 200px;
	padding-left: 0;
	padding-right: 0;
}

.landing.is-stacked .pane-brand {
	justify-content: center;
	padding:
		calc(24px + var(--safe-top))
		calc(50px + var(--safe-right))
		0
		calc(50px + var(--safe-left));
	align-items: flex-end;
}

.landing.is-stacked .pane-actions {
	justify-content: center;
	padding:
		0
		calc(50px + var(--safe-right))
		calc(24px + var(--safe-bottom))
		calc(50px + var(--safe-left));
	align-items: flex-start;
}

.edge-probe {
	position: absolute;
	width: var(--edge);
	height: 0;
	overflow: hidden;
	visibility: hidden;
	pointer-events: none;
}

@media (max-width: 720px) {
	.landing {
		display: grid;
		grid-template-columns: 1fr;
		grid-template-rows: 1fr 1fr;
		row-gap: 200px;
		padding-left: 0;
		padding-right: 0;
	}

	.landing .pane-brand {
		justify-content: center;
		padding:
			calc(24px + var(--safe-top))
			calc(50px + var(--safe-right))
			0
			calc(50px + var(--safe-left));
		align-items: flex-end;
	}

	.landing .pane-actions {
		justify-content: center;
		padding:
			0
			calc(50px + var(--safe-right))
			calc(24px + var(--safe-bottom))
			calc(50px + var(--safe-left));
		align-items: flex-start;
	}

	.landing .brand {
		--mark: clamp(80px, 22vw, 140px);
	}

	.landing .actions {
		width: min(280px, 100%);
	}
}

@media (max-height: 480px) and (orientation: landscape) {
	.brand {
		--mark: clamp(64px, 24vh, 120px);
	}

	.btn {
		min-height: 44px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.btn {
		transition: none;
	}

	.btn:active {
		transform: none;
	}
}
