@font-face{font-family:"Great Vibes";src:url("assets/fonts/great-vibes.woff2") format("woff2");font-style:normal;font-weight:400;font-display:swap}
:root{--cream:#f7efdf;--cream2:#fffaf2;--gold:#b6842f;--gold2:#d6ad57;--gold-dark:#7f5617;--green:#173e32;--ink:#2d2923;--wine:#781f30;--shadow:0 24px 70px rgba(74,53,19,.17);--soft-shadow:0 14px 34px rgba(74,53,19,.12)}
*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--cream)}body{margin:0;color:var(--ink);font-family:"Cormorant Garamond",Georgia,serif;background:radial-gradient(circle at 10% 0%,rgba(214,173,87,.09),transparent 32%),linear-gradient(180deg,#fbf5e9,#f6eddc 45%,#fffaf1);overflow-x:hidden}body.locked{overflow:hidden}img{display:block;width:100%;height:auto}.site{opacity:0;visibility:hidden;transition:opacity .8s}.site.ready{opacity:1;visibility:visible}.section{position:relative;max-width:1100px;margin:auto;padding:92px 28px}.eyebrow{font-family:Montserrat,Arial,sans-serif;letter-spacing:.20em;text-transform:uppercase;font-size:.72rem;color:var(--gold-dark);font-weight:600}.signature,.fancy-heading,.journey-copy h4{font-family:"Great Vibes","Brush Script MT",cursive!important;font-weight:400!important}.fancy-heading{font-size:clamp(3rem,6vw,5.2rem);line-height:.95;margin:.22em 0;color:var(--gold-dark)}.section-intro{font-size:1.12rem;color:#6d624f}.reveal{opacity:0;transform:translateY(35px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.75,.2,1)}.reveal.visible{opacity:1;transform:none}
.intro{position:fixed;inset:0;z-index:999;display:grid;place-items:center;background:radial-gradient(circle at 50% 25%,rgba(255,255,255,.9),transparent 40%),linear-gradient(155deg,#efe1c8,#fbf6ea 55%,#ead8b9);transition:opacity .7s,visibility .7s}.intro.hidden{opacity:0;visibility:hidden;pointer-events:none}.envelope-wrap{width:min(560px,92vw);text-align:center}.intro-blessing{font-size:.96rem;letter-spacing:.08em;color:var(--green);margin-bottom:18px}.envelope{position:relative;aspect-ratio:1.45/1;background:#ead8b8;border:1px solid rgba(126,87,24,.35);box-shadow:0 35px 100px rgba(76,52,14,.23);border-radius:9px;perspective:1100px}.envelope-back{position:absolute;inset:0;background:linear-gradient(145deg,transparent 49.7%,rgba(183,132,47,.28) 50%,transparent 50.5%),linear-gradient(215deg,transparent 49.7%,rgba(183,132,47,.22) 50%,transparent 50.5%)}.envelope-card{position:absolute;left:8%;right:8%;bottom:9%;height:72%;padding:32px 16px;background:var(--cream2);border:1px solid rgba(183,132,47,.42);box-shadow:0 12px 30px rgba(72,48,12,.12);transition:transform 1.2s cubic-bezier(.2,.8,.2,1);z-index:2}.envelope-card .tiny{text-transform:uppercase;letter-spacing:.13em;font-family:Montserrat,sans-serif;font-size:.64rem;color:var(--gold-dark)}.envelope-card h1{font-size:clamp(2.7rem,8vw,5rem);margin:18px 0 8px;color:var(--gold-dark);line-height:.9}.envelope-flap{position:absolute;left:0;right:0;top:0;height:56%;z-index:4;transform-origin:top;clip-path:polygon(0 0,100% 0,50% 100%);background:linear-gradient(160deg,#f7e9d0,#dfc49d);transition:transform .8s}.seal{position:absolute;z-index:6;left:50%;top:52%;transform:translate(-50%,-50%);width:92px;height:92px;border-radius:50%;border:0;color:#ffd8a0;background:radial-gradient(circle at 32% 28%,#aa3b47 0 8%,#8b2434 27%,#6c1527 70%,#4b0d18);box-shadow:0 9px 20px rgba(69,11,23,.35),inset 0 0 0 5px rgba(255,213,146,.09),inset 0 0 0 8px rgba(59,3,15,.22);font-family:"Cormorant Garamond",serif;font-size:1.3rem;cursor:pointer;transition:.35s}.seal:hover{transform:translate(-50%,-50%) scale(1.05)}.tap-copy{font-family:Montserrat,sans-serif;letter-spacing:.11em;text-transform:uppercase;font-size:.68rem;color:#6e5a36;margin-top:24px}.envelope.open .envelope-flap{transform:rotateX(180deg);z-index:1}.envelope.open .envelope-card{transform:translateY(-38%) scale(1.03)}.envelope.open .seal{transform:translate(-50%,-50%) scale(.1) rotate(18deg);opacity:0}
.hero{min-height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;padding-top:110px}.hero:before{content:"";position:absolute;inset:22px;border:1px solid rgba(182,132,47,.28);border-radius:34px}.overline{font-style:italic;font-size:1.25rem}.hero-names{font-size:clamp(5.2rem,12vw,9.4rem);line-height:.78;margin:.18em 0;color:var(--gold-dark)}.hero-names span{font-size:.58em;color:var(--green)}.hero-sub{font-size:1.28rem;line-height:1.55;max-width:700px}.hero-date{display:flex;flex-direction:column;align-items:center;gap:3px;margin:20px 0 32px;color:var(--green)}.hero-date>span{font-size:1.22rem;font-weight:600}.hero-date small{font-style:italic;color:#7b6b50}.hero-date strong{font-family:Italiana,serif;font-size:2.8rem;letter-spacing:.06em;color:var(--gold-dark);font-weight:400}.hero-date strong em{font-family:"Great Vibes",cursive;font-size:.82em}.countdown{display:grid;grid-template-columns:repeat(4,minmax(72px,110px));gap:12px}.countdown .unit{padding:18px 10px;background:rgba(255,250,240,.82);border:1px solid rgba(182,132,47,.24);border-radius:17px;box-shadow:var(--soft-shadow)}.countdown strong{display:block;font-family:Italiana,serif;font-size:1.45rem;color:var(--green);font-weight:400}.countdown span{font-family:Montserrat,sans-serif;font-size:.58rem;letter-spacing:.09em;text-transform:uppercase}.scroll-cue{margin-top:24px;font-style:italic}.scroll-cue span{display:inline-block;animation:bounce 1.8s infinite}@keyframes bounce{50%{transform:translateY(7px)}}
.section-heading{text-align:center;max-width:760px;margin:0 auto 48px}.journey-loop{max-width:980px;margin:0 auto 70px;padding:22px 10px 30px;background:rgba(255,250,240,.52);border:1px solid rgba(182,132,47,.16);border-radius:28px;overflow:hidden}.journey-loop-track{position:relative;height:160px}.journey-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.journey-base{fill:none;stroke:rgba(182,132,47,.18);stroke-width:4}.journey-runner{fill:none;stroke:var(--gold2);stroke-width:4;stroke-linecap:round;stroke-dasharray:80 930;animation:dashJourney 14s linear infinite}@keyframes dashJourney{to{stroke-dashoffset:-1010}}.milestone{position:absolute;text-align:center;transform:translate(-50%,-50%);font-family:Montserrat,sans-serif;color:#756143;font-size:.58rem;text-transform:uppercase}.milestone i{display:grid;place-items:center;width:42px;height:42px;margin:auto;border-radius:50%;background:#fffaf0;border:1px solid rgba(182,132,47,.32);font-style:normal}.m1{left:6%;top:55%}.m2{left:22%;top:33%}.m3{left:39%;top:58%}.m4{left:57%;top:31%}.m5{left:75%;top:59%}.m6{left:94%;top:42%}.travelling-heart{position:absolute;left:3%;top:42%;color:var(--wine);animation:travelHeart 14s ease-in-out infinite}@keyframes travelHeart{0%{left:3%;top:43%}16%{left:21%;top:20%}33%{left:38%;top:46%}50%{left:56%;top:20%}66%{left:74%;top:48%}84%{left:91%;top:30%}90%{transform:scale(1.8)}100%{left:94%;top:30%;transform:scale(.2);opacity:0}}
.journey-line{position:absolute;left:50%;top:400px;bottom:110px;width:2px;background:rgba(182,132,47,.16);transform:translateX(-50%)}.journey-line span{display:block;height:16%;background:linear-gradient(var(--gold2),var(--gold));animation:verticalRun 7s infinite}@keyframes verticalRun{to{transform:translateY(625%)}}.journey-card{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:58px;margin:85px 0;perspective:1200px}.journey-card.right .photo-frame,.journey-card.right .video-call-collage{order:2}.photo-frame{overflow:hidden;border-radius:26px;padding:8px;background:#fffaf0;border:1px solid rgba(182,132,47,.34);box-shadow:var(--shadow);will-change:transform}.photo-frame img{aspect-ratio:4/5;object-fit:cover;border-radius:19px;transform:scale(1.06)}.journey-copy{background:rgba(255,250,240,.9);padding:34px;border:1px solid rgba(182,132,47,.18);border-radius:24px}.chapter-number{font-family:Italiana,serif;color:var(--gold2);font-size:.86rem}.journey-copy h4{font-size:clamp(2.8rem,5vw,4.35rem);color:var(--gold-dark);line-height:1;margin:.18em 0}.journey-copy p{font-size:1.16rem;line-height:1.55}.yes-forever{color:var(--wine)!important}
.video-call-collage{position:relative;min-height:470px;perspective:1000px}.call-photo{position:absolute;width:61%;aspect-ratio:4/5;border:8px solid #fffaf0;border-radius:24px;box-shadow:var(--shadow);overflow:hidden;background:linear-gradient(145deg,#e9dfcc,#fff8ec);display:grid;place-items:center}.call-photo:nth-child(1){left:2%;top:4%;transform:rotate(-8deg);animation:floatCard1 5.5s infinite}.call-photo:nth-child(2){right:0;top:15%;transform:rotate(7deg);animation:floatCard2 6s infinite}.call-photo:nth-child(3){left:20%;bottom:0;animation:floatCard3 5.1s infinite}.call-photo.placeholder:before{content:"📱";font-size:3.1rem}.call-photo.placeholder span{position:absolute;bottom:18px;font-family:Montserrat,sans-serif;font-size:.62rem}.phone-glow{position:absolute;width:160%;height:60%;background:radial-gradient(circle,rgba(214,173,87,.35),transparent 60%)}@keyframes floatCard1{50%{transform:rotate(-5deg) translateY(-8px)}}@keyframes floatCard2{50%{transform:rotate(4deg) translateY(9px)}}@keyframes floatCard3{50%{transform:rotate(2deg) translateY(-10px)}}
.engagement{text-align:center}.engagement-grid{max-width:850px;margin:44px auto;display:grid;grid-template-columns:1fr 1fr;gap:28px}.polaroid{padding:9px 9px 32px;background:#fff;box-shadow:var(--shadow)}.polaroid img{aspect-ratio:4/5;object-fit:cover}.p1{transform:rotate(-3deg)}.p2{transform:rotate(3deg) translateY(20px)}.video-card{display:block;max-width:780px;margin:62px auto 0;text-decoration:none;color:white;border-radius:28px;overflow:hidden;box-shadow:var(--shadow)}.video-thumb{position:relative;aspect-ratio:16/9;background:#2d2923;overflow:hidden}.video-thumb img{height:100%;object-fit:cover}.video-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(18,12,6,.08),rgba(18,12,6,.62))}.play{position:absolute;left:50%;top:46%;transform:translate(-50%,-50%);width:76px;height:76px;border-radius:50%;display:grid;place-items:center;background:#fff;color:var(--wine);font-size:1.7rem}.video-copy{position:absolute;left:0;right:0;bottom:24px;display:flex;flex-direction:column}.video-copy strong{font-family:"Great Vibes";font-size:2.7rem;font-weight:400}.video-copy small{font-family:Montserrat,sans-serif;font-size:.62rem}
.event-card{position:relative;margin:54px auto;max-width:950px;min-height:430px;padding:54px;border-radius:34px;overflow:hidden;border:1px solid rgba(182,132,47,.22);box-shadow:var(--shadow);display:grid;grid-template-columns:minmax(290px,42%) 1fr;gap:44px;align-items:center}.event-card .event-copy{grid-column:2;text-align:center}.event-label{font-family:Montserrat,sans-serif;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--green)}.event-card h4{font-size:1.7rem;margin:.5em 0}.elegant-time{font-family:Italiana,serif;font-size:2.65rem;color:var(--gold-dark);margin:.08em 0}.elegant-time em{font-family:"Great Vibes";font-size:.82em}.venue{font-size:1.08rem;line-height:1.5}.event-actions{display:flex;justify-content:center;gap:11px;flex-wrap:wrap;margin-top:24px}.event-actions a{font-family:Montserrat,sans-serif;text-decoration:none;font-size:.68rem;padding:12px 17px;border-radius:999px;border:1px solid var(--gold);background:#fff9ea;color:var(--green);font-weight:600}.event-actions a:first-child{background:var(--green);color:#fff}.event-art,.event-visual{grid-column:1;grid-row:1;min-height:310px;display:grid;place-items:center}.haldi{background:linear-gradient(135deg,#fff9dc,#fcebb1 52%,#f8d864)}.haldi-art{border-radius:25px;overflow:hidden;box-shadow:0 18px 46px rgba(157,111,6,.18)}.haldi-art img{height:100%;min-height:320px;object-fit:cover}.haldi-powder{position:absolute;inset:0;pointer-events:none}.haldi.active .haldi-powder:before,.haldi.active .haldi-powder:after{content:"";position:absolute;width:210px;height:210px;top:50%;border-radius:50%;background:radial-gradient(circle,#ffd63b 0 5%,#f5b800 18%,rgba(246,178,0,.45) 38%,transparent 67%);animation:powderBurst 2.2s ease-out infinite}.haldi.active .haldi-powder:before{left:-70px}.haldi.active .haldi-powder:after{right:-70px;animation-delay:.65s}@keyframes powderBurst{0%{transform:translateY(-50%) scale(.15);opacity:0}22%{opacity:.95}100%{transform:translateY(-50%) scale(2.2);opacity:0}}.wedding{background:linear-gradient(145deg,#fffaf0,#f1e3c6)}.mandap{position:relative;width:83%;height:76%;border:3px solid rgba(182,132,47,.55);border-top:8px double var(--gold);border-radius:48% 48% 8px 8px/28% 28% 8px 8px;display:grid;place-items:center}.toran{position:absolute;top:10px;color:var(--green)}.om{font-size:5.2rem;color:var(--gold-dark);animation:mandapGlow 2.4s infinite}.couple-symbol{position:absolute;bottom:66px;font-family:"Great Vibes";font-size:4rem;color:var(--wine)}.diyas{position:absolute;bottom:18px;font-size:2rem}.wedding-bell{position:absolute;top:5px;font-size:1.8rem;animation:ringBell 1.8s infinite}.b1{left:8%}.b2{right:8%}@keyframes mandapGlow{50%{transform:scale(1.04)}}@keyframes ringBell{0%,100%{transform:rotate(-9deg)}50%{transform:rotate(9deg)}}.reception{background:linear-gradient(145deg,#f7efe2,#edf0e6)}.reception-stage{display:flex;align-items:center;gap:5px}.reception-stage b{font-size:4.8rem;animation:coupleFloat 2.3s infinite}.reception-stage i{font-family:"Great Vibes";font-size:3.2rem;color:var(--wine)}.fairy-lights{position:absolute;top:20px;color:var(--gold)}@keyframes coupleFloat{50%{transform:translateY(-8px)}}
.family{text-align:center}.family-names{font-size:clamp(4.5rem,9vw,7.5rem);line-height:.85;color:var(--gold-dark);margin:.2em}.family-lead{font-size:1.25rem;line-height:1.55}.family-couple{display:grid;grid-template-columns:1fr auto 1fr;gap:28px;max-width:700px;margin:45px auto}.family-couple>div{display:flex;flex-direction:column}.mini-name{font-size:3.5rem;color:var(--gold-dark)}.with-word{font-family:"Great Vibes";font-size:2.5rem;color:var(--green)}.daughter{font-size:1.13rem}.daughter strong{color:var(--wine)}.family-blessing{font-family:"Great Vibes";font-size:2.5rem;color:var(--gold-dark)}
.finale{text-align:center;padding-bottom:130px}.final-photo{width:min(460px,90vw);margin:0 auto 34px;border-radius:50% 50% 26px 26px/35% 35% 26px 26px;overflow:hidden;padding:8px;border:1px solid rgba(182,132,47,.35);background:white;box-shadow:var(--shadow)}.final-photo img{border-radius:inherit;aspect-ratio:4/5;object-fit:cover}.finale-title{font-size:clamp(4.2rem,10vw,7rem);color:var(--gold-dark)}.final-date{font-family:Italiana,serif;letter-spacing:.16em}.music-toggle{position:fixed;z-index:100;right:16px;bottom:16px;width:49px;height:49px;border-radius:50%;border:1px solid rgba(182,132,47,.55);background:rgba(255,249,236,.94);color:var(--gold-dark);font-size:1.2rem}.music-toggle.muted{opacity:.55}
@media(max-width:760px){.section{padding:72px 16px}.hero:before{inset:10px}.hero-names{font-size:clamp(4.7rem,21vw,7rem)}.countdown{grid-template-columns:repeat(4,1fr);width:100%;gap:6px}.journey-loop-track{height:150px}.milestone span{display:none}.milestone i{width:34px;height:34px}.journey-line{left:25px;top:490px}.journey-card,.journey-card.right{grid-template-columns:1fr;gap:18px;margin:62px 0;padding-left:26px}.journey-card.right .photo-frame,.journey-card.right .video-call-collage{order:0}.journey-copy{padding:25px 20px}.video-call-collage{min-height:400px}.call-photo{width:69%}.engagement-grid{grid-template-columns:1fr}.event-card{display:flex;flex-direction:column;padding:22px 18px 34px}.event-card .event-copy{order:2}.event-art,.event-visual{order:1;width:100%;min-height:300px}.family-couple{grid-template-columns:1fr;gap:10px}.envelope-wrap{width:92vw}.seal{width:82px;height:82px}}


/* ===== Phase 4 presentation polish ===== */

/* Times: strong numerals, restrained script suffix — consistent everywhere */
.hero-date strong{
  display:flex;
  align-items:baseline;
  justify-content:center;
  gap:.16em;
}
.hero-date .time-main{
  font-family:"Italiana","Cormorant Garamond",serif;
  font-size:1em;
  font-weight:600;
  letter-spacing:.045em;
  line-height:1;
}
.hero-date .time-period{
  font-family:"Cormorant Garamond",Georgia,serif;
  font-size:.47em;
  font-weight:700;
  font-style:italic;
  letter-spacing:.035em;
  text-transform:lowercase;
}

.elegant-time{
  display:flex;
  align-items:baseline;
  justify-content:center;
  gap:.18em;
  line-height:1;
  margin:12px 0 14px;
}
.elegant-time .time-main{
  font-family:"Italiana","Cormorant Garamond",serif;
  font-size:1em;
  font-weight:700;
  letter-spacing:.045em;
  color:var(--gold-dark);
  text-shadow:0 2px 12px rgba(126,86,23,.08);
}
.elegant-time .time-period{
  font-family:"Cormorant Garamond",Georgia,serif;
  font-size:.46em;
  font-weight:700;
  font-style:italic;
  letter-spacing:.04em;
  color:var(--wine);
}

/* Event information hierarchy */
.event-label{
  margin:0 0 12px;
  font-size:.75rem;
  letter-spacing:.21em;
}
.event-card h4{
  font-family:"Cormorant Garamond",Georgia,serif;
  font-size:clamp(1.45rem,2.6vw,1.85rem);
  font-weight:600;
  line-height:1.18;
  margin:4px 0;
  color:var(--green);
}
.event-preface{
  margin:10px 0 -2px;
  font-size:1.03rem;
}
.event-tagline{
  font-size:1.15rem;
  margin:7px 0 3px;
}
.venue{
  padding-top:12px;
  border-top:1px solid rgba(182,132,47,.20);
  margin-top:16px;
}
.venue strong{
  display:inline-block;
  color:var(--green);
  font-size:1.13em;
  margin-bottom:3px;
}

/* Family invitation rebuilt as one balanced formal card */
.family{
  max-width:1000px;
  padding-top:105px;
  padding-bottom:105px;
}
.family-invitation{
  position:relative;
  max-width:860px;
  margin:auto;
  padding:64px 70px 58px;
  text-align:center;
  background:
    radial-gradient(circle at 50% 0%,rgba(214,173,87,.10),transparent 36%),
    rgba(255,250,240,.88);
  border:1px solid rgba(182,132,47,.30);
  border-radius:34px;
  box-shadow:0 24px 70px rgba(74,53,19,.10);
}
.family-invitation:before{
  content:"";
  position:absolute;
  inset:12px;
  border:1px solid rgba(182,132,47,.15);
  border-radius:25px;
  pointer-events:none;
}
.family-ornament{
  position:relative;
  z-index:1;
  font-size:2rem;
  color:var(--gold);
  line-height:1;
  margin-bottom:13px;
}
.family-kicker{
  position:relative;
  z-index:1;
  margin:0 0 25px;
  font-family:"Cormorant Garamond",Georgia,serif;
  font-size:1.12rem;
  font-style:italic;
  letter-spacing:.055em;
  color:var(--gold-dark);
}
.host-names{
  position:relative;
  z-index:1;
  max-width:720px;
  margin:0 auto 16px;
  font-family:"Cormorant Garamond",Georgia,serif;
  font-size:clamp(1.55rem,3.1vw,2.15rem);
  font-weight:700;
  line-height:1.22;
  color:var(--green);
}
.host-names span{
  color:var(--gold-dark);
  font-weight:500;
  padding:0 .08em;
}
.invite-line{
  position:relative;
  z-index:1;
  max-width:660px;
  margin:0 auto 36px;
  font-size:1.17rem;
  line-height:1.55;
  color:#615641;
}
.couple-presentation{
  position:relative;
  z-index:1;
  max-width:650px;
  margin:0 auto 36px;
}
.person{
  display:flex;
  flex-direction:column;
  align-items:center;
}
.person-name{
  display:block;
  font-size:clamp(4.2rem,8vw,6.2rem);
  line-height:.78;
  color:var(--gold-dark);
  margin:4px 0 11px;
}
.qualification{
  font-family:"Cormorant Garamond",Georgia,serif;
  font-size:1.03rem;
  font-weight:600;
  letter-spacing:.035em;
  color:#625641;
}
.union-mark{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:15px;
  width:min(370px,78%);
  margin:22px auto 20px;
}
.union-mark .line{
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(182,132,47,.55));
}
.union-mark .line:last-child{
  background:linear-gradient(90deg,rgba(182,132,47,.55),transparent);
}
.union-mark em{
  font-family:"Great Vibes",cursive;
  font-size:2.35rem;
  font-weight:400;
  color:var(--green);
}
.bride-family{
  position:relative;
  z-index:1;
  max-width:690px;
  margin:6px auto 0;
  padding:25px 22px 0;
  border-top:1px solid rgba(182,132,47,.22);
}
.relation{
  margin:0 0 7px;
  font-size:1.03rem;
  font-style:italic;
  color:#75664d;
}
.parent-names{
  margin:0;
  font-size:clamp(1.25rem,2.5vw,1.6rem);
  line-height:1.3;
  font-weight:700;
  color:var(--wine);
}
.family-place{
  margin:8px 0 0;
  font-size:1rem;
  letter-spacing:.025em;
  color:#655a47;
}
.family-divider{
  position:relative;
  z-index:1;
  margin:28px auto 18px;
  color:var(--gold);
  font-size:.9rem;
}
.family-divider:before,.family-divider:after{
  content:"";
  display:inline-block;
  width:65px;
  height:1px;
  vertical-align:middle;
  margin:0 13px;
  background:linear-gradient(90deg,transparent,rgba(182,132,47,.55));
}
.family-divider:after{
  background:linear-gradient(90deg,rgba(182,132,47,.55),transparent);
}
.family-blessing{
  position:relative;
  z-index:1;
  max-width:640px;
  margin:0 auto!important;
  font-family:"Great Vibes",cursive;
  font-size:clamp(2.2rem,4.5vw,3.15rem);
  line-height:1.08;
  color:var(--gold-dark);
}

/* More consistent card spacing */
.event-card{
  padding-top:48px;
  padding-bottom:48px;
}
.event-actions a{
  min-width:150px;
  text-align:center;
}

@media(max-width:760px){
  .hero-date .time-main{font-weight:700}
  .elegant-time{font-size:2.55rem;margin:12px 0 15px}
  .elegant-time .time-period{font-size:.5em}
  .event-card h4{font-size:1.5rem}
  .family{padding:72px 14px}
  .family-invitation{
    padding:48px 21px 43px;
    border-radius:26px;
  }
  .family-invitation:before{inset:8px;border-radius:20px}
  .family-kicker{font-size:1.02rem;margin-bottom:21px}
  .host-names{font-size:1.55rem;line-height:1.26}
  .invite-line{font-size:1.06rem;line-height:1.48;margin-bottom:31px}
  .person-name{font-size:4.35rem}
  .qualification{font-size:.96rem}
  .union-mark{margin:18px auto 17px}
  .parent-names{font-size:1.27rem}
  .family-place{font-size:.94rem;line-height:1.4}
  .family-blessing{font-size:2.35rem}
}

/* Complete conversation screenshots without cropped message edges. */
.call-card.whatsapp-card{background:#101312!important}
.call-card.whatsapp-card img{object-fit:contain!important;object-position:center!important;background:#101312}

/* Journey 4 keeps both faces comfortably framed. */
.journey-four-photo img{object-position:50% 32%!important}

/* Three gently moving engagement memories for “We Said Yes”. */
.journey-card .yes-photo-trio{order:2}
.yes-photo-trio{position:relative;min-height:520px;perspective:1200px}
.yes-memory-card{position:absolute;margin:0;width:68%;aspect-ratio:4/3;padding:7px;overflow:hidden;border:1px solid rgba(182,132,47,.38);border-radius:22px;background:#fffaf0;box-shadow:0 18px 46px rgba(58,41,15,.2)}
.yes-memory-card img{width:100%;height:100%;object-fit:cover;border-radius:15px}
.yes-couple img{object-position:50% 22%}
.yes-portrait{z-index:3;left:16%;top:2%;transform:rotate(-1deg);animation:yesMainFloat 5.8s ease-in-out infinite}
.yes-family{z-index:2;left:0;bottom:1%;transform:rotate(-7deg) scale(.82);animation:yesPinkFloat 6.4s ease-in-out infinite}
.yes-couple{z-index:4;right:0;bottom:0;transform:rotate(7deg) scale(.82);animation:yesGarlandFloat 6s ease-in-out infinite}
@keyframes yesMainFloat{50%{transform:translateY(-9px) rotate(1deg) scale(1.015)}}
@keyframes yesPinkFloat{50%{transform:translate(-5px,-11px) rotate(-4deg) scale(.86)}}
@keyframes yesGarlandFloat{50%{transform:translate(6px,-8px) rotate(4deg) scale(.86)}}

/* Pink and garland memories remain in the bottom finale. */
.final-memory-pair{display:flex;align-items:center;justify-content:center;gap:22px;width:min(850px,94vw);margin:0 auto 42px;perspective:1200px}
.final-memory{width:47%;aspect-ratio:4/3;padding:7px;overflow:hidden;border:1px solid rgba(182,132,47,.38);border-radius:23px;background:#fffaf0;box-shadow:var(--shadow)}
.final-memory img{width:100%;height:100%;object-fit:cover;border-radius:16px}
.final-memory-pink{transform:rotate(-3deg);animation:finalPinkFloat 6s ease-in-out infinite}
.final-memory-garland{transform:rotate(3deg);animation:finalGarlandFloat 6.4s ease-in-out infinite}
@keyframes finalPinkFloat{50%{transform:translateY(-10px) rotate(-1deg) scale(1.015)}}
@keyframes finalGarlandFloat{50%{transform:translateY(8px) rotate(1deg) scale(1.015)}}

/* The travelling journey heart stays bright red for its full route. */
.travelling-heart{color:#e11937!important;opacity:1!important;font-size:1.35rem;filter:drop-shadow(0 0 5px rgba(225,25,55,.55));animation:travelHeartBright 14s linear infinite!important}
@keyframes travelHeartBright{0%{left:3%;top:43%;opacity:1}16%{left:21%;top:20%;opacity:1}33%{left:38%;top:46%;opacity:1}50%{left:56%;top:20%;opacity:1}66%{left:74%;top:48%;opacity:1}84%{left:91%;top:30%;opacity:1}92%{transform:scale(1.45);opacity:1}100%{left:94%;top:30%;transform:scale(1);opacity:1}}

@media(max-width:760px){
  .yes-photo-trio{min-height:430px;width:100%}
  .yes-memory-card{width:78%;border-radius:18px}
  .yes-portrait{left:11%}.yes-family{left:-3%}.yes-couple{right:-3%}
  .final-memory-pair{flex-direction:column;gap:18px;margin-bottom:35px}
  .final-memory{width:min(92%,520px)}
  .final-memory-pink{transform:rotate(-1.5deg)}.final-memory-garland{transform:rotate(1.5deg)}
}

/* Background-only preview themes. The main index.html keeps the ivory theme. */
body[data-theme="blue"]{
  --cream:#f7fbfd;
  --ivory:#fbfdfe;
  background:
    radial-gradient(circle at 12% 10%,rgba(211,165,56,.10),transparent 27%),
    radial-gradient(circle at 88% 32%,rgba(72,127,151,.10),transparent 28%),
    #f7fbfd;
}
body[data-theme="blue"] .intro{
  background:
    radial-gradient(circle at 12% 10%,rgba(211,165,56,.10),transparent 27%),
    radial-gradient(circle at 88% 32%,rgba(72,127,151,.10),transparent 28%),
    #f7fbfd;
}
body[data-theme="green"]{
  --cream:#f1f7ef;
  --ivory:#f9fcf7;
  background:
    radial-gradient(circle at 10% 12%,rgba(211,165,56,.11),transparent 27%),
    radial-gradient(circle at 90% 30%,rgba(22,83,58,.10),transparent 28%),
    #f1f7ef;
}
body[data-theme="green"] .intro{
  background:
    radial-gradient(circle at 10% 12%,rgba(211,165,56,.11),transparent 27%),
    radial-gradient(circle at 90% 30%,rgba(22,83,58,.10),transparent 28%),
    #f1f7ef;
}
body[data-theme="warm"]{
  --cream:#fcf9f1;
  --ivory:#fffdf7;
  background:
    radial-gradient(circle at 9% 12%,rgba(211,165,56,.14),transparent 28%),
    radial-gradient(circle at 91% 31%,rgba(149,31,56,.055),transparent 26%),
    #fcf9f1;
}
body[data-theme="warm"] .intro{
  background:
    radial-gradient(circle at 9% 12%,rgba(211,165,56,.14),transparent 28%),
    radial-gradient(circle at 91% 31%,rgba(149,31,56,.055),transparent 26%),
    #fcf9f1;
}
body[data-theme="blue"] .heartbeat-image-wrap{background:#f7fbfd!important}
body[data-theme="green"] .heartbeat-image-wrap{background:#f1f7ef!important}
body[data-theme="warm"] .heartbeat-image-wrap{background:#fcf9f1!important}

/* User-supplied heartbeat artwork */
.heartbeat-user{
  width:min(900px,98vw)!important;
  height:clamp(210px,32vw,390px)!important;
  margin:4px auto 0!important;
  overflow:hidden;
  background:transparent!important;
  border-radius:0!important;
  mix-blend-mode:normal;
}
.heartbeat-user img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  filter:none!important;
  animation:userHeartbeat 2s ease-in-out infinite;
}
@keyframes userHeartbeat{
  0%,30%,70%,100%{transform:scale(1)}
  40%{transform:scale(.92)}
  48%{transform:scale(1.10)}
  55%{transform:scale(.94)}
  62%{transform:scale(1.08)}
}

/* Keep both hero names on one line at every viewport width. */
.hero-name-line{white-space:nowrap}

/* Journey chapters always read as story first, then picture. */
.journey-card .journey-copy{order:1}
.journey-card .photo-frame,.journey-card .video-call-carousel{order:2}

/* Lightweight two-photo sample carousel for the video-call chapter. */
.video-call-carousel{
  position:relative;
  min-height:500px;
  perspective:1200px;
  touch-action:pan-y;
}
.call-card{
  position:absolute;
  top:8px;
  left:9%;
  width:76%;
  aspect-ratio:4/5;
  padding:7px;
  overflow:hidden;
  border:1px solid rgba(211,165,56,.42);
  border-radius:25px;
  background:#fff;
  box-shadow:0 18px 48px rgba(74,53,19,.18);
  cursor:pointer;
  opacity:.72;
  transform:translateX(24%) rotateY(-10deg) rotate(5deg) scale(.9);
  transition:transform .75s cubic-bezier(.2,.75,.2,1),opacity .55s ease,box-shadow .55s ease;
}
.call-card img{width:100%;height:100%;object-fit:cover;border-radius:18px}
.call-card.active{
  z-index:2;
  opacity:1;
  transform:translateX(-7%) rotateY(0) rotate(-2deg) scale(1);
  box-shadow:0 24px 62px rgba(74,53,19,.25);
}
.call-controls{position:absolute;z-index:4;left:0;right:0;bottom:32px;display:flex;justify-content:center;gap:9px}
.call-controls button{width:9px;height:9px;padding:0;border:0;border-radius:99px;background:rgba(22,83,58,.28);cursor:pointer;transition:.3s}
.call-controls button.active{width:28px;background:var(--gold)}
.sample-note{position:absolute;left:0;right:0;bottom:0;margin:0;text-align:center;color:#65776b!important;font:500 .55rem Montserrat,sans-serif;letter-spacing:.08em;text-transform:uppercase}

@media(max-width:760px){
  .hero-name-line{font-size:clamp(3.65rem,16vw,5.2rem)!important}
  .journey-card .journey-copy{grid-row:auto}
  .video-call-carousel{width:100%;min-height:470px;margin-top:5px}
  .call-card{left:10%;width:74%}
}

/* Wedding motion stays enabled across phones and browsers. */

.hero-name-stack{display:flex;flex-direction:column;align-items:center;margin:12px 0 4px}
.hero-name-line{margin:0;font-size:clamp(5.4rem,11vw,9rem);line-height:.76;color:var(--gold-dark)}
.hero-amp{font-family:"Cormorant Garamond",serif;color:var(--green);font-size:2rem;font-style:italic}
.heartbeat-signature{position:relative;width:min(720px,90vw);height:112px;margin:22px auto 20px}
.heartbeat-signature svg{position:absolute;inset:0;width:100%;height:100%}
.heartbeat-base,.heartbeat-heart{fill:none;stroke:var(--gold-dark);stroke-width:3.1;stroke-linecap:round;stroke-linejoin:round}
.heartbeat-base{stroke-dasharray:1100;stroke-dashoffset:1100;animation:drawHeartbeat 5.2s ease-in-out infinite}
.heartbeat-heart{stroke:var(--wine);transform-origin:400px 75px;animation:heartPulse 5.2s ease-in-out infinite}
.heartbeat-names{position:absolute;left:50%;top:48%;transform:translate(-50%,-50%);width:43%;display:flex;justify-content:space-between}
.heartbeat-names span{font-family:"Great Vibes",cursive;font-size:clamp(2rem,5vw,3.35rem);color:var(--gold-dark);text-shadow:0 2px 9px #fffaf0}
@keyframes drawHeartbeat{0%,8%{stroke-dashoffset:1100;opacity:.25}40%,84%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:-1100;opacity:.2}}
@keyframes heartPulse{0%,38%,60%,100%{transform:scale(1)}45%{transform:scale(1.08)}50%{transform:scale(.98)}55%{transform:scale(1.06)}}

.wedding-art-wrap{position:relative;width:100%;min-height:360px;display:grid;place-items:center}
.wedding-couple-art{position:relative;z-index:3;width:108%;max-width:480px;object-fit:contain;filter:drop-shadow(0 25px 28px rgba(85,58,18,.20));animation:weddingFloat 6s ease-in-out infinite}
.wedding-glow{position:absolute;width:82%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(232,199,124,.55),rgba(244,232,201,.18) 44%,transparent 70%)}
.jasmine,.wedding-diya{position:absolute;z-index:4}.jasmine{color:#f3dba0;font-size:1.4rem;animation:jasmineFall 5s linear infinite}.j1{left:16%;top:2%}.j2{right:14%;top:12%;animation-delay:1.4s}.j3{left:31%;top:-5%;animation-delay:2.5s}.wedding-diya{bottom:4%;font-size:1.75rem}.d1{left:4%}.d2{right:4%}
@keyframes weddingFloat{50%{transform:translateY(-7px) scale(1.008)}}@keyframes jasmineFall{0%{transform:translateY(-15px);opacity:0}18%{opacity:.85}100%{transform:translateY(320px) rotate(230deg);opacity:0}}

.engagement-showcase{max-width:820px;margin:42px auto 0}.engagement-slider{position:relative;overflow:hidden;aspect-ratio:4/3;border-radius:32px;background:#e9dec8;border:1px solid rgba(182,132,47,.33);box-shadow:var(--shadow)}
.engagement-slide{position:absolute;inset:0;opacity:0;transform:scale(1.08);transition:opacity 1s ease,transform 5.5s ease}.engagement-slide.active{opacity:1;transform:scale(1)}.engagement-slide img{width:100%;height:100%;object-fit:cover}
.placeholder-slide{display:grid;place-items:center;background:linear-gradient(145deg,#f1e6d2,#fff9ee)}.placeholder-slide span{font-family:"Great Vibes",cursive;font-size:2.5rem;color:var(--gold-dark)}
.slider-gradient{position:absolute;z-index:6;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(34,25,13,.62))}
.slider-caption{position:absolute;z-index:7;left:26px;right:26px;bottom:20px;display:flex;align-items:flex-end;justify-content:space-between;color:white}.slider-caption strong{font-size:3rem}.slider-caption span{font-family:Montserrat,sans-serif;font-size:.65rem}
.slider-dots{position:absolute;z-index:8;left:50%;bottom:10px;transform:translateX(-50%);display:flex;gap:5px}.slider-dots span{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.45)}.slider-dots span.active{width:18px;border-radius:99px;background:#fff}
.gallery-open{width:100%;margin:18px 0 0;padding:16px 22px;display:flex;align-items:center;justify-content:center;gap:13px;border:1px solid rgba(182,132,47,.40);border-radius:20px;background:rgba(255,250,240,.92);color:var(--green);cursor:pointer}.gallery-open>span:last-child{display:flex;flex-direction:column;text-align:left}.gallery-open small{font-family:Montserrat,sans-serif;font-size:.58rem;text-transform:uppercase;color:#817057}
.gallery-modal{position:fixed;inset:0;z-index:1200;opacity:0;visibility:hidden;transition:.35s}.gallery-modal.open{opacity:1;visibility:visible}.gallery-backdrop{position:absolute;inset:0;background:rgba(25,19,11,.72);backdrop-filter:blur(8px)}
.gallery-panel{position:absolute;inset:3vh 3vw;overflow:auto;padding:54px 34px;border-radius:28px;background:#fbf5e9}.gallery-close{position:sticky;float:right;top:0;width:46px;height:46px;border-radius:50%;border:1px solid rgba(182,132,47,.35);background:#fffaf0;color:var(--wine);font-size:1.8rem}
.gallery-header{text-align:center}.gallery-grid{max-width:1100px;margin:auto;display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.gallery-grid figure{margin:0;overflow:hidden;border-radius:22px;aspect-ratio:4/5;background:#eee3ce}.gallery-grid img{width:100%;height:100%;object-fit:cover}
.gallery-placeholder{display:grid!important;place-items:center;align-content:center;background:linear-gradient(145deg,#f0e4ce,#fffaf0)!important;color:var(--gold-dark)}.gallery-placeholder span{font-family:Italiana,serif;font-size:2rem}.gallery-placeholder small{font-family:Montserrat,sans-serif;font-size:.58rem;text-transform:uppercase;margin-top:8px}
body.gallery-opened{overflow:hidden}
@media(max-width:760px){.hero-name-line{font-size:clamp(5rem,22vw,7.2rem)}.heartbeat-signature{height:88px;width:96vw}.heartbeat-names{width:46%}.heartbeat-names span{font-size:2rem}.engagement-slider{aspect-ratio:4/5;border-radius:24px}.gallery-panel{inset:1vh 2vw;padding:42px 12px 24px}.gallery-grid{grid-template-columns:1fr}}


/* ===== Phase 6 typography + exact supplied artwork ===== */

/* Refined site-wide hierarchy */
:root{
  --luxury-gold:#b6842f;
  --luxury-gold-deep:#8e6422;
  --luxury-ink:#40382d;
}
h1,h2,h3,.fancy-heading,.signature,.hero-name-line{
  color:var(--luxury-gold-deep);
}
.fancy-heading{
  font-weight:400;
  line-height:1.02;
  letter-spacing:.005em;
}
.eyebrow{
  color:var(--luxury-gold);
  font-weight:700;
  letter-spacing:.20em;
}
.section p:not(.eyebrow):not(.family-blessing){
  line-height:1.58;
}

/* Exact heartbeat artwork; black background is visually blended and gold-toned. */
.heartbeat-image-wrap{
  width:min(820px,96vw);
  height:auto;
  margin:20px auto 22px;
  overflow:hidden;
  mix-blend-mode:multiply;
  opacity:.92;
}
.heartbeat-image-wrap img{
  display:block;
  width:100%;
  height:auto;
  filter:sepia(1) saturate(1.9) hue-rotate(355deg) brightness(.72);
  animation:heartbeatArtwork 5s ease-in-out infinite;
}
@keyframes heartbeatArtwork{
  0%,100%{transform:scale(1);opacity:.88}
  48%{transform:scale(1)}
  52%{transform:scale(1.018);opacity:1}
  56%{transform:scale(1)}
}

/* User-supplied exact wedding portrait */
.wedding-couple-art{
  width:112%;
  max-width:530px;
  border-radius:24px;
  mix-blend-mode:multiply;
}

/* Gold typography consistency */
.event-card h4,.host-names,.parent-names,.venue strong{
  color:var(--luxury-gold-deep);
}
.event-label,.family-kicker,.qualification,.relation{
  color:#8a7048;
}
.event-copy,.invite-line,.family-place{
  color:var(--luxury-ink);
}

/* Temporary number-font selection laboratory */
.number-font-lab{
  max-width:980px;
  padding-top:90px;
  padding-bottom:100px;
  text-align:center;
}
.number-font-lab .fancy-heading{
  font-size:clamp(3.6rem,7vw,5.8rem);
  margin-bottom:12px;
}
.number-lab-note{
  max-width:640px;
  margin:0 auto 34px;
  color:#74644d;
}
.number-font-options{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:12px;
}
.number-option{
  min-height:180px;
  padding:22px 10px 18px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(182,132,47,.30);
  border-radius:22px;
  background:rgba(255,250,240,.92);
  box-shadow:0 12px 28px rgba(74,53,19,.07);
}
.number-option b{
  font-family:Montserrat,sans-serif;
  font-size:.65rem;
  letter-spacing:.16em;
  color:var(--wine);
  margin-bottom:16px;
}
.number-option span{
  display:block;
  white-space:nowrap;
  font-size:2rem;
  color:var(--luxury-gold-deep);
  line-height:1;
}
.number-option span i{
  font-size:.48em;
  font-family:"Cormorant Garamond",serif;
  font-weight:700;
}
.number-option small{
  display:block;
  margin-top:14px;
  white-space:nowrap;
  font-size:.9rem;
  color:#695b47;
}

/* Five deliberately different number treatments */
.option-a span,.option-a small{font-family:"Cormorant Garamond",Georgia,serif;font-weight:600}
.option-b span,.option-b small{font-family:"Italiana","Times New Roman",serif;font-weight:400;letter-spacing:.035em}
.option-c span,.option-c small{font-family:Montserrat,Arial,sans-serif;font-weight:500;letter-spacing:.02em}
.option-d span,.option-d small{font-family:"Playfair Display",Georgia,serif;font-weight:600;font-variant-numeric:lining-nums}
.option-e span,.option-e small{font-family:"Libre Baskerville",Georgia,serif;font-weight:400;font-variant-numeric:oldstyle-nums}

@media(max-width:760px){
  .number-font-options{grid-template-columns:1fr}
  .number-option{
    min-height:120px;
    display:grid;
    grid-template-columns:38px 1fr 1fr;
    gap:7px;
    padding:18px 15px;
  }
  .number-option b{margin:0}
  .number-option span{font-size:2.15rem}
  .number-option small{margin:0;font-size:.9rem}
  .heartbeat-image-wrap{width:100%;margin:12px auto 18px}
  .wedding-couple-art{width:105%;border-radius:18px}
}

/* PHASE 7 — traditional invitation palette */
:root{--cream:#fffef9;--ivory:#fffef9;--gold:#d3a538;--gold-dark:#d3a538;--green:#16533a;--wine:#951f38;--text:#315343}
body{color:var(--text);background:#fffef9}
p,.invite-line,.family-place,.event-copy,.number-lab-note{color:#3c5b4a!important}
h1,h2,h3,h4,.fancy-heading,.signature,.hero-name-line,.host-names,.parent-names,.venue strong{color:var(--gold-dark)!important}
.eyebrow,.event-label,.family-kicker{color:var(--green)!important}
.event-card,.family-invitation,.gallery-open,.number-option{background:rgba(255,253,244,.96)!important;border-color:rgba(211,165,56,.4)!important}

.envelope-couple-names{display:flex!important;flex-direction:column;align-items:center;font-family:"Great Vibes",cursive!important;font-size:clamp(3rem,8vw,4.8rem)!important;line-height:.78!important;color:var(--gold-dark)!important;font-weight:400!important}
.envelope-couple-names span{display:block}

/* Exact heartbeat artwork becomes festive and animated */
.heartbeat-image-wrap{position:relative;border-radius:18px;background:#fffef9!important;mix-blend-mode:normal!important;overflow:hidden}
.heartbeat-image-wrap:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#16533a 0 27%,#d3a538 38% 47%,#a9253d 48% 59%,#d3a538 60% 70%,#16533a 82%);mix-blend-mode:screen;opacity:.78;animation:heartColour 4.6s ease-in-out infinite}
.heartbeat-image-wrap img{filter:contrast(1.3) saturate(1.25)!important;animation:heartBeatReal 4.6s ease-in-out infinite!important}
@keyframes heartBeatReal{0%,45%,61%,100%{transform:scale(1)}49%{transform:scale(1.018)}52%{transform:scale(.995)}55%{transform:scale(1.026)}}
@keyframes heartColour{0%,100%{opacity:.58}49%{opacity:.88}55%{opacity:1}61%{opacity:.68}}

/* Sumuhurtham floral shower */
.wedding-art-wrap{overflow:hidden;border-radius:28px}
.petal{position:absolute;top:-14%;z-index:6;font-size:1.3rem;opacity:0;animation:festivalFall 5.4s linear infinite;filter:drop-shadow(0 2px 2px rgba(0,0,0,.08))}
.petal.yellow{color:#efb51c}.petal.green{color:#2e824e}.petal.red{color:#bd3042}
.p1{left:3%;animation-delay:.1s}.p2{left:10%;animation-delay:1.2s}.p3{left:17%;animation-delay:2.3s}.p4{left:24%;animation-delay:3.1s}.p5{left:31%;animation-delay:.6s}.p6{left:38%;animation-delay:4s}.p7{left:45%;animation-delay:1.7s}.p8{left:52%;animation-delay:2.8s}.p9{left:59%;animation-delay:.3s}.p10{left:66%;animation-delay:3.6s}.p11{left:73%;animation-delay:1s}.p12{left:80%;animation-delay:4.4s}.p13{left:87%;animation-delay:2s}.p14{left:93%;animation-delay:3.2s}.p15{left:97%;animation-delay:.8s}
@keyframes festivalFall{0%{transform:translate(0,-20px) rotate(0);opacity:0}10%{opacity:.95}48%{transform:translate(25px,200px) rotate(150deg)}100%{transform:translate(-20px,500px) rotate(350deg);opacity:.15}}

/* Venue cards under family blessing */
.family-venue-strip{position:relative;z-index:2;display:grid;grid-template-columns:1fr 1fr;gap:14px;max-width:760px;margin:6px auto 34px}
.family-venue-card{display:flex;gap:13px;text-align:left;padding:17px 18px;border:1px solid rgba(211,165,56,.38);border-radius:18px;background:linear-gradient(145deg,#fffdf4,#fff5d8)}
.family-venue-card>span{font-size:1.4rem}.family-venue-card small{display:block;font-family:Montserrat,sans-serif;text-transform:uppercase;letter-spacing:.12em;font-size:.56rem;color:var(--wine);font-weight:700;margin-bottom:5px}
.family-venue-card strong{display:block;font-family:"Cormorant Garamond",serif;color:var(--green);font-size:1.15rem;line-height:1.15}.family-venue-card p{font-size:.82rem!important;line-height:1.4!important;margin:6px 0 9px!important}.family-venue-card a{color:var(--gold-dark);font-size:.72rem;font-weight:800;text-decoration:none;border-bottom:1px solid rgba(168,120,22,.45)}
@media(max-width:760px){.family-venue-strip{grid-template-columns:1fr}.family-venue-card{padding:15px}}

/* ===== Phase 8 requested refinements ===== */
.envelope-card .envelope-couple-names{
  margin:28px 0 8px!important;
  gap:2px;
  font-size:clamp(2.65rem,5vw,3.65rem)!important;
  line-height:.78!important;
}
.envelope-card .envelope-couple-names small{
  display:block;
  margin:7px 0 6px;
  font-family:"Cormorant Garamond",serif;
  font-size:clamp(.72rem,1.8vw,.95rem);
  line-height:1;
  letter-spacing:.16em;
  text-transform:lowercase;
  color:var(--green);
  font-weight:500;
}

/* Transparent live heartbeat — website background remains visible */
.heartbeat-live{
  width:min(820px,96vw)!important;
  height:130px!important;
  margin:15px auto 24px!important;
  overflow:visible!important;
  background:transparent!important;
  mix-blend-mode:normal!important;
  border-radius:0!important;
  isolation:isolate;
}
.heartbeat-live:after{display:none!important}
.heartbeat-live svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.heartbeat-live .ecg-line{
  fill:none;
  stroke:#171717;
  stroke-width:4;
  stroke-linecap:round;
  stroke-linejoin:round;
  filter:drop-shadow(0 1px 1px rgba(0,0,0,.08));
  stroke-dasharray:560;
  animation:ecgDraw 4.8s ease-in-out infinite;
}
.heartbeat-live .ecg-right{animation-delay:.12s}
.heartbeat-name{
  position:absolute;
  top:50%;
  transform:translateY(-54%);
  font-family:"Great Vibes",cursive;
  font-size:clamp(3rem,7vw,5rem);
  line-height:1;
  color:#c79a36!important;
  text-shadow:0 2px 8px rgba(127,86,23,.16);
  z-index:3;
}
.heartbeat-ram{left:35%;transform:translate(-100%,-54%)}
.heartbeat-priya{right:35%;transform:translate(100%,-54%)}
.heartbeat-main-heart{
  position:absolute;
  left:50%;top:50%;
  transform:translate(-50%,-52%);
  color:#d7193f;
  font-size:clamp(4.1rem,9vw,6.2rem);
  line-height:1;
  z-index:4;
  filter:drop-shadow(0 4px 8px rgba(215,25,63,.22));
  animation:liveHeart 4.8s ease-in-out infinite;
}
.mini-heart{
  position:absolute;
  left:50%;top:50%;
  color:#e21d3b;
  font-size:1rem;
  opacity:0;
  z-index:5;
  pointer-events:none;
  animation:miniHeartFloat 4.8s ease-in-out infinite;
}
.mh1{--x:-62px;--y:-46px;animation-delay:.05s}.mh2{--x:58px;--y:-38px;animation-delay:.35s}.mh3{--x:-48px;--y:48px;animation-delay:.65s}.mh4{--x:52px;--y:42px;animation-delay:.95s}
@keyframes ecgDraw{0%,10%{stroke-dashoffset:560;opacity:.22}35%,78%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:-560;opacity:.18}}
@keyframes liveHeart{
  0%,34%,60%,100%{transform:translate(-50%,-52%) scale(1);opacity:1}
  40%{transform:translate(-50%,-52%) scale(1.12)}
  44%{transform:translate(-50%,-52%) scale(.94)}
  49%{transform:translate(-50%,-52%) scale(1.17)}
  54%{transform:translate(-50%,-52%) scale(1)}
  72%,78%{transform:translate(-50%,-52%) scale(.72);opacity:0}
  84%{transform:translate(-50%,-52%) scale(1.08);opacity:1}
}
@keyframes miniHeartFloat{
  0%,34%,82%,100%{opacity:0;transform:translate(-50%,-50%) scale(.5)}
  43%{opacity:.9;transform:translate(calc(-50% + var(--x)*.35),calc(-50% + var(--y)*.35)) scale(.85)}
  63%{opacity:.6;transform:translate(calc(-50% + var(--x)),calc(-50% + var(--y))) scale(1)}
  74%{opacity:0;transform:translate(calc(-50% + var(--x)*1.25),calc(-50% + var(--y)*1.25)) scale(.7)}
}
@media(max-width:760px){
  .heartbeat-live{height:105px!important;width:100%!important}
  .heartbeat-name{font-size:clamp(2.5rem,12vw,3.8rem)}
  .heartbeat-ram{left:34%}.heartbeat-priya{right:34%}
  .heartbeat-main-heart{font-size:clamp(3.5rem,16vw,5rem)}
  .heartbeat-live .ecg-line{stroke-width:4.5}
}

/* Final responsive corrections: story before image and names remain one line. */
.journey-card .journey-copy{order:1!important}
.journey-card .photo-frame,.journey-card .video-call-carousel{order:2!important}
.person-name{white-space:nowrap}
@media(max-width:760px){
  .person-name{font-size:clamp(3rem,15vw,3.8rem)!important}
}

/* Keep a.m./p.m. visually identical to the time numerals. */
.hero-date .time-main,
.hero-date .time-period,
.elegant-time .time-main,
.elegant-time .time-period{
  color:var(--gold-dark)!important;
}

/* Keep the invitation date comfortably inside the envelope on phones. */
@media(max-width:760px){
  .envelope-card{
    bottom:6%!important;
    height:80%!important;
    padding:17px 12px 14px!important;
  }
  .envelope-card .tiny{margin:0 0 3px!important}
  .envelope-card .envelope-couple-names{
    margin:14px 0 3px!important;
    font-size:clamp(2.2rem,11vw,2.8rem)!important;
    line-height:.8!important;
  }
  .envelope-card .envelope-couple-names small{margin:3px 0!important}
  .envelope-card > p:last-child{
    margin:6px 0 0!important;
    line-height:1.1!important;
    white-space:nowrap;
  }
}

/* Make the S heart H monogram read stronger in the hero. */
.hero-monogram{
  font-weight:700!important;
  text-shadow:0 1px #fff7d9,0 0 10px rgba(178,129,39,.35),0 1px 0 rgba(90,62,15,.22)!important;
}
.hero-monogram span,
.hero-monogram b{
  font-weight:800!important;
}

/* Personalised invitation download. */
.personalise-invite-button{display:flex;align-items:center;justify-content:center;gap:10px;width:min(430px,90vw);margin:0 auto 30px;padding:15px 20px;border:1px solid rgba(150,101,20,.42);border-radius:999px;background:linear-gradient(135deg,#9a681b,#e4bd5a,#9a681b);color:#fffdf5;font:600 .82rem/1.25 Montserrat,sans-serif;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;box-shadow:0 8px 24px rgba(122,82,15,.2);animation:inviteGlow 2s ease-in-out infinite}
.personalise-invite-button span{font-size:1.05rem}
@keyframes inviteGlow{50%{transform:translateY(-2px) scale(1.025);box-shadow:0 10px 30px rgba(173,119,25,.4)}}
.final-hearts{display:flex;justify-content:center;align-items:center;gap:13px;margin-top:22px;color:#c91f36}
.final-hearts span{font-size:1.65rem;filter:drop-shadow(0 2px 3px rgba(145,0,20,.18));animation:finalHeartBeat 2s ease-in-out infinite}
.final-hearts span:nth-child(2){font-size:2rem;animation-delay:.15s}.final-hearts span:nth-child(3){animation-delay:.3s}
@keyframes finalHeartBeat{0%,55%,100%{transform:scale(1)}65%{transform:scale(1.18)}75%{transform:scale(.96)}85%{transform:scale(1.12)}}
.personal-invite-modal{position:fixed;inset:0;z-index:1500;display:grid;place-items:center;padding:18px;opacity:0;visibility:hidden;transition:.25s}
.personal-invite-modal.open{opacity:1;visibility:visible}.personal-invite-backdrop{position:absolute;inset:0;background:rgba(17,31,28,.7);backdrop-filter:blur(5px)}
.personal-invite-panel{position:relative;z-index:1;width:min(540px,100%);max-height:92vh;overflow:auto;padding:34px;border:1px solid rgba(170,119,30,.35);border-radius:22px;background:var(--paper,#fffaf0);color:var(--ink,#18342f);box-shadow:0 24px 70px rgba(0,0,0,.3);text-align:center}
.personal-invite-panel h3{margin:3px 0 8px;font-family:"Cormorant Garamond",serif;font-size:2rem;color:var(--gold-dark)}
.personal-invite-help{margin:0 0 20px}.personal-invite-close{position:absolute;right:13px;top:10px;border:0;background:transparent;color:inherit;font-size:2rem;cursor:pointer}
.personal-invite-panel form{text-align:left}.personal-invite-panel label{display:block;margin-bottom:7px;font:600 .76rem Montserrat,sans-serif;letter-spacing:.08em;text-transform:uppercase}
.personal-invite-panel input{box-sizing:border-box;width:100%;padding:13px 15px;border:1px solid rgba(137,96,28,.4);border-radius:10px;background:rgba(255,255,255,.7);color:inherit;font:500 1rem Montserrat,sans-serif;outline:none}
.personal-invite-panel input:focus{border-color:var(--gold-dark);box-shadow:0 0 0 3px rgba(199,154,54,.15)}
.name-example{margin:10px 0 18px;font-size:.9rem}.create-invite-button,.download-invite-button{display:block;box-sizing:border-box;width:100%;padding:13px 18px;border:0;border-radius:10px;background:var(--gold-dark);color:white;text-align:center;text-decoration:none;font:600 .8rem Montserrat,sans-serif;letter-spacing:.06em;text-transform:uppercase;cursor:pointer}
.personal-invite-result{margin-top:20px}.personal-invite-result img{display:block;width:min(270px,75%);margin:0 auto 15px;border-radius:5px;box-shadow:0 8px 24px rgba(0,0,0,.2)}
.invite-status{min-height:1.2em;margin:12px 0 0;font-size:.87rem}.personal-invite-modal.busy .create-invite-button{opacity:.6;pointer-events:none}
@media(max-width:560px){.personal-invite-panel{padding:29px 20px 22px}.personalise-invite-button{font-size:.72rem;padding:14px}.personal-invite-panel h3{font-size:1.75rem}}

/* Natural, uncropped engagement gallery. */
.gallery-grid{display:block!important;columns:3 280px;column-gap:18px;max-width:1180px}
.gallery-grid figure{display:block!important;break-inside:avoid;margin:0 0 18px!important;aspect-ratio:auto!important;border-radius:18px;background:#fffaf0;padding:6px;box-shadow:0 8px 24px rgba(52,39,17,.12)}
.gallery-grid img{display:block;width:100%;height:auto!important;object-fit:contain!important;border-radius:13px;transition:transform .35s ease,filter .35s ease}
.gallery-grid figure:hover img{transform:scale(1.012);filter:saturate(1.04)}
@media(max-width:760px){.gallery-grid{columns:1!important}.gallery-grid figure{margin-bottom:14px!important;padding:4px;border-radius:14px}.gallery-grid img{border-radius:10px}}

/* Touch-friendly engagement slider controls. */
.engagement-slider{touch-action:pan-y;outline:none}
.engagement-slider:focus-visible{box-shadow:0 0 0 3px rgba(199,154,54,.34),var(--shadow)}
.slider-gradient{pointer-events:none}
.slider-arrow{position:absolute;z-index:10;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:46px;height:46px;padding:0;border:1px solid rgba(255,255,255,.58);border-radius:50%;background:rgba(13,35,31,.52);backdrop-filter:blur(5px);color:white;font:300 2.1rem/1 Arial,sans-serif;cursor:pointer;transition:background .2s,transform .2s}
.slider-arrow:hover,.slider-arrow:focus-visible{background:rgba(13,35,31,.82);transform:translateY(-50%) scale(1.06)}
.slider-prev{left:16px}.slider-next{right:16px}
.slider-dots{align-items:center;max-width:56%;bottom:12px}
.slider-dots button{width:7px;height:7px;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.48);cursor:pointer;transition:width .25s,background .25s}
.slider-dots button.active{width:20px;border-radius:99px;background:#fff}
.gallery-grid img[role="button"]{cursor:zoom-in;outline-offset:3px}

/* Full-screen, swipeable engagement photograph viewer. */
.photo-lightbox{position:fixed;inset:0;z-index:1350;display:grid;place-items:center;padding:18px;opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s}
.photo-lightbox.open{opacity:1;visibility:visible}.photo-lightbox-backdrop{position:absolute;inset:0;background:rgba(4,9,8,.94);backdrop-filter:blur(7px)}
.photo-lightbox-viewer{position:relative;z-index:1;display:grid;place-items:center;width:100%;height:100%;touch-action:pan-y}
.photo-lightbox-viewer>img{display:block;max-width:min(1200px,calc(100vw - 120px));max-height:calc(100vh - 80px);width:auto;height:auto;object-fit:contain;border-radius:10px;box-shadow:0 18px 60px rgba(0,0,0,.45);transition:opacity .18s,transform .18s}
.photo-lightbox-viewer>img.changing{opacity:.35;transform:scale(.985)}
.lightbox-close,.lightbox-arrow{position:absolute;z-index:3;display:grid;place-items:center;border:1px solid rgba(255,255,255,.35);background:rgba(15,28,25,.66);color:white;cursor:pointer;backdrop-filter:blur(6px)}
.lightbox-close{right:8px;top:5px;width:48px;height:48px;border-radius:50%;font-size:2rem}.lightbox-arrow{top:50%;transform:translateY(-50%);width:52px;height:72px;border-radius:18px;font:300 2.5rem/1 Arial,sans-serif}.lightbox-prev{left:8px}.lightbox-next{right:8px}
.lightbox-counter{position:absolute;z-index:3;bottom:4px;left:50%;transform:translateX(-50%);margin:0;padding:8px 14px;border-radius:99px;background:rgba(15,28,25,.7);color:white;font:600 .72rem Montserrat,sans-serif;letter-spacing:.1em}
@media(max-width:760px){
  .slider-arrow{width:42px;height:42px;font-size:1.9rem}.slider-prev{left:9px}.slider-next{right:9px}
  .slider-caption{left:16px;right:16px;bottom:27px}.slider-caption strong{font-size:2.35rem}.slider-dots{bottom:10px;max-width:72%}
  .photo-lightbox{padding:0}.photo-lightbox-viewer>img{max-width:100vw;max-height:calc(100vh - 96px);border-radius:0}
  .lightbox-close{right:12px;top:max(12px,env(safe-area-inset-top));width:44px;height:44px}
  .lightbox-arrow{top:auto;bottom:max(15px,env(safe-area-inset-bottom));transform:none;width:48px;height:48px;border-radius:50%;font-size:2rem}
  .lightbox-prev{left:18px}.lightbox-next{right:18px}.lightbox-counter{bottom:max(24px,calc(env(safe-area-inset-bottom) + 9px))}
}

/* Final emphasis requested for countdown and envelope invitation details. */
.countdown strong{font-weight:700!important}
.countdown span{font-weight:700!important}
.envelope-card .tiny,.envelope-card>p:last-child{color:var(--green)!important;font-weight:700!important}
.journey-four-photo img{object-position:center!important}

/* Rich red wax seal with a clear, elegant touch prompt. */
.seal{overflow:hidden;background:radial-gradient(circle at 32% 25%,#d94a52 0 7%,#a52134 28%,#741426 68%,#4a0915)!important;box-shadow:0 9px 22px rgba(85,7,23,.42),inset 0 0 0 5px rgba(255,218,158,.1),inset 0 0 0 9px rgba(54,2,14,.24)!important;animation:sealTouchPrompt 1.9s ease-in-out infinite}
.seal span,.seal b{position:relative;z-index:2}
.seal:before{content:"";position:absolute;inset:7px;border:1px solid rgba(255,218,158,.42);border-radius:50%;z-index:1;animation:sealInnerPulse 1.9s ease-in-out infinite}
.seal:after{content:"";position:absolute;z-index:1;top:-35%;bottom:-35%;left:-55%;width:32%;background:linear-gradient(90deg,transparent,rgba(255,239,205,.56),transparent);transform:rotate(20deg);animation:sealShine 2.7s ease-in-out infinite}
.envelope.open .seal{animation:none!important}.envelope.open .seal:before,.envelope.open .seal:after{animation:none!important}
@keyframes sealTouchPrompt{0%,100%{filter:brightness(1);box-shadow:0 9px 22px rgba(85,7,23,.42),inset 0 0 0 5px rgba(255,218,158,.1),inset 0 0 0 9px rgba(54,2,14,.24)}50%{filter:brightness(1.13);box-shadow:0 10px 30px rgba(167,20,48,.58),0 0 0 7px rgba(181,31,55,.09),inset 0 0 0 5px rgba(255,218,158,.16),inset 0 0 0 9px rgba(54,2,14,.2)}}
@keyframes sealInnerPulse{50%{inset:4px;border-color:rgba(255,225,174,.7)}}
@keyframes sealShine{0%,35%{left:-55%;opacity:0}48%{opacity:1}68%,100%{left:125%;opacity:0}}

/* Luxurious opening details, drawn entirely in CSS to keep the page lightweight. */
.envelope{isolation:isolate;border:1px solid rgba(173,121,31,.62)!important;box-shadow:0 38px 110px rgba(64,43,10,.25),0 0 0 5px rgba(255,250,227,.78),0 0 0 7px rgba(182,132,47,.28)!important}
.envelope:before{content:"";position:absolute;inset:10px;z-index:5;border:1px solid rgba(187,137,42,.38);border-radius:4px;pointer-events:none}
.envelope-corner{position:absolute;z-index:6;color:#a87722;font-size:2rem;line-height:1;text-shadow:0 1px #fff1bd,0 0 12px rgba(204,155,51,.28);pointer-events:none}.corner-one{left:17px;top:15px;transform:rotate(-42deg)}.corner-two{right:17px;top:15px;transform:scaleX(-1) rotate(-42deg)}
.envelope-card{background:radial-gradient(circle at 50% 35%,rgba(255,255,255,.92),transparent 42%),linear-gradient(145deg,#fffdf5,#f8eed8)!important;box-shadow:0 15px 38px rgba(69,44,8,.18),inset 0 0 0 5px rgba(255,255,255,.62),inset 0 0 0 7px rgba(190,139,42,.2)!important}
.envelope-card:before,.envelope-card:after{content:"";position:absolute;top:13px;bottom:13px;width:1px;background:linear-gradient(transparent,rgba(182,132,47,.48),transparent)}.envelope-card:before{left:13px}.envelope-card:after{right:13px}
.card-crown{display:flex;align-items:center;justify-content:center;gap:9px;height:18px;color:#b17d20;text-shadow:0 0 8px rgba(211,165,56,.26)}.card-crown b{font-size:1.5rem;font-weight:400}.card-crown span{font-size:.55rem}
.card-flourish{color:#b17d20;font-size:.75rem;letter-spacing:.13em;margin-top:4px}
.intro-blessing{font-weight:600;letter-spacing:.13em;text-shadow:0 1px rgba(255,255,255,.8)}
.envelope-lamp{position:absolute;z-index:7;top:-7px;width:34px;height:128px;pointer-events:none;filter:drop-shadow(0 7px 8px rgba(119,73,8,.24))}.lamp-one{left:38px}.lamp-two{right:38px}.envelope-lamp:before{content:"";position:absolute;left:50%;top:0;width:2px;height:79px;transform:translateX(-50%);background:repeating-linear-gradient(#9b6718 0 4px,#e8c368 4px 7px);box-shadow:0 0 5px rgba(240,196,92,.55)}.envelope-lamp i{position:absolute;left:50%;top:72px;width:23px;height:9px;transform:translateX(-50%);border-radius:50% 50% 25% 25%;background:linear-gradient(90deg,#8b5510,#f3d176 46%,#9a6415);box-shadow:0 2px 0 #714208}.envelope-lamp b{position:absolute;left:50%;top:60px;width:10px;height:17px;transform:translateX(-50%);border-radius:50% 50% 45% 45%;background:radial-gradient(ellipse at 50% 80%,#fff6af 0 18%,#ffc52f 35%,#e87513 66%,transparent 70%);filter:drop-shadow(0 0 4px #ffd64f);animation:envelopeFlame 1.25s ease-in-out infinite}.envelope-lamp em{position:absolute;left:50%;top:79px;width:30px;height:13px;transform:translateX(-50%);border-radius:0 0 50% 50%;background:linear-gradient(90deg,#79500f,#e9c566 50%,#79500f);box-shadow:0 0 14px rgba(255,190,43,.42)}.lamp-two b{animation-delay:.3s}.envelope-namaste{position:absolute;z-index:7;left:0;right:0;bottom:12px;color:#926318;font-family:"Great Vibes",cursive;font-size:1.45rem;letter-spacing:.05em;text-shadow:0 1px #fff4c7,0 0 10px rgba(210,155,42,.35);pointer-events:none}.envelope-namaste span{font-family:Georgia,serif;font-size:.48em;margin:0 8px;vertical-align:middle}@keyframes envelopeFlame{0%,100%{transform:translateX(-50%) scale(1) rotate(-2deg);filter:drop-shadow(0 0 4px #ffd64f)}50%{transform:translateX(-50%) scale(.88,1.12) rotate(3deg);filter:drop-shadow(0 0 8px #ffbd24)}}

/* Live stream and future gallery notices. */
.celebration-updates{text-align:center}.celebration-updates>.fancy-heading{max-width:760px;margin:.2em auto .65em}.live-wedding-card{position:relative;max-width:900px;margin:34px auto 30px;padding:38px 42px;display:grid;grid-template-columns:90px 1fr;gap:26px;align-items:center;text-align:left;border:1px solid rgba(190,139,42,.42);border-radius:28px;background:radial-gradient(circle at 8% 10%,rgba(215,171,68,.16),transparent 32%),linear-gradient(135deg,rgba(255,253,246,.98),rgba(242,249,247,.96));box-shadow:0 22px 60px rgba(31,72,57,.12);overflow:hidden}.live-wedding-card:after{content:"";position:absolute;inset:9px;border:1px solid rgba(190,139,42,.18);border-radius:21px;pointer-events:none}.live-badge{position:absolute;right:24px;top:20px;font:700 .62rem/1 Montserrat,Arial,sans-serif;letter-spacing:.13em;text-transform:uppercase;color:#982339}.live-badge i{display:inline-block;width:8px;height:8px;margin-right:7px;border-radius:50%;background:#c3263d;box-shadow:0 0 0 5px rgba(195,38,61,.1);animation:livePulse 1.5s ease-in-out infinite}.live-icon{width:78px;height:78px;display:grid;place-items:center;border-radius:50%;background:linear-gradient(145deg,#a5253a,#651426);color:#fff4dc;font-size:1.25rem;box-shadow:0 12px 28px rgba(102,19,37,.24),inset 0 0 0 5px rgba(255,230,180,.1)}.live-wedding-card h4{margin:0 0 7px;color:var(--green);font-family:"Great Vibes",cursive;font-size:2.7rem;font-weight:400}.live-wedding-card p{margin:0;font-size:1.05rem;line-height:1.5}.stay-tuned{display:inline-block;margin-top:12px;color:var(--gold-dark);font:700 .66rem/1 Montserrat,Arial,sans-serif;letter-spacing:.16em;text-transform:uppercase}.coming-soon-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;max-width:900px;margin:auto}.coming-soon-grid article{padding:27px 21px;border:1px solid rgba(190,139,42,.32);border-radius:22px;background:rgba(255,253,246,.9);box-shadow:0 12px 32px rgba(35,71,57,.08)}.coming-soon-grid article>span{display:block;min-height:31px;color:#b07b21;font-size:1.55rem}.coming-soon-grid small{display:block;margin:8px 0;color:#9a2438;font:700 .58rem/1 Montserrat,Arial,sans-serif;letter-spacing:.15em;text-transform:uppercase}.coming-soon-grid h4{margin:10px 0 7px;color:var(--green);font-size:1.3rem}.coming-soon-grid p{margin:0;font-size:.93rem;line-height:1.45}@keyframes livePulse{50%{opacity:.45;transform:scale(.72)}}
@media(max-width:760px){.envelope-corner{font-size:1.45rem}.corner-one{left:12px;top:11px}.corner-two{right:12px;top:11px}.envelope-lamp{height:105px;transform:scale(.78);transform-origin:top center}.lamp-one{left:20px}.lamp-two{right:20px}.envelope-namaste{bottom:7px;font-size:1.1rem}.card-crown{height:13px}.card-flourish{display:none}.live-wedding-card{grid-template-columns:1fr;text-align:center;padding:54px 23px 30px}.live-icon{margin:auto}.live-badge{left:0;right:0;top:22px}.coming-soon-grid{grid-template-columns:1fr}.celebration-updates{padding-left:16px;padding-right:16px}}

/* The pink couple portrait returns to the original arched finale frame. */
.final-photo img[src*="engagement-pink"]{object-position:50% 24%}

/* Extra envelope breathing room on phones only; desktop remains unchanged. */
@media(max-width:760px){
  .envelope-card{bottom:2%!important;height:88%!important;padding:12px!important}
  .envelope-card .tiny{margin:0!important}
  .envelope-card .envelope-couple-names{margin:28px 0 0!important}
  .envelope-card>p:last-child{margin:30px 0 0!important}
}

/* A stronger, better-proportioned countdown on desktop only. */
@media(min-width:761px){
  .countdown{grid-template-columns:repeat(4,minmax(94px,128px));gap:15px}
  .countdown .unit{padding:22px 13px}
  .countdown strong{font-family:Montserrat,Arial,sans-serif!important;font-size:2rem!important;font-weight:700!important;letter-spacing:.02em!important;font-variant-numeric:tabular-nums}
  .countdown span{font-size:.64rem!important}
  .envelope-card .tiny{font-size:.78rem!important;letter-spacing:.16em}
  .envelope-card>p:last-child{font-size:1.2rem!important;letter-spacing:.1em}
}

/* Sumuhurtham stars, brighter lamps, and reception toast. */
.wedding-sparkles{position:absolute;inset:2% 4%;z-index:7;pointer-events:none}
.wedding-sparkles span{position:absolute;color:#fff7cf;font-size:1.25rem;text-shadow:0 0 5px #fff,0 0 12px #e5ad31;animation:weddingTwinkle 2.1s ease-in-out infinite}
.wedding-sparkles span:nth-child(1){left:8%;top:15%}.wedding-sparkles span:nth-child(2){left:25%;top:5%;animation-delay:.35s}.wedding-sparkles span:nth-child(3){right:26%;top:9%;animation-delay:.7s}.wedding-sparkles span:nth-child(4){right:8%;top:21%;animation-delay:1.05s}.wedding-sparkles span:nth-child(5){left:13%;top:55%;animation-delay:1.4s}.wedding-sparkles span:nth-child(6){right:12%;top:58%;animation-delay:1.75s}.wedding-sparkles span:nth-child(7){left:31%;bottom:8%;animation-delay:.9s}.wedding-sparkles span:nth-child(8){right:30%;bottom:5%;animation-delay:1.25s}
@keyframes weddingTwinkle{0%,100%{opacity:.25;transform:scale(.55) rotate(0)}50%{opacity:1;transform:scale(1.25) rotate(35deg)}}
.wedding-diya{filter:brightness(1.35) saturate(1.35) drop-shadow(0 0 6px #ffb11b) drop-shadow(0 0 13px rgba(255,115,0,.75));animation:brightDiya 1.45s ease-in-out infinite!important}
.wedding-diya.d2{animation-delay:.3s!important}
@keyframes brightDiya{0%,100%{transform:scale(1);filter:brightness(1.25) saturate(1.3) drop-shadow(0 0 5px #ffb11b) drop-shadow(0 0 11px rgba(255,115,0,.65))}50%{transform:scale(1.09);filter:brightness(1.7) saturate(1.5) drop-shadow(0 0 9px #ffd45a) drop-shadow(0 0 20px rgba(255,98,0,.92))}}
.reception-stage,.reception-visual>.fairy-lights{display:none!important}
.reception-art-wrap{position:relative;width:min(100%,430px);margin:auto;overflow:visible;border-radius:24px;border:1px solid rgba(188,136,44,.34);box-shadow:0 18px 45px rgba(74,40,18,.2);isolation:isolate;background:rgba(255,250,240,.68)}
.reception-couple-art{display:block;width:100%;height:auto;aspect-ratio:auto;object-fit:contain;border-radius:inherit;animation:receptionImageGlow 5s ease-in-out infinite}
@keyframes receptionImageGlow{50%{filter:saturate(1.06) brightness(1.04)}}
.reception-lamp-glow{position:absolute;z-index:2;bottom:5%;width:18%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(255,238,147,.78),rgba(255,151,30,.28) 35%,transparent 70%);mix-blend-mode:screen;animation:receptionLamp 1.7s ease-in-out infinite;pointer-events:none}
.reception-lamp-glow.lamp-left{left:3%}.reception-lamp-glow.lamp-right{right:3%;animation-delay:.38s}
@keyframes receptionLamp{50%{opacity:.65;transform:scale(1.22)}}
.champagne-toast{position:absolute;z-index:4;right:5%;bottom:5%;width:58px;height:70px;color:#fff4c4;filter:drop-shadow(0 0 6px rgba(255,200,62,.9));pointer-events:none}
.champagne-toast>span{display:block;font-size:2.8rem;animation:champagneClink 2.8s ease-in-out infinite;transform-origin:bottom center}
@keyframes champagneClink{0%,35%,70%,100%{transform:rotate(0) scale(1)}45%{transform:rotate(-8deg) scale(1.1)}55%{transform:rotate(8deg) scale(1.1)}}
.champagne-toast .bubble{position:absolute;display:block;width:6px;height:6px;border:1px solid #fff3b0;border-radius:50%;bottom:42px;opacity:0;animation:champagneBubble 2.8s ease-out infinite}
.champagne-toast .b1{left:16px;animation-delay:.2s}.champagne-toast .b2{left:31px;width:4px;height:4px;animation-delay:.55s}.champagne-toast .b3{left:42px;animation-delay:.9s}
@keyframes champagneBubble{35%{opacity:0;transform:translateY(0)}48%{opacity:1}75%,100%{opacity:0;transform:translateY(-35px) translateX(5px)}}
@media(max-width:760px){.wedding-sparkles span{font-size:1rem}.champagne-toast{right:4%;bottom:4%;transform:scale(.86);transform-origin:bottom right}.reception-art-wrap{border-radius:18px}}

/* Lightweight finishing touches: monogram, opening petals, sharing and link-ready livestream. */
.opening-petals{position:absolute;z-index:9;inset:-15% -8%;overflow:hidden;pointer-events:none}.opening-petals i{position:absolute;top:52%;left:50%;width:10px;height:17px;border-radius:85% 15% 80% 20%;background:linear-gradient(145deg,#cf3450,#8f1730);opacity:0}.envelope.open .opening-petals i{animation:openingPetal .9s ease-out forwards}.opening-petals i:nth-child(1){--x:-190px;--y:-125px;--r:-150deg}.opening-petals i:nth-child(2){--x:-135px;--y:-175px;--r:125deg;animation-delay:.05s!important}.opening-petals i:nth-child(3){--x:-76px;--y:-205px;--r:-90deg;animation-delay:.1s!important}.opening-petals i:nth-child(4){--x:72px;--y:-205px;--r:160deg;animation-delay:.04s!important}.opening-petals i:nth-child(5){--x:132px;--y:-170px;--r:-125deg;animation-delay:.12s!important}.opening-petals i:nth-child(6){--x:190px;--y:-118px;--r:145deg;animation-delay:.08s!important}.opening-petals i:nth-child(7){--x:-155px;--y:-38px;--r:-110deg;animation-delay:.14s!important}.opening-petals i:nth-child(8){--x:158px;--y:-32px;--r:120deg;animation-delay:.16s!important}@keyframes openingPetal{0%{opacity:0;transform:translate(-50%,-50%) scale(.3)}18%{opacity:.95}100%{opacity:0;transform:translate(calc(-50% + var(--x)),calc(-50% + var(--y))) rotate(var(--r)) scale(1.05)}}
.hero-monogram{display:flex;align-items:center;justify-content:center;gap:9px;margin:7px 0 13px;color:#b28127;font-family:Italiana,serif;font-size:1.12rem;letter-spacing:.08em}.hero-monogram:before,.hero-monogram:after{content:"";width:44px;height:1px;background:linear-gradient(90deg,transparent,#c49a43)}.hero-monogram:after{transform:scaleX(-1)}.hero-monogram b{color:#a52339;font-size:.78em;font-weight:400}.hero-monogram span{text-shadow:0 1px #fff7d9,0 0 8px rgba(198,151,53,.28)}
.live-wedding-card{text-decoration:none;color:inherit}.live-wedding-card[aria-disabled="true"]{cursor:default}.live-wedding-card.is-live{cursor:pointer;transition:transform .25s,box-shadow .25s}.live-wedding-card.is-live:hover{transform:translateY(-3px);box-shadow:0 27px 70px rgba(31,72,57,.17)}
@media(max-width:760px){.opening-petals i:nth-child(1){--x:-125px}.opening-petals i:nth-child(6){--x:125px}.opening-petals i:nth-child(7){--x:-105px}.opening-petals i:nth-child(8){--x:105px}.hero-monogram{margin-top:4px}}

/* Prominent traditional blessing above the envelope. */
.intro-blessing{color:#667a3a!important;font-size:clamp(.88rem,2.1vw,1.22rem)!important;font-weight:700!important;line-height:1.35;letter-spacing:.11em!important;margin:0 0 24px!important}
@media(max-width:760px){.intro-blessing{font-size:.82rem!important;letter-spacing:.065em!important;margin-bottom:19px!important;white-space:nowrap}}

/* Wedding livestream callout and the download-to-updates finale flow. */
.invite-download{text-align:center;padding-bottom:20px}.celebration-updates{padding-top:54px}.wedding-live-prompt{margin:22px auto 0;padding-top:18px;border-top:1px solid rgba(182,132,47,.25);text-align:center}.wedding-live-prompt strong{display:block;color:#9f2238;font:700 .68rem/1.35 Montserrat,Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase;animation:liveAttention 1.8s ease-in-out infinite}.wedding-live-prompt strong i{display:inline-block;width:8px;height:8px;margin-right:7px;border-radius:50%;background:#c3263d;box-shadow:0 0 0 5px rgba(195,38,61,.1)}.wedding-live-prompt a{display:inline-block;margin-top:10px;color:var(--green);font:700 .63rem/1.3 Montserrat,Arial,sans-serif;letter-spacing:.07em;text-decoration:none;border-bottom:1px solid rgba(25,86,58,.35)}@keyframes liveAttention{0%,100%{opacity:1;filter:brightness(1)}50%{opacity:.55;filter:brightness(1.25)}}
@media(max-width:760px){.invite-download{padding-top:60px;padding-bottom:5px}.celebration-updates{padding-top:48px}.wedding-live-prompt{margin-top:18px}.wedding-live-prompt strong{font-size:.61rem}}

/* Final mobile envelope fit: keep the hanging lamps and crown clear of the card text. */
@media(max-width:760px){
  .envelope-card{
    bottom:6%!important;
    height:76%!important;
    padding:18px 12px 14px!important;
  }
  .card-crown{
    height:16px!important;
    margin-bottom:6px!important;
  }
  .envelope-card .tiny{
    margin:0 0 7px!important;
    font-size:.7rem!important;
  }
  .envelope-card .envelope-couple-names{
    margin:13px 0 6px!important;
    font-size:clamp(2.7rem,12vw,3.5rem)!important;
    line-height:.75!important;
  }
  .envelope-card .envelope-couple-names small{
    margin:4px 0!important;
  }
  .envelope-card>p:last-child{
    margin:8px 0 0!important;
    font-size:1.02rem!important;
  }
  .envelope-lamp{
    top:-5px!important;
    height:96px!important;
    transform:scale(.68)!important;
  }
}

/* Final monogram weight override. */
.hero-monogram,
.hero-monogram span,
.hero-monogram b{
  font-weight:800!important;
}
.hero-monogram{
  text-shadow:0 1px #fff7d9,0 0 10px rgba(178,129,39,.35),0 1px 0 rgba(90,62,15,.22)!important;
}

/* Journey 1 carousel: keep the second memory visible as a soft side card. */
.video-call-carousel{
  min-height:520px;
}
.call-card[data-call-slide="0"]:not(.active){
  z-index:1;
  opacity:.76;
  transform:translateX(-24%) translateY(18px) rotateY(9deg) rotate(-6deg) scale(.86);
}
.call-card[data-call-slide="1"]:not(.active){
  z-index:1;
  opacity:.74;
  transform:translateX(26%) translateY(30px) rotateY(-9deg) rotate(5deg) scale(.86);
}
.call-card.active{
  z-index:3!important;
}
@media(max-width:760px){
  .video-call-carousel{
    min-height:490px!important;
  }
  .call-card[data-call-slide="0"]:not(.active){
    transform:translateX(-18%) translateY(16px) rotate(-5deg) scale(.84);
  }
  .call-card[data-call-slide="1"]:not(.active){
    transform:translateX(20%) translateY(28px) rotate(5deg) scale(.84);
  }
}

.live-link-status{
  display:block;
  max-height:0;
  opacity:0;
  overflow:hidden;
  color:#8c2337;
  font:700 .78rem/1.35 Montserrat,Arial,sans-serif;
  letter-spacing:.04em;
  transition:max-height .25s ease,opacity .25s ease,margin-top .25s ease;
}
.live-wedding-card.show-live-status .live-link-status{
  max-height:44px;
  margin-top:10px;
  opacity:1;
}
