:root{
  --r:#751e03;
  --r2:#5a1602;
  --r3:#3d0e01;
  --gold:#C9A84C;
  --gold2:#e8d5a3;
  --gold3:#f5edd5;
  --w:#ffffff;
  --offwhite:#fffdf8;
  --cream:#fdf6ec;
}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
html{scroll-behavior:smooth;}
body{font-family:'Noto Serif SC',serif;background:#fff;color:#fff;overflow-x:hidden;max-width:520px;margin:0 auto;}

/* ══════ MUSIC BTN ══════ */
#musicBtn{
  position:fixed;top:16px;right:16px;z-index:9999;
  width:44px;height:44px;border-radius:50%;
  background:rgba(117,30,3,.85);border:1.5px solid var(--gold);
  cursor:pointer;display:flex;align-items:center;justify-content:center;
  box-shadow:0 3px 16px rgba(0,0,0,.35);
  transition:transform .3s;
  backdrop-filter:blur(6px);
}
#musicBtn:hover{transform:scale(1.08);}
.mb-ripple{position:absolute;border-radius:50%;border:1px solid rgba(201,168,76,.3);animation:mbRipple 2.2s ease-out infinite;opacity:0;}
.mb-ripple:nth-child(1){inset:-7px;}
.mb-ripple:nth-child(2){inset:-15px;animation-delay:.7s;}
@keyframes mbRipple{0%{opacity:.55;transform:scale(.88)}100%{opacity:0;transform:scale(1.25)}}
.mb-icon{width:26px;height:26px;position:relative;display:flex;align-items:center;justify-content:center;}
.mb-icon svg{width:22px;height:22px;fill:var(--gold);transition:opacity .3s;}
#musicBtn.paused .mb-icon .ico-note{opacity:0;}
#musicBtn.paused .mb-icon .ico-pause{opacity:0;}
#musicBtn:not(.paused) .mb-icon .ico-play{display:none;}
#musicBtn.paused .mb-icon .ico-play{display:block;}
#musicBtn:not(.paused) .mb-icon .ico-pause{display:block;}
#musicBtn.paused .mb-icon .ico-pause{display:none;}
.mb-note-ring{position:absolute;inset:0;border-radius:50%;border:1px solid rgba(201,168,76,.2);animation:noteRing 3s ease-in-out infinite;}
@keyframes noteRing{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}}

/* ══════ ENTRANCE ══════ */
#entrance{
  position:fixed;inset:0;z-index:9999;
  background:var(--r3);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  overflow:hidden;
}
.ent-curtain-l,.ent-curtain-r{
  position:absolute;top:0;bottom:0;width:50%;
  background:linear-gradient(180deg,var(--r3) 0%,var(--r2) 40%,var(--r) 100%);
  transition:transform 1.4s cubic-bezier(.76,0,.24,1);
  z-index:2;
}
.ent-curtain-l{left:0;transform-origin:left center;}
.ent-curtain-r{right:0;transform-origin:right center;}
.ent-curtain-l::after{content:'';position:absolute;right:0;top:0;bottom:0;width:2px;background:linear-gradient(to bottom,transparent,rgba(201,168,76,.5),transparent);}
.ent-curtain-r::before{content:'';position:absolute;left:0;top:0;bottom:0;width:2px;background:linear-gradient(to bottom,transparent,rgba(201,168,76,.5),transparent);}
#entrance.open .ent-curtain-l{transform:translateX(-100%);}
#entrance.open .ent-curtain-r{transform:translateX(100%);}
.ent-curtain-l::before,.ent-curtain-r::after{
  content:'';position:absolute;inset:0;
  background-image:url("data:image/svg+xml,%3Csvg width='40' height='40' viewBox='0 0 40 40' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M20 2 L38 20 L20 38 L2 20 Z' fill='none' stroke='rgba(201,168,76,0.08)' stroke-width='1'/%3E%3C/svg%3E");
}
.ent-curt-gem{position:absolute;width:12px;height:12px;background:var(--gold);transform:rotate(45deg);z-index:3;}
.ent-curt-gem.t{top:28px;left:50%;transform:translateX(-50%) rotate(45deg);}
.ent-curt-gem.b{bottom:28px;left:50%;transform:translateX(-50%) rotate(45deg);}
.ent-back{position:absolute;inset:0;z-index:1;background:var(--r3);display:flex;align-items:center;justify-content:center;}
.ent-back-inner{text-align:center;opacity:0;transition:opacity .8s ease .8s;}
#entrance.open .ent-back-inner{opacity:1;}
.ent-lan-wrap{position:absolute;top:0;display:flex;gap:0;z-index:3;}
.ent-lan-wrap.left{left:5%;}
.ent-lan-wrap.right{right:5%;}
.ent-lan{display:flex;flex-direction:column;align-items:center;animation:swingLan 3.5s ease-in-out infinite;transform-origin:top center;}
.ent-lan:nth-child(2){animation-delay:.6s;}
@keyframes swingLan{0%,100%{transform:rotate(-6deg)}50%{transform:rotate(6deg)}}
.lan-str{width:1px;height:44px;background:linear-gradient(to bottom,rgba(201,168,76,.8),rgba(201,168,76,.3));}
.lan-body{width:22px;height:35px;background:linear-gradient(135deg,#ff6b5b,#cc1a08,#7a0d00);border-radius:50% 50% 48% 48%/38% 38% 62% 62%;display:flex;align-items:center;justify-content:center;box-shadow:0 0 14px rgba(255,60,20,.45),inset 0 0 8px rgba(255,160,0,.25);position:relative;overflow:hidden;}
.lan-body::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent 30%,rgba(255,255,255,.15) 50%,transparent 70%);}
.lan-body::after{content:'囍';color:var(--gold);font-size:9px;font-family:'Ma Shan Zheng',cursive;position:relative;z-index:1;}
.lan-tas{width:2px;height:14px;background:linear-gradient(to bottom,var(--gold),transparent);}
.ent-center{
  position:absolute;inset:0;z-index:4;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:30px;
  pointer-events:none;
}
.ent-xi{
  font-family:'Ma Shan Zheng',cursive;font-size:96px;color:var(--gold);
  line-height:1;margin-bottom:16px;
  text-shadow:0 0 50px rgba(201,168,76,.6),0 0 100px rgba(201,168,76,.25);
  animation:xiGlow 3s ease-in-out infinite;
  opacity:0;transform:scale(.8);transition:opacity .8s ease .3s,transform .8s ease .3s;
}
#entrance.loaded .ent-xi{opacity:1;transform:scale(1);}
@keyframes xiGlow{0%,100%{text-shadow:0 0 50px rgba(201,168,76,.6)}50%{text-shadow:0 0 80px rgba(201,168,76,.9),0 0 140px rgba(201,168,76,.35)}}
.ent-line{width:1px;height:0;background:linear-gradient(to bottom,transparent,rgba(201,168,76,.6),transparent);margin:0 auto 16px;transition:height 1s ease .6s;}
#entrance.loaded .ent-line{height:36px;}
.ent-names-zh{font-family:'Ma Shan Zheng',cursive;font-size:20px;color:var(--gold2);letter-spacing:7px;margin-bottom:6px;opacity:0;transform:translateY(12px);transition:opacity .8s ease .7s,transform .8s ease .7s;}
#entrance.loaded .ent-names-zh{opacity:1;transform:translateY(0);}
.ent-divider{display:flex;align-items:center;gap:10px;margin:10px 0 8px;opacity:0;transition:opacity .8s ease .85s;}
#entrance.loaded .ent-divider{opacity:1;}
.ent-divider::before,.ent-divider::after{content:'';flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent);width:60px;}
.ent-div-gem{width:7px;height:7px;background:var(--gold);transform:rotate(45deg);}
.ent-names-en{font-family:'Cormorant Garamond',serif;font-size:30px;font-weight:300;color:#fff;letter-spacing:6px;opacity:0;transform:translateY(12px);transition:opacity .8s ease .95s,transform .8s ease .95s;}
#entrance.loaded .ent-names-en{opacity:1;transform:translateY(0);}
.ent-subtitle{font-size:9px;letter-spacing:5px;color:rgba(201,168,76,.6);font-family:'Cormorant Garamond',serif;margin:10px 0 32px;opacity:0;transition:opacity .8s ease 1.1s;}
#entrance.loaded .ent-subtitle{opacity:1;}
.ent-btn{background:transparent;border:none;cursor:pointer;pointer-events:all;position:relative;opacity:0;transform:translateY(10px);transition:opacity .8s ease 1.2s,transform .8s ease 1.2s;}
#entrance.loaded .ent-btn{opacity:1;transform:translateY(0);}
.ent-btn-oval{width:130px;height:130px;border-radius:50%;border:1px solid rgba(201,168,76,.45);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;position:relative;transition:all .35s;}
.ent-btn:hover .ent-btn-oval{border-color:var(--gold);background:rgba(201,168,76,.07);}
.ent-ring{position:absolute;border-radius:50%;border:1px solid rgba(201,168,76,.25);animation:eRing 2.4s ease-out infinite;opacity:0;}
.ent-ring:nth-child(1){inset:-9px;}.ent-ring:nth-child(2){inset:-18px;animation-delay:.6s;}.ent-ring:nth-child(3){inset:-27px;animation-delay:1.2s;}
@keyframes eRing{0%{opacity:.55;transform:scale(.9)}100%{opacity:0;transform:scale(1.08)}}
.ent-btn-zh{font-family:'Ma Shan Zheng',cursive;font-size:16px;color:var(--gold);letter-spacing:2px;}
.ent-btn-en{font-family:'Cormorant Garamond',serif;font-size:10px;color:rgba(201,168,76,.6);letter-spacing:3px;}
.ent-btn-arr{font-size:16px;color:var(--gold);animation:arrBounce .9s ease-in-out infinite;}
@keyframes arrBounce{0%,100%{transform:translateY(0)}50%{transform:translateY(5px)}}

/* ══════ COMMON ══════ */
section{position:relative;overflow:hidden;}
.sw{padding:60px 28px;}
.s-tag{font-size:10px;letter-spacing:4px;color:var(--gold);text-transform:uppercase;font-family:'Cormorant Garamond',serif;margin-bottom:6px;}
.s-title{font-family:'Ma Shan Zheng',cursive;font-size:32px;letter-spacing:4px;line-height:1.2;margin-bottom:2px;}
.s-en{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:15px;letter-spacing:2px;margin-bottom:20px;}
.s-title.on-white{color:var(--r);}.s-en.on-white{color:var(--r2);font-weight:600;opacity:.85;}.s-tag.on-white{color:var(--r2);opacity:.7;}
.s-title.on-red{color:#fff;}.s-en.on-red{color:rgba(255,255,255,.5);}.s-tag.on-red{color:rgba(201,168,76,.75);}
.divw{display:flex;align-items:center;gap:8px;margin:14px auto;width:fit-content;}
.divw::before,.divw::after{content:'';width:44px;height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent);}
.dmd{width:8px;height:8px;background:var(--gold);transform:rotate(45deg);flex-shrink:0;}
.dmd.sm{width:5px;height:5px;}
.sr{opacity:0;transform:translateY(28px);transition:opacity .75s ease,transform .75s ease;}
.sr.on{opacity:1;transform:translateY(0);}
.srl{opacity:0;transform:translateX(-28px);transition:opacity .75s ease,transform .75s ease;}
.srl.on{opacity:1;transform:translateX(0);}
.srr{opacity:0;transform:translateX(28px);transition:opacity .75s ease,transform .75s ease;}
.srr.on{opacity:1;transform:translateX(0);}
.d1{transition-delay:.1s}.d2{transition-delay:.2s}.d3{transition-delay:.3s}.d4{transition-delay:.4s}.d5{transition-delay:.5s}

/* ══════ HERO ══════ */
#hero{background:#7d1a1c;position:relative;overflow:hidden;height:auto;display:flex;flex-direction:column;align-items:center;}
#heroCanvas{position:absolute;inset:0;pointer-events:none;z-index:3;width:100%;height:100%;}
.h-content{position:relative;z-index:4;width:100%;text-align:center;padding:16px 28px 6px;flex-shrink:0;}
.h-top-zh{font-family:'Ma Shan Zheng',cursive;font-size:16px;color:#fff;letter-spacing:4px;margin-bottom:6px;}
.h-xi{font-family:'Ma Shan Zheng',cursive;font-size:88px;color:var(--gold);line-height:1;margin-bottom:0;}
.h-title{font-family:'Cormorant Garamond',serif;font-size:32px;letter-spacing:9px;color:#fff;font-weight:300;margin-bottom:8px;}
.h-tagline{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:10px;color:rgba(255,255,255,.5);letter-spacing:.8px;line-height:1.6;margin-bottom:4px;}
.h-xi-small{width:28px;height:28px;border-radius:50%;border:1.5px solid rgba(201,168,76,.5);display:flex;align-items:center;justify-content:center;margin:6px auto 10px;font-family:'Ma Shan Zheng',cursive;font-size:12px;color:var(--gold);}
.h-names-block{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:14px;}
.h-person{display:flex;flex-direction:column;align-items:center;gap:3px;}
.h-name-zh{font-family:'Ma Shan Zheng',cursive;font-size:26px;color:#fff;letter-spacing:2px;line-height:1;}
.h-role{font-family:'Cormorant Garamond',serif;font-size:10px;letter-spacing:4px;color:rgba(255,255,255,.65);text-transform:uppercase;font-weight:400;}
.h-cross{font-family:'Cormorant Garamond',serif;font-size:18px;color:var(--gold);font-weight:400;margin-top:2px;}
.h-photo-bleed{position:relative;z-index:2;width:100%;overflow:hidden;height:70vh;margin-bottom:0;display:block;}
.h-photo-fade-top{position:absolute;top:0;left:0;right:0;height:30px;background:linear-gradient(to bottom,#7d1a1c,transparent);z-index:3;}



/* ══════ PARENTS NEW ══════ */
#parentsNew{background:#fff;position:relative;overflow:hidden;}
#parentsNew::after{content:'囍';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-family:'Ma Shan Zheng',cursive;font-size:260px;color:rgba(117,30,3,.03);pointer-events:none;line-height:1;user-select:none;z-index:0;}
.pn-header{background:#fff;padding:36px 28px 20px;text-align:center;position:relative;z-index:1;}
.pn-header-topline{width:44px;height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent);margin:0 auto 20px;}
.pn-title-en{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:34px;font-weight:300;color:var(--r2);letter-spacing:2px;line-height:1.2;margin-bottom:8px;}
.pn-title-zh{font-family:'Ma Shan Zheng',cursive;font-size:18px;color:var(--gold);letter-spacing:6px;line-height:1.5;}
.pn-header-botline{display:flex;align-items:center;gap:8px;margin:20px auto 0;width:fit-content;}
.pn-header-botline::before,.pn-header-botline::after{content:'';width:44px;height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent);}
.pn-header-dmd{width:6px;height:6px;background:var(--gold);transform:rotate(45deg);}
.pn-body{padding:28px 40px 40px;text-align:center;position:relative;z-index:1;}
.pn-name-en{font-family:'Cormorant Garamond',serif;font-size:14px;font-weight:600;letter-spacing:2.5px;color:var(--r);text-transform:uppercase;line-height:1.5;margin-bottom:2px;position:relative;z-index:1;}
.pn-name-zh{font-family:'Ma Shan Zheng',cursive;font-size:16px;color:var(--r2);letter-spacing:4px;line-height:1.6;position:relative;z-index:1;}
.pn-amp{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:28px;font-weight:300;color:var(--r);display:block;margin:12px 0;line-height:1;position:relative;z-index:1;}
.pn-mid-line{width:32px;height:1px;background:var(--gold);margin:20px auto 18px;position:relative;z-index:1;}
.pn-invite-en{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:14px;font-weight:300;color:#888;letter-spacing:.5px;line-height:1.8;margin-bottom:10px;position:relative;z-index:1;}
.pn-invite-zh{font-family:'Noto Serif SC',serif;font-size:12.5px;color:#888;letter-spacing:2px;line-height:2;position:relative;z-index:1;}

/* ══════ COUPLE INTRO ══════ */
#coupleIntro{background:#fff;}
.ci-photos{display:block;}
.ci-photo-box{position:relative;aspect-ratio:1/1;overflow:hidden;background:var(--r2);display:flex;align-items:center;justify-content:center;}
.ci-photo-box img{width:100%;height:100%;object-fit:cover;object-position:center top;}
.ci-photo-ph{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:6px;}
.ci-photo-ph::before{content:'囍';font-family:'Ma Shan Zheng',cursive;font-size:50px;color:rgba(255,255,255,.07);}
.ci-photo-ph-lbl{font-size:8px;color:rgba(255,255,255,.28);letter-spacing:2px;font-family:'Cormorant Garamond',serif;}
.ci-photo-box:first-child{border-right:1px solid rgba(255,255,255,.12);}
.ci-photo-box-single{
  width:100%;
  aspect-ratio:4/3;
  overflow:hidden;
  position:relative;
}
.ci-info{background:#fff;padding:24px 0 8px;text-align:center;}
.ci-persons{display:grid;grid-template-columns:1fr 1fr;margin-bottom:20px;padding-bottom:20px;border-bottom:1px solid rgba(117,30,3,.1);}
.ci-person{display:flex;flex-direction:column;align-items:center;gap:5px;padding:0 12px;}
.ci-person:first-child{border-right:1px solid rgba(117,30,3,.08);}
.ci-role{font-family:'Cormorant Garamond',serif;font-size:9px;letter-spacing:4px;color:var(--r);font-weight:700;text-transform:uppercase;}
.ci-heart-row{display:flex;align-items:center;justify-content:center;font-size:14px;color:var(--r);margin-bottom:14px;}
.ci-name{font-family:'Ma Shan Zheng',cursive;font-size:18px;color:#111;letter-spacing:2px;}
.ci-poem{font-family:'Noto Serif SC',serif;font-size:13px;color:#444;line-height:2.3;letter-spacing:1px;text-align:center;padding:0 24px;}

/* ══════ LOVE STATEMENT ══════ */
#loveStatement{background:#fff;}
.ls-wrap{padding:40px 28px 0;text-align:center;}
.ls-arch-frame{position:relative;width:100%;max-width:280px;margin:0 auto;border-radius:140px 140px 0 0;overflow:hidden;aspect-ratio:3/4;background:#5a1602;}
.ls-arch-ph{width:100%;height:100%;background:linear-gradient(160deg,#8c1c1c 0%,#5a0f0f 100%);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;position:relative;}
.ls-arch-ph::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 60px 120px at 38% 60%,rgba(255,255,255,.06) 0%,transparent 70%),radial-gradient(ellipse 80px 140px at 62% 65%,rgba(255,255,255,.05) 0%,transparent 70%);z-index:1;}
.ls-arch-ph::after{content:'';position:absolute;bottom:0;left:0;right:0;height:28%;background:linear-gradient(to bottom,rgba(255,255,255,0) 0%,rgba(255,255,255,.08) 20%,rgba(255,255,255,.22) 38%,rgba(255,255,255,.45) 55%,rgba(255,255,255,.68) 70%,rgba(255,255,255,.85) 83%,rgba(255,255,255,.96) 93%,rgba(255,255,255,1) 100%);z-index:2;pointer-events:none;}
.ls-arch-ph-icon{font-size:28px;opacity:.35;position:relative;z-index:3;}
.ls-arch-ph-lbl{font-family:'Cormorant Garamond',serif;font-size:10px;letter-spacing:3px;color:rgba(255,255,255,.3);text-transform:uppercase;position:relative;z-index:3;}
.ls-love-row{display:flex;align-items:baseline;justify-content:space-between;padding:20px 4px 0;}
.ls-love-word{font-family:'Cormorant Garamond',serif;font-size:18px;font-weight:700;letter-spacing:3px;color:var(--r);text-transform:uppercase;}
.ls-love-date{font-family:'Cormorant Garamond',serif;font-size:18px;font-weight:700;letter-spacing:2px;color:var(--r);}
.ls-quote-block{padding:28px 12px 36px;text-align:center;}
.ls-quote-zh{font-family:'Noto Serif SC',serif;font-size:15px;color:#1a1a1a;letter-spacing:2px;line-height:1.9;margin-bottom:14px;}
.ls-quote-en{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:12.5px;color:#888;letter-spacing:.6px;line-height:1.9;}

/* ══════ SAVE THE DATE NEW ══════ */
#savedateNew{background:#fff;}
.sdn-cal-block{background:#5a1602;padding:24px 20px 20px;position:relative;overflow:hidden;}
.sdn-year-bg{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-family:'Cormorant Garamond',serif;font-size:80px;font-weight:700;color:rgba(255,255,255,.08);letter-spacing:6px;line-height:1;pointer-events:none;white-space:nowrap;user-select:none;z-index:0;}
.sdn-heading{display:flex;align-items:baseline;gap:2px;margin-bottom:18px;position:relative;z-index:1;}
.sdn-month-num,.sdn-day-num{font-family:'Cormorant Garamond',serif;font-size:48px;font-weight:300;color:#fff;line-height:1;letter-spacing:-1px;}
.sdn-slash{font-family:'Cormorant Garamond',serif;font-size:28px;color:rgba(255,255,255,.5);font-weight:300;margin:0 4px;}
.sdn-week-row{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:4px;position:relative;z-index:1;}
.sdn-week-row span{text-align:center;font-family:'Ma Shan Zheng',cursive;font-size:11px;color:rgba(255,255,255,.5);padding:3px 0;}
.sdn-grid-wrap{display:flex;justify-content:center;position:relative;z-index:1;}
.sdn-grid{display:grid;grid-template-columns:repeat(7,30px);gap:0;}
.sdn-cell{width:30px;height:28px;display:flex;align-items:center;justify-content:center;font-family:'Cormorant Garamond',serif;font-size:12px;color:rgba(255,255,255,.72);font-weight:300;border-radius:4px;}
.sdn-cell.empty{color:transparent;pointer-events:none;}
.sdn-cell.marked{background:#c0392b;color:#fff;font-weight:600;border-radius:50%;width:26px;height:26px;box-shadow:0 0 0 3px rgba(255,255,255,.18);animation:markedPulse 2s ease-in-out infinite;margin:auto;}
.sdn-bottom{background:#fff;padding:32px 24px 36px;text-align:center;position:relative;overflow:hidden;}
.sdn-save-title{font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:400;font-size:40px;color:var(--r);line-height:1.1;margin-bottom:10px;}
.sdn-bracket-txt{font-family:'Ma Shan Zheng',cursive;font-size:16px;color:#444;letter-spacing:3px;margin-bottom:28px;}
.sdn-cd-row{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;position:relative;z-index:1;}
.sdn-cd-unit{background:#5a1602;border-radius:10px;padding:14px 6px 10px;display:flex;flex-direction:column;align-items:center;box-shadow:0 4px 14px rgba(90,22,2,.3);position:relative;overflow:hidden;}
.sdn-cd-unit canvas{position:absolute;inset:0;pointer-events:none;z-index:0;}
.sdn-cd-num{font-family:'Cormorant Garamond',serif;font-size:30px;font-weight:300;color:#fff;line-height:1;margin-bottom:4px;position:relative;z-index:1;min-width:40px;text-align:center;}
.sdn-cd-lbl{font-size:12px;color:rgba(255,255,255,.7);line-height:1.4;font-family:'Ma Shan Zheng',cursive;letter-spacing:1px;text-align:center;position:relative;z-index:1;}
.sdn-cd-lbl span{display:block;font-family:'Cormorant Garamond',serif;font-size:8px;letter-spacing:2px;color:rgba(255,255,255,.45);text-transform:uppercase;margin-top:1px;}

/* ══════ VENUE ══════ */
#venue{background:#fff;}
.vn-map{width:100%;height:220px;position:relative;overflow:hidden;}
.vn-map iframe{width:100%;height:100%;border:none;display:block;}
.vn-info{padding:28px 28px 32px;text-align:center;}
.vn-date-row{font-family:'Noto Serif SC',serif;font-size:13.5px;color:#222;letter-spacing:1px;line-height:2.2;margin-bottom:20px;}
.vn-date-row span{display:block;}
.vn-divider{width:40px;height:1px;background:var(--gold);margin:0 auto 20px;}
.vn-name{font-family:'Noto Serif SC',serif;font-size:15px;color:#222;letter-spacing:1.5px;line-height:2;margin-bottom:24px;}
.vn-name-en{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:13px;color:#888;letter-spacing:.8px;margin-top:2px;}
.vn-nav{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.vn-btn{display:flex;align-items:center;justify-content:center;gap:8px;padding:13px 10px;border-radius:6px;font-family:'Cormorant Garamond',serif;font-size:14px;font-weight:600;letter-spacing:1.5px;text-decoration:none;cursor:pointer;transition:opacity .2s,transform .2s;}
.vn-btn:active{opacity:.85;transform:scale(.97);}
.vn-google{background:#fff;border:1.5px solid var(--r2);color:var(--r2);}
.vn-waze{background:var(--r2);border:1.5px solid var(--r2);color:#fff;}
.vn-icon{width:18px;height:18px;flex-shrink:0;}

/* ══════ RSVP ══════ */
#rsvpSec{background:#fff;}
.rv-photo{width:100%;aspect-ratio:3/2;position:relative;overflow:hidden;background:linear-gradient(160deg,#8c1c1c 0%,#5a0f0f 100%);}
.rv-photo::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 180px 200px at 50% 55%,rgba(255,255,255,.05) 0%,transparent 70%);z-index:1;}
.rv-photo canvas{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none;}
.rv-photo-ph{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;z-index:3;}
.rv-photo-ph-icon{font-size:28px;opacity:.3;}
.rv-photo-ph-lbl{font-family:'Cormorant Garamond',serif;font-size:10px;letter-spacing:3px;color:rgba(255,255,255,.3);text-transform:uppercase;}
.rv-body{padding:24px 28px 32px;text-align:center;}
.rv-title{font-family:'Cormorant Garamond',serif;font-size:38px;font-weight:400;color:var(--r2);letter-spacing:8px;margin-bottom:12px;line-height:1;}
.rv-divider{width:40px;height:1px;background:var(--gold);margin:0 auto 14px;}
.rv-invite-en{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:13.5px;color:#666;letter-spacing:.5px;line-height:1.8;margin-bottom:10px;}
.rv-invite-zh{font-family:'Noto Serif SC',serif;font-size:12px;color:#888;letter-spacing:1.5px;line-height:2;margin-bottom:14px;}
.rv-deadline{font-family:'Noto Serif SC',serif;font-size:12px;color:#888;letter-spacing:1px;line-height:1.9;margin-bottom:18px;}
.rv-deadline strong{color:var(--r2);font-weight:400;}
.rv-btn{display:block;width:100%;padding:16px 20px;background:var(--r2);color:#fff;font-family:'Cormorant Garamond',serif;font-size:16px;font-weight:600;letter-spacing:3px;text-align:center;text-decoration:none;border-radius:4px;cursor:pointer;transition:opacity .2s,transform .15s;position:relative;overflow:hidden;}
.rv-btn::after{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.08) 0%,transparent 60%);}
.rv-btn:active{opacity:.85;transform:scale(.98);}
.rv-btn-zh{display:block;font-family:'Ma Shan Zheng',cursive;font-size:12px;color:rgba(255,255,255,.55);letter-spacing:4px;margin-top:3px;font-weight:400;}

/* ══════ THANK YOU ══════ */
#thankYou{background:#fff;}
.ty-wrap{padding:36px 36px 40px;text-align:center;display:flex;flex-direction:column;align-items:center;position:relative;z-index:1;}
.ty-xi{font-family:'Ma Shan Zheng',cursive;font-size:40px;color:var(--r2);line-height:1;margin-bottom:12px;}
.ty-line{width:36px;height:1px;background:var(--gold);opacity:.6;margin-bottom:16px;}
.ty-title{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:32px;font-weight:300;color:var(--r2);letter-spacing:3px;line-height:1.2;margin-bottom:4px;}
.ty-title-zh{font-family:'Ma Shan Zheng',cursive;font-size:18px;color:var(--gold);letter-spacing:6px;margin-bottom:18px;}
.ty-msg-en{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:13.5px;color:#aaa;letter-spacing:.5px;line-height:2;margin-bottom:8px;}
.ty-msg-zh{font-family:'Noto Serif SC',serif;font-size:12px;color:#aaa;letter-spacing:2px;line-height:2.2;margin-bottom:20px;}
.ty-names{font-family:'Cormorant Garamond',serif;font-size:20px;font-weight:300;color:var(--r2);letter-spacing:5px;margin-bottom:12px;}
.ty-amp{color:var(--gold);font-style:italic;}
.ty-date{font-family:'Cormorant Garamond',serif;font-size:10px;letter-spacing:4px;color:#ccc;text-transform:uppercase;}

/* TOAST */
.toast{position:fixed;bottom:84px;left:50%;transform:translateX(-50%) translateY(10px);background:rgba(26,5,0,.9);color:var(--gold2);padding:12px 24px;font-size:11px;letter-spacing:2px;border:1px solid rgba(201,168,76,.28);opacity:0;transition:all .4s;z-index:2000;white-space:nowrap;font-family:'Noto Serif SC',serif;border-radius:4px;}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0);}
/* ══════ SAVE THE DATE V2 ══════ */
#savedateNew{background:#fff;padding:36px 0 16px;}
.sv2-hero-row{display:grid;grid-template-columns:1fr 3fr;align-items:stretch;}
.sv2-timer{background:#fff;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:16px 8px;}
.sv2-cd-unit{display:flex;flex-direction:column;align-items:center;gap:0;}
.sv2-cd-num{font-family:'Cormorant Garamond',serif;font-size:28px;font-weight:300;color:var(--r2);line-height:1;letter-spacing:-1px;}
.sv2-cd-zh{font-family:'Ma Shan Zheng',cursive;font-size:11px;color:var(--r);letter-spacing:1px;line-height:1.4;}
.sv2-photo{position:relative;overflow:hidden;aspect-ratio:3/4;background:linear-gradient(160deg,#8c1c1c,#5a0f0f);}
.sv2-photo img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block;}
.sv2-photo-ph{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;font-family:'Cormorant Garamond',serif;font-size:10px;letter-spacing:3px;color:rgba(255,255,255,.3);text-transform:uppercase;}
.sv2-photo-ph-icon{font-size:28px;opacity:.3;}
.sv2-quote{text-align:center;padding:28px 28px 24px;position:relative;}
.sv2-quote::before{content:'\201C';font-family:'Cormorant Garamond',serif;font-size:72px;color:var(--gold);opacity:.15;position:absolute;top:-4px;left:16px;line-height:1;font-style:italic;}
.sv2-quote-zh{font-family:'Noto Serif SC',serif;font-size:14px;color:#333;letter-spacing:2px;line-height:2.2;margin-bottom:10px;}
.sv2-quote-en{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:12px;color:#aaa;letter-spacing:.8px;line-height:1.9;}
.sv2-divider{display:flex;align-items:center;gap:8px;margin:0 auto 24px;width:fit-content;}
.sv2-divider::before,.sv2-divider::after{content:'';width:36px;height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent);}
.sv2-dmd{width:6px;height:6px;background:var(--gold);transform:rotate(45deg);}
.sv2-cal{background:#fff;border:1px solid rgba(201,168,76,.3);border-radius:12px;overflow:hidden;margin:0 24px;box-shadow:0 2px 20px rgba(117,30,3,.07);aspect-ratio:1/1;display:flex;flex-direction:column;}
.sv2-cal-header{background:var(--r2);padding:14px 18px;display:flex;align-items:baseline;justify-content:space-between;flex-shrink:0;}
.sv2-cal-month{font-family:'Cormorant Garamond',serif;font-size:28px;font-weight:300;color:#fff;letter-spacing:-1px;line-height:1;}
.sv2-cal-month span{font-size:13px;color:rgba(255,255,255,.5);margin-left:6px;letter-spacing:2px;}
.sv2-cal-year{font-family:'Cormorant Garamond',serif;font-size:14px;color:rgba(255,255,255,.45);letter-spacing:3px;}
.sv2-cal-body{padding:12px 12px 14px;flex:1;display:flex;flex-direction:column;justify-content:space-between;}
.sv2-week-row{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:4px;}
.sv2-week-row span{text-align:center;font-family:'Ma Shan Zheng',cursive;font-size:11px;color:#ccc;padding:2px 0;}
.sv2-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;flex:1;}
.sv2-cell{text-align:center;font-family:'Cormorant Garamond',serif;font: size 17px;color:#666;font-weight:300;display:flex;align-items:center;justify-content:center;}
.sv2-cell.empty{color:transparent;}
.sv2-cell.marked{
  position:relative;
  font-weight:600;
  font-size:14px;
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
}
.sv2-cell.marked::before{
  content:'♥';
  position:absolute;
  font-size:36px;
  color:var(--r2);
  line-height:1;
  animation:heartbeat 1.8s ease-in-out infinite;
  z-index:0;
}
.sv2-cell.marked span{
  position:relative;
  z-index:2;
  color:#fff;
}
@keyframes heartbeat{0%,100%{transform:scale(1);}14%{transform:scale(1.15);}28%{transform:scale(1);}42%{transform:scale(1.1);}56%{transform:scale(1);}}
.sv2-bottom-tag{text-align:center;padding:24px 0 0;}
.sv2-save-title{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:36px;font-weight:300;color:var(--r);line-height:1;margin-bottom:6px;}
.sv2-bracket{font-family:'Ma Shan Zheng',cursive;font-size:13px;color:#bbb;letter-spacing:3px;}
@keyframes spinDisc {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}
/* ══════ MUSIC PLAYER ══════ */
#musicPlayer{background:#fff;padding:16px 0 0;position:relative;overflow:hidden;}
.mp-wrap{padding:20px;display:flex;align-items:center;gap:16px;position:relative;z-index:1;}
.mp-art{width:64px;height:64px;border-radius:8px;overflow:hidden;flex-shrink:0;background:linear-gradient(135deg,var(--r2),var(--r3));position:relative;box-shadow:0 4px 14px rgba(90,22,2,.25);}
.mp-art img{width:100%;height:100%;object-fit:cover;display:block;}
.mp-art-ph{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-family:'Ma Shan Zheng',cursive;font-size:28px;color:rgba(255,255,255,.4);}
.mp-art::after{content:'';position:absolute;inset:0;border-radius:8px;border:1.5px solid rgba(201,168,76,.3);pointer-events:none;}
.mp-info{flex:1;min-width:0;}
.mp-song{font-family:'Ma Shan Zheng',cursive;font-size:16px;color:var(--r2);letter-spacing:1px;margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.mp-artist{font-family:'Cormorant Garamond',serif;font-size:11px;color:#aaa;letter-spacing:2px;margin-bottom:10px;font-style:italic;}
.mp-bar-wrap{position:relative;height:2px;background:rgba(117,30,3,.1);border-radius:2px;margin-bottom:8px;}
.mp-bar-fill{height:100%;width:38%;background:linear-gradient(90deg,var(--r2),var(--gold));border-radius:2px;position:relative;}
.mp-bar-dot{width:8px;height:8px;background:var(--gold);border-radius:50%;position:absolute;right:-4px;top:50%;transform:translateY(-50%);box-shadow:0 0 6px rgba(201,168,76,.6);}
.mp-status{display:flex;align-items:center;gap:6px;}
.mp-status-dot{width:5px;height:5px;background:var(--gold);border-radius:50%;animation:statusPulse 1.5s ease-in-out infinite;}
@keyframes statusPulse{0%,100%{opacity:1;transform:scale(1);}50%{opacity:.4;transform:scale(.7);}}
.mp-status-txt{font-family:'Noto Serif SC',serif;font-size:10px;color:#bbb;letter-spacing:3px;}
.mp-bars{display:flex;align-items:flex-end;gap:2px;height:16px;flex-shrink:0;}
.mp-bar{width:3px;background:var(--gold);border-radius:2px;opacity:.7;}
.mp-bar:nth-child(1){height:6px;animation:barAnim 1.1s ease-in-out infinite;}
.mp-bar:nth-child(2){height:14px;animation:barAnim .8s ease-in-out infinite .15s;}
.mp-bar:nth-child(3){height:10px;animation:barAnim 1.3s ease-in-out infinite .05s;}
.mp-bar:nth-child(4){height:16px;animation:barAnim .9s ease-in-out infinite .25s;}
.mp-bar:nth-child(5){height:8px;animation:barAnim 1.1s ease-in-out infinite .1s;}
@keyframes barAnim{0%,100%{transform:scaleY(1);}50%{transform:scaleY(.3);}}
@keyframes progressMove {
  0% { width: 0%; }
  100% { width: 100%; }
}
.mp-bar-fill {
  animation: progressMove 91s linear infinite;
}
/* ══ COUPLE CONTACT BUTTONS ══ */
.ci-persons{gap:12px;padding:0 16px 20px;}
.ci-contact-btn{display:flex;flex-direction:column;align-items:center;gap:5px;padding:10px 10px;border-radius:12px;text-decoration:none;cursor:pointer;transition:opacity .2s,transform .15s;position:relative;overflow:hidden;}
.ci-contact-btn:active{opacity:.85;transform:scale(.97);}
.ci-contact-groom{background:#fff;border:1.5px solid var(--r2);}
.ci-contact-groom .ci-role{color:var(--r);}
.ci-contact-groom .ci-name{color:#111;}
.ci-contact-groom .ci-wa-label{color:var(--r2);}
.ci-contact-bride{background:var(--r2);border:1.5px solid var(--r2);}
.ci-contact-bride::after{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.08),transparent 60%);}
.ci-contact-bride .ci-role{color:rgba(255,255,255,.6);}
.ci-contact-bride .ci-name{color:#fff;}
.ci-contact-bride .ci-wa-label{color:rgba(255,255,255,.65);}
.ci-wa-label{display:flex;align-items:center;justify-content:center;gap:5px;font-family:'Cormorant Garamond',serif;font-size:9px;letter-spacing:2px;margin-top:2px;}

/* ══ SLIDESHOW ══ */
.sv2-slideshow{position:relative;width:100%;height:100%;}
.sv2-slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1s ease;}
.sv2-slide.active{opacity:1;}

/* ══════ VENUE REDESIGN ══════ */
.vn-header{background:#fff;padding:26px 28px 24px;text-align:center;position:relative;overflow:hidden;}
.vn-header::before{content:'囍';position:absolute;right:-16px;bottom:-20px;font-family:'Ma Shan Zheng',cursive;font-size:130px;color:rgba(117,30,3,.04);line-height:1;pointer-events:none;}
.vn-tag{font-family:'Cormorant Garamond',serif;font-size:10px;letter-spacing:5px;color:var(--gold);text-transform:uppercase;margin-bottom:8px;}
.vn-title-zh{font-family:'Ma Shan Zheng',cursive;font-size:32px;color:var(--r2);letter-spacing:4px;line-height:1.2;margin-bottom:4px;}
.vn-title-en{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:14px;color:#aaa;letter-spacing:2px;}
.vn-header-line{width:40px;height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent);margin:14px auto 0;}
.vn-map-wrap{position:relative;width:100%;height:220px;overflow:hidden;}
.vn-road-lbl{position:absolute;font-family:'Cormorant Garamond',serif;font-size:8px;letter-spacing:1px;color:rgba(90,22,2,.45);white-space:nowrap;}
.vn-pin-wrap{position:absolute;top:50%;left:35%;transform:translate(-50%,-100%);display:flex;flex-direction:column;align-items:center;z-index:10;}
.vn-pin{width:36px;height:36px;background:var(--r2);border-radius:50% 50% 50% 0;transform:rotate(-45deg);display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px rgba(90,22,2,.4);animation:pinBounce 2s ease-in-out infinite;}
@keyframes pinBounce{0%,100%{transform:rotate(-45deg) translateY(0);}50%{transform:rotate(-45deg) translateY(-4px);}}
.vn-pin-inner{width:16px;height:16px;background:#fff;border-radius:50%;transform:rotate(45deg);display:flex;align-items:center;justify-content:center;}
.vn-pin-inner span{font-family:'Ma Shan Zheng',cursive;font-size:9px;color:var(--r2);line-height:1;}
.vn-pin-shadow{width:10px;height:4px;background:rgba(90,22,2,.2);border-radius:50%;margin-top:2px;animation:shadowPulse 2s ease-in-out infinite;}
@keyframes shadowPulse{0%,100%{transform:scaleX(1);opacity:.3;}50%{transform:scaleX(.7);opacity:.15;}}
.vn-map-label{position:absolute;top:50%;left:35%;transform:translate(-10px,10px);background:rgba(255,255,255,.92);border:1px solid rgba(201,168,76,.4);border-radius:6px;padding:5px 10px;box-shadow:0 2px 10px rgba(90,22,2,.1);z-index:9;white-space:nowrap;}
.vn-map-label-name{font-family:'Noto Serif SC',serif;font-size:10px;color:var(--r2);letter-spacing:1px;font-weight:500;}
.vn-map-label-sub{font-family:'Cormorant Garamond',serif;font-size:9px;color:#aaa;letter-spacing:.5px;font-style:italic;}
.vn-landmark{position:absolute;display:flex;flex-direction:column;align-items:center;gap:2px;}
.vn-landmark-dot{width:8px;height:8px;background:rgba(201,168,76,.5);border-radius:50%;border:1.5px solid rgba(201,168,76,.8);}
.vn-landmark-lbl{font-family:'Cormorant Garamond',serif;font-size:7px;color:#888;letter-spacing:.5px;text-align:center;white-space:nowrap;}
.vn-datetime{display:flex;align-items:stretch;justify-content:center;gap:0;margin-bottom:24px;border:1px solid rgba(201,168,76,.2);border-radius:10px;overflow:hidden;}
.vn-dt-block{flex:1;padding:14px 10px;display:flex;flex-direction:column;align-items:center;gap:4px;}
.vn-dt-block:first-child{border-right:1px solid rgba(201,168,76,.2);}
.vn-dt-icon{font-size:16px;}
.vn-dt-main{font-family:'Noto Serif SC',serif;font-size:11px;color:#222;letter-spacing:1px;line-height:1.6;text-align:center;}
.vn-dt-sub{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:11px;color:#aaa;letter-spacing:.5px;}
.vn-name-block{margin-bottom:24px;}
.vn-name-zh{font-family:'Noto Serif SC',serif;font-size:17px;color:var(--r2);letter-spacing:2px;line-height:1.6;margin-bottom:4px;}
.vn-name-en{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:13px;color:#999;letter-spacing:1px;}
.vn-address{font-family:'Noto Serif SC',serif;font-size:11px;color:#bbb;letter-spacing:.5px;line-height:1.8;margin-top:6px;}


/* Change background into hero image blurred */


/* ══════ DESKTOP ══════ */
@media(min-width:520px) {
  body {
    display: flex;
    justify-content: center;
    background: #F0E6D8;  /* ← your side colour */
    background-image: none;
    max-width: 100%;
    margin: 0;
  }
  .wrap {
    width: 520px;
    max-width: 520px;
    flex-shrink: 0;
    position: relative;
    overflow: hidden;
    box-shadow: 0 4px 32px rgba(0,0,0,.28), 0 20px 80px rgba(0,0,0,.20);
  }
  #entrance {
    left: 50%;
    transform: translateX(-50%);
    width: 520px;
    max-width: 100%;
  }
  #musicBtn {
    right: calc(50% - 260px + 16px);
  }
}

/* Change cursor to red circle */
* {
  cursor: url('images/cursor.svg') 16 16, auto;
}
a, button {
  cursor: url('images/cursor.svg') 16 16, pointer;
}

/* PREVENT HIGHLIGHTING TEXT */
* {
  -webkit-user-select: none;
  user-select: none;
}

input, textarea {
  -webkit-user-select: text;
  user-select: text;
}

/* PREVENT PULLING IMAGE */
img {
  -webkit-user-drag: none;
  user-drag: none;
}

/* BASE — mobile */
body {
  font-family: 'Noto Serif SC', serif;
  background: #fff;
  color: #fff;
  overflow-x: hidden;
}

/* ══════ DESKTOP ══════ */
@media(min-width:520px) {
  body {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    min-height: 100vh;
    background: #F5ECD8;
    overflow-y: scroll; /* ← fixes scroll jump */
  }
  .wrap {
    width: 520px;
    min-width: 520px;
    max-width: 520px;
    flex-shrink: 0;
    overflow: hidden;
    position: relative;
    z-index: 1;
    box-shadow: 0 4px 32px rgba(0,0,0,.28), 0 20px 80px rgba(0,0,0,.20);
  }
  #entrance {
    left: 50%;
    transform: translateX(-50%);
    width: 520px;
    max-width: 100%;
    box-shadow: 0 4px 32px rgba(0,0,0,.28), 0 20px 80px rgba(0,0,0,.20); /* ← shadow on entrance */
  }
  #musicBtn {
    right: calc(50% - 260px + 16px);
  }
}

/* ══════ SCROLL REVEAL ══════ */
.sr,.srl,.srr,
.h-xi,.h-title,.h-top-zh,.h-names-block,.h-tagline,.h-role,
.pn-title-en,.pn-title-zh,.pn-name-en,.pn-name-zh,.pn-amp,.pn-invite-en,.pn-invite-zh,
.vn-title-zh,.vn-title-en,.vn-dt-main,.vn-address,.vn-name-en,
.rv-title,.rv-invite-en,.rv-invite-zh,.rv-deadline,
.ty-xi,.ty-title,.ty-title-zh,.ty-names,.ty-date,.ty-msg-en,.ty-msg-zh,
.ls-quote-zh,.ls-quote-en,.ls-love-date,
.sv2-quote-zh,.sv2-quote-en,.sv2-bracket,.s-title,
.ent-names-zh,.ent-names-en,.ent-subtitle {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity .9s ease, transform .9s ease;
}

.sr.on,.srl.on,.srr.on,
.h-xi.on,.h-title.on,.h-top-zh.on,.h-names-block.on,.h-tagline.on,.h-role.on,
.pn-title-en.on,.pn-title-zh.on,.pn-name-en.on,.pn-name-zh.on,.pn-amp.on,.pn-invite-en.on,.pn-invite-zh.on,
.vn-title-zh.on,.vn-title-en.on,.vn-dt-main.on,.vn-address.on,.vn-name-en.on,
.rv-title.on,.rv-invite-en.on,.rv-invite-zh.on,.rv-deadline.on,
.ty-xi.on,.ty-title.on,.ty-title-zh.on,.ty-names.on,.ty-date.on,.ty-msg-en.on,.ty-msg-zh.on,
.ls-quote-zh.on,.ls-quote-en.on,.ls-love-date.on,
.sv2-quote-zh.on,.sv2-quote-en.on,.sv2-bracket.on,.s-title.on,
.ent-names-zh.on,.ent-names-en.on,.ent-subtitle.on {
  opacity: 1;
  transform: translateY(0);
}

/* ── Fix sv2 photo on mobile ── */
@media(max-width:519px) {
  .sv2-hero-row {
    grid-template-columns: 72px 1fr;
  }
  .sv2-photo {
    aspect-ratio: unset;
    min-height: 320px;
  }
  .sv2-timer {
    padding: 12px 4px;
    gap: 12px;
  }
  .sv2-cd-num {
    font-size: 22px;
  }
  .sv2-cd-zh {
    font-size: 10px;
  }
}