/*!
 * three-dots - v0.3.2
 * CSS loading animations made with single element
 * https://nzbin.github.io/three-dots/
 *
 * Copyright (c) 2018 nzbin
 * Released under MIT License
 */
:root {
  --sitewide-font: unset;
  --sitewide-font-size: 16px;
  --text-bot-background: unset;
  --text-chatcolor: unset;
  --text-emphasis-color: unset;
  --text-quote-color: unset;
  --text-quote-emphasis-color: unset;
  --text-quote-emphasis-weight: unset;
  --tooltip-x: 0;
  --tooltip-y: 0;
  --hl-100: #e0f2fe;
  --hl-200: #bae6fd;
  --hl-300: #7dd3fc;
  --hl-400: #38bdf8;
  --hl-500: #0ea5e9;
  --hl-600: #0284c7;
  --hl-700: #0369a1;
  --hl-800: #075985;
  --hl-900: #0c4a6e;
  --green-100: #dcfce7;
  --green-200: #bbf7d0;
  --green-300: #86efac;
  --green-400: #4ade80;
  --green-500: #22c55e;
  --green-600: #16a34a;
  --green-700: #15803d;
  --green-800: #166534;
  --green-900: #14532d;
  --red-100: #fee2e2;
  --red-200: #fecaca;
  --red-300: #fca5a5;
  --red-400: #f87171;
  --red-500: #ef4444;
  --red-600: #dc2626;
  --red-700: #b91c1c;
  --red-800: #991b1b;
  --red-900: #7f1d1d;
  --lime-100: #ecfccb;
  --lime-200: #d9f99d;
  --lime-300: #bef264;
  --lime-400: #a3e635;
  --lime-500: #84cc16;
  --lime-600: #65a30d;
  --lime-700: #4d7c0f;
  --lime-800: #3f6212;
  --lime-900: #365314;
  --sky-100: #e0f2fe;
  --sky-200: #bae6fd;
  --sky-300: #7dd3fc;
  --sky-400: #38bdf8;
  --sky-500: #0ea5e9;
  --sky-600: #0284c7;
  --sky-700: #0369a1;
  --sky-800: #075985;
  --sky-900: #0c4a6e;
  --teal-100: #ccfbf1;
  --teal-200: #99f6e4;
  --teal-300: #5eead4;
  --teal-400: #2dd4bf;
  --teal-500: #10b981;
  --teal-600: #0d9488;
  --teal-700: #0f766e;
  --teal-800: #115e59;
  --teal-900: #134e4a;
  --cyan-100: #cffafe;
  --cyan-200: #a5f3fc;
  --cyan-300: #67e8f9;
  --cyan-400: #22d3ee;
  --cyan-500: #06b6d4;
  --cyan-600: #0891b2;
  --cyan-700: #0e7490;
  --cyan-800: #155e75;
  --cyan-900: #164e63;
  --orange-100: #ffedd5;
  --orange-200: #fed7aa;
  --orange-300: #fdba74;
  --orange-400: #fb923c;
  --orange-500: #f97316;
  --orange-600: #ea580c;
  --orange-700: #c2410c;
  --orange-800: #9a3412;
  --orange-900: #7c2d12;
  --blue-100: #dbeafe;
  --blue-200: #bfdbfe;
  --blue-300: #93c5fd;
  --blue-400: #60a5fa;
  --blue-500: #3b82f6;
  --blue-600: #2563eb;
  --blue-700: #1d4ed8;
  --blue-800: #1e40af;
  --blue-900: #1e3a8a;
  --pink-100: #fce7f3;
  --pink-200: #fbcfe8;
  --pink-300: #f9a8d4;
  --pink-400: #f472b6;
  --pink-500: #ec4899;
  --pink-600: #db2777;
  --pink-700: #be185d;
  --pink-800: #9d174d;
  --pink-900: #831843;
  --rose-100: #ffe4e6;
  --rose-200: #fecdd3;
  --rose-300: #fda4af;
  --rose-400: #fb7185;
  --rose-500: #f43f5e;
  --rose-600: #e11d48;
  --rose-700: #be123c;
  --rose-800: #9f1239;
  --rose-900: #881337;
  --fuchsia-100: #fae8ff;
  --fuchsia-200: #f5d0fe;
  --fuchsia-300: #f0abfc;
  --fuchsia-400: #e879f9;
  --fuchsia-500: #d946ef;
  --fuchsia-600: #c026d3;
  --fuchsia-700: #a21caf;
  --fuchsia-800: #86198f;
  --fuchsia-900: #701a75;
  --purple-100: #f3e8ff;
  --purple-200: #e9d5ff;
  --purple-300: #d8b4fe;
  --purple-400: #c084fc;
  --purple-500: #a855f7;
  --purple-600: #9333ea;
  --purple-700: #7e22ce;
  --purple-800: #6b21a8;
  --purple-900: #581c87;
  --premium-100: #fef9c3;
  --premium-200: #fef08a;
  --premium-300: #fde047;
  --premium-400: #facc15;
  --premium-500: #eab308;
  --premium-600: #ca8a04;
  --premium-700: #a16207;
  --premium-800: #854d0e;
  --premium-900: #713f12;
  --truegray-100: #f5f5f5;
  --truegray-200: #e5e5e5;
  --truegray-300: #d4d4d4;
  --truegray-400: #a3a3a3;
  --truegray-500: #737373;
  --truegray-600: #525252;
  --truegray-700: #404040;
  --truegray-800: #262626;
  --truegray-900: #171717;
  --truegray-1000: #131313;
  --bg-100: #f5f5f5;
  --bg-200: #e5e5e5;
  --bg-300: #d4d4d4;
  --bg-400: #a3a3a3;
  --bg-500: #737373;
  --bg-600: #525252;
  --bg-700: #404040;
  --bg-800: #262626;
  --bg-900: #171717;
  --bg-1000: #131313;
  --gradient-100: #f5f5f5;
  --gradient-200: #e5e5e5;
  --gradient-300: #d4d4d4;
  --gradient-400: #a3a3a3;
  --gradient-500: #737373;
  --gradient-600: #525252;
  --gradient-700: #404040;
  --gradient-800: #262626;
  --gradient-900: #171717;
  --gradient-1000: #131313;
  --black-100: #000;
  --black-200: #111827;
  --black-300: #1f2937;
  --black-400: #374151;
  --black-500: #4b5563;
  --black-600: #6b7280;
  --black-700: #9ca3af;
  --black-800: #d1d5db;
  --black-900: #fff;
  --text-100: #171717;
  --text-200: #262626;
  --text-300: #404040;
  --text-400: #525252;
  --text-500: #737373;
  --text-600: #a3a3a3;
  --text-700: #d4d4d4;
  --text-800: #e5e5e5;
  --text-900: #f5f5f5;
  --bluegray-100: #f1f5f9;
  --bluegray-200: #e2e8f0;
  --bluegray-300: #cbd5e1;
  --bluegray-400: #94a3b8;
  --bluegray-500: #64748b;
  --bluegray-600: #475569;
  --bluegray-700: #334155;
  --bluegray-800: #1e293b;
  --bluegray-900: #0f172a;
  --bluegray-1000: #080f1f;
  --coolgray-100: #f3f4f6;
  --coolgray-200: #e5e7eb;
  --coolgray-300: #d1d5db;
  --coolgray-400: #9ca3af;
  --coolgray-500: #6b7280;
  --coolgray-600: #4b5563;
  --coolgray-700: #374151;
  --coolgray-800: #1f2937;
  --coolgray-900: #111827;
  --coolgray-1000: #0b111f;
  --info-100: #e0f2fe;
  --info-200: #bae6fd;
  --info-300: #7dd3fc;
  --info-400: #38bdf8;
  --info-500: #0ea5e9;
  --info-600: #0284c7;
  --info-700: #0369a1;
  --info-800: #075985;
  --info-900: #0c4a6e;
  --success-100: #dcfce7;
  --success-200: #bbf7d0;
  --success-300: #86efac;
  --success-400: #4ade80;
  --success-500: #22c55e;
  --success-600: #16a34a;
  --success-700: #15803d;
  --success-800: #166534;
  --success-900: #14532d;
  --warning-100: #fef9c3;
  --warning-200: #fef08a;
  --warning-300: #fde047;
  --warning-400: #facc15;
  --warning-500: #eab308;
  --warning-600: #ca8a04;
  --warning-700: #a16207;
  --warning-800: #854d0e;
  --warning-900: #713f12;
  --error-100: #fee2e2;
  --error-200: #fecaca;
  --error-300: #fca5a5;
  --error-400: #f87171;
  --error-500: #ef4444;
  --error-600: #dc2626;
  --error-700: #b91c1c;
  --error-800: #991b1b;
  --error-900: #7f1d1d;
  --highlight: #0ea5e9;
  --rgba-chat-bot: #000;
  --rgba-chat-user: #000;
  --rgba-chat-ooc: #000;
  --rgba-chat-alpha: .75;
  --outline-thickness: 2px;
  --outline-thickness-rev: -2px;
  --outline-shadow: 2px;
}

html {
  font-size: var(--sitewide-font-size);
}

.app {
  height: 100dvh;
  overflow-y: overlay;
}

.app .content-background {
  background-color: rgba(var(--rgb-bg-900), .9);
  border-radius: .5rem;
  height: max-content;
  padding-bottom: 1rem;
}

#fuse-privacy-tool {
  font-size: .5rem;
}

.text-input-min-h-override {
  min-height: 120px !important;
}

.bg-chat-bot {
  background: var(--rgba-chat-bot);
  backdrop-filter: blur(5px);
}

.bg-chat-user {
  background: var(--rgba-chat-user);
  backdrop-filter: blur(5px);
}

.bg-chat-ooc {
  background: var(--rgba-chat-ooc);
  backdrop-filter: blur(5px);
}

.unblur {
  backdrop-filter: none !important;
}

.tooltip-cursor {
  left: var(--tooltip-x);
  top: var(--tooltip-y);
  position: absolute;
}

.drawer {
  background-color: var(--bg-800);
  height: 100dvh;
  transition: all .4s;
  position: absolute;
  top: 0;
  left: 0;
}

@media (width >= 1280px) {
  .drawer {
    clear: none;
    top: 0;
  }
}

.drawer {
  z-index: 20;
}

@media (width >= 1280px) {
  .drawer {
    z-index: 0;
  }
}

.drawer {
  border-right-width: 1px;
  border-color: var(--bg-600);
}

#main-content {
  transition: margin-left .4s;
}

@media (width >= 1280px) {
  .drawer {
    height: 100dvh;
  }
}

.drawer--pane-open {
  animation: 0s .8s hideDrawer;
  left: -320px;
}

@media (width >= 1280px) {
  .drawer--pane-open {
    left: 0;
  }
}

.drawer--hide {
  animation: 0s .8s hideDrawer;
  left: -480px;
}

@media (width >= 1280px) {
  .drawer--hide {
    width: 0;
  }
}

.drawer__content {
  min-width: 320px;
  max-width: 320px;
  height: calc(100% - 16px);
  transition: all .8s;
  top: 0;
  left: 0;
}

.drawer > * > a.active {
  border-left-width: 2px;
  border-color: var(--hl-400);
  background-color: var(--hl-800);
  padding-left: calc(.5rem - 2px);
}

@keyframes hideDrawer {
  to {
    visibility: hidden;
  }
}

.slot-sticky {
  position: -webkit-sticky;
  position: sticky;
  top: 0;
}

.helper-text {
  color: var(--text-600);
  margin-top: -.125rem;
  font-size: .875rem;
  line-height: 1.25rem;
}

.spinner {
  animation: 1.3s linear infinite spin;
}

@keyframes spin {
  0% {
    transform: rotate(0);
  }

  100% {
    transform: rotate(360deg);
  }
}

.input-bar {
  max-height: 50svh;
}

.input-buttons {
  display: inline-block;
  position: relative;
}

.input-buttons input {
  padding-right: 40px;
}

.input-buttons button {
  cursor: pointer;
  background-color: #0000;
  border: none;
  position: absolute;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
}

.shepherd-text {
  color: var(--text-900) !important;
}

.variable-textarea-container {
  z-index: 10;
  align-items: flex-end;
  max-height: 40px;
}

.variable-textarea {
  height: 40px;
  max-height: 40px;
}

.variable-textarea:focus {
  field-sizing: content !important;
  height: unset !important;
  border: 1px solid var(--bg-500) !important;
  max-height: 100px !important;
}

.text-outline {
  text-shadow: var(--outline-thickness) 0 var(--outline-shadow) var(--text-100), 0 var(--outline-thickness-rev) var(--outline-shadow) var(--text-100), 0 var(--outline-thickness) var(--outline-shadow) var(--text-100), var(--outline-thickness-rev) 0 var(--outline-shadow) var(--text-100);
}

:root {
  --dot-color: var(--hl-700);
}

.dot-elastic {
  background-color: var(--dot-color);
  width: 10px;
  height: 10px;
  color: var(--dot-color);
  border-radius: 5px;
  animation: 1s linear infinite dot-elastic;
  position: relative;
}

.dot-elastic:before, .dot-elastic:after {
  content: "";
  display: inline-block;
  position: absolute;
  top: 0;
}

.dot-elastic:before {
  background-color: var(--dot-color);
  width: 10px;
  height: 10px;
  color: var(--dot-color);
  border-radius: 5px;
  animation: 1s linear infinite dot-elastic-before;
  left: -15px;
}

.dot-elastic:after {
  background-color: var(--dot-color);
  width: 10px;
  height: 10px;
  color: var(--dot-color);
  border-radius: 5px;
  animation: 1s linear infinite dot-elastic-after;
  left: 15px;
}

@keyframes dot-elastic-before {
  0% {
    transform: scale(1);
  }

  25% {
    transform: scale(1, 1.5);
  }

  50% {
    transform: scale(1, .67);
  }

  75% {
    transform: scale(1);
  }

  100% {
    transform: scale(1);
  }
}

@keyframes dot-elastic {
  0% {
    transform: scale(1);
  }

  25% {
    transform: scale(1);
  }

  50% {
    transform: scale(1, 1.5);
  }

  75% {
    transform: scale(1);
  }

  100% {
    transform: scale(1);
  }
}

@keyframes dot-elastic-after {
  0% {
    transform: scale(1);
  }

  25% {
    transform: scale(1);
  }

  50% {
    transform: scale(1, .67);
  }

  75% {
    transform: scale(1, 1.5);
  }

  100% {
    transform: scale(1);
  }
}

.dot-pulse {
  background-color: var(--dot-color);
  width: 10px;
  height: 10px;
  color: var(--dot-color);
  border-radius: 5px;
  animation: 1.5s linear .25s infinite dot-pulse;
  position: relative;
  left: -9999px;
  box-shadow: 9999px 0 0 -5px;
}

.dot-pulse:before, .dot-pulse:after {
  content: "";
  background-color: var(--dot-color);
  width: 10px;
  height: 10px;
  color: var(--dot-color);
  border-radius: 5px;
  display: inline-block;
  position: absolute;
  top: 0;
}

.dot-pulse:before {
  animation: 1.5s linear infinite dot-pulse-before;
  box-shadow: 9984px 0 0 -5px;
}

.dot-pulse:after {
  animation: 1.5s linear .5s infinite dot-pulse-after;
  box-shadow: 10014px 0 0 -5px;
}

@keyframes dot-pulse-before {
  0% {
    box-shadow: 9984px 0 0 -5px;
  }

  30% {
    box-shadow: 9984px 0 0 2px;
  }

  60%, 100% {
    box-shadow: 9984px 0 0 -5px;
  }
}

@keyframes dot-pulse {
  0% {
    box-shadow: 9999px 0 0 -5px;
  }

  30% {
    box-shadow: 9999px 0 0 2px;
  }

  60%, 100% {
    box-shadow: 9999px 0 0 -5px;
  }
}

@keyframes dot-pulse-after {
  0% {
    box-shadow: 10014px 0 0 -5px;
  }

  30% {
    box-shadow: 10014px 0 0 2px;
  }

  60%, 100% {
    box-shadow: 10014px 0 0 -5px;
  }
}

.dot-flashing {
  background-color: var(--dot-color);
  width: 10px;
  height: 10px;
  color: var(--dot-color);
  border-radius: 5px;
  animation: 1s linear .5s infinite alternate dot-flashing;
  position: relative;
}

.dot-flashing:before, .dot-flashing:after {
  content: "";
  display: inline-block;
  position: absolute;
  top: 0;
}

.dot-flashing:before {
  background-color: var(--dot-color);
  width: 10px;
  height: 10px;
  color: var(--dot-color);
  border-radius: 5px;
  animation: 1s infinite alternate dot-flashing;
  left: -15px;
}

.dot-flashing:after {
  background-color: var(--dot-color);
  width: 10px;
  height: 10px;
  color: var(--dot-color);
  border-radius: 5px;
  animation: 1s 1s infinite alternate dot-flashing;
  left: 15px;
}

@keyframes dot-flashing {
  0% {
    background-color: var(--dot-color);
  }

  50%, 100% {
    background-color: #9880ff33;
  }
}

.dot-collision {
  background-color: var(--dot-color);
  width: 10px;
  height: 10px;
  color: var(--dot-color);
  border-radius: 5px;
  position: relative;
}

.dot-collision:before, .dot-collision:after {
  content: "";
  display: inline-block;
  position: absolute;
  top: 0;
}

.dot-collision:before {
  background-color: var(--dot-color);
  width: 10px;
  height: 10px;
  color: var(--dot-color);
  border-radius: 5px;
  animation: 2s ease-in infinite dot-collision-before;
  left: -10px;
}

.dot-collision:after {
  background-color: var(--dot-color);
  width: 10px;
  height: 10px;
  color: var(--dot-color);
  border-radius: 5px;
  animation: 2s ease-in 1s infinite dot-collision-after;
  left: 10px;
}

@keyframes dot-collision-before {
  0%, 50%, 75%, 100% {
    transform: translateX(0);
  }

  25% {
    transform: translateX(-15px);
  }
}

@keyframes dot-collision-after {
  0%, 50%, 75%, 100% {
    transform: translateX(0);
  }

  25% {
    transform: translateX(15px);
  }
}

.dot-revolution {
  background-color: var(--dot-color);
  width: 10px;
  height: 10px;
  color: var(--dot-color);
  border-radius: 5px;
  position: relative;
}

.dot-revolution:before, .dot-revolution:after {
  content: "";
  display: inline-block;
  position: absolute;
}

.dot-revolution:before {
  background-color: var(--dot-color);
  width: 10px;
  height: 10px;
  color: var(--dot-color);
  transform-origin: 5px 20px;
  border-radius: 5px;
  animation: 1.4s linear infinite dot-revolution;
  top: -15px;
  left: 0;
}

.dot-revolution:after {
  background-color: var(--dot-color);
  width: 10px;
  height: 10px;
  color: var(--dot-color);
  transform-origin: 5px 35px;
  border-radius: 5px;
  animation: 1s linear infinite dot-revolution;
  top: -30px;
  left: 0;
}

@keyframes dot-revolution {
  0% {
    transform: rotateZ(0)translate3d(0, 0, 0);
  }

  100% {
    transform: rotateZ(360deg)translate3d(0, 0, 0);
  }
}

.dot-carousel {
  background-color: var(--dot-color);
  width: 10px;
  height: 10px;
  color: var(--dot-color);
  box-shadow: 9984px 0 0 0 var(--dot-color), 9999px 0 0 0 var(--dot-color), 10014px 0 0 0 var(--dot-color);
  border-radius: 5px;
  animation: 1.5s linear infinite dot-carousel;
  position: relative;
  left: -9999px;
}

@keyframes dot-carousel {
  0% {
    box-shadow: 9984px 0 0 -1px var(--dot-color), 9999px 0 0 1px var(--dot-color), 10014px 0 0 -1px var(--dot-color);
  }

  50% {
    box-shadow: 10014px 0 0 -1px var(--dot-color), 9984px 0 0 -1px var(--dot-color), 9999px 0 0 1px var(--dot-color);
  }

  100% {
    box-shadow: 9999px 0 0 1px var(--dot-color), 10014px 0 0 -1px var(--dot-color), 9984px 0 0 -1px var(--dot-color);
  }
}

.dot-typing {
  background-color: var(--dot-color);
  width: 10px;
  height: 10px;
  color: var(--dot-color);
  box-shadow: 9984px 0 0 0 var(--dot-color), 9999px 0 0 0 var(--dot-color), 10014px 0 0 0 var(--dot-color);
  border-radius: 5px;
  animation: 1s ease-in infinite dot-typing;
  position: relative;
  left: -9999px;
}

@keyframes dot-typing {
  0% {
    box-shadow: 9984px 0 0 0 var(--dot-color), 9999px 0 0 0 var(--dot-color), 10014px 0 0 0 var(--dot-color);
  }

  16.667% {
    box-shadow: 9984px -10px 0 0 var(--dot-color), 9999px 0 0 0 var(--dot-color), 10014px 0 0 0 var(--dot-color);
  }

  33.333% {
    box-shadow: 9984px 0 0 0 var(--dot-color), 9999px 0 0 0 var(--dot-color), 10014px 0 0 0 var(--dot-color);
  }

  50% {
    box-shadow: 9984px 0 0 0 var(--dot-color), 9999px -10px 0 0 var(--dot-color), 10014px 0 0 0 var(--dot-color);
  }

  66.667% {
    box-shadow: 9984px 0 0 0 var(--dot-color), 9999px 0 0 0 var(--dot-color), 10014px 0 0 0 var(--dot-color);
  }

  83.333% {
    box-shadow: 9984px 0 0 0 var(--dot-color), 9999px 0 0 0 var(--dot-color), 10014px -10px 0 0 var(--dot-color);
  }

  100% {
    box-shadow: 9984px 0 0 0 var(--dot-color), 9999px 0 0 0 var(--dot-color), 10014px 0 0 0 var(--dot-color);
  }
}

.dot-windmill {
  background-color: var(--dot-color);
  width: 10px;
  height: 10px;
  color: var(--dot-color);
  transform-origin: 5px 15px;
  border-radius: 5px;
  animation: 2s linear infinite dot-windmill;
  position: relative;
  top: -10px;
}

.dot-windmill:before, .dot-windmill:after {
  content: "";
  display: inline-block;
  position: absolute;
}

.dot-windmill:before {
  background-color: var(--dot-color);
  width: 10px;
  height: 10px;
  color: var(--dot-color);
  border-radius: 5px;
  top: 15px;
  left: -8.66254px;
}

.dot-windmill:after {
  background-color: var(--dot-color);
  width: 10px;
  height: 10px;
  color: var(--dot-color);
  border-radius: 5px;
  top: 15px;
  left: 8.66254px;
}

@keyframes dot-windmill {
  0% {
    transform: rotateZ(0)translate3d(0, 0, 0);
  }

  100% {
    transform: rotateZ(720deg)translate3d(0, 0, 0);
  }
}

.dot-bricks {
  background-color: var(--dot-color);
  width: 10px;
  height: 10px;
  color: var(--dot-color);
  box-shadow: 9991px -16px 0 0 var(--dot-color), 9991px 0 0 0 var(--dot-color), 10007px 0 0 0 var(--dot-color);
  border-radius: 5px;
  animation: 2s infinite dot-bricks;
  position: relative;
  top: 8px;
  left: -9999px;
}

@keyframes dot-bricks {
  0% {
    box-shadow: 9991px -16px 0 0 var(--dot-color), 9991px 0 0 0 var(--dot-color), 10007px 0 0 0 var(--dot-color);
  }

  8.333% {
    box-shadow: 10007px -16px 0 0 var(--dot-color), 9991px 0 0 0 var(--dot-color), 10007px 0 0 0 var(--dot-color);
  }

  16.667% {
    box-shadow: 10007px -16px 0 0 var(--dot-color), 9991px -16px 0 0 var(--dot-color), 10007px 0 0 0 var(--dot-color);
  }

  25% {
    box-shadow: 10007px -16px 0 0 var(--dot-color), 9991px -16px 0 0 var(--dot-color), 9991px 0 0 0 var(--dot-color);
  }

  33.333% {
    box-shadow: 10007px 0 0 0 var(--dot-color), 9991px -16px 0 0 var(--dot-color), 9991px 0 0 0 var(--dot-color);
  }

  41.667% {
    box-shadow: 10007px 0 0 0 var(--dot-color), 10007px -16px 0 0 var(--dot-color), 9991px 0 0 0 var(--dot-color);
  }

  50% {
    box-shadow: 10007px 0 0 0 var(--dot-color), 10007px -16px 0 0 var(--dot-color), 9991px -16px 0 0 var(--dot-color);
  }

  58.333% {
    box-shadow: 9991px 0 0 0 var(--dot-color), 10007px -16px 0 0 var(--dot-color), 9991px -16px 0 0 var(--dot-color);
  }

  66.666% {
    box-shadow: 9991px 0 0 0 var(--dot-color), 10007px 0 0 0 var(--dot-color), 9991px -16px 0 0 var(--dot-color);
  }

  75% {
    box-shadow: 9991px 0 0 0 var(--dot-color), 10007px 0 0 0 var(--dot-color), 10007px -16px 0 0 var(--dot-color);
  }

  83.333% {
    box-shadow: 9991px -16px 0 0 var(--dot-color), 10007px 0 0 0 var(--dot-color), 10007px -16px 0 0 var(--dot-color);
  }

  91.667% {
    box-shadow: 9991px -16px 0 0 var(--dot-color), 9991px 0 0 0 var(--dot-color), 10007px -16px 0 0 var(--dot-color);
  }

  100% {
    box-shadow: 9991px -16px 0 0 var(--dot-color), 9991px 0 0 0 var(--dot-color), 10007px 0 0 0 var(--dot-color);
  }
}

.dot-floating {
  background-color: var(--dot-color);
  width: 10px;
  height: 10px;
  color: var(--dot-color);
  border-radius: 5px;
  animation: 3s cubic-bezier(.15, .6, .9, .1) infinite dot-floating;
  position: relative;
}

.dot-floating:before, .dot-floating:after {
  content: "";
  display: inline-block;
  position: absolute;
  top: 0;
}

.dot-floating:before {
  background-color: var(--dot-color);
  width: 10px;
  height: 10px;
  color: var(--dot-color);
  border-radius: 5px;
  animation: 3s ease-in-out infinite dot-floating-before;
  left: -12px;
}

.dot-floating:after {
  background-color: var(--dot-color);
  width: 10px;
  height: 10px;
  color: var(--dot-color);
  border-radius: 5px;
  animation: 3s cubic-bezier(.4, 0, 1, 1) infinite dot-floating-after;
  left: -24px;
}

@keyframes dot-floating {
  0% {
    left: calc(-50% - 5px);
  }

  75% {
    left: calc(50% + 105px);
  }

  100% {
    left: calc(50% + 105px);
  }
}

@keyframes dot-floating-before {
  0% {
    left: -50px;
  }

  50% {
    left: -12px;
  }

  75% {
    left: -50px;
  }

  100% {
    left: -50px;
  }
}

@keyframes dot-floating-after {
  0% {
    left: -100px;
  }

  50% {
    left: -24px;
  }

  75% {
    left: -100px;
  }

  100% {
    left: -100px;
  }
}

.dot-fire {
  background-color: var(--dot-color);
  width: 10px;
  height: 10px;
  color: var(--dot-color);
  box-shadow: 9999px 22.5px 0 -5px var(--dot-color);
  border-radius: 5px;
  animation: 1.5s linear -.85s infinite dot-fire;
  position: relative;
  left: -9999px;
}

.dot-fire:before, .dot-fire:after {
  content: "";
  background-color: var(--dot-color);
  width: 10px;
  height: 10px;
  color: var(--dot-color);
  border-radius: 5px;
  display: inline-block;
  position: absolute;
  top: 0;
}

.dot-fire:before {
  box-shadow: 9999px 22.5px 0 -5px var(--dot-color);
  animation: 1.5s linear -1.85s infinite dot-fire;
}

.dot-fire:after {
  box-shadow: 9999px 22.5px 0 -5px var(--dot-color);
  animation: 1.5s linear -2.85s infinite dot-fire;
}

@keyframes dot-fire {
  1% {
    box-shadow: 9999px 22.5px 0 -5px var(--dot-color);
  }

  50% {
    box-shadow: 9999px -5.625px 0 2px var(--dot-color);
  }

  100% {
    box-shadow: 9999px -22.5px 0 -5px var(--dot-color);
  }
}

.dot-spin {
  color: #0000;
  width: 10px;
  height: 10px;
  box-shadow: 0 -18px 0 0 var(--dot-color), 12.7279px -12.7279px 0 0 var(--dot-color), 18px 0 0 0 var(--dot-color), 12.7279px 12.7279px 0 0 #9880ff00, 0 18px 0 0 #9880ff00, -12.7279px 12.7279px 0 0 #9880ff00, -18px 0 0 0 #9880ff00, -12.7279px -12.7279px 0 0 #9880ff00;
  background-color: #0000;
  border-radius: 5px;
  animation: 1.5s linear infinite dot-spin;
  position: relative;
}

@keyframes dot-spin {
  0%, 100% {
    box-shadow: 0 -18px 0 0 var(--dot-color), 12.7279px -12.7279px 0 0 var(--dot-color), 18px 0 0 0 var(--dot-color), 12.7279px 12.7279px 0 -5px #9880ff00, 0 18px 0 -5px #9880ff00, -12.7279px 12.7279px 0 -5px #9880ff00, -18px 0 0 -5px #9880ff00, -12.7279px -12.7279px 0 -5px #9880ff00;
  }

  12.5% {
    box-shadow: 0 -18px 0 -5px #9880ff00, 12.7279px -12.7279px 0 0 var(--dot-color), 18px 0 0 0 var(--dot-color), 12.7279px 12.7279px 0 0 var(--dot-color), 0 18px 0 -5px #9880ff00, -12.7279px 12.7279px 0 -5px #9880ff00, -18px 0 0 -5px #9880ff00, -12.7279px -12.7279px 0 -5px #9880ff00;
  }

  25% {
    box-shadow: 0 -18px 0 -5px #9880ff00, 12.7279px -12.7279px 0 -5px #9880ff00, 18px 0 0 0 var(--dot-color), 12.7279px 12.7279px 0 0 var(--dot-color), 0 18px 0 0 var(--dot-color), -12.7279px 12.7279px 0 -5px #9880ff00, -18px 0 0 -5px #9880ff00, -12.7279px -12.7279px 0 -5px #9880ff00;
  }

  37.5% {
    box-shadow: 0 -18px 0 -5px #9880ff00, 12.7279px -12.7279px 0 -5px #9880ff00, 18px 0 0 -5px #9880ff00, 12.7279px 12.7279px 0 0 var(--dot-color), 0 18px 0 0 var(--dot-color), -12.7279px 12.7279px 0 0 var(--dot-color), -18px 0 0 -5px #9880ff00, -12.7279px -12.7279px 0 -5px #9880ff00;
  }

  50% {
    box-shadow: 0 -18px 0 -5px #9880ff00, 12.7279px -12.7279px 0 -5px #9880ff00, 18px 0 0 -5px #9880ff00, 12.7279px 12.7279px 0 -5px #9880ff00, 0 18px 0 0 var(--dot-color), -12.7279px 12.7279px 0 0 var(--dot-color), -18px 0 0 0 var(--dot-color), -12.7279px -12.7279px 0 -5px #9880ff00;
  }

  62.5% {
    box-shadow: 0 -18px 0 -5px #9880ff00, 12.7279px -12.7279px 0 -5px #9880ff00, 18px 0 0 -5px #9880ff00, 12.7279px 12.7279px 0 -5px #9880ff00, 0 18px 0 -5px #9880ff00, -12.7279px 12.7279px 0 0 var(--dot-color), -18px 0 0 0 var(--dot-color), -12.7279px -12.7279px 0 0 var(--dot-color);
  }

  75% {
    box-shadow: 0 -18px 0 0 var(--dot-color), 12.7279px -12.7279px 0 -5px #9880ff00, 18px 0 0 -5px #9880ff00, 12.7279px 12.7279px 0 -5px #9880ff00, 0 18px 0 -5px #9880ff00, -12.7279px 12.7279px 0 -5px #9880ff00, -18px 0 0 0 var(--dot-color), -12.7279px -12.7279px 0 0 var(--dot-color);
  }

  87.5% {
    box-shadow: 0 -18px 0 0 var(--dot-color), 12.7279px -12.7279px 0 0 var(--dot-color), 18px 0 0 -5px #9880ff00, 12.7279px 12.7279px 0 -5px #9880ff00, 0 18px 0 -5px #9880ff00, -12.7279px 12.7279px 0 -5px #9880ff00, -18px 0 0 -5px #9880ff00, -12.7279px -12.7279px 0 0 var(--dot-color);
  }
}

.dot-falling {
  background-color: var(--dot-color);
  width: 10px;
  height: 10px;
  color: var(--dot-color);
  box-shadow: 9999px 0 0 0 var(--dot-color);
  border-radius: 5px;
  animation: 1s linear .1s infinite dot-falling;
  position: relative;
  left: -9999px;
}

.dot-falling:before, .dot-falling:after {
  content: "";
  display: inline-block;
  position: absolute;
  top: 0;
}

.dot-falling:before {
  background-color: var(--dot-color);
  width: 10px;
  height: 10px;
  color: var(--dot-color);
  border-radius: 5px;
  animation: 1s linear infinite dot-falling-before;
}

.dot-falling:after {
  background-color: var(--dot-color);
  width: 10px;
  height: 10px;
  color: var(--dot-color);
  border-radius: 5px;
  animation: 1s linear .2s infinite dot-falling-after;
}

@keyframes dot-falling {
  0% {
    box-shadow: 9999px -15px #9880ff00;
  }

  25%, 50%, 75% {
    box-shadow: 9999px 0 0 0 var(--dot-color);
  }

  100% {
    box-shadow: 9999px 15px #9880ff00;
  }
}

@keyframes dot-falling-before {
  0% {
    box-shadow: 9984px -15px #9880ff00;
  }

  25%, 50%, 75% {
    box-shadow: 9984px 0 0 0 var(--dot-color);
  }

  100% {
    box-shadow: 9984px 15px #9880ff00;
  }
}

@keyframes dot-falling-after {
  0% {
    box-shadow: 10014px -15px #9880ff00;
  }

  25%, 50%, 75% {
    box-shadow: 10014px 0 0 0 var(--dot-color);
  }

  100% {
    box-shadow: 10014px 15px #9880ff00;
  }
}

.dot-stretching {
  background-color: var(--dot-color);
  width: 10px;
  height: 10px;
  color: var(--dot-color);
  border-radius: 5px;
  animation: 2s ease-in infinite dot-stretching;
  position: relative;
  transform: scale(1.25);
}

.dot-stretching:before, .dot-stretching:after {
  content: "";
  display: inline-block;
  position: absolute;
  top: 0;
}

.dot-stretching:before {
  background-color: var(--dot-color);
  width: 10px;
  height: 10px;
  color: var(--dot-color);
  border-radius: 5px;
  animation: 2s ease-in infinite dot-stretching-before;
}

.dot-stretching:after {
  background-color: var(--dot-color);
  width: 10px;
  height: 10px;
  color: var(--dot-color);
  border-radius: 5px;
  animation: 2s ease-in infinite dot-stretching-after;
}

@keyframes dot-stretching {
  0% {
    transform: scale(1.25);
  }

  50%, 60% {
    transform: scale(.8);
  }

  100% {
    transform: scale(1.25);
  }
}

@keyframes dot-stretching-before {
  0% {
    transform: translate(0)scale(.7);
  }

  50%, 60% {
    transform: translate(-20px)scale(1);
  }

  100% {
    transform: translate(0)scale(.7);
  }
}

@keyframes dot-stretching-after {
  0% {
    transform: translate(0)scale(.7);
  }

  50%, 60% {
    transform: translate(20px)scale(1);
  }

  100% {
    transform: translate(0)scale(.7);
  }
}

.dot-gathering {
  color: #0000;
  filter: blur(2px);
  background-color: #000;
  border-radius: 6px;
  width: 12px;
  height: 12px;
  margin: -1px 0;
  position: relative;
}

.dot-gathering:before, .dot-gathering:after {
  content: "";
  color: #0000;
  opacity: 0;
  filter: blur(2px);
  background-color: #000;
  border-radius: 6px;
  width: 12px;
  height: 12px;
  animation: 2s ease-in infinite dot-gathering;
  display: inline-block;
  position: absolute;
  top: 0;
  left: -50px;
}

.dot-gathering:after {
  animation-delay: .5s;
}

@keyframes dot-gathering {
  0% {
    opacity: 0;
    transform: translateX(0);
  }

  35%, 60% {
    opacity: 1;
    transform: translateX(50px);
  }

  100% {
    opacity: 0;
    transform: translateX(100px);
  }
}

.dot-hourglass {
  color: #0000;
  filter: blur(2px);
  transform-origin: 5px 20px;
  background-color: #000;
  border-radius: 6px;
  width: 12px;
  height: 12px;
  margin: -1px 0;
  animation: 2.4s ease-in-out .6s infinite dot-hourglass;
  position: relative;
  top: -15px;
}

.dot-hourglass:before, .dot-hourglass:after {
  content: "";
  color: #0000;
  filter: blur(2px);
  background-color: #000;
  border-radius: 6px;
  width: 12px;
  height: 12px;
  display: inline-block;
  position: absolute;
  top: 0;
  left: 0;
}

.dot-hourglass:before {
  top: 30px;
}

.dot-hourglass:after {
  animation: 2.4s cubic-bezier(.65, .05, .36, 1) infinite dot-hourglass-after;
}

@keyframes dot-hourglass {
  0% {
    transform: rotateZ(0);
  }

  25% {
    transform: rotateZ(180deg);
  }

  50% {
    transform: rotateZ(180deg);
  }

  75% {
    transform: rotateZ(360deg);
  }

  100% {
    transform: rotateZ(360deg);
  }
}

@keyframes dot-hourglass-after {
  0% {
    transform: translateY(0);
  }

  25% {
    transform: translateY(30px);
  }

  50% {
    transform: translateY(30px);
  }

  75% {
    transform: translateY(0);
  }

  100% {
    transform: translateY(0);
  }
}

.dot-overtaking {
  color: #000;
  filter: blur(2px);
  background-color: #0000;
  border-radius: 6px;
  width: 12px;
  height: 12px;
  margin: -1px 0;
  animation: 2s cubic-bezier(.2, .6, .8, .2) infinite dot-overtaking;
  position: relative;
  box-shadow: 0 -20px;
}

.dot-overtaking:before, .dot-overtaking:after {
  content: "";
  color: #000;
  filter: blur(2px);
  background-color: #0000;
  border-radius: 6px;
  width: 12px;
  height: 12px;
  display: inline-block;
  position: absolute;
  top: 0;
  left: 0;
  box-shadow: 0 -20px;
}

.dot-overtaking:before {
  animation: 2s cubic-bezier(.2, .6, .8, .2) .3s infinite dot-overtaking;
}

.dot-overtaking:after {
  animation: 1.5s cubic-bezier(.2, .6, .8, .2) .6s infinite dot-overtaking;
}

@keyframes dot-overtaking {
  0% {
    transform: rotateZ(0);
  }

  100% {
    transform: rotateZ(360deg);
  }
}

.dot-shuttle {
  color: #0000;
  filter: blur(2px);
  background-color: #000;
  border-radius: 6px;
  width: 12px;
  height: 12px;
  margin: -1px 0;
  position: relative;
  left: -15px;
}

.dot-shuttle:before, .dot-shuttle:after {
  content: "";
  color: #0000;
  filter: blur(2px);
  background-color: #000;
  border-radius: 6px;
  width: 12px;
  height: 12px;
  display: inline-block;
  position: absolute;
  top: 0;
}

.dot-shuttle:before {
  animation: 2s ease-out infinite dot-shuttle;
  left: 15px;
}

.dot-shuttle:after {
  left: 30px;
}

@keyframes dot-shuttle {
  0%, 50%, 100% {
    transform: translateX(0);
  }

  25% {
    transform: translateX(-45px);
  }

  75% {
    transform: translateX(45px);
  }
}

.dot-bouncing {
  height: 10px;
  font-size: 10px;
  position: relative;
}

.dot-bouncing:before {
  content: "⚽🏀🏐";
  animation: 1s infinite dot-bouncing;
  display: inline-block;
  position: relative;
}

@keyframes dot-bouncing {
  0% {
    animation-timing-function: ease-in;
    top: -20px;
  }

  34% {
    transform: scale(1);
  }

  35% {
    animation-timing-function: ease-out;
    top: 20px;
    transform: scale(1.5, .5);
  }

  45% {
    transform: scale(1);
  }

  90% {
    top: -20px;
  }

  100% {
    top: -20px;
  }
}

.dot-rolling {
  height: 10px;
  font-size: 10px;
  position: relative;
}

.dot-rolling:before {
  content: "⚽";
  animation: 3s infinite dot-rolling;
  display: inline-block;
  position: relative;
  transform: translateX(-25px);
}

@keyframes dot-rolling {
  0% {
    content: "⚽";
    transform: translateX(-25px)rotateZ(0);
  }

  16.667% {
    content: "⚽";
    transform: translateX(25px)rotateZ(720deg);
  }

  33.333% {
    content: "⚽";
    transform: translateX(-25px)rotateZ(0);
  }

  34.333% {
    content: "🏀";
    transform: translateX(-25px)rotateZ(0);
  }

  50% {
    content: "🏀";
    transform: translateX(25px)rotateZ(720deg);
  }

  66.667% {
    content: "🏀";
    transform: translateX(-25px)rotateZ(0);
  }

  67.667% {
    content: "🏐";
    transform: translateX(-25px)rotateZ(0);
  }

  83.333% {
    content: "🏐";
    transform: translateX(25px)rotateZ(720deg);
  }

  100% {
    content: "🏐";
    transform: translateX(-25px)rotateZ(0);
  }
}

.clr-picker {
  z-index: 1000;
  -webkit-user-select: none;
  -ms-user-select: none;
  user-select: none;
  direction: ltr;
  background-color: #fff;
  border-radius: 10px;
  flex-wrap: wrap;
  justify-content: flex-end;
  width: 200px;
  display: none;
  position: absolute;
  box-shadow: 0 0 5px #0000000d, 0 5px 20px #0000001a;
}

.clr-picker.clr-open, .clr-picker[data-inline="true"] {
  display: flex;
}

.clr-picker[data-inline="true"] {
  position: relative;
}

.clr-gradient {
  cursor: pointer;
  background-image: linear-gradient(#0000, #000), linear-gradient(90deg, #fff, currentColor);
  border-radius: 3px 3px 0 0;
  width: 100%;
  height: 100px;
  margin-bottom: 15px;
  position: relative;
}

.clr-marker {
  cursor: pointer;
  background-color: currentColor;
  border: 1px solid #fff;
  border-radius: 50%;
  width: 12px;
  height: 12px;
  margin: -6px 0 0 -6px;
  position: absolute;
}

.clr-picker input[type="range"]::-webkit-slider-runnable-track {
  width: 100%;
  height: 8px;
}

.clr-picker input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: 8px;
  height: 8px;
}

.clr-picker input[type="range"]::-moz-range-track {
  border: 0;
  width: 100%;
  height: 8px;
}

.clr-picker input[type="range"]::-moz-range-thumb {
  border: 0;
  width: 8px;
  height: 8px;
}

.clr-hue {
  background-image: linear-gradient(to right, red 0%, #ff0 16.66%, #0f0 33.33%, #0ff 50%, #00f 66.66%, #f0f 83.33%, red 100%);
}

.clr-hue, .clr-alpha {
  border-radius: 4px;
  width: calc(100% - 40px);
  height: 8px;
  margin: 5px 20px;
  position: relative;
}

.clr-alpha span {
  border-radius: inherit;
  background-image: linear-gradient(90deg, #0000, currentColor);
  width: 100%;
  height: 100%;
  display: block;
}

.clr-hue input, .clr-alpha input {
  opacity: 0;
  cursor: pointer;
  -webkit-appearance: none;
  -ms-appearance: none;
  appearance: none;
  background-color: #0000;
  width: calc(100% + 16px);
  height: 16px;
  margin: 0;
  position: absolute;
  top: -4px;
  left: -8px;
}

.clr-hue div, .clr-alpha div {
  pointer-events: none;
  background-color: currentColor;
  border: 2px solid #fff;
  border-radius: 50%;
  width: 16px;
  height: 16px;
  margin-left: -8px;
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  box-shadow: 0 0 1px #888;
}

.clr-alpha div:before {
  content: "";
  background-color: currentColor;
  border-radius: 50%;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
}

.clr-format {
  order: 1;
  width: calc(100% - 40px);
  margin: 0 20px 20px;
  display: none;
}

.clr-segmented {
  box-sizing: border-box;
  color: #999;
  border: 1px solid #ddd;
  border-radius: 15px;
  width: 100%;
  margin: 0;
  padding: 0;
  font-size: 12px;
  display: flex;
  position: relative;
}

.clr-segmented input, .clr-segmented legend {
  opacity: 0;
  pointer-events: none;
  border: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  position: absolute;
  top: 0;
  left: 0;
}

.clr-segmented label {
  font-size: inherit;
  font-weight: normal;
  line-height: initial;
  text-align: center;
  cursor: pointer;
  flex-grow: 1;
  margin: 0;
  padding: 4px 0;
}

.clr-segmented label:first-of-type {
  border-radius: 10px 0 0 10px;
}

.clr-segmented label:last-of-type {
  border-radius: 0 10px 10px 0;
}

.clr-segmented input:checked + label {
  color: #fff;
  background-color: #666;
}

.clr-swatches {
  order: 2;
  width: calc(100% - 32px);
  margin: 0 16px;
}

.clr-swatches div {
  flex-wrap: wrap;
  justify-content: center;
  padding-bottom: 12px;
  display: flex;
}

.clr-swatches button {
  width: 20px;
  height: 20px;
  color: inherit;
  text-indent: -1000px;
  white-space: nowrap;
  cursor: pointer;
  border: 0;
  border-radius: 50%;
  margin: 0 4px 6px;
  padding: 0;
  position: relative;
  overflow: hidden;
}

.clr-swatches button:after {
  content: "";
  border-radius: inherit;
  background-color: currentColor;
  width: 100%;
  height: 100%;
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  box-shadow: inset 0 0 0 1px #0000001a;
}

input.clr-color {
  color: #444;
  text-align: center;
  width: calc(100% - 80px);
  height: 32px;
  box-shadow: none;
  background-color: #fff;
  border: 1px solid #ddd;
  border-radius: 16px;
  order: 1;
  margin: 15px 20px 20px auto;
  padding: 0 10px;
  font-family: sans-serif;
  font-size: 14px;
}

input.clr-color:focus {
  border: 1px solid #1e90ff;
  outline: none;
}

.clr-close, .clr-clear {
  color: #fff;
  cursor: pointer;
  background-color: #666;
  border: 0;
  border-radius: 12px;
  order: 2;
  height: 24px;
  margin: 0 20px 20px;
  padding: 0 20px;
  font-family: inherit;
  font-size: 12px;
  font-weight: 400;
  display: none;
}

.clr-close {
  margin: 0 20px 20px auto;
  display: block;
}

.clr-preview {
  border-radius: 50%;
  width: 32px;
  height: 32px;
  margin: 15px 0 20px 20px;
  position: relative;
  overflow: hidden;
}

.clr-preview:before, .clr-preview:after {
  content: "";
  border: 1px solid #fff;
  border-radius: 50%;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
}

.clr-preview:after {
  background-color: currentColor;
  border: 0;
  box-shadow: inset 0 0 0 1px #0000001a;
}

.clr-preview button {
  z-index: 1;
  outline-offset: -2px;
  text-indent: -9999px;
  cursor: pointer;
  background-color: #0000;
  border: 0;
  border-radius: 50%;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  position: absolute;
  overflow: hidden;
}

.clr-marker, .clr-hue div, .clr-alpha div, .clr-color {
  box-sizing: border-box;
}

.clr-field {
  color: #0000;
  display: inline-block;
  position: relative;
}

.clr-field input {
  direction: ltr;
  margin: 0;
}

.clr-field.clr-rtl input {
  text-align: right;
}

.clr-field button {
  width: 30px;
  height: 100%;
  color: inherit;
  text-indent: -1000px;
  white-space: nowrap;
  pointer-events: none;
  border: 0;
  margin: 0;
  padding: 0;
  position: absolute;
  top: 50%;
  right: 0;
  overflow: hidden;
  transform: translateY(-50%);
}

.clr-field.clr-rtl button {
  left: 0;
  right: auto;
}

.clr-field button:after {
  content: "";
  border-radius: inherit;
  background-color: currentColor;
  width: 100%;
  height: 100%;
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  box-shadow: inset 0 0 1px #00000080;
}

.clr-alpha, .clr-alpha div, .clr-swatches button, .clr-preview:before, .clr-field button {
  background-image: repeating-linear-gradient(45deg, #aaa 25%, #0000 25% 75%, #aaa 75%, #aaa), repeating-linear-gradient(45deg, #aaa 25%, #fff 25% 75%, #aaa 75%, #aaa);
  background-position: 0 0, 4px 4px;
  background-size: 8px 8px;
}

.clr-marker:focus {
  outline: none;
}

.clr-keyboard-nav .clr-marker:focus, .clr-keyboard-nav .clr-hue input:focus + div, .clr-keyboard-nav .clr-alpha input:focus + div, .clr-keyboard-nav .clr-segmented input:focus + label {
  outline: none;
  box-shadow: 0 0 0 2px #1e90ff, 0 0 2px 2px #fff;
}

.clr-picker[data-alpha="false"] .clr-alpha {
  display: none;
}

.clr-picker[data-minimal="true"] {
  padding-top: 16px;
}

.clr-picker[data-minimal="true"] .clr-gradient, .clr-picker[data-minimal="true"] .clr-hue, .clr-picker[data-minimal="true"] .clr-alpha, .clr-picker[data-minimal="true"] .clr-color, .clr-picker[data-minimal="true"] .clr-preview {
  display: none;
}

.clr-dark {
  background-color: #444;
}

.clr-dark .clr-segmented {
  border-color: #777;
}

.clr-dark .clr-swatches button:after {
  box-shadow: inset 0 0 0 1px #ffffff4d;
}

.clr-dark input.clr-color {
  color: #fff;
  background-color: #555;
  border-color: #777;
}

.clr-dark input.clr-color:focus {
  border-color: #1e90ff;
}

.clr-dark .clr-preview:after {
  box-shadow: inset 0 0 0 1px #ffffff80;
}

.clr-dark .clr-alpha, .clr-dark .clr-alpha div, .clr-dark .clr-swatches button, .clr-dark .clr-preview:before {
  background-image: repeating-linear-gradient(45deg, #666 25%, #0000 25% 75%, #888 75%, #888), repeating-linear-gradient(45deg, #888 25%, #444 25% 75%, #888 75%, #888);
}

.clr-picker.clr-polaroid {
  border-radius: 6px;
  box-shadow: 0 0 5px #0000001a, 0 5px 30px #0003;
}

.clr-picker.clr-polaroid:before {
  content: "";
  box-sizing: border-box;
  color: #fff;
  filter: drop-shadow(0 -4px 3px #0000001a);
  pointer-events: none;
  border: 8px solid #0000;
  border-top-width: 0;
  border-bottom: 10px solid;
  width: 16px;
  height: 10px;
  display: block;
  position: absolute;
  top: -10px;
  left: 20px;
}

.clr-picker.clr-polaroid.clr-dark:before {
  color: #444;
}

.clr-picker.clr-polaroid.clr-left:before {
  left: auto;
  right: 20px;
}

.clr-picker.clr-polaroid.clr-top:before {
  top: auto;
  bottom: -10px;
  transform: rotateZ(180deg);
}

.clr-polaroid .clr-gradient {
  border-radius: 3px;
  width: calc(100% - 20px);
  height: 120px;
  margin: 10px;
}

.clr-polaroid .clr-hue, .clr-polaroid .clr-alpha {
  border-radius: 5px;
  width: calc(100% - 30px);
  height: 10px;
  margin: 6px 15px;
}

.clr-polaroid .clr-hue div, .clr-polaroid .clr-alpha div {
  box-shadow: 0 0 5px #0003;
}

.clr-polaroid .clr-format {
  width: calc(100% - 20px);
  margin: 0 10px 15px;
}

.clr-polaroid .clr-swatches {
  width: calc(100% - 12px);
  margin: 0 6px;
}

.clr-polaroid .clr-swatches div {
  padding-bottom: 10px;
}

.clr-polaroid .clr-swatches button {
  width: 22px;
  height: 22px;
}

.clr-polaroid input.clr-color {
  width: calc(100% - 60px);
  margin: 10px 10px 15px auto;
}

.clr-polaroid .clr-clear {
  margin: 0 10px 15px;
}

.clr-polaroid .clr-close {
  margin: 0 10px 15px auto;
}

.clr-polaroid .clr-preview {
  margin: 10px 0 15px 10px;
}

.clr-picker.clr-large {
  width: 275px;
}

.clr-large .clr-gradient {
  height: 150px;
}

.clr-large .clr-swatches button {
  width: 22px;
  height: 22px;
}

.clr-picker.clr-pill {
  box-sizing: border-box;
  width: 380px;
  padding-left: 180px;
}

.clr-pill .clr-gradient {
  border-radius: 3px 0 0 3px;
  width: 180px;
  height: 100%;
  margin-bottom: 0;
  position: absolute;
  top: 0;
  left: 0;
}

.clr-pill .clr-hue {
  margin-top: 20px;
}

.modal-container {
  max-height: var(--window-height);
  grid-template-rows: auto 1fr auto;
  grid-template-areas: "header"
                       "content"
                       "footer";
  display: grid;
}

.modal-header {
  grid-area: header;
}

.modal-content-area {
  grid-area: content;
}

.modal-footer {
  grid-area: footer;
}

.modal-height {
  max-height: var(--window-height);
}

.modal-height-fixed {
  max-height: calc(var(--window-height)  - 0px);
  height: calc(var(--window-height)  - 0px);
}

.modal-content {
  max-height: calc(var(--window-height)  - 148px);
}

.modal-content-footerless {
  max-height: calc(var(--window-height)  - 76px);
}

.modal-body {
  height: var(--window-height);
  align-items: center;
  display: flex;
}

.toggle {
  cursor: pointer;
  display: inline-block;
}

.toggle.toggle-disabled {
  cursor: not-allowed;
}

.toggle-switch {
  background: var(--bg-500);
  vertical-align: middle;
  border-radius: 16px;
  width: 52px;
  height: 26px;
  transition: background .25s;
  display: inline-block;
  position: relative;
}

.toggle-switch:disabled {
  background: var(--bg-300);
}

.toggle-switch:before, .toggle-switch:after {
  content: "";
}

.toggle-switch:before {
  background: linear-gradient(#fff 0% 100%);
  border-radius: 50%;
  width: 18px;
  height: 18px;
  transition: left .25s;
  display: block;
  position: absolute;
  top: 4px;
  left: 4px;
  box-shadow: 0 0 0 1px #00000040;
}

.toggle-switch.toggle-disabled:before {
  background: linear-gradient(#bbb 0% 100%);
}

.toggle:hover .toggle-switch:before {
  background: linear-gradient(#eee 0% 100%);
  box-shadow: 0 0 0 1px #00000080;
}

.toggle:hover .toggle-switch.toggle-disabled:before {
  background: linear-gradient(#bbb 0% 100%);
  box-shadow: 0 0 0 1px #00000080;
}

.toggle-checkbox:checked + .toggle-switch {
  background: var(--green-700);
}

.toggle-checkbox:checked:disabled + .toggle-switch {
  background: var(--green-900);
}

.toggle-checkbox:checked + .toggle-switch:before {
  left: 30px;
}

.toggle-checkbox {
  visibility: hidden;
}

.toggle-label {
  margin-left: 5px;
  position: relative;
  top: 2px;
}

.avatar-xs {
  width: 1.5rem;
  min-width: 1.25rem;
  overflow: hidden;
}

@media (width >= 1280px) {
  .avatar-xs {
    width: 1.5rem;
  }
}

.avatar-sm {
  width: 2rem;
  min-width: 2rem;
  overflow: hidden;
}

@media (width >= 1280px) {
  .avatar-sm {
    width: 2rem;
    min-width: 2rem;
  }
}

.avatar-md {
  width: 2rem;
  min-width: 2rem;
  overflow: hidden;
}

@media (width >= 1280px) {
  .avatar-md {
    width: 2.5rem;
    min-width: 2.5rem;
  }
}

.avatar-lg {
  width: 2rem;
  min-width: 2rem;
  overflow: hidden;
}

@media (width >= 1280px) {
  .avatar-lg {
    width: 3rem;
    min-width: 3rem;
  }
}

.avatar-xl {
  width: 2.5rem;
  min-width: 2.5rem;
  overflow: hidden;
}

@media (width >= 1280px) {
  .avatar-xl {
    width: 4rem;
    min-width: 4rem;
  }
}

.avatar-2xl {
  width: 3rem;
  min-width: 3rem;
  overflow: hidden;
}

@media (width >= 1280px) {
  .avatar-2xl {
    width: 5rem;
    min-width: 5rem;
  }
}

.avatar-3xl {
  width: 3.5rem;
  min-width: 3.5rem;
  overflow: hidden;
}

@media (width >= 1280px) {
  .avatar-3xl {
    width: 6rem;
    min-width: 6rem;
  }
}

.avatar-max3xl {
  width: 3.5rem;
  max-width: 3.5rem;
  overflow: hidden;
}

@media (width >= 1280px) {
  .avatar-max3xl {
    width: 6rem;
    max-width: 6rem;
  }
}

.avatar-xs.avatar-circle {
  height: 1.5rem;
  min-height: 1.25rem;
}

@media (width >= 1280px) {
  .avatar-xs.avatar-circle {
    height: 1.5rem;
  }
}

.avatar-sm.avatar-circle {
  height: 2rem;
  min-height: 2rem;
}

@media (width >= 1280px) {
  .avatar-sm.avatar-circle {
    height: 2rem;
  }
}

.avatar-md.avatar-circle {
  height: 2rem;
  min-height: 2rem;
}

@media (width >= 1280px) {
  .avatar-md.avatar-circle {
    height: 2.5rem;
    min-height: 2.5rem;
  }
}

.avatar-lg.avatar-circle {
  height: 2rem;
  min-height: 2rem;
}

@media (width >= 1280px) {
  .avatar-lg.avatar-circle {
    height: 3rem;
    min-height: 3rem;
  }
}

.avatar-xl.avatar-circle {
  height: 2.5rem;
  min-height: 2.5rem;
}

@media (width >= 1280px) {
  .avatar-xl.avatar-circle {
    height: 4rem;
    min-height: 4rem;
  }
}

.avatar-2xl.avatar-circle {
  height: 3rem;
  min-height: 3rem;
}

@media (width >= 1280px) {
  .avatar-2xl.avatar-circle {
    height: 5rem;
    min-height: 5rem;
  }
}

.avatar-3xl.avatar-circle {
  height: 3.5rem;
  min-height: 3.5rem;
}

@media (width >= 1280px) {
  .avatar-3xl.avatar-circle {
    height: 6rem;
    min-height: 6rem;
  }
}

.avatar-max3xl.avatar-circle {
  height: 3.5rem;
  min-height: 3.5rem;
}

@media (width >= 1280px) {
  .avatar-max3xl.avatar-circle {
    height: 6rem;
    min-height: 6rem;
  }
}

.avatar-custom {
  width: var(--avatar-user-width);
  height: var(--avatar-user-height);
  overflow: hidden;
  border-width: 0 !important;
}

.shepherd-button {
  color: #ffffffbf;
  cursor: pointer;
  background: #3288e6;
  border: 0;
  border-radius: 3px;
  margin-right: .5rem;
  padding: .5rem 1.5rem;
  transition: all .5s;
}

.shepherd-button:not(:disabled):hover {
  color: #ffffffbf;
  background: #196fcc;
}

.shepherd-button.shepherd-button-secondary {
  color: #000000bf;
  background: #f1f2f3;
}

.shepherd-button.shepherd-button-secondary:not(:disabled):hover {
  color: #000000bf;
  background: #d6d9db;
}

.shepherd-button:disabled {
  cursor: not-allowed;
}

.shepherd-footer {
  border-bottom-right-radius: 5px;
  border-bottom-left-radius: 5px;
  justify-content: flex-end;
  padding: 0 .75rem .75rem;
  display: flex;
}

.shepherd-footer .shepherd-button:last-child {
  margin-right: 0;
}

.shepherd-cancel-icon {
  color: #808080bf;
  cursor: pointer;
  background: none;
  border: none;
  margin: 0;
  padding: 0;
  font-size: 2em;
  font-weight: 400;
  transition: color .5s;
}

.shepherd-cancel-icon:hover {
  color: #000000bf;
}

.shepherd-has-title .shepherd-content .shepherd-cancel-icon {
  color: #808080bf;
}

.shepherd-has-title .shepherd-content .shepherd-cancel-icon:hover {
  color: #000000bf;
}

.shepherd-title {
  color: #000000bf;
  flex: 1 0 auto;
  margin: 0;
  padding: 0;
  font-size: 1rem;
  font-weight: 400;
  display: flex;
}

.shepherd-header {
  border-top-left-radius: 5px;
  border-top-right-radius: 5px;
  justify-content: flex-end;
  align-items: center;
  padding: .75rem .75rem 0;
  line-height: 2em;
  display: flex;
}

.shepherd-has-title .shepherd-content .shepherd-header {
  background: #e6e6e6;
  padding: 1em;
}

.shepherd-text {
  color: #000000bf;
  padding: .75em;
  font-size: 1rem;
  line-height: 1.3em;
}

.shepherd-text p {
  margin-top: 0;
}

.shepherd-text p:last-child {
  margin-bottom: 0;
}

.shepherd-content {
  border-radius: 5px;
  outline: none;
  padding: 0;
}

.shepherd-element {
  opacity: 0;
  visibility: hidden;
  z-index: 9999;
  background: #fff;
  border-radius: 5px;
  outline: none;
  width: 100%;
  max-width: 400px;
  transition: opacity .3s, visibility .3s;
  box-shadow: 0 1px 4px #0003;
}

.shepherd-enabled.shepherd-element {
  opacity: 1;
  visibility: visible;
}

.shepherd-element[data-popper-reference-hidden]:not(.shepherd-centered) {
  opacity: 0;
  pointer-events: none;
  visibility: hidden;
}

.shepherd-element, .shepherd-element *, .shepherd-element :after, .shepherd-element :before {
  box-sizing: border-box;
}

.shepherd-arrow, .shepherd-arrow:before {
  z-index: -1;
  width: 16px;
  height: 16px;
  position: absolute;
}

.shepherd-arrow:before {
  content: "";
  background: #fff;
  transform: rotate(45deg);
}

.shepherd-element[data-popper-placement^="top"] > .shepherd-arrow {
  bottom: -8px;
}

.shepherd-element[data-popper-placement^="bottom"] > .shepherd-arrow {
  top: -8px;
}

.shepherd-element[data-popper-placement^="left"] > .shepherd-arrow {
  right: -8px;
}

.shepherd-element[data-popper-placement^="right"] > .shepherd-arrow {
  left: -8px;
}

.shepherd-element.shepherd-centered > .shepherd-arrow {
  opacity: 0;
}

.shepherd-element.shepherd-has-title[data-popper-placement^="bottom"] > .shepherd-arrow:before {
  background-color: #e6e6e6;
}

.shepherd-target-click-disabled.shepherd-enabled.shepherd-target, .shepherd-target-click-disabled.shepherd-enabled.shepherd-target * {
  pointer-events: none;
}

.shepherd-modal-overlay-container {
  opacity: 0;
  pointer-events: none;
  z-index: 9997;
  width: 100vw;
  height: 0;
  transition: all .3s ease-out, height 0s .3s, opacity .3s;
  position: fixed;
  top: 0;
  left: 0;
  overflow: hidden;
}

.shepherd-modal-overlay-container.shepherd-modal-is-visible {
  opacity: .5;
  height: 100vh;
  transition: all .3s ease-out, height, opacity .3s;
  transform: translateZ(0);
}

.shepherd-modal-overlay-container.shepherd-modal-is-visible path {
  pointer-events: all;
}

.home-cards {
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  justify-content: center;
  gap: 1rem;
  display: grid;
}

.home-cards * > ul {
  margin-left: 1.5rem;
  list-style-type: disc;
}

.home-cards * > ol {
  list-style-type: decimal;
}

.chat-detail {
  grid-template-rows: 1fr auto;
  gap: .25rem;
  width: 100%;
  height: 100dvh;
  max-height: 100dvh;
  display: grid;
}

@media (width >= 1280px) {
  .chat-detail {
    gap: .5rem;
  }
}

.avatar-chat-detail {
  grid-template-rows: 1fr auto;
  gap: .25rem;
  width: 100%;
  height: 100dvh;
  max-height: 100dvh;
  display: grid;
}

@media (width >= 1280px) {
  .avatar-chat-detail {
    gap: .5rem;
  }
}

@media (width >= 1024px) {
  .chat-detail, .avatar-chat-detail {
    grid-template-rows: auto 1fr auto;
    height: 100dvh;
  }
}

.chat {
  grid-template: "header"
                 "messages" 1fr
                 "input"
                 / 1fr;
  height: 100%;
  display: grid;
}

@media (width >= 1280px) {
  .chat {
    padding-top: .5rem;
    padding-bottom: .5rem;
  }
}

.chat {
  overflow: hidden;
}

.chat__header {
  grid-area: header;
  justify-content: space-between;
  align-items: center;
  height: 2rem;
  display: flex;
}

.chat__messages {
  flex-direction: column-reverse;
  grid-area: messages;
  height: calc(100% - 90px);
  display: flex;
}

.chat__input {
  grid-area: input;
}

.swipe {
  width: 100%;
  height: 1.5rem;
  min-height: 1.5rem;
  color: var(--text-800);
  grid-template-columns: 1fr 2fr 1fr;
  align-items: center;
  gap: .5rem;
  display: grid;
}

.swipe__content {
  justify-content: center;
  align-items: center;
  gap: 1rem;
  height: 1.5rem;
  display: flex;
}

.wechat-mode .mode {
  background: #f5f5f5;
  flex-direction: column;
  height: 100%;
  display: flex;
  padding: 0 !important;
}

.wechat-mode .mode > .content {
  flex: auto;
  min-height: 0;
  overflow: hidden;
}

.wechat-mode [data-messages] {
  background: #f5f5f5;
  gap: 4px;
  padding: 16px 24px;
}

.wechat-mode footer {
  background: #fff;
  border-top: 1px solid #e5e5e5;
}

.wechat-mode [data-sender] {
  max-width: 70%;
  margin: 0;
  background: none !important;
}

.wechat-mode [data-sender="user"] {
  margin-left: auto;
}

.wechat-mode [data-sender] .break-words {
  align-items: flex-start;
  gap: 10px;
  display: flex;
}

.wechat-mode [data-sender] .break-words > :nth-child(2) {
  display: none;
}

.wechat-mode [data-bot-avatar], .wechat-mode [data-user-avatar] {
  flex: none;
  float: none !important;
}

.wechat-mode [data-bot-avatar] img, .wechat-mode [data-user-avatar] img {
  object-fit: cover;
  background: #cfcfcf;
  border-radius: 6px;
  width: 38px;
  height: 38px;
}

.wechat-mode [data-sender="user"] .break-words {
  flex-direction: row-reverse;
}

.wechat-mode [data-bot-message], .wechat-mode [data-user-message] {
  color: #1a1a1a;
  background: #fff;
  border-radius: 6px;
  max-width: 100%;
  padding: 10px 14px;
  display: inline-block;
  position: relative;
}

.wechat-mode [data-user-message] {
  background: #95ec69;
}

.wechat-mode [data-bot-message]:before {
  content: "";
  border: 6px solid #0000;
  border-right-color: #fff;
  position: absolute;
  top: 12px;
  left: -6px;
}

.wechat-mode [data-user-message]:before {
  content: "";
  border: 6px solid #0000;
  border-left-color: #95ec69;
  position: absolute;
  top: 12px;
  right: -6px;
}

.wechat-mode .chat-name, .wechat-mode .message-date, .wechat-toolbar {
  display: none;
}

.wechat-mode .wechat-input-area {
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 6px 10px;
  padding: 8px 16px 10px;
  background: #fff !important;
  border-radius: 0 !important;
}

.wechat-mode .wechat-input-area > * {
  order: 3;
}

.wechat-mode .wechat-input-area > .wechat-toolbar {
  color: #5a5a5a;
  flex-basis: 100%;
  order: 0;
  align-items: center;
  gap: 14px;
  padding: 4px 0 6px;
  display: flex;
}

.wechat-mode .wechat-input-area > .wechat-input-wrap {
  flex-basis: 100%;
  order: 2;
}

.wechat-mode .wechat-toolbar svg, .wechat-mode .wechat-toolbar .wechat-tool-icon {
  cursor: pointer;
  width: 20px;
  height: 20px;
}

.wechat-mode .wechat-toolbar svg:hover, .wechat-mode .wechat-toolbar .wechat-tool-icon:hover {
  color: #13a36a;
}

.wechat-mode .wechat-input-area .input-bar {
  color: #1a1a1a !important;
  resize: none !important;
  background: #fff !important;
  border: none !important;
  border-radius: 0 !important;
  outline: none !important;
  height: 90px !important;
  min-height: 90px !important;
  max-height: 90px !important;
  padding: 8px !important;
  font-size: 14px !important;
}

.wechat-mode .wechat-send-btn {
  margin-left: auto;
  font-size: 13px;
  color: #fff !important;
  background-color: #07c160 !important;
  border-radius: 4px !important;
  padding: 6px 20px !important;
}

.wechat-mode .wechat-input-area > .story-choice-bar {
  flex-basis: 100%;
  order: 1;
}

.rendered-markdown {
  color: var(--text-chatcolor);
}

em {
  color: var(--text-emphasis-color);
}

.rendered-markdown q {
  color: var(--text-quote-color);
}

qem {
  color: var(--text-quote-emphasis-color);
  font-style: italic;
  font-weight: var(--text-quote-emphasis-weight);
}

.rendered-markdown img {
  display: inline-block;
}

.rendered-markdown q:before, .rendered-markdown q:after {
  content: "";
  border: none;
}

.rendered-markdown p:not(:last-child) {
  margin-bottom: .4em;
}

.rendered-markdown pre {
  background-color: var(--bg-600);
  color: var(--text-900);
  border-radius: .375rem;
  margin-top: .5rem;
  padding: .25rem;
  font-size: .875rem;
  line-height: 1.25rem;
  overflow-x: scroll;
}

.rendered-markdown pre::-webkit-scrollbar-thumb {
  background-color: var(--bg-500);
}

.rendered-markdown pre::-webkit-scrollbar-thumb:hover {
  background-color: var(--bg-300);
}

.rendered-markdown pre::-webkit-scrollbar-track {
  background-color: var(--bg-800);
}

.rendered-markdown pre code {
  background-color: unset;
  border-radius: unset;
  padding: unset;
  white-space: pre-wrap;
}

.rendered-markdown ul {
  flex-direction: column;
  padding-left: 1.25rem;
  list-style-type: disc;
  display: flex;
}

.rendered-markdown ol {
  counter-reset: item;
  flex-direction: column;
  list-style-position: inside;
  display: flex;
}

.rendered-markdown ol li {
  counter-increment: item;
}

.rendered-markdown ol li:before {
  content: counters(item, ".") ". ";
  margin-right: .5rem;
}

.rendered-markdown > ul > li > ul {
  padding-left: 1.25rem;
  list-style-type: circle;
  list-style-position: inside;
}

.message-date {
  position: relative;
  top: -1px;
}

.msg-with-xs-avatar {
  max-width: calc(100% - 16px - 1.5rem);
}

.msg-with-sm-avatar, .msg-with-md-avatar, .msg-with-lg-avatar {
  max-width: calc(100% - 16px - 2rem);
}

.msg-with-xl-avatar {
  max-width: calc(100% - 16px - 2.5rem);
}

.msg-with-2xl-avatar {
  max-width: calc(100% - 16px - 3rem);
}

.msg-with-3xl-avatar {
  max-width: calc(100% - 16px - 4rem);
}

@media (width >= 1280px) {
  .msg-with-md-avatar {
    max-width: calc(100% - 16px - 2.5rem);
  }

  .msg-with-lg-avatar {
    max-width: calc(100% - 16px - 3rem);
  }

  .msg-with-xl-avatar {
    max-width: calc(100% - 16px - 4rem);
  }

  .msg-with-2xl-avatar {
    max-width: calc(100% - 16px - 5rem);
  }

  .msg-with-3xl-avatar {
    max-width: calc(100% - 16px - 6rem);
  }
}

.first-in-ctx-window:before {
  content: "";
  border-top: 2px dotted var(--bg-600);
  width: 100%;
  position: absolute;
  top: -5px;
  left: 0;
}

.rendered-markdown.has-hang > p:first-child {
  text-indent: calc(-1 * var(--hang-punct, .6em));
}

.convertible-pane {
  grid-template-rows: auto auto 1fr auto;
  grid-template-areas: "header"
                       "title"
                       "content"
                       "footer";
  height: 100dvh;
  max-height: 100dvh;
  display: grid;
}

.mode {
  grid-template: "header pane"
                 "content pane" 1fr
                 "footer pane"
                 / 1fr auto;
  height: 100dvh;
  max-height: 100dvh;
  display: grid;
}

.mode .pane {
  height: 100dvh;
  max-height: 100dvh;
  overflow-y: auto;
}

@media (width >= 1024px) {
  .mode {
    height: 100dvh;
    max-height: 100dvh;
  }

  .mode .pane {
    height: 100dvh;
  }
}

* {
  box-sizing: border-box;
}

.wechat-app {
  height: 100vh;
  font-family: -apple-system, PingFang SC, Microsoft YaHei, sans-serif;
  display: flex;
  overflow: hidden;
}

.icon-bar {
  background: #e0e0e0;
  flex-direction: column;
  flex-shrink: 0;
  align-items: center;
  width: 60px;
  padding-top: 14px;
  display: flex;
}

.icon-bar .me {
  cursor: pointer;
  border-radius: 4px;
  width: 38px;
  height: 38px;
  margin-bottom: 18px;
  overflow: hidden;
}

.icon-bar .me img {
  object-fit: cover;
  border-radius: 4px;
  width: 100%;
  height: 100%;
  display: block;
}

.icon-bar .nav {
  flex-direction: column;
  align-items: center;
  gap: 6px;
  display: flex;
}

.icon-bar .nav a {
  cursor: pointer;
  color: #5a5a5a;
  border-radius: 6px;
  justify-content: center;
  align-items: center;
  width: 44px;
  height: 44px;
  text-decoration: none;
  display: flex;
}

.icon-bar .nav a:hover {
  background: #cfcfcf;
}

.icon-bar .nav a.active {
  color: #fff;
  background: #13a36a;
}

.icon-bar .nav a svg {
  width: 22px;
  height: 22px;
}

.chat-panel {
  background: #e6e6e8;
  flex-direction: column;
  flex-shrink: 0;
  width: 260px;
  display: flex;
}

.search-row {
  padding: 12px 14px 8px;
}

.search-box {
  color: #b2b2b2;
  background: #fafafa;
  border-radius: 4px;
  align-items: center;
  gap: 6px;
  padding: 6px 10px;
  font-size: 13px;
  display: flex;
}

.search-box svg {
  color: #b2b2b2;
  flex-shrink: 0;
  width: 14px;
  height: 14px;
}

.search-box input {
  color: #1a1a1a;
  background: none;
  border: none;
  outline: none;
  width: 100%;
  font-family: inherit;
  font-size: 13px;
}

.chat-list {
  flex: 1;
  padding: 0 8px;
  overflow-y: auto;
}

.chat-item {
  cursor: pointer;
  border-bottom: 1px solid #e0e0e0;
  align-items: center;
  gap: 10px;
  padding: 10px 8px;
  display: flex;
  position: relative;
}

.chat-item:hover {
  background: #dcdcdf;
}

.chat-item.active {
  background: #13a36a;
  border-bottom-color: #13a36a;
}

.chat-item .avatar {
  object-fit: cover;
  background: #cfcfcf;
  border-radius: 6px;
  flex-shrink: 0;
  width: 40px;
  height: 40px;
}

.chat-item img {
  object-fit: cover;
  border-radius: 6px;
  flex-shrink: 0;
  width: 40px;
  height: 40px;
}

.chat-item .info {
  flex: 1;
  min-width: 0;
}

.chat-item .name {
  color: #1a1a1a;
  white-space: nowrap;
  text-overflow: ellipsis;
  margin-bottom: 3px;
  font-size: 14px;
  overflow: hidden;
}

.chat-item.active .name {
  color: #fff;
}

.chat-item .preview {
  color: #888;
  white-space: nowrap;
  text-overflow: ellipsis;
  font-size: 12px;
  overflow: hidden;
}

.chat-item.active .preview {
  color: #ffffffd9;
}

.wechat-main {
  background: #f5f5f5;
  flex-direction: column;
  flex: 1;
  min-width: 0;
  display: flex;
}

.wechat-main-header {
  color: #1a1a1a;
  background: #f5f5f5;
  border-bottom: 1px solid #e5e5e5;
  flex-shrink: 0;
  align-items: center;
  height: 52px;
  padding: 0 20px;
  font-size: 15px;
  font-weight: 500;
  display: flex;
}

.wechat-main-header .status {
  color: #07c160;
  margin-left: auto;
  font-size: 12px;
  font-weight: normal;
}

.wechat-main-name {
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
  overflow: hidden;
}

.wechat-main-stage {
  color: #8a9a8a;
  white-space: nowrap;
  flex-shrink: 0;
  margin-left: 8px;
  font-size: 12px;
  font-weight: normal;
}

.wechat-main-body {
  flex: 1;
  min-height: 0;
  display: flex;
  overflow: hidden;
}

.wechat-main-body > * {
  flex-direction: column;
  flex: 1;
  min-width: 0;
  display: flex;
}

.chat-list::-webkit-scrollbar {
  width: 6px;
}

.wechat-main-body ::-webkit-scrollbar {
  width: 6px;
}

.chat-list::-webkit-scrollbar-thumb {
  background: #ccc;
  border-radius: 3px;
}

.wechat-main-body ::-webkit-scrollbar-thumb {
  background: #ccc;
  border-radius: 3px;
}

.chat-item img.avatar {
  object-fit: cover;
  background: #cfcfcf;
  border-radius: 6px;
  flex-shrink: 0;
  width: 40px;
  height: 40px;
}

.wechat-unread-badge {
  color: #fff;
  text-align: center;
  z-index: 2;
  pointer-events: none;
  background: #fa5151;
  border-radius: 9px;
  min-width: 20px;
  height: 18px;
  padding: 0 5px;
  font-size: 11px;
  font-weight: 500;
  line-height: 18px;
  position: absolute;
  top: 6px;
  left: 40px;
}

.wechat-cultivation {
  background: #f3faf6;
  border: 1px solid #d6efe2;
  border-radius: 6px;
  margin: 8px 12px 0;
  padding: 6px 10px;
}

.wechat-cultivation-row {
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  margin-bottom: 5px;
  display: flex;
}

.wechat-cultivation-label {
  color: #13a36a;
  white-space: nowrap;
  font-size: 13px;
  font-weight: 600;
}

.wechat-cultivation-hint {
  color: #fa9a3c;
  white-space: nowrap;
  text-overflow: ellipsis;
  font-size: 11px;
  overflow: hidden;
}

.wechat-cultivation-bar {
  background: #e0e0e0;
  border-radius: 3px;
  width: 100%;
  height: 6px;
  overflow: hidden;
}

.wechat-cultivation-fill {
  background: #07c160;
  border-radius: 3px;
  height: 100%;
  transition: width .4s;
}

.story-choice-bar {
  background: #ffffff80;
  border-radius: 10px;
  flex-direction: column;
  gap: 6px;
  width: 100%;
  margin: 4px 0 8px;
  padding: 8px 10px;
  display: flex;
}

.story-choice-prompt {
  color: var(--text-500);
  font-size: 12px;
  line-height: 1.5;
}

.story-choice-list {
  flex-direction: column;
  gap: 6px;
  display: flex;
}

.story-choice-item {
  border: 1px solid var(--border);
  width: 100%;
  color: var(--text-900);
  text-align: left;
  cursor: pointer;
  background: none;
  border-radius: 8px;
  align-items: flex-start;
  gap: 8px;
  padding: 8px 10px;
  font-size: 14px;
  line-height: 1.5;
  display: flex;
}

.story-choice-item:hover {
  background: #ffffffa8;
}

.story-choice-idx {
  color: #fff;
  background: #07c160;
  border-radius: 50%;
  flex: none;
  justify-content: center;
  align-items: center;
  width: 18px;
  height: 18px;
  margin-top: 1px;
  font-size: 11px;
  font-weight: 600;
  line-height: 1;
  display: inline-flex;
}

.story-choice-text {
  flex: auto;
  min-width: 0;
}

:root {
  --bili-accent: #fb7299;
  --bili-accent-dim: #fb729924;
  --bili-accent-line: #fb729961;
}

.bili-link, .markdown a.bili-link {
  border: 1px solid var(--bili-accent-line);
  background: var(--bili-accent-dim);
  white-space: nowrap;
  text-overflow: ellipsis;
  vertical-align: baseline;
  cursor: pointer;
  border-radius: 999px;
  align-items: center;
  gap: 4px;
  max-width: 100%;
  margin: 0 2px;
  padding: 1px 9px;
  font-size: .94em;
  line-height: 1.55;
  transition: background .12s, border-color .12s, transform .12s;
  display: inline-flex;
  overflow: hidden;
  color: var(--bili-accent) !important;
  text-decoration: none !important;
}

.bili-link:hover {
  border-color: var(--bili-accent);
  background: #fb72993d;
  transform: translateY(-1px);
}

.bili-link:active {
  transform: translateY(0);
}

.bili-overlay {
  z-index: 400;
  justify-content: center;
  align-items: center;
  padding: 24px;
  display: flex;
  position: fixed;
  inset: 0;
}

.bili-overlay__backdrop {
  backdrop-filter: blur(6px);
  background: #000000bd;
  position: absolute;
  inset: 0;
}

.bili-overlay__panel {
  background: #101014;
  border: 1px solid #ffffff1a;
  border-radius: 12px;
  flex-direction: column;
  width: min(1120px, 94vw);
  max-height: 92vh;
  animation: .16s ease-out bili-pop;
  display: flex;
  position: relative;
  overflow: hidden;
  box-shadow: 0 24px 68px #0009;
}

@keyframes bili-pop {
  from {
    opacity: 0;
    transform: translateY(8px)scale(.99);
  }

  to {
    opacity: 1;
    transform: none;
  }
}

.bili-overlay__head {
  color: #e8eaed;
  border-bottom: 1px solid #ffffff12;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 10px 12px 10px 14px;
  font-size: 14px;
  display: flex;
}

.bili-overlay__title {
  text-overflow: ellipsis;
  white-space: nowrap;
  align-items: center;
  gap: 8px;
  min-width: 0;
  display: flex;
  overflow: hidden;
}

.bili-overlay__dot {
  background: var(--bili-accent);
  border-radius: 50%;
  flex: none;
  width: 8px;
  height: 8px;
  box-shadow: 0 0 0 3px #fb72992e;
}

.bili-overlay__hint {
  color: #8b929c;
  text-overflow: ellipsis;
  font-size: 12px;
  overflow: hidden;
}

.bili-overlay__actions {
  flex: none;
  align-items: center;
  gap: 4px;
  display: flex;
}

.bili-overlay__btn {
  color: #c3c8cf;
  cursor: pointer;
  background: none;
  border: 0;
  border-radius: 8px;
  justify-content: center;
  align-items: center;
  width: 30px;
  height: 30px;
  transition: background .12s, color .12s;
  display: inline-flex;
}

.bili-overlay__btn:hover {
  color: #fff;
  background: #ffffff1a;
}

.bili-overlay__stage {
  aspect-ratio: 16 / 9;
  background: #000;
  width: 100%;
  position: relative;
}

.bili-overlay__stage iframe {
  border: 0;
  width: 100%;
  height: 100%;
  display: block;
  position: absolute;
  inset: 0;
}

@media (width <= 640px) {
  .bili-overlay {
    padding: 10px;
  }

  .bili-overlay__panel {
    border-radius: 10px;
    width: 100%;
  }

  .bili-overlay__hint {
    display: none;
  }
}

.gacha-overlay {
  z-index: 2000;
  backdrop-filter: blur(6px);
  background: radial-gradient(circle at 50% 38%, #1c3468db, #030712f0 62%);
  justify-content: center;
  align-items: center;
  padding: 20px;
  animation: .22s ease-out gacha-fade;
  display: flex;
  position: fixed;
  inset: 0;
  overflow: hidden;
}

@keyframes gacha-fade {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

.gacha-rays {
  pointer-events: none;
  background: repeating-conic-gradient(#70a0ff29 0deg 5deg, #70a0ff00 5deg 15deg);
  width: 180vmax;
  height: 180vmax;
  animation: 60s linear infinite gacha-spin;
  position: absolute;
  top: 44%;
  left: 50%;
  transform: translate(-50%, -50%);
  -webkit-mask-image: radial-gradient(circle, #000 12%, #0000 62%);
  mask-image: radial-gradient(circle, #000 12%, #0000 62%);
}

@keyframes gacha-spin {
  to {
    transform: translate(-50%, -50%)rotate(360deg);
  }
}

.gacha-panel {
  color: #e8eefc;
  background: linear-gradient(#16203a 0%, #0e1526 100%);
  border: 1px solid #78a0ff3d;
  border-radius: 18px;
  width: min(520px, 94vw);
  max-height: 92vh;
  padding: 18px 20px 16px;
  animation: .24s cubic-bezier(.2, .9, .3, 1.2) gacha-rise;
  position: relative;
  overflow-y: auto;
  box-shadow: 0 24px 70px #0000008c, inset 0 1px #ffffff0f;
}

@keyframes gacha-rise {
  from {
    opacity: 0;
    transform: translateY(14px)scale(.97);
  }

  to {
    opacity: 1;
    transform: translateY(0)scale(1);
  }
}

.gacha-head {
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  display: flex;
}

.gacha-head-title {
  letter-spacing: 2px;
  color: #f3d9a4;
  align-items: center;
  gap: 8px;
  font-size: 19px;
  font-weight: 700;
  display: flex;
}

.gacha-head-right {
  align-items: center;
  gap: 8px;
  display: flex;
}

.gacha-balance {
  letter-spacing: .5px;
  color: #f3d9a4;
  background: #f3d9a414;
  border: 1px solid #f3d9a452;
  border-radius: 999px;
  padding: 4px 10px;
  font-size: 12px;
}

.gacha-close {
  color: #e8eefc99;
  cursor: pointer;
  background: none;
  border: none;
  border-radius: 8px;
  justify-content: center;
  align-items: center;
  width: 28px;
  height: 28px;
  padding: 0;
  transition: background .15s, color .15s;
  display: flex;
}

.gacha-close:hover {
  color: #fff;
  background: #ffffff14;
}

.gacha-banner {
  letter-spacing: .4px;
  color: #e2eafac7;
  background: linear-gradient(90deg, #608cff29, #608cff05);
  border: 1px solid #78a0ff29;
  border-radius: 12px;
  align-items: center;
  gap: 8px;
  margin-top: 14px;
  padding: 10px 12px;
  font-size: 12.5px;
  display: flex;
}

.gacha-odds {
  grid-template-columns: repeat(4, 1fr);
  gap: 6px;
  margin-top: 12px;
  display: grid;
}

.gacha-odd {
  letter-spacing: .3px;
  background: #ffffff0a;
  border-radius: 8px;
  justify-content: center;
  align-items: center;
  gap: 5px;
  padding: 6px 0;
  font-size: 11.5px;
  display: flex;
}

.gacha-odd-dot {
  border-radius: 50%;
  width: 8px;
  height: 8px;
  box-shadow: 0 0 8px;
}

.gacha-odd-label {
  font-weight: 700;
}

.gacha-odd-pct {
  opacity: .7;
}

.gacha-actions {
  grid-template-columns: 1fr 1.25fr;
  gap: 10px;
  margin-top: 16px;
  display: grid;
}

.gacha-btn {
  cursor: pointer;
  color: #fff;
  background: linear-gradient(160deg, #5b3fa8 0%, #3b2a7d 60%, #2a1f5c 100%);
  border: 1px solid #b496ff73;
  border-radius: 14px;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 3px;
  min-height: 84px;
  padding: 10px 8px;
  transition: transform .12s, box-shadow .15s, filter .15s;
  display: flex;
  position: relative;
  box-shadow: 0 8px 22px #5b3fa859, inset 0 1px #ffffff24;
}

.gacha-btn:hover:not(:disabled) {
  transform: translateY(-2px);
  box-shadow: 0 12px 26px #5b3fa880, inset 0 1px #fff3;
}

.gacha-btn:active:not(:disabled) {
  transform: translateY(0)scale(.985);
}

.gacha-btn:disabled {
  filter: grayscale(.5) brightness(.75);
  cursor: default;
}

.gacha-btn.is-ten {
  background: linear-gradient(160deg, #b4762a 0%, #8d4f16 55%, #66350c 100%);
  border-color: #ffd0808c;
  box-shadow: 0 8px 24px #b4762a66, inset 0 1px #ffffff2e;
}

.gacha-btn.is-ten:hover:not(:disabled) {
  box-shadow: 0 12px 30px #b4762a8c, inset 0 1px #ffffff3d;
}

.gacha-btn-label {
  letter-spacing: 2px;
  text-shadow: 0 2px 8px #00000059;
  font-size: 19px;
  font-weight: 800;
}

.gacha-btn-cost {
  letter-spacing: .5px;
  opacity: .85;
  font-size: 12px;
}

.gacha-btn-badge {
  letter-spacing: .3px;
  color: #4a2a00;
  background: linear-gradient(135deg, #ffe4a3, #f5b942);
  border-radius: 999px;
  padding: 2px 8px;
  font-size: 10.5px;
  font-weight: 700;
  position: absolute;
  top: -8px;
  right: 8px;
  box-shadow: 0 2px 10px #f5b94273;
}

.gacha-loading {
  text-align: center;
  letter-spacing: 2px;
  color: #9fc0ff;
  margin-top: 12px;
  font-size: 12.5px;
  animation: 1s ease-in-out infinite gacha-pulse;
}

@keyframes gacha-pulse {
  50% {
    opacity: .45;
  }
}

.gacha-error {
  color: #ffb4b4;
  background: #dc464624;
  border: 1px solid #dc464640;
  border-radius: 8px;
  margin-top: 10px;
  padding: 8px 10px;
  font-size: 12.5px;
}

.gacha-foot {
  border-top: 1px solid #ffffff12;
  margin-top: 14px;
  padding-top: 12px;
}

.gacha-pity {
  letter-spacing: .3px;
  color: #e2eafa8c;
  font-size: 11.5px;
}

.gacha-pity b {
  color: #9fc0ff;
  font-weight: 700;
}

.gacha-foot-row {
  justify-content: space-between;
  align-items: center;
  margin-top: 10px;
  display: flex;
}

.gacha-owned {
  color: #e2eafa8c;
  font-size: 11.5px;
}

.gacha-checkin {
  color: #9ff0c8;
  cursor: pointer;
  background: #3cb4821f;
  border: 1px solid #78dcaa66;
  border-radius: 999px;
  padding: 5px 14px;
  font-size: 12px;
  transition: background .15s;
}

.gacha-checkin:hover:not(:disabled) {
  background: #3cb48238;
}

.gacha-checkin:disabled {
  color: #e2eafa59;
  cursor: default;
  background: none;
  border-color: #ffffff1a;
}

.gacha-stage {
  text-align: center;
  width: min(940px, 96vw);
  max-height: 92vh;
  padding: 10px 8px 4px;
  animation: .28s cubic-bezier(.2, .9, .3, 1.2) gacha-rise;
  position: relative;
  overflow-y: auto;
}

.gacha-title {
  letter-spacing: 6px;
  color: #ffd76e;
  text-shadow: 0 0 18px #ffd76e8c, 0 3px #8a5a00, 0 0 48px #ff9a3c73;
  -webkit-text-stroke: 1.5px #fff6d2d9;
  font-size: 42px;
  font-weight: 900;
  line-height: 1.1;
}

.gacha-subtitle {
  letter-spacing: 2px;
  color: #e2eafa9e;
  margin-top: 8px;
  font-size: 12.5px;
}

.gacha-grid {
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 14px 12px;
  max-width: 880px;
  margin: 22px auto 0;
  display: grid;
}

.gacha-grid[data-count="1"] {
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
  max-width: 220px;
}

.gacha-cell {
  opacity: 0;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  animation: .42s cubic-bezier(.2, .9, .3, 1.3) forwards gacha-pop;
  display: flex;
}

.gacha-cell:first-child {
  animation-delay: 30ms;
}

.gacha-cell:nth-child(2) {
  animation-delay: 90ms;
}

.gacha-cell:nth-child(3) {
  animation-delay: .15s;
}

.gacha-cell:nth-child(4) {
  animation-delay: .21s;
}

.gacha-cell:nth-child(5) {
  animation-delay: .27s;
}

.gacha-cell:nth-child(6) {
  animation-delay: .33s;
}

.gacha-cell:nth-child(7) {
  animation-delay: .39s;
}

.gacha-cell:nth-child(8) {
  animation-delay: .45s;
}

.gacha-cell:nth-child(9) {
  animation-delay: .51s;
}

.gacha-cell:nth-child(10) {
  animation-delay: .57s;
}

@keyframes gacha-pop {
  from {
    opacity: 0;
    transform: translateY(10px)scale(.82);
  }

  60% {
    opacity: 1;
    transform: translateY(0)scale(1.04);
  }

  to {
    opacity: 1;
    transform: translateY(0)scale(1);
  }
}

.gacha-card {
  aspect-ratio: 1;
  border: 2px solid var(--rarity-color, #7db4e8);
  background: linear-gradient(145deg, var(--rarity-from, #2c4a7a), var(--rarity-to, #4d7fc4));
  border-radius: 14px;
  justify-content: center;
  align-items: center;
  width: 100%;
  display: flex;
  position: relative;
  overflow: hidden;
  box-shadow: 0 0 16px #7db4e859, inset 0 1px #ffffff47;
}

.gacha-card:after {
  content: "";
  pointer-events: none;
  background: radial-gradient(circle at 30% 22%, #ffffff4d, #0000 55%);
  position: absolute;
  inset: 0;
}

.gacha-card.is-ssr, .gacha-card.is-ur {
  box-shadow: 0 0 22px var(--rarity-color), inset 0 1px 0 #ffffff59;
  animation: 2.4s ease-in-out infinite gacha-shine;
}

@keyframes gacha-shine {
  0%, 100% {
    filter: brightness();
  }

  50% {
    filter: brightness(1.14);
  }
}

.gacha-card-icon {
  filter: drop-shadow(0 3px 6px #00000059);
  font-size: 40px;
  line-height: 1;
  transform: translateZ(0);
}

.gacha-card-rarity {
  letter-spacing: .5px;
  color: #fff;
  background: #00000052;
  border: 1px solid #ffffff38;
  border-radius: 5px;
  padding: 1px 5px;
  font-size: 9.5px;
  font-weight: 800;
  position: absolute;
  top: 5px;
  left: 6px;
}

.gacha-card-new {
  letter-spacing: .4px;
  color: #4a1a00;
  background: linear-gradient(135deg, #ffe9a8, #ff9d4d);
  border-radius: 5px;
  padding: 1px 5px;
  font-size: 9px;
  font-weight: 800;
  position: absolute;
  top: 5px;
  right: 5px;
  box-shadow: 0 0 10px #ff9d4d99;
}

.gacha-card-count {
  color: #fff;
  text-shadow: 0 1px 3px #0009;
  font-size: 12px;
  font-weight: 700;
  position: absolute;
  bottom: 4px;
  right: 6px;
}

.gacha-name {
  letter-spacing: .2px;
  max-width: 100%;
  color: var(--rarity-color, #cfe0f5);
  white-space: nowrap;
  text-overflow: ellipsis;
  font-size: 11.5px;
  overflow: hidden;
}

.gacha-cell {
  --rarity-color: #cfe0f5;
}

.gacha-react {
  text-align: left;
  background: #ffffff0f;
  border: 1px solid #ffffff17;
  border-radius: 12px;
  flex-direction: column;
  gap: 3px;
  max-width: 640px;
  margin: 22px auto 0;
  padding: 10px 16px;
  display: flex;
}

.gacha-react-name {
  letter-spacing: 1px;
  color: #f3d9a4;
  font-size: 11.5px;
}

.gacha-react-text {
  color: #eef3ff;
  font-size: 14px;
  line-height: 1.6;
}

.gacha-again {
  letter-spacing: 3px;
  color: #fff;
  cursor: pointer;
  background: linear-gradient(#3f8fe0 0%, #1e5ba8 100%);
  border: 2px solid #a0d2ffbf;
  border-radius: 12px;
  margin-top: 22px;
  padding: 12px 46px;
  font-size: 20px;
  font-weight: 800;
  transition: transform .1s, box-shadow .12s;
  box-shadow: 0 6px #123c73, 0 12px 26px #1e5ba873, inset 0 1px #ffffff59;
}

.gacha-again:hover:not(:disabled) {
  filter: brightness(1.08);
}

.gacha-again:active:not(:disabled) {
  transform: translateY(3px);
  box-shadow: 0 3px #123c73, 0 6px 16px #1e5ba866, inset 0 1px #ffffff59;
}

.gacha-again:disabled {
  filter: grayscale(.4) brightness(.8);
  cursor: default;
}

.gacha-hint {
  letter-spacing: 1px;
  color: #e2eafa66;
  cursor: pointer;
  margin-top: 14px;
  padding-bottom: 6px;
  font-size: 11.5px;
}

@media (width <= 640px) {
  .gacha-overlay {
    padding: 10px;
  }

  .gacha-title {
    letter-spacing: 4px;
    font-size: 30px;
  }

  .gacha-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px 8px;
  }

  .gacha-card-icon {
    font-size: 32px;
  }

  .gacha-actions {
    grid-template-columns: 1fr 1fr;
  }

  .gacha-btn {
    min-height: 74px;
  }

  .gacha-btn-label {
    letter-spacing: 1px;
    font-size: 16px;
  }

  .gacha-again {
    letter-spacing: 1.5px;
    padding: 10px 28px;
    font-size: 16px;
  }
}

.shop-overlay {
  z-index: 2000;
  backdrop-filter: blur(5px);
  background: #040812c7;
  justify-content: center;
  align-items: center;
  padding: 20px;
  animation: .18s ease-out shop-fade;
  display: flex;
  position: fixed;
  inset: 0;
}

@keyframes shop-fade {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

.shop-panel {
  color: #e8eefc;
  background: linear-gradient(#16203a 0%, #0d1424 100%);
  border: 1px solid #78a0ff38;
  border-radius: 18px;
  flex-direction: column;
  width: min(880px, 96vw);
  max-height: 90vh;
  padding: 16px 18px 12px;
  animation: .22s cubic-bezier(.2, .9, .3, 1.2) shop-rise;
  display: flex;
  position: relative;
  box-shadow: 0 24px 70px #0009, inset 0 1px #ffffff0f;
}

@keyframes shop-rise {
  from {
    opacity: 0;
    transform: translateY(12px)scale(.98);
  }

  to {
    opacity: 1;
    transform: translateY(0)scale(1);
  }
}

.shop-head {
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  display: flex;
}

.shop-tabs {
  background: #ffffff0d;
  border-radius: 10px;
  gap: 6px;
  padding: 3px;
  display: flex;
}

.shop-tab {
  letter-spacing: 1.5px;
  color: #e2eafa99;
  cursor: pointer;
  background: none;
  border: none;
  border-radius: 8px;
  padding: 6px 20px;
  font-size: 13.5px;
  transition: background .15s, color .15s;
}

.shop-tab.is-active {
  color: #10182a;
  background: linear-gradient(#ffe1a3, #f0b64a);
  font-weight: 700;
  box-shadow: 0 2px 10px #f0b64a59;
}

.shop-head-right {
  align-items: center;
  gap: 8px;
  display: flex;
}

.shop-balance {
  color: #f3d9a4;
  background: #f3d9a414;
  border: 1px solid #f3d9a452;
  border-radius: 999px;
  padding: 5px 11px;
  font-size: 12px;
}

.shop-close {
  color: #e8eefc99;
  cursor: pointer;
  background: none;
  border: none;
  border-radius: 8px;
  justify-content: center;
  align-items: center;
  width: 28px;
  height: 28px;
  padding: 0;
  display: flex;
}

.shop-close:hover {
  color: #fff;
  background: #ffffff14;
}

.shop-subline {
  letter-spacing: .4px;
  color: #e2eafa7a;
  gap: 16px;
  margin-top: 10px;
  font-size: 11.5px;
  display: flex;
}

.shop-chips {
  flex-wrap: wrap;
  align-items: center;
  gap: 7px;
  margin-top: 12px;
  padding-bottom: 2px;
  display: flex;
}

.shop-chip {
  color: #e2eafab8;
  cursor: pointer;
  background: #ffffff0a;
  border: 1px solid #ffffff1a;
  border-radius: 999px;
  align-items: center;
  gap: 5px;
  padding: 5px 11px;
  font-size: 12px;
  transition: all .15s;
  display: inline-flex;
}

.shop-chip:hover {
  border-color: #8fb6e073;
}

.shop-chip.is-active {
  color: #10182a;
  background: linear-gradient(#cfe2ff, #9fc0ff);
  border-color: #0000;
  font-weight: 700;
}

.shop-chip b {
  opacity: .7;
  font-weight: 700;
}

.shop-chip.is-add {
  color: #e2eafa80;
  border-style: dashed;
}

.shop-chip-input {
  align-items: center;
  gap: 4px;
  display: inline-flex;
}

.shop-chip-input input {
  color: #e8eefc;
  background: #ffffff0f;
  border: 1px solid #8fb6e073;
  border-radius: 8px;
  outline: none;
  width: 94px;
  padding: 5px 8px;
  font-size: 12px;
}

.shop-chip-input button {
  color: #10182a;
  cursor: pointer;
  background: #9fc0ff;
  border: none;
  border-radius: 8px;
  padding: 5px 8px;
  font-size: 11.5px;
}

.shop-chip-input button:last-child {
  color: #e2eafab3;
  background: #ffffff1a;
}

.shop-manage {
  background: #8fb6e012;
  border: 1px solid #8fb6e038;
  border-radius: 10px;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  margin-top: 10px;
  padding: 8px 10px;
  display: flex;
}

.shop-classify {
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  display: flex;
}

.shop-classify-label {
  color: #e2eafa8c;
  font-size: 11.5px;
}

.shop-classify button {
  color: #cfe2ff;
  cursor: pointer;
  background: #ffffff0a;
  border: 1px solid #ffffff1f;
  border-radius: 999px;
  padding: 3px 9px;
  font-size: 11.5px;
}

.shop-classify button:hover {
  background: #8fb6e033;
}

.shop-manage-actions {
  color: #e2eafa99;
  align-items: center;
  gap: 10px;
  font-size: 11.5px;
  display: flex;
}

.shop-sell {
  color: #ffc79a;
  cursor: pointer;
  background: #ff96501f;
  border: 1px solid #ffb07873;
  border-radius: 8px;
  padding: 5px 12px;
  font-size: 12px;
}

.shop-sell:disabled {
  opacity: .4;
  cursor: default;
}

.shop-grid {
  flex: 1;
  grid-template-columns: repeat(auto-fill, minmax(102px, 1fr));
  gap: 14px 12px;
  min-height: 120px;
  margin-top: 14px;
  padding: 2px 4px 6px;
  display: grid;
  overflow-y: auto;
}

.shop-grid.is-shop {
  grid-template-columns: repeat(auto-fill, minmax(112px, 1fr));
}

.shop-card {
  cursor: pointer;
  flex-direction: column;
  align-items: center;
  gap: 5px;
  transition: transform .12s;
  display: flex;
}

.shop-card:hover {
  transform: translateY(-2px);
}

.shop-card-icon {
  aspect-ratio: 1;
  border: 2px solid var(--rarity-color, #7db4e8);
  background: linear-gradient(145deg, var(--rarity-from, #2c4a7a), var(--rarity-to, #4d7fc4));
  border-radius: 13px;
  justify-content: center;
  align-items: center;
  width: 100%;
  display: flex;
  position: relative;
  overflow: hidden;
  box-shadow: 0 0 12px #7db4e847, inset 0 1px #ffffff3d;
}

.shop-card.is-selected .shop-card-icon {
  box-shadow: 0 0 0 3px #9fc0ff, 0 0 18px #9fc0ff99;
}

.shop-card-emoji {
  filter: drop-shadow(0 3px 6px #00000059);
  font-size: 34px;
  line-height: 1;
}

.shop-card-count {
  color: #fff;
  text-shadow: 0 1px 3px #0009;
  font-size: 11.5px;
  font-weight: 700;
  position: absolute;
  bottom: 3px;
  right: 5px;
}

.shop-card-check {
  color: #10182a;
  background: #9fc0ff;
  border-radius: 50%;
  justify-content: center;
  align-items: center;
  width: 18px;
  height: 18px;
  font-size: 11px;
  font-weight: 700;
  display: flex;
  position: absolute;
  top: 4px;
  right: 4px;
}

.shop-card-name {
  text-align: center;
  white-space: nowrap;
  text-overflow: ellipsis;
  color: #dbe6f8;
  max-width: 100%;
  font-size: 11.5px;
  overflow: hidden;
}

.shop-card-meta {
  color: #e2eafa73;
  font-size: 10.5px;
}

.shop-card-owned {
  color: #9ff0c8;
}

.shop-card-actions {
  gap: 5px;
  margin-top: 2px;
  display: flex;
}

.shop-card-actions button {
  cursor: pointer;
  border: 1px solid #0000;
  border-radius: 7px;
  padding: 3px 9px;
  font-size: 11px;
}

.shop-card-actions button.is-buy {
  color: #10182a;
  background: linear-gradient(#ffe1a3, #f0b64a);
}

.shop-card-actions button.is-gift {
  color: #ffd1dc;
  background: #ff78a024;
  border-color: #ff8caa73;
}

.shop-card-actions button:disabled {
  opacity: .38;
  cursor: default;
}

.shop-empty {
  text-align: center;
  color: #e2eafa59;
  padding: 30px 0;
  font-size: 12.5px;
}

.shop-foot {
  border-top: 1px solid #ffffff12;
  justify-content: flex-end;
  margin-top: 8px;
  padding-top: 8px;
  display: flex;
}

.shop-manage-toggle {
  color: #e2eafabf;
  cursor: pointer;
  background: #ffffff0a;
  border: 1px solid #ffffff24;
  border-radius: 8px;
  padding: 6px 14px;
  font-size: 12px;
}

.shop-manage-toggle:hover {
  background: #ffffff17;
}

.shop-notice {
  color: #9ff0c8;
  background: #3cb4821f;
  border: 1px solid #3cb48238;
  border-radius: 8px;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  margin-top: 8px;
  padding: 7px 10px;
  font-size: 12px;
  display: flex;
}

.shop-notice.is-error {
  color: #ffb4b4;
  background: #dc46461f;
  border-color: #dc46463d;
}

.shop-notice button {
  color: inherit;
  opacity: .7;
  cursor: pointer;
  background: none;
  border: none;
  padding: 0;
  display: flex;
}

.shop-detail-mask {
  backdrop-filter: blur(3px);
  background: #050912b8;
  border-radius: 18px;
  justify-content: center;
  align-items: center;
  animation: .14s ease-out shop-fade;
  display: flex;
  position: absolute;
  inset: 0;
}

.shop-detail {
  text-align: center;
  background: linear-gradient(#1a2542, #101827);
  border: 1px solid #8fb6e042;
  border-radius: 16px;
  width: min(340px, 88%);
  padding: 18px 18px 16px;
  position: relative;
  box-shadow: 0 18px 46px #0000008c;
}

.shop-detail-close {
  color: #e8eefc80;
  cursor: pointer;
  background: none;
  border: none;
  border-radius: 8px;
  padding: 4px;
  display: flex;
  position: absolute;
  top: 8px;
  right: 8px;
}

.shop-detail-hero {
  border: 2px solid var(--rarity-color, #7db4e8);
  background: linear-gradient(145deg, var(--rarity-from, #2c4a7a), var(--rarity-to, #4d7fc4));
  border-radius: 16px;
  justify-content: center;
  align-items: center;
  width: 96px;
  height: 96px;
  margin: 4px auto 10px;
  font-size: 46px;
  display: flex;
  box-shadow: 0 0 22px #7db4e866, inset 0 1px #ffffff4d;
}

.shop-detail-name {
  letter-spacing: .5px;
  font-size: 16px;
  font-weight: 700;
}

.shop-detail-rarity {
  letter-spacing: .6px;
  margin-top: 3px;
  font-size: 11.5px;
}

.shop-detail-desc {
  color: #e2eafaad;
  margin: 10px 4px;
  font-size: 12.5px;
  line-height: 1.7;
}

.shop-detail-stats {
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin: 12px 0;
  display: grid;
}

.shop-detail-stats div {
  background: #ffffff0d;
  border-radius: 9px;
  padding: 7px 4px;
}

.shop-detail-stats span {
  color: #e2eafa73;
  font-size: 10.5px;
  display: block;
}

.shop-detail-stats b {
  color: #e8eefc;
  font-size: 12.5px;
}

.shop-detail-actions {
  gap: 7px;
  display: flex;
}

.shop-detail-actions button {
  cursor: pointer;
  border: 1px solid #0000;
  border-radius: 10px;
  flex: 1;
  padding: 9px 4px;
  font-size: 12.5px;
}

.shop-detail-actions button.is-buy {
  color: #10182a;
  background: linear-gradient(#ffe1a3, #f0b64a);
  font-weight: 700;
}

.shop-detail-actions button.is-gift {
  color: #ffd1dc;
  background: #ff78a029;
  border-color: #ff8caa80;
}

.shop-detail-actions button.is-sell {
  color: #ffc79a;
  background: #ff96501f;
  border-color: #ffb07866;
}

.shop-detail-actions button:disabled {
  opacity: .35;
  cursor: default;
}

@media (width <= 640px) {
  .shop-overlay {
    padding: 8px;
  }

  .shop-panel {
    width: 100%;
    max-height: 94vh;
    padding: 12px 12px 10px;
  }

  .shop-grid, .shop-grid.is-shop {
    grid-template-columns: repeat(auto-fill, minmax(84px, 1fr));
    gap: 10px 8px;
  }

  .shop-card-emoji {
    font-size: 28px;
  }

  .shop-tab {
    padding: 5px 14px;
    font-size: 12.5px;
  }

  .shop-detail-actions button {
    font-size: 11.5px;
  }
}

.shop-images {
  flex-direction: column;
  flex: 1;
  gap: 16px;
  min-height: 120px;
  margin-top: 14px;
  padding: 2px 4px 6px;
  display: flex;
  overflow-y: auto;
}

.shop-images-empty {
  text-align: center;
  color: #e2eafa61;
  padding: 42px 18px;
  font-size: 12.5px;
  line-height: 1.8;
}

.shop-img-group {
  flex-direction: column;
  gap: 8px;
  display: flex;
}

.shop-img-group-head {
  border-bottom: 1px solid #ffffff12;
  align-items: baseline;
  gap: 6px;
  padding-bottom: 6px;
  display: flex;
}

.shop-img-group-name {
  color: #e8eefceb;
  font-size: 13px;
  font-weight: 600;
}

.shop-img-group-count {
  color: #e2eafa6b;
  font-size: 11.5px;
}

.shop-img-grid {
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  display: grid;
}

.shop-img-cell {
  aspect-ratio: 3 / 4;
  cursor: pointer;
  background: #ffffff0a;
  border: 1px solid #78a0ff29;
  border-radius: 10px;
  width: 100%;
  padding: 0;
  transition: transform .12s, border-color .15s;
  display: block;
  position: relative;
  overflow: hidden;
}

.shop-img-cell:hover {
  border-color: #8fb6e080;
}

.shop-img-cell:active {
  transform: scale(.97);
}

.shop-img-cell img {
  object-fit: cover;
  -webkit-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -webkit-user-drag: none;
  width: 100%;
  height: 100%;
  display: block;
}

.shop-img-preview {
  z-index: 5;
  background: #040812f0;
  border-radius: 18px;
  justify-content: center;
  align-items: center;
  padding: 30px;
  animation: .15s ease-out shop-img-fade;
  display: flex;
  position: absolute;
  inset: 0;
}

@keyframes shop-img-fade {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

.shop-img-preview-img {
  object-fit: contain;
  -webkit-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -webkit-user-drag: none;
  border-radius: 8px;
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: 100%;
}

.shop-img-preview-close {
  color: #e8eefcd9;
  cursor: pointer;
  background: #ffffff14;
  border: none;
  border-radius: 50%;
  justify-content: center;
  align-items: center;
  width: 32px;
  height: 32px;
  padding: 0;
  display: flex;
  position: absolute;
  top: 12px;
  right: 12px;
}

.shop-img-preview-bar {
  background: linear-gradient(to top, #000000b8, #0000);
  border-radius: 0 0 18px 18px;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  display: flex;
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
}

.shop-img-preview-name {
  color: #e8eefce6;
  font-size: 12.5px;
  font-weight: 600;
}

.shop-img-preview-label {
  color: #e2eafa73;
  font-size: 11.5px;
}

.shop-img-unfav {
  color: #ff7b91;
  cursor: pointer;
  background: #ff5a781a;
  border: 1px solid #ff789166;
  border-radius: 999px;
  align-items: center;
  gap: 5px;
  margin-left: auto;
  padding: 6px 12px;
  font-size: 12px;
  display: inline-flex;
}

.shop-img-unfav:active {
  opacity: .6;
}

@media (width <= 520px) {
  .shop-img-grid {
    gap: 6px;
  }

  .shop-img-preview {
    padding: 14px;
  }
}

.image-modal {
  grid-template: "options options" min-content
                 "content content" 1fr
                 "footer footer" 32px
                 / 300px auto;
  height: 100%;
  display: grid;
}

.image-modal-body {
  align-items: center;
  display: flex;
}

@media (width >= 1024px) {
  .image-modal {
    grid-template-areas: "options content"
                         "options content"
                         "options footer";
  }

  .image-modal-body {
    justify-content: center;
  }
}

.imm-shell {
  z-index: 60;
  --imm-gold: #e3c489;
  --imm-gold-soft: #e3c4894d;
  --imm-txt: #eef4f6;
  --imm-kai: "Kaiti SC", "STKaiti", "KaiTi", "楷体", serif;
  --imm-ui-font: "Microsoft YaHei UI", "Microsoft YaHei", "PingFang SC", "Noto Sans SC", sans-serif;
  background: #04080b;
  display: flex;
  position: fixed;
  inset: 0;
}

.imm-shell-main {
  flex: auto;
  min-width: 0;
  position: relative;
}

.imm-root {
  --imm-gold: #e3c489;
  --imm-gold-soft: #e3c4894d;
  --imm-txt: #eef4f6;
  --imm-kai: "Kaiti SC", "STKaiti", "KaiTi", "楷体", serif;
  --imm-ui-font: "Microsoft YaHei UI", "Microsoft YaHei", "PingFang SC", "Noto Sans SC", sans-serif;
  color: var(--imm-txt);
  font-family: var(--imm-ui-font);
  -webkit-font-smoothing: antialiased;
  -webkit-user-select: none;
  -ms-user-select: none;
  user-select: none;
  background: #04080b;
  line-height: normal;
  position: absolute;
  inset: 0;
  overflow: hidden;
}

.imm-root input, .imm-root textarea {
  -webkit-user-select: text;
  -ms-user-select: text;
  user-select: text;
}

.imm-viewport {
  position: absolute;
  inset: 0;
  overflow: hidden;
}

.imm-stage {
  transform-origin: 50%;
  width: 1920px;
  height: 1080px;
  position: absolute;
  top: 50%;
  left: 50%;
  overflow: hidden;
}

.imm-backdrop {
  background: #04080b;
  position: absolute;
  inset: 0;
  overflow: hidden;
}

.imm-bgfallback {
  background: radial-gradient(120% 100% at 62% 30%, #264e628c 0%, #04080b00 62%), linear-gradient(160deg, #0a1a24 0%, #061119 46%, #04080b 100%);
  position: absolute;
  inset: 0;
}

.imm-bgfill {
  filter: blur(44px) brightness(.6) saturate(.9);
  background: url("bg.ff11a8f4.jpg") center / cover no-repeat;
  animation: 68s ease-in-out infinite alternate imm-drift;
  position: absolute;
  inset: -6%;
}

.imm-bg {
  opacity: 0;
  background: url("bg.ff11a8f4.jpg") center no-repeat;
  transition: opacity .82s;
  position: absolute;
  inset: 0;
}

.imm-bg.on {
  opacity: 1;
}

@keyframes imm-drift {
  from {
    transform: scale(1.06)translate3d(0, 0, 0);
  }

  to {
    transform: scale(1.16)translate3d(-1.2%, -.9%, 0);
  }
}

.imm-rim {
  pointer-events: none;
  mix-blend-mode: screen;
  background: radial-gradient(46% 42% at 68% 44%, #bae4f42e, #bae4f40d 55%, #0000 76%);
  width: 52%;
  height: 80%;
  position: absolute;
  bottom: 0;
  right: 0;
}

.imm-motes {
  pointer-events: none;
  position: absolute;
  inset: 0;
  overflow: hidden;
}

.imm-mote {
  background: radial-gradient(circle, #fffdf0 0%, #ffecb2b8 46%, #ffe28c00 72%);
  border-radius: 50%;
  animation: linear infinite imm-rise;
  position: absolute;
  bottom: -40px;
}

@keyframes imm-rise {
  0% {
    opacity: 0;
    transform: translate3d(0, 0, 0);
  }

  12% {
    opacity: .8;
  }

  80% {
    opacity: .45;
  }

  100% {
    opacity: 0;
    transform: translate3d(24px, -1180px, 0);
  }
}

.imm-vignette {
  pointer-events: none;
  background: radial-gradient(122% 96% at 46% 38%, #0000 34%, #030a0e5c 76%, #02070ab3 100%);
  position: absolute;
  inset: 0;
}

.imm-bottomscrim {
  pointer-events: none;
  background: linear-gradient(to top, #030a0feb 0%, #030a0fbd 26%, #030a0f57 58%, #030a0f00 100%);
  height: 42.6%;
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
}

.imm-topscrim {
  pointer-events: none;
  background: linear-gradient(#030a0f9e, #030a0f24 60%, #030a0f00);
  height: 20.4%;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
}

.imm-logscrim {
  pointer-events: none;
  background: linear-gradient(to right, #030a0f99 0%, #030a0f75 55%, #030a0f1f 88%, #030a0f00 100%);
  width: 70.8%;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
}

.imm-portrait {
  aspect-ratio: 4 / 5;
  outline: 1px solid var(--imm-gold-soft);
  outline-offset: 4px;
  background: #1a1208 50% 14% / cover no-repeat;
  border: 8px solid #2b1c10;
  border-radius: 1px;
  width: 301px;
  transition: background-image .35s linear;
  position: absolute;
  top: 50%;
  right: 6.2%;
  transform: translateY(-46%)rotate(-1.6deg);
  box-shadow: 0 34px 70px #000000a8, inset 0 0 0 2px #e3c48959;
}

.imm-ui {
  flex-direction: column;
  display: flex;
  position: absolute;
  inset: 0;
}

.imm-top {
  flex: none;
  align-items: center;
  gap: 14px;
  height: 67px;
  padding: 0 29px;
  display: flex;
}

.imm-back {
  cursor: pointer;
  border: 1px solid var(--imm-gold-soft);
  color: #e6d5ab;
  backdrop-filter: blur(6px);
  background: #06121a80;
  border-radius: 50%;
  justify-content: center;
  align-items: center;
  width: 32px;
  height: 32px;
  padding-bottom: 3px;
  font-size: 17px;
  line-height: 1;
  transition: all .22s;
  display: inline-flex;
}

.imm-back:hover {
  color: #fff;
  border-color: #e3c489b3;
}

.imm-who {
  align-items: center;
  gap: 11px;
  display: flex;
}

.imm-avatar {
  border: 1px solid var(--imm-gold-soft);
  background: #12222c 50% 20% / cover no-repeat;
  border-radius: 50%;
  width: 39px;
  height: 39px;
  box-shadow: 0 6px 20px #00000080;
}

.imm-who .imm-nm {
  font-family: var(--imm-kai);
  letter-spacing: 1px;
  text-shadow: 0 2px 8px #000000b3;
  font-size: 21px;
  font-weight: 700;
}

.imm-who .imm-sub {
  letter-spacing: 1px;
  color: #cdb887;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 448px;
  margin-top: 3px;
  font-size: 11px;
  overflow: hidden;
}

.imm-grow {
  flex: 1;
}

.imm-chip {
  letter-spacing: 1px;
  color: #e6f0f3;
  border: 1px solid var(--imm-gold-soft);
  background: linear-gradient(#06141ca8, #06141c66);
  border-radius: 6px;
  align-items: center;
  gap: 6px;
  height: 31px;
  padding: 0 13px;
  font-size: 13px;
  display: inline-flex;
}

.imm-chip b {
  font-family: var(--imm-kai);
  color: #ffe1a3;
  font-size: 15px;
  font-weight: 600;
}

.imm-icobtn {
  cursor: pointer;
  color: #cfe0e5;
  border: 1px solid var(--imm-gold-soft);
  background: #06121a80;
  border-radius: 50%;
  justify-content: center;
  align-items: center;
  width: 31px;
  height: 31px;
  font-size: 14px;
  transition: all .22s;
  display: inline-flex;
}

.imm-icobtn:hover {
  color: #fff;
  border-color: #e3c489b3;
}

.imm-log {
  flex-direction: column;
  flex: 1;
  min-height: 0;
  padding: 11px 520px 7px 98px;
  display: flex;
  overflow-y: auto;
  -webkit-mask-image: linear-gradient(#0000 0, #000 32px);
  mask-image: linear-gradient(#0000 0, #000 32px);
}

.imm-log::-webkit-scrollbar {
  width: 0;
  height: 0;
}

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

.imm-loadmore {
  cursor: pointer;
  letter-spacing: 1px;
  color: #cfe0e5;
  background: #06121a9e;
  border: 1px solid #e3c48947;
  border-radius: 14px;
  align-self: flex-start;
  height: 28px;
  margin-bottom: 13px;
  padding: 0 14px;
  font-size: 11px;
}

.imm-loadmore:hover {
  color: #fff;
  border-color: #e3c489a6;
}

.imm-msg {
  margin-bottom: 21px;
}

.imm-msg.has-av {
  align-items: flex-start;
  gap: 12px;
  display: flex;
}

.imm-body {
  flex: 1;
  min-width: 0;
}

.imm-msg.is-me .imm-body {
  flex-direction: column;
  align-items: flex-end;
  display: flex;
}

.imm-mav {
  border: 1px solid var(--imm-gold-soft);
  background: #132029 50% 20% / cover no-repeat;
  border-radius: 8px;
  flex: none;
  width: 48px;
  height: 48px;
  overflow: hidden;
  box-shadow: 0 6px 16px #00000080;
}

.imm-mav.is-letter {
  font-family: var(--imm-kai);
  color: #cdb887;
  justify-content: center;
  align-items: center;
  font-size: 20px;
  display: flex;
}

.imm-msg .imm-plate {
  background: linear-gradient(#264e62eb, #0a1f2bf0);
  border: 1px solid #e3c4899e;
  border-radius: 3px;
  align-items: center;
  gap: 10px;
  height: 29px;
  margin-bottom: 8px;
  padding: 0 15px;
  display: inline-flex;
  box-shadow: 0 8px 20px #00000080;
}

.imm-msg .imm-plate b {
  font-family: var(--imm-kai);
  letter-spacing: 2px;
  color: #fff;
  font-size: 16px;
}

.imm-msg .imm-plate i {
  background: linear-gradient(#0000, #e3c489d9, #0000);
  width: 1px;
  height: 13px;
}

.imm-msg .imm-plate span {
  letter-spacing: 1px;
  color: #e2cb9c;
  font-size: 11px;
}

.imm-msg .imm-say {
  letter-spacing: 1px;
  color: #fff;
  text-shadow: 0 2px 5px #000000e6, 0 0 16px #000000bf, 0 0 32px #00000080;
  font-size: 20px;
  line-height: 1.84;
}

.imm-msg.is-scene {
  border-left: 2px solid #e3c4898c;
  margin-left: 46px;
  padding-left: 12px;
}

.imm-msg.is-scene .imm-narr {
  letter-spacing: 1px;
  color: #dbe6ea;
  text-shadow: 0 2px 5px #000000e6, 0 0 14px #000000b3;
  font-size: 18px;
  line-height: 1.8;
}

.imm-say .imm-aside, .imm-narr .imm-aside {
  color: var(--imm-aside-color, #b8c2cb);
}

.imm-say.has-hang, .imm-narr.has-hang, .imm-bubble.has-hang {
  text-indent: calc(-1 * var(--hang-punct, .6em));
}

.imm-say.has-hang > * + *, .imm-narr.has-hang > * + *, .imm-bubble.has-hang > * + * {
  text-indent: 0;
}

.imm-msg.is-me {
  justify-content: flex-end;
  display: flex;
}

.imm-msg.is-me .imm-bubble {
  letter-spacing: 1px;
  color: #f0f6f8;
  text-shadow: 0 2px 6px #000000b3;
  background: linear-gradient(#0c202cb8, #06121acc);
  border: 1px solid #e3c48957;
  border-radius: 11px 11px 3px;
  max-width: 66%;
  padding: 10px 17px;
  font-size: 18px;
  line-height: 1.7;
  box-shadow: 0 10px 26px #00000073;
}

.imm-msg.is-lock {
  justify-content: center;
  display: flex;
}

.imm-lockcard {
  text-align: center;
  background: linear-gradient(#0a1e28db, #06121ae0);
  border: 1px solid #e3c48980;
  border-radius: 4px;
  max-width: 72%;
  padding: 15px 24px;
  box-shadow: 0 12px 30px #00000080;
}

.imm-lockcard .imm-locktag {
  letter-spacing: 4px;
  color: #cdb887;
  margin-bottom: 7px;
  font-size: 10px;
}

.imm-lockcard .imm-locktext {
  font-family: var(--imm-kai);
  letter-spacing: 1px;
  color: #ffe1a3;
  font-size: 18px;
}

.imm-lockcard .imm-locksub {
  color: #cbd8dd;
  margin-top: 7px;
  font-size: 13px;
}

.imm-figure {
  outline: 1px solid var(--imm-gold-soft);
  outline-offset: 2px;
  border: 4px solid #2b1c10;
  border-radius: 3px;
  max-width: 364px;
  margin-top: 10px;
  display: block;
  box-shadow: 0 18px 40px #0009;
}

.imm-typing {
  letter-spacing: 4px;
  color: #cdb887;
  align-items: center;
  gap: 7px;
  font-size: 17px;
  display: inline-flex;
}

.imm-typing i {
  background: currentColor;
  border-radius: 50%;
  width: 6px;
  height: 6px;
  animation: 1.1s ease-in-out infinite imm-blink;
}

.imm-typing i:nth-child(2) {
  animation-delay: .18s;
}

.imm-typing i:nth-child(3) {
  animation-delay: .36s;
}

@keyframes imm-blink {
  0%, 80%, 100% {
    opacity: .2;
  }

  40% {
    opacity: 1;
  }
}

.imm-bottom {
  flex: none;
  padding: 0 98px 24px;
}

.imm-choices {
  margin-bottom: 14px;
}

.imm-ctitle {
  letter-spacing: 2px;
  color: #e0c68f;
  align-items: center;
  gap: 10px;
  margin-bottom: 8px;
  font-size: 13px;
  display: flex;
}

.imm-ctitle:after {
  content: "";
  background: linear-gradient(to right, #e3c48980, #0000);
  flex: 1;
  height: 1px;
}

.imm-opt {
  cursor: pointer;
  text-align: left;
  width: 100%;
  min-height: 41px;
  font-family: var(--imm-ui-font);
  letter-spacing: 1px;
  color: #e7f0f3;
  backdrop-filter: blur(6px);
  background: linear-gradient(90deg, #0a1e28c7, #08162094);
  border: 1px solid #e3c48957;
  border-radius: 4px;
  align-items: center;
  gap: 11px;
  margin-bottom: 7px;
  padding: 0 17px;
  font-size: 15px;
  transition: all .2s;
  display: flex;
}

.imm-opt:hover:not(:disabled) {
  color: #fff;
  background: linear-gradient(90deg, #1a3c4edb, #0a1c28a8);
  border-color: #e3c489cc;
  transform: translateX(4px);
  box-shadow: 0 8px 22px #00000073;
}

.imm-opt:disabled {
  opacity: .55;
  cursor: default;
}

.imm-opt i {
  color: #12222c;
  background: linear-gradient(135deg, #f3dda6, #b3924f);
  border-radius: 50%;
  flex: none;
  justify-content: center;
  align-items: center;
  width: 21px;
  height: 21px;
  font-size: 11px;
  font-style: normal;
  display: inline-flex;
}

.imm-inputrow {
  align-items: center;
  gap: 11px;
  display: flex;
}

.imm-ibtn {
  cursor: pointer;
  color: #f0d9a4;
  background: linear-gradient(#0e2430b3, #06121acc);
  border: 1px solid #e3c48980;
  border-radius: 50%;
  flex: none;
  justify-content: center;
  align-items: center;
  width: 39px;
  height: 39px;
  font-size: 17px;
  transition: all .22s;
  display: inline-flex;
  box-shadow: 0 8px 22px #00000073;
}

.imm-ibtn:hover, .imm-ibtn.on {
  color: #fff;
  border-color: #e3c489;
  box-shadow: 0 0 0 3px #e3c4892e, 0 8px 22px #00000073;
}

.imm-ibtn.is-stop {
  color: #ffb4a2;
  border-color: #ff968280;
}

.imm-ifield {
  backdrop-filter: blur(8px);
  background: linear-gradient(#06141cb8, #06121a99);
  border: 1px solid #e3c4894d;
  border-radius: 20px;
  flex: 1;
  align-items: center;
  height: 39px;
  padding: 0 18px;
  transition: all .22s;
  display: flex;
}

.imm-ifield:focus-within {
  border-color: #e3c489b3;
  box-shadow: 0 0 0 3px #e3c48921;
}

.imm-ifield input {
  color: #f2f7f8;
  height: 100%;
  font-family: var(--imm-ui-font);
  letter-spacing: 1px;
  background: none;
  border: 0;
  outline: 0;
  flex: 1;
  font-size: 16px;
}

.imm-ifield input::-moz-placeholder {
  color: #8fa4ad;
}

.imm-ifield input::placeholder {
  color: #8fa4ad;
}

.imm-send {
  cursor: pointer;
  height: 39px;
  font-family: var(--imm-ui-font);
  letter-spacing: 3px;
  color: #20160a;
  background: linear-gradient(#f6e3b0, #c9a86a);
  border: 0;
  border-radius: 20px;
  flex: none;
  padding: 0 28px;
  font-size: 16px;
  font-weight: 600;
  box-shadow: 0 10px 24px #0000006b;
}

.imm-send:hover:not(:disabled) {
  filter: brightness(1.08);
}

.imm-send:disabled {
  opacity: .5;
  cursor: default;
}

.imm-say > p, .imm-narr > p, .imm-bubble > p, .imm-lockcard .imm-locktext > p {
  margin: 0;
}

.imm-say > p + p, .imm-narr > p + p, .imm-bubble > p + p {
  margin-top: .6em;
}

.imm-say a, .imm-narr a, .imm-bubble a {
  color: var(--imm-gold);
  text-decoration: none;
}

.imm-say code, .imm-narr code, .imm-bubble code {
  background: none;
  padding: 0;
  font-family: ui-monospace, Menlo, Consolas, monospace;
  font-size: .92em;
}

.imm-say strong, .imm-narr strong, .imm-bubble strong {
  color: #fff;
  font-weight: 700;
}

.imm-empty {
  letter-spacing: 1px;
  color: #9fb2ba;
  text-shadow: 0 2px 6px #000c;
  font-size: 15px;
}

@media (width <= 640px) {
  .imm-shell {
    z-index: 80;
  }
}

.wechat-immersive-entry {
  color: #4a6b8a;
  white-space: nowrap;
  background: #fff;
  border: 1px solid #d5dde5;
  border-radius: 12px;
  margin-left: 10px;
  padding: 2px 10px;
  font-size: 12px;
  font-weight: 500;
  line-height: 18px;
  text-decoration: none;
  transition: all .2s;
}

.wechat-immersive-entry:hover {
  color: #2b4a66;
  background: #f2f7fb;
  border-color: #8fb0cc;
}

.imm-side {
  width: 320px;
  font-family: var(--imm-ui-font);
  color: var(--imm-txt);
  -webkit-user-select: none;
  -ms-user-select: none;
  user-select: none;
  background: linear-gradient(#08131c 0%, #050d14 100%);
  border-right: 1px solid #e3c4892e;
  flex: none;
  line-height: normal;
  display: flex;
}

.imm-side-rail {
  background: #03090e8c;
  border-right: 1px solid #e3c4891f;
  flex-direction: column;
  flex: none;
  align-items: center;
  gap: 14px;
  width: 58px;
  padding: 16px 0 14px;
  display: flex;
}

.imm-side-me {
  cursor: pointer;
  border: 1px solid #e3c48959;
  border-radius: 6px;
  flex: none;
  width: 38px;
  height: 38px;
  overflow: hidden;
}

.imm-side-me img {
  object-fit: cover;
  width: 100%;
  height: 100%;
  display: block;
}

.imm-side-icons {
  flex-direction: column;
  gap: 8px;
  display: flex;
}

.imm-side-rail-bottom {
  margin-top: auto;
}

.imm-side-ic {
  color: #93a9b4;
  cursor: pointer;
  border-radius: 8px;
  justify-content: center;
  align-items: center;
  width: 42px;
  height: 42px;
  font-size: 19px;
  text-decoration: none;
  transition: all .2s;
  display: flex;
}

.imm-side-ic svg {
  width: 21px;
  height: 21px;
}

.imm-side-ic:hover {
  color: #fff;
  background: #e3c4891f;
}

.imm-side-ic.on {
  color: #20160a;
  background: linear-gradient(#f0d9a4, #c9a86a);
  box-shadow: 0 6px 16px #00000073;
}

.imm-side-panel {
  flex-direction: column;
  flex: 1;
  min-width: 0;
  display: flex;
}

.imm-side-head {
  align-items: baseline;
  gap: 8px;
  padding: 18px 16px 10px;
  display: flex;
}

.imm-side-title {
  font-family: var(--imm-kai);
  letter-spacing: 4px;
  color: #ffe1a3;
  font-size: 21px;
}

.imm-side-count {
  color: #7d909b;
  font-size: 12px;
}

.imm-side-search {
  background: #06141cb8;
  border: 1px solid #e3c48938;
  border-radius: 17px;
  align-items: center;
  gap: 8px;
  height: 34px;
  margin: 0 14px 10px;
  padding: 0 12px;
  transition: all .2s;
  display: flex;
}

.imm-side-search:focus-within {
  border-color: #e3c48999;
  box-shadow: 0 0 0 3px #e3c4891a;
}

.imm-side-search svg {
  color: #7d909b;
  flex: none;
  width: 14px;
  height: 14px;
}

.imm-side-search input {
  color: #eef4f6;
  -webkit-user-select: text;
  -ms-user-select: text;
  user-select: text;
  background: none;
  border: 0;
  outline: 0;
  flex: 1;
  min-width: 0;
  font-family: inherit;
  font-size: 13px;
}

.imm-side-search input::-moz-placeholder {
  color: #6d818c;
}

.imm-side-search input::placeholder {
  color: #6d818c;
}

.imm-side-list {
  flex: 1;
  min-height: 0;
  padding: 0 8px 12px;
  overflow-y: auto;
}

.imm-side-list::-webkit-scrollbar {
  width: 6px;
}

.imm-side-list::-webkit-scrollbar-thumb {
  background: #e3c48938;
  border-radius: 3px;
}

.imm-side-item {
  cursor: pointer;
  border-radius: 8px;
  align-items: center;
  gap: 10px;
  padding: 9px 10px;
  transition: all .18s;
  display: flex;
  position: relative;
}

.imm-side-item:hover {
  background: #e3c48914;
}

.imm-side-item.active {
  background: linear-gradient(90deg, #e3c4892e, #e3c4890a);
}

.imm-side-item.active:before {
  content: "";
  background: linear-gradient(#f3dda6, #b3924f);
  border-radius: 2px;
  width: 3px;
  position: absolute;
  top: 14%;
  bottom: 14%;
  left: 0;
}

.imm-side-av {
  background: #132029;
  border-radius: 6px;
  flex: none;
  justify-content: center;
  align-items: center;
  width: 40px;
  height: 40px;
  display: flex;
  overflow: hidden;
}

.imm-side-av > * {
  object-fit: cover;
  width: 100%;
  height: 100%;
}

.imm-side-item .info {
  flex: 1;
  min-width: 0;
}

.imm-side-item .nm {
  color: #e9f1f4;
  white-space: nowrap;
  text-overflow: ellipsis;
  font-size: 14px;
  overflow: hidden;
}

.imm-side-item.active .nm {
  color: #ffe1a3;
}

.imm-side-item .pv {
  color: #7d909b;
  white-space: nowrap;
  text-overflow: ellipsis;
  margin-top: 3px;
  font-size: 12px;
  overflow: hidden;
}

.imm-side-badge {
  color: #fff;
  text-align: center;
  pointer-events: none;
  background: #e05b4a;
  border-radius: 8px;
  min-width: 18px;
  height: 16px;
  padding: 0 5px;
  font-size: 10px;
  line-height: 16px;
  position: absolute;
  top: 5px;
  left: 42px;
}

.imm-side-empty {
  text-align: center;
  color: #6d818c;
  padding: 24px 12px;
  font-size: 13px;
}

.imm-hud {
  z-index: 6;
  pointer-events: none;
  gap: 14px;
  display: flex;
  position: absolute;
  top: 78px;
  left: 96px;
}

.imm-hudcard {
  background: linear-gradient(#0a1014d6, #080c0fb8);
  border: 1px solid #e3c4896b;
  border-radius: 3px;
  min-width: 252px;
  padding: 10px 14px 11px;
  box-shadow: 0 8px 22px #00000080, inset 0 0 0 1px #0006;
}

.imm-hudname {
  letter-spacing: .06em;
  color: var(--imm-gold);
  margin-bottom: 7px;
  font-size: 15px;
}

.imm-hudbar {
  align-items: center;
  gap: 8px;
  margin-top: 6px;
  display: flex;
}

.imm-hudicon {
  text-align: center;
  opacity: .9;
  width: 16px;
  font-size: 13px;
  line-height: 1;
}

.imm-hudtrack {
  background: #0000008c;
  border-radius: 5px;
  flex: 1;
  height: 9px;
  position: relative;
  overflow: hidden;
  box-shadow: inset 0 0 0 1px #e3c4892e;
}

.imm-hudtrack i {
  background: linear-gradient(90deg, #8f2a20, #d8503a);
  border-radius: 5px;
  height: 100%;
  transition: width .45s cubic-bezier(.22, .61, .36, 1);
  display: block;
}

.imm-hudbar.is-mp .imm-hudtrack i {
  background: linear-gradient(90deg, #1d4a6b, #4a9cc9);
}

.imm-hudnum {
  text-align: right;
  font-variant-numeric: tabular-nums;
  color: #e9e2d0eb;
  min-width: 62px;
  font-size: 13px;
}

.imm-invite {
  backdrop-filter: blur(6px);
  background: #0e0c0a9e;
  border: 1px solid #e0c68f57;
  border-radius: 6px;
  margin-bottom: 12px;
  padding: 12px 14px;
}

.imm-invite-title {
  letter-spacing: 2px;
  color: #e0c68f;
  margin-bottom: 6px;
  font-size: 13px;
}

.imm-invite-text {
  color: #f4eee4e6;
  margin-bottom: 10px;
  font-size: 14px;
  line-height: 1.6;
}

.imm-invite-actions {
  gap: 10px;
  display: flex;
}

.imm-invite-btn {
  letter-spacing: 1px;
  color: #f4eee4db;
  cursor: pointer;
  background: none;
  border: 1px solid #e0c68f6b;
  border-radius: 4px;
  padding: 6px 16px;
  font-size: 13px;
  transition: background .18s, color .18s;
}

.imm-invite-btn:hover:not(:disabled) {
  background: #e0c68f24;
}

.imm-invite-btn.is-primary {
  color: #1a1510;
  background: #e0c68fe6;
  border-color: #e0c68fe6;
}

.imm-invite-btn.is-primary:hover:not(:disabled) {
  background: #e0c68f;
}

.imm-invite-btn:disabled {
  opacity: .5;
  cursor: default;
}

.mcc-body {
  -webkit-overflow-scrolling: touch;
  background: #ededed;
  flex-direction: column;
  flex: auto;
  min-height: 0;
  padding-bottom: 16px;
  display: flex;
  overflow: hidden auto;
}

.mcc-search-wrap {
  flex: none;
  padding: 8px 12px;
}

.mcc-search {
  color: #8a8a8a;
  background: #fff;
  border-radius: 4px;
  justify-content: center;
  align-items: center;
  height: 32px;
  padding: 0 8px;
  display: flex;
}

.mcc-search.is-filled, .mcc-search:focus-within {
  justify-content: flex-start;
}

.mcc-search-icon {
  color: #8a8a8a;
  flex: none;
  align-items: center;
  margin-right: 4px;
  display: flex;
}

.mcc-search-input {
  color: #111;
  text-align: center;
  background: none;
  border: 0;
  outline: 0;
  width: 60px;
  min-width: 0;
  padding: 0;
  font-family: inherit;
  font-size: 14px;
  line-height: 32px;
}

.mcc-search-input::-moz-placeholder {
  color: #8a8a8a;
}

.mcc-search-input::placeholder {
  color: #8a8a8a;
}

.mcc-search.is-filled .mcc-search-input, .mcc-search:focus-within .mcc-search-input {
  text-align: left;
  width: 100%;
}

.mcc-section-title {
  color: #888;
  background: none;
  height: 24px;
  padding: 0 16px;
  font-size: 13px;
  line-height: 24px;
}

.mcc-list {
  background: none;
}

.mcc-row {
  cursor: pointer;
  background: #fff;
  align-items: center;
  gap: 12px;
  height: 56px;
  padding: 0 16px;
  display: flex;
  position: relative;
}

.mcc-row:active {
  background: #e5e5e5;
}

.mcc-row:after {
  content: "";
  pointer-events: none;
  border-bottom: 1px solid #e9e9e9;
  position: absolute;
  bottom: 0;
  left: 110px;
  right: 0;
}

.mcc-row:last-child:after {
  border-bottom: 0;
}

.mcc-check {
  color: #fff;
  background: none;
  border: 2px solid #d6d6d6;
  border-radius: 50%;
  flex: 0 0 22px;
  justify-content: center;
  align-items: center;
  width: 22px;
  height: 22px;
  transition: background-color .12s, border-color .12s;
  display: flex;
}

.mcc-check.is-on {
  background: #07c160;
  border-color: #0000;
}

.mcc-avatar {
  object-fit: cover;
  background: #f0f0f0;
  border-radius: 6px;
  flex: 0 0 48px;
  width: 48px;
  height: 48px;
  display: block;
}

.mcc-name {
  color: #111;
  white-space: nowrap;
  text-overflow: ellipsis;
  flex: auto;
  min-width: 0;
  font-size: 16px;
  overflow: hidden;
}

.mcc-done {
  color: #07c160;
  cursor: pointer;
  background: none;
  border: 0;
  height: 44px;
  padding: 0 16px;
  font-family: inherit;
  font-size: 17px;
}

.mcc-done:active {
  opacity: .6;
}

.mcc-done.is-disabled, .mcc-done:disabled {
  color: #b2b2b2;
  cursor: default;
}

.mcc-done.is-disabled:active {
  opacity: 1;
}

.mcc-empty {
  text-align: center;
  color: #8a8a8a;
  padding: 80px 32px;
  font-size: 15px;
}

.mcc-empty-btn {
  color: #fff;
  cursor: pointer;
  background: #07c160;
  border: 0;
  border-radius: 6px;
  height: 40px;
  margin-top: 20px;
  padding: 0 24px;
  font-family: inherit;
  font-size: 16px;
}

.mcc-empty-tip {
  text-align: center;
  color: #8a8a8a;
  padding: 32px 16px;
  font-size: 14px;
}

.mcc-toast {
  color: #fff;
  z-index: 60;
  pointer-events: none;
  background: #000000b8;
  border-radius: 8px;
  max-width: 80vw;
  padding: 10px 16px;
  font-size: 14px;
  line-height: 1.3;
  position: fixed;
  bottom: 88px;
  left: 50%;
  transform: translateX(-50%);
}

.wx-root {
  -webkit-tap-highlight-color: transparent;
  color: #111;
  background: #ededed;
  flex-direction: column;
  height: 100dvh;
  font-family: -apple-system, PingFang SC, Microsoft YaHei, sans-serif;
  font-size: 16px;
  line-height: 1.4;
  display: flex;
  position: fixed;
  inset: 0;
  overflow: hidden;
}

.wx-root *, .wx-root :before, .wx-root :after {
  box-sizing: border-box;
}

.wx-root button {
  -webkit-tap-highlight-color: transparent;
  font-family: inherit;
}

.wx-root ::-webkit-scrollbar {
  background: none;
  width: 0;
  height: 0;
}

.wx-root ::-webkit-scrollbar-thumb {
  background: none;
  width: 0;
  height: 0;
}

.wx-root ::-webkit-scrollbar-track {
  background: none;
  width: 0;
  height: 0;
}

.wx-root, .wx-root * {
  scrollbar-width: none;
}

body.wx-mobile {
  background: #ededed;
  overflow: hidden;
}

body.wx-mobile .app {
  height: 100dvh;
  overflow: hidden;
}

body.wx-mobile div.absolute.z-10[class*="bg-black"] {
  display: none !important;
}

.wx-nav {
  padding-top: env(safe-area-inset-top, 0px);
  z-index: 20;
  background: #ededed;
  border-bottom: .5px solid #d6d6d6;
  flex: none;
  position: relative;
}

.wx-nav-inner {
  align-items: center;
  height: 44px;
  display: flex;
  position: relative;
}

.wx-nav-title {
  color: #111;
  white-space: nowrap;
  text-overflow: ellipsis;
  pointer-events: none;
  max-width: calc(100% - 120px);
  height: 44px;
  margin: 0;
  font-size: 17px;
  font-weight: 600;
  line-height: 44px;
  position: absolute;
  top: 0;
  left: 50%;
  overflow: hidden;
  transform: translateX(-50%);
}

.wx-nav-back {
  color: #111;
  cursor: pointer;
  background: none;
  border: 0;
  justify-content: center;
  align-items: center;
  width: 44px;
  height: 44px;
  padding: 0;
  display: flex;
  position: absolute;
  top: 0;
  left: 0;
}

.wx-nav-back:active {
  opacity: .5;
}

.wx-nav-right {
  align-items: center;
  height: 44px;
  display: flex;
  position: absolute;
  top: 0;
  right: 0;
}

.wx-nav-action {
  color: #111;
  cursor: pointer;
  background: none;
  border: 0;
  justify-content: center;
  align-items: center;
  width: 44px;
  height: 44px;
  padding: 0;
  display: flex;
}

.wx-nav-action:active {
  opacity: .5;
}

.wx-tabbar {
  height: calc(49px + env(safe-area-inset-bottom, 0px));
  padding-bottom: env(safe-area-inset-bottom, 0px);
  z-index: 20;
  background: #f7f7f7;
  border-top: .5px solid #d6d6d6;
  flex: none;
  align-items: stretch;
  display: flex;
}

.wx-tab {
  color: #7a7a7a;
  cursor: pointer;
  background: none;
  border: 0;
  flex-direction: column;
  flex: 1 1 0;
  justify-content: center;
  align-items: center;
  gap: 2px;
  padding: 0;
  display: flex;
  position: relative;
}

.wx-tab.active {
  color: #07c160;
}

.wx-tab-icon {
  justify-content: center;
  align-items: center;
  height: 26px;
  display: flex;
}

.wx-tab-label {
  font-size: 10px;
  line-height: 1;
}

.wx-tab-badge {
  color: #fff;
  text-align: center;
  background: #fa5151;
  border-radius: 8px;
  min-width: 16px;
  height: 16px;
  margin-left: 4px;
  padding: 0 4px;
  font-size: 10px;
  font-weight: 500;
  line-height: 16px;
  position: absolute;
  top: 2px;
  left: 50%;
}

.wx-chats {
  background: #ededed;
  flex-direction: column;
  flex: auto;
  min-height: 0;
  display: flex;
}

.wx-search-wrap {
  flex: none;
  padding: 8px 12px;
}

.wx-search {
  color: #8a8a8a;
  background: #fff;
  border-radius: 4px;
  justify-content: center;
  align-items: center;
  height: 32px;
  padding: 0 8px;
  display: flex;
}

.wx-search.is-filled, .wx-search:focus-within {
  justify-content: flex-start;
}

.wx-search-icon {
  color: #8a8a8a;
  flex: none;
  align-items: center;
  margin-right: 4px;
  display: flex;
}

.wx-search-input {
  color: #111;
  text-align: center;
  background: none;
  border: 0;
  outline: 0;
  width: 60px;
  min-width: 0;
  padding: 0;
  font-family: inherit;
  font-size: 14px;
  line-height: 32px;
}

.wx-search-input::-moz-placeholder {
  color: #8a8a8a;
}

.wx-search-input::placeholder {
  color: #8a8a8a;
}

.wx-search.is-filled .wx-search-input, .wx-search:focus-within .wx-search-input {
  text-align: left;
  width: 100%;
}

.wx-chat-list {
  -webkit-overflow-scrolling: touch;
  flex: auto;
  min-height: 0;
  overflow-y: auto;
}

.wx-chat-row {
  cursor: pointer;
  background: #fff;
  align-items: center;
  gap: 12px;
  min-height: 64px;
  padding: 8px 16px;
  display: flex;
  position: relative;
}

.wx-chat-row:active {
  background: #d9d9d9;
}

.wx-chat-row:after {
  content: "";
  pointer-events: none;
  border-bottom: 1px solid #e5e5e5;
  position: absolute;
  bottom: 0;
  left: 76px;
  right: 0;
}

.wx-chat-avatar {
  flex: 0 0 48px;
  width: 48px;
  height: 48px;
}

.wx-chat-avatar img {
  object-fit: cover;
  background: #cfcfcf;
  border-radius: 6px;
  width: 48px;
  height: 48px;
  display: block;
}

.wx-unread {
  color: #fff;
  text-align: center;
  pointer-events: none;
  background: #fa5151;
  border-radius: 9px;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  font-size: 12px;
  font-weight: 500;
  line-height: 18px;
  position: absolute;
  top: 8px;
  left: 44px;
}

.wx-chat-info {
  flex-direction: column;
  flex: auto;
  gap: 4px;
  min-width: 0;
  display: flex;
}

.wx-chat-line {
  align-items: baseline;
  gap: 8px;
  display: flex;
}

.wx-chat-name {
  color: #111;
  white-space: nowrap;
  text-overflow: ellipsis;
  flex: auto;
  min-width: 0;
  font-size: 16px;
  line-height: 20px;
  overflow: hidden;
}

.wx-chat-time {
  color: #b2b2b2;
  white-space: nowrap;
  flex: none;
  font-size: 12px;
  line-height: 16px;
}

.wx-chat-preview {
  color: #9a9a9a;
  white-space: nowrap;
  text-overflow: ellipsis;
  font-size: 14px;
  line-height: 18px;
  overflow: hidden;
}

.wx-menu-mask {
  z-index: 240;
  background: none;
  position: fixed;
  inset: 0;
}

.wx-menu {
  top: calc(env(safe-area-inset-top, 0px)  + 48px);
  z-index: 250;
  background: #4c4c4c;
  border-radius: 4px;
  width: 148px;
  padding: 4px 0;
  position: fixed;
  right: 8px;
  box-shadow: 0 6px 20px #00000047;
}

.wx-menu:before {
  content: "";
  border-bottom: 6px solid #4c4c4c;
  border-left: 6px solid #0000;
  border-right: 6px solid #0000;
  width: 0;
  height: 0;
  position: absolute;
  top: -6px;
  right: 14px;
}

.wx-menu-item {
  color: #fff;
  text-align: left;
  white-space: nowrap;
  cursor: pointer;
  background: none;
  border: 0;
  align-items: center;
  gap: 10px;
  width: 100%;
  height: 44px;
  padding: 0 12px;
  font-size: 16px;
  display: flex;
}

.wx-menu-item:active {
  background: #3a3a3a;
}

.wx-menu-icon {
  flex: 0 0 18px;
  justify-content: center;
  align-items: center;
  width: 18px;
  height: 18px;
  display: flex;
}

.wx-section {
  background: #fff;
}

.wx-section + .wx-section {
  margin-top: 8px;
}

.wx-cell {
  cursor: pointer;
  background: #fff;
  align-items: center;
  gap: 12px;
  min-height: 56px;
  padding: 0 16px;
  display: flex;
  position: relative;
}

.wx-cell:active {
  background: #d9d9d9;
}

.wx-cell + .wx-cell:after {
  content: "";
  pointer-events: none;
  border-top: 1px solid #e5e5e5;
  position: absolute;
  top: 0;
  left: 56px;
  right: 0;
}

.wx-cell-icon {
  color: #fff;
  border-radius: 6px;
  flex: 0 0 28px;
  justify-content: center;
  align-items: center;
  width: 28px;
  height: 28px;
  display: flex;
}

.wx-cell-icon-gray {
  background: #b9b9b9;
}

.wx-cell-label {
  color: #111;
  white-space: nowrap;
  text-overflow: ellipsis;
  flex: auto;
  min-width: 0;
  font-size: 16px;
  overflow: hidden;
}

.wx-cell-chevron {
  color: #c8c8c8;
  align-items: center;
  display: flex;
}

.wx-group-head {
  color: #8a8a8a;
  background: #ededed;
  align-items: center;
  height: 28px;
  padding: 0 16px;
  font-size: 14px;
  display: flex;
}

.wx-contact-row {
  cursor: pointer;
  background: #fff;
  align-items: center;
  gap: 12px;
  height: 56px;
  padding: 0 16px;
  display: flex;
  position: relative;
}

.wx-contact-row:active {
  background: #d9d9d9;
}

.wx-contact-row + .wx-contact-row:after {
  content: "";
  pointer-events: none;
  border-top: 1px solid #e5e5e5;
  position: absolute;
  top: 0;
  left: 76px;
  right: 0;
}

.wx-contact-avatar {
  object-fit: cover;
  background: #cfcfcf;
  border-radius: 6px;
  flex: 0 0 48px;
  width: 48px;
  height: 48px;
}

.wx-contact-name {
  color: #111;
  white-space: nowrap;
  text-overflow: ellipsis;
  flex: auto;
  min-width: 0;
  font-size: 16px;
  overflow: hidden;
}

.wx-me-card {
  cursor: pointer;
  background: #fff;
  align-items: center;
  gap: 14px;
  padding: 24px 16px;
  display: flex;
}

.wx-me-card:active {
  background: #d9d9d9;
}

.wx-me-card + .wx-section {
  margin-top: 8px;
}

.wx-me-avatar {
  object-fit: cover;
  background: #cfcfcf;
  border-radius: 8px;
  flex: 0 0 64px;
  width: 64px;
  height: 64px;
}

.wx-me-text {
  flex: auto;
  min-width: 0;
}

.wx-me-name {
  color: #111;
  white-space: nowrap;
  text-overflow: ellipsis;
  font-size: 20px;
  font-weight: 600;
  overflow: hidden;
}

.wx-me-id {
  color: #8a8a8a;
  margin-top: 4px;
  font-size: 13px;
}

.wx-logout {
  color: #fa5151;
  cursor: pointer;
  background: #fff;
  border: 0;
  border-radius: 6px;
  width: calc(100% - 32px);
  height: 44px;
  margin: 24px 16px;
  font-size: 16px;
  display: block;
}

.wx-logout:active {
  background: #d9d9d9;
}

.wx-guest-bar {
  color: #576b95;
  cursor: pointer;
  background: #fff;
  align-items: center;
  gap: 8px;
  height: 40px;
  margin-bottom: 8px;
  padding: 0 16px;
  font-size: 13px;
  display: flex;
}

.wx-guest-bar:active {
  background: #d9d9d9;
}

.wx-guest-bar-icon {
  flex: none;
  align-items: center;
  display: flex;
}

.wx-guest-bar-text {
  white-space: nowrap;
  text-overflow: ellipsis;
  flex: auto;
  min-width: 0;
  overflow: hidden;
}

.wx-login-actions {
  background: #fff;
  margin-top: 8px;
  padding: 16px;
}

.wx-login-btn {
  color: #fff;
  cursor: pointer;
  background: #07c160;
  border: 0;
  border-radius: 6px;
  justify-content: center;
  align-items: center;
  gap: 6px;
  width: 100%;
  height: 44px;
  font-size: 16px;
  font-weight: 500;
  display: flex;
}

.wx-login-btn:active {
  background: #06ad56;
}

.wx-login-tip {
  text-align: center;
  color: #9a9a9a;
  margin-top: 10px;
  font-size: 12px;
  line-height: 1.5;
}

.wx-confirm-mask {
  z-index: 3000;
  background: #0006;
  justify-content: center;
  align-items: center;
  display: flex;
  position: fixed;
  inset: 0;
}

.wx-confirm {
  text-align: center;
  background: #fff;
  border-radius: 12px;
  width: 270px;
  max-width: calc(100vw - 64px);
  overflow: hidden;
}

.wx-confirm-title {
  color: #111;
  padding: 24px 20px 8px;
  font-size: 17px;
  font-weight: 600;
}

.wx-confirm-msg {
  color: #7a7a7a;
  padding: 0 20px 22px;
  font-size: 14px;
  line-height: 1.5;
}

.wx-confirm-actions {
  border-top: .5px solid #e5e5e5;
  display: flex;
}

.wx-confirm-btn {
  color: #111;
  cursor: pointer;
  background: none;
  border: 0;
  flex: 50%;
  height: 56px;
  font-size: 17px;
}

.wx-confirm-btn:active {
  background: #ececec;
}

.wx-confirm-btn + .wx-confirm-btn {
  border-left: .5px solid #e5e5e5;
}

.wx-confirm-btn.danger {
  color: #fa5151;
}

.wx-auth h1 {
  font-size: 20px;
  line-height: 1.3;
}

.wx-auth p.text-xl {
  font-size: 15px;
}

.wx-auth .max-w-sm {
  max-width: 100%;
}

.wx-empty {
  text-align: center;
  color: #8a8a8a;
  padding: 80px 32px;
  font-size: 15px;
}

.wx-empty-btn {
  color: #fff;
  cursor: pointer;
  background: #07c160;
  border: 0;
  border-radius: 6px;
  height: 40px;
  margin-top: 20px;
  padding: 0 24px;
  font-size: 16px;
}

.wx-page-body {
  -webkit-overflow-scrolling: touch;
  --bg-200: #e5e5e5;
  --bg-300: #d4d4d4;
  --bg-400: #a3a3a3;
  --bg-500: #8a8a8a;
  --bg-600: #e5e5e5;
  --bg-700: #dcdcdc;
  --bg-800: #f2f2f2;
  --bg-900: #fff;
  --bg-1000: #fff;
  --text-100: #111;
  --text-200: #222;
  --text-300: #333;
  --text-400: #555;
  --text-500: #777;
  --text-600: #8a8a8a;
  --text-700: #9a9a9a;
  --text-800: #333;
  --text-900: #111;
  --rgb-bg-900: 255, 255, 255;
  background: #ededed;
  flex: auto;
  min-height: 0;
  padding-bottom: 16px;
  overflow: hidden auto;
}

.wx-page-body.wx-secondary {
  padding: 10px 12px 20px;
}

.wx-page-body > *, .wx-page-body input, .wx-page-body textarea, .wx-page-body select {
  max-width: 100%;
}

.wx-page-body table {
  max-width: 100%;
  display: block;
  overflow-x: auto;
}

.wx-page-body pre {
  max-width: 100%;
  overflow-x: auto;
}

.wx-page-body img {
  max-width: 100%;
  height: auto;
}

.wx-page-body .markdown {
  overflow-wrap: anywhere;
}

.wx-page-body .rounded-lg {
  box-shadow: none !important;
  background: #fff !important;
  border-radius: 8px !important;
}

.wx-page-body .helper-text {
  font-size: 13px;
  line-height: 1.5;
  color: #8a8a8a !important;
}

.wx-page-body textarea, .wx-page-body select, .wx-page-body input:not([type="checkbox"]):not([type="radio"]):not([type="range"]) {
  color: #111 !important;
  background: #fff !important;
  border: 1px solid #e0e0e0 !important;
  border-radius: 6px !important;
}

.wx-page-body > div > div.flex.h-10 {
  background: #fff;
  border-radius: 8px;
  overflow: hidden;
  gap: 0 !important;
  width: 100% !important;
}

.wx-page-body > div > div.flex.h-10 > button {
  font-size: 15px;
  border-radius: 0 !important;
  flex: 1 1 0 !important;
  justify-content: center !important;
  padding: 0 8px !important;
}

.wx-chat-body {
  background: #ededed;
  flex: auto;
  min-height: 0;
  display: flex;
  overflow: hidden;
}

.wx-chat-body > * {
  flex: auto;
  min-width: 0;
}

.wx-chat-body .mode {
  background: #ededed;
  flex-direction: column;
  height: 100%;
  max-height: 100%;
  display: flex;
  overflow: hidden;
  gap: 0 !important;
  padding: 0 !important;
}

.wx-chat-body .mode > header {
  display: none;
}

.wx-chat-body .mode > .pane {
  display: none !important;
}

.wx-chat-body .mode > .content {
  flex: auto;
  min-height: 0;
  margin: 0;
  padding: 0;
  display: flex;
  overflow: hidden;
}

.wx-chat-body .mode > .content > section {
  flex: auto;
  gap: 0;
  min-width: 0;
  min-height: 0;
}

.wx-chat-body .mode-content[data-messages] {
  flex: auto;
  padding: 0;
  overflow: hidden;
}

.wx-chat-body .chat-messages {
  background: #ededed;
  flex: auto;
  gap: 2px;
  min-height: 0;
  padding: 8px 12px;
}

.wx-chat-body #chat-messages {
  gap: 2px;
}

.wx-chat-body .mode > footer {
  background: #f7f7f7;
  flex: none;
  max-width: none !important;
}

.wx-chat-body .mode > footer > div {
  margin-bottom: 0;
}

.wx-chat-body [data-sender] {
  max-width: 100%;
  backdrop-filter: none !important;
  background: none !important;
  border-radius: 0 !important;
  margin: 0 !important;
  padding: 3px 0 !important;
}

.wx-chat-body [data-sender] > div {
  width: 100%;
}

.wx-chat-body [data-sender] .break-words {
  align-items: flex-start;
  gap: 8px;
  display: flex;
}

.wx-chat-body [data-sender] .break-words > :nth-child(2) {
  display: none;
}

.wx-chat-body [data-sender="user"] .break-words {
  flex-direction: row-reverse;
}

.wx-chat-body [data-sender] .break-words > :nth-child(3) {
  flex-direction: column;
  flex: auto;
  min-width: 0;
  display: flex;
  overflow: visible !important;
}

.wx-chat-body [data-sender="bot"] .break-words > :nth-child(3) {
  align-items: flex-start;
}

.wx-chat-body [data-sender="user"] .break-words > :nth-child(3) {
  align-items: flex-end;
}

.wx-chat-body [data-bot-avatar], .wx-chat-body [data-user-avatar] {
  flex: 0 0 36px;
  width: 36px;
  min-width: 36px;
  float: none !important;
  min-height: 0 !important;
  padding-right: 0 !important;
}

.wx-chat-body [data-bot-avatar] img, .wx-chat-body [data-user-avatar] img {
  object-fit: cover;
  background: #cfcfcf;
  border: 0 !important;
  border-radius: 5px !important;
  width: 36px !important;
  height: 36px !important;
  min-height: 0 !important;
  margin: 0 !important;
}

.wx-chat-body [data-sender="bot"] [data-bot-message], .wx-chat-body [data-sender="user"] [data-user-message] {
  overflow-wrap: anywhere;
  word-break: break-word;
  --text-chatcolor: #111;
  --text-800: #111;
  --text-600: #666;
  --text-quote-color: #333;
  --text-emphasis-color: #666;
  --text-quote-emphasis-color: #555;
  border-radius: 6px;
  max-width: 68%;
  padding: 9px 12px;
  font-size: 15px;
  line-height: 1.45;
  display: inline-block;
  position: relative;
}

.wx-chat-body [data-sender="bot"] [data-bot-message] {
  color: #111;
  background: #fff;
}

.wx-chat-body [data-sender="user"] [data-user-message] {
  color: #111;
  background: #95ec69;
}

.wx-chat-body [data-sender="bot"] [data-partial] {
  color: #111;
  overflow-wrap: anywhere;
  background: #fff;
  border-radius: 6px;
  max-width: 68%;
  padding: 9px 12px;
  font-size: 15px;
  line-height: 1.45;
  display: inline-block;
}

.wx-chat-body #chat-messages > div.mb-4.flex.flex-col.items-center {
  display: none;
}

.wx-chat-body [data-sender], .wx-chat-body [data-sender] > div, .wx-chat-body [data-sender] .break-words, .wx-chat-body [data-sender] .break-words > * {
  overflow: visible !important;
}

.wx-chat-body [data-sender="bot"] [data-bot-message]:before {
  content: "";
  border: 5px solid #0000;
  border-right-color: #fff;
  position: absolute;
  top: 12px;
  left: -5px;
}

.wx-chat-body [data-sender="user"] [data-user-message]:before {
  content: "";
  border: 5px solid #0000;
  border-left-color: #95ec69;
  position: absolute;
  top: 12px;
  right: -5px;
}

.wx-chat-body .rendered-markdown pre, .wx-chat-body .rendered-markdown table {
  max-width: 100%;
  overflow-x: auto;
}

.wx-chat-body .rendered-markdown img {
  max-width: 100%;
  height: auto;
}

.wx-chat-body .wechat-input-area {
  padding: 6px 8px calc(6px + env(safe-area-inset-bottom, 0px));
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 6px;
  display: flex;
  background: #f7f7f7 !important;
  border-radius: 0 !important;
}

.wx-chat-body .wechat-toolbar {
  color: #5a5a5a;
  flex: 0 0 100%;
  order: 0;
  align-items: center;
  gap: 18px;
  padding: 2px 4px 6px;
  display: flex;
}

.wx-chat-body .wechat-toolbar svg, .wx-chat-body .wechat-toolbar .wechat-tool-icon {
  cursor: pointer;
  width: 22px;
  height: 22px;
}

.wx-chat-body .wechat-input-wrap {
  flex: 1 1 0;
  order: 2;
  min-width: 0;
}

.wx-chat-body .wechat-input-wrap textarea.input-bar {
  resize: none;
  width: 100%;
  overflow-y: auto;
  color: #111 !important;
  min-height: 38px !important;
  max-height: 96px !important;
  box-shadow: none !important;
  background: #fff !important;
  border: 0 !important;
  border-radius: 4px !important;
  outline: none !important;
  padding: 8px 10px !important;
  font-size: 15px !important;
  line-height: 1.4 !important;
}

.wx-chat-body .wechat-input-area > div:has( > a[aria-label="打开扮演菜单"]), .wx-chat-body .wechat-input-area a[aria-label="打开扮演菜单"] {
  display: none;
}

.wx-chat-body .wechat-input-area .wechat-send-btn {
  flex: none;
  order: 3;
  height: 34px;
  color: #fff !important;
  background: #07c160 !important;
  border-radius: 4px !important;
  margin: 0 0 2px !important;
  padding: 0 14px !important;
}

.wx-chat-body .mt-1.wechat-send-btn {
  margin-top: 0 !important;
}

.wx-chat-page {
  scrollbar-width: none;
  flex-direction: column;
  flex: auto;
  min-height: 0;
  display: flex;
  position: relative;
  overflow: hidden;
}

.wx-chat-page .wx-chat-body {
  z-index: 1;
  position: relative;
}

.wx-chat-page ::-webkit-scrollbar {
  background: none;
  width: 0;
  height: 0;
}

.wx-chat-page ::-webkit-scrollbar-thumb {
  background: none;
  width: 0;
  height: 0;
}

.wx-chat-page ::-webkit-scrollbar-track {
  background: none;
  width: 0;
  height: 0;
}

.wx-chat-page .wx-imm-bg {
  z-index: 0;
  pointer-events: none;
  background: #0b0b0f;
  position: absolute;
  inset: 0;
  overflow: hidden;
}

.wx-chat-page .wx-imm-bg-layer {
  opacity: 0;
  will-change: opacity;
  background-color: #0b0b0f;
  background-position: top;
  background-repeat: no-repeat;
  background-size: cover;
  transition: opacity .7s;
  position: absolute;
  inset: 0;
}

.wx-chat-page .wx-imm-bg-layer.is-front {
  opacity: 1;
}

.wx-chat-page .wx-imm-scrim {
  z-index: 2;
  pointer-events: none;
  position: absolute;
  left: 0;
  right: 0;
}

.wx-chat-page .wx-imm-scrim-top {
  height: calc(132px + env(safe-area-inset-top, 0px));
  background: linear-gradient(#0000009e, #0000);
  top: 0;
}

.wx-chat-page .wx-imm-scrim-bottom {
  background: linear-gradient(to top, #000000b8, #0000);
  height: 260px;
  bottom: 0;
}

.wx-chat-page .wx-nav-title {
  max-width: calc(100% - 176px);
}

.wx-chat-page .wx-imm-bar {
  z-index: 2;
  height: calc(44px + env(safe-area-inset-top, 0px));
  padding-top: env(safe-area-inset-top, 0px);
  color: #fff;
  background: linear-gradient(#00000073, #0000);
  flex: none;
  align-items: center;
  display: flex;
  position: relative;
}

.wx-chat-page .wx-imm-title {
  color: #fff;
  text-shadow: 0 1px 4px #0000008c;
  white-space: nowrap;
  text-overflow: ellipsis;
  pointer-events: none;
  max-width: calc(100% - 152px);
  height: 44px;
  margin: 0;
  font-size: 17px;
  font-weight: 600;
  line-height: 44px;
  position: absolute;
  bottom: 0;
  left: 50%;
  overflow: hidden;
  transform: translateX(-50%);
}

.wx-chat-page .wx-imm-right {
  align-items: center;
  margin-left: auto;
  display: flex;
}

.wx-chat-page .wx-imm-btn {
  color: #fff;
  cursor: pointer;
  background: none;
  border: 0;
  flex: 0 0 44px;
  justify-content: center;
  align-items: center;
  width: 44px;
  height: 44px;
  padding: 0;
  display: flex;
}

.wx-chat-page .wx-imm-btn:active {
  opacity: .5;
}

.wx-chat-page.is-imm .wx-chat-body {
  background: none;
}

.wx-chat-page.is-imm .wx-chat-body .mode, .wx-chat-page.is-imm .wx-chat-body .mode > .content, .wx-chat-page.is-imm .wx-chat-body .mode > .content > section, .wx-chat-page.is-imm .wx-chat-body .mode-content[data-messages], .wx-chat-page.is-imm .wx-chat-body .chat-messages, .wx-chat-page.is-imm .wx-chat-body #chat-messages {
  background: none !important;
}

.wx-chat-page.is-imm .wx-chat-body .chat-messages {
  padding-bottom: calc(8px + env(safe-area-inset-bottom, 0px));
}

.wx-chat-page.is-imm .wx-chat-body .mode > footer {
  -webkit-backdrop-filter: blur(14px);
  border-top: .5px solid #ffffff24;
  background: #1212168c !important;
}

.wx-chat-page.is-imm .wx-chat-body .wechat-input-area {
  background: none !important;
}

.wx-chat-page.is-imm .wx-chat-body .wechat-toolbar {
  color: #ffffffe0;
}

.wx-chat-page.is-imm .wx-chat-body .wechat-input-wrap textarea.input-bar {
  caret-color: #fff;
  color: #fff !important;
  background: #ffffff29 !important;
}

.wx-chat-page.is-imm .wx-chat-body .wechat-input-wrap textarea.input-bar::-moz-placeholder {
  color: #ffffff8c;
}

.wx-chat-page.is-imm .wx-chat-body .wechat-input-wrap textarea.input-bar::placeholder {
  color: #ffffff8c;
}

.wx-chat-page.is-imm .wx-chat-body .wechat-input-area .wechat-send-btn {
  color: #fff !important;
  background: #07c160eb !important;
}

.wx-chat-page.is-imm .wx-chat-body [data-sender="bot"] [data-bot-message], .wx-chat-page.is-imm .wx-chat-body [data-sender="bot"] [data-partial], .wx-chat-page.is-imm .wx-chat-body [data-sender="user"] [data-user-message] {
  -webkit-backdrop-filter: blur(10px);
  text-shadow: 0 1px 2px #00000059;
  --text-chatcolor: #fff;
  --text-800: #fff;
  --text-600: #ffffffb8;
  --text-quote-color: #fff;
  --text-emphasis-color: #ffffffb8;
  --text-quote-emphasis-color: #ffffffdb;
  border: .5px solid #ffffff2e;
  border-radius: 14px;
  padding: 10px 13px;
  color: #fff !important;
  background: #0c0c106b !important;
}

.wx-chat-page.is-imm .wx-chat-body [data-sender="bot"] [data-bot-message]:before, .wx-chat-page.is-imm .wx-chat-body [data-sender="user"] [data-user-message]:before {
  display: none;
}

.wx-chat-page.is-imm .wx-chat-body [data-bot-avatar] img, .wx-chat-page.is-imm .wx-chat-body [data-user-avatar] img {
  box-shadow: 0 1px 6px #00000059;
  border: 1px solid #ffffff73 !important;
}

.wx-chat-page.is-imm .wx-chat-body #chat-messages > .flex.w-full.justify-center > .rendered-markdown {
  text-align: center;
  text-shadow: 0 1px 6px #0009;
  --text-800: #fffffff0;
  --text-chatcolor: #fffffff0;
  --text-600: #ffffffbf;
  --text-emphasis-color: #ffffffbf;
  --text-quote-color: #fffffff0;
  --text-quote-emphasis-color: #ffffffdb;
  color: #fffffff0 !important;
  background: none !important;
}

.wx-chat-page.is-imm .wx-chat-body .story-invite-card {
  -webkit-backdrop-filter: blur(12px);
  --text-500: #ffffffad;
  --text-600: #ffffffc7;
  --text-700: #fff;
  --text-800: #fff;
  --text-900: #fffffff0;
  box-shadow: 0 2px 14px #00000047;
  background: #0e0e128c !important;
  border-color: #ffffff29 !important;
}

.wx-chat-page.is-imm .wx-chat-body .story-invite-card .btn-clear, .wx-chat-page.is-imm .wx-chat-body .story-invite-card .btn-bordered, .wx-chat-page.is-imm .wx-chat-body .story-invite-card .btn-hollow, .wx-chat-page.is-imm .wx-chat-body .story-invite-card .btn-secondary {
  -webkit-backdrop-filter: blur(8px);
  color: #fff !important;
  background: #ffffff24 !important;
  border: .5px solid #ffffff38 !important;
}

.wx-chat-page.is-imm .wx-chat-body #chat-messages .flex.w-full.justify-center > .rendered-markdown, .wx-chat-page.is-imm .wx-chat-body #chat-messages .flex.w-full.justify-center > div {
  -webkit-backdrop-filter: blur(8px);
  text-shadow: 0 1px 5px #0000008c;
  --text-500: #ffffffad;
  --text-600: #fffc;
  --text-700: #fff;
  --text-800: #fff;
  --text-900: #fffffff2;
  --bg-700: #ffffff1f;
  --bg-800: transparent;
  color: #fffffff2 !important;
  background: #0c0c1057 !important;
  border-color: #ffffff24 !important;
}

.wx-chat-page.is-imm .wx-chat-body .rendered-markdown.bg-chat-bot {
  -webkit-backdrop-filter: blur(10px);
  color: #fff !important;
  background: #0c0c106b !important;
}

.wx-chat-page.is-imm .wx-chat-body .rendered-markdown.bg-chat-user {
  -webkit-backdrop-filter: blur(10px);
  --text-chatcolor: #fff;
  --text-800: #fff;
  --text-600: #ffffffb8;
  --text-emphasis-color: #ffffffb8;
  --text-quote-color: #fff;
  --text-quote-emphasis-color: #ffffffdb;
  border: .5px solid #ffffff2e;
  color: #fff !important;
  background: #0c0c106b !important;
}

.wx-chat-body .wechat-tool-pill {
  color: #4a4a4a;
  letter-spacing: .5px;
  white-space: nowrap;
  cursor: pointer;
  background: #0000000f;
  border-radius: 11px;
  align-items: center;
  gap: 3px;
  height: 22px;
  padding: 0 8px 0 5px;
  font-size: 12px;
  line-height: 1;
  transition: background .16s;
  display: inline-flex;
}

.wx-chat-body .wechat-tool-pill:active {
  background: #00000024;
}

.wx-chat-body .wechat-toolbar .wechat-tool-pill svg {
  width: 13px;
  height: 13px;
}

.wx-chat-page.is-imm .wx-chat-body .wechat-tool-pill {
  color: #fff;
  background: #ffffff29;
  border: .5px solid #fff3;
}

.wx-chat-page.is-imm .wx-chat-body .wechat-tool-pill:active {
  background: #ffffff47;
}

.wx-photo-view {
  z-index: 400;
  background: #000;
  justify-content: center;
  align-items: center;
  animation: .16s ease-out wx-photo-in;
  display: flex;
  position: fixed;
  inset: 0;
}

.wx-photo-img {
  object-fit: contain;
  -webkit-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -webkit-user-drag: none;
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: 100%;
  display: block;
}

@keyframes wx-photo-in {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

.wx-photo-bar {
  height: calc(44px + env(safe-area-inset-top, 0px));
  padding-top: env(safe-area-inset-top, 0px);
  pointer-events: none;
  background: linear-gradient(#0000008c, #0000);
  align-items: center;
  display: flex;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
}

.wx-photo-back {
  pointer-events: auto;
  color: #fff;
  cursor: pointer;
  background: none;
  border: 0;
  justify-content: center;
  align-items: center;
  width: 44px;
  height: 44px;
  padding: 0;
  display: flex;
}

.wx-photo-back:active {
  opacity: .5;
}

.wx-photo-count {
  font-variant-numeric: tabular-nums;
  color: #ffffffd1;
  text-shadow: 0 1px 4px #0009;
  height: 44px;
  font-size: 14px;
  line-height: 44px;
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
}

.wx-photo-tip {
  left: 0;
  right: 0;
  bottom: calc(18px + env(safe-area-inset-bottom, 0px));
  text-align: center;
  color: #ffffff80;
  pointer-events: none;
  font-size: 12px;
  position: absolute;
}

.wx-chat-page:not(.is-imm) .wx-imm-scrim {
  display: none;
}

.wx-chat-page:not(.is-imm) .wx-imm-bg:after {
  content: "";
  pointer-events: none;
  background: #ededed42;
  position: absolute;
  inset: 0;
}

.wx-chat-page:not(.is-imm) .wx-chat-body, .wx-chat-page:not(.is-imm) .wx-chat-body .mode, .wx-chat-page:not(.is-imm) .wx-chat-body .mode > .content, .wx-chat-page:not(.is-imm) .wx-chat-body .mode > .content > section, .wx-chat-page:not(.is-imm) .wx-chat-body .mode-content[data-messages], .wx-chat-page:not(.is-imm) .wx-chat-body .chat-messages {
  background: none !important;
}

.wx-chat-page:not(.is-imm) .wx-nav {
  -webkit-backdrop-filter: blur(14px);
  background: #edededdb;
}

.wx-chat-page:not(.is-imm) .wx-chat-body .mode > footer {
  -webkit-backdrop-filter: blur(14px);
  background: #f7f7f7e0 !important;
}

.wx-chat-page:not(.is-imm) .wx-chat-body .wechat-input-area {
  background: none !important;
}

.wx-chat-page:not(.is-imm) .wx-chat-body .wechat-input-wrap textarea.input-bar {
  background: #ffffffd1 !important;
}

.wx-chat-page:not(.is-imm) .wx-chat-body [data-sender="bot"] [data-bot-message] {
  -webkit-backdrop-filter: blur(6px);
  background: #ffffffd1;
}

.wx-chat-page:not(.is-imm) .wx-chat-body [data-sender="user"] [data-user-message] {
  -webkit-backdrop-filter: blur(6px);
  background: #95ec69d9;
}

.wx-chat-page:not(.is-imm) .wx-chat-body [data-sender="bot"] [data-partial] {
  -webkit-backdrop-filter: blur(6px);
  background: #ffffffd1;
}

.wx-chat-page:not(.is-imm) .wx-chat-body [data-sender="bot"] [data-bot-message]:before {
  border-right-color: #ffffffd1;
}

.wx-chat-page:not(.is-imm) .wx-chat-body [data-sender="user"] [data-user-message]:before {
  border-left-color: #95ec69d9;
}

.wx-chat-page:not(.is-imm) .wx-chat-body #chat-messages .flex.w-full.justify-center > .rendered-markdown {
  -webkit-backdrop-filter: blur(6px);
  background: #ffffffb8 !important;
}

.wx-chat-body .story-node-image-wrap {
  display: none !important;
}

.wx-chat-body .wechat-tool-pill.is-on {
  color: #07a352;
  background: #07c16024;
  font-weight: 600;
}

.wx-chat-page.is-imm .wx-chat-body .wechat-tool-pill.is-on {
  color: #fff;
  background: #07c16059;
  border: .5px solid #ffffff47;
}

.wx-distance-pop {
  z-index: 60;
  background: #fff;
  border: .5px solid #0000000f;
  border-radius: 12px;
  min-width: 196px;
  padding: 6px;
  position: absolute;
  bottom: calc(100% + 6px);
  left: 8px;
  box-shadow: 0 8px 28px #0000002e;
}

.wx-distance-title {
  color: #8a8a8a;
  padding: 4px 10px 6px;
  font-size: 12px;
}

.wx-distance-item {
  text-align: left;
  cursor: pointer;
  background: none;
  border: 0;
  border-radius: 8px;
  flex-direction: column;
  align-items: flex-start;
  width: 100%;
  padding: 8px 10px;
  display: flex;
}

.wx-distance-item:active {
  background: #0000000d;
}

.wx-distance-item.is-on {
  background: #07c1601f;
}

.wx-distance-label {
  color: #111;
  font-size: 15px;
  line-height: 1.3;
}

.wx-distance-hint {
  color: #9a9a9a;
  margin-top: 2px;
  font-size: 11px;
  line-height: 1.3;
}

.wx-distance-item.is-on .wx-distance-label {
  color: #07a352;
  font-weight: 600;
}

.wx-distance-clear {
  color: #9a9a9a;
  cursor: pointer;
  background: none;
  border: 0;
  border-top: .5px solid #00000012;
  width: 100%;
  margin-top: 2px;
  padding: 8px;
  font-size: 12px;
}

.wx-chat-page.is-imm .wx-distance-pop {
  -webkit-backdrop-filter: blur(14px);
  background: #18181ceb;
  border: .5px solid #ffffff24;
}

.wx-chat-page.is-imm .wx-distance-title {
  color: #ffffff8c;
}

.wx-chat-page.is-imm .wx-distance-label {
  color: #fff;
}

.wx-chat-page.is-imm .wx-distance-hint {
  color: #ffffff80;
}

.wx-chat-page.is-imm .wx-distance-item.is-on {
  background: #07c16047;
}

.wx-chat-page.is-imm .wx-distance-item.is-on .wx-distance-label {
  color: #4ade80;
}

.wx-chat-page.is-imm .wx-distance-clear {
  color: #ffffff80;
  border-top-color: #ffffff1f;
}

.wx-chat-body .story-choice-bar {
  -webkit-backdrop-filter: blur(10px);
  background: #ffffff80;
  border-radius: 10px;
  flex-direction: column;
  gap: 6px;
  width: 100%;
  padding: 8px 10px;
  display: flex;
  box-shadow: 0 2px 10px #00000014;
}

.wx-chat-body .story-choice-prompt {
  color: #8a8a8a;
  font-size: 12px;
  line-height: 1.5;
}

.wx-chat-body .story-choice-list {
  flex-direction: column;
  gap: 6px;
  display: flex;
}

.wx-chat-body .story-choice-item {
  color: #1a1a1a;
  text-align: left;
  cursor: pointer;
  -webkit-backdrop-filter: blur(4px);
  background: none;
  border: .5px solid #00000012;
  border-radius: 8px;
  align-items: flex-start;
  gap: 8px;
  width: 100%;
  padding: 9px 11px;
  font-size: 15px;
  line-height: 1.5;
  display: flex;
}

.wx-chat-body .story-choice-item:active {
  background: #07c16024;
}

.wx-chat-body .story-choice-idx {
  color: #fff;
  background: #07c160;
  border-radius: 50%;
  flex: none;
  justify-content: center;
  align-items: center;
  width: 19px;
  height: 19px;
  margin-top: 1px;
  font-size: 12px;
  font-weight: 600;
  line-height: 1;
  display: inline-flex;
}

.wx-chat-body .story-choice-text {
  flex: auto;
  min-width: 0;
}

.wx-chat-page.is-imm .wx-chat-body .story-choice-bar {
  box-shadow: none;
  background: #0c0c1080;
  border: .5px solid #ffffff2e;
}

.wx-chat-page.is-imm .wx-chat-body .story-choice-prompt {
  color: #ffffffbf;
  text-shadow: 0 1px 4px #0000008c;
}

.wx-chat-page.is-imm .wx-chat-body .story-choice-item {
  color: #fff;
  -webkit-backdrop-filter: blur(10px);
  background: none;
  border-color: #ffffff2e;
}

.wx-chat-page.is-imm .wx-chat-body .story-choice-item:active {
  background: #ffffff29;
}

.wx-photo-fav {
  right: calc(20px + env(safe-area-inset-right, 0px));
  bottom: calc(56px + env(safe-area-inset-bottom, 0px));
  color: #ffffffeb;
  backdrop-filter: blur(6px);
  cursor: pointer;
  background: #0000006b;
  border: 0;
  border-radius: 50%;
  justify-content: center;
  align-items: center;
  width: 48px;
  height: 48px;
  padding: 0;
  transition: color .18s, background .18s, transform .18s;
  display: flex;
  position: absolute;
  box-shadow: 0 2px 10px #00000059;
}

.wx-photo-fav.is-saved {
  color: #ff4d6a;
  background: #00000085;
}

.wx-photo-fav:active {
  transform: scale(.9);
}

.wx-photo-fav.is-pop {
  animation: .32s ease-out wx-photo-fav-pop;
}

@keyframes wx-photo-fav-pop {
  0% {
    transform: scale(1);
  }

  42% {
    transform: scale(1.28);
  }

  100% {
    transform: scale(1);
  }
}
/*# sourceMappingURL=index.a3233c23.css.map */
