/**
 * Event Resolver fixed-viewport contract.
 *
 * Do not apply these rules globally. Registration and directory content may
 * move inside the marked host, but the browser document itself never scrolls.
 */

html.nxtorigin-event-viewport-root,
html.nxtorigin-event-viewport-root body.nxtorigin-event-viewport {
	width: 100%;
	height: 100%;
	min-height: 100%;
	overflow: hidden !important;
	overscroll-behavior: none;
}

body.nxtorigin-event-viewport {
	--nxtorigin-event-viewport-height: 100dvh;
	margin: 0;
}

body.nxtorigin-event-viewport [data-nxtorigin-event-viewport-host] {
	width: 100%;
	height: var(--nxtorigin-event-viewport-height);
	max-height: var(--nxtorigin-event-viewport-height);
	overflow-x: hidden;
	overflow-y: auto;
	overscroll-behavior: contain;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
}

/*
 * Native pages physically inset their shared shell around fixed event chrome.
 * Do not let this generic host rule restore a full viewport height, otherwise
 * the top inset pushes the application beneath the footer navigation.
 */
body.nxtorigin-event-viewport
	[data-nxtorigin-event-viewport-host].nxtorigin-native-event-shell__layout {
	height: auto;
	max-height: none;
	overflow: hidden;
}

/*
 * Defensive compatibility for a document loaded with an older viewport script
 * that also marked the native shell's inner main element.
 */
body.nxtorigin-event-viewport
	[data-nxtorigin-event-viewport-host].nxtorigin-native-event-shell__main {
	height: 100%;
	max-height: 100%;
}

body.nxtorigin-event-viewport [data-nxtorigin-event-viewport-host]::-webkit-scrollbar {
	width: 0;
	height: 0;
	display: none;
}

/* Immersive modules own their internal scrolling and must not gain a host scroll. */
body.nxtorigin-event-central-hub [data-nxtorigin-event-viewport-host],
body.nxtorigin-event-auditorium [data-nxtorigin-event-viewport-host],
body.nxtorigin-event-business-lounge [data-nxtorigin-event-viewport-host],
body.nxtorigin-event-video-meeting [data-nxtorigin-event-viewport-host],
body.nxtorigin-event-live-booth-connect [data-nxtorigin-event-viewport-host] {
	overflow-y: hidden;
}

@media (prefers-reduced-motion: reduce) {
	body.nxtorigin-event-viewport [data-nxtorigin-event-viewport-host] {
		scroll-behavior: auto;
	}
}
