:root {
	font-size: 18px;
	font-family: body;
}

:root[ui-station] {
	font-size: 30px;
}

* {
	user-select: none;
	-webkit-user-select: none;
	-webkit-user-drag: none;
	-webkit-touch-callout: none;
}

body {
	margin: 0;
	padding: 0;

	background: rgb(210, 217, 226);
	color: rgb(52, 81, 111);

	scroll-behavior: smooth;
}

[ui-station] body {
	padding-bottom: 140px;
}

ui-intro {
	display: block;
	margin: 0 auto;
	padding: 1rem;
	max-width: 35rem;
}

ui-intro > img[ui-scopri] {
	width: 70%;
	margin: 0 15%;
}

ui-intro ui-title {
	display: block;
	text-align: center;
	font-family: title;
	font-size: 1.8em;
	margin: 0.5rem;
}

ui-intro ui-guide {
	display: flex;
}

ui-intro ui-guide img {
	height: 15rem;
}

ui-intro ui-guide ui-text {
	display: block;
	margin: 1rem;
	margin-left: -2.5rem;
}

ui-content {
	display: block;
	padding: 1rem;
}

ui-interactive-context {
	display: block;
	text-align: center;
	max-width: 35rem;
	margin: 1rem auto;
	font-size: 0.8rem;
}

ui-interactive-context img[ui-figure] {
	display: block;
	mix-blend-mode: darken;
	max-width: 10rem;
	height: 10rem;
	object-fit: contain;
}

ui-start img {
	margin: 1rem auto;
}

:root:not([ui-station]) ui-start-message {
	display: block;
	margin-bottom: 2rem;
}

ui-interaction {
	display: block;
}

ui-message {
	display: flex;
}

:root:not([ui-station]) ui-message img[ui-figure] {
	height: 3rem;
	align-self: flex-end;
	margin-bottom: 0.5rem;
}

ui-message-bubble {
	position: relative;
	align-self: flex-end;
	background: rgb(172, 185, 202);
	margin-bottom: 0.75rem;
	margin-left: 1rem;
	padding: 1rem;
	text-align: left;
}

ui-message-bubble::before {
	content: "";
	position: absolute;
	bottom: 0;
	right: 100%;
	width: 1rem;
	height: 1rem;
	background: linear-gradient(-45deg, rgb(172, 185, 202) 50%, transparent 50%);
}

ui-recommendation {
	display: flex;
	text-align: left;
	background: rgb(230, 233, 239);
	margin-bottom: 1rem;
	position: relative;
}

:root:not([ui-station]) ui-recommendation {
	flex-direction: column;
}

ui-recommendation[ui-limit-height] {
	height: 10rem;
	overflow: hidden;
}

:root:not([ui-station]) ui-recommendation[ui-limit-height] {
	height: 100rem;
}

ui-recommendation ui-more {
	position: absolute;
	bottom: 0;
	right: 0;
	left: 0;
	background: linear-gradient(0, rgb(230, 233, 239) 30%, #fff0);
	text-align: right;
	padding: 0.5rem 1rem;
	padding-top: 2rem;
	font-style: italic;
	text-shadow: 1px 0 25px rgb(230, 233, 239), 
		0 1px 25px rgb(230, 233, 239), 
		1px 1px 25px rgb(230, 233, 239), 
		0 0 25px rgb(230, 233, 239);
}

ui-recommendation-info {
	padding: 1rem;
	flex-grow: 1;
}

ui-recommendation-info-title {
	display: block;
	font-family: title;
}

ui-recommendation-info-description {
	font-size: 0.75rem;
	line-height: 1.4;
}

ui-recommendation-info-description a {
	display: block;
	margin-top: 1rem;
	font-family: title;
	color: rgb(52, 81, 111);
}

[ui-station] ui-recommendation-info-description a {
	display: none;
}

[ui-station] ui-recommendation img {
	max-width: 20rem;
	height: 10rem;
	flex-shrink: 0;
	object-fit: contain;
}

:root:not([ui-station]) ui-recommendation img {
	width: calc(100% - 2rem);
	margin: 1rem;
}

ui-recommendation img[ui-qr] {
	float: right;
	width: 3rem;
	height: 3rem;
	margin-top: -0.25rem;
	margin-right: -0.25rem;
	mix-blend-mode: darken;
}

:root:not([ui-station]) img[ui-qr] {
	display: none;
}

[ui-station] ui-bottom-bar {
	display: flex;

	position: fixed;
	bottom: 0;
	left: 0;
	right: 0;
	z-index: 1;

	padding-bottom: 20px;

	background: rgb(191, 200, 213);
	justify-content: space-between;
}

[ui-station] ui-langs {
	font-family: title;
	display: flex;
	justify-content: space-between;
	margin: 20px 60px;
}


:root:not([ui-station]) ui-langs {
	display: block;
	font-size: 0.75rem;
	margin: 1rem;
	font-family: title;
}

[ui-station] ui-lang {
	justify-content: center;
	align-items: center;
	display: flex;
	font-size: 20px;
	width: 60px;
	height: 60px;
	border-radius: 50%;
	background: rgb(238, 240, 243);
	color: rgb(52, 81, 111);
	margin: 20px;
}

[ui-station] ui-lang[ui-active] {
	background: rgb(52, 81, 111);
	color: rgb(238, 240, 243);
}

:root:not([ui-station]) ui-lang {
	display: inline-block;
	color: rgb(52, 81, 111);
	padding: 0.75em;
}

:root:not([ui-station]) ui-lang[ui-active] {
	display: inline-flex;
	width: 1.1em;
	height: 1.1em;
	border-radius: 50%;
	color: rgb(238, 240, 243);
	background: rgb(52, 81, 111);
	justify-content: center;
	align-items: center;
}

ui-scan-info {
	display: block;
	text-align: center;
	max-width: 50rem;
	margin: 1.5rem auto;
	animation: scan-info 2s linear infinite;
}

:root[ui-station] ui-scan-info {
	margin-bottom: calc(160px + 1.5rem);
}

@keyframes scan-info {
	from,
	to {
		opacity: 0.5;
	}

	50% {
		opacity: 1;
	}
}