h2 {
  margin: 0 auto 22px;
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(34px, 8vw, 64px);
  font-weight: 500;
  line-height: 1.05;
}

p {
  font-size: 15px;
  line-height: 1.9;
  color: var(--muted);
}

.name-card,
.family-block,
.godparents,
.event-card {
  padding: 36px 26px;
  background: rgba(255,250,243,.82);
  border: 1px solid rgba(184,137,77,.22);
  border-radius: 30px;
  box-shadow: var(--shadow);
  backdrop-filter: blur(10px);
  transition:
    transform .7s cubic-bezier(.2,.8,.2,1),
    box-shadow .7s ease,
    border-color .7s ease;
}

.name-card:hover,
.family-block:hover,
.godparents:hover,
.event-card:hover {
  transform: translateY(-8px) scale(1.015);
  box-shadow: 0 38px 95px rgba(50,35,20,.22);
  border-color: rgba(184,137,77,.45);
}

.name-card span,
.family-block h3,
.godparents h3 {
  display: block;
  margin-bottom: 12px;
  font-size: 11px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--gold);
}

.name-card h3 {
  margin: 0;
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(32px, 8vw, 54px);
  font-weight: 500;
}

.name-divider {
  margin: 28px 0;
  font-family: "Great Vibes", cursive;
  font-size: 64px;
  color: var(--rose);
  animation: softFloat 3.4s ease-in-out infinite;
}

.memory-gallery {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
  margin-top: 42px;
}

.memory-card {
  position: relative;
  height: 390px;
  border-radius: 28px;
  overflow: hidden;
  box-shadow: var(--shadow);
  transform: rotate(var(--r, 0deg));
  transition:
    transform .8s cubic-bezier(.2,.8,.2,1),
    box-shadow .8s ease,
    filter .8s ease;
}

.memory-card:nth-child(1) { --r: -2deg; }
.memory-card:nth-child(2) { --r: 1.5deg; margin-top: 28px; }
.memory-card:nth-child(3) { --r: -1deg; margin-top: -14px; }
.memory-card:nth-child(4) { --r: 2deg; }

.memory-card-featured {
  grid-column: span 2;
}

.memory-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 1.5s ease, filter 1.5s ease;
  animation: photoBreath 9s ease-in-out infinite alternate;
}

.memory-card:hover {
  transform: rotate(0deg) translateY(-12px) scale(1.035);
  box-shadow: 0 42px 100px rgba(50,35,20,.26);
}

.memory-card:hover img {
  transform: scale(1.14);
  filter: saturate(1.08) contrast(1.04);
}
