/* Entrance cover: tap the seal to open the doors, start the music, reveal the invite */
body.locked{overflow:hidden}
.cover{position:fixed;inset:0;z-index:900;display:grid;place-items:center;text-align:center;
  color:var(--ivory,#fbf6ec);touch-action:none}
.cover-panel{position:absolute;top:0;bottom:0;width:50.5%;
  background:linear-gradient(var(--maroon-2,#6b2231),var(--maroon,#4a1620));
  transition:transform 1.5s cubic-bezier(.77,0,.18,1) .35s}
.cover-panel.l{left:0}.cover-panel.r{right:0}
.cover::after{content:"";position:absolute;inset:14px;border:1px solid rgba(227,194,122,.45);
  pointer-events:none;transition:opacity .5s}
.cover-content{position:relative;z-index:2;width:min(420px,100%);padding:40px 24px;
  transition:opacity .5s,transform .5s}
.cover .kicker{margin-bottom:22px}
.cover .n-first{font-size:clamp(40px,11vw,64px)}
.cover .n-second{font-size:clamp(54px,15vw,88px)}
.cover-date{font-size:12px;letter-spacing:.24em;color:var(--gold-soft,#e3c27a);margin:14px 0 40px}
.seal{position:relative;width:92px;height:92px;border-radius:50%;border:1px solid var(--gold-soft,#e3c27a);
  background:radial-gradient(circle at 35% 30%,#dcae4f,#a97a22);color:var(--maroon,#4a1620);
  font-family:var(--serif,Georgia,serif);font-style:italic;font-size:30px;
  box-shadow:0 6px 24px rgba(0,0,0,.35);transition:transform .3s}
.seal:hover{transform:scale(1.05)}
.seal::before{content:"";position:absolute;inset:-9px;border-radius:50%;border:1px solid var(--gold-soft,#e3c27a);
  animation:ping 2.2s ease-out infinite}
.cover-hint{font-family:var(--serif,Georgia,serif);font-style:italic;font-size:19px;
  color:var(--gold-soft,#e3c27a);margin-top:22px}
@keyframes ping{0%{transform:scale(.92);opacity:.8}100%{transform:scale(1.4);opacity:0}}

.cover.opening{pointer-events:none}
.cover.opening::after,.cover.opening .cover-content{opacity:0}
.cover.opening .cover-content{transform:scale(.96)}
.cover.opening .l{transform:translateX(-101%)}
.cover.opening .r{transform:translateX(101%)}

/* Hero animations wait until the invite is opened */
body:not(.opened) .hero-content>*{animation:none;opacity:0}