/* VASKA GAME social-follow widget. It is intentionally independent from the
   existing mobile navigation and its centered UC action. */

.vaska-social-follow {
	--social-follow-top: clamp(210px, 54vh, 500px);
	--social-follow-right: max(0px, env(safe-area-inset-right, 0px));
	--social-follow-z: 1030;
	--vssf-accent: #315cff;
	--vssf-accent-strong: #4f7cff;
	--vssf-surface: var(--dx-surface, #ffffff);
	--vssf-text: var(--dx-text, #172033);
	--vssf-border: var(--dx-border, rgba(15, 23, 42, .14));
	position: fixed;
	top: var(--social-follow-top);
	right: var(--social-follow-right);
	z-index: var(--social-follow-z);
	display: block;
	width: max-content;
	max-width: calc(100vw - 8px);
	transform: translateY(-50%);
	overflow: visible;
	font-family: inherit;
}

.vaska-social-follow,
.vaska-social-follow * {
	box-sizing: border-box;
}

.vaska-social-follow__menu {
	position: absolute;
	right: calc(100% + 10px);
	top: 50%;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 10px;
	width: max-content;
	max-width: calc(100vw - 8px);
	padding: 0;
	border: 0;
	background: transparent;
	box-shadow: none;
	transform: translateY(-50%);
	visibility: hidden;
	opacity: 0;
	pointer-events: none;
	transition: opacity .18s ease, visibility 0s linear .22s;
}

.vaska-social-follow__link,
.vaska-social-follow__trigger {
	-webkit-tap-highlight-color: transparent;
}

.vaska-social-follow__link {
	--vssf-social-accent: #64748b;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 52px;
	width: 52px;
	height: 52px;
	padding: 0;
	border: 1px solid color-mix(in srgb, var(--vssf-social-accent) 38%, var(--vssf-border));
	border-radius: 50%;
	color: var(--vssf-social-accent);
	background: color-mix(in srgb, var(--vssf-surface) 88%, var(--vssf-social-accent));
	box-shadow: 0 12px 28px rgba(15, 23, 42, .18), inset 0 1px 0 rgba(255, 255, 255, .38);
	font-size: 24px;
	line-height: 1;
	text-decoration: none;
	opacity: 0;
	pointer-events: none;
	transform: translateX(16px) scale(.94);
	transition: opacity .18s ease, transform .22s cubic-bezier(.2, .75, .25, 1), border-color .16s ease, box-shadow .16s ease;
}

.vaska-social-follow__link-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	font-size: 24px;
}

.vaska-social-follow__link-icon svg {
	display: block;
	width: 24px;
	height: 24px;
	fill: currentColor;
}

.vaska-social-follow__link-label {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.vaska-social-follow__link.is-whatsapp {
	--vssf-social-accent: #16a765;
}

.vaska-social-follow__link.is-telegram {
	--vssf-social-accent: #229ed9;
}

.vaska-social-follow__link.is-tiktok {
	--vssf-social-accent: #44536d;
}

.vaska-social-follow__trigger {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: 44px;
	height: 116px;
	min-height: 0;
	padding: 9px 4px;
	border: 1px solid rgba(255, 255, 255, .24);
	border-right: 0;
	border-radius: 16px 0 0 16px;
	color: #fff;
	background: linear-gradient(155deg, var(--vssf-accent) 0%, var(--vssf-accent-strong) 50%, #7038c8 100%);
	box-shadow: 0 8px 18px rgba(16, 31, 88, .24), inset 0 1px 0 rgba(255, 255, 255, .32), inset 0 -1px 0 rgba(15, 31, 99, .14);
	cursor: pointer;
	font: inherit;
	line-height: 1;
	transition: filter .16s ease, box-shadow .16s ease, transform .16s ease;
}

.vaska-social-follow__trigger-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	font-size: 22px;
}

.vaska-social-follow__trigger-icon svg {
	display: block;
	width: 22px;
	height: 22px;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.8;
}

.vaska-social-follow__trigger-icon [data-social-follow-icon-close] {
	display: none;
}

.vaska-social-follow__trigger-label {
	display: block;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .02em;
	line-height: 1;
	text-align: center;
	text-orientation: mixed;
	white-space: nowrap;
	writing-mode: vertical-rl;
}

.vaska-social-follow.is-open .vaska-social-follow__trigger-icon [data-social-follow-icon-open] {
	display: none;
}

.vaska-social-follow.is-open .vaska-social-follow__trigger-icon [data-social-follow-icon-close] {
	display: inline-block;
}

.vaska-social-follow.is-open .vaska-social-follow__menu {
	visibility: visible;
	opacity: 1;
	pointer-events: auto;
	transition-delay: 0s;
}

.vaska-social-follow.is-open .vaska-social-follow__link {
	opacity: 1;
	pointer-events: auto;
	transform: translateX(0) scale(1);
}

/* DOM order is WhatsApp, Telegram, TikTok. TikTok is nearest the trigger,
   so the reveal visibly travels from the right edge towards the left. */
.vaska-social-follow.is-open .vaska-social-follow__link:nth-child(1) {
	transition-delay: .08s;
}

.vaska-social-follow.is-open .vaska-social-follow__link:nth-child(2) {
	transition-delay: .04s;
}

.vaska-social-follow.is-open .vaska-social-follow__link:nth-child(3) {
	transition-delay: 0s;
}

.vaska-social-follow__link:hover {
	border-color: color-mix(in srgb, var(--vssf-social-accent) 68%, var(--vssf-border));
	box-shadow: 0 15px 32px rgba(15, 23, 42, .22), 0 0 0 3px color-mix(in srgb, var(--vssf-social-accent) 14%, transparent);
}

.vaska-social-follow__link:active {
	filter: brightness(.96);
}

.vaska-social-follow__trigger:hover {
	filter: brightness(1.06);
	box-shadow: 0 10px 22px rgba(37, 99, 235, .28), inset 0 1px 0 rgba(255, 255, 255, .30);
}

.vaska-social-follow__trigger:active {
	transform: scale(.98);
}

.vaska-social-follow__link:focus-visible,
.vaska-social-follow__trigger:focus-visible {
	outline: 3px solid color-mix(in srgb, #38bdf8 70%, #a78bfa);
	outline-offset: 3px;
}

@media screen and (max-width: 767.98px) {
	.vaska-social-follow {
		--social-follow-top: clamp(210px, 54vh, 500px);
		max-width: calc(100vw - 6px);
	}

	.vaska-social-follow__menu {
		right: calc(100% + 8px);
		gap: 8px;
		max-width: calc(100vw - 6px);
	}

	.vaska-social-follow__link {
		flex-basis: 50px;
		width: 50px;
		height: 50px;
	}

	.vaska-social-follow__trigger {
		width: 42px;
		height: 112px;
		padding: 8px 4px;
		gap: 7px;
	}
}

@media screen and (max-width: 370px) {
	.vaska-social-follow__menu {
		gap: 7px;
	}

	.vaska-social-follow__link {
		flex-basis: 48px;
		width: 48px;
		height: 48px;
	}

	.vaska-social-follow__trigger {
		width: 40px;
		height: 108px;
		padding: 7px 3px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.vaska-social-follow__menu,
	.vaska-social-follow__link,
	.vaska-social-follow__trigger {
		transition-duration: .01ms !important;
		transition-delay: 0s !important;
	}

	.vaska-social-follow__link {
		transform: none;
	}
}
