.hero-portrait {
  position: absolute;
  z-index: 1;
  width: min(69vw, 1120px);
  right: -5vw;
  top: 50%;
  transform: translateY(-47%);
  filter: drop-shadow(0 35px 70px rgba(0, 0, 0, .5));
}

.hero-portrait.visible { transform: translateY(-50%); }
.hero-portrait img {
  display: block;
  width: 100%;
  height: auto;
  position: relative;
  z-index: 1;
  clip-path: none;
  border-radius: 18px;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.12) 13%, #000 37%);
  mask-image: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.12) 13%, #000 37%);
}
.portrait-halo {
  position: absolute;
  inset: 10% 8%;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(201, 255, 74, .12), transparent 67%);
  filter: blur(25px);
  animation: portraitPulse 5s ease-in-out infinite;
}

@keyframes portraitPulse { 50% { opacity: .55; transform: scale(1.04); } }

@media (max-width: 800px) {
  .hero { padding: 115px 22px 76px; min-height: 940px; }
  .hero-copy { padding-top: 390px; }
  .hero-portrait { width: 125vw; right: -54vw; top: 105px; transform: none; }
  .hero-portrait img { min-height: 380px; object-fit: cover; object-position: 66% center; -webkit-mask-image:linear-gradient(180deg,#000 70%,transparent);mask-image:linear-gradient(180deg,#000 70%,transparent); }
  .hero-portrait.visible { transform: none; }
}

@media (prefers-reduced-motion: reduce) { .portrait-halo { animation: none; } }
