/* Boss state-pose CSS keyframes. State selection is driven by a
   `data-state` attribute on the boss SVG root — CSS targets [data-state="..."]. */

/* ── Falling-item animations ──────────────────────────────────────────────
   These live here, in a globally <link>ed stylesheet, because the boss arena
   needs them. They used to be declared only inside the <style> block that
   CatTapGame renders, so they existed solely while the survival/stage screen
   was mounted — the boss arena referenced `itemBob` and `bossItemPulse` with
   nothing to resolve them and its icons sat completely static.

   `bossItemBob` / `bossItemPulse` re-apply `translate(-50%, -50%)` in every
   keyframe: the elements they animate are centred with that same transform,
   and an animation on `transform` replaces the base value outright, so
   omitting it would knock every item half its own size off-position. */
@keyframes itemBob {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-2px); }
}
/* Penas soltas: usada pelas poses `hurt` e `defeated` de todos os chefões-ave.
   Estava REFERENCIADA em 10 lugares e nunca definida, entao nenhuma dessas
   animacoes rodou ate hoje — um keyframe inexistente falha em silencio. A pose
   `hurt` e emitida de verdade pelas duas mecanicas redesenhadas. */
@keyframes feather {
  0%   { transform: translate(0, 0) rotate(0); opacity: 0.9; }
  100% { transform: translate(-14px, 26px) rotate(-40deg); opacity: 0; }
}

@keyframes bossItemPulse {
  0%, 100% { transform: translate(-50%, -50%) scale(1); }
  50%      { transform: translate(-50%, -50%) scale(1.06); }
}

@keyframes flap   { 0%, 100% { transform: rotate(-15deg); } 50% { transform: rotate(30deg); } }
@keyframes hover  { 0%, 100% { transform: translateY(0); }    50% { transform: translateY(-4px); } }
@keyframes glowEye { 0%, 100% { filter: drop-shadow(0 0 4px #ffcc4a); } 50% { filter: drop-shadow(0 0 14px #ffcc4a); } }
@keyframes hurt   { 0%, 100% { transform: translate(0, 0); } 25% { transform: translate(-3px, 1px); } 75% { transform: translate(3px, -1px); } }
@keyframes shiny  { 0% { transform: translateY(0) rotate(0); opacity: 1; } 100% { transform: translateY(40px) rotate(360deg); opacity: 0; } }
@keyframes peck   { 0%, 100% { transform: translateY(0); }   50% { transform: translateY(8px) rotate(20deg); } }

/* Crow pose toggles via data-state */
.boss-alley-crow [data-pose="perch"]    { display: none; }
.boss-alley-crow [data-pose="dive"]     { display: none; }
.boss-alley-crow [data-pose="peck"]     { display: none; }
.boss-alley-crow [data-pose="hurt"]     { display: none; }
.boss-alley-crow [data-pose="defeated"] { display: none; }
.boss-alley-crow[data-state="idle"]     [data-pose="perch"]    { display: inline; }
.boss-alley-crow[data-state="wind_up"]  [data-pose="perch"]    { display: inline; }
.boss-alley-crow[data-state="wind_up"]  [data-pose="perch"] .crow-eye { animation: glowEye 0.6s ease-in-out infinite; }
.boss-alley-crow[data-state="dive"]     [data-pose="dive"]     { display: inline; }
.boss-alley-crow[data-state="defeated"] [data-pose="defeated"] { display: inline; }

/* Crow dive indicator pulses (used by boss-arena.jsx) */
@keyframes crowDiveYellowPulse { 0%,100% { transform: translate(-50%, -50%) scale(0.92); } 50% { transform: translate(-50%, -50%) scale(1.08); } }
@keyframes crowDiveRedPulse    { 0%,100% { transform: translate(-50%, -50%) scale(1); } 50% { transform: translate(-50%, -50%) scale(1.18); } }
@keyframes crowHpPulse         { 0% { filter: brightness(1); } 50% { filter: brightness(1.6); } 100% { filter: brightness(1); } }

/* ── Squirrel King ───────────────────────────────────────────────── */
@keyframes tailFlick    { 0%, 100% { transform: rotate(-5deg); } 50% { transform: rotate(15deg); } }
@keyframes bob          { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes acornFall    { 0% { transform: translateY(0); opacity: 1; } 100% { transform: translateY(40px); opacity: 0; } }
@keyframes sqCheekPulse    { 0%,100% { transform: scale(1); filter: drop-shadow(0 0 4px #ffcc4a); } 50% { transform: scale(1.18); filter: drop-shadow(0 0 12px #ffcc4a); } }
@keyframes sqCheekRed      { 0%,100% { transform: scale(1.05); filter: drop-shadow(0 0 6px #ff5050); } 50% { transform: scale(1.25); filter: drop-shadow(0 0 16px #ff5050); } }
@keyframes sqHaloPulse     { 0%,100% { opacity: 0.55; transform-origin: 100px 50px; } 50% { opacity: 0.95; } }
@keyframes sqHaloRedPulse  { 0%,100% { opacity: 0.7; } 50% { opacity: 1; } }
@keyframes sqSlingshotShake { 0%,100% { transform: translate(0,0); } 25% { transform: translate(-1.5px,0.5px); } 75% { transform: translate(1.5px,-0.5px); } }
@keyframes sqCheekIndYellow { 0%,100% { transform: translate(-50%, -50%) scale(0.92); } 50% { transform: translate(-50%, -50%) scale(1.08); } }
@keyframes sqCheekIndRed    { 0%,100% { transform: translate(-50%, -50%) scale(1); } 50% { transform: translate(-50%, -50%) scale(1.18); } }
@keyframes sqBurrSpike      { 0%,100% { transform: scale(1); opacity: 0.85; } 50% { transform: scale(1.22); opacity: 1; } }
@keyframes sqBurrSurgePulse { 0%,100% { opacity: 0.78; transform: translateX(-50%) scale(1); } 50% { opacity: 1; transform: translateX(-50%) scale(1.06); } }

/* Squirrel pose toggles via data-state */
.boss-squirrel-king [data-pose="idle"]     { display: none; }
.boss-squirrel-king [data-pose="wind_up"]  { display: none; }
.boss-squirrel-king [data-pose="attack"]   { display: none; }
.boss-squirrel-king [data-pose="hurt"]     { display: none; }
.boss-squirrel-king [data-pose="defeated"] { display: none; }
.boss-squirrel-king[data-state="idle"]     [data-pose="idle"]     { display: inline; }
.boss-squirrel-king[data-state="wind_up"]  [data-pose="wind_up"]  { display: inline; }
.boss-squirrel-king[data-state="attack"]   [data-pose="attack"]   { display: inline; }
.boss-squirrel-king[data-state="hurt"]     [data-pose="hurt"]     { display: inline; }
.boss-squirrel-king[data-state="defeated"] [data-pose="defeated"] { display: inline; }

/* ── Dock Octopus ────────────────────────────────────────────────── */
@keyframes wavebob       { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes bubble        { 0% { transform: translateY(0); opacity: 0.9; } 100% { transform: translateY(-30px); opacity: 0; } }
@keyframes octEyePeek    { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-1.5px); } }
@keyframes octGiantRise  { 0% { transform: translateY(8px); } 100% { transform: translateY(0); } }
@keyframes octGiantSweep { 0%, 100% { transform: translateX(-2px) rotate(-1deg); } 50% { transform: translateX(2px) rotate(1deg); } }
@keyframes octHaloPulse    { 0%, 100% { opacity: 0.55; } 50% { opacity: 0.95; } }
@keyframes octHaloRedPulse { 0%, 100% { opacity: 0.7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.05); } }
/* Shell-game animations — cup placement glow, fish-under-cup tell, banner pulse */
@keyframes octCupPlacePulse  { 0%, 100% { transform: translateY(0); filter: drop-shadow(0 0 6px rgba(255,204,74,0.4)); } 50% { transform: translateY(-3px); filter: drop-shadow(0 0 14px rgba(255,204,74,0.95)); } }
@keyframes octFishGlow       { 0%, 100% { transform: translate(-50%, -50%) scale(1); opacity: 0.95; } 50% { transform: translate(-50%, -50%) scale(1.08); opacity: 1; } }
@keyframes octGuessPulse     { 0%, 100% { transform: translateX(-50%) scale(1); opacity: 0.9; } 50% { transform: translateX(-50%) scale(1.04); opacity: 1; } }

/* Octopus pose toggles via data-state */
.boss-dock-octopus [data-pose="idle"]     { display: none; }
.boss-dock-octopus [data-pose="wind_up"]  { display: none; }
.boss-dock-octopus [data-pose="attack"]   { display: none; }
.boss-dock-octopus [data-pose="hurt"]     { display: none; }
.boss-dock-octopus [data-pose="defeated"] { display: none; }
.boss-dock-octopus[data-state="idle"]     [data-pose="idle"]     { display: inline; }
.boss-dock-octopus[data-state="wind_up"]  [data-pose="wind_up"]  { display: inline; }
.boss-dock-octopus[data-state="attack"]   [data-pose="attack"]   { display: inline; }
.boss-dock-octopus[data-state="hurt"]     [data-pose="hurt"]     { display: inline; }
.boss-dock-octopus[data-state="defeated"] [data-pose="defeated"] { display: inline; }

/* ── Pigeon Storm ────────────────────────────────────────────────── */
@keyframes pgFlockDrift     { 0%, 100% { transform: translateX(0); } 50% { transform: translateX(4px); } }
@keyframes pgFlockConverge  { 0%, 100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.05); } }
@keyframes pgWindUpJitter   { 0%, 100% { transform: translate(0, 0); } 25% { transform: translate(-1px, 1px); } 75% { transform: translate(1px, -1px); } }
@keyframes pgMassDive       { 0% { transform: translateY(-4px); } 100% { transform: translateY(8px); } }
@keyframes pgHaloPulse      { 0%, 100% { opacity: 0.6; transform: scale(0.96); } 50% { opacity: 0.95; transform: scale(1.04); } }

/* Pigeon pose toggles via data-state */
.boss-pigeon-storm [data-pose="idle"]     { display: none; }
.boss-pigeon-storm [data-pose="wind_up"]  { display: none; }
.boss-pigeon-storm [data-pose="attack"]   { display: none; }
.boss-pigeon-storm [data-pose="hurt"]     { display: none; }
.boss-pigeon-storm [data-pose="defeated"] { display: none; }
.boss-pigeon-storm[data-state="idle"]     [data-pose="idle"]     { display: inline; }
.boss-pigeon-storm[data-state="wind_up"]  [data-pose="wind_up"]  { display: inline; }
.boss-pigeon-storm[data-state="attack"]   [data-pose="attack"]   { display: inline; }
.boss-pigeon-storm[data-state="hurt"]     [data-pose="hurt"]     { display: inline; }
.boss-pigeon-storm[data-state="defeated"] [data-pose="defeated"] { display: inline; }

/* ── Forest Owl ──────────────────────────────────────────────────── */
@keyframes owlEyeGlow        { 0%, 100% { filter: drop-shadow(0 0 6px #ff5050); } 50% { filter: drop-shadow(0 0 16px #ff5050); } }
@keyframes owlSwoopShake     { 0%, 100% { transform: translate(0, 0); } 25% { transform: translate(-1.5px, 0.5px); } 75% { transform: translate(1.5px, -0.5px); } }

/* Owl pose toggles via data-state */
.boss-forest-owl [data-pose="idle"]     { display: none; }
.boss-forest-owl [data-pose="wind_up"]  { display: none; }
.boss-forest-owl [data-pose="attack"]   { display: none; }
.boss-forest-owl [data-pose="hurt"]     { display: none; }
.boss-forest-owl [data-pose="defeated"] { display: none; }
.boss-forest-owl[data-state="idle"]     [data-pose="idle"]     { display: inline; }
.boss-forest-owl[data-state="wind_up"]  [data-pose="wind_up"]  { display: inline; }
.boss-forest-owl[data-state="attack"]   [data-pose="attack"]   { display: inline; }
.boss-forest-owl[data-state="hurt"]     [data-pose="hurt"]     { display: inline; }
.boss-forest-owl[data-state="defeated"] [data-pose="defeated"] { display: inline; }

/* ── Cat-God Finale (Cosmic Trash) ───────────────────────────────── */
@keyframes cgPawIndYellow { 0%, 100% { transform: translate(-50%, -50%) scale(0.9); } 50% { transform: translate(-50%, -50%) scale(1.1); } }
@keyframes cgPawIndRed    { 0%, 100% { transform: translate(-50%, -50%) scale(1); } 50% { transform: translate(-50%, -50%) scale(1.22); } }
@keyframes cgPawWindUp    { 0%, 100% { transform: translate(0, 0) scale(1); } 50% { transform: translate(-2px, -3px) scale(1.06); } }
@keyframes cgPawSwipe     { 0% { transform: translateX(-30px) rotate(-8deg); } 50% { transform: translateX(0) rotate(0deg); } 100% { transform: translateX(30px) rotate(8deg); } }

/* ── Mirror Reflect (Forest Owl arena) ───────────────────────────── */
@keyframes mrBeamPulse { 0%,100% { opacity: 0.55; } 50% { opacity: 1; } }
