/* Workspace integration */

.workspace main > .container {
  display: flex;
  flex-direction: column;
  min-height: 100%;
}

.conv {
  display: flex;
  flex-direction: column;
  flex: 1;
}

/* Layout */

.conv__bottom {
  display: flex;
  flex-direction: column;
  margin-top: auto;
}


/* Orb section */

.conv__orb-section {
  display: flex;
  justify-content: center;

  padding: 12px 0 60px;
}


/* Orb wrapper */

.conv__orb-wrapper {
  position: relative;

  width: 156px;
  height: 156px;

  cursor: pointer;
  user-select: none;
  touch-action: none;
}


/* Orb */

.conv__orb {
  width: 100%;
  height: 100%;

  border-radius: 50%;

  background: radial-gradient(
    120% 120% at 30% 30%,
    #b7f09a 0%,
    #a1e47d 35%,
    #5fcbb3 100%
  );

  transition: transform 0.25s ease;
}


/* Sentences */

.conv__sentences {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 18px;
}


/* Secondary sentence */

.conv__secondary {
  max-width: 360px;

  font-size: 0.95rem;
  font-weight: 600;
  line-height: 1.6;
  text-align: center;

  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}


/* Primary sentence */

.conv__primary {
  max-width: 360px;

  font-size: 1rem;
  font-weight: 600;
  line-height: 1.6;
  text-align: center;
}


/* Accent words */

.accent-a1 {
  color: #ff2bff;
}

.accent-a2 {
  color: #8900FF;
}


/* Spacer */

.conv__spacer {
  flex: 1;
}


/* Translation */

.conv__translation {
  max-width: 320px;

  margin: 0 auto;

  padding: 24px 20px;

  font-size: 0.95rem;
  font-weight: 500;
  line-height: 1.6;
  text-align: center;

  color: #9a9aa4;

  hyphens: auto;

  opacity: 1;
}


/* Footer */

footer .container {
  padding-block: 8px;

  font-size: 0.8rem;

  text-align: center;
}

.conv__footer {
  display: flex;
  justify-content: space-between;
  align-items: center;

  padding-inline: 32px;
}


/* Footer button */

.conv__btn {
  display: flex;
  align-items: center;
  justify-content: center;

  width: 64px;
  height: 64px;

  border: none;
  border-radius: 50%;

  background: #f2f2f2;

  cursor: pointer;
}

.conv__btn svg {
  width: 24px;
  height: 24px;
}

.conv__btn.is-test-active {
  background: rgba(255, 80, 140, 0.18);
  color: #ff508c;
}


/* Animations */

.conv__primary,
.conv__secondary {
  will-change: transform, opacity;
}


/* Primary in */

.anim-primary-in {
  animation: conv-primary-in 480ms cubic-bezier(0.22, 0.61, 0.36, 1) both;
}

@keyframes conv-primary-in {
  from {
    opacity: 0;
    transform: translateY(14px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}


/* Primary out */

.anim-primary-out {
  animation: conv-primary-out 160ms ease-out both;
}

@keyframes conv-primary-out {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}


/* Secondary in */

.anim-secondary-in {
  animation: conv-secondary-in 240ms ease-out both;
}

@keyframes conv-secondary-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}


/* Translation in */

.anim-translation-in {
  animation: conv-translation-in 300ms ease-out both;
  animation-delay: 500ms;
}

@keyframes conv-translation-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}


/* Orb speaking */

.conv__orb.is-speaking {
  animation: conv-orb-pulse 1.2s ease-in-out infinite;
}

@keyframes conv-orb-pulse {
  0% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.08);
  }
  100% {
    transform: scale(1);
  }
}