.viewport-search {
	position: absolute;
	top: 16px;
	left: 50%;
	transform: translateX(-50%) translateY(-8px);
	z-index: 600;

	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 18px;

	background: #fff;
	color: var(--ink, #1a1a1a);
	border: none;
	border-radius: 999px;
	font-family: inherit;
	font-size: 14px;
	font-weight: 700;
	white-space: nowrap;
	cursor: pointer;

	box-shadow: 0 1px 6px rgba(32, 33, 36, 0.18), 0 4px 16px rgba(32, 33, 36, 0.06);

	opacity: 0;
	pointer-events: none;
	transition: opacity 0.2s ease, transform 0.2s ease, box-shadow 0.15s ease;
}

.viewport-search.is-visible {
	opacity: 1;
	pointer-events: auto;
	transform: translateX(-50%) translateY(0);
}

.viewport-search:hover {
	box-shadow: 0 1px 6px rgba(40, 163, 179, 0.3), 0 4px 16px rgba(40, 163, 179, 0.1);
}

.viewport-search:focus-visible {
	outline: 2px solid var(--secondary, #28a3b3);
	outline-offset: 2px;
}

.viewport-search:active {
	transform: translateX(-50%) translateY(1px);
}

.viewport-search .fa,
.viewport-search .fas {
	color: var(--accent, #e77c31);
	font-size: 13px;
}

@media (max-width: 767px) {
	.viewport-search {
		top: 12px;
		padding: 8px 14px;
		font-size: 13px;
	}
	.viewport-search__label {
		max-width: 70vw;
		overflow: hidden;
		text-overflow: ellipsis;
	}
}
