body {
  background: #edeffa;
}
.chat {
  font-family: "Public Sans", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  font-size: 16px;
  color: #1f1f1f;
  line-height: 1.45;
}

.chat p,
.chat li {
  margin: 0 0 1em;
  font-size: 16px;
}

.example {
  width: 100%;
  margin: 2em auto 3em;
  position: relative;
  background: #FFF;
  border-radius: 16px;
  display: block;
  overflow: hidden;
  box-shadow: 0px 10px 10px #0000000f;
}


.example h2 {
  font-size: 16px;
  font-weight: 600;
  margin: 0 !important;
  padding-right: 105px;
  font-family: 'Public Sans', sans-serif;
}

.example section {
  float: left;
  width: 100%;
  display: block;
  padding: 16px;
  position: relative;
  box-sizing: border-box;
}

section.header {
  border-bottom: 1px solid #dde1eb;
}

section.dialogue {
  padding-bottom: 0;
  max-height: 360px;
  overflow: scroll;
  min-height: 360px;
}

section.dialogue .call {
  background: #edeffa;
  border-radius: 26px 26px 0 26px;
  padding: 16px;
  width: 95%;
  margin-left: 5%;
  margin-bottom: 1.5em;
  box-sizing: border-box;
}

section.dialogue .call p {
  margin-bottom: 0;
}
.call {
  opacity: 0;
  transition: all 1.5s ease;
  top: 20px;
  transform: translateY(30px);
}

.call.visible {
  display: block;
  opacity: 1;
  transform: translateY(0px);
}

section.dialogue .response {

}

section.prompt {
}

section.prompt .input {
  border: 1px solid #909299;
  border-radius: 16px;
  padding: 16px 60px 16px 16px;
  position: relative;
  min-height: 60px;
  z-index: 100;
  background: #FFF;
  text-align: right;
  box-sizing: border-box;
  max-width: none;
}

section.prompt p {
  margin-bottom: 0;
}

section.prompt .input span {
  font-size:12px;
  text-align: right;
  color: #585b60;
}

button.skip-to-end {
  background: #3b4dd1;
  color: #FFF;
  padding: 10px 15px 10px 36px;
  border: none;
  border-radius: 27px;
  position: absolute;
  top: 350px;
  font-size: 14px;
  box-shadow: 0px 3px 5px #0000004f;
  cursor: pointer;
  left: calc(50% - 75px);
  opacity: 0;
  top: 0;
  pointer-events: none;
  transition: opacity 0.3s ease, top 0.3s ease;
  z-index: 90;
}
button.skip-to-end.visible {
  opacity: 1;
  top: -40px;                /* move upwards when visible */
  pointer-events: auto;
}
button.skip-to-end:hover {
  background: #6e78c4;
}
button.skip-to-end svg {
  position: absolute;
  left: 9px;
  top: 9px;
  fill: #FFF;
}

.btn-lm {
  background: #3b4dd1;
  width: 40px;
  height: 40px;
  position: absolute;
  right: 26px;
  top: 26px;
  border: none;
  outline: none;
  border-radius: 100%;
  cursor: pointer;
  z-index: 110;
  box-sizing: border-box;
}
.btn-lm:hover {
  opacity: 0.5;
}
.btn-lm svg {
  fill: #FFF;
  position: absolute;
  left: 10px;
  top: 8px;
}
.btn-lm.white {
  width: auto;
  background: #FFF;
  border: 1px solid #bdbdbd;
  border-radius: 40px;
  top: 8px;
  right: 8px;
  font-size: 13px;
  padding: 8px 15px 8px 36px;
  height: auto;
  line-height: 1.3;
}
.btn-lm.white svg {
  fill: #1f1f1f;
  width: 21px;
  top: 5px;
}

.btn-lm:hover { filter: brightness(1.05); }
.btn-lm:active { transform: translateY(1px) scale(.99); }

/* CSS */
.loading-ellipsis {
  gap: 0.3em;
  display: none;
}
.loading-ellipsis.visible {
  display: inline-flex;
}

.loading-ellipsis span {
  width: 0.65em;
  height: 0.65em;
  background-color: rgb(82 86 162);
  border-radius: 50%;
  opacity: 0.3;
  animation: fade 1.2s infinite;
}

.loading-ellipsis span:nth-child(1) { animation-delay: 0s; }
.loading-ellipsis span:nth-child(2) { animation-delay: 0.2s; }
.loading-ellipsis span:nth-child(3) { animation-delay: 0.4s; }

@keyframes fade {
  0%, 80%, 100% { opacity: 0.3; }
  40%           { opacity: 1; }
}

/* Reduced motion fallback */
@media (prefers-reduced-motion: reduce) {
  .loading-ellipsis span { animation: none; opacity: 1; }
}

.fade-word {
  opacity: 0;
  transition: opacity 0.2s ease;
  display: none;
}

.fade-word.visible {
  opacity: 1;
  display: inline;
}

.response li {
  list-style: none;
}

.response li strong span:nth-child(1)::before {
  content: " \2022";
  position: absolute;
  left: 1.6em;
  font-size: 1.4em;
  line-height: 1;
}
code {
}
code span {
  background: rgba(135, 131, 120, 0.15);
  padding: 0.2em 0.4em;
  border-radius: 3px;
  font-size: 85%;
  tab-size: 2;
  color: #eb5757;
  word-wrap: break-word;
}

.example.slack {
  border-radius: 8px;
}

.slack .pseudo-header {
position: absolute;
top: -37px;
width: calc(100% - 120px);
left: 10px;
}

.slack .pseudo-btns {
  float: left;
}

.slack .pseudo-header svg {
  margin-left: 3px;
}

.slack .pseudo-header .pseudo-search {
position: relative;
float: left;
background: #ffffff40;
border-radius: 6px;
margin-top: -4px;
margin-left: 11px;
width: calc(100% - 70px);
color: #FFF;
height: 31px;
padding: 4px 0 0 35px;
overflow: hidden;
}

.slack .pseudo-header .pseudo-search svg {
position: absolute;
left: 5px;
top: 4px;
width: 20px;
}

.slack .btn-lm.white {
top: -41px;
background: transparent;
border-color: #FFF;
color: #FFF;
border-radius: 6px;
padding: 6px 9px 6px 29px;
right: 10px;
}

.slack .btn-lm.white svg {
    fill: #FFF !important;
top: 2px;
left: 5px;
}

.slack section.header {
  border-top: 50px solid transparent;
  border-image: linear-gradient(to right, #722d7b, #59165b) 1;
  border-bottom: none;
}

.slack .dialogue {
  border-top: 1px solid #e8e8e8;
}

.slack .btn-lm.post {
  border-radius: 6px;
  background: #007a5a;
}

.slack section.prompt .input {
  border-radius: 6px;
}

.slack h2 span {
font-size: 12px;
text-align: right;
font-weight: 400;
color: #797a7c;
margin-left: 8px;
}

.slack section.dialogue .call {
background: none;
margin: 0 0 20px;
padding: 0 0 0 50px;
}

span.mention {
    background: #ebf5fa;
color: #1565a4;
padding: 1px 4px 3px 4px;
border-radius: 4px;
}

.slack .call img {
  position: absolute;
  width: 40px !important;
  border-radius: 6px;
  left: 0;
  top: 4px;
}

.slack .response:before {
  display: block;
  background: url(../img/thinking/kryton.jpg) no-repeat;
  background-size: cover;
  border-radius: 6px;
  width: 40px;
  height: 40px;
  content: "";
  position: absolute;
  left: 10px;
}

.slack .response {
position: relative;
margin: 45px 0 0;
padding: 10px 10px 10px 60px;
background: #fef8e9;
border-radius: 5px;
border: 1px solid orange;
min-height: 60px;
}
.slack .response p:first-of-type {
  margin: 0;
}
.slack .response ul {
  padding-left: 20px;
}
.slack .response li strong span:nth-child(1)::before {
  left: 60px;
}

.slack .response em {
color: #525252;
background: #e9e9e9;
border-radius: 3px;
margin-left: 5px;
font-style: normal;
padding: 3px;
font-size: 10px;
text-transform: uppercase;
font-weight: bold;
display: inline-block;
line-height: 1;
}

.slack .loading-wrap {
  position: relative;
  margin: 0 0 -23px 52px;
}

.slack .loading-ellipsis span {
  background: #CCC;
}

h2:not(.h1) {
  margin-top: 1.5em;
}

.slack button.skip-to-end {
  background: #1064a3;
}

@media screen and (max-width: 600px) {
  .example {
  width: 100%;
  }
  .slack h2 span {
    display: none;
  }
  .btn-lm.white {
    width: 20px;
    overflow: hidden;
    text-indent: -99999px;
    padding: 8px 21px;
  }
  .example h2 {
    padding-right: 45px;
  }
}


.single-post article.single .entry-content h3 {
  margin-top: 0;
}

details {
padding: 0;
margin: 0 0 0.5em;
}

summary {
  font-weight: bold;
  margin: -0.5em -0.5em 0;
  padding: 0.5em;
  display: list-item;
  cursor: pointer;
}

details[open] div {
  border-left: 3px solid;
  padding: 0 0 0 0.6em;
  margin: 0 0 2em 0.2em;
}

details[open] summary {
  margin-bottom: 0;
}

details summary::-webkit-details-marker {
  /* for WebKit browsers */
  display: inline; /* or none if you want to hide it */
}
details summary::marker {
  /* for browsers supporting ::marker on summary */
  color: currentColor;
  font-size: 1em;
}