/** === 戰情中心 CyberCat 物理流體與駭客瞬移系統 v10（真隨機引擎 + 手機2格/電腦5格 + 低頭看地 + 半融化睡覺 zZZ） === */
/* 電腦端預留 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 底部分隔線地面：透過 CSS 變數 --cat-x 控制格位，電腦端預設右距 156px (5格空間)，手機端右距 64px (2格空間) */
.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;
  }
}


/* 演員容器：平常保持輕柔果凍呼吸，具體動作由隨機 class 驅動 */
.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: bottom center !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); }


/* 主機身外框：z-index: 2 + 實心 #02060b，100% 物理遮擋背後滑過的尾巴 */
.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;
  transition: transform 0.28s cubic-bezier(0.22, 0.8, 0.32, 1) !important;
}


/* 仿生 Saccades 雙眼（提高亮度與對比，與加深後的臉部色塊層次分明） */
.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;
  gap: 4px !important;
}
.jelly-eyes-happy span {
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 11px !important;
  font-weight: 900 !important;
  color: #e6ffff !important;
  text-shadow: 0 0 6px #00e5ff !important;
  line-height: 1 !important;
}


.jelly-cat-blush {
  position: absolute !important;
  bottom: 0px !important;
  display: flex !important;
  justify-content: space-between !important;
  width: 92% !important;
  opacity: 0 !important;
  transition: opacity 0.2s ease !important;
}
.jelly-cat-blush span {
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 6px !important;
  font-weight: 900 !important;
  color: #ff3377 !important;
  text-shadow: 0 0 4px #ff3377 !important;
}


/* 緊湊上翹貓尾：z-index: 1 置於實心機身背後 */
.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;
}


/* 朝向控制（.dir-l 朝左看，尾巴在右 0px；.dir-r 朝右看，尾巴換邊至左 -38px） */
.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 粒子特效（平時隱藏，.act-sleep 時依序向上飄出）
   ========================================================================== */
.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; }
}


/* ==========================================================================
   隨機待機動作庫（1. 雙向轉身張望 / 2. 雙向低頭看地面 / 3. 半融化睡覺 / 4. 原地果凍小跳）
   ========================================================================== */


/* --- 動作 A：2.5D 轉身張望 (.act-turn.dir-l / .act-turn.dir-r) --- */
.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); }


/* --- 動作 B：低頭看地面左下 / 右下 (.act-lookdown.dir-l / .act-lookdown.dir-r) --- */
.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); }


/* --- 動作 C：半融化睡著飄出 zZZ (.act-sleep.dir-l / .act-sleep.dir-r) --- */
.jelly-cat-stage.act-sleep .jelly-cat-actor {
  animation: body-melt-sleep 3.4s ease-in-out forwards !important;
}
@keyframes body-melt-sleep {
  0%       { transform: translate(0, 0) scale(1, 1); }
  18%, 45% { transform: translate(0, 5px) scale(1.36, 0.62); }
  60%      { transform: translate(0, 4px) scale(1.32, 0.66); }
  82%      { transform: translate(0, 5px) scale(1.36, 0.62); }
  92%      { transform: translate(0, -3px) scale(0.92, 1.08); }
  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-eye {
  height: 2.5px !important;
  width: 6px !important;
  border-radius: 2px !important;
  transform: translateY(2px) !important;
}
.jelly-cat-stage.act-sleep .ear-l { transform: translate(-2px, 1px) rotate(-28deg) scaleY(0.78); }
.jelly-cat-stage.act-sleep .ear-r { transform: translate(2px, 1px) rotate(28deg) scaleY(0.78); }


/* --- 動作 D：原地果凍小彈步 (.act-hop) --- */
.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); }
}


/* ==========================================================================
   使用者點擊 / 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; }


/* ==========================================================================
   跨格移動模式 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); }
}


.jelly-cat-stage.jumping-move.dir-r .jelly-cat-face-glow { transform: translate(4.5px, 0); }
.jelly-cat-stage.jumping-move.dir-l .jelly-cat-face-glow { transform: translate(-4.5px, 0); }
.jelly-cat-stage.jumping-move.dir-r .ear-l { transform: translate(4px, -1px) rotate(-18deg) scale(1.15); }
.jelly-cat-stage.jumping-move.dir-r .ear-r { transform: translate(2px, -1px) rotate(-4deg) scale(0.82); }
.jelly-cat-stage.jumping-move.dir-l .ear-l { transform: translate(-2px, -1px) rotate(4deg) scale(0.82); }
.jelly-cat-stage.jumping-move.dir-l .ear-r { transform: translate(-4px, -1px) rotate(18deg) scale(1.15); }


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


/* ==========================================================================
   跨格移動模式 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%  { transform: translate(0, -22px) scale(1.6, 0.12); opacity: 0; filter: brightness(3); }
  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); }
}


/* === v11 模組化擴充：修復睡眠閉眼眨眼 + 仰望看天 + 原地追尾巴 + 果凍伸懶腰 + About 0步適配 === */
.jelly-cat-stage.about-stationary {
  position: relative !important;
  bottom: auto !important;
  right: auto !important;
  margin: 4px 12px !important;
}


/* 徹底鎖死睡眠時的呼吸眨眼動畫，確保閉眼橫線 (- -) 絕對靜止不閃動 */
.jelly-cat-stage.act-sleep .jelly-eyes-normal {
  animation: none !important;
  transform: none !important;
}
.jelly-cat-stage.act-sleep .jelly-cat-actor {
  animation: body-melt-sleep 5.5s ease-in-out forwards !important;
}


/* 新動作 E：仰望看天 (.act-lookup.dir-l / .act-lookup.dir-r) */
.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; }


/* 新動作 F：原地高速追尾巴轉圈 (.act-chasetail) */
.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; }


/* 新動作 G：布丁果凍晃動伸懶腰 (.act-wobble) */
.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); }
}
