.replica-hover-portal {
  position: fixed;
  inset: 0;
  z-index: 99;
  pointer-events: none;
}
.replica-hover-portal[hidden] { display: none; }
.replica-hover-portal > [data-replica-hover] {
  position: absolute;
  pointer-events: auto;
  width: max-content;
  max-width: min(25rem, calc(100vw - 20px));
  max-height: calc(100vh - 20px);
  overflow-y: auto;
}
.owner-hover-close { float: right; margin: -8px -8px 0 8px; }
.replica-hover-portal [role="dialog"] > div { clear: both; }
.replica-reveal {
  transition-property: opacity, transform, clip-path;
  transition-duration: var(--replica-reveal-duration, 500ms);
  transition-delay: var(--replica-reveal-delay, 0ms);
  transition-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
}
@media (prefers-reduced-motion: reduce) {
  .replica-reveal { transition: none; }
}
