html { scroll-behavior: smooth; }
[data-reveal] { opacity: 0; transform: translateY(28px); transition: all .7s ease; }
[data-reveal].show { opacity: 1; transform: translateY(0); }
.glass {
  background: rgba(255,255,255,0.08);
  backdrop-filter: blur(14px);
  border: 1px solid rgba(255,255,255,0.12);
}
.text-balance { text-wrap: balance; }
.catalog-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.catalog-placeholder {
  background:
    radial-gradient(circle at top, rgba(255,255,255,0.15), transparent 30%),
    linear-gradient(135deg, #1f080f 0%, #541a31 55%, #943c5d 100%);
}
