/* T3A curtain intro overlay — production-hardened per spec Appendix A */
:root { --intro-fade-duration: 1150ms; }

/* No JavaScript must never leave an overlay on screen. */
.no-js .intro-overlay { display: none; }

/* Direct visits to non-landing pages never see the overlay. */
html:not(.intro-eligible) .intro-overlay { display: none; }

html.intro-is-playing, html.intro-is-playing body { overflow: hidden; }

.intro-overlay {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100vh;   /* fallback */
  height: 100dvh;  /* tracks the iOS Safari toolbar */
  z-index: 2147483647;
  overflow: hidden;
  background: #050000;
  opacity: 1;
  visibility: visible;
  transition:
    opacity var(--intro-fade-duration) cubic-bezier(.22, .61, .36, 1),
    visibility 0s linear var(--intro-fade-duration);
}
.intro-overlay.is-revealing { opacity: 0; visibility: hidden; pointer-events: none; }
.intro-overlay.is-finished { display: none; }

.intro-overlay__video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.intro-overlay__skip {
  position: absolute;
  right: max(1rem, env(safe-area-inset-right));
  bottom: max(1rem, env(safe-area-inset-bottom));
  min-width: 44px;
  min-height: 44px;
  padding: .65rem 1rem;
  border: 1px solid rgb(255 255 255 / 35%);
  border-radius: 999px;
  color: #fff;
  background: rgb(0 0 0 / 38%);
  font: 500 .8rem/1 'Inter', system-ui, sans-serif;
  letter-spacing: .04em;
  cursor: pointer;
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  transition: background .3s, border-color .3s;
}
.intro-overlay__skip:hover { background: rgb(0 0 0 / 60%); border-color: rgb(255 255 255 / 60%); }
.intro-overlay__skip:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }

@media (prefers-reduced-motion: reduce) {
  .intro-overlay { display: none; }
}
