.monster--cake-boss {
  z-index: 27;
  filter: drop-shadow(0 28px 42px rgba(0,0,0,.34)) drop-shadow(0 0 18px rgba(55,210,255,.22));
  transform-origin: center bottom;
}

.monster--cake-boss img {
  object-fit: contain;
  image-rendering: auto;
}

.monster--cake-boss .monster-hp {
  width: 230px;
  height: 15px;
  bottom: calc(100% + 8px);
  border: 2px solid rgba(255,255,255,.36);
  background: rgba(8, 18, 32, .76);
  box-shadow: 0 8px 22px rgba(0,0,0,.28), 0 0 18px rgba(56,189,248,.25);
}

.monster--cake-boss .monster-hp-fill {
  background: linear-gradient(90deg, #38bdf8, #2563eb, #f8fafc);
}

.monster--cake-boss.monster--state-jump_ready {
  animation: cakeBossWindup .52s ease-in-out infinite alternate;
}

.monster--cake-boss.monster--state-slam {
  animation: cakeBossSlamPulse .22s ease-out infinite alternate;
  filter: drop-shadow(0 34px 50px rgba(0,0,0,.42)) drop-shadow(0 0 34px rgba(56,189,248,.55));
}

.monster--cake-boss.monster--state-hurt,
.monster--cake-boss.monster--hurt {
  filter: brightness(1.22) saturate(1.18) drop-shadow(0 0 24px rgba(255,255,255,.65));
}

.monster--cake-boss.monster--defeated {
  opacity: .9;
  filter: grayscale(.12) brightness(.95) drop-shadow(0 18px 28px rgba(0,0,0,.35));
}

@keyframes cakeBossWindup {
  from { transform: translateY(0) scaleY(1); }
  to { transform: translateY(8px) scaleY(.97); }
}

@keyframes cakeBossSlamPulse {
  from { transform: translateY(0) scaleY(.98); }
  to { transform: translateY(5px) scaleY(.94); }
}

@media (max-width: 980px) {
  .monster--cake-boss .monster-hp {
    width: 170px;
    height: 12px;
  }
}
