.ih-assistant {
  --ih-black: #090909;
  --ih-cream: #f3efe8;
  --ih-acid: #dfff20;
  --ih-pink: #ff3d6e;
  --ih-wine: #42142f;
  --ih-muted: #aaa1a3;
  --ih-font: 'Space Grotesk', Arial, sans-serif;
  --ih-display: 'Barlow Condensed', Impact, sans-serif;
  position: fixed;
  z-index: 1200;
  right: 24px;
  bottom: 22px;
  color: var(--ih-cream);
  font-family: var(--ih-font);
  font-synthesis: none;
}

.ih-assistant *, .ih-assistant *::before, .ih-assistant *::after { box-sizing: border-box; }
.ih-assistant button, .ih-assistant input, .ih-assistant textarea { font: inherit; }
.ih-assistant a { color: inherit; text-decoration: none; }

.ih-assistant__launcher {
  position: relative;
  width: 72px;
  height: 72px;
  margin-left: auto;
  padding: 0;
  display: grid;
  place-items: center;
  overflow: visible;
  border: 1px solid rgba(243,239,232,.32);
  border-radius: 50%;
  color: var(--ih-black);
  background: var(--ih-black);
  box-shadow: 0 16px 44px rgba(0,0,0,.38);
  cursor: pointer;
  isolation: isolate;
  animation: ih-float 4.2s ease-in-out infinite;
  transition: transform .32s cubic-bezier(.23,1,.32,1), box-shadow .32s;
}

.ih-assistant__launcher::before {
  content: '';
  position: absolute;
  z-index: -1;
  inset: -7px;
  border: 1px solid rgba(223,255,32,.5);
  border-radius: 50%;
  animation: ih-orbit 7s linear infinite;
}

.ih-assistant__launcher::after {
  content: 'ASK';
  position: absolute;
  left: -38px;
  top: 26px;
  padding: 4px 8px;
  color: var(--ih-black);
  background: var(--ih-pink);
  font-size: 8px;
  font-weight: 900;
  letter-spacing: .1em;
  transform: rotate(-90deg);
}

.ih-assistant__launcher:hover { transform: translateY(-6px) rotate(4deg) scale(1.05); box-shadow: 0 23px 55px rgba(0,0,0,.5); }
.ih-assistant__launcher:focus-visible { outline: 3px solid var(--ih-pink); outline-offset: 5px; }
.ih-assistant__launcher-mark { width: 52px; height: 52px; display: grid; place-items: center; border-radius: 50%; background: var(--ih-acid); font: 900 51px/.72 var(--ih-display); letter-spacing: -.08em; transform: rotate(-8deg); }
.ih-assistant__launcher-mark span { color: var(--ih-pink); transform: translateY(-4px); }
.ih-assistant.is-open .ih-assistant__launcher { animation-play-state: paused; transform: scale(.92); }

.ih-assistant__panel {
  position: absolute;
  right: 0;
  bottom: 92px;
  width: min(430px, calc(100vw - 32px));
  height: min(720px, calc(100svh - 125px));
  min-height: 520px;
  display: grid;
  grid-template-rows: auto 1fr auto;
  overflow: hidden;
  color: var(--ih-black);
  background: var(--ih-cream);
  border: 1px solid rgba(243,239,232,.26);
  box-shadow: 0 30px 90px rgba(0,0,0,.5), 14px 14px 0 var(--ih-pink);
  opacity: 0;
  visibility: hidden;
  transform: translateY(26px) scale(.94);
  transform-origin: 90% 100%;
  transition: opacity .3s ease, transform .45s cubic-bezier(.23,1,.32,1), visibility .45s;
}

.ih-assistant.is-open .ih-assistant__panel { opacity: 1; visibility: visible; transform: none; }
.ih-assistant__head { min-height: 79px; padding: 15px 15px 15px 18px; display: flex; align-items: center; gap: 12px; color: var(--ih-cream); background: var(--ih-black); border-bottom: 3px solid var(--ih-acid); }
.ih-assistant__head-mark { flex: 0 0 auto; width: 42px; height: 42px; display: grid; place-items: center; color: var(--ih-pink); background: var(--ih-acid); border-radius: 50%; font: 900 39px/.7 var(--ih-display); transform: rotate(-7deg); }
.ih-assistant__identity { min-width: 0; display: flex; flex-direction: column; }
.ih-assistant__identity strong { font: 900 20px/.9 var(--ih-display); letter-spacing: -.01em; text-transform: uppercase; }
.ih-assistant__identity span { margin-top: 5px; color: var(--ih-muted); font-size: 8px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.ih-assistant__status { width: 7px; height: 7px; margin-left: 2px; display: inline-block; border-radius: 50%; background: var(--ih-acid); box-shadow: 0 0 0 4px rgba(223,255,32,.12); }
.ih-assistant__head-actions { margin-left: auto; display: flex; gap: 6px; }
.ih-assistant__icon-button { width: 34px; height: 34px; padding: 0; display: grid; place-items: center; border: 1px solid rgba(243,239,232,.24); color: var(--ih-cream); background: transparent; cursor: pointer; font-size: 17px; font-weight: 800; transition: color .15s, background .15s; }
.ih-assistant__icon-button:hover { color: var(--ih-black); background: var(--ih-acid); }
.ih-assistant__icon-button:focus-visible { outline: 2px solid var(--ih-pink); outline-offset: 2px; }

.ih-assistant__body { min-height: 0; position: relative; overflow: hidden; }
.ih-assistant__thread { height: 100%; padding: 19px 17px 25px; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: var(--ih-pink) transparent; }
.ih-assistant__welcome { margin-bottom: 17px; padding: 20px; color: var(--ih-cream); background: var(--ih-wine); }
.ih-assistant__welcome span { color: var(--ih-acid); font-size: 8px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.ih-assistant__welcome h2 { margin: 13px 0 10px; color: var(--ih-cream); font: 900 39px/.82 var(--ih-display); letter-spacing: -.035em; text-transform: uppercase; }
.ih-assistant__welcome h2 b { color: var(--ih-pink); font: inherit; }
.ih-assistant__welcome p { margin: 0; color: #d0c3ca; font-size: 12px; line-height: 1.5; }
.ih-assistant__quick { margin: 0 0 19px; display: flex; flex-wrap: wrap; gap: 7px; }
.ih-assistant__quick button { padding: 9px 10px; border: 1px solid rgba(9,9,9,.3); color: var(--ih-black); background: transparent; font-size: 8px; font-weight: 900; letter-spacing: .05em; text-transform: uppercase; cursor: pointer; transition: background .15s, color .15s, transform .15s; }
.ih-assistant__quick button:hover { color: var(--ih-cream); background: var(--ih-black); transform: translateY(-2px); }

.ih-assistant__message { margin: 13px 0; display: flex; flex-direction: column; gap: 5px; animation: ih-message-in .35s cubic-bezier(.23,1,.32,1) both; }
.ih-assistant__message > span { color: #71676a; font-size: 7px; font-weight: 900; letter-spacing: .11em; text-transform: uppercase; }
.ih-assistant__message p { max-width: 90%; margin: 0; padding: 12px 14px; font-size: 12px; line-height: 1.52; white-space: pre-wrap; }
.ih-assistant__message--assistant p { color: var(--ih-cream); background: var(--ih-black); }
.ih-assistant__message--user { align-items: flex-end; }
.ih-assistant__message--user p { color: var(--ih-black); background: var(--ih-pink); }
.ih-assistant__message--user > span { text-align: right; }
.ih-assistant__typing p { width: 62px; display: flex; gap: 5px; }
.ih-assistant__typing i { width: 6px; height: 6px; display: block; border-radius: 50%; background: var(--ih-acid); animation: ih-dot 1s ease-in-out infinite; }
.ih-assistant__typing i:nth-child(2) { animation-delay: .12s; }
.ih-assistant__typing i:nth-child(3) { animation-delay: .24s; }

.ih-assistant__reply-actions { margin: 9px 0 3px; display: grid; gap: 6px; }
.ih-assistant__reply-actions a, .ih-assistant__reply-actions button { min-height: 42px; padding: 11px 13px; display: flex; justify-content: space-between; align-items: center; border: 1px solid var(--ih-black); color: var(--ih-black); background: var(--ih-acid); font-size: 9px; font-weight: 900; letter-spacing: .06em; text-align: left; text-transform: uppercase; cursor: pointer; }
.ih-assistant__reply-actions a:nth-child(2), .ih-assistant__reply-actions button:nth-child(2) { background: var(--ih-cream); }
.ih-assistant__reply-actions a:hover, .ih-assistant__reply-actions button:hover { color: var(--ih-cream); background: var(--ih-wine); }

.ih-assistant__composer { padding: 12px; color: var(--ih-cream); background: var(--ih-black); border-top: 1px solid rgba(243,239,232,.2); }
.ih-assistant__form { display: grid; grid-template-columns: 1fr 44px; gap: 8px; }
.ih-assistant__form input { min-width: 0; height: 44px; padding: 0 13px; border: 1px solid rgba(243,239,232,.3); border-radius: 0; outline: 0; color: var(--ih-cream); background: #161416; font-size: 12px; }
.ih-assistant__form input::placeholder { color: #8f8587; }
.ih-assistant__form input:focus { border-color: var(--ih-acid); }
.ih-assistant__send { width: 44px; height: 44px; padding: 0; display: grid; place-items: center; border: 0; color: var(--ih-black); background: var(--ih-acid); cursor: pointer; font-size: 20px; transition: background .15s, transform .15s; }
.ih-assistant__send:hover { background: var(--ih-pink); transform: translateY(-2px); }
.ih-assistant__send:disabled { opacity: .5; cursor: wait; transform: none; }
.ih-assistant__disclosure { margin: 8px 2px 0; color: #82797c; font-size: 7px; line-height: 1.35; }
.ih-assistant__disclosure a,.ih-assistant__privacy a { color:inherit; border-bottom:1px solid; }
.ih-assistant__privacy { margin:15px 0 0!important; color:#5e5357; font-size:8px!important; line-height:1.45!important; }

.ih-assistant__enquiry { position: absolute; z-index: 3; inset: 0; padding: 19px; overflow-y: auto; color: var(--ih-black); background: var(--ih-acid); opacity: 0; visibility: hidden; transform: translateX(100%); transition: opacity .25s, transform .4s cubic-bezier(.23,1,.32,1), visibility .4s; }
.ih-assistant.is-enquiry .ih-assistant__enquiry { opacity: 1; visibility: visible; transform: none; }
.ih-assistant__enquiry-back { padding: 8px 0; border: 0; border-bottom: 2px solid var(--ih-pink); color: var(--ih-black); background: transparent; font-size: 8px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; cursor: pointer; }
.ih-assistant__enquiry h3 { margin: 28px 0 9px; font: 900 43px/.8 var(--ih-display); letter-spacing: -.035em; text-transform: uppercase; }
.ih-assistant__enquiry > p { margin: 0 0 24px; font-size: 11px; line-height: 1.45; }
.ih-assistant__enquiry label { margin: 0 0 17px; display: block; }
.ih-assistant__enquiry label span { margin-bottom: 6px; display: block; font-size: 8px; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }
.ih-assistant__enquiry input, .ih-assistant__enquiry textarea { width: 100%; padding: 10px 0; border: 0; border-bottom: 2px solid var(--ih-black); border-radius: 0; outline: 0; color: var(--ih-black); background: transparent; font-size: 12px; }
.ih-assistant__enquiry textarea { min-height: 92px; resize: vertical; }
.ih-assistant__enquiry input:focus, .ih-assistant__enquiry textarea:focus { border-color: var(--ih-pink); }
.ih-assistant__enquiry-submit { width: 100%; padding: 15px; display: flex; justify-content: space-between; border: 2px solid var(--ih-black); color: var(--ih-cream); background: var(--ih-black); font-size: 9px; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; cursor: pointer; box-shadow: 7px 8px 0 var(--ih-pink); }
.ih-assistant__enquiry-submit:disabled { opacity: .55; cursor: wait; }
.ih-assistant__enquiry-status { min-height: 18px; margin: 14px 0 0!important; font-size: 10px!important; font-weight: 700; }
.ih-assistant__enquiry-status a { border-bottom: 1px solid; }
.ih-assistant__trap { position: absolute!important; left: -10000px!important; }

@keyframes ih-float { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-9px) rotate(2deg); } }
@keyframes ih-orbit { to { transform: rotate(360deg); } }
@keyframes ih-dot { 0%,100% { opacity: .35; transform: translateY(0); } 50% { opacity: 1; transform: translateY(-3px); } }
@keyframes ih-message-in { from { opacity: 0; transform: translateY(10px); } }

@media (max-width: 600px) {
  .ih-assistant { right: 14px; bottom: 14px; }
  .ih-assistant__launcher { width: 62px; height: 62px; }
  .ih-assistant__launcher-mark { width: 45px; height: 45px; font-size: 45px; }
  .ih-assistant__launcher::after { display: none; }
  .ih-assistant__panel { right: -2px; bottom: 76px; width: calc(100vw - 24px); height: min(680px, calc(100svh - 100px)); min-height: 460px; box-shadow: 0 24px 70px rgba(0,0,0,.55), 7px 7px 0 var(--ih-pink); }
  .ih-assistant__head { min-height: 70px; }
  .ih-assistant__welcome h2 { font-size: 36px; }
}

@media (prefers-reduced-motion: reduce) {
  .ih-assistant *, .ih-assistant *::before, .ih-assistant *::after { animation-duration: .001ms!important; animation-iteration-count: 1!important; transition-duration: .001ms!important; }
}
