.identity-panel {
  overflow: hidden;
}

.identity-copy {
  position: relative;
  isolation: isolate;
  min-height: clamp(17rem, 36vh, 23rem);
  display: flex;
  align-items: center;
}

.identity-copy::before {
  content: "";
  position: absolute;
  z-index: -2;
  top: 50%;
  left: -2.8rem;
  width: min(34rem, 118%);
  aspect-ratio: 1.61 / 1;
  background: url("./cyprus-outline-v15.svg") center / contain no-repeat;
  opacity: 0.62;
  filter: drop-shadow(0 0 2.2rem rgba(var(--data-accent-rgb), 0.12));
  pointer-events: none;
  transform: translate3d(0, -50%, 0) scale(0.985);
  animation: cyprus-map-drift 9s ease-in-out infinite paused;
  will-change: transform;
}

.identity-copy::after {
  content: "";
  position: absolute;
  z-index: -1;
  left: 52%;
  top: 49%;
  width: 0.34rem;
  height: 0.34rem;
  border-radius: 50%;
  background: rgb(var(--data-accent-rgb));
  box-shadow:
    0 0 0 0 rgba(var(--data-accent-rgb), 0.28),
    0 0 1.4rem rgba(var(--data-accent-rgb), 0.76);
  opacity: 0.8;
  pointer-events: none;
  animation: cyprus-node-pulse 3.8s ease-out infinite paused;
}

.identity-open .identity-copy::before,
.identity-open .identity-copy::after {
  animation-play-state: running;
}

.identity-copy h2 {
  position: relative;
  z-index: 1;
  max-width: 12ch;
  font-size: clamp(2.75rem, 5.75vw, 5rem);
  line-height: 0.9;
  text-wrap: balance;
  text-shadow: 0 0 1.6rem #030303, 0 0 0.65rem #030303;
}

@keyframes cyprus-map-drift {
  0%, 100% {
    transform: translate3d(0, -50%, 0) scale(0.985);
  }
  50% {
    transform: translate3d(0.75rem, -52%, 0) scale(1.015);
  }
}

@keyframes cyprus-node-pulse {
  0% {
    opacity: 0.35;
    box-shadow:
      0 0 0 0 rgba(var(--data-accent-rgb), 0.34),
      0 0 1rem rgba(var(--data-accent-rgb), 0.7);
  }
  62%, 100% {
    opacity: 0.9;
    box-shadow:
      0 0 0 2.8rem rgba(var(--data-accent-rgb), 0),
      0 0 2rem rgba(var(--data-accent-rgb), 0.84);
  }
}

@media (max-width: 760px) {
  .identity-copy {
    min-height: clamp(15rem, 34vh, 19rem);
  }

  .identity-copy::before {
    left: -3.2rem;
    width: min(31rem, 132%);
    opacity: 0.56;
  }

  .identity-copy h2 {
    max-width: 11ch;
    font-size: clamp(2.7rem, 13vw, 4.35rem);
  }
}

@media (prefers-reduced-motion: reduce) {
  .identity-copy::before,
  .identity-copy::after {
    animation: none;
  }
}
