.error-message {
  font-size: var(--ls-text-2xl);
  line-height: var(--ls-line-2xl);
  font-weight: 600;
  padding: 0.5rem 0;
  position: absolute;
  top: 50%;
  left: 0;
  right: 0;
  width: 100%;
  transform: translateY(-50%);
  display: flex;
  justify-content: center;
  align-items: center;
  color: var(--ls-font-primary-color);
  background-color: var(--ls-default-background);
  border-radius: 2px;
  opacity: 1;
  animation: append-animate 0.35s cubic-bezier(0.2, 0.7, 0.2, 1);
  will-change: transform, opacity;
  z-index: 10;
  user-select: none;
  -webkit-user-select: none;
}

.blur {
  filter: blur(10px);
  -webkit-filter: blur(10px);
  user-select: none;
  -webkit-user-select: none;
}

@keyframes append-animate {
  from {
    transform: translateY(-50%) scale(0.96);
    opacity: 0;
  }
  to {
    transform: translateY(-50%) scale(1);
    opacity: 1;
  }
}


:host {
  display: block;
  font-family: var(--ls-font-family);
}

.failed-to-load-error {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100%;
  width: 100%;
  font-style: italic;
  color: #dc2626;
  background-color: white;
  border-radius: 2px;
}

.canvas {
  position: relative;
  width: 100%;
  max-width: var(--ls-3d-scene-max-size, 500px);
  aspect-ratio: 1 / 1;
}

.canvas canvas {
  display: block;
  width: 100%;
  height: 100%;
}

.current-floor {
  top: 0;
}

.last-passed-floor {
  bottom: 0;
}

.last-update {
  position: absolute;
  bottom: 0.5rem;
  right: 0;
  font-size: var(--ls-3d-scene-last-update-size, var(--ls-text-base));
  line-height: var(
    --ls-3d-scene-last-update-line-height,
    var(--ls-line-base)
  );
  color: var(--ls-gray-600);
  background-color: var(--ls-gray-100);
  padding: var(--ls-3d-scene-last-update-padding, 0.25rem 0.5rem);
  border-radius: var(--ls-3d-scene-last-update-radius, 20px);
}
