/* ── FOOD DOTS (phase 3) — ported from leodavidov-game/css/game.css §6 ── */
.food-dot {
  position: fixed;
  width: 15px;
  height: 15px;
  border-radius: 50%;
  background: #f5d000;
  box-shadow: 0 0 8px 3px rgba(245, 208, 0, 0.55);
  pointer-events: none;
  z-index: 9998;
  transform: translate(-50%, -50%) scale(0);
  animation: food-appear 0.3s cubic-bezier(.34,1.56,.64,1) forwards;
  will-change: left, top;
}

@keyframes food-appear {
  0%   { transform: translate(-50%, -50%) scale(0);    opacity: 0; }
  55%  { transform: translate(-50%, -50%) scale(1.1);  opacity: 1; }
  100% { transform: translate(-50%, -50%) scale(1);    opacity: 1; }
}

.food-dot.food-disappear {
  animation: food-vanish 0.3s ease forwards;
}

@keyframes food-vanish {
  0%   { transform: translate(-50%, -50%) scale(1); opacity: 1; }
  100% { transform: translate(-50%, -50%) scale(0); opacity: 0; }
}

@keyframes dot-squash {
  0%   { transform: translate(-50%, -50%) scaleX(1.3) scaleY(0.7); }
  100% { transform: translate(-50%, -50%) scale(0); opacity: 0; }
}
.food-dot.food-squash {
  animation: dot-squash 80ms ease forwards;
  pointer-events: none;
}

.food-dot--red {
  width: 30px !important;
  height: 30px !important;
  background: radial-gradient(circle, #ff6666 0%, #cc0000 40%, rgba(180,0,0,0.3) 70%, transparent 100%);
  box-shadow: 0 0 14px 5px rgba(220,0,0,0.7), 0 0 28px 10px rgba(180,0,0,0.3);
}

.food-dot--ghost {
  width: 22px !important;
  height: 22px !important;
  background: radial-gradient(circle, rgba(255,255,255,0.9) 0%, rgba(180,220,255,0.5) 50%, transparent 100%);
  box-shadow: 0 0 12px 4px rgba(180,220,255,0.6), 0 0 24px 8px rgba(120,180,255,0.3);
  opacity: 0.55;
  animation: ghost-pulse 1.2s ease-in-out infinite;
}
@keyframes ghost-pulse {
  0%, 100% { opacity: 0.55; transform: translate(-50%, -50%) scale(1); }
  50%       { opacity: 0.85; transform: translate(-50%, -50%) scale(1.18); }
}

.food-dot--cursed {
  width: 18px !important;
  height: 18px !important;
  background: radial-gradient(circle, #dd88ff 0%, #7700cc 45%, rgba(100,0,180,0.3) 75%, transparent 100%);
  box-shadow: 0 0 12px 4px rgba(180,0,255,0.7), 0 0 24px 8px rgba(120,0,200,0.4);
  animation: cursed-flicker 0.8s ease-in-out infinite alternate;
}
@keyframes cursed-flicker {
  0%   { box-shadow: 0 0 12px 4px rgba(180,0,255,0.7), 0 0 24px 8px rgba(120,0,200,0.4); }
  100% { box-shadow: 0 0 18px 7px rgba(220,80,255,0.9), 0 0 36px 12px rgba(160,0,255,0.5); }
}

@keyframes ghost-blink-glow {
  0%, 100% {
    opacity: 0.9;
    filter: brightness(2.2);
    box-shadow: 0 0 18px 8px rgba(180,220,255,0.9), 0 0 32px 16px rgba(140,190,255,0.5);
  }
  50% {
    opacity: 0.1;
    filter: brightness(0.6);
    box-shadow: 0 0 4px 1px rgba(140,190,255,0.2);
  }
}
.food-dot--ghost.ghost-blink {
  animation: ghost-blink-glow 180ms ease infinite;
}
