/* El espacio lo reserva el diseño de cada foto; el skeleton no cambia su tamaño. */
img[data-portal-photo][data-photo-state="loading"] {
  background: linear-gradient(100deg, #e9edef 25%, #f7f9fa 45%, #e9edef 65%);
  background-size: 220% 100%;
  animation: portalPhotoSkeleton 1.4s ease-in-out infinite;
}
img[data-portal-photo][data-photo-state="error"] {
  background: #e9edef;
}
@keyframes portalPhotoSkeleton {
  from { background-position: 200% 0; }
  to { background-position: -20% 0; }
}
@media (prefers-reduced-motion: reduce) {
  img[data-portal-photo][data-photo-state="loading"],
  .property-thumbnail-shell { animation: none; }
}
