/* Shovel-only animation. Mining's rock, strike and reward keyframes are separate. */
.skill-activity-animation-digging .skill-activity-scene-dirt {
  --skill-activity-object-width: min(300px, 78%);
  --skill-activity-object-bottom: -26px;
}
.skill-activity-tool-digging {
  --skill-activity-tool-left: calc(50% - 74px);
  --skill-activity-tool-bottom: 92px;
  width: 110px;
  height: 110px;
  transform-origin: 74% 24%;
  animation: shovelDigAndLift 2.6s ease-in-out infinite;
}
.skill-activity-tool-digging .skill-activity-tool-image,
.skill-activity-tool-digging .item-composite-icon {
  width: 100%;
  height: 100%;
  display: block;
}
.skill-activity-tool .item-composite-icon.skill-activity-tool-image {
  width: 100%;
  height: 100%;
  display: block;
}
.skill-activity-animation-digging .skill-activity-aura {
  bottom: 34px;
  width: 190px;
  height: 42px;
  border-radius: 50%;
  background: radial-gradient(ellipse, rgba(180, 130, 68, .28), transparent 72%);
  animation: shovelDust 2.6s ease-out infinite;
}
.skill-activity-animation-digging .skill-activity-impact-ring {
  display: none;
}
.skill-activity-animation-digging .skill-activity-particle {
  left: calc(50% - 28px);
  bottom: 86px;
  width: 7px;
  height: 6px;
  border-radius: 45% 60% 35% 50%;
  background: #b58a50;
  box-shadow: 3px 2px 0 #795332;
  opacity: 0;
  animation: shovelSoilToss 2.6s ease-out infinite;
}
.skill-activity-animation-digging .skill-activity-particle-two {
  --soil-x: 74px;
  --soil-y: -38px;
  width: 5px;
  height: 4px;
}
.skill-activity-animation-digging .skill-activity-particle-three {
  --soil-x: 105px;
  --soil-y: -56px;
  width: 4px;
  height: 4px;
}
.skill-activity-sand-bucket {
  position: absolute;
  left: calc(50% + 91px);
  bottom: 24px;
  width: 64px;
  height: 64px;
  object-fit: contain;
  filter: drop-shadow(0 7px 7px rgba(0,0,0,.35));
  z-index: 3;
}
.skill-activity-animation-digging.is-reward-pulse .skill-activity-aura {
  animation: shovelRewardDust .5s ease-out;
}
@keyframes shovelDigAndLift {
  /* Approach, press into the soil, lever backwards, then lift and empty. */
  0%, 100% { transform: translate(0, -9px) rotate(-32deg); }
  24% { transform: translate(7px, 20px) rotate(-32deg); }
  38% { transform: translate(10px, 24px) rotate(-17deg); }
  58% { transform: translate(19px, -14px) rotate(12deg); }
  72% { transform: translate(43px, -22px) rotate(43deg); }
  84% { transform: translate(35px, -18px) rotate(40deg); }
}
@keyframes shovelSoilToss {
  0%, 55%, 100% { opacity: 0; transform: translate(0,0) scale(.5); }
  62% { opacity: .9; transform: translate(20px,-26px) scale(1); }
  76% { opacity: .85; transform: translate(var(--soil-x, 92px),var(--soil-y, -48px)) rotate(100deg); }
  94% { opacity: 0; transform: translate(126px,50px) rotate(190deg) scale(.65); }
}
@keyframes shovelDust {
  0%, 18%, 68%, 100% { opacity: 0; transform: translateX(-50%) scale(.7); }
  32% { opacity: .65; transform: translateX(-50%) scale(.95); }
  52% { opacity: .12; transform: translateX(-50%) scale(1.15); }
}
@keyframes shovelRewardDust {
  from { opacity: .75; transform: translateX(-50%) scale(.8); }
  to { opacity: 0; transform: translateX(-50%) scale(1.25); }
}
@media (prefers-reduced-motion: reduce) {
  .skill-activity-animation-digging .skill-activity-tool,
  .skill-activity-animation-digging .skill-activity-particle,
  .skill-activity-animation-digging .skill-activity-aura {
    animation: none;
  }
  .skill-activity-tool-digging { transform: rotate(-32deg); }
}

/* Water-bucket fill: reuse fishing pond art + splash timing, bucket as the tool. */
.skill-activity-animation-water-fill .skill-activity-scene-pond {
  --skill-activity-object-width: min(300px, 78%);
  --skill-activity-object-bottom: -18px;
}
.skill-activity-tool-water-fill {
  --skill-activity-tool-left: calc(50% - 28px);
  --skill-activity-tool-bottom: 118px;
  width: 72px;
  height: 72px;
  transform-origin: 50% 12%;
  animation: waterBucketScoop 2.7s ease-in-out infinite;
  z-index: 4;
}
.skill-activity-tool-water-fill .skill-activity-tool-image {
  width: 100%;
  height: 100%;
  object-fit: contain;
  filter: drop-shadow(0 8px 8px rgba(0, 0, 0, 0.28));
}
.skill-activity-animation-water-fill .skill-activity-aura {
  bottom: 44px;
  width: 240px;
  height: 44px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(91, 188, 224, 0.28) 0%, rgba(91, 188, 224, 0.1) 42%, rgba(91, 188, 224, 0) 72%);
  opacity: 0.2;
  animation: fishingWaterGlow 4.8s ease-in-out infinite;
}
.skill-activity-animation-water-fill .skill-activity-detail-one,
.skill-activity-animation-water-fill .skill-activity-detail-two {
  display: none;
}
.skill-activity-animation-water-fill .skill-activity-impact-ring {
  border-color: rgba(120, 208, 239, 0.72);
  animation: fishingRippleRing 2.7s ease-out infinite;
}
.skill-activity-animation-water-fill .skill-activity-particle {
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: radial-gradient(circle at 35% 35%, rgba(255,255,255,0.95), rgba(132, 214, 240, 0.9) 52%, rgba(132, 214, 240, 0.25) 100%);
  box-shadow: 0 0 10px rgba(104, 191, 227, 0.3);
  animation: fishingRewardBubbleLeft 2.7s ease-out infinite;
}
.skill-activity-animation-water-fill .skill-activity-particle-two {
  animation-name: fishingRewardBubbleRight;
  animation-delay: 0.12s;
}
.skill-activity-animation-water-fill .skill-activity-particle-three {
  animation-name: fishingRewardBubbleTop;
  animation-delay: 0.22s;
}
.skill-activity-animation-water-fill.is-reward-pulse .skill-activity-aura {
  animation: fishingRewardGlow 0.55s ease-out;
}
.skill-activity-animation-water-fill.is-reward-pulse .skill-activity-scene-object {
  animation: fishingRewardPond 0.55s ease-out;
}
.skill-activity-animation-water-fill.is-reward-pulse .skill-activity-tool {
  animation: fishingRewardRod 0.55s ease-out;
}
@keyframes waterBucketScoop {
  0%, 100% { transform: translate(0, -6px) rotate(-18deg); }
  28% { transform: translate(4px, 22px) rotate(-8deg); }
  42% { transform: translate(6px, 28px) rotate(4deg); }
  58% { transform: translate(10px, 8px) rotate(16deg); }
  74% { transform: translate(14px, -10px) rotate(28deg); }
  88% { transform: translate(8px, -8px) rotate(12deg); }
}
@media (prefers-reduced-motion: reduce) {
  .skill-activity-animation-water-fill .skill-activity-tool,
  .skill-activity-animation-water-fill .skill-activity-particle,
  .skill-activity-animation-water-fill .skill-activity-aura,
  .skill-activity-animation-water-fill .skill-activity-impact-ring {
    animation: none;
  }
  .skill-activity-tool-water-fill { transform: rotate(-12deg); }
}
