/** === 戰情中心 CyberCat 物理流體與駭客瞬移系統 v27 === */
/* 防止任何動畫或粒子撐寬手機與電腦版面造成排版跳動 */
html, body {
  overflow-x: clip !important;
  max-width: 100vw !important;
}
.warship-header-stage, .terminal-wrapper, .container, .terminal-card {
  overflow-x: clip !important;
}
.cst-clock-box {
  font-variant-numeric: tabular-nums !important;
}

/* 電腦端預留 5 格巡邏跑道 (215px)，手機端維持左對齊讓出右下角 2 格舞台 */
.warship-header-stage > div:nth-child(2) {
  margin-right: 215px !important;
}
@media (max-width: 768px) {
  .warship-header-stage > div:nth-child(2) {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 8px !important;
    width: 100% !important;
    margin-right: 0 !important;
  }
  .warship-header-stage .cst-clock-box {
    margin-left: 0 !important;
  }
}

/* 舞台錨定於 Header 底部分隔線地面 */
.jelly-cat-stage {
  --cat-x: 0px;
  --from-x: 0px;
  --to-x: 0px;
  position: absolute !important;
  bottom: 0px !important;
  right: 156px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin: 0 !important;
  cursor: pointer !important;
  user-select: none !important;
  -webkit-tap-highlight-color: transparent !important;
  transform: translateX(var(--cat-x, 0px));
  will-change: transform;
  z-index: 10 !important;
}
@media (max-width: 768px) {
  .jelly-cat-stage {
    right: 64px !important;
  }
}

.jelly-cat-stage.about-stationary {
  position: relative !important;
  bottom: auto !important;
  right: auto !important;
  margin: 4px 12px !important;
}

.jelly-cat-stage.shiny-gold-cat {
  position: relative !important;
  bottom: auto !important;
  right: auto !important;
  margin: 0 !important;
  transform: translateX(var(--cat-x, 0px));
}

/* 演員容器 */
.jelly-cat-actor {
  position: relative !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  width: 38px !important;
  transform-origin: bottom center !important;
  animation: cat-base-breathe 3.2s ease-in-out infinite !important;
}
@keyframes cat-base-breathe {
  0%, 100% { transform: translate(0, 0) scale(1, 1) rotate(0deg); }
  50%      { transform: translate(0, 1px) scale(1.04, 0.96) rotate(0deg); }
}

/* 雙耳：z-index: 3 頂層 */
.jelly-cat-ears {
  display: flex !important;
  justify-content: space-between !important;
  width: 28px !important;
  margin-bottom: -1px !important;
  position: relative !important;
  z-index: 3 !important;
}
.jelly-ear {
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 13px !important;
  font-weight: 900 !important;
  color: #00e5ff !important;
  line-height: 1 !important;
  text-shadow: 0 0 6px #00e5ff !important;
  transform-origin: center bottom !important;
  transition: transform 0.28s cubic-bezier(0.22, 0.8, 0.32, 1) !important;
}
.ear-l { transform: rotate(-10deg); }
.ear-r { transform: rotate(10deg); }

/* 主機身外框 */
.jelly-cat-chassis {
  width: 38px !important;
  height: 31px !important;
  background: #02060b !important;
  border: 1.8px solid #00e5ff !important;
  border-radius: 8px !important;
  box-shadow: 0 0 10px rgba(0, 229, 255, 0.4), inset 0 0 5px rgba(0, 229, 255, 0.2) !important;
  position: relative !important;
  z-index: 2 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: hidden !important;
  transition: border-radius 0.3s ease !important;
}

/* 臉部柔光護目鏡色塊 */
.jelly-cat-face-glow {
  width: 22px !important;
  height: 16px !important;
  background: linear-gradient(180deg, rgba(0, 190, 235, 0.42) 0%, rgba(0, 135, 185, 0.52) 100%) !important;
  box-shadow: 0 0 8px rgba(0, 229, 255, 0.65), inset 0 0 6px rgba(0, 240, 255, 0.55) !important;
  border: 1px solid rgba(0, 229, 255, 0.38) !important;
  border-radius: 4.5px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  position: relative !important;
  z-index: 4 !important;
  transition: transform 0.28s cubic-bezier(0.22, 0.8, 0.32, 1) !important;
}

/* 雙眼 */
.jelly-eyes-normal {
  display: flex !important;
  align-items: center !important;
  gap: 5px !important;
  animation: cat-eyes-ambient-blink 4.5s ease-in-out infinite !important;
  transition: transform 0.25s ease !important;
}
.jelly-eye {
  width: 5px !important;
  height: 10px !important;
  background: #e6ffff !important;
  border-radius: 2.5px !important;
  box-shadow: 0 0 6px #00e5ff, 0 0 10px #00e5ff !important;
  transition: all 0.25s ease !important;
}
@keyframes cat-eyes-ambient-blink {
  0%, 44%, 48%, 92%, 96%, 100% { transform: scaleY(1); }
  46%, 94%                     { transform: scaleY(0.1); }
}

.jelly-eyes-happy {
  display: none !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;
  transform: translateY(-1.5px) !important;
  z-index: 2 !important;
}
.jelly-eyes-happy span {
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 10px !important;
  font-weight: 900 !important;
  color: #e6ffff !important;
  text-shadow: 0 0 6px #00e5ff !important;
  line-height: 1 !important;
  display: inline-block !important;
}

.jelly-cat-blush {
  position: absolute !important;
  top: 58% !important;
  left: 50% !important;
  transform: translate(-50%, -50%) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  width: 20px !important;
  height: 6px !important;
  padding: 0 !important;
  opacity: 0 !important;
  transition: opacity 0.2s ease !important;
  pointer-events: none !important;
  z-index: 3 !important;
}
.jelly-cat-blush span {
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 5.5px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  letter-spacing: -1.4px !important;
  color: #ff3377 !important;
  text-shadow: 0 0 4px #ff3377 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}

/* 貓尾 */
.jelly-cat-tail-svg {
  position: absolute !important;
  bottom: 2px !important;
  left: 36px !important;
  width: 20px !important;
  height: 24px !important;
  z-index: 1 !important;
  pointer-events: none !important;
  overflow: visible !important;
  filter: drop-shadow(0 0 4px #00e5ff) !important;
  transform-origin: 2px 18px !important;
  transition: transform 0.32s cubic-bezier(0.22, 0.8, 0.32, 1) !important;
}
.jelly-cat-stage.dir-l .jelly-cat-tail-svg { transform: translateX(0px) scaleX(1) rotate(0deg); }
.jelly-cat-stage.dir-r .jelly-cat-tail-svg { transform: translateX(-38px) scaleX(-1) rotate(0deg); }
.jelly-tail-morph { animation: tail-compact-s-wave 1.3s ease-in-out infinite alternate !important; }
@keyframes tail-compact-s-wave {
  0%   { d: path("M 2 18 C 8 20, 9 10, 14 9 C 17 8, 18 4, 15 2"); }
  50%  { d: path("M 2 18 C 8 18, 12 13, 14 8 C 15 5, 16 3, 14 2"); }
  100% { d: path("M 2 18 C 6 12, 12 16, 15 10 C 17 6, 15 3, 18 2"); }
}

/* 睡眠飄浮 zZZ */
.jelly-cat-zzz {
  position: absolute !important;
  top: -18px !important;
  right: -8px !important;
  pointer-events: none !important;
  z-index: 5 !important;
  opacity: 0 !important;
  transition: opacity 0.25s ease !important;
}
.jelly-cat-stage.dir-l .jelly-cat-zzz { right: auto !important; left: -8px !important; }
.jelly-cat-zzz i {
  position: absolute !important;
  font-family: 'JetBrains Mono', monospace !important;
  font-style: normal !important;
  font-weight: 900 !important;
  color: #00e5ff !important;
  text-shadow: 0 0 6px #00e5ff !important;
  opacity: 0;
}
.jelly-cat-zzz i:nth-child(1) { font-size: 8px; left: 0px; top: 8px; }
.jelly-cat-zzz i:nth-child(2) { font-size: 10px; left: 6px; top: 2px; }
.jelly-cat-zzz i:nth-child(3) { font-size: 12px; left: 13px; top: -5px; }
.jelly-cat-stage.act-sleep .jelly-cat-zzz { opacity: 1 !important; }
.jelly-cat-stage.act-sleep .jelly-cat-zzz i:nth-child(1) { animation: zzz-float-up 2.1s ease-out infinite 0s !important; }
.jelly-cat-stage.act-sleep .jelly-cat-zzz i:nth-child(2) { animation: zzz-float-up 2.1s ease-out infinite 0.65s !important; }
.jelly-cat-stage.act-sleep .jelly-cat-zzz i:nth-child(3) { animation: zzz-float-up 2.1s ease-out infinite 1.3s !important; }
@keyframes zzz-float-up {
  0%   { transform: translate(0, 6px) scale(0.6); opacity: 0; }
  30%  { opacity: 0.95; }
  80%  { opacity: 0.6; }
  100% { transform: translate(6px, -14px) scale(1.15); opacity: 0; }
}

/* 待機動作庫 */
.jelly-cat-stage.act-turn.dir-l .jelly-cat-actor { animation: body-turn-left 1.8s ease-in-out forwards !important; }
.jelly-cat-stage.act-turn.dir-r .jelly-cat-actor { animation: body-turn-right 1.8s ease-in-out forwards !important; }
@keyframes body-turn-left {
  0%, 100% { transform: translate(0, 0) scale(1, 1) rotate(0deg); }
  20%, 80% { transform: translate(-2px, 0) scale(0.97, 1.02) rotate(-2deg); }
}
@keyframes body-turn-right {
  0%, 100% { transform: translate(0, 0) scale(1, 1) rotate(0deg); }
  20%, 80% { transform: translate(2px, 0) scale(0.97, 1.02) rotate(2deg); }
}
.jelly-cat-stage.act-turn.dir-l .jelly-cat-face-glow { transform: translate(-4.5px, 0); }
.jelly-cat-stage.act-turn.dir-r .jelly-cat-face-glow { transform: translate(4.5px, 0); }
.jelly-cat-stage.act-turn.dir-l .ear-l { transform: translate(-2px, 0) rotate(-14deg) scale(0.82); }
.jelly-cat-stage.act-turn.dir-l .ear-r { transform: translate(-5px, 0) rotate(2deg) scale(1.15); }
.jelly-cat-stage.act-turn.dir-r .ear-l { transform: translate(5px, 0) rotate(-2deg) scale(1.15); }
.jelly-cat-stage.act-turn.dir-r .ear-r { transform: translate(2px, 0) rotate(14deg) scale(0.82); }

.jelly-cat-stage.act-lookdown.dir-l .jelly-cat-actor { animation: body-sniff-left 2.0s ease-in-out forwards !important; }
.jelly-cat-stage.act-lookdown.dir-r .jelly-cat-actor { animation: body-sniff-right 2.0s ease-in-out forwards !important; }
@keyframes body-sniff-left {
  0%, 100% { transform: translate(0, 0) scale(1, 1) rotate(0deg); }
  22%, 78% { transform: translate(-2px, 2px) scale(1.12, 0.88) rotate(-5deg); }
}
@keyframes body-sniff-right {
  0%, 100% { transform: translate(0, 0) scale(1, 1) rotate(0deg); }
  22%, 78% { transform: translate(2px, 2px) scale(1.12, 0.88) rotate(5deg); }
}
.jelly-cat-stage.act-lookdown.dir-l .jelly-cat-face-glow { transform: translate(-4px, 3.5px); }
.jelly-cat-stage.act-lookdown.dir-r .jelly-cat-face-glow { transform: translate(4px, 3.5px); }
.jelly-cat-stage.act-lookdown.dir-l .jelly-eyes-normal { transform: translate(-1.5px, 2px); }
.jelly-cat-stage.act-lookdown.dir-r .jelly-eyes-normal { transform: translate(1.5px, 2px); }
.jelly-cat-stage.act-lookdown.dir-l .ear-l { transform: translate(-3px, 1px) rotate(-22deg) scale(0.84); }
.jelly-cat-stage.act-lookdown.dir-l .ear-r { transform: translate(-5px, 1px) rotate(-6deg) scale(1.14); }
.jelly-cat-stage.act-lookdown.dir-r .ear-l { transform: translate(5px, 1px) rotate(6deg) scale(1.14); }
.jelly-cat-stage.act-lookdown.dir-r .ear-r { transform: translate(3px, 1px) rotate(22deg) scale(0.84); }

/* 仰望看天 */
.jelly-cat-stage.act-lookup .jelly-cat-actor { animation: body-look-sky 2.1s ease-in-out forwards !important; }
@keyframes body-look-sky {
  0%, 100% { transform: translate(0, 0) scale(1, 1) rotate(0deg); }
  20%, 80% { transform: translate(0, -2px) scale(0.94, 1.07) rotate(0deg); }
}
.jelly-cat-stage.act-lookup.dir-l .jelly-cat-face-glow { transform: translate(-3.5px, -3.5px) !important; }
.jelly-cat-stage.act-lookup.dir-r .jelly-cat-face-glow { transform: translate(3.5px, -3.5px) !important; }
.jelly-cat-stage.act-lookup.dir-l .jelly-eyes-normal { transform: translate(-1.5px, -2px) !important; }
.jelly-cat-stage.act-lookup.dir-r .jelly-eyes-normal { transform: translate(1.5px, -2px) !important; }
.jelly-cat-stage.act-lookup .ear-l { transform: translate(-2px, 1px) rotate(-24deg) scale(0.9) !important; }
.jelly-cat-stage.act-lookup .ear-r { transform: translate(2px, 1px) rotate(24deg) scale(0.9) !important; }

/* 原地追尾巴 */
.jelly-cat-stage.act-chasetail .jelly-cat-actor { animation: body-chase-spin 1.3s ease-in-out forwards !important; }
@keyframes body-chase-spin {
  0%, 100% { transform: translate(0, 0) scale(1, 1) rotate(0deg); }
  20%      { transform: translate(-4px, -4px) scale(0.92, 1.08) rotate(-6deg); }
  45%      { transform: translate(4px, 2px) scale(1.15, 0.86) rotate(6deg); }
  70%      { transform: translate(-4px, -3px) scale(0.94, 1.06) rotate(-5deg); }
  88%      { transform: translate(2px, 1px) scale(1.08, 0.92) rotate(3deg); }
}
.jelly-cat-stage.act-chasetail .jelly-cat-face-glow { animation: face-chase-spin 1.3s ease-in-out forwards !important; }
@keyframes face-chase-spin {
  0%, 100% { transform: translate(0, 0); }
  20%, 70% { transform: translate(-5px, 1px); }
  45%, 88% { transform: translate(5px, 1px); }
}
.jelly-cat-stage.act-chasetail .jelly-cat-tail-svg { animation: tail-chase-spin 1.3s ease-in-out forwards !important; }
@keyframes tail-chase-spin {
  0%, 100% { transform: translateX(0px) scaleX(1) rotate(0deg); }
  20%, 70% { transform: translateX(-38px) scaleX(-1) rotate(18deg); }
  45%, 88% { transform: translateX(0px) scaleX(1) rotate(-18deg); }
}
.jelly-cat-stage.act-chasetail .jelly-tail-morph { animation-duration: 0.3s !important; }

/* 布丁果凍晃動 */
.jelly-cat-stage.act-wobble .jelly-cat-actor { animation: body-jelly-wobble 1.4s ease-in-out forwards !important; }
@keyframes body-jelly-wobble {
  0%, 100% { transform: scale(1, 1) translateY(0); }
  22%      { transform: scale(1.34, 0.66) translateY(4px); }
  48%      { transform: scale(0.84, 1.22) translateY(-6px) rotate(-4deg); }
  66%      { transform: scale(1.18, 0.84) translateY(2px) rotate(4deg); }
  82%      { transform: scale(0.94, 1.06) translateY(-2px) rotate(-2deg); }
}

/* 原地果凍小彈步 */
.jelly-cat-stage.act-hop .jelly-cat-actor { animation: body-mini-hop 0.78s ease-in-out forwards !important; }
@keyframes body-mini-hop {
  0%, 100% { transform: translate(0, 0) scale(1, 1); }
  20%      { transform: translate(0, 3px) scale(1.26, 0.74); }
  52%      { transform: translate(0, -14px) scale(0.88, 1.16); }
  78%      { transform: translate(0, 2px) scale(1.20, 0.80); }
  90%      { transform: translate(0, -2px) scale(0.96, 1.04); }
}

/* 招財討罐罐搖擺 */
.jelly-cat-stage.act-beg-coin .jelly-cat-actor { animation: body-beg-bounce 1.6s ease-in-out forwards !important; }
@keyframes body-beg-bounce {
  0%, 100% { transform: translate(0, 0) scale(1, 1); }
  20%, 60% { transform: translate(0, -6px) scale(0.94, 1.08) rotate(-4deg); }
  40%, 80% { transform: translate(0, 2px) scale(1.14, 0.88) rotate(4deg); }
}

/* 睡眠動作：穩定閉眼 (- -) 並於結束時同步回彈睜眼 */
.jelly-cat-stage.act-sleep .jelly-cat-actor {
  animation: body-melt-sleep-v27 5.5s ease-in-out forwards !important;
}
@keyframes body-melt-sleep-v27 {
  0%       { transform: translate(0, 0) scale(1, 1); }
  10%, 48% { transform: translate(0, 5px) scale(1.36, 0.62); }
  68%      { transform: translate(0, 4px) scale(1.32, 0.66); }
  93%      { transform: translate(0, 5px) scale(1.36, 0.62); }
  97%      { transform: translate(0, -2px) scale(0.94, 1.06); }
  100%     { transform: translate(0, 0) scale(1, 1); }
}
.jelly-cat-stage.act-sleep .jelly-cat-chassis { border-radius: 12px 12px 4px 4px !important; }
.jelly-cat-stage.act-sleep.dir-l .jelly-cat-face-glow { transform: translate(-2.5px, 2.5px); }
.jelly-cat-stage.act-sleep.dir-r .jelly-cat-face-glow { transform: translate(2.5px, 2.5px); }
.jelly-cat-stage.act-sleep:not(.user-happy) .jelly-eyes-normal { animation: none !important; transform: none !important; }
.jelly-cat-stage.act-sleep:not(.user-happy) .jelly-eye {
  height: 2.5px !important;
  width: 6px !important;
  border-radius: 2px !important;
  transform: translateY(2px) !important;
  animation: none !important;
}
.jelly-cat-stage.act-sleep .ear-l { transform: translate(-2px, 1px) rotate(-28deg) scaleY(0.78) !important; }
.jelly-cat-stage.act-sleep .ear-r { transform: translate(2px, 1px) rotate(28deg) scaleY(0.78) !important; }

/* 點擊/Hover 臉紅笑臉 */
.jelly-cat-stage.user-happy .jelly-eyes-normal { display: none !important; }
.jelly-cat-stage.user-happy .jelly-eyes-happy { display: flex !important; }
.jelly-cat-stage.user-happy .jelly-cat-blush { opacity: 1 !important; }

/* 抖毛與炸毛尖刺波浪外框 */
.jelly-cat-stage.act-shake-btc .jelly-cat-actor { animation: body-fur-shake 0.95s ease-in-out forwards !important; }
@keyframes body-fur-shake {
  0%, 100% { transform: translate(0, 0) scale(1, 1) rotate(0deg); }
  12%      { transform: translate(0, 3px) scale(1.25, 0.76) rotate(0deg); }
  22%      { transform: translate(-4px, -3px) scale(1.08, 0.94) rotate(-12deg); }
  32%      { transform: translate(4px, -4px) scale(1.08, 0.94) rotate(12deg); }
  42%      { transform: translate(-4px, -3px) scale(1.10, 0.92) rotate(-14deg); }
  52%      { transform: translate(4px, -4px) scale(1.10, 0.92) rotate(14deg); }
  62%      { transform: translate(-3px, -2px) scale(1.06, 0.95) rotate(-10deg); }
  72%      { transform: translate(3px, -1px) scale(1.06, 0.95) rotate(10deg); }
  85%      { transform: translate(0, 2px) scale(1.16, 0.86) rotate(0deg); }
}
.jelly-cat-stage.act-shake-btc .jelly-cat-chassis,
.jelly-cat-stage.spiking .jelly-cat-chassis {
  border-color: transparent !important;
  box-shadow: none !important;
  overflow: visible !important;
}
.chassis-shockwave-svg {
  position: absolute !important;
  top: -8px !important;
  left: -8px !important;
  width: 54px !important;
  height: 47px !important;
  pointer-events: none !important;
  z-index: 1 !important;
  display: none !important;
  overflow: visible !important;
}
.jelly-cat-stage.act-shake-btc .chassis-shockwave-svg,
.jelly-cat-stage.spiking .chassis-shockwave-svg {
  display: block !important;
}
.spiky-chassis-path {
  fill: #02060b !important;
  stroke: #00e5ff !important;
  stroke-width: 2 !important;
  stroke-linejoin: round !important;
  filter: drop-shadow(0 0 8px #00e5ff) !important;
  animation: spiky-wave-morph 0.15s linear infinite alternate !important;
}
.shiny-gold-cat .spiky-chassis-path {
  stroke: #ffcc00 !important;
  filter: drop-shadow(0 0 8px #ff9500) !important;
}
@keyframes spiky-wave-morph {
  0%   { d: path("M 8 10 L 12 3 L 17 9 L 23 2 L 28 9 L 34 2 L 39 9 L 44 4 L 46 11 L 52 15 L 45 20 L 53 26 L 45 31 L 51 36 L 44 39 L 36 41 L 27 39 L 18 41 L 10 39 L 3 36 L 9 31 L 1 25 L 9 19 L 2 14 Z"); }
  50%  { d: path("M 8 10 L 14 5 L 20 2 L 25 9 L 31 1 L 36 9 L 42 3 L 46 10 L 53 12 L 46 18 L 52 23 L 46 29 L 53 34 L 44 39 L 38 39 L 27 41 L 16 39 L 10 39 L 2 33 L 8 28 L 2 22 L 8 17 L 1 11 Z"); }
  100% { d: path("M 8 10 L 11 2 L 16 9 L 21 3 L 27 1 L 33 9 L 38 2 L 45 5 L 46 11 L 51 16 L 45 22 L 53 28 L 45 33 L 50 38 L 43 39 L 34 40 L 24 39 L 14 40 L 9 39 L 4 37 L 9 32 L 1 27 L 9 21 L 3 15 Z"); }
}
.lightning-arc {
  fill: none !important;
  stroke: #e6ffff !important;
  stroke-width: 1.5 !important;
  stroke-linecap: round !important;
  filter: drop-shadow(0 0 5px #00ffff) !important;
  animation: zap-flicker 0.2s steps(2, start) infinite !important;
}
.shiny-gold-cat .lightning-arc {
  stroke: #fff8d6 !important;
  filter: drop-shadow(0 0 5px #ffcc00) !important;
}
@keyframes zap-flicker {
  0%   { opacity: 1; }
  50%  { opacity: 0.15; }
  100% { opacity: 0.85; }
}

/* 獨立於貓咪舞台之外的世界座標比特幣圖層（掛在父容器上，貓咪瞬移/跳躍時硬幣絕對不動） */
.btc-world-layer {
  position: absolute !important;
  top: 0px !important;
  left: 0px !important;
  width: 100% !important;
  height: 100% !important;
  pointer-events: none !important;
  z-index: 30 !important;
  overflow: visible !important;
}
.btc-coin-particle {
  position: absolute !important;
  top: 0px !important;
  left: 0px !important;
  margin-left: -7.5px !important;
  margin-top: -15px !important;
  width: 15px !important;
  height: 15px !important;
  border-radius: 50% !important;
  background: #02060b !important;
  border: 1.5px solid #ffcc00 !important;
  box-shadow: 0 0 6px rgba(255, 170, 0, 0.55), inset 0 0 4px rgba(255, 204, 0, 0.25) !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-family: 'JetBrains Mono', monospace !important;
  font-weight: 800 !important;
  font-size: 9px !important;
  line-height: 1 !important;
  color: #ffcc00 !important;
  text-shadow: 0 0 4px rgba(255, 170, 0, 0.75) !important;
  will-change: transform, opacity !important;
  pointer-events: none !important;
}

/* 跨格移動模式 1：拋物線跳躍 (.jumping-move) */
.jelly-cat-stage.jumping-move { animation: stage-glide-move 0.92s linear forwards !important; }
@keyframes stage-glide-move {
  0%, 15%  { transform: translateX(var(--from-x)); }
  74%, 100%{ transform: translateX(var(--to-x)); }
}
.jelly-cat-stage.jumping-move .jelly-cat-actor { animation: actor-parabola-arc 0.92s forwards !important; }
@keyframes actor-parabola-arc {
  0%   { transform: translateY(0) scale(1, 1); animation-timing-function: ease-in-out; }
  15%  { transform: translateY(3px) scale(1.30, 0.70); animation-timing-function: cubic-bezier(0.22, 0.68, 0.36, 1); }
  45%  { transform: translateY(-30px) scale(1.06, 0.94); animation-timing-function: cubic-bezier(0.55, 0.05, 0.68, 0.22); }
  74%  { transform: translateY(2px) scale(1.36, 0.64); animation-timing-function: ease-out; }
  87%  { transform: translateY(-4px) scale(0.94, 1.06); animation-timing-function: ease-in-out; }
  100% { transform: translateY(0) scale(1, 1); }
}
.jelly-cat-stage.jumping-move:not(.user-happy) .jelly-eyes-normal { animation: normal-eyes-jump-react 0.92s ease-in-out forwards !important; }
@keyframes normal-eyes-jump-react {
  0%, 100% { transform: translate(0, 0) scale(1, 1); }
  15%      { transform: translate(0, 1px) scale(1.1, 0.75); }
  45%      { transform: translate(0, -1.5px) scale(0.95, 1.22); }
  74%      { transform: translate(0, 1px) scale(1.15, 0.15); }
  88%      { transform: translate(0, 0) scale(1, 1.08); }
}

/* 跨格移動模式 2：駭客 Glitch 浮空瞬移 (.teleport-move) */
.jelly-cat-stage.teleport-move { animation: stage-teleport-move 1.15s steps(1, end) forwards !important; }
@keyframes stage-teleport-move {
  0%   { transform: translateX(var(--from-x)); }
  48%  { transform: translateX(var(--to-x)); }
  100% { transform: translateX(var(--to-x)); }
}
.jelly-cat-stage.teleport-move .jelly-cat-actor { animation: actor-glitch-teleport 1.15s forwards !important; }
@keyframes actor-glitch-teleport {
  0%   { transform: translate(0, 0) scale(1, 1); opacity: 1; filter: none; animation-timing-function: cubic-bezier(0.2, 0.8, 0.3, 1); }
  26%  { transform: translate(0, -22px) scale(0.95, 1.05); opacity: 1; filter: drop-shadow(0 0 8px #00e5ff); }
  30%  { transform: translate(-5px, -22px) scale(1.22, 0.82); opacity: 0.85; filter: drop-shadow(-5px 0 #ff003c) drop-shadow(5px 0 #00ff41); }
  35%  { transform: translate(6px, -24px) scale(0.75, 1.28); opacity: 0.4; filter: drop-shadow(5px 0 #ff003c) drop-shadow(-5px 0 #00ffff); }
  41%  { transform: translate(-7px, -20px) scale(1.38, 0.45); opacity: 0.9; filter: drop-shadow(-6px 2px #ff003c) drop-shadow(6px -2px #00ff41); }
  46%, 48% { transform: translate(0, -22px) scale(1.6, 0.12); opacity: 0; filter: brightness(3); }
  52%  { transform: translate(6px, -22px) scale(1.32, 0.55); opacity: 0.9; filter: drop-shadow(6px 0 #ff003c) drop-shadow(-6px 0 #00ff41); }
  57%  { transform: translate(-5px, -23px) scale(0.82, 1.22); opacity: 0.5; filter: drop-shadow(-4px 0 #ff003c) drop-shadow(4px 0 #00ffff); }
  62%  { transform: translate(0, -22px) scale(0.96, 1.04); opacity: 1; filter: drop-shadow(0 0 10px #00e5ff); }
  68%  { transform: translate(0, -22px) scale(1, 1); opacity: 1; filter: none; animation-timing-function: cubic-bezier(0.55, 0.06, 0.68, 0.19); }
  80%  { transform: translate(0, 2px) scale(1.38, 0.62); opacity: 1; filter: none; animation-timing-function: ease-out; }
  90%  { transform: translate(0, -5px) scale(0.92, 1.08); animation-timing-function: ease-in-out; }
  100% { transform: translate(0, 0) scale(1, 1); opacity: 1; filter: none; }
}
.jelly-cat-stage.teleport-move:not(.user-happy) .jelly-eyes-normal { animation: normal-eyes-glitch-react 1.15s ease-in-out forwards !important; }
@keyframes normal-eyes-glitch-react {
  0%, 100% { transform: scale(1, 1); filter: none; }
  15%, 26% { transform: translateY(-1px) scale(1.05, 1.15); }
  28%, 64% { transform: scale(1.35, 0.25); filter: drop-shadow(0 0 6px #00ffff); }
  80%      { transform: scale(1.15, 0.15); }
}

/* 跨格移動模式 3：彈幣扭屁股獵捕飛撲位移 (.hunt-move，於 78% = 1520ms 精準踩中目標格硬幣並將其撞飛) */
.jelly-cat-stage.hunt-move { animation: stage-hunt-glide 1.95s linear forwards !important; }
@keyframes stage-hunt-glide {
  0%, 56%  { transform: translateX(var(--from-x)); }
  78%, 100%{ transform: translateX(var(--to-x)); }
}
.jelly-cat-stage.hunt-move .jelly-cat-actor { animation: actor-hunt-pounce 1.95s ease-in-out forwards !important; }
@keyframes actor-hunt-pounce {
  0%       { transform: translateY(0) scale(1, 1) rotate(0deg); }
  10%      { transform: translateY(-3px) scale(1.08, 0.94) rotate(0deg); }
  20%, 34%, 48% { transform: translateY(4px) scale(1.26, 0.74) rotate(-6deg); }
  27%, 41%, 55% { transform: translateY(4px) scale(1.26, 0.74) rotate(6deg); }
  67%      { transform: translateY(-28px) scale(0.92, 1.14) rotate(0deg); }
  78%      { transform: translateY(2px) scale(1.36, 0.64) rotate(0deg); }
  88%      { transform: translateY(-4px) scale(0.94, 1.06) rotate(0deg); }
  100%     { transform: translateY(0) scale(1, 1) rotate(0deg); }
}

.jelly-cat-stage.hunt-move.dir-r .jelly-cat-face-glow,
.jelly-cat-stage.jumping-move.dir-r .jelly-cat-face-glow { transform: translate(4.5px, 2px) !important; }
.jelly-cat-stage.hunt-move.dir-l .jelly-cat-face-glow,
.jelly-cat-stage.jumping-move.dir-l .jelly-cat-face-glow { transform: translate(-4.5px, 2px) !important; }
.jelly-cat-stage.hunt-move.dir-r .jelly-eyes-normal { transform: translate(2px, 1.5px) !important; }
.jelly-cat-stage.hunt-move.dir-l .jelly-eyes-normal { transform: translate(-2px, 1.5px) !important; }

.jelly-cat-stage.hunt-move.dir-l .ear-l,
.jelly-cat-stage.jumping-move.dir-l .ear-l { transform: translate(-2px, 0) rotate(-14deg) scale(0.82) !important; }
.jelly-cat-stage.hunt-move.dir-l .ear-r,
.jelly-cat-stage.jumping-move.dir-l .ear-r { transform: translate(-5px, 0) rotate(2deg) scale(1.15) !important; }
.jelly-cat-stage.hunt-move.dir-r .ear-l,
.jelly-cat-stage.jumping-move.dir-r .ear-l { transform: translate(5px, 0) rotate(-2deg) scale(1.15) !important; }
.jelly-cat-stage.hunt-move.dir-r .ear-r,
.jelly-cat-stage.jumping-move.dir-r .ear-r { transform: translate(2px, 0) rotate(14deg) scale(0.82) !important; }

.jelly-cat-stage.jumping-move .jelly-tail-morph,
.jelly-cat-stage.teleport-move .jelly-tail-morph,
.jelly-cat-stage.hunt-move .jelly-tail-morph { animation-duration: 0.32s !important; }

/* 色違橘黃招財貓專屬配色 */
.jelly-cat-stage.shiny-gold-cat .jelly-ear { color: #ffcc00 !important; text-shadow: 0 0 6px #ff9500 !important; }
.jelly-cat-stage.shiny-gold-cat .jelly-cat-chassis {
  border-color: #ffaa00 !important;
  box-shadow: 0 0 10px rgba(255, 170, 0, 0.45), inset 0 0 6px rgba(255, 204, 0, 0.25) !important;
}
.jelly-cat-stage.shiny-gold-cat .jelly-cat-face-glow {
  background: linear-gradient(180deg, rgba(255, 165, 0, 0.40) 0%, rgba(180, 95, 0, 0.52) 100%) !important;
  box-shadow: 0 0 8px rgba(255, 170, 0, 0.65), inset 0 0 6px rgba(255, 215, 0, 0.55) !important;
  border-color: rgba(255, 204, 0, 0.45) !important;
}
.jelly-cat-stage.shiny-gold-cat .jelly-eye { background: #fff8d6 !important; box-shadow: 0 0 6px #ffcc00, 0 0 10px #ff9500 !important; }
.jelly-cat-stage.shiny-gold-cat .jelly-eyes-happy span { color: #fff8d6 !important; text-shadow: 0 0 6px #ffcc00 !important; }
.jelly-cat-stage.shiny-gold-cat .jelly-cat-tail-svg { filter: drop-shadow(0 0 4px #ffaa00) !important; }
.jelly-cat-stage.shiny-gold-cat .jelly-tail-morph { stroke: #ffcc00 !important; }
.jelly-cat-stage.shiny-gold-cat .jelly-cat-zzz i { color: #ffcc00 !important; text-shadow: 0 0 6px #ff9500 !important; }
.jelly-cat-stage.shiny-gold-cat .deskbot-bubble {
  border-color: #ffcc00 !important;
  color: #ffcc00 !important;
  box-shadow: 0 0 10px rgba(255, 204, 0, 0.35) !important;
}

/* 氣泡與贊助區安全跑道預留 */
.jelly-cat-stage.act-shake-btc .deskbot-bubble,
.jelly-cat-stage.hunt-move .deskbot-bubble { opacity: 0 !important; }
.jelly-cat-stage .deskbot-bubble {
  top: -28px !important;
  bottom: auto !important;
  left: 50% !important;
  right: auto !important;
  transform: translateX(-50%) translateY(4px) !important;
}
.jelly-cat-stage .deskbot-bubble.show,
.jelly-cat-stage:hover .deskbot-bubble { transform: translateX(-50%) translateY(0) !important; }
.jelly-cat-stage.shiny-gold-cat .deskbot-bubble {
  top: -28px !important;
  bottom: auto !important;
  left: auto !important;
  right: -6px !important;
  transform: translateY(4px) !important;
}
.jelly-cat-stage.shiny-gold-cat .deskbot-bubble.show,
.jelly-cat-stage.shiny-gold-cat:hover .deskbot-bubble { transform: translateY(0) !important; }

.vault-title-wrap {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  width: 100% !important;
  flex-wrap: wrap !important;
  gap: 10px !important;
  position: relative !important;
}
.vault-cat-anchor {
  position: relative !important;
  margin-left: auto !important;
  padding-right: 132px !important;
  margin-top: 18px !important;
  display: flex !important;
  align-items: center !important;
}
@media (max-width: 768px) {
  #cyberCatStage.about-stationary .deskbot-bubble {
    top: -26px !important;
    bottom: auto !important;
    left: -4px !important;
    right: auto !important;
    transform: none !important;
  }
  .vault-title-wrap { flex-direction: column !important; align-items: flex-start !important; }
  .vault-cat-anchor {
    align-self: flex-end !important;
    margin-top: 26px !important;
    padding-right: 68px !important;
  }
  #vaultGoldCat.shiny-gold-cat .deskbot-bubble {
    top: -26px !important;
    bottom: auto !important;
    right: -4px !important;
    left: auto !important;
    transform: none !important;
  }
}

/* 手術修正：About 頁頂部左側 CyberCat 氣泡向右展開，防止穿出左側牆壁 */
#cyberCatStage.about-stationary .deskbot-bubble {
  left: 0 !important;
  right: auto !important;
  transform: translateY(4px) !important;
}
#cyberCatStage.about-stationary .deskbot-bubble.show,
#cyberCatStage.about-stationary:hover .deskbot-bubble {
  transform: translateY(0) !important;
}
