/**
 * dojo-decor.css — Wave 13-C decoy layer styling.
 *
 * Z-order contract (shared with dojo-game.css, owned by Agent A):
 *   background  <= 5
 *   decoy-back   = 5
 *   decoy-mid    = 15
 *   decoy-front  = 25
 *   containers   = 30 (dojo-object)
 *
 * Decoys are pointer-transparent; the engine never sees them.
 * All animations are gated behind prefers-reduced-motion: no-preference.
 */

.dojo-decor-layer {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.dojo-decoy {
  position: absolute;
  image-rendering: pixelated;
  pointer-events: none;
  user-select: none;
  transform-origin: center center;
}

.dojo-decoy-back {
  z-index: 5;
}

.dojo-decoy-mid {
  z-index: 15;
}

.dojo-decoy-front {
  z-index: 25;
}

/* Study desk maps: decoys but live ON the desktop next to candle/
   scroll_rack (real objects at z≈370). Force them above Koro's
   foot-y z-index (~350 when mounted) so he reads as walking BEHIND
   the maps, sinking feet into the desktop surface. */
.dojo-decoy[src*="study_maps"] {
  z-index: 500;
}

@media (prefers-reduced-motion: no-preference) {
  .anim-butterfly_flutter {
    animation: decoy-butterfly-flutter 1.2s ease-in-out infinite;
  }

  .anim-flame_flicker {
    animation: decoy-flame-flicker 0.3s ease-in-out infinite;
  }

  .anim-steam_wisp {
    animation: decoy-steam-wisp 3s ease-out infinite;
  }

  .anim-ember_glow {
    animation: decoy-ember-glow 1.5s ease-in-out infinite;
  }
}

@keyframes decoy-butterfly-flutter {
  0% {
    transform: translateY(0) rotate(0deg);
  }
  50% {
    transform: translateY(-4px) rotate(-5deg);
  }
  100% {
    transform: translateY(0) rotate(0deg);
  }
}

@keyframes decoy-flame-flicker {
  0% {
    opacity: 0.8;
    transform: scaleY(1);
    filter: brightness(0.95);
  }
  50% {
    opacity: 1;
    transform: scaleY(1.08);
    filter: brightness(1.1);
  }
  100% {
    opacity: 0.9;
    transform: scaleY(0.98);
    filter: brightness(1);
  }
}

@keyframes decoy-steam-wisp {
  0% {
    transform: translateY(0);
    opacity: 0.6;
  }
  80% {
    opacity: 0.1;
  }
  100% {
    transform: translateY(-20px);
    opacity: 0;
  }
}

@keyframes decoy-ember-glow {
  0% {
    opacity: 0.7;
    filter: drop-shadow(0 0 2px rgba(255, 183, 77, 0.4));
  }
  50% {
    opacity: 1;
    filter: drop-shadow(0 0 6px rgba(255, 183, 77, 0.85));
  }
  100% {
    opacity: 0.7;
    filter: drop-shadow(0 0 2px rgba(255, 183, 77, 0.4));
  }
}
