.video-intro {
  --intro-background: #342317;
  --intro-control-inset: 1.25rem;
  background: var(--intro-background);
}

.video-intro__stage {
  position: relative;
  height: 100%;
  width: min(100%, calc(100svh * 478 / 854));
  overflow: hidden;
}

.video-intro__video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.video-intro__open {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  gap: .75rem;
  padding: 0 var(--intro-control-inset) max(9svh, env(safe-area-inset-bottom));
  border: 0;
  background: linear-gradient(transparent 65%, rgba(35, 20, 10, .42));
  color: var(--paper);
  font-family: inherit;
  cursor: pointer;
}

.video-intro__open:focus-visible { outline-offset: -6px; }
.video-intro__label { font-size: 1.125rem; min-height: 44px; }
.video-intro__hint { font-size: 1rem; text-shadow: 0 1px 5px var(--intro-background); }
.video-intro [hidden] { display: none; }
#i2 {
  position: fixed;
  z-index: 40;
  top: max(var(--intro-control-inset, 1.25rem), env(safe-area-inset-top));
  right: 1.25rem;
  margin: 0;
  min-height: 44px;
  cursor: pointer;
}

/* One cached transparent WebP decorates both corners of the invitation hero. */
._12, ._1e, ._21 {
  --floral-width: clamp(220px, 30vw, 420px);
  --floral-edge-offset: -1.5rem;
}

._1e, ._21 {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  --floral-width: clamp(200px, 24vw, 280px);
}

._1e .wedding-floral, ._21 .wedding-floral {
  z-index: -1;
  opacity: .65;
}

.wedding-floral {
  position: absolute;
  z-index: 0;
  display: block;
  width: var(--floral-width);
  height: auto;
  opacity: .88;
  pointer-events: none;
  user-select: none;
}

.wedding-floral--top {
  top: var(--floral-edge-offset);
  left: var(--floral-edge-offset);
}

.wedding-floral--bottom {
  bottom: var(--floral-edge-offset);
  right: var(--floral-edge-offset);
  transform: rotate(180deg);
}

@media (max-width: 600px) {
  ._12, ._1e, ._21 {
    --floral-width: 180px;
    --floral-edge-offset: -2rem;
  }
}
