@font-face {
  font-family: 'Imperial Script';
  src: url('/assets/fonts/imperial-script.woff2') format('woff2');
  font-style: normal;
  font-weight: 400;
  font-display: block;
}

.family-portrait[data-family-ready] {
  position: relative;
  overflow: visible;
  isolation: isolate;
  container-type: inline-size;
}

.family-portrait[data-family-ready] > img {
  display: block;
  border-radius: inherit;
}

.family-portrait .family-person {
  position: absolute;
  display: block;
  margin: 0;
  padding: 0;
  min-width: 0;
  min-height: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  cursor: pointer;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}

.family-portrait .family-person:focus-visible {
  outline: none;
  background: rgb(40 98 241 / 11%);
}

.family-portrait .family-name {
  position: absolute;
  z-index: 6;
  pointer-events: none;
  display: block;
  width: max-content;
  max-width: none;
  margin: 0;
  padding: 0;
  transform: translate(-50%, -100%);
  direction: ltr;
  unicode-bidi: isolate;
  text-align: center;
}

.family-portrait .family-name[hidden] { display: none; }

.family-portrait .family-name-lettering {
  display: block;
  padding: 5px 10px 8px;
  color: #fff;
  font-family: 'Imperial Script', cursive;
  font-size: clamp(22px, 3.8cqw, 36px);
  font-style: normal;
  font-weight: 400;
  font-synthesis: none;
  line-height: 1.25;
  letter-spacing: normal;
  text-transform: none;
  white-space: nowrap;
  direction: ltr;
  unicode-bidi: isolate;
  text-shadow: 0 0 1px #000, 0 1px 2px #000, 0 3px 6px rgb(0 0 0 / 80%);
}

.family-portrait .family-name[data-keyboard=true] .family-name-lettering {
  outline: 1px solid var(--blue, #2862f1);
  outline-offset: 2px;
  border-radius: 3px;
}

.family-portrait .family-name[data-font-ready=false] .family-name-lettering {
  font-family: Manrope, sans-serif;
  font-size: 15px;
  line-height: 1.4;
}

@media (max-width: 700px) {
  .family-portrait .family-name-lettering {
    font-size: clamp(22px, 5.6cqw, 30px);
    padding: 4px 7px 6px;
    line-height: 1.1;
  }
}

@media (forced-colors: active) {
  .family-portrait .family-person:focus-visible { background: Highlight; opacity: .25; }
  .family-portrait .family-name-lettering { color: CanvasText; text-shadow: none; background: Canvas; }
  .family-portrait .family-name[data-keyboard=true] .family-name-lettering { outline-color: Highlight; }
}
