/* Blur-up lazy image loader */
img.lazy {
  filter: blur(10px);
  transform: scale(1.01);
  transition: filter 300ms ease, transform 300ms ease;
}
img.lazy.loaded {
  filter: blur(0);
  transform: none;
}
/* wrappers already set overflow via border-radius clipping; add safety */
.projects-grid a, .project-images { overflow: hidden; }


/* Lightbox (click-to-zoom on project images) */
#lightbox {
  position: fixed; inset: 0; z-index: 1000;
  background: rgba(0,0,0,0.92);
  display: none; align-items: center; justify-content: center;
  padding: 24px; cursor: zoom-out;
}
#lightbox.open { display: flex; }
#lightbox img {
  max-width: 100%; max-height: 100%;
  object-fit: contain; cursor: zoom-out;
  box-shadow: 0 12px 48px rgba(0,0,0,0.5);
}
#lightbox .lb-hint {
  position: absolute; bottom: 16px; left: 50%;
  transform: translateX(-50%);
  font: 11px/1 Inter, system-ui, sans-serif;
  color: rgba(255,255,255,0.5);
}