
*
{
	font-family: Arial, Helvetica, sans-serif;
}

body
{
	background-size:cover;
	pointer-events:none;
	margin: 0;
}

body > *
{
	pointer-events:all;
}

div.columns, content.columns
{
	display: flex;
	flex-direction: row;
	justify-content: center;
}

body.basic .columns{
	display: initial;
}

.layer {
	overflow-x: auto;
	display: flex;
	flex-direction: row;
}

body.basic .layer
{
	overflow-x: initial;
	display: initial;
}

.state
{
	display: none;
}

.state.selected
{
	display: initial;
}

.vertical
{
	display: flex;
	flex-direction: column;
	align-content: center;
	margin: 5px;
}

.horizontal {
	display: flex;
	flex-direction: row;
	align-content: center;
	margin: 5px;
}

.paper
{
	background-color: rgba(255,255,255,0.5);
}

section
{
	background-color: rgba(255,255,255,0.7);
	margin: 5px;
}

.row
{
	display: flex;
	flex-direction: row;
	flex-flow: row;
}

body.basic .row
{
	display: initial;
	background-color: initial;
	margin: initial;
}

textbox, icon
{
	display:inline;
}

key
{
	display: inline-block;
	width: 80px;
	vertical-align: top;
}

view, texture, group, fill, room
{
	display: none;
}

objlink {
	display: inline-block;
	width: 80px;
	vertical-align: top;
}

.shadow {
	border-radius: 5px;
	box-shadow: rgba(0,30,50,0.4) 0.5em 0.5em 1em;
}

body.basic .shadow{
	border-radius: initial;
	box-shadow: initial;
}

body.vr {
	margin: 0;
}

.root
{
	max-width: 100vw;
	overflow-x: hidden;
}

header, aside
{
	overflow-x: visible;
	flex-grow: 0;
}

body.basic header, body.basic aside {
	position: initial;
	overflow-x: initial;
	left: initial;
	top: initial;
	width: initial;
	height: initial;
}

main {
	flex-grow: 1;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	justify-content: center;
	width: fit-content;
}

body.basic main {
	overflow-x: initial;
	overflow-y: initial;
	margin-left: initial;
	display: initial;
}

footer {
	display: flex;
	flex-direction: column-reverse;
	position: absolute;
	top: 0;
	height: 100%;
	vertical-align: bottom;
	pointer-events: none;
	color: white;
	font-size: 15px;
}

body.basic footer{
	display: none;
}

footer p {
	display: flex;
	justify-content: center;
	min-width: 100vw;
}

footer p * {
	pointer-events: auto;
}

footer button {
	border: 1px solid white;
	border-radius: 10px;
	margin-left: 5px;
	margin-right: 5px;
	color: white;
	background-color: rgba(0,0,0,0.2);
	font-size: 15px;
}

footer button:hover {
	background-color: rgba(50,50,50,0.5);
}

footer .group button {
	border-radius: 0px;
	padding: 2px;
	border-left: 1px solid white;
	margin-left: 0;
	margin-right: 0;
	border-right: none;
}

footer .group button:first-child {
	border-radius: 10px 0 0 10px;
	margin-left: 5px;
}

footer .group button:last-child {
	border-radius: 0 10px 10px 0;
	border: 1px solid white;
	margin-right: 5px;
}

footer .group button:first-child:last-child {
	border-radius: 10px;
}

footer button:hover {
color: rgb(50,200,255);
}

.padded {
	padding: 4px;
}

.hidden, .template {
	display: none;
}

.selectable
{
	display: none;
}

.selectable.selected
{
	display: initial;
}

.scrollable
{
	overflow-x: hidden;
	overflow-y: auto;
}

.xy-scrollable {
	overflow-x: auto;
	overflow-y: auto;
}

.backdrop {
	position: fixed;
	left: 0;
	top: 0;
	min-width: 100vw;
	min-height: 100vh;
	z-index: -1;
}

.dark-wall
{
	position: fixed;
	left:0;
	top:0;
	min-width: 100vw;
	min-height: 100vh;
	z-index: 1;
	background-color: RGBA(0,0,0,0.7);
}

.dialog {
	position: fixed;
	display: flex;
	left: 0;
	top: 0;
	min-width: 100vw;
	min-height: 100vh;
	align-items: center;
	justify-content: center;
	z-index: 1;
	pointer-events: none;
}

.dialog * {
	pointer-events: initial;
}

.front-page {
	background-color: white;
}

.back-page {
	background: linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,0.1),rgba(255,255,255,0.3),rgba(255,255,255,1));
	position: relative;
	width: 100px;
	height: 600px;
	left: -20px;
}

.overlay > * {
	pointer-events: all;
}

.overlay {
	pointer-events: none;
}

.overlay > footer {
	pointer-events: none;
}

.filler {
	flex-grow: 1;
	pointer-events: none;
}

h1
{
	position: sticky;
}

.scroll-pane {
	width: 100%;
	pointer-events: none;
}

.scroll-pane > * {
	width: 100%;
}

.scroll-pane header, .scroll-pane aside, .scroll-pane h1 {
	opacity: 0;
	pointer-events: none;
}

body.basic .scroll-pane header, body.basic .scroll-pane aside, body.basic .scroll-pane h1 {
	opacity: 1;
	pointer-events: initial;
}

.fixed-pane {
	width: 100%;
	position: fixed;
	pointer-events: none;
}

.fixed-pane > * {
	width: 100%;
}

@media(orientation:landscape) {
	header {
		left: 0;
		display: flex;
		flex-direction: column;
		align-items: center;
		max-height: 90vh;
		flex-wrap: wrap;
	}

	aside {
		right: 0;
		display: flex;
		flex-direction: column;
		align-items: center;
		max-height: 90vh;
		flex-wrap: wrap-reverse;
	}
}

@media(orientation:portrait) {
	.fixed-pane {
		min-height: 100%
	}

	header {
		top: 0;
		display: flex;
		flex-direction: row;
		align-items: center;
		max-width: 90vw;
		flex-wrap: wrap;
	}

	aside {
		position: absolute;
		bottom: 0;
		display: flex;
		flex-direction: row;
		align-items: center;
		max-width: 90vw;
		flex-wrap: wrap-reverse;
	}

	.fixed-pane main > *
	{
		display: none;
	}
}

.fixed-pane main {
	opacity: 0;
	pointer-events: none;
}

.big
{
	max-width: 80vw;
	max-height: 80vh;
}

.biggest {
	max-width: 100vw;
	max-height: 100vh;
}

content
{
	display: inline-block;
}

body .graphic, body.basic .not-basic {
	display: none;
}

body.graphic .graphic
{
	display: initial;
}

body.graphic .icon, body[class="3d"] .icon {
	max-width: 100px;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
}

body.graphic .icon p, body[class="3d"] .icon p
{
	text-align: center;
	margin: 0;
}

@media(orientation: landscape) {
	body.graphic .minor, body[class="3d"] .minor {
		display: flex;
		flex-direction: column;
	}

	body.graphic .major, body[class="3d"] .major {
		display: flex;
		flex-direction: row;
	}

	.wrap {
		flex-flow: wrap;
	}

	.minor.max-content {
		width: max-content;
	}

	.major.max-content {
		height: max-content;
	}
}

@media(orientation: portrait) {
	body.graphic .minor, body[class="3d"] .minor {
		display: flex;
		flex-direction: row;
	}

	body.graphic .major, body[class="3d"] .major {
		display: flex;
		flex-direction: column;
	}

	.wrap {
		flex-flow: wrap;
	}
}

body.graphic .submenu {
	align-self: center;
}

body.graphic .menu .key, body.graphic .menu > .item, body.graphic .submenu .item, body[class="3d"] .menu .key, body[class="3d"] .menu > .item, body[class="3d"] .submenu .item {
	border: 2pt solid rgba(0,0,0,0);
	align-self: flex-start;
}

body.graphic .menu .key:hover, body.graphic .menu > .item:hover, body.graphic .submenu .item:hover, body[class="3d"] .menu .key:hover, body[class="3d"] .menu > .item:hover, body[class="3d"] .submenu .item:hover {
	border: 2pt outset gold;
}

body.graphic .menu .key p, body.graphic .submenu .item p, body[class="3d"] .menu .key p, body[class="3d"] .submenu .item p {
	margin: 0;
}

body.graphic .submenu, body[class="3d"] .submenu
{
	position: relative;
}

body.graphic .submenu .items, body[class="3d"] .items
{
	position: relative;
}

body.graphic .submenu .items > div, body[class="3d"] .items > div
{
	position: absolute;
	width: 80vw;
}

a img:hover {
	animation-duration: 0.3s;
	animation-name: brighten;
	filter: brightness(200%);
}

@media(orientation:portrait) {
	.max50major {
		max-width: 50vw;
	}
}

@media(orientation:landscape) {
	.max50major {
		max-height: 50vh;
	}
}

.textbox {
	margin: 20px;
}

vr-template {
	display: none;
}

@keyframes brighten {
	from {
		filter: initial;
	}

	to {
		filter: brightness(200%);
	}
}

.error {
	color: red;
	border: solid 1pt red;
}

span.error {
	border-radius: 6pt;
	margin-left: 2pt;
}

.in-edit .constant {
	display: none;
}

.editable {
	display: none;
}

.in-edit {
	position: relative;
	padding: 5px;
	border: 2px solid plum;
	border-radius: 10px;
}

.in-edit .editable {
	display: inherit;
}

.drop-zone.in-drop {
	border: 2px solid black;
	background-color: grey;
}

.edit-controls {
	display: flex;
	position: absolute;
	top: -35px;
	right: 3px;
}

.edit-controls button {
	border: none;
	padding: 2px;
	background: none;
}

.edit-controls button:hover {
	filter: brightness(200%);
}

update
{
	display: block;
	margin: 0 3px;
}

date
{
	display: block;
	font-size: large;
}

.widen-table > tbody > tr > td
{
	padding: 1px 10px;
}

body.graphic .disabled
{
	display: none;
}

.table-cell
{
	display: table-cell;
	padding: 1px 5px;
}
