body, html {
	padding: 0;
	margin: 0;
	height: 100%;
}
@-ms-viewport{
	width: device-width;
}
.box {
	box-sizing: border-box;
	float: left;
	border: 1px solid black;
	background-size: 64px;
	background-repeat: no-repeat;
	background-position: center 75%;
}
@media(max-width:6in) {
	.box {
		background-size: 15vw;
	}
} 
body {
	counter-reset: links notifications;
	font-family: Verdana;
}
a.box:before {
	display:block;
	line-height: 0.9em;
	position:absolute;
	opacity: 0.08;
	color: black;
	z-index: 0;
	content: counter(links);
	counter-increment: links;
	font-weight: bold;
}
a.box {
	text-align: center;
	padding-top: 1em;
	z-index: -1;
}
@media(max-width:6in) {
	a.box {
		padding-top: 0.2em;
	}
} 
a.box > span.menuitem_title {
	font-weight: bold;
	display: block;
}
a.box > span.menuitem_subtitle {
	display: inline-block;
	text-decoration: none !important;
	top: 2em;
	color: black;
}
a.box > span.menuitem_icon {
	display: block;
	position: relative;
	top: calc(100vh / 20);
}
a.box.c2:before { /* these, to be offset from center a bit, depend on the font size, which depends on r... */
	margin-left: 15vw;
}
a.box.c3:before {
	margin-left: 9vw;
}
a.box.r2:before {
	margin-top: calc(100vh / 10);
	font-size: calc(100vh / 3);
}
a.box.r3:before {
	margin-top: calc(100vh / 25);
	font-size: 25vh;
}
.full {
	background-color: lightyellow;
}
.full:hover {
	background-color: white !important;
}
.empty {
	background-color: lightgrey;
}
.c2 {
	width: 50%;
}
.c3 {
	width: calc(100%/3);
}
.r2 {
	height: calc(50% - 15px);
}
.r3 {
	height: calc(100%/3 - 10px);
}
#footer {
	height: 30px;
	display: table;
	clear: left;
}
#footer > div {
	display: table-cell;
	text-align: center;
	vertical-align: middle;
	white-space: nowrap;
	padding: 0px 5px;
}
#footer > div:hover {
	background-color:lightgreen;
}
#footer > #navbar {
	width: 100%;
	text-align: left;
}
#footer > #navbar > a:nth-of-type(n+2):before {
	content: ' > ';
	display: inline-block;
	text-decoration: none !important;
	color: black;
}
#footer > #navbar > a:hover {
	background-color:white;
}
#notifications:after {
	content: '(' counter(notifications) ')';
}
#notifications.nonzero:after {
	background-color: yellow;
}
.overlay {
	position: absolute;
	top: 0px;
	left: 0px;
	background-color: white;
	width: 100%;
	height: calc(100% - 30px);
	z-index: -2;
}
#notifications-overlay > ul > li:before {
	counter-increment: notifications;
	content: counter(notifications, none);
}
#notifications-overlay > ul:empty:after {
	content: 'No notifications, currently.';
}
@media(max-width:6in) {
	#footer > div#about,
	#footer > div#operator > span#keyboard
	{
		display:none;
	}
} 