:root {
	--app-frame-width: 400px;
}

html, body {
	min-height: 100%;
}

body.app-frame {
	margin: 0;
	min-height: 100vh;
	min-height: 100dvh;
	display: flex;
	justify-content: center;
	background: #000;
}

body.app-frame > .app-shell {
	position: relative;
	display: flex;
	flex-direction: column;
	width: 100%;
	max-width: var(--app-frame-width);
	min-width: 0;
	height: 100vh;
	height: 100dvh;
	margin: 0 auto;
	overflow: hidden;
	background: inherit;
}

body.app-frame-stage {
	align-items: center;
}

body.app-frame-stage > .app-shell {
	align-items: center;
	justify-content: center;
	background: #000;
}

body.app-frame-scroll > .app-shell {
	height: auto;
	min-height: 100vh;
	min-height: 100dvh;
	overflow: visible;
}

.app-frame-overlay {
	width: 100%;
	max-width: var(--app-frame-width);
	margin-right: auto;
	margin-left: auto;
}

@media (max-width: 400px) {
	body.app-frame > .app-shell,
	.app-frame-overlay {
		max-width: 100%;
	}
}
