/* Aura de presencia (presence-seal.js). Todas las clases con prefijo ps-. Misma animación que
   bitju-app (src/components/Progression/PresenceSeal.tsx). */

.ps-tile { position: absolute; transform-origin: 0 0; pointer-events: none; }
.ps-layer { position: absolute; inset: 0; pointer-events: none; }
.ps-a { position: absolute; pointer-events: none; }
/* También pisa `.npc img` (la capa de adelante vive dentro del .npc): sin su sombra ni su tamaño. */
.ps-layer img, .ps-a img { display: block; width: 100%; height: 100%; max-width: none; filter: none; }

@keyframes psBreathe { 0%, 100% { transform: scale(1) rotate(0deg); opacity: .92; } 50% { transform: scale(1.035) rotate(var(--br)); opacity: 1; } }
@keyframes psShimmer { 0% { transform: rotate(var(--s0)) scale(1.01); opacity: 0; } 50% { opacity: var(--so); } 100% { transform: rotate(var(--s1)) scale(1.04); opacity: 0; } }
@keyframes psFloat { 0%, 100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(var(--fy)) rotate(var(--fr)); } }
@keyframes psTwinkle { 0%, 100% { opacity: .15; transform: scale(.55); } 50% { opacity: 1; transform: scale(1.15); } }
@keyframes psRise { 0% { opacity: 0; transform: translateY(0) scale(1); } 15% { opacity: 1; } 100% { opacity: 0; transform: translateY(var(--rise)) scale(.3); } }

.ps-breathe { animation: psBreathe var(--d) ease-in-out infinite; will-change: transform, opacity; }
.ps-shimmer { opacity: 0; animation: psShimmer var(--d) ease-in-out infinite; animation-delay: var(--delay); will-change: transform, opacity; }
.ps-float { width: 100%; height: 100%; animation: psFloat var(--d) ease-in-out infinite; animation-delay: var(--delay); will-change: transform; }
.ps-twinkle { width: 100%; height: 100%; animation: psTwinkle var(--d) ease-in-out infinite; animation-delay: var(--delay); will-change: transform, opacity; }
.ps-rise { border-radius: 50%; opacity: 0; animation: psRise var(--d) ease-out infinite; animation-delay: var(--delay); }

@media (prefers-reduced-motion: reduce) {
  .ps-breathe, .ps-float, .ps-twinkle { animation: none; }
  .ps-shimmer { animation: none; opacity: 0; }
  .ps-rise { animation: none; opacity: .6; }
}
