#stealth-buddy-layer {
  /* Zero-size fixed host: children paint, but the box cannot expand page scroll. */
  position: fixed !important;
  left: 0 !important;
  top: 0 !important;
  right: auto !important;
  bottom: auto !important;
  width: 0 !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  z-index: 2147483647 !important;
  pointer-events: none !important;
  overflow: visible !important;
  background: none !important;
  isolation: isolate !important;
}

#stealth-buddy-layer[popover],
#stealth-buddy-action-effects[popover],
#stealth-buddy-page-fx[popover] {
  inset: auto !important;
  left: 0 !important;
  top: 0 !important;
  right: auto !important;
  bottom: auto !important;
  width: 0 !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  overflow: visible !important;
  background: transparent !important;
  color: inherit !important;
}

#stealth-buddy-actor {
  --stealth-buddy-size: 120px;
  position: absolute;
  left: 0;
  top: 0;
  width: var(--stealth-buddy-size);
  height: var(--stealth-buddy-size);
  pointer-events: auto;
  cursor: grab;
  touch-action: none;
  user-select: none;
  -webkit-user-select: none;
  will-change: transform;
  z-index: 3;
  overflow: visible;
}

#stealth-buddy-actor.stealth-buddy-dragging { cursor: grabbing; }
#stealth-buddy-actor.stealth-buddy-thinking #stealth-buddy-visual {
  animation: stealth-buddy-think 900ms ease-in-out infinite;
}

#stealth-buddy-visual {
  position: absolute;
  inset: 0;
  --stealth-buddy-flip: 1;
  --stealth-buddy-leg-left-angle: 0deg;
  --stealth-buddy-leg-right-angle: 0deg;
  --stealth-buddy-leg-left-lift: 0px;
  --stealth-buddy-leg-right-lift: 0px;
  --stealth-buddy-hip-shift: 0px;
  transform: scaleX(var(--stealth-buddy-flip));
  transform-origin: 50% 82%;
  will-change: transform;
  pointer-events: none;
}

#stealth-buddy-walk-rig {
  position: absolute;
  inset: 0;
  display: none;
  pointer-events: none;
  filter: drop-shadow(0 5px 4px rgba(0, 0, 0, .34));
}

#stealth-buddy-walk-rig img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  pointer-events: none;
  -webkit-user-drag: none;
  will-change: transform;
}

#stealth-buddy-walk-body {
  z-index: 3;
  transform: translate3d(var(--stealth-buddy-hip-shift), 0, 0);
}

#stealth-buddy-walk-leg-left {
  transform-origin: 43.36% 77.34%;
  transform: translate3d(0, var(--stealth-buddy-leg-left-lift), 0)
    rotate(var(--stealth-buddy-leg-left-angle));
}

#stealth-buddy-walk-leg-right {
  transform-origin: 56.45% 77.34%;
  transform: translate3d(0, var(--stealth-buddy-leg-right-lift), 0)
    rotate(var(--stealth-buddy-leg-right-angle));
}

#stealth-buddy-actor.stealth-buddy-walking #stealth-buddy-walk-rig {
  display: block;
}

#stealth-buddy-actor.stealth-buddy-walking #stealth-buddy-sprite {
  opacity: 0 !important;
}

#stealth-buddy-sprite {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  pointer-events: none;
  -webkit-user-drag: none;
  filter: drop-shadow(0 5px 4px rgba(0, 0, 0, .34));
}

#stealth-buddy-actor.stealth-buddy-falling #stealth-buddy-visual {
  animation: stealth-buddy-fall-spin .62s ease-in-out infinite alternate;
}

#stealth-buddy-actor.stealth-buddy-landing #stealth-buddy-visual {
  animation: stealth-buddy-land .22s ease-out;
}

#stealth-buddy-actor.stealth-buddy-climbing #stealth-buddy-visual {
  animation: stealth-buddy-climb-bob .34s ease-in-out infinite alternate;
}

#stealth-buddy-bubble {
  --buddy-bubble-bg: rgba(248, 248, 252, .98);
  --buddy-bubble-fg: #171821;
  position: absolute !important;
  left: 0;
  top: 0;
  right: auto;
  bottom: auto;
  width: max-content !important;
  min-width: 88px !important;
  max-width: min(240px, calc(100vw - 16px)) !important;
  padding: 9px 12px !important;
  border-radius: var(--stealth-cut-panel, 22px 4px 4px 4px) !important;
  background: var(--buddy-bubble-bg) !important;
  color: var(--buddy-bubble-fg) !important;
  font: 500 13px/1.35 system-ui, -apple-system, "Segoe UI", sans-serif !important;
  box-shadow: 0 10px 28px rgba(0, 0, 0, .28) !important;
  opacity: 0 !important;
  transform: translate(-50%, -100%) translateY(-8px) scale(.96);
  transition: opacity .14s ease !important;
  pointer-events: none !important;
  overflow-wrap: anywhere !important;
  white-space: normal !important;
  word-break: break-word !important;
  box-sizing: border-box !important;
  z-index: 7 !important;
  display: block !important;
  visibility: hidden !important;
  margin: 0 !important;
  isolation: isolate !important;
  contain: none !important;
  clip: auto !important;
  clip-path: none !important;
  filter: none !important;
  mix-blend-mode: normal !important;
  transform-style: flat !important;
}

#stealth-buddy-bubble.stealth-buddy-visible {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  cursor: text !important;
  user-select: text !important;
  -webkit-user-select: text !important;
}

#stealth-buddy-bubble.stealth-buddy-generating {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 5px !important;
  min-width: 54px !important;
  min-height: 30px !important;
  padding: 10px 14px !important;
  white-space: nowrap !important;
  overflow: visible !important;
}

#stealth-buddy-bubble.stealth-buddy-generating .stealth-buddy-typing-dot {
  display: inline-block !important;
  width: 7px !important;
  height: 7px !important;
  min-width: 7px !important;
  min-height: 7px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 50% !important;
  background: currentColor !important;
  color: inherit !important;
  opacity: 0.35 !important;
  animation: stealth-buddy-typing-dot 1s ease-in-out infinite !important;
  vertical-align: middle !important;
  flex: 0 0 auto !important;
}

#stealth-buddy-bubble.stealth-buddy-generating .stealth-buddy-typing-dot:nth-child(2) {
  animation-delay: 0.16s !important;
}

#stealth-buddy-bubble.stealth-buddy-generating .stealth-buddy-typing-dot:nth-child(3) {
  animation-delay: 0.32s !important;
}

@keyframes stealth-buddy-typing-dot {
  0%, 80%, 100% {
    opacity: 0.28;
    transform: translateY(0);
  }
  40% {
    opacity: 1;
    transform: translateY(-3px);
  }
}

#stealth-buddy-chat {
  --buddy-panel-bg: rgba(18, 16, 28, .92);
  --buddy-panel-border: rgba(90, 13, 214, .42);
  --buddy-panel-text: #f4f2fb;
  --buddy-panel-muted: #8a869b;
  --buddy-msg-bg: rgba(255, 255, 255, .06);
  --buddy-user-bg: linear-gradient(135deg, #5a0dd6, #4900c2);
  --buddy-input-bg: rgba(0, 0, 0, .28);
  --buddy-input-border: rgba(255, 255, 255, .12);
  --buddy-accent: #5a0dd6;
  --buddy-accent-2: #4900c2;
  position: absolute;
  left: 0;
  top: 0;
  z-index: 5;
  width: 300px;
  min-width: 240px;
  max-width: 320px;
  box-sizing: border-box;
  padding: 14px 12px 12px;
  border: 1px solid var(--buddy-panel-border);
  border-radius: var(--stealth-cut-panel, 22px 4px 4px 4px);
  background:
    radial-gradient(520px 220px at 12% -20%, rgba(90, 13, 214, .18), transparent 60%),
    var(--buddy-panel-bg);
  box-shadow: 0 18px 55px rgba(0, 0, 0, .48);
  backdrop-filter: blur(16px) saturate(1.15);
  -webkit-backdrop-filter: blur(16px) saturate(1.15);
  pointer-events: auto;
  opacity: 0;
  transform: translateY(8px) scale(.98);
  visibility: hidden;
  transition: opacity .16s ease, transform .16s ease, visibility .16s;
  font-family: system-ui, -apple-system, "Segoe UI", sans-serif;
  color: var(--buddy-panel-text);
}

#stealth-buddy-chat.stealth-buddy-open {
  opacity: 1;
  transform: translateY(0) scale(1);
  visibility: visible;
}

#stealth-buddy-chat[data-theme="light"] {
  --buddy-panel-bg: rgba(245, 247, 252, .94);
  --buddy-panel-border: rgba(90, 13, 214, .28);
  --buddy-panel-text: #1b1630;
  --buddy-panel-muted: #6b6580;
  --buddy-msg-bg: rgba(90, 13, 214, .08);
  --buddy-input-bg: rgba(255, 255, 255, .86);
  --buddy-input-border: rgba(40, 30, 70, .16);
  --buddy-bubble-bg: rgba(255, 255, 255, .98);
  --buddy-bubble-fg: #171821;
}

#stealth-buddy-chat[data-theme="stealth"],
#stealth-buddy-chat[data-theme="stealth-glass"],
#stealth-buddy-chat[data-theme="stealth-float"],
#stealth-buddy-chat[data-theme="dim"] {
  --buddy-panel-bg: rgba(32, 18, 62, .9);
  --buddy-panel-border: rgba(90, 13, 214, .45);
  --buddy-panel-text: #f0e8ff;
  --buddy-panel-muted: #b9a8de;
  --buddy-msg-bg: rgba(90, 13, 214, .16);
  --buddy-input-bg: rgba(12, 8, 24, .45);
  --buddy-input-border: rgba(90, 13, 214, .32);
  --buddy-accent: #5a0dd6;
  --buddy-accent-2: #4900c2;
}

#stealth-buddy-status {
  display: none;
  align-items: center;
  gap: 8px;
  margin: 0 0 8px;
  padding: 6px 8px;
  border-radius: var(--stealth-cut-sm, 8px 2px 2px 2px);
  background: rgba(90, 13, 214, .14);
  color: var(--buddy-panel-muted);
  font: 600 11px/1.2 system-ui, "Segoe UI", sans-serif;
  letter-spacing: .02em;
}

#stealth-buddy-chat.stealth-buddy-generating #stealth-buddy-status {
  display: flex;
}

#stealth-buddy-status-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--buddy-accent, #5a0dd6);
  box-shadow: 0 0 0 0 rgba(90, 13, 214, .45);
  animation: stealth-buddy-pulse 1.1s ease-out infinite;
}

#stealth-buddy-log {
  display: flex;
  flex-direction: column;
  gap: 7px;
  width: 100%;
  max-height: 260px;
  overflow-x: hidden;
  overflow-y: auto;
  padding: 2px 2px 10px;
  scrollbar-width: thin;
  box-sizing: border-box;
  scroll-behavior: auto;
  user-select: text;
  -webkit-user-select: text;
}

.stealth-buddy-msg {
  width: fit-content;
  max-width: 92%;
  padding: 8px 10px;
  border-radius: var(--stealth-cut, 12px 2px 2px 2px);
  color: var(--buddy-panel-text);
  background: var(--buddy-msg-bg);
  font-size: 13px;
  line-height: 1.35;
  overflow-wrap: anywhere;
  white-space: normal;
  word-break: break-word;
  box-sizing: border-box;
  cursor: text;
  user-select: text;
  -webkit-user-select: text;
}

.stealth-buddy-msg.stealth-buddy-user {
  align-self: flex-end;
  background: var(--buddy-user-bg);
  color: #fff;
}

.stealth-buddy-msg.stealth-buddy-streaming {
  border: 1px solid rgba(90, 13, 214, .28);
}

.stealth-buddy-msg.stealth-buddy-typing {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  min-width: 48px;
  min-height: 28px;
  padding: 10px 14px;
}

.stealth-buddy-msg.stealth-buddy-typing .stealth-buddy-typing-dot {
  display: inline-block;
  width: 7px;
  height: 7px;
  min-width: 7px;
  min-height: 7px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: currentColor;
  opacity: 0.4;
  animation: stealth-buddy-typing-dot 1s ease-in-out infinite;
  flex: 0 0 auto;
}

.stealth-buddy-msg.stealth-buddy-typing .stealth-buddy-typing-dot:nth-child(2) {
  animation-delay: 0.16s;
}

.stealth-buddy-msg.stealth-buddy-typing .stealth-buddy-typing-dot:nth-child(3) {
  animation-delay: 0.32s;
}

#stealth-buddy-input-row {
  display: flex;
  gap: 7px;
  width: 100%;
  box-sizing: border-box;
}

#stealth-buddy-input {
  min-width: 0;
  flex: 1 1 auto;
  min-height: 38px;
  max-height: 72px;
  padding: 8px 11px;
  border: 1px solid var(--buddy-input-border);
  border-radius: var(--stealth-cut, 12px 2px 2px 2px);
  outline: none;
  background: var(--buddy-input-bg);
  color: var(--buddy-panel-text);
  font: 13px system-ui, -apple-system, "Segoe UI", sans-serif;
  box-sizing: border-box;
  overflow: auto;
  white-space: pre-wrap;
  word-break: break-word;
  resize: none;
  field-sizing: content;
}

#stealth-buddy-input::placeholder {
  color: var(--buddy-panel-muted);
}

#stealth-buddy-input:focus {
  border-color: var(--buddy-accent, #5a0dd6);
  box-shadow: 0 0 0 2px rgba(90, 13, 214, .2);
}

#stealth-buddy-send,
#stealth-buddy-close {
  border: 0;
  border-radius: var(--stealth-cut, 12px 2px 2px 2px);
  background: linear-gradient(135deg, var(--buddy-accent, #5a0dd6), var(--buddy-accent-2, #4900c2));
  color: #fff;
  cursor: pointer;
  font: 700 15px system-ui, sans-serif;
  flex: 0 0 auto;
}

#stealth-buddy-send { width: 42px; height: 38px; }
#stealth-buddy-send:disabled,
#stealth-buddy-input:disabled {
  opacity: .55;
  cursor: wait;
}

#stealth-buddy-close {
  position: absolute;
  top: -9px;
  right: -9px;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: #292036;
  font-size: 12px;
}

#stealth-buddy-size-menu {
  /* Nested under #stealth-buddy-layer (top-layer popover). Absolute coords
     match the actor; a separate [popover] host was stuck at inset 0 / top-left. */
  position: absolute;
  left: 0;
  top: 0;
  right: auto;
  bottom: auto;
  z-index: 6;
  min-width: 148px;
  max-height: min(72vh, calc(100vh - 16px));
  overflow-x: hidden;
  overflow-y: auto;
  margin: 0;
  padding: 6px;
  border: 1px solid rgba(90, 13, 214, .35);
  border-radius: var(--stealth-cut-panel, 22px 4px 4px 4px);
  background: rgba(18, 16, 28, .98);
  color: #f4f2fb;
  box-shadow: 0 14px 40px rgba(0, 0, 0, .45);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  display: none;
  pointer-events: auto;
  transform: none;
}

#stealth-buddy-size-menu.stealth-buddy-open {
  display: block;
}

#stealth-buddy-size-menu[data-theme="light"] {
  background: rgba(245, 247, 252, .96);
  color: #1b1630;
  border-color: rgba(90, 13, 214, .28);
}

#stealth-buddy-chat[data-theme="dark"] {
  --buddy-panel-bg: rgba(18, 16, 28, .92);
  --buddy-panel-border: rgba(90, 13, 214, .42);
  --buddy-panel-text: #f4f2fb;
  --buddy-panel-muted: #8a869b;
  --buddy-msg-bg: rgba(255, 255, 255, .06);
  --buddy-input-bg: rgba(0, 0, 0, .28);
  --buddy-input-border: rgba(255, 255, 255, .12);
}

#stealth-buddy-size-menu button {
  display: block;
  width: 100%;
  border: 0;
  background: transparent;
  color: inherit;
  text-align: left;
  padding: 8px 10px;
  border-radius: var(--stealth-cut-sm, 8px 2px 2px 2px);
  cursor: pointer;
  font: 600 12px/1.2 system-ui, "Segoe UI", sans-serif;
}

#stealth-buddy-size-menu button:hover {
  background: rgba(90, 13, 214, .22);
}

@keyframes stealth-buddy-walk-bob {
  0%, 100% { transform: scaleX(var(--stealth-buddy-flip)) translateY(0) rotate(0); }
  50% { transform: scaleX(var(--stealth-buddy-flip)) translateY(-3px) rotate(-1deg); }
}

@keyframes stealth-buddy-climb-bob {
  from { transform: scaleX(var(--stealth-buddy-flip)) translateY(-2px) rotate(-1deg); }
  to { transform: scaleX(var(--stealth-buddy-flip)) translateY(2px) rotate(1deg); }
}

@keyframes stealth-buddy-fall-spin {
  from { transform: scaleX(var(--stealth-buddy-flip)) rotate(-7deg) translateY(-2px); }
  to { transform: scaleX(var(--stealth-buddy-flip)) rotate(7deg) translateY(2px); }
}

@keyframes stealth-buddy-land {
  0% { transform: scaleX(var(--stealth-buddy-flip)) scaleY(.76) scaleX(1.13); }
  70% { transform: scaleX(var(--stealth-buddy-flip)) scaleY(1.05) scaleX(.97); }
  100% { transform: scaleX(var(--stealth-buddy-flip)) scale(1); }
}

@keyframes stealth-buddy-think {
  0%, 100% { transform: scaleX(var(--stealth-buddy-flip)) translateY(0); }
  50% { transform: scaleX(var(--stealth-buddy-flip)) translateY(-4px); }
}

@keyframes stealth-buddy-pulse {
  0% { box-shadow: 0 0 0 0 rgba(90, 13, 214, .45); }
  70% { box-shadow: 0 0 0 8px rgba(90, 13, 214, 0); }
  100% { box-shadow: 0 0 0 0 rgba(90, 13, 214, 0); }
}

@keyframes stealth-buddy-caret {
  0%, 49% { opacity: .55; }
  50%, 100% { opacity: 0; }
}

#stealth-buddy-action-effects {
  /* Zero-size fixed host. Never use inset:0 / 100vw / 100vh: that forces a
     second scrollbar on Facebook and similar sites when Buddy remounts. FX
     children use position:fixed so they paint in viewport space. */
  position: fixed !important;
  left: 0 !important;
  top: 0 !important;
  right: auto !important;
  bottom: auto !important;
  width: 0 !important;
  height: 0 !important;
  inset: auto !important;
  z-index: 2147483647 !important;
  pointer-events: none !important;
  overflow: visible !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}

#stealth-buddy-action-effects img,
#stealth-buddy-action-effects canvas,
#stealth-buddy-page-fx img,
#stealth-buddy-page-fx canvas,
#stealth-buddy-shutdown-effects img,
#stealth-buddy-shutdown-effects canvas,
#stealth-buddy-shutdown-fx-linger img,
#stealth-buddy-shutdown-fx-linger canvas,
.stealth-buddy-fx-art {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  mix-blend-mode: normal !important;
  isolation: auto !important;
}

.stealth-buddy-portal {
  position: fixed !important;
  width: 88px !important;
  height: 112px !important;
  transform: translate(-50%, -50%) scale(.1);
  opacity: 0;
  border-radius: 50% !important;
  background: radial-gradient(
    ellipse at center,
    rgba(0, 0, 0, .98) 0 28%,
    rgba(30, 7, 62, .88) 38%,
    rgba(129, 48, 255, .86) 52%,
    rgba(196, 132, 255, .43) 62%,
    rgba(128, 48, 255, 0) 74%
  ) !important;
  box-shadow: 0 0 8px rgba(145, 75, 255, .95), 0 0 20px rgba(90, 28, 220, .75) !important;
  will-change: transform, opacity;
  z-index: 2147483647 !important;
  display: block !important;
  visibility: visible !important;
  pointer-events: none !important;
}

.stealth-buddy-portal::before,
.stealth-buddy-portal::after {
  content: "" !important;
  position: absolute !important;
  inset: 5% !important;
  border-radius: 50% !important;
  border: 3px solid rgba(187, 129, 255, .92) !important;
  box-shadow: inset 0 0 14px rgba(126, 46, 255, .9), 0 0 14px rgba(126, 46, 255, .9) !important;
  animation: stealth-buddy-portal-spin .7s linear infinite !important;
}

.stealth-buddy-portal::after {
  inset: 14% !important;
  border-width: 2px !important;
  border-style: dashed !important;
  animation-direction: reverse !important;
  animation-duration: .48s !important;
}

.stealth-buddy-portal.stealth-buddy-open {
  animation: stealth-buddy-portal-open .28s cubic-bezier(.2, .9, .25, 1) forwards !important;
}

.stealth-buddy-portal.stealth-buddy-close {
  animation: stealth-buddy-portal-close .25s ease-in forwards !important;
}

.stealth-buddy-laser {
  position: fixed !important;
  height: 4px !important;
  transform-origin: 0 50% !important;
  border-radius: 5px !important;
  background: linear-gradient(90deg, #fff 0%, #f2dbff 7%, #c478ff 18%, #8734ff 68%, rgba(95, 25, 220, .88) 100%) !important;
  box-shadow: 0 0 4px #fff, 0 0 9px #d28aff, 0 0 18px #7b25ff !important;
  opacity: 0;
  will-change: transform, opacity;
  z-index: 2147483647 !important;
  display: block !important;
  visibility: visible !important;
  pointer-events: none !important;
}

.stealth-buddy-laser::before {
  content: "" !important;
  position: absolute !important;
  inset: 1px 0 !important;
  border-radius: 5px !important;
  background: #fff !important;
  opacity: .92 !important;
}

.stealth-buddy-laser::after {
  content: "" !important;
  position: absolute !important;
  inset: -4px 0 !important;
  border-radius: 10px !important;
  background: inherit !important;
  filter: blur(5px) !important;
  opacity: .68 !important;
}

.stealth-buddy-laser.stealth-buddy-fire {
  animation: stealth-buddy-laser-fire var(--laser-duration, 460ms) ease-out forwards !important;
}

.stealth-buddy-eye-flare {
  position: fixed !important;
  width: 15px !important;
  height: 15px !important;
  border-radius: 50% !important;
  transform: translate(-50%, -50%) scale(.2);
  background: radial-gradient(circle, #fff 0 18%, #e8c8ff 28%, #a54eff 52%, rgba(116, 29, 255, 0) 75%) !important;
  box-shadow: 0 0 6px #d9a8ff !important;
  animation: stealth-buddy-eye-flare .45s ease-out forwards !important;
  z-index: 2147483647 !important;
  display: block !important;
  visibility: visible !important;
  pointer-events: none !important;
}

.stealth-buddy-burn {
  position: fixed !important;
  width: 18px !important;
  height: 18px !important;
  border-radius: 50% !important;
  transform: translate(-50%, -50%) scale(.1);
  opacity: 0;
  background: radial-gradient(circle, #fff 0 8%, #dfb4ff 14%, #8e35ff 34%, rgba(40, 5, 67, .95) 56%, rgba(0, 0, 0, 0) 73%) !important;
  box-shadow: 0 0 9px #8f36ff !important;
  z-index: 2147483647 !important;
  display: block !important;
  visibility: visible !important;
}

.stealth-buddy-burn.stealth-buddy-burn-live {
  animation: stealth-buddy-burn .5s ease-out forwards !important;
}

.stealth-buddy-spark {
  position: fixed !important;
  width: 6px !important;
  height: 6px !important;
  border-radius: 50% !important;
  background: #e4c5ff !important;
  box-shadow: 0 0 8px #9d46ff !important;
  animation: stealth-buddy-spark .58s ease-out forwards !important;
  z-index: 2147483647 !important;
  display: block !important;
  visibility: visible !important;
  pointer-events: none !important;
}

#stealth-buddy-actor.stealth-buddy-laser-charging #stealth-buddy-visual {
  filter: brightness(1.22) drop-shadow(0 0 8px rgba(151, 64, 255, .75));
}

#stealth-buddy-actor.stealth-buddy-action-hidden #stealth-buddy-visual {
  opacity: 0 !important;
  animation: none !important;
}

#stealth-buddy-bubble.stealth-buddy-action-hidden {
  opacity: 0 !important;
  visibility: hidden !important;
}

#stealth-buddy-actor.stealth-buddy-portal-enter #stealth-buddy-visual {
  animation: stealth-buddy-enter-portal .58s cubic-bezier(.48, .02, .96, .46) forwards !important;
}

#stealth-buddy-actor.stealth-buddy-portal-exit #stealth-buddy-visual {
  animation: stealth-buddy-exit-portal .52s cubic-bezier(.05, .72, .22, 1) forwards !important;
}

@keyframes stealth-buddy-portal-spin {
  to { transform: rotate(360deg); }
}

@keyframes stealth-buddy-portal-open {
  0% { opacity: 0; transform: translate(-50%, -50%) scale(.08) rotate(-35deg); }
  65% { opacity: 1; transform: translate(-50%, -50%) scale(1.12) rotate(8deg); }
  100% { opacity: 1; transform: translate(-50%, -50%) scale(1); }
}

@keyframes stealth-buddy-portal-close {
  from { opacity: 1; transform: translate(-50%, -50%) scale(1); }
  to { opacity: 0; transform: translate(-50%, -50%) scale(.04) rotate(45deg); }
}

@keyframes stealth-buddy-laser-fire {
  0% { opacity: 0; transform: var(--laser-transform) scaleX(.01); }
  10% { opacity: 1; }
  72% { opacity: 1; transform: var(--laser-transform) scaleX(1); }
  100% { opacity: 0; transform: var(--laser-transform) scaleX(1); }
}

@keyframes stealth-buddy-eye-flare {
  0% { opacity: 0; transform: translate(-50%, -50%) scale(.15); }
  20% { opacity: 1; transform: translate(-50%, -50%) scale(1.35); }
  100% { opacity: 0; transform: translate(-50%, -50%) scale(.45); }
}

@keyframes stealth-buddy-burn {
  0% { opacity: 0; transform: translate(-50%, -50%) scale(.1); }
  35% { opacity: 1; transform: translate(-50%, -50%) scale(1.35); }
  100% { opacity: 0; transform: translate(-50%, -50%) scale(.8); }
}

@keyframes stealth-buddy-spark {
  from { opacity: 1; transform: translate(-50%, -50%) scale(1); }
  to { opacity: 0; transform: translate(calc(-50% + var(--dx)), calc(-50% + var(--dy))) scale(.1); }
}

@keyframes stealth-buddy-enter-portal {
  0% {
    transform: translate3d(0, 0, 0) scaleX(var(--stealth-buddy-flip, 1)) scale(1);
    opacity: 1;
    filter: none;
  }
  18% {
    transform: translate3d(calc(var(--stealth-buddy-enter-dx) * -.08), calc(var(--stealth-buddy-enter-dy) * -.08), 0)
      scaleX(var(--stealth-buddy-flip, 1)) scale(.96);
    opacity: 1;
  }
  100% {
    transform: translate3d(var(--stealth-buddy-enter-dx), var(--stealth-buddy-enter-dy), 0)
      scaleX(var(--stealth-buddy-flip, 1)) scale(.035) rotate(32deg);
    opacity: 0;
    filter: blur(3px);
  }
}

@keyframes stealth-buddy-exit-portal {
  0% {
    transform: translate3d(var(--stealth-buddy-exit-dx), var(--stealth-buddy-exit-dy), 0)
      scaleX(var(--stealth-buddy-flip, 1)) scale(.035) rotate(-28deg);
    opacity: 0;
    filter: blur(3px);
  }
  68% {
    transform: translate3d(0, 0, 0) scaleX(var(--stealth-buddy-flip, 1)) scale(1.08) rotate(2deg);
    opacity: 1;
    filter: none;
  }
  100% {
    transform: translate3d(0, 0, 0) scaleX(var(--stealth-buddy-flip, 1)) scale(1);
    opacity: 1;
    filter: none;
  }
}

/* Grapple */
.stealth-buddy-grapple-effect { position: fixed; left: 0; top: 0; width: 0; height: 0; pointer-events: none; z-index: 2147483647; overflow: visible; }
.stealth-buddy-grapple-rope {
  position: absolute; height: 4px; transform-origin: 0 50%; border-radius: 3px;
  background: repeating-linear-gradient(90deg, #171922 0 7px, #7d42d5 7px 11px, #c995ff 11px 13px);
  box-shadow: 0 0 4px rgba(156, 75, 255, .8), 0 1px 2px rgba(0, 0, 0, .8);
  opacity: 0; clip-path: inset(0 100% 0 0); will-change: width, transform, clip-path;
}
.stealth-buddy-grapple-rope::after {
  content: ""; position: absolute; inset: -2px 0;
  background: linear-gradient(90deg, transparent, rgba(227, 195, 255, .55), transparent);
  filter: blur(2px);
}
.stealth-buddy-grapple-rope.stealth-buddy-grapple-drawn {
  opacity: 1;
  animation: stealth-buddy-grapple-draw var(--grapple-draw-ms, 420ms) cubic-bezier(.18, .75, .22, 1) forwards;
}
.stealth-buddy-grapple-hook {
  position: absolute; width: 34px; height: 34px; object-fit: contain; opacity: 0;
  filter: drop-shadow(0 0 6px rgba(155, 70, 255, .95));
  will-change: left, top, transform, opacity;
}
.stealth-buddy-grapple-hook.stealth-buddy-hook-fired {
  animation: stealth-buddy-hook-fire var(--grapple-draw-ms, 420ms) ease-out forwards;
}
.stealth-buddy-grapple-impact {
  position: absolute; width: 42px; height: 42px; border-radius: 50%;
  transform: translate(-50%, -50%); border: 3px solid rgba(199, 139, 255, .95);
  box-shadow: 0 0 12px #8d3dff, inset 0 0 10px #8d3dff;
  animation: stealth-buddy-grapple-impact .48s ease-out forwards;
  pointer-events: none;
}
#stealth-buddy-actor.stealth-buddy-grapple-firing #stealth-buddy-visual {
  filter: brightness(1.15) drop-shadow(0 0 7px rgba(138, 57, 255, .7));
}
#stealth-buddy-actor.stealth-buddy-grapple-pulling #stealth-buddy-visual {
  transform-origin: 50% 28%;
  filter: drop-shadow(0 8px 7px rgba(0, 0, 0, .45));
}

/* Levitate */
.stealth-buddy-levitation-field {
  position: fixed; transform: translate(-50%, -50%); pointer-events: none;
  will-change: left, top; width: 200px; height: 170px; z-index: 2147483646;
}
.stealth-buddy-levitation-aura {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; opacity: .94;
  background: transparent !important;
  mix-blend-mode: normal !important;
  filter: drop-shadow(0 0 10px rgba(135, 50, 255, .75));
  animation: stealth-buddy-aura-pulse .8s ease-in-out infinite alternate;
}
.stealth-buddy-power-particle {
  position: absolute; left: 50%; bottom: 22%;
  width: var(--particle-size, 5px); height: var(--particle-size, 5px);
  margin-left: var(--particle-x, 0px); border-radius: 50%; background: #ead7ff;
  box-shadow: 0 0 6px #a64dff, 0 0 12px #7b27ff;
  animation: stealth-buddy-power-rise 1.45s linear infinite;
  animation-delay: var(--particle-delay, 0s);
}
.stealth-buddy-levitation-field.stealth-buddy-field-close {
  animation: stealth-buddy-field-close .25s ease-in forwards;
}
#stealth-buddy-actor.stealth-buddy-levitating #stealth-buddy-visual {
  animation: stealth-buddy-levitate-body .72s ease-in-out infinite alternate !important;
  filter: brightness(1.12) drop-shadow(0 0 10px rgba(137, 55, 255, .72));
}

@keyframes stealth-buddy-grapple-draw {
  0% { clip-path: inset(0 100% 0 0); opacity: .2; }
  100% { clip-path: inset(0 0 0 0); opacity: 1; }
}
@keyframes stealth-buddy-hook-fire {
  0% { opacity: 0; filter: blur(2px); }
  14% { opacity: 1; }
  100% { opacity: 1; filter: none; }
}
@keyframes stealth-buddy-grapple-impact {
  0% { opacity: 0; transform: translate(-50%, -50%) scale(.15); }
  35% { opacity: 1; transform: translate(-50%, -50%) scale(1.2); }
  100% { opacity: 0; transform: translate(-50%, -50%) scale(1.65); }
}
@keyframes stealth-buddy-aura-pulse {
  from { opacity: .68; transform: scale(.94) rotate(-1deg); }
  to { opacity: 1; transform: scale(1.04) rotate(1deg); }
}
@keyframes stealth-buddy-power-rise {
  0% { opacity: 0; transform: translate3d(0, 12px, 0) scale(.4); }
  15% { opacity: 1; }
  100% { opacity: 0; transform: translate3d(0, -105px, 0) scale(1.1); }
}
@keyframes stealth-buddy-field-close {
  to { opacity: 0; transform: translate(-50%, -50%) scale(.55); }
}
@keyframes stealth-buddy-levitate-body {
  from { transform: scaleX(var(--stealth-buddy-flip, 1)) translateY(-2px) rotate(-1deg); }
  to { transform: scaleX(var(--stealth-buddy-flip, 1)) translateY(3px) rotate(1deg); }
}

.stealth-buddy-burn-mark {
  mix-blend-mode: normal !important;
  background: transparent !important;
  filter: drop-shadow(0 0 10px rgba(135, 50, 255, .55));
}

.stealth-buddy-rise-power {
  pointer-events: none !important;
  background: transparent !important;
}

.stealth-buddy-rise-power img {
  mix-blend-mode: normal !important;
  background: transparent !important;
}

.stealth-buddy-playful-ghost {
  background: transparent !important;
}

.stealth-buddy-crack-hole {
  filter: drop-shadow(0 6px 10px rgba(0, 0, 0, .45));
}

.stealth-buddy-crack-html {
  margin: 0 !important;
  padding: 10px 12px !important;
  max-width: 94% !important;
  max-height: 94% !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
  white-space: pre-wrap !important;
  word-break: break-word !important;
  font: 700 12.5px/1.45 ui-monospace, SFMono-Regular, Menlo, Consolas, "Cascadia Code", monospace !important;
  color: #f4eefc !important;
  background: rgba(12, 8, 22, .55) !important;
  border: 1px solid rgba(190, 150, 255, .28) !important;
  border-radius: 6px !important;
  text-shadow: 0 1px 2px rgba(0, 0, 0, .85) !important;
  letter-spacing: 0.01em !important;
  opacity: 1 !important;
  visibility: visible !important;
  display: block !important;
}

.stealth-buddy-crack-html .sb-html-tag {
  color: #e2b8ff !important;
  font-weight: 800 !important;
}

.stealth-buddy-crack-html .sb-html-attr {
  color: #9fe0ff !important;
}

.stealth-buddy-crack-html .sb-html-val {
  color: #ffe0a8 !important;
}

.stealth-buddy-crack-html .sb-html-text {
  color: #f7f2ff !important;
}

.stealth-buddy-crack-energy {
  pointer-events: none !important;
  z-index: 1 !important;
}

.stealth-buddy-crack-peek {
  z-index: 2 !important;
}

.stealth-buddy-crack-clone {
  pointer-events: none !important;
}

/* Smooth shutdown dissolve */
#stealth-buddy-shutdown-effects,
#stealth-buddy-shutdown-fx-linger {
  position: fixed !important;
  left: 0 !important;
  top: 0 !important;
  right: auto !important;
  bottom: auto !important;
  width: 0 !important;
  height: 0 !important;
  inset: auto !important;
  z-index: 2147483647 !important;
  pointer-events: none !important;
  overflow: visible !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}

#stealth-buddy-shutdown-effects[popover],
#stealth-buddy-shutdown-fx-linger[popover] {
  inset: auto !important;
  left: 0 !important;
  top: 0 !important;
  width: 0 !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  overflow: visible !important;
  background: transparent !important;
}

.stealth-buddy-shutdown-stage {
  position: absolute;
  left: 0;
  top: 0;
  width: var(--stealth-buddy-shutdown-size, 96px);
  height: calc(var(--stealth-buddy-shutdown-size, 96px) * 1.34);
  pointer-events: none;
  transform-origin: 50% 82%;
  will-change: left, top, transform, opacity, filter;
  opacity: 0;
}

.stealth-buddy-shutdown-stage.stealth-buddy-shutdown-live {
  opacity: 1;
}

.stealth-buddy-shutdown-pose {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  opacity: 0;
  filter: drop-shadow(0 8px 9px rgba(0, 0, 0, .43));
  will-change: opacity, transform, filter;
  -webkit-user-drag: none;
  user-select: none;
  /* Soft outer feather so leftover sprite plate edges dissolve */
  -webkit-mask-image: radial-gradient(ellipse at 50% 52%, #000 78%, transparent 100%);
  mask-image: radial-gradient(ellipse at 50% 52%, #000 78%, transparent 100%);
}

.stealth-buddy-shutdown-pose.stealth-buddy-shutdown-front {
  opacity: 1;
}

.stealth-buddy-shutdown-aura {
  position: absolute;
  left: 50%;
  top: 56%;
  width: 92%;
  height: 92%;
  transform: translate(-50%, -50%) scale(.72);
  border-radius: 48%;
  opacity: 0;
  pointer-events: none;
  background:
    radial-gradient(ellipse at 50% 74%, rgba(249, 226, 255, .72) 0 3%, rgba(181, 83, 255, .68) 8%, rgba(111, 34, 245, .44) 23%, rgba(61, 12, 112, .18) 45%, transparent 68%),
    conic-gradient(from 0deg, transparent 0 9%, rgba(167, 75, 255, .7) 12%, transparent 19% 31%, rgba(106, 27, 255, .65) 35%, transparent 42% 55%, rgba(214, 129, 255, .7) 60%, transparent 68% 82%, rgba(120, 38, 255, .72) 87%, transparent 94%);
  filter: blur(5px) drop-shadow(0 0 13px rgba(137, 45, 255, .9));
  mix-blend-mode: normal;
  will-change: transform, opacity, filter;
}

.stealth-buddy-shutdown-stage.stealth-buddy-shutdown-burning .stealth-buddy-shutdown-aura {
  animation: stealth-buddy-shutdown-fire 390ms ease-in-out infinite alternate;
  opacity: .95;
}

.stealth-buddy-shutdown-flame {
  position: absolute;
  left: 50%;
  top: 68%;
  width: var(--fw, 18px);
  height: var(--fh, 62px);
  margin-left: var(--fx, 0px);
  border-radius: 50% 50% 45% 45%;
  transform-origin: 50% 100%;
  opacity: 0;
  background: radial-gradient(ellipse at 50% 80%, #f3d8ff 0 7%, #b864ff 21%, #7021f3 44%, rgba(71, 12, 135, .55) 62%, transparent 76%);
  filter: blur(2px) drop-shadow(0 0 8px rgba(157, 65, 255, .9));
  mix-blend-mode: normal;
}

.stealth-buddy-shutdown-stage.stealth-buddy-shutdown-burning .stealth-buddy-shutdown-flame {
  animation: stealth-buddy-shutdown-flame var(--fd, 620ms) ease-in-out infinite alternate;
  animation-delay: var(--delay, 0ms);
}

.stealth-buddy-shutdown-smoke {
  position: absolute;
  left: 0;
  top: 0;
  width: var(--ps, 22px);
  height: var(--ps, 22px);
  border-radius: 50%;
  pointer-events: none;
  background: radial-gradient(circle at 36% 35%, rgba(176, 96, 255, .62) 0 6%, rgba(72, 32, 108, .42) 22%, rgba(22, 18, 30, .28) 48%, rgba(7, 6, 10, 0) 78%);
  box-shadow: 0 0 14px rgba(120, 43, 255, .22);
  filter: blur(var(--blur, 3px));
  opacity: 0;
  will-change: transform, opacity;
  animation: stealth-buddy-shutdown-smoke var(--pd, 1100ms) cubic-bezier(.16, .62, .32, 1) forwards;
  mix-blend-mode: normal;
}

.stealth-buddy-shutdown-ember {
  position: absolute;
  left: 0;
  top: 0;
  width: var(--es, 4px);
  height: var(--es, 4px);
  border-radius: 50%;
  pointer-events: none;
  background: #f1d9ff;
  box-shadow: 0 0 6px #d5a1ff, 0 0 13px #7e2cff;
  opacity: 0;
  animation: stealth-buddy-shutdown-ember var(--ed, 760ms) ease-out forwards;
}

#stealth-buddy-actor.stealth-buddy-shutdown-source-hidden #stealth-buddy-visual {
  opacity: 0 !important;
  animation: none !important;
}

#stealth-buddy-actor.stealth-buddy-shutdown-source-hidden #stealth-buddy-bubble {
  opacity: 0 !important;
}

@keyframes stealth-buddy-shutdown-fire {
  from {
    transform: translate(-50%, -50%) scale(.77) rotate(-2deg);
    filter: blur(5px) brightness(.92);
  }
  to {
    transform: translate(-50%, -53%) scale(1.08) rotate(2deg);
    filter: blur(7px) brightness(1.28);
  }
}

@keyframes stealth-buddy-shutdown-flame {
  0% {
    opacity: .24;
    transform: translateY(8px) scale(.55, .65) rotate(var(--fr, -4deg));
  }
  45% {
    opacity: .92;
    transform: translateY(-11px) scale(.92, 1.18) rotate(calc(var(--fr, -4deg) * -.45));
  }
  100% {
    opacity: .12;
    transform: translateY(-33px) scale(.45, 1.55) rotate(var(--fr, -4deg));
  }
}

@keyframes stealth-buddy-shutdown-smoke {
  0% {
    opacity: 0;
    transform: translate3d(0, 0, 0) scale(.35) rotate(0deg);
  }
  12% { opacity: .82; }
  70% { opacity: .58; }
  100% {
    opacity: 0;
    transform: translate3d(var(--pdx, 0px), var(--pdy, -100px), 0) scale(var(--pend, 2.5)) rotate(var(--prot, 28deg));
  }
}

@keyframes stealth-buddy-shutdown-ember {
  0% {
    opacity: 0;
    transform: translate3d(0, 0, 0) scale(.3);
  }
  13% { opacity: 1; }
  100% {
    opacity: 0;
    transform: translate3d(var(--edx, 0px), var(--edy, -70px), 0) scale(.05);
  }
}
