*,
*::before,
*::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  background: #F0FFF0;
  font-family: system-ui, -apple-system, sans-serif;
  overflow-x: hidden;
}

section {
  min-height: 150vh;
  padding: 100px 60px;
  display: flex;
  justify-content: center;
  align-items: center;
}

.photo-grid {
  column-count: 3;
  column-gap: 40px;
  max-width: 1100px;
  width: 100%;
}

.photo {
  break-inside: avoid;
  margin-bottom: 40px;
  cursor: pointer;
}

.photo img {
  width: 100%;
  height: auto;
  display: block;
  transition: transform 0.3s ease, filter 0.3s ease;
}

.photo:hover img {
  transform: scale(1.03);
  filter: brightness(1.1);
}

/* Background palette — all same green */
.bg-charcoal { background: #F0FFF0; }
.bg-navy { background: #F0FFF0; }
.bg-olive { background: #F0FFF0; }
.bg-slate { background: #F0FFF0; }
.bg-plum { background: #F0FFF0; }
.bg-forest { background: #F0FFF0; }
.bg-rust { background: #F0FFF0; }

/* Lightbox */
.lightbox {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 1000;
  background: rgba(0, 0, 0, 0.95);
  justify-content: center;
  align-items: center;
  cursor: zoom-out;
}

.lightbox.active {
  display: flex;
}

.lightbox img {
  max-width: 92vw;
  max-height: 92vh;
  object-fit: contain;
}

/* Responsive */
@media (max-width: 768px) {
  section {
    padding: 60px 24px;
  }

  .photo-grid {
    column-count: 2;
    column-gap: 24px;
  }

  .photo {
    margin-bottom: 24px;
  }
}
