/* TORFAN video player and intent feedback. Character motion lives only in MP4 assets. */

.torfan-intro__video-player {
  position: absolute;
  z-index: 2;
  inset: 0;
  overflow: hidden;
  background-color: #000;
  background-image: none;
  contain: layout paint;
}

.torfan-intro__video-slot {
  position: absolute;
  z-index: 0;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  margin: 0;
  border: 0;
  background: #000;
  object-fit: cover;
  object-position: 50% 50%;
  clip-path: none;
  filter: none;
  transform: none;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  user-select: none;
  -webkit-user-drag: none;
  transition: none;
}

.torfan-intro__video-slot.is-preparing {
  z-index: 1;
  opacity: 0.001;
  visibility: visible;
}

.torfan-intro__video-slot.is-active {
  z-index: 2;
  opacity: 1;
  visibility: visible;
}
.torfan-intro[data-torfan-video-error="true"] .torfan-intro__video-slot {
  opacity: 0 !important;
  visibility: hidden !important;
}

.torfan-intro__player-status {
  position: absolute;
  z-index: 25;
  top: max(1rem, env(safe-area-inset-top));
  right: var(--torfan-gutter);
  max-width: min(24rem, 52vw);
  margin: 0;
  color: rgb(255 255 255 / 78%);
  font-size: 0.6875rem;
  letter-spacing: 0.08em;
  line-height: 1.35;
  text-align: right;
  text-transform: uppercase;
}

.torfan-intro__retry {
  position: absolute;
  z-index: 26;
  top: max(3.75rem, calc(env(safe-area-inset-top) + 2.75rem));
  right: var(--torfan-gutter);
  min-height: 2.75rem;
  padding: 0.45rem 0.75rem;
  border: 1px solid rgb(255 255 255 / 52%);
  border-radius: 999px;
  color: #fff;
  background: rgb(0 0 0 / 42%);
  font: inherit;
  font-size: 0.75rem;
  letter-spacing: 0.04em;
  cursor: pointer;
  touch-action: manipulation;
}

.torfan-intro__retry[hidden],
.torfan-intro__player-status:empty {
  display: none;
}

.torfan-intro__debug {
  position: absolute;
  z-index: 30;
  top: 4.25rem;
  right: 0.75rem;
  max-width: min(22rem, 52vw);
  padding: 0.6rem 0.75rem;
  margin: 0;
  color: #d8d8d8;
  background: rgb(0 0 0 / 82%);
  font: 0.625rem/1.35 ui-monospace, SFMono-Regular, Consolas, monospace;
  white-space: pre-wrap;
  pointer-events: none;
}

@media (orientation: portrait) {
  .torfan-intro__video-slot {
    object-fit: contain;
  }
}

@media (max-width: 47.9375rem) {
  .torfan-intro__player-status {
    top: max(0.75rem, env(safe-area-inset-top));
    max-width: 58vw;
    font-size: 0.5625rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .torfan-intro__video-slot,
  .torfan-intro__menu-button {
    animation: none !important;
    transition-duration: 0.01ms !important;
  }
}
