html { scroll-behavior: smooth; }

body { -webkit-font-smoothing: antialiased; }

.gallery-item {
  break-inside: avoid;
  border-radius: 1.25rem;
  overflow: hidden;
  position: relative;
  cursor: zoom-in;
  background: #EFE6D5;
  box-shadow: 0 1px 2px rgba(43,38,32,0.06);
  transition: transform .5s ease, box-shadow .5s ease;
}
.gallery-item img {
  width: 100%;
  height: auto;
  display: block;
  transition: transform .8s ease, filter .5s ease;
}
.gallery-item:hover {
  transform: translateY(-4px);
  box-shadow: 0 20px 40px -20px rgba(43,38,32,0.35);
}
.gallery-item:hover img {
  transform: scale(1.04);
  filter: saturate(1.05);
}

/* subtle grain overlay on hero */
#top::after {
  content: "";
  pointer-events: none;
  position: absolute; inset: 0;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/><feColorMatrix values='0 0 0 0 0.18  0 0 0 0 0.15  0 0 0 0 0.12  0 0 0 0.04 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  opacity: .5;
  mix-blend-mode: multiply;
}

#lightbox.open { display: flex; }
