/* Original paper, seal and ribbon artwork; no video or external animation runtime. */
.premium-gate{position:fixed;inset:0;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:24px max(20px,env(safe-area-inset-right));overflow:auto;background:radial-gradient(ellipse at 50% 0%,#ffffff16,transparent 65%),var(--primary);color:#fff;text-align:center;isolation:isolate;--envelope-paper:#f6efdf;--fold-paper:#e6dbc3;--opening-height:min(44svh,370px)}
.premium-gate:before{content:'';position:absolute;inset:12px;border:1px solid color-mix(in srgb,var(--accent) 60%,transparent);pointer-events:none}
.premium-gate[hidden]{display:none!important}.premium-gate.is-open{pointer-events:none}
.premium-opening-copy{position:relative;width:min(560px,100%);z-index:9}.premium-kicker{font-size:10px;letter-spacing:3px;text-transform:uppercase;margin:0 0 8px}.premium-opening-copy h2{font:italic 500 clamp(30px,7vw,52px)/1.16 var(--serif,Georgia);margin:0;overflow-wrap:anywhere}.premium-opening-copy>p:last-child{font-size:13px;opacity:.85;margin:10px 0 15px}
.premium-envelope{position:relative;width:min(430px,100%);height:var(--opening-height);min-height:180px;border-radius:8px;background:var(--envelope-paper);box-shadow:0 22px 65px #0005;perspective:1000px;flex-shrink:0}
.premium-letter{position:absolute;inset:8%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;border:1px solid var(--accent);background:var(--envelope-paper);color:var(--primary);padding:20px 12px;overflow:hidden}.premium-letter-ornament{color:var(--accent);font-size:24px}.premium-monogram{font:italic 500 38px/1.15 var(--serif,Georgia)}.premium-letter-names{font:italic 500 clamp(20px,5vw,29px)/1.15 var(--serif,Georgia);max-width:100%;overflow-wrap:anywhere}.premium-letter>span:last-of-type{font-size:12px}
.envelope-fold{position:absolute;inset:-1px;border-radius:8px;background:linear-gradient(145deg,var(--envelope-paper),var(--fold-paper));transition:transform 1s cubic-bezier(.22,.61,.36,1),opacity .7s;pointer-events:none}.fold-top{z-index:5;clip-path:polygon(0 0,100% 0,50% 56%);transform-origin:50% 0;filter:drop-shadow(0 3px 2px #0002)}.fold-left{z-index:3;clip-path:polygon(0 0,55% 50%,0 100%)}.fold-right{z-index:3;clip-path:polygon(100% 0,45% 50%,100% 100%)}.fold-bottom{z-index:4;clip-path:polygon(0 100%,50% 42%,100% 100%)}
.premium-seal{position:absolute;z-index:8;top:calc(50% + 18px);width:88px;height:88px;border-radius:46% 51% 47% 50%;display:grid;place-items:center;background:radial-gradient(circle at 32% 20%,#fff0b6,#d5ad60 46%,#96702e);border:2px solid #f4db99;color:#61471e;box-shadow:0 7px 15px #0004,inset 0 0 0 5px #bb8d49,inset 0 0 0 7px #efd293;cursor:pointer;font:italic 700 24px var(--serif,Georgia);transition:transform .55s,opacity .4s;text-shadow:0 1px #fff6}.premium-seal span{border:1px solid #8d652c77;width:62px;height:62px;border-radius:50%;display:grid;place-items:center;padding:6px;font-size:clamp(14px,4vw,22px);overflow-wrap:anywhere}.premium-seal:focus-visible,.premium-skip:focus-visible{outline:3px solid var(--accent);outline-offset:5px}.premium-tap-hint{position:relative;margin:4px 0 0;font-size:12px;letter-spacing:.4px}.premium-skip{position:relative;background:none;border:0;padding:10px;color:inherit;text-decoration:underline;text-underline-offset:5px;font:inherit;font-size:12px;cursor:pointer;opacity:.8}
.premium-ribbon{display:none;position:absolute;inset:0;pointer-events:none}.opening-ribbon_reveal .premium-ribbon{display:block}.premium-ribbon:before{content:'';position:absolute;top:49%;left:0;right:0;height:16px;background:linear-gradient(var(--accent),#fff6,var(--accent));box-shadow:0 2px 3px #0002;transition:transform .7s,opacity .5s}.premium-ribbon i{position:absolute;top:50%;left:50%;width:68px;height:32px;border:8px solid var(--accent);border-radius:65% 25% 60% 35%;transform-origin:right center;box-shadow:inset 0 1px #fff7,0 2px 4px #0002;transition:transform .7s,opacity .6s}.premium-ribbon .ribbon-left{transform:translate(-100%,-50%) rotate(18deg)}.premium-ribbon .ribbon-right{transform:translate(0,-50%) rotate(-18deg);transform-origin:left center}.premium-ribbon .ribbon-knot{width:24px;height:22px;border-radius:9px;transform:translate(-50%,-50%);background:var(--accent)}
.is-opening .premium-seal{transform:translateY(-25px) scale(.82) rotate(-12deg);opacity:0}.is-opening .fold-top{transform:rotateX(175deg);opacity:0;transition-delay:.18s}.is-opening .fold-left{transform:translateX(-105%);opacity:0;transition-delay:.5s}.is-opening .fold-right{transform:translateX(105%);opacity:0;transition-delay:.5s}.is-opening .fold-bottom{transform:translateY(105%);opacity:0;transition-delay:.5s}.is-opening .premium-ribbon:before{transform:translateX(110%);opacity:0;transition-delay:1.1s}.is-opening .ribbon-left{transform:translate(-190%,-50%) rotate(-40deg);opacity:0;transition-delay:1.05s}.is-opening .ribbon-right{transform:translate(90%,-50%) rotate(40deg);opacity:0;transition-delay:1.05s}.is-opening .ribbon-knot{transform:translate(-50%,-50%) scale(.6);opacity:0;transition-delay:1.05s}.premium-gate.is-opening{animation:premium-gate-out .45s 2s ease both}.premium-gate.opening-elegant_reveal.is-opening{animation:premium-gate-out .65s ease both}.opening-elegant_reveal .envelope-fold{display:none}.opening-elegant_reveal .premium-seal{top:auto;position:relative;margin-top:-58px;width:68px;height:68px}.opening-elegant_reveal .premium-seal span{width:48px;height:48px;font-size:16px}
@keyframes premium-gate-out{to{opacity:0;transform:translateY(-8px);visibility:hidden}}
.premium-collection-ivory_gold.premium-gate,.premium-collection-white_floral.premium-gate{background:radial-gradient(ellipse at top,#fff,transparent),#f5f0e7;color:var(--primary);--envelope-paper:#fffdf8;--fold-paper:#e9e1d2}.premium-collection-white_floral.premium-gate{background-image:url('../images/invitations/florals/white-gold.svg');background-repeat:no-repeat;background-position:center;background-size:cover;--envelope-paper:#fff;--fold-paper:#e6eee7}
.invitation.premium-card{--premium-paper:var(--paper)}.premium-card .section{padding-block:clamp(48px,10vw,90px)}.premium-card .hero-content>*{transition:opacity .6s,transform .6s}.gate-locked .premium-card .hero-content>*{opacity:0;transform:translateY(12px)}.premium-open .hero-content>:nth-child(2){transition-delay:.1s}.premium-open .hero-content>:nth-child(3){transition-delay:.18s}.premium-card .names{font-weight:500;letter-spacing:-1px;overflow-wrap:anywhere}.premium-card .premium-personal{margin:0 auto 24px;padding:14px 18px;max-width:560px;border-top:1px solid color-mix(in srgb,var(--accent) 50%,transparent);border-bottom:1px solid color-mix(in srgb,var(--accent) 50%,transparent);font-size:14px}.premium-personal strong{display:block;font:italic 500 30px/1.25 var(--serif);margin:6px}.premium-personal small{font-size:10px;letter-spacing:2px}.premium-card .event-card{border:0;border-left:2px solid var(--accent);border-radius:0;background:transparent;padding:12px 18px;text-align:left}.premium-card .programme li{background:transparent;border-radius:0;border-bottom:1px solid color-mix(in srgb,var(--accent) 22%,transparent)}.premium-card .pass{background:var(--paper);box-shadow:0 10px 30px #00008;border:1px solid color-mix(in srgb,var(--accent) 40%,transparent)}.premium-card .reveal{transition-duration:.55s}.premium-card .reveal>h2{transition:transform .65s .08s}.premium-card .reveal:not(.visible)>h2{transform:translateY(8px)}
.premium-card.premium-collection-navy_gold{--paper:#fbf8ef;--soft:#e9e2d1}.premium-collection-navy_gold .section-title{text-transform:none;font-weight:500}.premium-card.premium-collection-ivory_gold{--paper:#fffdf8;--soft:#f0e9dd}.premium-collection-ivory_gold .hero:not(.with-photo){background:linear-gradient(145deg,#f6efdf,#fffdf8);color:var(--primary);align-items:center}.premium-collection-ivory_gold .hero:not(.with-photo):after{display:none}.premium-collection-ivory_gold .hero:not(.with-photo) .hero-content{text-shadow:none}.premium-card.premium-collection-white_floral{--paper:#fff;--soft:#eff4ef}.premium-collection-white_floral .hero:not(.with-photo){background:#f3f7f1 url('../images/invitations/florals/white-gold.svg') center/cover;color:var(--primary);align-items:center}.premium-collection-white_floral .hero:not(.with-photo):after{display:none}.premium-collection-white_floral .hero:not(.with-photo) .hero-content{text-shadow:none}.premium-collection-white_floral .section:before,.premium-collection-white_floral .section:after{display:none}.premium-collection-white_floral .section-title{font-weight:400;font-style:italic}.premium-card .calendar-link{margin-top:22px}
@media(max-height:650px){.premium-gate{gap:4px;padding-block:18px;--opening-height:32svh}.premium-opening-copy h2{font-size:26px}.premium-opening-copy>p:last-child{margin:5px 0 8px}.premium-seal{width:68px;height:68px;top:calc(50% + 14px)}.premium-seal span{width:48px;height:48px;font-size:16px}.premium-envelope{min-height:115px}.premium-tap-hint{font-size:11px}.premium-skip{padding:6px}}
@media(prefers-reduced-motion:reduce){.premium-gate,.premium-gate *,.premium-card .hero-content>*,.premium-card .reveal,.premium-card .reveal>h2{animation:none!important;transition:none!important}.premium-card .hero-content>*,.premium-card .reveal,.premium-card .reveal>h2{transform:none!important}.premium-card .reveal{opacity:1}}
.premium-seal{top:50%;left:50%;transform:translate(-50%,-50%)}.is-opening .premium-seal{transform:translate(-50%,-75%) scale(.82) rotate(-12deg)}.opening-elegant_reveal .premium-seal{position:absolute;top:100%;margin:0}.opening-elegant_reveal .premium-envelope{margin-bottom:30px}.premium-card .programme-item{background:transparent;border-radius:0;border-bottom:1px solid color-mix(in srgb,var(--accent) 22%,transparent)}
@media print{.premium-gate{display:none!important}.premium-card .hero-content>*{opacity:1!important;transform:none!important}}
.premium-gate{overflow-x:hidden;overflow-y:auto}
.premium-envelope{height:auto;aspect-ratio:1.5;min-height:0}
.envelope-stitch{position:absolute;inset:0;width:100%;height:100%;z-index:6;pointer-events:none;transition:opacity .3s}
.envelope-stitch path{fill:none;stroke:#a6987b;stroke-width:.35;opacity:.6}
.is-opening .envelope-stitch{opacity:0}
.opening-elegant_reveal .envelope-stitch{display:none}
.premium-ribbon{z-index:7}
.opening-ribbon_reveal .premium-seal{background:transparent;box-shadow:none;border:0;border-radius:12px;width:170px;height:85px}
.opening-ribbon_reveal .premium-seal span{visibility:hidden}
.opening-ribbon_reveal.is-opening .premium-ribbon:before,.opening-ribbon_reveal.is-opening .premium-ribbon i{transition-delay:0s}
.opening-ribbon_reveal.is-opening .fold-top{transition-delay:.45s}
.opening-ribbon_reveal.is-opening :is(.fold-left,.fold-right,.fold-bottom){transition-delay:.75s}
.premium-card .hero h1:focus{outline:none}
.premium-collection-white_floral .hero:not(.with-photo){background-size:200px;background-repeat:no-repeat;background-position:left top}
.invitation.premium-card:is(.premium-collection-navy_gold,.premium-collection-ivory_gold,.premium-collection-white_floral){--ink:#292b2d}
.invitation.premium-card:is(.premium-collection-navy_gold,.premium-collection-ivory_gold,.premium-collection-white_floral) :is(.section,.detail,.dress-card,.rsvp-card){background:var(--paper);color:var(--ink)}
.invitation.premium-card:is(.premium-collection-navy_gold,.premium-collection-ivory_gold,.premium-collection-white_floral) :is(.section-title,.recipient-name,.family-intro,.detail b,.event-card h3,.programme-item span,.button.secondary){color:var(--primary)}
