/* Monique & Jamal: digital invitation. Palette and type lifted from the
   printed suite (chocolate, ivory, brushed chrome, olive, latte) and the
   "Sculptural curves meets Modern European" mood board. */
.mj {
  --choc: #2e1e17;
  --cocoa: #3f2d24;
  --cocoa-2: #4a352b;
  --ivory: #f8f3e5;
  --ivory-2: #efe7d6;
  --cream: #f4f1ec;
  --ink: #2a190f;
  --muted: #6b5a4e;
  --olive: #899564;
  --latte: #c5a893;
  --line: rgba(63, 45, 36, 0.22);
  --chrome: linear-gradient(100deg, #6f6c69 0%, #c9c7c4 18%, #a9a7a4 38%, #f6f6f4 55%, #bdbbb8 72%, #7a7774 100%);
  --serif: "Cormorant Garamond", "Cormorant", Georgia, "Times New Roman", serif;
  --script: "Pinyon Script", "Snell Roundhand", cursive;
  font-family: var(--serif);
  color: var(--ink);
  background: var(--ivory);
  min-height: 100dvh;
  -webkit-font-smoothing: antialiased;
}
.mj *, .mj *::before, .mj *::after { box-sizing: border-box; }
.mj a { color: inherit; text-decoration: none; }
.mj img { max-width: 100%; display: block; }
.mj-script { font-family: var(--script); font-weight: 400; letter-spacing: 0; text-transform: none; }
.mj-caps { text-transform: uppercase; letter-spacing: 0.26em; font-size: 0.78rem; font-weight: 500; }
.mj-chrome-text { background: var(--chrome); -webkit-background-clip: text; background-clip: text; color: transparent; }

/* ---------- nav ---------- */
.mj-nav { position: fixed; inset: 0 0 auto 0; z-index: 40; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 0.9rem clamp(1rem, 4vw, 2.5rem); background: rgba(248, 243, 229, 0.86); backdrop-filter: blur(10px); border-bottom: 1px solid var(--line); }
.mj-nav__brand { font-family: var(--script); font-size: 1.7rem; text-decoration: none; line-height: 1; }
.mj-nav__links { display: flex; gap: clamp(0.9rem, 2.4vw, 2rem); overflow-x: auto; scrollbar-width: none; }
.mj-nav__links::-webkit-scrollbar { display: none; }
.mj-nav__link { text-decoration: none; text-transform: uppercase; letter-spacing: 0.24em; font-size: 0.72rem; white-space: nowrap; padding: 0.3rem 0; border-bottom: 1px solid transparent; transition: border-color 0.3s; }
.mj-nav__link:hover, .mj-nav__link[data-status="active"] { border-bottom-color: var(--cocoa); }
.mj-nav__rsvp { text-decoration: none; text-transform: uppercase; letter-spacing: 0.24em; font-size: 0.72rem; padding: 0.55rem 1.1rem; background: var(--cocoa); color: var(--cream); border-radius: 999px; white-space: nowrap; transition: background 0.3s; }
.mj-nav__rsvp:hover { background: var(--choc); }
@media (max-width: 720px) { .mj-nav__links { display: none; } }

/* ---------- envelope hero ---------- */
.mj-hero { position: relative; min-height: 100dvh; display: grid; place-items: center; text-align: center; padding: 6.5rem 1.25rem 3rem; overflow: hidden; background: radial-gradient(ellipse at 50% 28%, #fffdf8 0%, var(--ivory) 46%, #e6dcc7 100%); }
.mj-hero::before { content: ""; position: absolute; inset: -10%; background: repeating-linear-gradient(97deg, rgba(255, 255, 255, 0) 0 70px, rgba(110, 88, 66, 0.07) 70px 150px, rgba(255, 255, 255, 0.35) 150px 190px); filter: blur(22px); pointer-events: none; }
.mj-hero__inner { position: relative; width: 100%; max-width: 640px; }
.mj-hero__eyebrow { margin: 0; }
.mj-hero__names { margin: 0.4rem 0 0; font-family: var(--script); font-weight: 400; font-size: clamp(3rem, 9vw, 5.2rem); line-height: 1.05; color: var(--cocoa); }
.mj-hero__hint { margin: 1.6rem 0 0; color: var(--muted); }
.mj-hero__date { margin: 0.6rem 0 0; font-size: 1.15rem; letter-spacing: 0.35em; }

.mj-env { position: relative; display: block; width: min(86vw, 520px); aspect-ratio: 1.42; margin: 2.6rem auto 0; padding: 0; border: 0; background: none; cursor: pointer; perspective: 1600px; }
.mj-env:focus-visible { outline: 2px solid var(--olive); outline-offset: 8px; }
.mj-env__back { position: absolute; inset: 0; z-index: 0; border-radius: 3px; background: var(--cocoa); box-shadow: 0 34px 60px -24px rgba(46, 30, 23, 0.6), 0 2px 0 rgba(255, 255, 255, 0.04) inset; }
.mj-env__flap { position: absolute; left: 0; right: 0; top: 0; height: 56%; z-index: 3; transform-origin: 50% 0; transition: transform 0.9s cubic-bezier(0.6, 0.05, 0.3, 1), z-index 0s linear 0.45s; transform-style: preserve-3d; }
.mj-env__flap::before { content: ""; position: absolute; inset: 0; clip-path: polygon(0 0, 100% 0, 50% 100%); background: linear-gradient(180deg, #3b2921 0%, var(--choc) 100%); filter: drop-shadow(0 6px 8px rgba(0, 0, 0, 0.25)); }
.mj-env__flap::after { content: ""; position: absolute; inset: 4px 4px 0 4px; clip-path: polygon(0 0, 100% 0, 50% 100%); background: radial-gradient(circle at 30% 20%, #f2eee6 0%, var(--latte) 38%, var(--olive) 70%, var(--cocoa) 100%); transform: rotateX(180deg); backface-visibility: hidden; }
.mj-env__card { position: absolute; left: 7%; right: 7%; top: 7%; bottom: 7%; z-index: 1; display: grid; place-content: center; gap: 0.35rem; padding: 1rem; background: var(--ivory); color: var(--cocoa); box-shadow: 0 8px 18px rgba(0, 0, 0, 0.18); transition: transform 1s cubic-bezier(0.3, 0.7, 0.2, 1) 0.55s; }
.mj-env__card-names { font-family: var(--script); font-size: clamp(1.6rem, 5vw, 2.4rem); line-height: 1; }
.mj-env__front { position: absolute; inset: 0; z-index: 2; border-radius: 3px; clip-path: polygon(0 0, 50% 54%, 100% 0, 100% 100%, 0 100%); background: linear-gradient(160deg, var(--cocoa-2) 0%, var(--cocoa) 60%, #382821 100%); }
.mj-env__front::after { content: ""; position: absolute; inset: 0; background: linear-gradient(32deg, transparent 49.6%, rgba(0, 0, 0, 0.22) 50%, transparent 50.6%), linear-gradient(-32deg, transparent 49.6%, rgba(0, 0, 0, 0.22) 50%, transparent 50.6%); }
.mj-env__seal { position: absolute; left: 50%; top: 56%; z-index: 5; width: 21%; transform: translate(-50%, -50%); transition: opacity 0.4s ease, transform 0.5s ease; filter: drop-shadow(0 6px 10px rgba(0, 0, 0, 0.35)); }
.mj-env:hover .mj-env__seal { transform: translate(-50%, -50%) scale(1.05) rotate(-4deg); }
.mj-env.is-open .mj-env__seal { opacity: 0; transform: translate(-50%, -50%) scale(0.6); }
.mj-env.is-open .mj-env__flap { transform: rotateX(180deg); z-index: 0; }
.mj-env.is-open .mj-env__card { transform: translateY(-62%); }
.mj-scroll-cue { display: inline-flex; flex-direction: column; align-items: center; gap: 0.5rem; margin-top: 2.2rem; padding: 0.4rem 0.8rem; border: 0; background: none; color: var(--cocoa); cursor: pointer; font-family: var(--serif); }
.mj-scroll-cue__line { width: 1px; height: 38px; background: linear-gradient(var(--cocoa), transparent); }

/* ---------- suite (flat lay) ---------- */
.mj-suite { position: relative; padding: clamp(4rem, 9vw, 7rem) clamp(1rem, 4vw, 2.5rem) clamp(5rem, 9vw, 8rem); background: linear-gradient(180deg, #e6dcc7 0%, var(--ivory-2) 22%, var(--ivory-2) 100%); }
.mj-suite__head { text-align: center; margin: 0 auto 3.2rem; max-width: 640px; }
.mj-suite__title { margin: 0.3rem 0 0; font-weight: 400; font-size: clamp(2.2rem, 5vw, 3.4rem); letter-spacing: 0.06em; text-transform: uppercase; }
.mj-suite__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: clamp(1rem, 2.5vw, 2rem); max-width: 1120px; margin: 0 auto; align-items: start; }
.mj-piece { position: relative; display: block; text-decoration: none; color: inherit; transition: transform 0.5s cubic-bezier(0.2, 0.8, 0.2, 1), box-shadow 0.5s; box-shadow: 0 18px 30px -18px rgba(46, 30, 23, 0.55); }
.mj-piece__tag { position: absolute; left: 50%; bottom: -2.1rem; transform: translateX(-50%); white-space: nowrap; color: var(--muted); }

.mj-piece--invite { grid-column: 1 / span 5; grid-row: 1 / span 2; aspect-ratio: 5 / 7; transform: rotate(-2.5deg); background: var(--cocoa); color: var(--cream); display: grid; place-content: center; text-align: center; gap: 0.6rem; padding: 2rem 1.4rem; }
.mj-piece--invite:hover { transform: rotate(0deg) translateY(-8px); }
.mj-piece--details { grid-column: 6 / span 4; aspect-ratio: 5 / 7; transform: rotate(2deg) translateY(1.5rem); background: var(--ivory); border: 1px solid var(--line); display: grid; align-content: center; justify-items: center; text-align: center; gap: 0.5rem; padding: 1.6rem 1.2rem; }
.mj-piece--details:hover { transform: rotate(-1deg) translateY(0.6rem); }
.mj-piece--rsvp { grid-column: 10 / span 3; aspect-ratio: 3 / 2; margin-top: 2rem; transform: rotate(-4deg); background: center / cover url("https://d2ol7oe51mr4n9.cloudfront.net/user_3FySxLOFhInxwY7v8JiW1yFeDXI/2037e340-57de-4df3-8090-60a6b2281de4.jpg"); color: #6d6a67; display: grid; place-content: center; text-align: center; gap: 0.2rem; padding: 1rem; }
.mj-piece--rsvp:hover { transform: rotate(2deg) scale(1.04); }
.mj-piece--dress { grid-column: 10 / span 3; aspect-ratio: 3 / 4; margin-top: 3.5rem; transform: rotate(3deg); background: var(--olive); color: var(--cream); border-radius: 999px 999px 6px 6px; display: grid; place-content: center; text-align: center; gap: 0.4rem; padding: 1.4rem; }
.mj-piece--dress:hover { transform: rotate(-2deg) translateY(-6px); }
.mj-piece--notes { grid-column: 6 / span 4; aspect-ratio: 7 / 5; margin-top: 4rem; transform: rotate(-1.5deg); background: var(--latte); color: var(--ink); display: grid; place-content: center; text-align: center; gap: 0.4rem; padding: 1.4rem; }
.mj-piece--notes::before { content: ""; position: absolute; inset: 0; clip-path: polygon(0 0, 50% 46%, 100% 0); background: rgba(46, 30, 23, 0.1); }
.mj-piece--notes:hover { transform: rotate(1.5deg) translateY(-6px); }
.mj-seal-deco { grid-column: 3 / span 2; width: 96px; margin: 3rem auto 0; transform: rotate(-10deg); filter: drop-shadow(0 8px 12px rgba(0, 0, 0, 0.3)); }
@media (max-width: 860px) {
  .mj-suite__grid { grid-template-columns: 1fr 1fr; gap: 3.6rem 1.4rem; }
  .mj-piece--invite { grid-column: 1 / -1; grid-row: auto; width: min(100%, 360px); justify-self: center; }
  .mj-piece--details { grid-column: 1 / -1; width: min(86%, 320px); justify-self: center; }
  .mj-piece--rsvp, .mj-piece--dress { grid-column: span 1; margin-top: 0; }
  .mj-piece--notes { grid-column: 1 / -1; width: min(92%, 380px); justify-self: center; margin-top: 0; }
  .mj-seal-deco { grid-column: 1 / -1; margin-top: 0; }
}

/* ---------- invitation card (shared) ---------- */
.mj-invite { position: relative; width: min(100%, 480px); aspect-ratio: 5 / 7; margin: 0 auto; background: var(--cocoa); color: var(--cream); display: grid; align-content: center; justify-items: center; text-align: center; gap: 0.7rem; padding: 2.4rem 1.6rem; box-shadow: 0 40px 70px -30px rgba(46, 30, 23, 0.7); }
.mj-emboss { font-family: var(--script); color: var(--cocoa); text-shadow: -1px -1px 1px rgba(0, 0, 0, 0.45), 1px 1px 1px rgba(255, 255, 255, 0.08); line-height: 1; }
.mj-invite__mono { font-size: clamp(4rem, 14vw, 5.5rem); margin-bottom: 0.4rem; }
.mj-invite__names { font-family: var(--script); font-size: clamp(1.9rem, 6vw, 2.6rem); line-height: 1.15; margin: 0; font-weight: 400; }
.mj-invite__amp { font-family: var(--script); font-size: 1.6rem; }
.mj-invite__date { font-size: clamp(1.3rem, 4vw, 1.7rem); letter-spacing: 0.35em; margin: 0.4rem 0 0; }
.mj-invite__venue { font-family: var(--script); font-size: 1.6rem; margin: 0; }

/* ---------- inner pages ---------- */
.mj-page { padding: clamp(6.5rem, 12vw, 9rem) clamp(1.1rem, 5vw, 3rem) 5rem; }
.mj-page__head { text-align: center; max-width: 760px; margin: 0 auto 3.5rem; }
.mj-page__title { margin: 0.5rem 0 0; font-weight: 400; font-size: clamp(2.4rem, 6vw, 4rem); letter-spacing: 0.05em; text-transform: uppercase; line-height: 1.05; }
.mj-page__script { margin: 0.4rem 0 0; font-family: var(--script); font-size: clamp(1.8rem, 4.5vw, 2.6rem); color: var(--cocoa); }
.mj-prose { max-width: 620px; margin: 0 auto; font-size: 1.22rem; line-height: 1.7; text-align: center; }
.mj-prose p { margin: 0 0 1rem; }
.mj-split { display: grid; grid-template-columns: 1.05fr 1fr; gap: clamp(2rem, 5vw, 4.5rem); max-width: 1120px; margin: 0 auto; align-items: center; }
@media (max-width: 860px) { .mj-split { grid-template-columns: 1fr; } }
.mj-timeline { list-style: none; margin: 0 auto; padding: 0; max-width: 560px; }
.mj-timeline li { display: grid; grid-template-columns: 9.5rem 1fr; gap: 1rem; padding: 1.2rem 0; border-top: 1px solid var(--line); align-items: baseline; }
.mj-timeline li:last-child { border-bottom: 1px solid var(--line); }
.mj-timeline__time { text-transform: uppercase; letter-spacing: 0.22em; font-size: 0.8rem; color: var(--muted); }
.mj-timeline__what { font-size: 1.5rem; }
.mj-figure { margin: 0; background: var(--ivory); padding: clamp(0.8rem, 2vw, 1.4rem); border: 1px solid var(--line); box-shadow: 0 24px 40px -28px rgba(46, 30, 23, 0.5); }
.mj-figure--tilt { transform: rotate(1.2deg); }
.mj-figure figcaption { margin-top: 0.8rem; text-align: center; color: var(--muted); }
.mj-band { margin: 4.5rem auto 0; max-width: 1120px; }
.mj-notes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1.4rem, 3vw, 2.4rem); max-width: 1120px; margin: 0 auto; }
@media (max-width: 860px) { .mj-notes { grid-template-columns: 1fr; } }
.mj-note { background: var(--ivory); border: 1px solid var(--line); padding: 2.2rem 1.6rem; text-align: center; }
.mj-note:nth-child(2) { background: var(--cocoa); color: var(--cream); border-color: transparent; }
.mj-note__title { margin: 0 0 0.6rem; font-family: var(--script); font-weight: 400; font-size: 2.2rem; }
.mj-note p { margin: 0; font-size: 1.15rem; line-height: 1.65; }

/* bespoke actions, one per job */
.mj-act-map { display: inline-flex; align-items: center; gap: 0.6rem; margin-top: 1.4rem; padding: 0.85rem 1.5rem; border: 1px solid var(--cocoa); text-decoration: none; text-transform: uppercase; letter-spacing: 0.24em; font-size: 0.75rem; transition: background 0.3s, color 0.3s; }
.mj-act-map:hover { background: var(--cocoa); color: var(--cream); }
.mj-act-cal { display: inline-block; margin-top: 2rem; padding: 0.9rem 1.6rem; background: var(--chrome); color: var(--ink); text-decoration: none; text-transform: uppercase; letter-spacing: 0.24em; font-size: 0.75rem; border-radius: 2px; box-shadow: 0 10px 20px -12px rgba(0, 0, 0, 0.5); transition: transform 0.3s; }
.mj-act-cal:hover { transform: translateY(-2px); }
.mj-act-next { display: inline-block; margin-top: 2rem; font-family: var(--script); font-size: 1.9rem; text-decoration: none; border-bottom: 1px solid var(--line); }

.mj-countdown { margin-top: 2.6rem; text-align: center; }
.mj-countdown__num { font-size: clamp(3rem, 9vw, 4.6rem); line-height: 1; letter-spacing: 0.05em; }

/* ---------- RSVP ---------- */
.mj-rsvp { max-width: 640px; margin: 0 auto; background: var(--cocoa); color: var(--cream); padding: clamp(2rem, 6vw, 3.4rem) clamp(1.4rem, 5vw, 3rem); box-shadow: 0 40px 70px -34px rgba(46, 30, 23, 0.75); }
.mj-rsvp__chrome { height: 10px; margin: -0.2rem 0 2rem; background: center / cover url("https://d2ol7oe51mr4n9.cloudfront.net/user_3FySxLOFhInxwY7v8JiW1yFeDXI/2037e340-57de-4df3-8090-60a6b2281de4.jpg"); }
.mj-field { display: grid; gap: 0.5rem; margin-bottom: 1.8rem; }
.mj-field__label { text-transform: uppercase; letter-spacing: 0.26em; font-size: 0.74rem; color: var(--latte); }
.mj-input, .mj-textarea { width: 100%; font: inherit; font-size: 1.25rem; color: var(--cream); background: transparent; border: 0; border-bottom: 1px solid rgba(244, 241, 236, 0.4); padding: 0.5rem 0; outline: none; transition: border-color 0.3s; }
.mj-textarea { min-height: 5.5rem; resize: vertical; }
.mj-input:focus, .mj-textarea:focus { border-bottom-color: var(--cream); }
.mj-input::placeholder, .mj-textarea::placeholder { color: rgba(244, 241, 236, 0.4); }
.mj-choice { display: grid; grid-template-columns: 1fr 1fr; gap: 0.9rem; }
@media (max-width: 520px) { .mj-choice { grid-template-columns: 1fr; } }
.mj-choice__opt { position: relative; display: grid; gap: 0.2rem; justify-items: center; padding: 1.2rem 0.8rem; border: 1px solid rgba(244, 241, 236, 0.35); cursor: pointer; text-align: center; transition: background 0.3s, border-color 0.3s, color 0.3s; }
.mj-choice__opt input { position: absolute; opacity: 0; pointer-events: none; }
.mj-choice__opt:has(input:checked) { background: var(--cream); color: var(--cocoa); border-color: var(--cream); }
.mj-choice__opt:has(input:focus-visible) { outline: 2px solid var(--latte); outline-offset: 3px; }
.mj-choice__big { font-family: var(--script); font-size: 1.9rem; line-height: 1.1; }
.mj-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.mj-send { display: block; width: 100%; margin-top: 0.6rem; padding: 1.1rem; border: 0; cursor: pointer; background: var(--chrome); color: var(--ink); font: inherit; text-transform: uppercase; letter-spacing: 0.3em; font-size: 0.8rem; transition: filter 0.3s, transform 0.3s; }
.mj-send:hover { filter: brightness(1.06); transform: translateY(-1px); }
.mj-send:disabled { opacity: 0.6; cursor: wait; }
.mj-error { color: #f1c6b8; margin: 0 0 1rem; }
.mj-thanks { text-align: center; padding: 1rem 0; }
.mj-thanks__big { font-family: var(--script); font-size: clamp(2.6rem, 8vw, 3.6rem); line-height: 1.1; margin: 0.6rem 0; }

/* ---------- footer ---------- */
.mj-footer { background: var(--choc); color: var(--cream); text-align: center; padding: 4.5rem 1.2rem 3.5rem; }
.mj-footer__amore { margin: 0; font-family: var(--script); font-size: clamp(2.8rem, 8vw, 4.4rem); }
.mj-footer__back { display: inline-block; margin-top: 1.4rem; text-decoration: none; border-bottom: 1px solid rgba(244, 241, 236, 0.35); padding-bottom: 0.2rem; }

/* gentle entrance, transform only (content never hidden) */
@keyframes mj-rise { from { transform: translateY(14px); } to { transform: translateY(0); } }
.mj-rise { animation: mj-rise 0.9s cubic-bezier(0.2, 0.8, 0.2, 1) both; }
@media (prefers-reduced-motion: reduce) {
  .mj-rise, .mj-env__flap, .mj-env__card, .mj-env__seal, .mj-piece { animation: none !important; transition: none !important; }
}

[hidden]{display:none !important}
.mj .mj-env{font-family:var(--serif);color:var(--cocoa);width:min(80vw,460px);margin-top:clamp(7.5rem,20vh,10rem)}
.mj .mj-env__card{align-content:start;padding-top:1.4rem}
.mj .mj-env.is-open .mj-env__card{transform:translateY(-46%)}
.mj .mj-nav__rsvp{color:var(--cream)}
.mj .mj-piece--invite{color:var(--cream)}
.mj .mj-piece--rsvp{color:#5f5c59}
.mj-gated .mj-nav,.mj-gated .mj-suite,.mj-gated .mj-footer{display:none}
.mj-gated .mj-hero{padding-top:3rem}
.mj-gated .mj-scroll-cue{display:none !important}
.mj-hero__hint{font-size:.95rem;letter-spacing:.3em;color:var(--ink)}
.mj-nav__link.is-active{border-bottom-color:var(--cocoa)}
.mj-env__card-names,.mj-hero__names{display:block}

.mj .mj-env__back{background:var(--cocoa) url("https://d2ol7oe51mr4n9.cloudfront.net/user_3FySxLOFhInxwY7v8JiW1yFeDXI/8bab0055-3a39-4aa5-b806-73e17811effd.jpg") center 35%/cover no-repeat;box-shadow:0 34px 60px -24px rgba(46,30,23,.6), inset 0 0 0 7px var(--cocoa)}
.mj .mj-env__flap::after{background:url("https://d2ol7oe51mr4n9.cloudfront.net/user_3FySxLOFhInxwY7v8JiW1yFeDXI/8bab0055-3a39-4aa5-b806-73e17811effd.jpg") center 20%/cover no-repeat}

.mj .mj-env.is-open .mj-env__card{transform:translateY(-30%)}
.mj-hero__eyebrow,.mj-hero__names{transition:opacity .6s ease,transform .6s ease}
.mj-hero__inner.is-opening .mj-hero__eyebrow,.mj-hero__inner.is-opening .mj-hero__names{opacity:0;transform:translateY(-14px)}
.mj .mj-caps{font-size:.86rem}
.mj-footer .mj-caps{font-size:1.1rem;letter-spacing:.28em}
.mj-footer__back.mj-caps{font-size:.9rem}
.mj-suite__head .mj-caps{font-size:1rem}

.mj .mj-env.is-open:focus-visible{outline:none}

/* ---------- mobile flow ---------- */
.mj-dress__hint{display:none}
@media (max-width:720px){
  .mj-nav{flex-wrap:wrap;row-gap:.35rem;padding:.7rem 1rem .55rem}
  .mj-nav__brand{order:1}
  .mj .mj-nav__rsvp{order:2;padding:.5rem 1rem}
  .mj-nav__links{display:flex;order:3;width:100%;justify-content:space-between;gap:1rem;padding:.15rem 0 .1rem;border-top:1px solid var(--line);padding-top:.5rem}
  .mj-nav__link{font-size:.66rem;letter-spacing:.18em}
  .mj-page{padding-top:8.2rem}
  .mj-gated .mj-hero{padding:2.5rem 1rem 2rem}
  .mj-hero__names{font-size:clamp(2.6rem,12vw,3.4rem)}
  .mj .mj-env{width:86vw;margin-top:clamp(6rem,17vh,8rem)}
  .mj .mj-env.is-open .mj-env__card{transform:translateY(-52%)}
  .mj-env__card-names{font-size:1.7rem}
  .mj-hero__hint{font-size:.8rem}
  .mj-suite{padding:3.2rem 1.1rem 4.5rem}
  .mj-suite__head{margin-bottom:2.4rem}
  .mj-suite__head .mj-caps{font-size:.82rem;line-height:1.7}
  .mj-suite__grid{grid-template-columns:1fr;gap:4rem}
  .mj-piece--invite,.mj-piece--details,.mj-piece--notes,.mj-piece--rsvp,.mj-piece--dress{grid-column:1 / -1;justify-self:center;margin-top:0}
  .mj-piece--invite{width:84%}
  .mj-piece--details{width:76%}
  .mj-piece--rsvp{width:82%}
  .mj-piece--notes{width:88%}
  .mj-piece--dress{width:62%}
  .mj-seal-deco{width:72px;margin:-1.5rem auto -1.5rem}
  .mj-piece__tag{font-size:.74rem}
  .mj-timeline li{grid-template-columns:5.5rem 1fr;gap:.8rem}
  .mj-timeline__what{font-size:1.3rem}
  .mj-prose{font-size:1.12rem}
  .mj-split{gap:2.4rem}
  .mj-figure--tilt{transform:none}
  .mj-dress{margin-left:-1.1rem;margin-right:-1.1rem;padding:.6rem;border-left:0;border-right:0}
  .mj-dress__hint{display:block}
  .mj-notes{gap:1.2rem}
  .mj-note{padding:1.8rem 1.3rem}
  .mj-rsvp{padding:1.8rem 1.2rem}
  .mj-input,.mj-textarea{font-size:1.15rem}
  .mj-footer{padding:3.5rem 1rem 3rem}
  .mj-footer__line span{display:block}
  .mj-footer__dot{display:none !important}
  .mj-footer__line span+span+span{margin-top:.5rem}
  .mj-act-cal{padding:.9rem 1.1rem;letter-spacing:.18em}
}

/* countdown */
.mj-countdown__lead{margin:0 0 1.1rem}
.mj-clock{display:flex;justify-content:center;align-items:flex-start;gap:clamp(.6rem,2.4vw,1.6rem)}
.mj-clock__unit{display:grid;justify-items:center;gap:.45rem;min-width:3.4ch}
.mj-clock__num{font-size:clamp(2.6rem,8vw,4.4rem);line-height:1;font-variant-numeric:lining-nums tabular-nums;font-feature-settings:"lnum" 1,"tnum" 1;color:var(--cocoa)}
.mj-clock__sep{font-size:clamp(2rem,6vw,3.4rem);line-height:1;color:var(--latte);transform:translateY(-.15em)}
.mj .mj-clock__lbl{font-size:.68rem;letter-spacing:.26em;color:var(--muted)}
/* zoom */
img[data-zoom]{cursor:zoom-in}
.mj-zoom-hint{text-transform:none;letter-spacing:.05em}
.mj-lightbox{position:fixed;inset:0;z-index:100;background:rgba(30,20,15,.92);display:grid;grid-template-rows:auto 1fr auto;opacity:0;transition:opacity .25s ease}
.mj-lightbox.is-in{opacity:1}
.mj-lightbox[hidden]{display:none}
.mj-lightbox__close{justify-self:end;margin:.6rem .8rem 0;width:44px;height:44px;border:1px solid rgba(244,241,236,.4);border-radius:999px;background:transparent;color:var(--cream);font-size:1.6rem;line-height:1;cursor:pointer}
.mj-lightbox__stage{overflow:auto;display:grid;place-items:center;padding:1rem;-webkit-overflow-scrolling:touch}
.mj-lightbox__stage img{max-width:100%;max-height:calc(100dvh - 8rem);object-fit:contain;cursor:zoom-in;box-shadow:0 30px 60px -20px rgba(0,0,0,.6)}
.mj-lightbox.is-zoomed .mj-lightbox__stage{place-items:start}
.mj-lightbox.is-zoomed .mj-lightbox__stage img{max-width:none;max-height:none;width:min(2400px,260vw);cursor:zoom-out}
.mj .mj-lightbox__hint{color:rgba(244,241,236,.6);text-align:center;margin:.4rem 0 1rem;font-size:.7rem}
/* guests */
.mj-guests{display:grid;gap:.9rem}
.mj-guest{position:relative}
.mj-guest .mj-input{padding-right:2.4rem}
.mj-guest__x{position:absolute;right:0;bottom:.35rem;width:32px;height:32px;border:0;background:transparent;color:var(--latte);font-size:1.4rem;cursor:pointer}
.mj-addguest{justify-self:start;margin-top:.9rem;padding:.4rem 0;border:0;border-bottom:1px solid rgba(197,168,147,.5);background:transparent;color:var(--latte);font-family:var(--serif);font-size:1.05rem;font-style:italic;cursor:pointer}
.mj-addguest:hover{color:var(--cream)}
.mj-addguest[hidden]{display:none}
.mj-lightbox{background:rgba(30,20,15,.97);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}

/* ---------- envelope v2: choreographed ---------- */
.mj .mj-env{perspective:1800px;transform-style:preserve-3d;-webkit-tap-highlight-color:transparent}
.mj .mj-env:focus-visible{outline:2px solid var(--olive);outline-offset:10px}
.mj .mj-env__flap,.mj .mj-env__card,.mj .mj-env__seal{transition:none}
.mj .mj-env__flap::before,.mj .mj-env__flap::after{content:none}
.mj .mj-env__flap{transform-style:preserve-3d}
.mj-flap__out,.mj-flap__in,.mj-flap__shade{position:absolute;inset:0;clip-path:polygon(0 0,100% 0,50% 100%);backface-visibility:hidden;-webkit-backface-visibility:hidden}
.mj-flap__out{background:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .55 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.35'/%3E%3C/svg%3E"),linear-gradient(180deg,#3d2a22 0%,#33231b 70%,#2c1e17 100%)}
.mj-flap__out::after{content:"";position:absolute;inset:0;clip-path:polygon(0 0,100% 0,50% 100%);background:linear-gradient(180deg,rgba(255,255,255,.07),transparent 18%)}
.mj-env__flap{filter:drop-shadow(0 7px 7px rgba(0,0,0,.28))}
.mj-flap__in{transform:rotateX(180deg);background:url("https://d2ol7oe51mr4n9.cloudfront.net/user_3FySxLOFhInxwY7v8JiW1yFeDXI/8bab0055-3a39-4aa5-b806-73e17811effd.jpg") center 25%/cover no-repeat;inset:3px 3px 0 3px}
.mj-flap__shade{background:#140b07;opacity:0}
.mj .mj-env__back{background:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .55 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.35'/%3E%3C/svg%3E"),var(--cocoa) url("https://d2ol7oe51mr4n9.cloudfront.net/user_3FySxLOFhInxwY7v8JiW1yFeDXI/8bab0055-3a39-4aa5-b806-73e17811effd.jpg") center 35%/cover no-repeat;background-blend-mode:normal}
.mj .mj-env__front{background:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .55 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.35'/%3E%3C/svg%3E"),linear-gradient(160deg,var(--cocoa-2) 0%,var(--cocoa) 60%,#382821 100%)}
.mj .mj-env__card{align-content:center;gap:.45rem;padding:1.2rem 1rem;background:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .55 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.35'/%3E%3C/svg%3E"),linear-gradient(180deg,#fbf8ef,#f4eedf);transform-origin:50% 50%;will-change:transform}
.mj-card__shadow{position:absolute;inset:0 0 auto 0;height:55%;background:linear-gradient(180deg,rgba(20,11,7,.35),transparent);pointer-events:none}
.mj-card__mono{font-size:2.4rem;color:#efe6d3;text-shadow:-1px -1px 0 rgba(255,255,255,.9),1px 1px 1px rgba(63,45,36,.25);line-height:1}
.mj-card__venue{font-family:var(--script);font-size:1.25rem;color:var(--cocoa)}
.mj-seal{position:absolute;left:50%;top:56%;z-index:5;width:21%;aspect-ratio:1;transform:translate(-50%,-50%);filter:drop-shadow(0 6px 10px rgba(0,0,0,.35))}
.mj-seal__half{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.mj-seal__half--l{clip-path:polygon(0 0,53% 0,47% 22%,56% 41%,46% 61%,55% 79%,49% 100%,0 100%)}
.mj-seal__half--r{clip-path:polygon(53% 0,100% 0,100% 100%,49% 100%,55% 79%,46% 61%,56% 41%,47% 22%)}
.mj-seal__glint{position:absolute;inset:18%;border-radius:50%;overflow:hidden;pointer-events:none}
.mj-seal__glint::after{content:"";position:absolute;inset:-40%;background:linear-gradient(115deg,transparent 40%,rgba(255,255,255,.75) 50%,transparent 60%);transform:translateX(-120%);animation:mj-glint 4.2s ease-in-out 1.2s infinite}
@keyframes mj-glint{0%,55%{transform:translateX(-120%)}80%,100%{transform:translateX(120%)}}
.mj-env:hover .mj-seal{transform:translate(-50%,-50%) scale(1.04)}
.mj .mj-env:hover .mj-env__seal{transform:none}
.mj .mj-env.is-open .mj-env__card{transform:none}
@media (max-width:720px){.mj-card__mono{font-size:1.9rem}.mj-card__venue{font-size:1.05rem}}
@media (prefers-reduced-motion:reduce){.mj-seal__glint::after{animation:none}}

.mj .mj-env__flap{filter:none}
.mj-flap__out{box-shadow:none}
.mj .mj-env__card{background:linear-gradient(180deg,#fdfaf2,#f6f0e2)}
@media (max-width:720px){.mj-suite{scroll-margin-top:4.6rem}}

/* ---------- v10: exact Canva artwork ---------- */
.mj-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
/* envelope card = Canva invitation front */
.mj .mj-env__card{left:28%;right:auto;width:44%;top:6%;bottom:auto;aspect-ratio:5/7;padding:0;background:#3f2d24;display:block;overflow:hidden}
.mj-env__cardimg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
/* suite tiles = real cards */
.mj .mj-piece{padding:0;background:none;border:0;display:block}
.mj .mj-piece::before{content:none}
.mj .mj-piece img{width:100%;height:auto;display:block;box-shadow:0 22px 36px -20px rgba(46,30,23,.6)}
.mj .mj-piece{box-shadow:none;aspect-ratio:auto;border-radius:0}
.mj .mj-piece--invite{grid-column:1 / span 4;grid-row:1 / span 2}
.mj .mj-piece--details{grid-column:5 / span 4;transform:rotate(2deg) translateY(1.2rem)}
.mj .mj-piece--rsvp{grid-column:9 / span 4;margin-top:1.5rem}
.mj .mj-piece--notes{grid-column:9 / span 3;margin-top:2rem;transform:rotate(-2deg)}
.mj .mj-piece--dress{grid-column:4 / span 5;margin-top:2.5rem;transform:rotate(1.5deg);border-radius:0}
.mj .mj-seal-deco{grid-column:1 / span 2;margin-top:2rem}
/* card pages */
.mj-cardimg{margin:0 auto;text-align:center}
.mj-cardimg img{margin:0 auto;box-shadow:0 40px 70px -32px rgba(46,30,23,.7)}
.mj-cardimg--portrait img{width:min(100%,560px)}
.mj-cardimg--wide img{width:min(100%,1100px)}
.mj-cardimg figcaption{margin-top:1rem;color:var(--muted)}
.mj-cardimg.mj-band{margin-top:3.5rem}
/* RSVP = Canva chrome card */
.mj .mj-rcard{position:relative;max-width:680px;background:#c9c7c4 url("https://d2ol7oe51mr4n9.cloudfront.net/user_3FySxLOFhInxwY7v8JiW1yFeDXI/b8701d02-a468-40a9-9f4a-b3bcc441ef5a.jpg") center/cover;color:#5d5a57;box-shadow:0 40px 70px -32px rgba(46,30,23,.55);padding:clamp(1.8rem,5vw,3rem) clamp(1.4rem,6vw,3.6rem)}
.mj-rcard__head{text-align:center;margin-bottom:1.6rem}
.mj-rcard__mono{margin:0;font-family:var(--script);font-size:clamp(3.2rem,10vw,4.6rem);line-height:1;color:#8c8986;text-shadow:0 1px 0 rgba(255,255,255,.6)}
.mj .mj-rcard__by{margin:.6rem 0 0;font-size:.72rem;line-height:1.8;color:#77736f}
.mj .mj-rcard .mj-field__label{color:#6a6662;font-size:.74rem}
.mj .mj-rcard .mj-input,.mj .mj-rcard .mj-textarea{color:#3f2d24;border-bottom:1px solid rgba(90,86,82,.55)}
.mj .mj-rcard .mj-input:focus,.mj .mj-rcard .mj-textarea:focus{border-bottom-color:#3f2d24}
.mj .mj-rcard .mj-input::placeholder{color:rgba(90,86,82,.55)}
.mj .mj-rcard .mj-textarea{min-height:4.2rem;background:repeating-linear-gradient(transparent 0 2.05rem,rgba(90,86,82,.45) 2.05rem 2.1rem)}
.mj .mj-rcard .mj-choice{grid-template-columns:1fr 1fr;gap:1rem}
.mj .mj-rcard .mj-choice__opt{display:flex;align-items:center;gap:.75rem;justify-items:start;padding:.5rem 0;border:0;background:transparent;color:#5d5a57;text-align:left}
.mj .mj-rcard .mj-choice__opt:has(input:checked){background:transparent;color:#3f2d24}
.mj-box{width:18px;height:18px;flex:none;border:1px solid #6a6662;position:relative}
.mj-choice__opt:has(input:checked) .mj-box::after{content:"";position:absolute;left:5px;top:1px;width:5px;height:10px;border:solid #3f2d24;border-width:0 2px 2px 0;transform:rotate(45deg)}
.mj .mj-choice__lbl{font-size:.78rem;letter-spacing:.22em}
.mj .mj-rcard .mj-addguest{color:#5d5a57;border-bottom-color:rgba(90,86,82,.5)}
.mj .mj-rcard .mj-guest__x{color:#6a6662}
.mj .mj-rcard .mj-send{background:#3f2d24;color:#f4f1ec}
.mj .mj-rcard .mj-error{color:#7a2a1a}
.mj .mj-rcard .mj-thanks__big{color:#3f2d24}
@media (max-width:720px){
  .mj .mj-piece--invite,.mj .mj-piece--details,.mj .mj-piece--notes{width:80%}
  .mj .mj-piece--rsvp{width:88%}
  .mj .mj-piece--dress{width:94%}
  .mj .mj-env__card{left:29%;width:42%}
  .mj .mj-rcard .mj-choice{grid-template-columns:1fr}
}

/* v11: RSVP uses the real Canva card head, suite rebalanced */
.mj .mj-rcard{background:url("https://d2ol7oe51mr4n9.cloudfront.net/user_3FySxLOFhInxwY7v8JiW1yFeDXI/20da7cb4-9af9-46ff-9c4d-51677026b909.jpg") top center/100% auto no-repeat,#c9c7c4 url("https://d2ol7oe51mr4n9.cloudfront.net/user_3FySxLOFhInxwY7v8JiW1yFeDXI/b8701d02-a468-40a9-9f4a-b3bcc441ef5a.jpg") center/cover;padding-top:calc(37% + .5rem)}
.mj .mj-thanks{padding-top:0}
.mj .mj-suite__grid{grid-template-columns:repeat(12,minmax(0,1fr));align-items:start;row-gap:3.5rem}
.mj .mj-piece--invite{grid-column:1 / span 4;grid-row:1;transform:rotate(-2.5deg)}
.mj .mj-piece--details{grid-column:5 / span 4;grid-row:1;transform:rotate(1.5deg) translateY(1.5rem)}
.mj .mj-piece--notes{grid-column:9 / span 4;grid-row:1;transform:rotate(-1.5deg);margin-top:.5rem}
.mj .mj-piece--rsvp{grid-column:1 / span 5;grid-row:2;transform:rotate(-3deg);margin-top:3rem}
.mj .mj-seal-deco{grid-column:6 / span 2;grid-row:2;align-self:center;margin:3rem auto 0}
.mj .mj-piece--dress{grid-column:8 / span 5;grid-row:2;transform:rotate(2deg);margin-top:2rem}
.mj .mj-piece--invite:hover,.mj .mj-piece--details:hover,.mj .mj-piece--notes:hover,.mj .mj-piece--rsvp:hover,.mj .mj-piece--dress:hover{transform:rotate(0) translateY(-8px)}
@media (max-width:720px){
  .mj .mj-suite__grid{grid-template-columns:1fr;row-gap:3.6rem}
  .mj .mj-piece--invite,.mj .mj-piece--details,.mj .mj-piece--notes,.mj .mj-piece--rsvp,.mj .mj-piece--dress,.mj .mj-seal-deco{grid-column:1;grid-row:auto;margin-top:0;justify-self:center}
  .mj .mj-piece--invite,.mj .mj-piece--details,.mj .mj-piece--notes{width:80%}
  .mj .mj-piece--rsvp{width:90%}
  .mj .mj-piece--dress{width:96%}
  .mj .mj-seal-deco{width:70px;margin:-1rem auto}
}

.mj .mj-rcard{background:url("https://d2ol7oe51mr4n9.cloudfront.net/user_3FySxLOFhInxwY7v8JiW1yFeDXI/b28ab4b9-839f-4dee-9c78-98fe5c501587.png") 0 0/100% 100% no-repeat;padding:0 clamp(1.4rem,6vw,3.6rem) clamp(1.8rem,5vw,3rem);overflow:hidden}
.mj .mj-rcard::after{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(255,255,255,.05) 0 1px,transparent 1px 3px)}
.mj .mj-rcard__top{display:block;width:calc(100% + 2*clamp(1.4rem,6vw,3.6rem));max-width:none;margin:0 calc(-1*clamp(1.4rem,6vw,3.6rem)) .4rem}
.mj .mj-rcard > *{position:relative;z-index:1}

.mj .mj-env__card{will-change:transform}
.mj .mj-seal{transition:transform .4s ease}

/* ---------- the service: velvet, silver tray, white glove ---------- */
.mj .mj-hero--velvet{background:#24170f url("https://d2ol7oe51mr4n9.cloudfront.net/user_3FySxLOFhInxwY7v8JiW1yFeDXI/f13c4d32-cfe5-4f32-a89d-15293b464ff8.jpg") center/cover no-repeat;color:var(--cream);cursor:pointer}
.mj .mj-hero--velvet::before{content:none}
.mj .mj-hero--velvet .mj-hero__names{color:#f4efe4}
.mj .mj-hero--velvet .mj-hero__eyebrow,.mj .mj-hero--velvet .mj-hero__hint{color:#d9cbb6}
.mj .mj-hero--velvet .mj-scroll-cue{color:#f4efe4}
.mj .mj-hero--velvet .mj-scroll-cue__line{background:linear-gradient(#f4efe4,transparent)}
.mj-gated .mj-hero--velvet{padding-top:2.2rem}
.mj-stage{--tw:min(calc(min(68vh,640px) * .663),84vw);position:relative;width:var(--tw);height:calc(var(--tw) / .663);margin:1.4rem auto 0}
.mj-service{position:absolute;inset:0;will-change:transform}
.mj .mj-tray{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 28px 34px rgba(0,0,0,.55)) drop-shadow(0 4px 6px rgba(0,0,0,.35))}
.mj .mj-service .mj-env{position:absolute;left:9%;top:31%;width:82%;margin:0;z-index:2}
.mj .mj-glove{position:absolute;left:45%;top:85%;width:29%;max-width:none;z-index:7;pointer-events:none;filter:drop-shadow(0 18px 22px rgba(0,0,0,.5))}
.mj .mj-hero--velvet .mj-hero__hint{position:relative;z-index:8;margin:.9rem 0 0;letter-spacing:.32em}
.mj-hero--velvet .mj-hero__names{margin-top:.2rem}
@media (max-width:720px){.mj-stage{--tw:min(calc(58vh * .663),82vw)} .mj-gated .mj-hero--velvet{padding-top:2.6rem}}

/* v16: classic straight-flap envelope (no triangles) */
.mj .mj-env__flap{height:40%}
.mj .mj-flap__out,.mj .mj-flap__in,.mj .mj-flap__shade,.mj .mj-flap__out::after{clip-path:polygon(0 0,100% 0,97.5% 100%,2.5% 100%)}
.mj .mj-flap__out{background:linear-gradient(180deg,rgba(255,255,255,.06),transparent 30%),linear-gradient(0deg,rgba(0,0,0,.32) 0,rgba(0,0,0,0) 7%),linear-gradient(180deg,#432f26 0%,#3a2820 100%)}
.mj .mj-flap__in{inset:3px 3px 0 3px}
.mj .mj-env__front{clip-path:none;background:linear-gradient(180deg,#3d2b22 0%,#3f2d24 45%,#382820 100%)}
.mj .mj-env__front::after{background:linear-gradient(90deg,rgba(0,0,0,.18),transparent 6%,transparent 94%,rgba(0,0,0,.18)),linear-gradient(0deg,rgba(0,0,0,.18),transparent 8%)}
.mj .mj-seal{top:40%}
.mj .mj-env__back{background:#3a2820}

/* v17: classic envelope geometry (pointed flap with soft tip, side and bottom flaps) */
.mj .mj-env__flap{height:60%}
.mj .mj-flap__out,.mj .mj-flap__in,.mj .mj-flap__shade,.mj .mj-flap__out::after{clip-path:polygon(0 0,100% 0,54.5% 93%,53% 96.5%,51.6% 98.6%,50% 99.6%,48.4% 98.6%,47% 96.5%,45.5% 93%)}
.mj .mj-flap__out{background:linear-gradient(180deg,rgba(255,255,255,.05),transparent 25%),linear-gradient(180deg,#45312a 0%,#3b2921 100%)}
.mj .mj-flap__in{inset:0;background:url("https://d2ol7oe51mr4n9.cloudfront.net/user_3FySxLOFhInxwY7v8JiW1yFeDXI/8bab0055-3a39-4aa5-b806-73e17811effd.jpg") center 30%/cover no-repeat}
.mj .mj-env__back{background:#3a2820 url("https://d2ol7oe51mr4n9.cloudfront.net/user_3FySxLOFhInxwY7v8JiW1yFeDXI/8bab0055-3a39-4aa5-b806-73e17811effd.jpg") center 40%/cover no-repeat;box-shadow:0 34px 60px -24px rgba(0,0,0,.6),inset 0 0 0 1px rgba(0,0,0,.25)}
.mj .mj-env__front{clip-path:none;background:none;overflow:visible;width:100%;height:100%;display:block}
.mj .mj-env__front::after{content:none}
.mj .mj-seal{top:57%}
.mj .mj-env__card{left:31%;width:38%;top:24%}
@media (max-width:720px){.mj .mj-env__card{left:31%;width:38%}}
.mj .mj-flap__in{clip-path:polygon(0 100%,100% 100%,54.5% 7%,53% 3.5%,51.6% 1.4%,50% 0.4%,48.4% 1.4%,47% 3.5%,45.5% 7%)}

/* v18: off-white curtain drapery backdrop */
.mj .mj-hero--velvet{background:#efe9dd url("https://d2ol7oe51mr4n9.cloudfront.net/user_3FySxLOFhInxwY7v8JiW1yFeDXI/a9e55be7-d719-441e-8670-482fc09b1f07.jpg") center/cover no-repeat;color:var(--ink)}
@media (max-aspect-ratio:3/4){.mj .mj-hero--velvet{background-image:url("https://d2ol7oe51mr4n9.cloudfront.net/user_3FySxLOFhInxwY7v8JiW1yFeDXI/0d750974-512e-429d-94ee-04547653c3e1.jpg")}}
.mj .mj-hero--velvet .mj-hero__names{color:var(--cocoa)}
.mj .mj-hero--velvet .mj-hero__eyebrow,.mj .mj-hero--velvet .mj-hero__hint{color:#5d4a3f}
.mj .mj-hero--velvet .mj-scroll-cue{color:var(--cocoa)}
.mj .mj-hero--velvet .mj-scroll-cue__line{background:linear-gradient(var(--cocoa),transparent)}
.mj .mj-tray{filter:drop-shadow(0 26px 30px rgba(60,40,25,.32)) drop-shadow(0 4px 6px rgba(60,40,25,.25))}
.mj .mj-glove{filter:drop-shadow(0 14px 18px rgba(60,40,25,.35)) drop-shadow(0 0 1px rgba(90,70,50,.35))}

/* v19: ivory envelope, smaller on the tray, slower ceremony */
.mj .mj-service .mj-env{left:18%;width:64%;top:35%}
.mj .mj-seal{transition:none}
.mj .mj-env__back{background-color:#efe7d8;box-shadow:0 22px 30px -16px rgba(60,40,25,.38),0 2px 4px rgba(60,40,25,.18),inset 0 0 0 1px rgba(120,95,70,.18)}
.mj .mj-flap__out{background:linear-gradient(180deg,rgba(255,255,255,.55),transparent 22%),linear-gradient(180deg,#f7f2e9 0%,#ece4d5 100%)}
.mj .mj-flap__out::after{background:linear-gradient(0deg,rgba(90,67,48,.16),transparent 9%)}
.mj .mj-flap__shade{background:#6b5440}
.mj .mj-env__flap{filter:none}

/* v20: olive RSVP card (online) */
.mj .mj-rcard{color:#f7f2e7;box-shadow:0 40px 70px -32px rgba(46,30,23,.5)}
.mj .mj-rcard::after{background:none}
.mj .mj-rcard .mj-field__label{color:#f1ead9;font-weight:600}
.mj .mj-rcard .mj-input,.mj .mj-rcard .mj-textarea{color:#fffaf0;border-bottom-color:rgba(247,242,231,.65)}
.mj .mj-rcard .mj-input:focus,.mj .mj-rcard .mj-textarea:focus{border-bottom-color:#fffaf0}
.mj .mj-rcard .mj-input::placeholder{color:rgba(247,242,231,.62)}
.mj .mj-rcard .mj-textarea{background:repeating-linear-gradient(transparent 0 2.05rem,rgba(247,242,231,.5) 2.05rem 2.1rem)}
.mj .mj-rcard .mj-choice__opt{color:#f7f2e7}
.mj .mj-rcard .mj-choice__opt:has(input:checked){color:#fffaf0}
.mj .mj-rcard .mj-box{border-color:#f1ead9}
.mj .mj-rcard .mj-choice__opt:has(input:checked) .mj-box::after{border-color:#fffaf0}
.mj .mj-rcard .mj-addguest{color:#f7f2e7;border-bottom-color:rgba(247,242,231,.55)}
.mj .mj-rcard .mj-guest__x{color:#f1ead9}
.mj .mj-rcard .mj-error{color:#fff1d6}
.mj .mj-rcard .mj-thanks__big{color:#fffaf0}
.mj .mj-rcard .mj-caps{color:#f1ead9}
.mj .mj-rcard{background:radial-gradient(ellipse at 30% 12%,rgba(255,255,255,.10),transparent 55%),linear-gradient(160deg,#8d9968 0%,#829060 55%,#7a8757 100%)}
.mj .mj-rcard::before{content:"";position:absolute;inset:0;opacity:.18;background:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");pointer-events:none}
.mj .mj-seal{width:28%}

/* v23: exact Canva olive #899564 */
.mj .mj-rcard{background:#899564}
.mj .mj-rcard::before{content:none}

/* v24: record player */
.mjrp{position:fixed;right:max(14px,env(safe-area-inset-right));bottom:max(14px,env(safe-area-inset-bottom));z-index:60;display:flex;align-items:center;gap:.6rem;flex-direction:row-reverse}
.mjrp[hidden]{display:none}
.mjrp__btn{width:66px;height:66px;padding:0;border:0;background:none;cursor:pointer;filter:drop-shadow(0 10px 16px rgba(46,30,23,.35));transition:transform .4s ease}
.mjrp__btn:hover{transform:translateY(-2px) scale(1.03)}
.mjrp__btn:focus-visible{outline:2px solid var(--olive);outline-offset:4px;border-radius:10px}
.mjrp__btn svg{width:100%;height:100%;display:block;overflow:visible}
.mjrp__rec{transform-origin:44px 50px;animation:mjrp-spin 1.8s linear infinite;animation-play-state:paused}
.mjrp.is-playing .mjrp__rec{animation-play-state:running}
@keyframes mjrp-spin{to{transform:rotate(360deg)}}
.mjrp__arm{transform-origin:84px 22px;transform:rotate(-24deg);transition:transform 1.1s cubic-bezier(.4,.1,.2,1)}
.mjrp.is-playing .mjrp__arm{transform:rotate(0deg)}
.mjrp__led{fill:#6b5a4e;transition:fill .4s}
.mjrp.is-playing .mjrp__led{fill:#c5d18f}
.mjrp__label{font-size:.66rem;letter-spacing:.22em;color:var(--cocoa);background:rgba(248,243,229,.88);backdrop-filter:blur(6px);padding:.45rem .75rem;border-radius:999px;box-shadow:0 6px 14px -8px rgba(46,30,23,.4);white-space:nowrap;opacity:0;transform:translateX(6px);transition:opacity .4s,transform .4s;pointer-events:none}
.mjrp:hover .mjrp__label,.mjrp.needs-tap .mjrp__label,.mjrp.is-playing.show-label .mjrp__label{opacity:1;transform:none}
.mjrp.needs-tap .mjrp__btn{animation:mjrp-pulse 2.4s ease-in-out infinite}
@keyframes mjrp-pulse{0%,100%{transform:none}50%{transform:translateY(-3px)}}
@media (max-width:720px){.mjrp__btn{width:56px;height:56px}.mjrp__label{display:none}}
@media (prefers-reduced-motion:reduce){.mjrp__rec{animation:none}.mjrp__arm{transition:none}}

/* v25: lace-edged liner + pearl seal */
.mj .mj-flap__in{background:#f6f1e7 url("https://d2ol7oe51mr4n9.cloudfront.net/user_3FySxLOFhInxwY7v8JiW1yFeDXI/6c6a9db1-3fcf-44ce-9104-5949c3ba28ad.jpg") center/100% 100% no-repeat}
.mj .mj-seal{filter:drop-shadow(0 3px 4px rgba(90,67,48,.35)) drop-shadow(0 8px 12px rgba(90,67,48,.18))}

/* v26: seal stays on the flap tip; roses liner */
.mj #seal{display:none!important}
.mj-flapseal{position:absolute;left:50%;top:95%;width:20%;aspect-ratio:1;transform:translate(-50%,-50%);transform-style:preserve-3d;z-index:4;pointer-events:none}
.mj-flapseal img{position:absolute;inset:0;width:100%;height:100%;max-width:none;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.mj-flapseal__f{filter:drop-shadow(0 3px 4px rgba(90,67,48,.35)) drop-shadow(0 8px 12px rgba(90,67,48,.18))}
.mj-flapseal__b{transform:rotateX(180deg);filter:drop-shadow(0 2px 3px rgba(60,45,30,.3))}
.mj .mj-flap__in{background:#f6f1e7 url("https://d2ol7oe51mr4n9.cloudfront.net/user_3FySxLOFhInxwY7v8JiW1yFeDXI/81dea3d7-f090-4f66-94aa-d26cf4f11e3c.jpg") center/100% 100% no-repeat}
.mj .mj-env__back{background-image:url("https://d2ol7oe51mr4n9.cloudfront.net/user_3FySxLOFhInxwY7v8JiW1yFeDXI/1d0c1e9c-3e65-4d28-8f07-673730e4defc.jpg");background-position:center 30%;background-size:cover}

/* v27: YouTube-backed record player (tiny invisible player sits over the turntable so a direct tap always works) */
.mjrp{position:fixed}
.mjrp__yt{position:absolute;right:0;bottom:0;width:66px;height:66px;overflow:hidden;opacity:.011;z-index:2}
.mjrp__yt iframe{width:200px;height:200px;transform:scale(.33);transform-origin:0 0;border:0;display:block}
@media (max-width:720px){.mjrp__yt{width:56px;height:56px}.mjrp__yt iframe{transform:scale(.28)}}

/* v28: one continuous liner across the fold */
.mj .mj-flap__in{background:#f6f1e7 url("https://d2ol7oe51mr4n9.cloudfront.net/user_3FySxLOFhInxwY7v8JiW1yFeDXI/2dc9a485-7d39-4986-ab01-7ff54df055d7.jpg") center/100% 100% no-repeat}
.mj .mj-env__back{background-image:url("https://d2ol7oe51mr4n9.cloudfront.net/user_3FySxLOFhInxwY7v8JiW1yFeDXI/d851c297-27ab-4462-b816-9ba22a6ddb2a.jpg");background-position:center top;background-size:100% 100%;box-shadow:0 22px 30px -16px rgba(60,40,25,.38),0 2px 4px rgba(60,40,25,.18)}

/* v30: hold the invitation until the guest taps */
.mj-continue{position:absolute;left:0;right:0;bottom:max(2rem,env(safe-area-inset-bottom));margin:0;text-align:center;color:var(--cocoa);font-size:.8rem;letter-spacing:.3em;z-index:20;pointer-events:none;visibility:hidden}

/* v33: big centred tap prompt, phone first */
.mj .mj-hero--velvet .mj-hero__inner{position:static;animation:none}
.mj .mj-hero--velvet .mj-hero__hint{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);margin:0;z-index:9;
 font-size:clamp(.95rem,3.6vw,1.2rem);letter-spacing:.3em;color:var(--cocoa);font-weight:600;white-space:nowrap;
 padding:1.05rem 1.7rem 1.05rem 2rem;border-radius:999px;background:rgba(250,246,238,.82);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
 box-shadow:0 14px 34px -14px rgba(60,40,25,.45);animation:mj-breathe 2.8s ease-in-out infinite}
@keyframes mj-breathe{0%,100%{box-shadow:0 14px 34px -14px rgba(60,40,25,.45),0 0 0 0 rgba(250,246,238,.0)}50%{box-shadow:0 14px 34px -14px rgba(60,40,25,.45),0 0 0 12px rgba(250,246,238,.35)}}
.mj .mj-continue{font-size:clamp(.9rem,3.4vw,1.1rem);font-weight:600;letter-spacing:.3em;bottom:max(2.4rem,calc(env(safe-area-inset-bottom) + 1.4rem))}
@media (max-width:720px){.mj .mj-hero--velvet .mj-hero__hint{white-space:normal;width:min(84vw,320px);text-align:center;line-height:1.6;padding:1rem 1.2rem 1rem 1.5rem}}
@media (prefers-reduced-motion:reduce){.mj .mj-hero--velvet .mj-hero__hint{animation:none}}
.mj .mj-continue{left:50%;right:auto;transform:translateX(-50%);width:max-content;max-width:86vw;text-align:center;padding:.85rem 1.4rem .85rem 1.7rem;border-radius:999px;background:rgba(250,246,238,.82);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);box-shadow:0 14px 34px -14px rgba(60,40,25,.45)}
@media (max-width:720px){.mj .mj-continue{bottom:calc(env(safe-area-inset-bottom) + 5.6rem);white-space:normal;line-height:1.6}}

/* v34: scroll cue + larger invitation */
.mj .mj-scrollcue{display:flex;flex-direction:column;align-items:center;gap:.35rem;border:0;cursor:pointer;pointer-events:auto;font-family:var(--serif);color:var(--cocoa);padding:.8rem 1.6rem .7rem;border-radius:999px}
.mj .mj-scrollcue .mj-caps{font-size:clamp(.9rem,3.4vw,1.1rem);font-weight:600;letter-spacing:.34em;margin-right:-.34em}
.mj .mj-scrollcue svg{width:18px;height:30px;animation:mj-nudge 1.9s ease-in-out infinite}
@keyframes mj-nudge{0%,100%{transform:translateY(-2px);opacity:.7}50%{transform:translateY(5px);opacity:1}}
@media (prefers-reduced-motion:reduce){.mj .mj-scrollcue svg{animation:none}}

/* v35: arrow only, no pill */
.mj .mj-scrollcue{background:none!important;box-shadow:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;padding:.4rem .8rem;gap:0}
.mj .mj-scrollcue .mj-caps{display:none}
.mj .mj-scrollcue svg{width:26px;height:46px;filter:drop-shadow(0 1px 2px rgba(255,255,255,.7))}
.mj .mj-scrollcue svg path{stroke-width:1.8}

/* v36: three-card suite */
.mj .mj-suite{padding-top:clamp(5rem,9vw,7rem)}
.mj .mj-suite__grid--three{grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.6rem,3.5vw,3rem);max-width:1100px;row-gap:4rem}
.mj .mj-suite__grid--three .mj-piece{grid-column:auto;grid-row:auto;margin:0;width:auto}
.mj .mj-suite__grid--three .mj-piece--invite{transform:rotate(-2deg)}
.mj .mj-suite__grid--three .mj-piece--details{transform:rotate(1.2deg) translateY(1.5rem)}
.mj .mj-suite__grid--three .mj-piece--notes{transform:rotate(-1deg)}
.mj .mj-suite__grid--three .mj-piece:hover{transform:rotate(0) translateY(-8px)}
@media (max-width:720px){.mj .mj-suite__grid--three{grid-template-columns:1fr;row-gap:4rem}.mj .mj-suite__grid--three .mj-piece{width:82%;justify-self:center}.mj .mj-suite{padding-top:6.6rem}}
.mj .mj-timeline__time{font-size:.92rem;color:var(--cocoa);font-weight:600}

/* v39: swipeable card deck + zoom after the reveal */
.mj-deck{position:fixed;z-index:30;touch-action:none;visibility:visible}
.mj-deck__win{position:absolute;inset:0;overflow:hidden;cursor:zoom-in;box-shadow:0 50px 90px -30px rgba(46,30,23,.55)}
.mj-deck__track{display:flex;height:100%;will-change:transform}
.mj-deck__slide{flex:0 0 100%;margin:0;height:100%}
.mj-deck__slide img{width:100%;height:100%;object-fit:cover;display:block;max-width:none;user-select:none;-webkit-user-select:none;-webkit-user-drag:none;pointer-events:none}
.mj-deck__nav{position:absolute;top:50%;margin-top:-23px;width:46px;height:46px;border-radius:999px;border:0;padding:0;background:rgba(250,246,238,.88);color:var(--cocoa);display:grid;place-items:center;cursor:pointer;box-shadow:0 8px 20px -10px rgba(60,40,25,.5);transition:opacity .3s,transform .3s}
.mj-deck__nav:hover{transform:scale(1.06)}
.mj-deck__nav svg{width:22px;height:22px}
.mj-deck__nav--prev{left:-66px}.mj-deck__nav--next{right:-66px}
.mj-deck.at-start .mj-deck__nav--prev,.mj-deck.at-end .mj-deck__nav--next{opacity:.25!important;pointer-events:none}
.mj-deck__meta{position:absolute;left:0;right:0;top:calc(100% + .9rem);display:flex;flex-direction:column;align-items:center;gap:.5rem}
.mj .mj-deck__label{color:var(--cocoa);font-size:.8rem;font-weight:600;letter-spacing:.28em}
.mj-deck__dots{display:flex;gap:.6rem}
.mj-deck__dots i{width:7px;height:7px;border-radius:50%;background:rgba(63,45,36,.25);cursor:pointer;transition:background .3s,transform .3s}
.mj-deck__dots i.on{background:var(--cocoa);transform:scale(1.25)}
@media (max-width:720px){.mj-deck__nav{width:38px;height:38px;margin-top:-19px;background:rgba(250,246,238,.78)}.mj-deck__nav--prev{left:8px}.mj-deck__nav--next{right:8px}}
.mj-zoom{position:fixed;inset:0;z-index:120;background:rgba(30,20,15,.96);display:grid;grid-template-rows:auto 1fr auto}
.mj-zoom__x{justify-self:end;margin:max(.7rem,env(safe-area-inset-top)) .9rem 0;width:44px;height:44px;border:1px solid rgba(244,241,236,.4);border-radius:999px;background:transparent;color:#f4f1ec;font-size:1.6rem;line-height:1;cursor:pointer}
.mj-zoom__stage{overflow:auto;display:grid;place-items:center;padding:1rem;-webkit-overflow-scrolling:touch}
.mj-zoom__stage img{max-width:100%;max-height:calc(100dvh - 8rem);object-fit:contain;cursor:zoom-in;box-shadow:0 30px 60px -20px rgba(0,0,0,.6)}
.mj-zoom.is-zoomed .mj-zoom__stage{place-items:start}
.mj-zoom.is-zoomed .mj-zoom__stage img{max-width:none;max-height:none;width:min(1800px,240vw);cursor:zoom-out}
.mj .mj-zoom__hint{color:rgba(244,241,236,.65);text-align:center;margin:.4rem 0 max(1rem,env(safe-area-inset-bottom));font-size:.72rem}

/* v40: live links printed on The Day card */
.mj-hot{position:absolute;display:block;border-radius:8px;pointer-events:auto;cursor:pointer;transition:background .25s}
.mj-hot:hover{background:rgba(63,45,36,.06)}
.mj-hot:focus-visible{outline:2px solid var(--olive);outline-offset:2px}
.mj-deck__slide{position:relative}
.mj-hotwrap{position:relative;display:block;width:min(100%,560px);margin:0 auto}
.mj-hotwrap img{width:100%!important;display:block}

/* v41: section pages as real, legible text */
.mj-panel{max-width:760px;margin:0 auto;text-align:center;padding:clamp(2.4rem,7vw,4.5rem) clamp(1.4rem,6vw,4rem);box-shadow:0 40px 70px -34px rgba(46,30,23,.5)}
.mj-panel--choc{background:#3f2d24;color:#f4efe4}
.mj-panel--olive{background:#899564;color:#faf6ec}
.mj .mj-panel__mono{display:block;margin:0 auto 1.4rem;width:min(56%,300px);height:auto}
.mj .mj-panel__mono--foot{width:min(42%,200px);margin:2.4rem auto 0}
.mj .mj-panel .mj-caps{color:inherit}
.mj-inv__lead{margin:0 0 1rem;font-size:clamp(.8rem,2.6vw,.95rem);letter-spacing:.26em;line-height:1.7}
.mj-inv__name{margin:.2rem 0;font-family:var(--script);font-weight:400;font-size:clamp(2.6rem,9vw,4.2rem);line-height:1.15}
.mj-inv__amp{margin:.2rem 0;font-family:var(--script);font-size:clamp(1.8rem,6vw,2.4rem)}
.mj-inv__date{margin:1.6rem 0 .6rem;font-size:clamp(1.6rem,5vw,2.2rem);letter-spacing:.32em}
.mj-inv__venue{margin:0;font-family:var(--script);font-size:clamp(2rem,6.5vw,2.8rem)}
.mj-inv__place{margin:.1rem 0 1.4rem;font-family:var(--script);font-size:clamp(1.3rem,4vw,1.7rem);opacity:.92}
.mj-inv__times{margin:0;font-size:clamp(.8rem,2.6vw,.95rem);letter-spacing:.22em;line-height:2}
.mj-find{max-width:760px;margin:4rem auto 0;text-align:center}
.mj-find__h{margin:.3rem 0 1rem;font-family:var(--script);font-weight:400;font-size:clamp(2.4rem,7vw,3.2rem);color:var(--cocoa)}
.mj-find__p{max-width:620px;margin:0 auto 1.4rem;font-size:clamp(1.12rem,3.4vw,1.3rem);line-height:1.75}
.mj-find__map{display:block;margin:1.8rem auto;max-width:720px;background:#f8f3e5;padding:clamp(.6rem,2vw,1.2rem);box-shadow:0 24px 40px -26px rgba(46,30,23,.5);transition:transform .4s}
.mj-find__map:hover{transform:translateY(-3px)}
.mj-find__map img{width:100%;display:block}
.mj-find__link{display:inline-block;margin-top:.4rem;padding-bottom:.35rem;border-bottom:1px solid var(--cocoa);color:var(--cocoa);text-transform:uppercase;letter-spacing:.26em;font-weight:600;font-size:clamp(.82rem,2.6vw,.95rem)}
.mj-find--dress{margin-top:4.5rem;padding-top:3rem;border-top:1px solid var(--line)}
.mj .mj-find__tie{margin:0 0 1.2rem;font-size:1rem;letter-spacing:.34em;color:var(--cocoa)}
.mj-fd{text-align:center}
.mj-fd__item+.mj-fd__item{margin-top:2.8rem}
.mj-fd__h{margin:0 0 .7rem;font-family:var(--script);font-weight:400;font-size:clamp(2.2rem,7vw,3rem);line-height:1.1}
.mj-fd p{max-width:560px;margin:0 auto;font-size:clamp(1.12rem,3.4vw,1.28rem);line-height:1.75}

.mj .mj-fd__tie{margin:0 0 1rem;font-size:1rem;letter-spacing:.34em;color:inherit}
.mj-fd__link{display:inline-block;padding-bottom:.35rem;border-bottom:1px solid rgba(250,246,236,.75);color:#faf6ec;text-transform:uppercase;letter-spacing:.26em;font-weight:600;font-size:clamp(.82rem,2.6vw,.95rem)}
.mj-fd__link:hover{border-bottom-color:#fff}
#dress-code{scroll-margin-top:7rem}

/* v43: cream RSVP button with olive lettering */
.mj .mj-rcard .mj-send{background:#f8f3e5;color:#899564;font-weight:700;box-shadow:0 10px 22px -14px rgba(40,48,20,.55)}
.mj .mj-rcard .mj-send:hover{background:#fffaf0;color:#77834f;filter:none}

/* v44: RSVP reminder */
.mj-remind{max-width:680px;margin:3rem auto 0;text-align:center}
.mj .mj-remind__lead{margin:0 0 .5rem;color:var(--cocoa);font-weight:600;font-size:.86rem}
.mj-remind__p{margin:0 0 1.2rem;font-size:clamp(1.05rem,3.2vw,1.2rem);line-height:1.6}
.mj-remind__links{display:flex;flex-wrap:wrap;justify-content:center;gap:.8rem 2rem}
.mj-remind__link{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.4rem;border:1px solid var(--cocoa);border-radius:999px;color:var(--cocoa);text-transform:uppercase;letter-spacing:.22em;font-size:.78rem;font-weight:600;transition:background .3s,color .3s}
.mj-remind__link::before{content:"";width:14px;height:14px;background:currentColor;-webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M7 2v3M17 2v3M3 9h18M5 5h14a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2z' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'/></svg>") center/contain no-repeat;mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M7 2v3M17 2v3M3 9h18M5 5h14a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2z' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'/></svg>") center/contain no-repeat}
.mj-remind__link:hover{background:var(--cocoa);color:var(--cream)}

/* v45: stacked cards instead of a dotted carousel */
.mj-deck--stack .mj-deck__card{position:absolute;inset:0;margin:0;cursor:grab;box-shadow:0 30px 60px -28px rgba(46,30,23,.55);will-change:transform;touch-action:none;visibility:hidden}
.mj-deck--stack .mj-deck__card.is-top{cursor:zoom-in}
.mj-deck--stack .mj-deck__card img{width:100%;height:100%;object-fit:cover;display:block;max-width:none;user-select:none;-webkit-user-select:none;-webkit-user-drag:none;pointer-events:none}
.mj-deck--stack .mj-deck__card:not(.is-top) .mj-hot{pointer-events:none}
.mj-deck--stack .mj-deck__nav{z-index:30}
.mj .mj-deck__hint{position:absolute;left:0;right:0;top:calc(100% + 1.2rem);margin:0;text-align:center;color:var(--cocoa);font-size:.74rem;font-weight:600;letter-spacing:.26em}

/* v46: deeper perspective and explicit face swap at 90 degrees for a clean fold */
.mj .mj-service .mj-env{perspective:900px;perspective-origin:50% 20%}
.mj-flapseal__b{filter:none}

/* v47: flat 2D fold (no 3D) so Safari renders the flap reliably */
.mj .mj-env,.mj .mj-env__flap,.mj-flapseal{transform-style:flat!important}
.mj .mj-service .mj-env{perspective:none}
.mj .mj-env__flap{transform-origin:50% 0}
.mj .mj-flap__out,.mj .mj-flap__in,.mj .mj-flap__shade,.mj-flapseal img{-webkit-backface-visibility:visible!important;backface-visibility:visible!important}

/* v48: envelope sits flush: no liner showing through closed seams, no hairline at the fold */
.mj .mj-env:not(.is-lined) .mj-env__back{background-image:none!important;background-color:#ece4d5}
.mj .mj-flap__in{top:-3px!important}
.mj .mj-env__back{box-shadow:0 22px 30px -16px rgba(60,40,25,.38),0 2px 4px rgba(60,40,25,.18)!important}
.mj .mj-env__flap{height:64%}
.mj .mj-env:not(.is-lined) .mj-env__card{visibility:hidden}

/* ── v44: legibility pass, so guests of every age can read every line ─────────────
   Cormorant runs small and thin, so body copy goes up a size and to weight 500.
   No tracked-caps label is smaller than ~13px. Cream-on-olive moves to a deeper olive
   (cream on the Canva olive was 3:1, which is too faint for older eyes; now it's 5:1). */
.mj{--muted:#5a4a3f;--olive-deep:#666f4b}

/* nav: larger, heavier links that still fit on one row at 360px */
.mj .mj-nav__link{font-size:.84rem;letter-spacing:.16em;font-weight:600}
.mj .mj-nav__rsvp{font-size:.84rem;letter-spacing:.2em;font-weight:600}
@media (max-width:720px){
  .mj .mj-nav__link{font-size:.84rem;letter-spacing:.1em}
  .mj .mj-nav__rsvp{font-size:.8rem;letter-spacing:.18em;padding:.6rem 1.1rem}
}
@media (max-width:350px){ .mj .mj-nav__link{font-size:.8rem;letter-spacing:.05em} }

/* page eyebrows / long caps lines wrap evenly instead of leaving one orphan word */
.mj .mj-page__head .mj-caps,.mj .mj-inv__lead,.mj .mj-inv__times{text-wrap:balance}

/* envelope + reveal: hints sit on the curtain photo, so ink colour plus a soft cream halo */
.mj .mj-hero__eyebrow{font-size:.95rem}
.mj .mj-hero--velvet .mj-hero__eyebrow{color:var(--ink);text-shadow:0 0 16px rgba(250,246,238,.95),0 0 5px rgba(250,246,238,.95)}
/* deck hint sits above the cards so it never collides with the scroll arrow on shorter phones */
.mj .mj-deck__hint{top:auto;bottom:calc(100% + .9rem);font-size:.86rem;letter-spacing:.2em;line-height:1.6;color:var(--ink);width:fit-content;max-width:calc(100vw - 2.5rem);margin-inline:auto;padding:.35rem 1.1rem;border-radius:999px;background:rgba(250,246,238,.82);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.mj .mj-zoom__hint,.mj .mj-lightbox__hint{font-size:.86rem;color:rgba(244,241,236,.92)}
.mj .mj-piece__tag{font-size:.86rem;font-weight:600;color:var(--muted)}
.mj .mj-cardimg figcaption{color:var(--cocoa);font-weight:600}
@media (max-width:720px){
  .mj .mj-suite__grid--three{row-gap:4.8rem}
  .mj .mj-suite__grid--three .mj-piece--details{transform:rotate(1.2deg)}
}

/* invitation: venue line in serif caps (small script is hard to read), bigger times + clock labels */
.mj .mj-inv__place{font-family:var(--serif);font-size:clamp(.86rem,2.9vw,1rem);text-transform:uppercase;letter-spacing:.2em;font-weight:500;line-height:1.7;margin:.6rem 0 1.6rem;opacity:1}
.mj .mj-inv__times{font-size:clamp(.86rem,2.9vw,1rem)}
.mj .mj-clock__lbl{font-size:.8rem;letter-spacing:.14em;font-weight:600}
.mj .mj-act-cal{font-size:.86rem;font-weight:600;line-height:1.5}

/* body copy: one size up and a touch heavier */
.mj .mj-find__p,.mj .mj-fd p{font-size:clamp(1.2rem,3.6vw,1.34rem);font-weight:500}
.mj .mj-remind__p{font-size:clamp(1.15rem,3.4vw,1.25rem);font-weight:500}
.mj .mj-timeline__what{font-weight:500}
.mj .mj-find__link,.mj .mj-fd__link{font-size:clamp(.9rem,2.9vw,1rem)}
.mj .mj-remind__link{font-size:.86rem}
.mj .mj-find__cap{display:block;margin:-.6rem 0 1.8rem;text-align:center;color:var(--muted)}

/* The Day: keep "7pm – 1am" on one line */
.mj .mj-timeline li{grid-template-columns:7.2rem 1fr}
.mj .mj-timeline__time{white-space:nowrap;letter-spacing:.14em}

/* olive panels + RSVP card: deeper olive, brighter cream, bigger labels */
.mj .mj-panel--olive{background:var(--olive-deep);color:#fbf8f0}
.mj .mj-fd__link{color:#fbf8f0;border-bottom-color:rgba(251,248,240,.8)}
.mj .mj-rcard{background:var(--olive-deep)}
.mj .mj-rcard .mj-field__label,.mj .mj-rcard .mj-caps{color:#fbf8f0}
.mj .mj-rcard .mj-field__label{font-size:.84rem;letter-spacing:.2em}
.mj .mj-choice__lbl{font-size:.9rem;letter-spacing:.16em}
.mj .mj-rcard .mj-choice__opt{color:#fbf8f0}
.mj .mj-rcard .mj-input::placeholder,.mj .mj-rcard .mj-textarea::placeholder{color:rgba(251,248,240,.92);font-style:italic}
.mj .mj-rcard .mj-input,.mj .mj-rcard .mj-textarea{border-bottom-color:rgba(251,248,240,.8)}
.mj .mj-rcard .mj-addguest{font-size:1.15rem;color:#fbf8f0;border-bottom-color:rgba(251,248,240,.7)}
.mj .mj-rcard .mj-box{width:22px;height:22px;border-width:1.5px;border-color:#fbf8f0}
.mj .mj-rcard .mj-choice__opt:has(input:checked) .mj-box::after{left:7px;top:2px;width:6px;height:12px}
.mj .mj-rcard .mj-send{color:var(--olive-deep);font-size:.92rem;letter-spacing:.24em}
.mj .mj-rcard .mj-send:hover{color:#4f5739}
