/* =========================================================
   Hazem & Rana — wedding invitation
   ========================================================= */

:root {
  --aubergine: #381E2F;
  --plum-ink: #3B0C22;
  --plum: #4A1D33;
  --cream: #F6EADE;
  --sage: #646A54;
  --sage-dark: #535943;
  --gold: #C9A06C;
  --sand: #E2D2C2;

  --serif: "Bodoni Moda", "Bodoni 72", "Didot", "Playfair Display", "Times New Roman", serif;
  --text: "Cormorant Garamond", "Cormorant", "Garamond", "Baskerville", "Georgia", serif;
  --script: "Pinyon Script", "Snell Roundhand", "Apple Chancery", "Segoe Script", cursive;
  --hand: "Allura", "Snell Roundhand", "Apple Chancery", "Segoe Script", cursive;

  --ease: cubic-bezier(.65, .02, .25, 1);
  --ease-out: cubic-bezier(.2, .75, .25, 1);
  --ease-soft: cubic-bezier(.4, 0, .2, 1);

  /* ---- invitation canvas ----
     The card keeps the design's proportions horizontally; on tall phones the
     extra height opens up between the names and the details. */
  --W: max(min(100vw, 336px), min(100vw, 560px, calc((100vh - 50px) / 1.85)));
  --H: max(calc(var(--W) * 1.85), min(calc(100vh - 50px), calc(var(--W) * 2.15)));
  --envW: min(88vw, 540px, calc((100vh - 190px) * 1.4));
}
@supports (height: 100svh) {
  :root {
    --W: max(min(100vw, 336px), min(100vw, 560px, calc((100svh - 50px) / 1.85)));
    --H: max(calc(var(--W) * 1.85), min(calc(100svh - 50px), calc(var(--W) * 2.15)));
    --envW: min(88vw, 540px, calc((100svh - 190px) * 1.4));
  }
}
:root {
  --u: calc(var(--W) / 100);              /* 1% of the card canvas width   */
  --k: calc(var(--u) * 0.107471);         /* 1px of the original artwork   */
  --shift: max(0px, calc(var(--H) - var(--k) * 1536));
}

*, *::before, *::after { box-sizing: border-box; }

html {
  height: 100%;
  background: #E9DFD3;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
:root {
  padding-top: env(safe-area-inset-top, 0px);
  padding-bottom: env(safe-area-inset-bottom, 0px);
}
body {
  margin: 0;
  min-height: 100%;
  background: #E9DFD3;
  color: var(--plum-ink);
  font-family: var(--text);
  overflow-x: hidden;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}
img { -webkit-user-drag: none; user-select: none; }

.scene {
  display: grid;
  min-height: 100vh;
  min-height: 100svh;
  place-items: center;
  overflow: hidden;
}
@supports (overflow: clip) { .scene { overflow-x: clip; overflow-y: visible; } }

.stage {
  grid-area: 1 / 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 100vh;
  min-height: 100svh;
}

/* =========================================================
   1 · ENVELOPE
   ========================================================= */

.stage--envelope {
  position: relative;
  z-index: 2;
}

/* ---- the envelope is alive: it floats, catches the light, and the seal glints ---- */
.env-holder {
  position: relative;
  display: grid;
  place-items: center;
  animation: envIn 1.3s var(--ease-out) both;
}
@keyframes envIn { from { opacity: 0; translate: 0 22px; scale: .97; } }

.env-float {
  perspective: 1100px;
  animation: float 6.5s ease-in-out infinite;
}
@keyframes float {
  0%, 100% { translate: 0 0;     rotate: -.35deg; }
  50%      { translate: 0 -7px;  rotate: .35deg; }
}
.env-shadow {
  position: absolute;
  left: 50%;
  bottom: calc(var(--envW) * -0.05);
  width: calc(var(--envW) * .9);
  height: calc(var(--envW) * .09);
  translate: -50% 0;
  border-radius: 50%;
  background: radial-gradient(closest-side, rgba(70, 35, 30, .38), rgba(70, 35, 30, 0));
  filter: blur(6px);
  animation: shadowBreath 6.5s ease-in-out infinite;
  pointer-events: none;
}
@keyframes shadowBreath {
  0%, 100% { scale: 1;   opacity: 1; }
  50%      { scale: .93; opacity: .72; }
}
.env-tilt {
  transform-style: preserve-3d;
  will-change: transform;
}

/* light glancing across the paper — moved with transforms only */
.env-sheen {
  position: absolute;
  inset: 0;
  z-index: 6;
  border-radius: 3px;
  overflow: hidden;
  pointer-events: none;
}
.env-sheen i {
  position: absolute;
  left: -40%;
  top: -60%;
  width: 180%;
  height: 220%;
  background: radial-gradient(circle at 50% 50%, rgba(255, 238, 218, .17), rgba(255, 238, 218, 0) 32%);
  will-change: transform;
  animation: sheenMove 9s ease-in-out infinite alternate;
}
@media (hover: hover) and (pointer: fine) { .env-sheen i { animation: none; } }
@keyframes sheenMove {
  from { transform: translate(-22%, -12%); }
  to   { transform: translate(22%, 6%); }
}

/* a gold glint sweeping over the wax */
.seal-shine {
  position: absolute;
  z-index: 6;
  left: 38.9%;
  top: 44.9%;
  width: 21.1%;
  aspect-ratio: 197 / 204;
  overflow: hidden;
  pointer-events: none;
  -webkit-mask: url("data:image/webp;base64,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") center / 100% 100% no-repeat;
  mask: url("data:image/webp;base64,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") center / 100% 100% no-repeat;
}
.seal-shine::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(115deg, transparent 36%, rgba(255, 246, 228, .6) 50%, transparent 64%);
  transform: translateX(-110%);
  will-change: transform;
  animation: glint 5.5s cubic-bezier(.45, 0, .25, 1) 1.6s infinite;
}
@keyframes glint {
  0%        { transform: translateX(-110%); }
  30%, 100% { transform: translateX(110%); }
}
/* soft ring inviting a tap */
.seal-ripple {
  position: absolute;
  z-index: 4;
  left: 49.5%;
  top: 60.2%;
  width: 22%;
  aspect-ratio: 1;
  translate: -50% -50%;
  border-radius: 50%;
  border: 1.5px solid rgba(214, 178, 128, .75);
  opacity: 0;
  pointer-events: none;
  animation: ripple 3.2s var(--ease-out) 2.2s infinite;
}
@keyframes ripple {
  0%   { scale: .92; opacity: 0; }
  12%  { opacity: .85; }
  70%  { scale: 1.75; opacity: 0; }
  100% { scale: 1.75; opacity: 0; }
}
.seal-burst {
  position: absolute;
  z-index: 6;
  left: 49.5%;
  top: 60.2%;
  width: 34%;
  aspect-ratio: 1;
  translate: -50% -50%;
  border-radius: 50%;
  background: radial-gradient(closest-side, rgba(255, 233, 196, .95), rgba(232, 196, 140, .45) 45%, rgba(232, 196, 140, 0));
  opacity: 0;
  pointer-events: none;
}

/* floating petals and gypsophila on the tabletop */
.particles { position: absolute; inset: 0; overflow: hidden; pointer-events: none; }
.particles--env { position: fixed; z-index: 0; }
.p {
  position: absolute;
  top: 0;
  left: var(--x);
  width: var(--s);
  height: var(--s);
  opacity: 0;
  background: center / contain no-repeat;
  animation: drift var(--d) linear var(--delay) infinite;
  will-change: transform, opacity;
}
.p--dot   { border-radius: 50%; background: radial-gradient(circle, rgba(255, 252, 245, .95) 0 35%, rgba(255, 252, 245, 0) 70%); }
.p--leaf  { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 40'%3E%3Cpath d='M10 0C2 12 2 28 10 40C18 28 18 12 10 0Z' fill='%23889A7C'/%3E%3Cpath d='M10 3V37' stroke='%23F1EADB' stroke-width='.8' opacity='.5'/%3E%3C/svg%3E"); }
.p--lav   { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 30'%3E%3Cpath d='M10 0C3 6 1 18 10 30C19 18 17 6 10 0Z' fill='%23B6A3CB'/%3E%3C/svg%3E"); }
.p--cream { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 30'%3E%3Cpath d='M10 0C3 6 1 18 10 30C19 18 17 6 10 0Z' fill='%23FBF4E9'/%3E%3C/svg%3E"); }
@keyframes drift {
  0%   { opacity: 0;   transform: translate3d(0, -6vh, 0) rotate(var(--r0)); }
  10%  { opacity: var(--o); }
  50%  { transform: translate3d(var(--sway), 50vh, 0) rotate(calc(var(--r0) + 120deg)); }
  90%  { opacity: var(--o); }
  100% { opacity: 0;   transform: translate3d(calc(var(--sway) * -.4), 106vh, 0) rotate(calc(var(--r0) + 260deg)); }
}
.particles--invite .p { animation-name: driftCard; }
@keyframes driftCard {
  0%   { opacity: 0;   transform: translate3d(0, -4%, 0) rotate(var(--r0)); }
  12%  { opacity: var(--o); }
  50%  { transform: translate3d(var(--sway), 48cqh, 0) rotate(calc(var(--r0) + 140deg)); }
  88%  { opacity: var(--o); }
  100% { opacity: 0;   transform: translate3d(calc(var(--sway) * -.5), 100cqh, 0) rotate(calc(var(--r0) + 280deg)); }
}

/* gentle drift of the tabletop photo */
.env-scene { animation: tableDrift 28s ease-in-out infinite alternate; will-change: transform; }
@keyframes tableDrift { from { scale: 1.02; } to { scale: 1.07; translate: -1% -1%; } }

/* the cream tabletop with eucalyptus, gypsophila and silk ribbon */
.env-scene {
  position: fixed;
  inset: 0;
  z-index: -1;
  background: var(--sand) url("images/scene-bg.webp") center 46% / cover no-repeat;
}
@media (min-aspect-ratio: 3/4) {
  .env-scene { background: radial-gradient(ellipse at 50% 45%, #E6D7C8 0%, #D8C5B2 70%, #CDB8A3 100%); }
  .env-scene::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 50%;
    width: max(100vh, 100%);
    transform: translateX(-50%);
    background: url("images/scene-bg.webp") center 46% / cover no-repeat;
    -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 22%, #000 78%, transparent 100%);
    mask-image: linear-gradient(90deg, transparent 0%, #000 22%, #000 78%, transparent 100%);
  }
}

.envelope {
  position: relative;
  display: block;
  width: var(--envW);
  aspect-ratio: 933 / 666;
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  cursor: pointer;
  perspective: 1600px;
  -webkit-appearance: none;
  appearance: none;
  transform-origin: 50% 60%;
}
@supports not (aspect-ratio: 1) { .envelope { height: calc(var(--envW) * 666 / 933); } }
.envelope:focus { outline: none; }
.envelope:focus-visible { outline: 1px solid var(--plum); outline-offset: 12px; border-radius: 4px; }

.env-back,
.env-body,
.env-flap,
.flap-front,
.flap-back { position: absolute; inset: 0; width: 100%; height: 100%; }

.env-back {
  z-index: 1;
  border-radius: 3px;
  background:
    radial-gradient(ellipse at 50% 20%, #4A1A2D 0%, #2C0D1A 75%);
  box-shadow:
    0 2px 3px rgba(40, 18, 20, .25),
    0 26px 40px -14px rgba(60, 30, 25, .55),
    14px 30px 50px -20px rgba(60, 30, 25, .35);
}

/* the card tucked inside */
.env-letter {
  position: absolute;
  z-index: 2;
  left: 6.5%;
  right: 6.5%;
  top: 5%;
  height: 90%;
  transition: transform .9s var(--ease) 0s;
  filter: drop-shadow(0 -3px 6px rgba(20, 4, 12, .35));
}
.letter-arch {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  border-radius: 50% 50% 3px 3px / 40% 40% 3px 3px;
  background: var(--cream);
  color: var(--plum-ink);
  text-align: center;
  padding-top: 6%;
}
.letter-arch::before {
  content: "";
  position: absolute;
  inset: 2.6% 2.2% 0;
  border: 1px solid rgba(74, 29, 51, .35);
  border-bottom: 0;
  border-radius: inherit;
}
.letter-sprig { width: 7%; height: auto; }
.letter-save {
  margin-top: 2.5%;
  font-family: var(--text);
  font-weight: 600;
  font-size: calc(var(--envW) * .026);
  letter-spacing: .32em;
  text-transform: uppercase;
  color: var(--sage);
}
.letter-names {
  margin-top: 2%;
  font-family: var(--serif);
  font-weight: 500;
  font-size: calc(var(--envW) * .07);
  letter-spacing: .03em;
  text-transform: uppercase;
  line-height: 1;
}
.letter-names i { font-family: var(--script); font-style: normal; text-transform: none; color: var(--sage); font-size: 1.2em; }
.letter-date {
  margin-top: 2.5%;
  font-family: var(--text);
  font-weight: 600;
  font-size: calc(var(--envW) * .027);
  letter-spacing: .3em;
}

.env-body { z-index: 3; display: block; pointer-events: none; }

.env-flap {
  z-index: 4;
  transform-origin: 50% 0;
  transform-style: preserve-3d;
  transform: rotateX(0deg);
  transition: transform 1s var(--ease) 0s, z-index 0s linear 0s;
  pointer-events: none;
}
.flap-front {
  display: block;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  filter: drop-shadow(0 3px 3px rgba(20, 3, 10, .35));
}
.flap-back {
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  transform: rotateY(180deg);
  clip-path: polygon(0 0, 100% 0, 100% 2.8%, 49.9% 70.2%, 0 2.8%);
  background: var(--gold);
}
.flap-back::after {
  content: "";
  position: absolute;
  inset: 0;
  clip-path: polygon(1% 0, 99% 0, 99% 2.4%, 49.9% 67.6%, 1% 2.4%);
  background: linear-gradient(180deg, #3A1325 0%, #4C1C30 100%);
}

.env-seal {
  position: absolute;
  z-index: 5;
  left: 38.9%;
  top: 44.9%;
  width: 21.1%;
  height: auto;
  filter: drop-shadow(1px 4px 4px rgba(20, 3, 10, .45)) drop-shadow(0 1px 1px rgba(20, 3, 10, .4));
  transition: transform .5s var(--ease-out), opacity .5s var(--ease-soft), filter .5s var(--ease-soft);
  pointer-events: none;
}

.tap-hint {
  margin: clamp(26px, 6vh, 46px) 0 0;
  display: flex;
  align-items: center;
  gap: 14px;
  font-family: var(--text);
  font-weight: 600;
  font-size: clamp(13px, 3.4vw, 15px);
  letter-spacing: .34em;
  margin-right: -.34em;
  text-transform: uppercase;
  color: var(--plum);
  opacity: .8;
  animation: breathe 3.4s ease-in-out infinite;
}
.tap-hint::before,
.tap-hint::after {
  content: "";
  width: 32px;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(74, 29, 51, .6));
}
.tap-hint::after { transform: scaleX(-1); }
@keyframes breathe { 50% { opacity: .45; } }

/* ---- press feedback ---- */
.is-pressing .env-seal { transform: scale(.95); }

/* ---- states ---- */
.is-opening .tap-hint,
.is-open .tap-hint { opacity: 0; animation: none; transition: opacity .35s ease; }
.is-opening .seal-ripple, .is-open .seal-ripple,
.is-opening .seal-shine,  .is-open .seal-shine,
.is-opening .env-sheen,   .is-open .env-sheen { opacity: 0 !important; animation: none; transition: opacity .25s ease; }
.is-opening .env-float, .is-open .env-float { animation-play-state: paused; }
.is-open .stage--envelope { visibility: hidden; pointer-events: none; }

/* =========================================================
   2 · INVITATION  (artwork + live typography laid over it)
   ========================================================= */

:root {
  --ART-W: 941;
  --ART-H: 1672;
  --IH: max(100vh, 600px);
}
@supports (height: 100svh) { :root { --IH: max(100svh, 600px); } }
:root {
  --S: calc(var(--IH) / var(--ART-H));             /* 1px of the artwork        */
  --IW: calc(var(--IH) * 941 / 1672);               /* full artwork width        */
  --CW: min(100vw, var(--IW));                      /* what's visible            */
  --ox: calc((var(--CW) - var(--IW)) / 2);          /* trims the sides on phones */
  --ink: #3A1029;
  --sage-ink: #626C58;
}

.stage--invite {
  z-index: 1;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}
.is-open .stage--invite { opacity: 1; visibility: visible; pointer-events: auto; }

/* soft, blurred copy of the artwork fills wide screens */
@media (min-width: 700px) {
.stage--invite::before {
  content: "";
  position: fixed;
  inset: -40px;
  z-index: -1;
  background: #E6DCCF url("images/backdrop.webp") center / cover no-repeat;
}
}

.invite {
  --art: url("images/invitation-art.webp");
  position: relative;
  width: var(--CW);
  height: var(--IH);
  overflow: hidden;
  color: var(--ink);
  box-shadow: 0 0 60px rgba(40, 20, 30, .25);
}
.stage--invite { --art: url("images/invitation-art.webp"); }
.art {
  position: absolute;
  top: 0;
  left: var(--ox);
  width: var(--IW);
  height: var(--IH);
  background: var(--art) center / 100% 100% no-repeat;
  will-change: transform, opacity;
  backface-visibility: hidden;
}
/* invisible: marks the arched card in the artwork for the flying card to land on */
.card {
  position: absolute;
  left: calc(var(--ox) + 128 * var(--S));
  top: calc(62 * var(--S));
  width: calc(615 * var(--S));
  height: calc(1486 * var(--S));
  pointer-events: none;
}
.particles--invite { z-index: 3; container-type: size; }

/* every text line is placed in artwork pixels */
.t {
  position: absolute;
  margin: 0;
  left: calc(var(--ox) + var(--x) * var(--S));
  top: calc(var(--y) * var(--S));
  font-size: calc(var(--fs) * var(--S));
  letter-spacing: calc(var(--ls) * 1em);
  line-height: 1;
  white-space: nowrap;
}
.t.c { transform: translateX(-50%); padding-left: calc(var(--ls) * 1em); }

.head, .info { position: absolute; inset: 0; z-index: 4; margin: 0; }
.names { margin: 0; font-weight: 400; }
.date-row { margin: 0; }

.save, .the-date {
  font-family: var(--text);
  font-weight: 500;
  text-transform: uppercase;
  color: var(--sage-ink);
}
.name {
  font-family: "DM Serif Display", "Bodoni Moda", "Didot", "Playfair Display", serif;
  font-weight: 400;
  text-transform: uppercase;
  color: var(--ink);
}
.amp {
  position: absolute;
  left: calc(var(--ox) + 346 * var(--S));
  top: calc(553 * var(--S));
  width: calc(188 * var(--S));
  height: auto;
}
.married, .month, .year, .venue {
  font-family: var(--text);
  text-transform: uppercase;
  color: var(--ink);
}
.married { font-weight: 600; }
.month, .year { font-weight: 700; }
.venue { font-weight: 600; }
.day {
  font-family: "DM Serif Display", "Bodoni Moda", "Didot", serif;
  color: var(--ink);
}
.time {
  font-family: var(--text);
  font-weight: 600;
  color: var(--ink);
}

.location {
  position: absolute;
  left: calc(var(--ox) + 163 * var(--S));
  top: calc(1159 * var(--S));
  width: calc(331 * var(--S));
  height: calc(63 * var(--S));
  display: flex;
  align-items: center;
  justify-content: center;
  gap: calc(16 * var(--S));
  border-radius: 999px;
  background: #4A2B40;
  border: max(1px, calc(2 * var(--S))) solid #CBAA7E;
  box-shadow: 0 calc(8 * var(--S)) calc(18 * var(--S)) -8px rgba(50, 20, 40, .55);
  color: #F4EADF;
  text-decoration: none;
  font-family: var(--text);
  font-weight: 700;
  font-size: calc(21.7 * var(--S));
  letter-spacing: .26em;
  text-transform: uppercase;
  white-space: nowrap;
  overflow: hidden;
  isolation: isolate;
  transition: background-color .3s ease, transform .2s ease;
}
.location .btn-label { margin-right: -.26em; }
.location::after { content: ""; position: absolute; inset: -8px; }
.location svg { flex: none; width: calc(28 * var(--S)); height: calc(28 * var(--S)); }
.location .pin { fill: #F4EADF; }
.location .pin .hole { fill: #4A2B40; }
.location .arrow { fill: none; stroke: #F4EADF; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.location:active { background: #5A3550; transform: scale(.98); }
@media (hover: hover) { .location:hover { background: #5A3550; } }
.location:focus-visible { outline: 1px solid var(--ink); outline-offset: 4px; }
.location::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(105deg, transparent 30%, rgba(255, 240, 215, .22) 50%, transparent 70%);
  translate: -120% 0;
  animation: sweep 6s ease-in-out 4s infinite;
}

.closing { margin: 0; }
.closing .t { font-family: var(--hand); color: var(--ink); }

.heart {
  position: absolute;
  left: calc(var(--ox) + 334 * var(--S));
  top: calc(1411 * var(--S));
  width: calc(25 * var(--S));
  fill: none;
  stroke: var(--ink);
  stroke-width: 1.5;
  transform-origin: 50% 60%;
}

.invite .again {
  position: absolute;
  z-index: 5;
  left: calc(var(--ox) + 346 * var(--S));
  top: calc(1468 * var(--S));
  transform: translateX(-50%);
  min-height: 36px;
  margin: 0;
  padding: 4px 16px;
  border-radius: 999px;
  color: var(--ink);
  background: rgba(246, 236, 225, .82);
  opacity: .9;
  font-size: max(11px, calc(22 * var(--S)));
}
.invite .again svg { stroke: var(--ink); }

/* ---- reveal choreography (plays each time the card lands) ---- */
@keyframes fadeUp   { from { opacity: 0; translate: 0 12px; } }
@keyframes fadeIn   { from { opacity: 0; } }
@keyframes nameIn   { from { opacity: 0; translate: 0 18px; } }
@keyframes ampIn    { from { opacity: 0; scale: .7; } }
@keyframes btnIn    { from { opacity: 0; translate: 0 10px; scale: .95; } }
@keyframes artIn    { from { opacity: 0; scale: 1.04; } }
@keyframes breathe2 { 0%, 100% { scale: 1; } 50% { scale: 1.012; } }
@keyframes beat     { 0%, 70%, 100% { scale: 1; } 78% { scale: 1.22; } 86% { scale: .95; } 92% { scale: 1.12; } }
@keyframes sweep    { 0%, 62% { translate: -120% 0; } 100% { translate: 120% 0; } }

.reveal .art       { animation: artIn 1.6s cubic-bezier(.22,.61,.36,1) both, breathe2 16s ease-in-out 2s infinite; }
.reveal .save      { animation: fadeUp 1s var(--ease-out) .35s both; }
.reveal .the-date  { animation: fadeUp 1s var(--ease-out) .48s both; }
.reveal .name--1   { animation: nameIn 1.2s var(--ease-out) .65s both; }
.reveal .amp       { animation: ampIn 1.1s var(--ease-out) .9s both; }
.reveal .name--2   { animation: nameIn 1.2s var(--ease-out) 1s both; }
.reveal .married   { animation: fadeUp 1s var(--ease-out) 1.25s both; }
.reveal .date-row  { animation: fadeUp .9s var(--ease-out) 1.45s both; }
.reveal .time      { animation: fadeUp .9s var(--ease-out) 1.57s both; }
.reveal .venue     { animation: fadeUp .9s var(--ease-out) 1.69s both; }
.reveal .location  { animation: btnIn 1s var(--ease-out) 1.85s both; }
.reveal .closing   { animation: fadeUp 1.1s var(--ease-out) 2.05s both; }
.reveal .heart     { animation: fadeIn .8s ease 2.35s both, beat 3.6s ease-in-out 3.2s infinite; }
.reveal .again     { animation: fadeIn 1s ease 2.7s both; }
.reveal .particles--invite { animation: fadeIn 2s ease 1.5s both; }

/* ---- the travelling card ---- */
.morph {
  position: fixed;
  z-index: 50;
  display: none;
  overflow: hidden;
  pointer-events: none;
  background: var(--cream);
  box-shadow: 0 30px 60px -20px rgba(20, 4, 12, .55);
}
.morph { transform-origin: 0 0; will-change: transform, opacity; box-shadow: 0 24px 50px -22px rgba(20, 4, 12, .45); }
.morph-face {
  position: fixed;
  z-index: 51;
  display: none;
  pointer-events: none;
  will-change: opacity;
}
.morph-face .letter-arch { position: absolute; inset: 0; }

/* ---- replay ---- */
.again {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 40px;
  margin-top: 0;
  padding: 4px 18px;
  border: 0;
  background: none;
  color: var(--cream);
  opacity: .78;
  font-family: var(--text);
  font-weight: 600;
  font-size: 13px;
  letter-spacing: .28em;
  text-transform: uppercase;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
}
.again svg { width: 15px; height: 15px; fill: none; stroke: #C9BDA5; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.again:focus-visible { outline: 1px solid var(--cream); outline-offset: 2px; border-radius: 999px; }
@media (hover: hover) { .again:hover { opacity: 1; } }

/* used while resetting so the envelope snaps shut without animating */
.no-motion, .no-motion * { transition: none !important; animation: none !important; }

/* =========================================================
   Reduced motion
   ========================================================= */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01s !important; animation-iteration-count: 1 !important; animation-delay: 0s !important; }
  .particles { display: none; }
}
