/* Preserve the original portrait's layout box for the replacement image. */
section.contacts div.image img { aspect-ratio: 1320 / 1274; height: auto; object-fit: cover; object-position: center top; }

/* MAX uses a 100×100 source icon; normalize it to the social icon size. */
img[alt="MAX"] {
  display: block;
  width: 31px;
  height: 30px;
  object-fit: contain;
}

/* Alternating double strobes with a bright lens core and diffused spill. */
.beacon-overlay { position: absolute; pointer-events: none; z-index: 1; }
.beacon-light {
  position: absolute; top: 2.3%; width: 9.5%; height: 3.4%;
  border-radius: 50%; opacity: 0; transform: translate(-50%, -50%);
  background: radial-gradient(ellipse, #fff 0%, #fff 38%, rgba(240,249,255,.96) 56%, rgba(210,234,255,.45) 72%, transparent 100%);
  box-shadow: 0 0 6px 3px #fff, 0 0 17px 7px rgba(235,247,255,.95), 0 0 35px 12px rgba(180,216,255,.65);
  animation: beacon-white 2.8s linear infinite;
}
.beacon-light::before {
  content: ''; position: absolute; inset: -130% -35%; border-radius: 50%;
  background: radial-gradient(ellipse, rgba(255,255,255,.8), rgba(220,240,255,.3) 35%, transparent 70%);
}
.beacon-light::after {
  content: ''; position: absolute; left: -30%; right: -30%; top: 40%; height: 20%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.85) 30%, #fff 50%, rgba(255,255,255,.85) 70%, transparent);
  filter: blur(.5px);
}
.beacon-light--left { left: 40.5%; }
.beacon-light--right { left: 58.5%; animation-delay: -1.4s; }
@keyframes beacon-white {
  0%, 2%, 9%, 12%, 20%, 100% { opacity: 0; }
  3%, 5% { opacity: 1; }
  7% { opacity: .3; }
  13%, 16% { opacity: 1; }
  18% { opacity: .2; }
}
@media (prefers-reduced-motion: reduce) { .beacon-light { animation: none; opacity: 0; } }
