/* Ziarama Wedding — shared emotional signature for couple-facing pages. */
.zi-couple-emotion.zi-cinematic-lock{overflow:hidden}
.zi-couple-cinematic-intro{
  position:fixed;inset:0;z-index:13000;display:grid;place-items:center;overflow:hidden;
  opacity:1;visibility:visible;pointer-events:auto;isolation:isolate;
  background:radial-gradient(circle at 50% 42%,rgba(255,255,255,.99) 0%,rgba(251,246,238,.98) 34%,rgba(235,221,203,.99) 76%,#e7d5bf 100%);
  transition:opacity .7s ease,visibility .7s ease;
}
.zi-couple-cinematic-intro.is-bypassed,.zi-couple-cinematic-intro.is-complete{opacity:0;visibility:hidden;pointer-events:none}
.zi-couple-cinematic-aura{position:absolute;border-radius:50%;pointer-events:none;filter:blur(28px);opacity:.48;mix-blend-mode:screen}
.zi-couple-cinematic-aura-one{width:min(72vw,650px);height:min(72vw,650px);background:radial-gradient(circle,rgba(255,235,196,.85),rgba(214,179,126,.22) 46%,transparent 72%);animation:ziCoupleAuraBreath 3.2s ease-in-out infinite}
.zi-couple-cinematic-aura-two{width:min(105vw,920px);height:min(105vw,920px);background:conic-gradient(from 40deg,transparent,rgba(255,255,255,.62),transparent 34%,rgba(210,169,108,.26),transparent 65%);animation:ziCoupleAuraTurn 9s linear infinite}
.zi-couple-cinematic-floral{position:absolute;z-index:1;width:clamp(180px,34vw,360px);pointer-events:none;opacity:.20;filter:saturate(.55) sepia(.12)}
.zi-couple-cinematic-floral-left{left:-8vw;bottom:-5vh;transform:rotate(-16deg)}
.zi-couple-cinematic-floral-right{right:-9vw;top:-4vh;transform:rotate(158deg)}
.zi-couple-cinematic-stage{position:relative;z-index:4;width:min(88vw,620px);padding:32px 20px;display:grid;justify-items:center;text-align:center;transform-style:preserve-3d}
.zi-couple-cinematic-monogram{position:relative;width:min(78vw,430px);height:min(68vw,340px);max-height:340px;display:grid;place-items:center;perspective:1000px;filter:drop-shadow(0 18px 42px rgba(107,72,38,.12));transition:transform .85s cubic-bezier(.2,.8,.2,1),filter .85s ease,opacity .6s ease}
.zi-couple-cinematic-heart{position:absolute;inset:50% auto auto 50%;width:min(66vw,315px);height:auto;transform:translate(-50%,-48%);overflow:visible}
.zi-couple-cinematic-heart-shadow{fill:rgba(255,248,237,.58);stroke:rgba(255,255,255,.56);stroke-width:1;opacity:0}
.zi-couple-cinematic-heart-line{fill:none;stroke:url(#ziCoupleHeartStroke);stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;filter:drop-shadow(0 0 8px rgba(184,137,77,.30))}
.zi-couple-cinematic-tracer{fill:#785033;stroke:rgba(255,247,231,.72);stroke-width:.7;paint-order:stroke fill;font-family:Georgia,"Times New Roman",serif;font-size:42px;font-weight:500;letter-spacing:-.04em;opacity:0;filter:drop-shadow(0 7px 12px rgba(83,52,31,.14)) drop-shadow(0 0 8px rgba(255,240,213,.64));transition:opacity .22s ease,font-size .45s cubic-bezier(.2,.8,.2,1),filter .45s ease}
.zi-couple-cinematic-intro.is-heart-united .zi-couple-cinematic-tracer{font-size:54px;filter:drop-shadow(0 8px 18px rgba(83,52,31,.16)) drop-shadow(0 0 18px rgba(255,229,186,.88))}
.zi-couple-cinematic-intro.is-heart-united .zi-couple-cinematic-heart-shadow{animation:ziCoupleHeartFill .58s ease both}
.zi-couple-cinematic-names{margin-top:-30px;display:flex;align-items:center;gap:12px;font:400 clamp(22px,4vw,31px)/1.15 Georgia,"Times New Roman",serif;color:#684125;opacity:0;transform:translateY(12px);letter-spacing:-.02em}
.zi-couple-cinematic-names i{font-style:normal;color:#b98547;font-size:11px}
.zi-couple-cinematic-caption{margin:10px 0 0;font:700 8px/1.3 Arial,sans-serif;letter-spacing:.34em;color:#9a744f;opacity:0;transform:translateY(9px)}
.zi-couple-cinematic-intro.is-heart-united .zi-couple-cinematic-names{animation:ziCoupleCopyIn .65s .10s ease forwards}
.zi-couple-cinematic-intro.is-heart-united .zi-couple-cinematic-caption{animation:ziCoupleCopyIn .65s .19s ease forwards}
.zi-couple-cinematic-sparkles i{position:absolute;width:5px;height:5px;border-radius:50%;background:#fff7dc;box-shadow:0 0 14px rgba(245,215,164,.9);opacity:0}
.zi-couple-cinematic-sparkles i:nth-child(1){left:14%;top:22%}.zi-couple-cinematic-sparkles i:nth-child(2){right:13%;top:31%}.zi-couple-cinematic-sparkles i:nth-child(3){left:23%;bottom:23%}.zi-couple-cinematic-sparkles i:nth-child(4){right:21%;bottom:18%}.zi-couple-cinematic-sparkles i:nth-child(5){left:47%;top:10%}.zi-couple-cinematic-sparkles i:nth-child(6){right:45%;bottom:9%}
.zi-couple-cinematic-intro.is-heart-united .zi-couple-cinematic-sparkles i{animation:ziCoupleSparkle 1.8s ease-in-out infinite}
.zi-couple-cinematic-intro.is-heart-united .zi-couple-cinematic-sparkles i:nth-child(2){animation-delay:.22s}.zi-couple-cinematic-intro.is-heart-united .zi-couple-cinematic-sparkles i:nth-child(3){animation-delay:.44s}.zi-couple-cinematic-intro.is-heart-united .zi-couple-cinematic-sparkles i:nth-child(4){animation-delay:.66s}.zi-couple-cinematic-intro.is-heart-united .zi-couple-cinematic-sparkles i:nth-child(5){animation-delay:.88s}.zi-couple-cinematic-intro.is-heart-united .zi-couple-cinematic-sparkles i:nth-child(6){animation-delay:1.1s}
.zi-couple-cinematic-curtain{position:absolute;top:0;bottom:0;width:51%;z-index:8;pointer-events:none;background:linear-gradient(90deg,#f7ede0,#fffaf4);transition:transform .92s cubic-bezier(.72,0,.18,1);box-shadow:0 0 50px rgba(121,81,47,.12)}
.zi-couple-cinematic-curtain-left{left:0;transform-origin:left}.zi-couple-cinematic-curtain-right{right:0;transform-origin:right;background:linear-gradient(270deg,#f7ede0,#fffaf4)}
.zi-couple-cinematic-intro:not(.is-opening) .zi-couple-cinematic-curtain{opacity:0}
.zi-couple-cinematic-intro.is-opening .zi-couple-cinematic-curtain{opacity:1}
.zi-couple-cinematic-intro.is-opening .zi-couple-cinematic-curtain-left{transform:translateX(-102%)}
.zi-couple-cinematic-intro.is-opening .zi-couple-cinematic-curtain-right{transform:translateX(102%)}

/* Handoff into the page and subtle shared emotional motion. */
.zi-couple-emotion [data-zi-cinematic-target],.zi-couple-emotion #main-content>section:first-of-type,.zi-couple-emotion main>section:first-of-type{--zi-cinematic-x:0px;--zi-cinematic-y:0px;will-change:transform,filter,opacity}
.zi-couple-emotion.zi-cinematic-lock [data-zi-cinematic-target],.zi-couple-emotion.zi-cinematic-lock #main-content>section:first-of-type,.zi-couple-emotion.zi-cinematic-lock main>section:first-of-type{transform:translate3d(0,16px,0) scale(1.025);filter:brightness(.82) saturate(.84) blur(1.5px)}
.zi-couple-emotion .zi-cinematic-revealed{animation:ziCoupleHeroSettle 1.2s cubic-bezier(.16,.84,.24,1) both}
.zi-couple-emotion .zi-emotion-reveal{opacity:0;transform:translateY(22px);transition:opacity .72s ease,transform .82s cubic-bezier(.2,.75,.25,1)}
.zi-couple-emotion .zi-emotion-reveal.is-visible{opacity:1;transform:none}
.zi-couple-emotion .zi-signature-heading{position:relative}
.zi-couple-emotion .zi-signature-heading:after{content:"";display:block;width:0;height:1px;margin:.42em auto 0;background:linear-gradient(90deg,transparent,#c99a61 18%,#875c35 50%,#c99a61 82%,transparent);opacity:.72;transition:width .9s cubic-bezier(.2,.75,.25,1)}
.zi-couple-emotion .zi-signature-heading.zi-signature-ready:after{width:min(138px,38vw)}

/* Premium MOE loading: keep the blur placeholder but replace the generic sweep. */
.zi-couple-emotion .zi-image-shell{background:linear-gradient(135deg,var(--zi-image-color,#e9dfd2),#f5eadf)}
.zi-couple-emotion .zi-image-shell[data-image-state="loading"]>.zi-image-shimmer,.zi-couple-emotion .zi-image-shell[data-image-state="decoding"]>.zi-image-shimmer{display:block;background:radial-gradient(circle at 50% 50%,rgba(255,255,255,.14),transparent 62%)}
.zi-couple-emotion .zi-image-shimmer:after{background:linear-gradient(106deg,transparent 17%,rgba(255,247,232,.13) 38%,rgba(255,255,255,.58) 49%,rgba(229,191,142,.16) 60%,transparent 82%);animation:ziCoupleMediaSweep 1.7s cubic-bezier(.4,0,.2,1) infinite}
.zi-couple-emotion .zi-image-shell[data-image-state="loading"]:before,.zi-couple-emotion .zi-image-shell[data-image-state="decoding"]:before{content:"♡";position:absolute;z-index:3;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:42px;height:42px;border:1px solid rgba(126,86,51,.22);border-radius:50%;background:rgba(255,251,246,.48);color:#9c7047;font:400 18px/1 Georgia,serif;backdrop-filter:blur(5px);animation:ziCoupleLoaderHeart 1.5s ease-in-out infinite;pointer-events:none}

/* A short pulse is used when the full intro already played during this session. */
.zi-couple-emotion.zi-couple-returning #main-content,.zi-couple-emotion.zi-couple-returning main{animation:ziCoupleReturn .42s ease both}

@keyframes ziCoupleHeartFill{from{opacity:0;transform:scale(.94);transform-origin:center}to{opacity:1;transform:scale(1);transform-origin:center}}
@keyframes ziCoupleCopyIn{to{opacity:1;transform:none}}
@keyframes ziCoupleSparkle{0%,100%{opacity:0;transform:scale(.4)}42%{opacity:.95;transform:scale(1.3)}58%{opacity:.55;transform:scale(.8)}}
@keyframes ziCoupleAuraBreath{0%,100%{transform:scale(.9);opacity:.34}50%{transform:scale(1.08);opacity:.62}}
@keyframes ziCoupleAuraTurn{to{transform:rotate(360deg)}}
@keyframes ziCoupleHeroSettle{0%{transform:translate3d(0,18px,0) scale(1.055);filter:brightness(.80) saturate(.82) blur(1.5px)}55%{filter:brightness(1.04) saturate(1.02) blur(0)}100%{transform:translate3d(var(--zi-cinematic-x,0),var(--zi-cinematic-y,0),0) scale(1);filter:none}}
@keyframes ziCoupleMediaSweep{from{transform:translateX(-115%)}to{transform:translateX(115%)}}
@keyframes ziCoupleLoaderHeart{0%,100%{opacity:.45;transform:translate(-50%,-50%) scale(.94)}50%{opacity:.95;transform:translate(-50%,-50%) scale(1.08)}}
@keyframes ziCoupleReturn{from{opacity:.72;transform:translateY(6px)}to{opacity:1;transform:none}}

@media(max-width:760px){
  .zi-couple-cinematic-stage{padding:18px 10px}.zi-couple-cinematic-monogram{height:280px}.zi-couple-cinematic-names{margin-top:-26px;font-size:23px}.zi-couple-cinematic-caption{font-size:7px;letter-spacing:.25em}
  .zi-couple-cinematic-floral{width:220px}.zi-couple-cinematic-floral-left{left:-95px;bottom:-35px}.zi-couple-cinematic-floral-right{right:-105px;top:-48px}
}
@media(prefers-reduced-motion:reduce){
  .zi-couple-cinematic-intro{display:none!important}.zi-couple-emotion.zi-cinematic-lock{overflow:auto}
  .zi-couple-emotion .zi-cinematic-revealed,.zi-couple-emotion .zi-emotion-reveal,.zi-couple-emotion.zi-couple-returning #main-content,.zi-couple-emotion.zi-couple-returning main{animation:none!important;transition:none!important;opacity:1!important;transform:none!important;filter:none!important}
  .zi-couple-emotion .zi-signature-heading:after{transition:none;width:min(138px,38vw)}
  .zi-couple-emotion .zi-image-shimmer:after,.zi-couple-emotion .zi-image-shell:before{animation:none!important}
}
