/* game_actions_graphics.css — انیمیشن‌های عملیات بازی */

/* === آیکون مرکزی بزرگ === */
@keyframes bg-action-center {
  0%   { opacity: 0; transform: translate(-50%,-50%) scale(.3) rotate(-15deg); }
  30%  { opacity: 1; transform: translate(-50%,-50%) scale(1.15) rotate(5deg); }
  60%  { transform: translate(-50%,-50%) scale(1) rotate(0deg); }
  100% { opacity: 0; transform: translate(-50%,-50%) scale(.8) rotate(0deg); }
}
.bg-action-center {
  position: fixed; left: 50%; top: 45%; z-index: 99998; pointer-events: none;
  display: flex; flex-direction: column; align-items: center; gap: 6px;
  animation: bg-action-center 1.6s cubic-bezier(.23,1,.32,1) forwards;
  text-align: center;
}
.bg-action-icon {
  font-size: 56px; line-height: 1;
  filter: drop-shadow(0 4px 20px currentColor);
  text-shadow: 0 0 30px currentColor;
}
.bg-action-subtitle {
  font-size: 13px; font-weight: 700; color: #e8edf3;
  background: rgba(0,0,0,.6); padding: 4px 12px; border-radius: 8px;
  white-space: nowrap; max-width: 240px; overflow: hidden; text-overflow: ellipsis;
  backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
}

/* === باران ذرات === */
@keyframes bg-rain {
  0%   { transform: translateY(0) rotate(0deg); opacity: 0; }
  10%  { opacity: 1; }
  100% { transform: translateY(120vh) rotate(360deg); opacity: 0; }
}
.bg-rain-particle {
  position: fixed; z-index: 99998; pointer-events: none;
  animation: bg-rain 1.8s linear forwards; will-change: transform, opacity;
}

/* === حلقه موفقیت === */
@keyframes bg-success-ring {
  0%   { transform: translate(-50%,-50%) scale(0); opacity: 1; border-width: 8px; }
  100% { transform: translate(-50%,-50%) scale(5); opacity: 0; border-width: 1px; }
}
.bg-success-ring {
  position: fixed; left: 50%; top: 45%; width: 50px; height: 50px; border-radius: 50%;
  border-style: solid; border-color: rgba(81,207,102,.7);
  animation: bg-success-ring .8s cubic-bezier(.23,1,.32,1) forwards;
  z-index: 99998; pointer-events: none;
}

/* === فلش موفقیت === */
@keyframes bg-success-flash {
  0%   { opacity: 0; }
  15%  { opacity: .5; }
  100% { opacity: 0; }
}
.bg-success-flash {
  position: fixed; inset: 0; z-index: 99997; pointer-events: none;
  background: radial-gradient(circle at 50% 45%, rgba(81,207,102,.4) 0%, transparent 60%);
  animation: bg-success-flash .5s ease-out forwards;
}

/* === ذرات در حال چرخش (orbit) === */
@keyframes bg-orbit {
  0%   { transform: rotate(var(--orbit-angle)) translateX(0) scale(0); opacity: 0; }
  30%  { opacity: 1; }
  100% { transform: rotate(calc(var(--orbit-angle) + 360deg)) translateX(80px) scale(.5); opacity: 0; }
}
.bg-orbit-particle {
  position: fixed; left: 50%; top: 45%; z-index: 99998; pointer-events: none;
  font-size: 20px;
  transform-origin: center;
  animation: bg-orbit 1.4s cubic-bezier(.23,1,.32,1) forwards;
  animation-delay: var(--orbit-delay, 0s);
  will-change: transform, opacity;
}

/* === موج ضربه (pulse wave) === */
@keyframes bg-pulse-wave {
  0%   { transform: translate(-50%,-50%) scale(0); opacity: .6; border-width: 6px; }
  100% { transform: translate(-50%,-50%) scale(4); opacity: 0; border-width: 1px; }
}
.bg-pulse-wave {
  position: fixed; left: 50%; top: 45%; width: 40px; height: 40px; border-radius: 50%;
  border-style: solid; border-color: rgba(85,198,209,.5);
  animation: bg-pulse-wave .7s ease-out forwards;
  z-index: 99998; pointer-events: none;
}