/* Section-specific photography and soft transitions. */
.hero .portrait img {
  border-radius: 48% 48% 18% 32%;
  box-shadow: none;
  -webkit-mask-image: linear-gradient(#000 84%, transparent 100%);
  mask-image: linear-gradient(#000 84%, transparent 100%);
}
.hero .portrait::before {
  border-color: #aa81704a;
  inset: -12px -17px 55px 15px;
}
.evaluation-media {
  position: relative;
  isolation: isolate;
  max-width: 300px;
  padding: 14px;
}
.evaluation-media::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 12% -18% 5% -22%;
  border-radius: 48% 52% 65% 35%;
  background: radial-gradient(ellipse, #e5bcb28a, #f0d9c530 65%, transparent 73%);
  transform: rotate(-12deg);
}
.video-shell {
  border-radius: 90px 90px 22px 22px;
  box-shadow: 0 20px 50px #6b3e401f;
  border: 1px solid #fff9;
}
.gallery {
  position: relative;
  padding: 25px 0;
}
.gallery::before {
  content: "";
  position: absolute;
  inset: 0 12% 20% -5%;
  border: 1px solid #b78f7659;
  border-radius: 46% 54% 28% 72%;
  transform: rotate(-9deg);
  pointer-events: none;
}
.gallery .frames {
  aspect-ratio: 5 / 4;
  max-height: none;
  max-width: none;
  border: 0;
  border-radius: 38% 18% 32% 12%;
  box-shadow: none;
  background: transparent;
  -webkit-mask-image: linear-gradient(#000 85%, transparent 100%);
  mask-image: linear-gradient(#000 85%, transparent 100%);
}
.gallery .frames img {
  object-fit: cover;
  object-position: 50% 78%;
  transition: opacity 1.8s ease, transform 6s ease;
  transform: scale(1.035);
}
.gallery .frames img.chosen { transform: scale(1); }
.gallery figcaption {
  position: relative;
  margin-top: -12px;
  border-bottom: 0;
}
.special {
  background: linear-gradient(#fcf8f2, #f5ebe2 23%, #f9f1e9);
  border-radius: 0;
}
.birth-section {
  grid-template-columns: .95fr 1.05fr;
  background: linear-gradient(#f9f1e9, #f3e2dd 38%, #fcf8f2);
}
.birth-section > figure {
  grid-column: 1;
  grid-row: 1;
  position: relative;
}
.birth-section > div { grid-column: 2; }
.birth-section img {
  display: block;
  width: 100%;
  height: auto;
  max-height: none;
  aspect-ratio: 1;
  object-fit: cover;
  object-position: 50% 70%;
  border-radius: 48% 48% 22% 38%;
  -webkit-mask-image: linear-gradient(#000 78%, transparent);
  mask-image: linear-gradient(#000 78%, transparent);
}
.birth-section figcaption {
  text-align: center;
  margin-top: -12px;
  position: relative;
}
.motion-ready {
  transition: opacity 1.2s ease, translate 1.2s cubic-bezier(.16,1,.3,1);
}
figure.motion-wait {
  opacity: 0;
  translate: 0 38px;
}
@media (max-width: 700px) {
  .hero .portrait img { border-radius: 80px 80px 22px 30px; }
  .hero .portrait::before { inset: -4px -4px 36px 2px; }
  .evaluation-media { max-width: 280px; padding: 12px; }
  .gallery { width: 100%; padding: 18px 0; }
  .gallery .frames { aspect-ratio: 5 / 4; max-width: none; }
  .gallery::before { inset: 0 10% 18% 0; }
  .birth-section { grid-template-columns: 1fr; gap: 28px; }
  .birth-section > div { grid-column: 1; }
  .birth-section > figure { grid-column: 1; grid-row: auto; }
  .birth-section img { max-height: none; aspect-ratio: 1.1; }
  .video-shell { border-radius: 68px 68px 18px 18px; }
}
@media (prefers-reduced-motion: reduce) {
  .gallery .frames img { transition: none; transform: none; }
  figure.motion-wait { opacity: 1; translate: none; }
}
.gallery .frames img:nth-child(2) { object-position: 50% 42%; }
.footline{display:flex;flex-wrap:wrap;gap:14px 24px;align-items:center}.footline nav{display:flex;flex-wrap:wrap;gap:12px}.footline .developer-credit{margin-left:auto}.developer-credit b{font:inherit;color:#efa8ae}.map-choice{padding:36px;border-radius:35px;background:#ead8ca}.health-choice{padding:12px;border:1px solid #e1b7bb;border-radius:14px}.health-choice input{display:inline-block;width:auto;accent-color:#633649}.health-choice input:focus-visible{outline:2px solid white}@media(max-width:700px){.footline{display:grid}.footline .developer-credit{margin-left:0}}

@media (max-width: 700px) {
  .footline .developer-credit {
    display: block;
    justify-self: stretch;
    margin: 8px 0 0;
    border-top: 1px solid #ffffff30;
    padding: 18px 0 0;
    text-align: center;
  }
}
