@font-face {
  font-family: 'AdventPro';
  font-display: swap;
  src: url('../vendor/fonts/AdventPro-Regular.ttf');
  -webkit-tap-highlight-color: transparent;
}

body {
  color: #bbb;
  background: #1e1e1e;

  max-width: 100vw;
  max-height: 100vh;
  height: 100%;
  width: 100%;

  padding: 0;
  margin: 0;

  font-family: 'AdventPro', sans-serif;
  font-size: 18px;
  font-weight: 300;
  line-height: 1em;

  display: flex;
  flex-direction: column;
  align-items: center;
}
#display h1,
#display p,
#display b {
  -webkit-user-select: text;
  user-select: text;
}

.svgFloor {
  position: absolute;
  top: 0;

  display: block;
  max-width: 60%;

  background-image: url('../images/back234.svg');
  background-repeat: no-repeat;
  background-size: 100%;
  background-position: center;

  filter: drop-shadow(-20px 20px 10px #000);
  transition-duration: 0.7s;

  pointer-events: none;
}
.svgFloor * {
  pointer-events: all;
}
.svgFloor:nth-of-type(1):hover + .levelTitle {
  margin-top: 1.9em;
  margin-bottom: 1.5em;
}
.svgFloor.selected:nth-of-type(1) + .levelTitle {
  margin-top: 2.5em;
  margin-bottom: 9.3em;
}
.svgFloor:nth-of-type(2):hover + .levelTitle {
  margin-top: 4em;
  margin-bottom: 2.8em;
}
.svgFloor.selected:nth-of-type(2) + .levelTitle {
  margin-top: 4em;
  margin-bottom: 11.3em;
}
.svgFloor:nth-of-type(3):hover + .levelTitle {
  margin-top: 4.9em;
  margin-bottom: 3.3em;
}
.svgFloor.selected:nth-of-type(3) + .levelTitle {
  margin-top: 4em;
  margin-bottom: 10.9em;
}
.svgFloor:nth-of-type(4):hover + .levelTitle {
  margin-top: 5.6em;
}
.svgFloor.selected:nth-of-type(4) + .levelTitle {
  margin-top: 4em;
}
.svgFloor:hover ~ *,
.svgFloor.selected ~ * {
  opacity: 0.7;
}
.svgFloor:nth-of-type(1) {
  transform: perspective(100em) rotateX(70deg) rotateZ(-30deg) translateZ(195px);
  z-index: 4;
}
.svgFloor:nth-of-type(1):hover {
  top: -40px;
}
.svgFloor:nth-of-type(1):hover ~ * {
  top: 30px;
}
.svgFloor:nth-of-type(2) {
  transform: perspective(100em) rotateX(70deg) rotateZ(-30deg) translateZ(65px);
  z-index: 3;
}
.svgFloor:nth-of-type(2):hover {
  top: 70px;
}
.svgFloor:nth-of-type(2):hover ~ * {
  top: 190px;
}
.svgFloor:nth-of-type(3) {
  transform: perspective(100em) rotateX(70deg) rotateZ(-30deg) translateZ(-65px);
  z-index: 2;
}
.svgFloor:nth-of-type(3):hover {
  top: 110px;
}
.svgFloor:nth-of-type(3):hover ~ * {
  top: 260px;
}
.svgFloor:nth-of-type(4) {
  transform: perspective(100em) rotateX(70deg) rotateZ(-30deg) translateZ(-195px);
  background-image: url('../images/back1.svg');
  z-index: 1;
}
.svgFloor:nth-of-type(4):hover {
  top: 140px;
}
.svgFloor:nth-of-type(4):hover ~ * {
  top: 0px;
}
.svgFloor.selected {
  opacity: 1;
}

.svgFloor text {
  font-family: 'AdventPro', sans-serif;
  opacity: 0;
  transition-duration: 0.3s;
}
.svgFloor:hover text,
.svgFloor.selected text {
  opacity: 1;
}
.svgFloor g text {
  pointer-events: none;
}
.svgFloor g[onclick] rect {
  cursor: pointer;
  transition-duration: 0.09s;
  opacity: 0.5;
  fill: rgba(25, 25, 25);
}
.svgFloor g[onclick]:hover rect {
  opacity: 0.1;
  fill: white;
}

.svgFloor.initial,
.svgFloor.initial ~ * {
  transform: none;
  top: 3.5em;
}
.svgFloor.initial ~ * {
  opacity: 0 !important;
}

.levelTitle {
  font-size: 45px;
  transform: perspective(100em) rotateX(-25deg) rotateY(-50deg);
  margin-left: 13em;
  margin-bottom: 0;
  transition-duration: 0.7s;
  margin-top: 2.5em;
}
.levelTitle:first-of-type {
  margin-top: 2.75em;
}

#display {
  position: fixed;

  display: flex;
  align-items: center;
  flex-direction: row;

  right: 0;

  padding: 1em;
  margin: 1em;
  max-height: 90%;

  text-align: center;

  background-color: rgba(25, 25, 25, 0.5);
  box-shadow: 0 0 1em black;
  opacity: 0;
  border-radius: 0.8em;

  transition-duration: 0.25s;

  white-space: nowrap;
  overflow: hidden;
}
#display.opened {
  opacity: 1;
}

#display > * {
  width: 50%;
  padding: 1em;
}

#roomDisplay {
  position: fixed;

  display: flex;
  align-items: center;
  flex-direction: column;

  left: 0;

  padding: 1em;
  margin: 1em;
  max-height: 90%;

  text-align: center;

  background-color: rgba(25, 25, 25, 0.5);
  box-shadow: 0 0 1em black;
  opacity: 0;
  border-radius: 0.8em;

  transition-duration: 0.25s;

  white-space: nowrap;
  overflow: hidden;
}
#roomDisplay.opened {
  opacity: 1;
}
