:root { --ink:#fff; --shadow:rgba(0,0,0,.5); }
* { box-sizing:border-box; }
html, body { margin:0; height:100%; background:#1a1410; color:var(--ink); }
.hero { position:relative; width:100%; height:100vh; height:100dvh; overflow:hidden; }
.hero__img, .hero__video {
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; object-position:center;
  filter:contrast(1.03) saturate(1.08); /* bright daytime footage: keep exposure, slight pop */
}
.hero__video { z-index:1; }  /* video plays underneath, visible from the start (iOS autoplays it) */
.hero__img { z-index:2; transition:opacity 1.4s ease; } /* couple photo on top, dissolves to reveal the video */
.hero__img img { width:100%; height:100%; object-fit:cover; object-position:center; }
.hero__img.is-hidden { opacity:0; }
.hero__scrim {
  position:absolute; inset:0; z-index:3;
  background:
    radial-gradient(ellipse 75% 55% at 50% 50%, rgba(0,0,0,.4) 0%, rgba(0,0,0,.12) 58%, rgba(0,0,0,0) 100%),
    linear-gradient(to bottom, rgba(0,0,0,.16), rgba(0,0,0,.04) 45%, rgba(0,0,0,.3));
}
.hero__content {
  position:absolute; inset:0; z-index:4;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-align:center; padding:6vw;
  font-family:'Cormorant Garamond','Playfair Display',Georgia,'Times New Roman',serif;
  text-shadow:0 1px 3px rgba(0,0,0,.45), 0 2px 30px rgba(0,0,0,.5); /* keep text crisp over the lighter background */
  transform:translateY(20vh);   /* image phase: copy sits low */
  transition:transform .9s ease; /* rises to center as the video fades in */
}
.hero__img.is-hidden ~ .hero__content { transform:translateY(0); } /* copy rises to center as the photo dissolves */
.names { margin:0; font-weight:500; letter-spacing:.04em; line-height:1.04; font-size:clamp(2.6rem,9vw,7rem); }
.tagline { margin:.35em 0 0; font-style:italic; font-size:clamp(1.25rem,4vw,2.5rem); }
.ring { font-style:normal; }
.date {
  margin:1.2em 0 0; letter-spacing:.35em; text-transform:uppercase;
  font-family:ui-sans-serif,system-ui,sans-serif; font-size:clamp(.8rem,2vw,1.1rem); opacity:.9;
}
.soon {
  margin:.8em 0 0; letter-spacing:.3em; text-transform:uppercase;
  font-family:ui-sans-serif,system-ui,sans-serif; font-size:clamp(.7rem,1.6vw,.9rem); opacity:.75;
}
@media (prefers-reduced-motion: reduce) {
  .hero__video { display:none; }
  .hero__content { transform:none; transition:none; } /* no motion: copy centered over the still */
}
