html {
box-sizing: border-box;
font-size: 20px;
}
*, *::before, *::after {
box-sizing: inherit;
}
html, body {
margin: 0;
padding: 0;
}
.compensator {
width: 15rem;
height: 4.5rem;
float: right;
pointer-events: none;
}
@media only screen and (max-width: 520px) {
.compensator {
display: none;
}
}
pre {
font-family: Inconsolata, monospace;
-moz-tab-size: 4;
tab-size: 4;
white-space: pre-wrap;
overflow-wrap: break-word;
padding: 0.5em;
}
#ui-elements-container {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100vh;
pointer-events: none;
}
#ui-elements-container > * {
pointer-events: auto;
}
#controls {
position: absolute;
top: 0;
right: 0;
-webkit-user-select: none;
-moz-user-select: none;
user-select: none;
}
@media only screen and (max-width: 520px) {
#controls {
display: flex;
flex-flow: row-reverse;
align-items: flex-end;
width: 100%;
top: unset;
bottom: 0;
}
}
#controls .buttons {
display: flex;
flex-flow: row-reverse wrap;
background-color: #fff;
padding: 1px;
}
@media only screen and (max-width: 520px) {
#controls .buttons {
flex-flow: column;
}
}
#controls .button {
background-color: #e00;
font-size: 1.5em;
display: flex;
flex-flow: column;
justify-content: center;
align-items: center;
width: 3.5rem;
height: 3.5rem;
text-decoration: none;
font-family: Font Awesome;
color: #fff;
padding: 1px 0 0 0;
border: none;
-webkit-appearance: none;
-moz-appearance: none;
cursor: pointer;
}
#controls .button + .button {
margin: 0 1px 0 0;
}
@media only screen and (max-width: 520px) {
#controls .button + .button {
margin: 1px 0 0 0;
}
}
@media only screen and (hover:hover) and (pointer:fine) {
#controls .button:hover {
color: gold;
}
}
#controls .button:active {
transform: scale(0.975);
}
#controls .button:focus {
outline: none;
}
#controls .button::after {
content: attr(data-label);
display: block;
font-family: sans-serif;
font-size: 0.5rem;
font-weight: bold;
margin: 6px 0 0 0;
text-transform: uppercase;
}
#controls .message {
display: block;
margin: 1px 0 0 0;
padding: 0.25em 0.5em;
text-align: center;
font-family: sans-serif;
font-size: 0.75em;
color: #b00;
}
#controls .message:not(:empty) {
background-color: #fff;
}
@media only screen and (max-width: 520px) {
#controls .message {
margin: 0 0 1px 1px;
flex: 1 1 100%;
padding: 0.5em 0.75em;
font-size: 0.875em;
}
#controls .message:not(:empty) {
outline: 1px solid #fff;
border: 1px solid #e00;
}
}
#scratchpad {
opacity: 0;
z-index: -1;
pointer-events: none;
}