.trait-detail__hero {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-lg);
  align-items: stretch;
  margin-bottom: var(--space-lg);

  @media (width <= 640px) {
    grid-template-columns: 1fr;
    margin-bottom: 0;

    & .trait-detail__identity {
      min-height: 280px;
    }
  }
}

.trait-detail__identity {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: var(--space-lg);
  border-radius: var(--radius-lg);
  background: linear-gradient(
    135deg,
    var(--color-surface) 0%,
    var(--color-surface-alt) 50%,
    var(--color-primary) 150%
  );
  border: 1px solid var(--color-border);
  overflow: hidden;
}

.trait-detail__identity--cover {
  color: #fff;

  & .trait-detail__desc {
    color: rgb(255 255 255 / 70%);
  }
}

.trait-detail__attribution {
  position: absolute;
  bottom: var(--space-sm);
  right: var(--space-sm);
  font-size: 0.6rem;
  color: rgb(255 255 255 / 40%);
  text-decoration: none;

  &:hover {
    color: rgb(255 255 255 / 70%);
  }
}

.trait-detail__hero-emoji {
  position: absolute;
  top: var(--space-md);
  right: var(--space-md);
  font-size: 2.5rem;
  line-height: 1;
  filter: drop-shadow(0 2px 6px rgb(0 0 0 / 70%));
}

.trait-detail__identity-text {
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
  text-shadow: 0 1px 4px rgb(0 0 0 / 80%);
}

.trait-detail__title {
  font-size: var(--text-2xl);
  margin: 0;
  line-height: 1.2;
}

.trait-detail__desc {
  color: var(--color-text-muted);
  margin: 0;
  font-size: var(--text-sm);
}

.trait-detail__empty {
  color: var(--color-text-muted);
  font-style: italic;
}

.trait-detail__nodata {
  color: var(--color-text-muted);
  margin: 0;
}

.trait-detail__upsell {
  font-size: var(--text-sm);
  color: var(--color-warning);
  margin: 0;
  font-style: italic;
}

.trait-detail__interp {
  font-size: var(--text-sm);
  margin: 0;
  text-align: center;
}

.trait-detail__interp--neutral {
  color: var(--color-text-muted);
}

.trait-detail__interp--good {
  color: var(--color-success);
}

.trait-detail__interp--caution {
  color: var(--color-warning);
}
