/* Isolated, transform-based opening scenes. No animation until a guest taps. */
.opening-overlay{--op-dark:#17382f;position:fixed;inset:0;z-index:100;background:var(--paper);color:var(--ink);display:grid;place-items:center;overflow:auto;padding:64px 20px 24px;transition:opacity .5s ease,visibility .5s;overscroll-behavior:contain}
.opening-overlay.gone{display:none}.opening-overlay.op-exit{opacity:0;visibility:hidden;pointer-events:none}.op-content{width:min(100%,520px);text-align:center;margin:auto}.op-guest{font:12px/1.8 Arial,sans-serif;letter-spacing:1px;max-width:430px;margin:0 auto 24px;overflow-wrap:anywhere}.op-skip{position:absolute;top:max(18px,env(safe-area-inset-top));right:20px;min-height:44px;border:0;background:transparent;color:inherit;font:12px Arial;text-decoration:underline;text-underline-offset:5px}.op-stage{position:relative;isolation:isolate;width:min(100%,360px);height:300px;margin:auto;perspective:1000px}.op-card{position:absolute;inset:15px;background:var(--paper);color:var(--ink);border:1px solid var(--gold);display:flex;flex-direction:column;justify-content:center;gap:14px;padding:24px;box-shadow:0 14px 42px #0002}.op-kicker{font:9px Arial;letter-spacing:3px}.op-card strong{font:400 clamp(22px,5vw,34px)/1.15 'Cormorant Garamond',Georgia,serif;overflow-wrap:anywhere}.op-card em{display:block;color:var(--gold);font-size:28px}.op-monogram{font:italic 22px Georgia;color:var(--gold)}.op-decor{position:absolute;inset:0;pointer-events:none;transform-style:preserve-3d}:where(.op-decor)>.op-panel,:where(.op-decor)>.op-lid,:where(.op-decor)>.op-ribbon,:where(.op-decor)>.op-botanical,:where(.op-decor)>.op-moon,:where(.op-decor)>.op-stars,:where(.op-decor)>.op-wash{display:none}.op-light{position:absolute;inset:-20px;background:radial-gradient(ellipse,#d5b16f88,transparent 65%);opacity:0;transition:opacity 1s}.is-opening .op-light{opacity:1}.op-open{position:relative;display:flex;align-items:center;gap:14px;margin:26px auto 0;max-width:100%;padding:10px 20px 10px 10px;border:1px solid var(--gold);border-radius:50px;background:var(--paper);color:var(--ink);min-height:60px;cursor:pointer}.op-open>span{display:grid;place-items:center;border-radius:50%;background:var(--gold);color:#241e15;min-width:46px;min-height:46px;max-width:120px;padding:8px;font:italic 18px Georgia;overflow-wrap:anywhere}.op-open small{font:11px/1.5 Arial;letter-spacing:1px}.op-hint{font:italic 16px Georgia;opacity:.75;margin:18px 0 0}.is-opening .op-open{opacity:0;pointer-events:none;transition:opacity .3s}.op-open:focus-visible,.op-skip:focus-visible{outline:3px solid var(--gold);outline-offset:4px}
/* Wax envelope */
.op-wax .op-decor{top:80px;border:1px solid var(--gold);background:linear-gradient(30deg,#e4d7c1 49.5%,transparent 50%) left/50% 100% no-repeat,linear-gradient(-30deg,#e4d7c1 49.5%,transparent 50%) right/50% 100% no-repeat;transition:transform 1s .9s,opacity 1s .9s}
.op-wax .op-lid{display:block;position:absolute;inset:0;background:#eee3ce;clip-path:polygon(0 0,100% 0,50% 65%);transform-origin:top;transition:transform .8s}
.op-wax.is-opening .op-lid{transform:rotateX(180deg)}.op-wax.is-opening .op-decor{transform:translateY(110px);opacity:0}.op-wax.is-opening .op-card{animation:op-letter 2.5s both}@keyframes op-letter{40%{transform:translateY(-45px)}100%{transform:translateY(0)}}
/* Golden doors and palace shutters */
.opening-overlay.op-golden,.opening-overlay.op-jharokha,.opening-overlay.op-moon{background:radial-gradient(ellipse at center,#324336,#101c19);color:#f8eedb}.op-golden .op-panel,.op-jharokha .op-panel{display:block;position:absolute;top:0;bottom:0;width:50%;border:3px double var(--gold);background:repeating-linear-gradient(90deg,transparent 0 25px,#c8ab6444 26px 27px),#17382f;transition:transform 2s;backface-visibility:hidden}.op-left{left:0;transform-origin:left}.op-right{right:0;transform-origin:right}.is-opening.op-golden .op-left,.is-opening.op-jharokha .op-left{transform:rotateY(-110deg)}.is-opening.op-golden .op-right,.is-opening.op-jharokha .op-right{transform:rotateY(110deg)}.op-jharokha .op-stage{height:340px}.op-jharokha .op-card{border-radius:150px 150px 0 0;padding-top:65px}.op-jharokha .op-left{border-radius:170px 0 0 0}.op-jharokha .op-right{border-radius:0 170px 0 0}.op-jharokha .op-panel{background:repeating-linear-gradient(45deg,transparent 0 13px,#d3b27355 14px 15px),repeating-linear-gradient(-45deg,transparent 0 13px,#d3b27355 14px 15px),#68343c;border-width:7px}
/* Silk bow */
.op-ribbon .op-panel{display:block;position:absolute;top:45%;height:30px;width:50%;background:linear-gradient(#be8a92,#f1c8cc,#b57b83);transition:transform 1.6s,opacity 1.6s}.op-ribbon .op-lid{display:block;position:absolute;width:72px;height:42px;border:13px solid #d8a9b1;border-radius:50%;left:calc(50% - 72px);top:calc(45% - 20px);transform:rotate(25deg);transition:transform 1s,opacity 1s}.op-ribbon .op-ribbon{display:block;position:absolute;width:72px;height:42px;border:13px solid #d8a9b1;border-radius:50%;left:50%;top:calc(45% - 20px);transform:rotate(-25deg);transition:transform 1s,opacity 1s}.op-ribbon.is-opening .op-left{transform:translateX(-130%);opacity:0}.op-ribbon.is-opening .op-right{transform:translateX(130%);opacity:0}.op-ribbon.is-opening .op-lid{transform:translateX(-70px) rotate(-30deg);opacity:0}.op-ribbon.is-opening .op-ribbon{transform:translateX(70px) rotate(30deg);opacity:0}
/* Botanical arch */
.op-botanical .op-botanical{display:block;position:absolute;inset:-30px 0 0;border:3px double #829674;border-radius:50% 50% 0 0;color:#829674;font-size:100px;line-height:1;text-align:center;padding-top:10px;transition:transform 2.2s,opacity 2.2s}.op-botanical .op-card{opacity:.2;transform:scale(.9);transition:opacity 2s,transform 2s}.op-botanical.is-opening .op-botanical{transform:scale(1.35);opacity:0}.op-botanical.is-opening .op-card{opacity:1;transform:scale(1)}
/* Parchment scroll */
.op-scroll .op-card{clip-path:inset(43% 0);background:#f3e6cb;color:#504538;transition:clip-path 2s}.op-scroll .op-panel{display:block;position:absolute;left:0;width:100%;height:18px;border-radius:12px;background:linear-gradient(#b28d45,#f3d99c,#a6813f);transition:transform 2s}.op-scroll .op-left{top:43%}.op-scroll .op-right{bottom:43%}.op-scroll.is-opening .op-card{clip-path:inset(0)}.op-scroll.is-opening .op-left{transform:translateY(-125px)}.op-scroll.is-opening .op-right{transform:translateY(125px)}
/* Velvet curtains */
.op-curtain{background:#321b26;color:#f9e8d0}.op-curtain .op-panel{display:block;position:absolute;inset:0 auto 0 0;width:51%;background:repeating-linear-gradient(90deg,#401f2e,#8b4a5a 14%,#552639 28%);border-bottom:4px solid var(--gold);transition:transform 2.2s,border-radius 2.2s}.op-curtain .op-right{left:auto;right:0}.op-curtain.is-opening .op-left{transform:translateX(-95%) skewY(-12deg);border-radius:0 0 80% 0}.op-curtain.is-opening .op-right{transform:translateX(95%) skewY(12deg);border-radius:0 0 0 80%}
/* Keepsake gift */
.op-gift .op-lid{display:block;position:absolute;inset:0;background:linear-gradient(90deg,transparent 46%,var(--gold) 46% 54%,transparent 54%),linear-gradient(transparent 46%,var(--gold) 46% 54%,transparent 54%),#244b40;border:2px solid var(--gold);box-shadow:0 15px 30px #0003;transition:transform 1.6s,opacity 1.6s}.op-gift.is-opening .op-lid{transform:translateY(-130px) rotate(-15deg) scale(.8);opacity:0}.op-gift .op-card{transform:scale(.85);transition:transform 2s}.op-gift.is-opening .op-card{transform:scale(1)}
/* Embossed story book and turning page */
.op-book .op-lid,.op-book .op-panel{display:block;position:absolute;inset:0;border:3px double var(--gold);transform-origin:left;transition:transform 1.7s;backface-visibility:hidden}.op-book .op-panel{background:#f8eddb;transition-delay:.6s}.op-book .op-lid{background:linear-gradient(90deg,#0003 0 12px,transparent 13px),#325044}.op-book .op-lid:after{content:'Our story';color:#dec48d;font:italic 42px Georgia;position:absolute;inset:38% 15%}.op-book.is-opening .op-lid,.op-book.is-opening .op-panel{transform:rotateY(-150deg)}
/* Golden signature */
.op-ink .op-card{box-shadow:none;border:0}.op-ink .op-card strong{font-family:'Great Vibes',cursive;color:var(--gold);clip-path:inset(0 100% 0 0);transition:clip-path 2.6s ease-in-out}.op-ink.is-opening .op-card strong{clip-path:inset(0)}
/* Crescent and stars */
.op-moon .op-card{opacity:0;transform:translateY(30px);transition:opacity 1.5s .6s,transform 1.5s .6s}.op-moon .op-moon{display:block;position:absolute;inset:0;color:#d7bc7b;font:180px Georgia;transition:transform 2s,opacity 2s}.op-moon .op-stars{display:block;position:absolute;inset:30% 0 auto;color:#e6d3a1;font-size:32px;letter-spacing:18px;transition:transform 2s,opacity 2s}.op-moon.is-opening .op-card{opacity:1;transform:none}.op-moon.is-opening .op-moon{transform:translateY(-100px) scale(.55);opacity:0}.op-moon.is-opening .op-stars{transform:scale(1.8);opacity:0}
/* Photo keepsakes: uploaded photos, or monograms without photos */
.op-photo{position:absolute;inset:10px 30px;padding:12px 12px 40px;background:#faf8f2;box-shadow:0 8px 25px #0003;transform:rotate(-8deg);backface-visibility:hidden;transition:transform 1s,opacity 1s}.op-photo img{width:100%;height:100%;object-fit:cover}.op-photo span{display:grid;place-items:center;height:100%;background:#e8e1d5;color:#435348;font:italic 46px Georgia}.op-photo-1{transform:rotate(5deg)}.op-photo-2{transform:rotate(-2deg)}.op-polaroid.is-opening .op-photo-2{transform:translateX(100px) rotateY(160deg);opacity:0}.op-polaroid.is-opening .op-photo-1{transform:translateX(-100px) rotateY(-160deg);opacity:0;transition-delay:.55s}.op-polaroid.is-opening .op-photo-0{transform:rotateY(180deg);opacity:0;transition-delay:1.1s}
/* Watercolour washes */
.op-watercolour .op-card{opacity:0;transition:opacity 1.8s .5s;background:transparent;box-shadow:none}.op-watercolour .op-decor{z-index:-1}.op-watercolour .op-wash{display:block;position:absolute;width:250px;height:250px;border-radius:42% 58% 70% 30%;background:radial-gradient(ellipse,#c78f9e99,#dcb1b855,transparent 70%);transform:scale(.1);transition:transform 2.6s}.op-watercolour .wash-two{right:0;bottom:0;background:radial-gradient(ellipse,#93a78299,#c7d4b855,transparent 70%)}.op-watercolour.is-opening .op-wash{transform:scale(1.6) rotate(50deg)}.op-watercolour.is-opening .op-card{opacity:1}
/* Frosted glass */
.op-glass .op-lid{display:block;position:absolute;inset:0;border:1px solid #ffffff99;background:#ddd9ce88;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);clip-path:circle(150% at 50% 50%);transition:opacity 2.1s,backdrop-filter 2.1s,transform 2.1s}.op-glass.is-opening .op-lid{opacity:0;backdrop-filter:blur(0);transform:scale(1.15)}
@media(max-height:650px){.opening-overlay{padding-top:60px}.op-stage{height:230px;max-width:300px}.op-jharokha .op-stage{height:260px}.op-guest{margin-bottom:12px}.op-open{margin-top:16px}.op-card{padding:15px;gap:8px}.op-card strong{font-size:24px}}
@media(prefers-reduced-motion:reduce){.opening-overlay,.opening-overlay *{animation:none!important;transition:none!important}.opening-overlay.op-exit{display:none}}

/* Photo-backed double-door reveal, triggered only by the guest. */
.op-haveli{padding:0;background:#28140f url('/themes/haveli-palace.webp') center/cover;color:#fff0cc;overflow:hidden;perspective:1400px}
.haveli-doorway{position:absolute;inset:0;perspective:1400px;filter:drop-shadow(0 0 18px #0008)}
.haveli-door{position:absolute;top:0;bottom:0;width:50%;background-image:url('/themes/haveli-doors.webp');background-size:200% 100%;border:5px solid #876333;box-sizing:border-box;backface-visibility:hidden;transition:transform 2.8s cubic-bezier(.2,.6,.25,1) 1.6s;box-shadow:inset 0 0 30px #0008}
.leaf-left{left:0;background-position:left;transform-origin:left center}.leaf-right{right:0;background-position:right;transform-origin:right center}
.haveli-door:after{content:"";position:absolute;inset:6%;border:2px solid #eec675;opacity:0;box-shadow:0 0 18px #ffe1a0,inset 0 0 18px #ffe1a0}
.op-haveli.is-opening .haveli-door:after{animation:haveli-trace 1.8s ease both}.op-haveli.is-opening .leaf-left{transform:rotateY(-105deg)}.op-haveli.is-opening .leaf-right{transform:rotateY(105deg)}
.haveli-intro{position:relative;z-index:2;text-align:center;padding:20px;max-width:500px;text-shadow:0 2px 5px #000}.haveli-intro>p{background:#28140fbb;padding:12px 24px;border-radius:30px}.op-haveli .op-skip{z-index:5;background:#28140fcc;border-radius:20px;padding:10px}.op-haveli .op-open{color:#fff0cc}.op-haveli.is-opening .haveli-intro{opacity:0;transition:opacity .4s}.op-haveli .op-open span{border:3px double #d5af68;background:#552c16}
@keyframes haveli-trace{0%{opacity:0;clip-path:inset(0 50% 100% 50%)}40%{opacity:1;clip-path:inset(0)}80%{opacity:1}100%{opacity:0}}
@media(prefers-reduced-motion:reduce){.haveli-door{transition:none}.op-haveli.is-opening .haveli-door:after{animation:none}}

/* Keep long names and opening controls inside short or narrow viewports. */
.haveli-intro{width:min(100%,500px);max-height:100%;overflow-y:auto;padding:76px 24px 28px}
.haveli-intro h2{font:400 clamp(28px,6vw,46px)/1.2 'Cormorant Garamond',Georgia,serif;color:#fff0cc;overflow-wrap:anywhere;background:#28140fcc;border-radius:16px;padding:16px;margin:0 0 16px}
.haveli-intro>p{font-size:16px;line-height:1.5;overflow-wrap:anywhere}
@media(max-height:600px){.opening-overlay{place-items:start center}.op-stage{height:220px}.op-guest{margin-bottom:12px}.op-content{padding-bottom:16px}.haveli-intro{padding-top:64px}.haveli-intro h2{font-size:28px}.haveli-intro .op-open{margin-top:12px}}

/* Opening readability: dark Haveli artwork must not overpower its live text. */
.opening-overlay .op-open small{
  font:700 13px/1.45 Arial,sans-serif;
  letter-spacing:.2px;
}
.op-haveli .haveli-intro{
  width:min(100%,440px);
  max-width:440px;
  padding:72px 22px 26px;
}
.op-haveli .haveli-intro h2{
  margin:0 auto 12px;
  padding:17px 16px;
  border:1px solid rgba(215,177,108,.8);
  border-radius:14px;
  background:rgba(30,16,12,.95);
  color:#fff6e3;
  font:500 clamp(27px,6.5vw,38px)/1.18 'Cormorant Garamond',Georgia,serif;
  text-shadow:0 2px 5px rgba(0,0,0,.8);
  box-shadow:0 6px 19px rgba(0,0,0,.28);
  overflow-wrap:anywhere;
}
.op-haveli .haveli-intro > p{
  margin:0 auto;
  padding:12px 16px;
  max-width:400px;
  border:1px solid rgba(215,177,108,.55);
  border-radius:10px;
  background:rgba(30,16,12,.95);
  color:#fff6e3;
  font:500 17px/1.5 'Cormorant Garamond',Georgia,serif;
  text-shadow:0 1px 3px #000;
}
.op-haveli .haveli-intro .op-open{
  background:#241510;
  color:#fff5d9;
  border:2px solid #d4b16e;
  min-height:58px;
  padding:7px 20px 7px 8px;
  box-shadow:0 7px 22px #0007;
}
.op-haveli .haveli-intro .op-open small{
  color:#fff5d9;
  font:700 14px/1.4 Arial,sans-serif;
  letter-spacing:.2px;
}
.op-haveli .op-skip{
  color:#fff8e8;
  background:#24140ff0;
  border:1px solid #d4b16e99;
  font:600 12px/1.4 Arial,sans-serif;
}
@media(max-width:360px){
 .op-haveli .haveli-intro{padding:66px 14px 20px}
 .op-haveli .haveli-intro h2{font-size:27px;padding:14px 10px}
 .op-haveli .haveli-intro>p{font-size:16px}
}

/* Essential collection: simple typography and a short fade, isolated to the cover. */
.opening-overlay.op-essential{background:var(--paper);color:var(--ink);display:flex;align-items:center;justify-content:center;padding:72px 26px 34px;overflow:auto}
.op-essential .es-welcome{width:min(100%,420px);margin:auto;text-align:center;padding:18px 0;transition:opacity .65s ease,transform .65s ease}
.op-essential .es-accent{height:42px;margin:0 auto 20px;color:currentColor;font-size:27px;opacity:.7}.op-essential .es-accent svg{width:40px;height:40px}
.op-essential .es-family{font:10px/1.8 Arial,sans-serif;letter-spacing:.19em;text-transform:uppercase;margin:0 auto 24px;max-width:310px}
.op-essential .es-names{display:flex;flex-direction:column;gap:6px;align-items:center;font:400 clamp(38px,11cqw,64px)/1.08 'Cormorant Garamond',Georgia,serif;color:inherit;margin:0;overflow-wrap:anywhere}
.op-essential .es-names span{display:block;max-width:100%;color:inherit}.op-essential .es-names em{font:italic .67em Georgia,serif;color:inherit;opacity:.75}
.op-essential .es-guest{font-size:15px;line-height:1.65;margin:24px auto 0}.op-essential .es-guest strong{font-weight:400}
.op-essential .es-rule{width:42px;height:1px;background:currentColor;opacity:.35;margin:28px auto 18px}.op-essential .es-initials{font-size:13px;letter-spacing:.22em;margin:0 0 26px}
.op-essential .es-open{display:inline-block;border:1px solid currentColor;border-radius:3px;color:inherit;background:transparent;padding:13px 25px;min-height:44px;font:13px/1.4 Georgia,serif}
.op-essential .op-skip{color:inherit;background:transparent}.op-essential.essential-editorial .es-names{letter-spacing:-.035em}.op-essential.essential-romance .es-names em,.op-essential.essential-rose .es-names em{font-family:'Great Vibes',cursive;font-size:.85em}.op-essential.essential-noir .es-family,.op-essential.essential-bulawa .es-family{letter-spacing:.25em}
.op-essential.is-opening .es-welcome{opacity:0;transform:translateY(-8px)}.op-essential.is-opening .op-skip{opacity:0;pointer-events:none}
@media(max-height:640px){.opening-overlay.op-essential{padding-top:60px;padding-bottom:20px}.op-essential .es-accent{margin-bottom:10px;height:25px}.op-essential .es-accent svg{height:25px}.op-essential .es-names{font-size:clamp(30px,10cqw,48px)}.op-essential .es-family{margin-bottom:16px}.op-essential .es-rule{margin:18px auto 12px}.op-essential .es-initials{margin-bottom:16px}}
@media(prefers-reduced-motion:reduce){.op-essential .es-welcome{transition:none}}


/* Essential framed stationery, with individual ink and accent treatments. */
.opening-overlay.op-essential{padding:64px 24px 30px;background:radial-gradient(ellipse at 50% 42%,transparent 30%,#00000009),var(--paper)}
.op-essential .es-welcome{position:relative;isolation:isolate;display:flex;flex-direction:column;width:min(100%,380px);min-height:570px;margin:auto;padding:68px 30px 26px;border:1px solid color-mix(in srgb,currentColor 24%,transparent);background:repeating-linear-gradient(112deg,transparent 0 4px,#00000002 4px 5px),repeating-linear-gradient(23deg,transparent 0 6px,#ffffff05 6px 7px),var(--paper);box-shadow:0 12px 28px #00000015,0 2px 5px #0000000d;transition:opacity .65s ease,transform .65s ease;transform-origin:center}
.op-essential .es-welcome:before{content:"";position:absolute;inset:10px;border:1px solid currentColor;opacity:.45;pointer-events:none;z-index:-1}
.op-essential .es-welcome:after{content:"";position:absolute;inset:16px;background:linear-gradient(currentColor,currentColor) left top/30px 1px no-repeat,linear-gradient(currentColor,currentColor) left top/1px 30px no-repeat,linear-gradient(currentColor,currentColor) right bottom/30px 1px no-repeat,linear-gradient(currentColor,currentColor) right bottom/1px 30px no-repeat;opacity:.45;pointer-events:none;z-index:-1}
.op-essential .es-crest{position:absolute;top:-25px;left:50%;transform:translateX(-50%);display:grid;place-items:center;min-width:55px;min-height:55px;max-width:110px;border:1px solid color-mix(in srgb,currentColor 45%,transparent);border-radius:50%;padding:9px;background:var(--paper);color:inherit;font:italic 17px/1.3 Georgia,serif;box-shadow:0 2px 6px #00000012;outline-offset:5px;overflow-wrap:anywhere}
.op-essential .es-card-content{position:relative;z-index:1;flex:1}.op-essential .es-family{font-size:9px;max-width:240px;margin-bottom:30px;line-height:1.9}
.op-essential .es-names{font-size:clamp(34px,10cqw,57px);line-height:1.06;gap:7px}.op-essential .es-names em{font-size:.63em}
.op-essential .es-message{font:italic 15px/1.6 'Cormorant Garamond',Georgia,serif;max-width:240px;margin:27px auto 0}.op-essential .es-guest{font-size:13px;margin-top:20px}
.op-essential .es-rule{width:34px;margin:24px auto 18px}.op-essential .es-date{font-size:12px;letter-spacing:.15em;line-height:1.7;text-transform:uppercase;margin:0 auto 32px}
.op-essential .es-accent{position:absolute;inset:auto 20px 68px auto;width:67px;height:104px;margin:0;opacity:.5;pointer-events:none;z-index:0}.op-essential .es-accent svg{width:100%;height:100%}
.op-essential .es-open{position:relative;z-index:2;display:block;width:100%;border-radius:0;font-size:14px;letter-spacing:.03em;margin-top:20px;background:var(--paper);border-color:color-mix(in srgb,currentColor 65%,transparent)}
.op-essential.essential-sage .es-accent,.op-essential.essential-garden .es-accent{inset:auto auto 78px 22px;transform:scaleX(-1)}
.op-essential.essential-rose .es-welcome,.op-essential.essential-romance .es-welcome{box-shadow:0 12px 26px #713e4c15}
.op-essential.essential-noir .es-welcome:after,.op-essential.essential-bulawa .es-welcome:after{background:linear-gradient(currentColor,currentColor) left top/44px 1px no-repeat,linear-gradient(currentColor,currentColor) right bottom/44px 1px no-repeat}
.op-essential.essential-celestial .es-accent{opacity:.6;width:58px}.op-essential.essential-emerald .es-accent{width:52px;opacity:.5}
.op-essential.is-opening .es-welcome{opacity:0;transform:translateY(-18px) scale(1.015)}
@media(max-height:740px){.opening-overlay.op-essential{padding-top:58px;padding-bottom:24px}.op-essential .es-welcome{min-height:0;padding:49px 27px 24px}.op-essential .es-family{margin-bottom:21px}.op-essential .es-names{font-size:clamp(32px,9cqw,48px)}.op-essential .es-message{margin-top:20px}.op-essential .es-date{margin-bottom:18px}.op-essential .es-open{margin-top:16px}.op-essential .es-accent{height:85px;width:54px}}
@media(max-width:350px){.opening-overlay.op-essential{padding-inline:18px}.op-essential .es-welcome{padding-inline:23px}.op-essential .es-names{font-size:38px}}
@media(max-height:740px){.op-essential .es-welcome{min-height:min(570px,calc(100svh - 115px))}.op-essential .es-names{font-size:clamp(36px,12cqw,54px)}}


/* Pearl & Champagne shares the Essential framed-card opening. */
.op-essential.essential-pearl .es-crest{border-style:double;border-width:3px}
.op-essential.essential-pearl .es-welcome{box-shadow:0 12px 28px #50453818}

/* Keep the couple's names visible while opening artwork animates.
   The existing op-exit fade removes the full cover at the end, so names
   leave with the cover instead of disappearing as soon as it is tapped. */
#cover.is-opening:not(.op-exit) :is(.ds-opening-copy,.mh-opening-copy,.mg-cover-names,.wc-garden-copy){
  visibility:visible;
  opacity:1;
  pointer-events:none;
}
