.title {
  margin-top: 2.4rem;
  margin-bottom: 2.4rem;
  font-size: 2.4rem;
  font-weight: 600;
}

h2 {
  font-size: 1.6rem;
  font-weight: 600;
  margin-bottom: 1.2rem;
}

h3 {
  font-size: 1.4rem;
  font-weight: 600;
  line-height: 1.8;
}

.user-input-container {
  margin-top: 2.4rem;
  margin-bottom: 2.4rem;
  display: flex;
  flex-direction: column;
  font-size: 1.6rem;
}

.user-input-label {
  font-weight: 600;
  margin-bottom: 0.6rem;
}

.describe-input {
  width: 100%;
  padding: 1rem;
  margin-bottom: 1rem;
  font-size: 1.4rem;
  border: 1px solid #ccc;
  border-radius: 6px;
  resize: vertical;
  font-family: inherit;
}

.char-count {
  font-size: 1.2rem;
  color: #888;
}

.describe-input[readonly] {
  background-color: #f6f6f6;
}

.describe-input:focus {
  outline: 2px solid #4a6cf7;
}

.btn-container {
  margin-top: 1rem;
  margin-bottom: 2rem;
}

.btn-submit {
  padding: 0.8rem 1.6rem;
  font-size: 1.6rem;
  background: #4a6cf7;
  color: white;
  border: none;
  border-radius: 6px;
  cursor: pointer;
}

.btn-submit:hover {
  background: #3b55c5;
}

.output-box {
  width: 100%;
  min-width: 0;
  min-height: 20em;
  line-height: 1.6;
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: break-word;
  box-sizing: border-box;
}

.output-box * {
  max-width: 100%;
  box-sizing: border-box;
}

.output-box pre {
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  word-break: break-word;
  margin: 0;
}

.output-box code {
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  word-break: break-word;
}
