.vgtg-public-module--responsive {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 9;
	min-height: 420px;
	overflow: hidden;
}

/* Only the explicit hosted launch page occupies the viewport. */
.vgtg-hosted-page { margin: 0; }
.vgtg-hosted-page > .vgtg-public-module {
	height: 100dvh;
	min-height: 0;
	aspect-ratio: auto;
}

.vgtg-public-module--responsive > iframe {
	width: 100%;
	height: 100%;
	border: 0;
	display: block;
}

.vgtg-public-module.vgtg-pseudo-fullscreen {
	position: fixed !important;
	inset: 0 !important;
	width: 100vw !important;
	max-width: none !important;
	max-height: none !important;
	margin: 0 !important;
	aspect-ratio: auto !important;
	z-index: 10000 !important;
	overflow: hidden !important;
	background: #000;
}

.vgtg-public-module.vgtg-pseudo-fullscreen > iframe {
	width: 100% !important;
	height: 100% !important;
	min-height: 0 !important;
}

.vgtg-mobile-launcher {
	position: relative;
	display: grid;
	place-items: center;
	width: 100%;
	height: auto;
	min-height: 0;
	overflow: hidden;
	background: #002642;
	border-radius: inherit;
	box-sizing: border-box;
	isolation: isolate;
}

/* Before launch, mobile content owns the height. Player and desktop sizing stay unchanged. */
.vgtg-public-module--responsive.vgtg-public-module--launcher {
	aspect-ratio: auto;
	min-height: 0;
	overflow: visible;
}

.vgtg-mobile-launcher > .vgtg-mobile-launcher__background {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	max-height: none;
	border: 0;
	border-radius: 0;
	object-fit: cover;
	object-position: center;
	z-index: 0;
}

.vgtg-mobile-launcher__overlay {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, .75);
	z-index: 1;
}

.vgtg-mobile-launcher__content {
	position: relative;
	z-index: 2;
	display: grid;
	justify-items: center;
	gap: 1rem;
	width: min(100%, 34rem);
	padding: 2rem;
	box-sizing: border-box;
	text-align: center;
}

.vgtg-mobile-launcher__logo {
	display: block;
	width: auto;
	height: auto;
	max-width: 100%;
	max-height: 75px;
	object-fit: contain;
}

.vgtg-mobile-launcher__intro {
	max-width: 30rem;
	margin: 0;
	color: #fff;
	font: inherit;
	font-size: clamp(1rem, 2.8vw, 1.2rem);
	line-height: 1.5;
}

.vgtg-mobile-launcher__start {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: .7rem 1.2rem;
	border-radius: 999px;
	background: #fff;
	color: #002642;
	font: inherit;
	font-weight: 700;
	text-decoration: none;
}

.vgtg-mobile-launcher__start:focus-visible {
	outline: 3px solid #978c7b;
	outline-offset: 3px;
}

.vgtg-mobile-launcher__start img {
	max-width: 100%;
	max-height: 56px;
	width: auto;
}

@media (max-width: 700px) {
	.vgtg-public-module--responsive { min-height: 320px; }
}

.vgtg-viewport-debug {
	--vgtg-safe-area-top: env(safe-area-inset-top, 0px);
	--vgtg-safe-area-right: env(safe-area-inset-right, 0px);
	--vgtg-safe-area-bottom: env(safe-area-inset-bottom, 0px);
	--vgtg-safe-area-left: env(safe-area-inset-left, 0px);
	all: initial;
	position: fixed;
	inset: .5rem auto auto .5rem;
	z-index: 2147483647;
	box-sizing: border-box;
	width: min(30rem, calc(100vw - 1rem));
	max-height: calc(100dvh - 1rem);
	overflow: auto;
	pointer-events: none;
	padding: .65rem .75rem;
	border: 1px solid rgba(255, 255, 255, .7);
	border-radius: .35rem;
	background: rgba(0, 20, 34, .92);
	color: #fff;
	font: 11px/1.35 ui-monospace, SFMono-Regular, Consolas, monospace;
	white-space: pre-wrap;
}
