/* Real gathered items leave the scene first; ordinary reward feedback follows. */
.gathering-loot-drop-layer,
.gathering-loot-drop-batch {
  position: absolute;
  inset: 0;
  pointer-events: none;
  user-select: none;
}
.gathering-loot-drop-layer { z-index: 4; overflow: hidden; }
.gathering-loot-drop-item {
  position: absolute;
  left: var(--skill-activity-particle-left, 50%);
  bottom: calc(var(--skill-activity-particle-bottom, 100px) + 24px);
  display: block;
  width: 34px;
  height: 34px;
  opacity: 0;
  animation: gatheringLootDrift var(--gather-loot-duration, 1200ms) linear var(--gather-loot-delay, 0ms) both;
  filter: drop-shadow(0 2px 2px rgba(25, 18, 10, .5));
}
.gathering-loot-drop-fall {
  display: block;
  position: relative;
  width: 100%;
  height: 100%;
  transform-origin: center bottom;
  animation: gatheringLootFall var(--gather-loot-duration, 1200ms) linear var(--gather-loot-delay, 0ms) both;
}
.gathering-loot-drop-icon {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  filter: var(--item-extra-filter, none);
}
.gathering-loot-drop-quantity {
  position: absolute;
  right: -4px;
  bottom: -2px;
  padding: 1px 3px;
  border-radius: 2px;
  background: rgba(48, 34, 21, .72);
  color: #d9c9a7;
  font-size: 10px;
  font-weight: 600;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}
@keyframes gatheringLootDrift {
  0% { opacity: 0; transform: translateX(0); }
  8% { opacity: 1; }
  74%, 100% { opacity: 1; transform: translateX(var(--gather-loot-drift, 28px)); }
}
@keyframes gatheringLootFall {
  0% { transform: translateY(calc(-1 * var(--gather-loot-height, 100px))) rotate(-8deg) scale(.92); animation-timing-function: ease-in; }
  28% { transform: translateY(0) rotate(3deg) scale(1.08, .84); animation-timing-function: ease-out; }
  43% { transform: translateY(-27px) rotate(7deg) scale(.98, 1.03); animation-timing-function: ease-in; }
  56% { transform: translateY(0) rotate(4deg) scale(1.05, .9); animation-timing-function: ease-out; }
  65% { transform: translateY(-10px) rotate(1deg); animation-timing-function: ease-in; }
  74%, 100% { transform: translateY(0) rotate(3deg); }
}
.gathering-loot-suction-layer {
  position: fixed;
  inset: 0;
  z-index: 150;
  pointer-events: none;
  user-select: none;
  overflow: visible;
  zoom: 1;
}
.gathering-loot-suction-item {
  display: block;
  position: fixed;
  transform-origin: center;
  pointer-events: none;
  animation: gatheringLootSuction var(--gather-suction-duration, 350ms) cubic-bezier(.34, .05, .68, .92) both;
}
.gathering-loot-condense {
  position: fixed;
  display: block;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: radial-gradient(circle, #ead294 0, #d9b86e99 25%, #d9b86e00 70%);
  pointer-events: none;
  animation: gatheringLootCondense var(--gather-suction-duration, 350ms) linear both;
}
@keyframes gatheringLootSuction {
  0% { transform: translate(0, 0) rotate(3deg) scale(var(--gather-suction-scale, 1)); opacity: 1; filter: drop-shadow(0 2px 2px #21160980); }
  28% { transform: translate(calc(var(--gather-suction-x) * .12), calc(var(--gather-suction-y) * .08 - 8px)) rotate(-5deg) scale(calc(var(--gather-suction-scale, 1) * 1.04)); opacity: 1; }
  78% { opacity: 1; filter: drop-shadow(0 0 4px #d6b66899); }
  100% { transform: translate(var(--gather-suction-x), var(--gather-suction-y)) rotate(0) scale(calc(var(--gather-suction-scale, 1) * .06)); opacity: 0; filter: drop-shadow(0 0 5px #ead294); }
}
@keyframes gatheringLootCondense {
  0%, 70% { opacity: 0; transform: translate(-50%, -50%) scale(.2); }
  90% { opacity: .9; transform: translate(-50%, -50%) scale(1); }
  100% { opacity: .25; transform: translate(-50%, -50%) scale(.55); }
}
@media (prefers-reduced-motion: reduce) {
  .gathering-loot-drop-layer, .gathering-loot-suction-layer { display: none; }
  .gathering-loot-drop-item, .gathering-loot-drop-fall, .gathering-loot-suction-item, .gathering-loot-condense { animation: none; }
}
