/* Skeleton loading component - shadcn style */
@keyframes skeleton-pulse {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.5;
  }
}

.skeleton {
  animation: skeleton-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
  background-color: hsl(210, 40%, 95%);
  border-radius: var(--border-radius);
}

.skeleton-photo {
  width: 100%;
  aspect-ratio: 16/10;
  background: linear-gradient(110deg, 
    hsl(210, 40%, 95%) 8%, 
    hsl(210, 40%, 90%) 18%, 
    hsl(210, 40%, 95%) 33%);
  background-size: 200% 100%;
  animation: skeleton-shimmer 1.5s ease-in-out infinite;
}

@keyframes skeleton-shimmer {
  0% {
    background-position: -200% 0;
  }
  100% {
    background-position: 200% 0;
  }
}

.skeleton-gallery {
  display: flex;
  flex-direction: column;
  gap: 60px;
  padding: 40px 0;
  max-width: 800px;
  margin: 0 auto;
}

.skeleton-item {
  position: relative;
  overflow: hidden;
  border-radius: var(--border-radius);
  background-color: #fff;
  box-shadow: var(--shadow-light);
}

@media (max-width: 768px) {
  .skeleton-gallery {
    grid-template-columns: 1fr;
    gap: var(--spacing-sm);
  }
}
