@keyframes objectFrameAnimation {
  0% {
    transform: scale(1.05);
  }
  100% {
    transform: scale(1);
  }
}
.objectFrame {
  display: none;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  pointer-events: none;
}
.objectFrame .objectLabel {
  position: absolute;
  top: 2%;
  left: 2%;
  padding: 5px;
  border: 2px solid white;
  background-color: rgba(0, 0, 0, 0.4);
  color: white;
}
.objectFrame .animationWrapper {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  animation-name: objectFrameAnimation;
  animation-timing-function: linear;
  animation-iteration-count: infinite;
  animation-duration: 0.3s;
}
.objectFrame .animationWrapper > * {
  position: absolute;
  border: 2px solid white;
  height: 10%;
  width: 10%;
}
.objectFrame .animationWrapper :nth-child(1) {
  top: 0;
  left: 0;
  border-right: none;
  border-bottom: none;
}
.objectFrame .animationWrapper :nth-child(2) {
  top: 0;
  left: 100%;
  border-left: none;
  border-bottom: none;
}
.objectFrame .animationWrapper :nth-child(3) {
  top: 100%;
  left: 0;
  border-right: none;
  border-top: none;
}
.objectFrame .animationWrapper :nth-child(4) {
  top: 100%;
  left: 100%;
  border-left: none;
  border-top: none;
}

.crosSquareOverlay {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 3;
  pointer-events: none;
}

.dataPopupOverlay {
  display: none;
  position: absolute;
  top: 50%;
  left: 50%;
  width: fit-content;
  max-width: 40%;
  min-width: 10%;
  min-height: 50px;
  padding: 10px;
  background-color: rgba(155, 155, 155, 0.6);
  border: 2px solid rgb(145, 145, 145);
  box-shadow: 0px 0px 3px 0 black inset;
  text-shadow: 2px 2px 0px black;
  border-radius: 10px;
  transform: translate(-50%, -50%);
  z-index: 4;
  pointer-events: none;
}
.dataPopupOverlay p {
  text-indent: 1em;
}

.conversationOverlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: linear-gradient(to bottom, black 15%, transparent 15%, transparent 85%, black 85%);
  transform: scaleY(2);
  transform-origin: center;
  transition: transform 0.5s linear;
  z-index: 5;
  pointer-events: none;
}
.conversationOverlay.active {
  pointer-events: all;
  transform: scaleY(1);
}
.conversationOverlay .conversationBlock {
  position: absolute;
  display: flex;
  gap: 20px;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 15%;
  padding: 20px;
  color: var(--conversation-font-color);
  font-family: "DX";
  font-size: 1.8em;
}
.conversationOverlay .ctrlBtnWrapper {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-self: center;
  margin-left: auto;
  font-size: 50px;
  line-height: inherit;
}

#requestText,
#responseText,
#responseLoaderOverlay {
  width: 100%;
  height: 100%;
  background-color: black;
  font-size: 0.7em;
}

#requestText {
  color: inherit;
  font-family: inherit;
  outline: none;
  border: none;
  resize: none;
}

#responseText {
  display: none;
  overflow-y: auto;
  white-space: pre-wrap;
  word-break: break-word;
  outline: none;
}

#responseLoaderOverlay {
  position: absolute;
  top: 0;
  left: 0;
  padding: 20px;
  background-color: transparent;
  backdrop-filter: blur(5px);
  color: rgb(122, 122, 122);
  opacity: 0;
  z-index: 2;
  transform: translateX(-20px);
  transform-origin: center;
  transition: opacity 250ms linear, transform 250ms linear;
  pointer-events: none;
}
#responseLoaderOverlay.isVisible {
  opacity: 1;
  transform: translateX(0);
  pointer-events: all;
}

#enterButton,
#exitButton {
  cursor: pointer;
}