/* Ivory Elegance (tema asli): penyelarasan tampilan dengan referensi. Semua aturan di bawah body.ie-ref, jadi varian tema tidak berubah. */
.ie-ref{--ab:'Abhaya Libre','Times New Roman',serif;--brit:'Brittany Signature','Alex Brush',cursive;--cap:'Cormorant Garamond','Times New Roman',serif;font-family:var(--ab);}
.ie-ref .ie-wrap{font-family:var(--ab);}

/* ---------- sampul (gate) ---------- */
.ie-ref .ie-gate-top{padding:115px 10px 0;}
.ie-ref .ie-gate .ie-eyebrow{font:400 16px/24px 'Cormorant','Times New Roman',serif;letter-spacing:0;text-transform:none;color:#fff;}
.ie-ref .ie-gate .ie-cover-names{font:400 35px/52.5px var(--brit);margin:0;}
.ie-ref .ie-gate-date{font:400 16px/24px 'Cormorant','Times New Roman',serif;letter-spacing:0;margin:0;}
.ie-ref .ie-gate-bottom{padding:0 10px 125px;}
.ie-ref .ie-gate-dear{font:700 12px/18px 'Montserrat',sans-serif;font-style:normal;color:#fff;}
.ie-ref .ie-gate-guest{font:600 25px/37.5px 'Montserrat',sans-serif;margin:0 0 23px;}
.ie-ref .ie-gate .ie-open-btn{font:500 15px/15px var(--ab);width:148px;height:49px;padding:0;justify-content:center;border:1px solid #fff;border-radius:6px;background:transparent;backdrop-filter:none;}
.ie-ref .ie-gate-note{font:400 12px/18px 'Montserrat',sans-serif;letter-spacing:0;color:#fff;margin-top:6px;}

/* ---------- hero ---------- */
.ie-ref .ie-cover-top{padding:20px 10px 0;}
.ie-ref .ie-cover-top .ie-eyebrow{font:400 14px/21px var(--ab);letter-spacing:0;text-transform:uppercase;color:#fff !important;margin:0 13px;}
.ie-ref .ie-cover-names{font:400 27px/75.6px var(--brit);margin:0;}
.ie-ref .ie-cover-bottom{padding:0 0 99px;}
.ie-ref .ie-cover-info{height:117px;gap:0;padding:0 20px;margin-bottom:10px;}
.ie-ref .ie-cover-cd{width:157px;grid-template-columns:78px 79px;row-gap:8px;column-gap:0;align-self:center;}
.ie-ref .ie-cover-cd div{padding-bottom:0;}
.ie-ref .ie-cover-cd div:nth-child(1),.ie-ref .ie-cover-cd div:nth-child(2){padding-bottom:8px;}
.ie-ref .ie-cover-cd strong{font:400 23px/23px var(--ab);}
.ie-ref .ie-cover-cd span{font:400 9px/9px var(--ab);letter-spacing:0;text-transform:none;margin-top:0;color:#fff;}
.ie-ref .ie-cover-vline{margin-left:10px;background:#fff;}
.ie-ref .ie-cover-right{gap:11px;}
.ie-ref .ie-cover-date-btn{font:400 20px/20px 'Alike',serif;text-decoration:none;}
.ie-ref .ie-cover-right .ie-open-btn{font:500 15px/15px var(--ab);padding:11px 14px;border-radius:12px;border:1px solid #fff;background:transparent;backdrop-filter:none;gap:8px;}
.ie-ref .ie-cover-verse{max-width:none;margin:0;padding:0 23px;}
.ie-ref .ie-cover-verse p{font:400 14px/21px var(--ab);font-style:normal;color:#fff;}
.ie-ref .ie-cover-verse span{font:400 14px/21px var(--ab);color:#fff;margin:0;}

/* ---------- salam ---------- */
.ie-ref #ieSalam{padding:70px 13px 0;}
.ie-ref .ie-salam-text{font:400 14px/21px var(--ab);color:#606060;max-width:349px;}
.ie-ref .ie-swipe-strip{margin:20px 15px 0;}
.ie-ref .ie-swipe-track{gap:5px;}
.ie-ref .ie-swipe-item{flex:0 0 107px;aspect-ratio:1/1;border-radius:10px;}
.ie-ref #mempelai .ie-section-head{padding:20px 0;margin:0;}
.ie-ref .ie-section-head h2.ie-title-serif{font:600 18px/18px var(--ab);color:#0f0f0f;}

/* ---- stage 2: kutipan, acara, from this time ---- */
.ie-ref .ie-navdots{display:none!important;}
.ie-ref .ie-block{padding:0;}
.ie-ref .ie-block h2.ie-choose-you{font-family:var(--brit);font-size:23px;line-height:75.6px;}
.ie-ref .ie-block:has(.ie-choose-you){height:150px;display:flex;align-items:center;justify-content:center;}
.ie-ref .ie-person-block + .ie-section .ie-salam-text{font:400 14px/21px var(--ab);font-style:normal;color:#606060;}
.ie-ref .ie-person-block + .ie-section .ie-eyebrow{font:600 18px/18px var(--ab);color:#0f0f0f;letter-spacing:0;text-transform:none;margin-top:14px!important;}
.ie-ref #acara{padding:20px 0 40px;}
.ie-ref .ie-event-card{margin:20px 15px 0;border-radius:18px;}
.ie-ref .ie-event-photo{min-height:194px;}
.ie-ref .ie-event-body{grid-template-columns:105px 1fr;min-height:0;}
.ie-ref .ie-event-body.ie-event-reverse{grid-template-columns:1fr 105px;}
.ie-ref .ie-event-vlabel .ie-vlabel{font:600 35px/35px var(--ab);color:var(--aksen);letter-spacing:0;}
.ie-ref .ie-event-info{padding:20px 10px 20px;font-family:var(--ab);}
.ie-ref .ie-event-info .ie-day{font:400 24px/38.4px var(--ab);letter-spacing:-.4px;color:#a2a2a2;width:100px;padding:0 0 4px;margin:0 0 4px;border-color:#a2a2a2;}
.ie-ref .ie-event-info .ie-date-big{font:300 40px/40px var(--ab);letter-spacing:-.4px;color:#a2a2a2;width:100px;padding:0 0 4px;margin:0 0 4px;border-color:#a2a2a2;}
.ie-ref .ie-event-info .ie-month{font:400 24px/38.4px var(--ab);letter-spacing:-.4px;color:#a2a2a2;margin:0 0 6px;}
.ie-ref .ie-event-info .ie-detail{font:400 14px/16.8px var(--ab);letter-spacing:-.4px;color:#a2a2a2;}
.ie-ref .ie-maps-btn{margin-top:12px;padding:10px 25px;background:#fff;border:0;border-radius:12px;box-shadow:0 4px 8px rgba(0,0,0,.3);font:500 15px/15px var(--ab);letter-spacing:0;color:#bbb;}
.ie-ref .ie-cd-photo{aspect-ratio:375/372;}
.ie-ref .ie-cd-photo-slide{filter:brightness(.8);}
.ie-ref .ie-cd-photo-inner h2{font:400 28px/52px var(--brit);}
.ie-ref .ie-cd-photo-inner p{font:400 12px/12px var(--ab);font-style:italic;color:#fff;margin:18px 0 24px;}
.ie-ref .ie-cd-grid{max-width:none;width:255px;gap:20px 40px;}
.ie-ref .ie-cd-glass{border:1px solid #fff;border-radius:0;aspect-ratio:auto;height:50px;}
.ie-ref .ie-cd-glass strong{font:400 23px/23px var(--ab);}
.ie-ref .ie-cd-glass span{font:400 9px/9px var(--ab);letter-spacing:0;text-transform:none;color:#fff;}
.ie-ref #ieLiveStreaming{min-height:0;aspect-ratio:375/430;padding:0;}

/* ---- stage 3: live, love story ---- */
.ie-ref #ieLiveStreaming .ie-cd-photo-inner h2{font:400 28px/52px var(--brit);}
.ie-ref #ieLiveStreaming .ie-cd-photo-inner p{font:700 11px/14px var(--ab);font-style:italic;color:#fff;margin:14px 0 22px;}
.ie-ref .ie-live-ig{font:500 15px/15px var(--ab);}
.ie-ref #ieLiveStreaming .ie-open-btn{border:1px solid #fff;border-radius:12px;background:transparent;color:#fff;font:500 15px/15px var(--ab);padding:11px 14px;}
.ie-ref #cerita{padding:0 21px 20px;}
.ie-ref #cerita .ie-overlap .ie-ov-a{font-family:var(--cap);font-weight:300;color:#461111;}
.ie-ref #cerita .ie-overlap .ie-ov-b{font-family:var(--brit);color:var(--aksen);}
.ie-ref .ie-story-item{margin-bottom:40px;}
.ie-ref .ie-story-item img{min-height:240px;border-radius:0;box-shadow:0 12px 12px -6px rgba(0,0,0,.45);}
.ie-ref .ie-story-item .ie-story-body{padding:26px 0 0;}
.ie-ref .ie-story-item h4{font:400 34px/40px 'Reenie Beanie',cursive;color:#7a7a7a;}
.ie-ref .ie-story-item .ie-story-date{font:italic 400 16px/20px var(--ab);color:var(--aksen);margin:14px 0 22px;}
.ie-ref .ie-story-item p{font:400 14px/21px var(--ab);color:#606060;}

/* ---- stage 4: judul overlap, hadiah, RSVP, prokes ---- */
.ie-ref .ie-overlap{text-align:left;line-height:1;margin:20px 0 26px;white-space:nowrap;}
.ie-ref .ie-overlap .ie-ov-a{font:300 40px/48px var(--cap);opacity:1;color:#461111;letter-spacing:0;}
.ie-ref .ie-overlap .ie-ov-b{font:400 40px/48px var(--brit);color:var(--aksen);margin-left:12px;vertical-align:-4px;}
.ie-ref #hadiah{background:#FFF5EA;padding:30px 20px 40px;}
.ie-ref #hadiah .ie-ov-a{color:#a89f99;}
.ie-ref #hadiah > p{font:italic 400 12px/15px var(--ab)!important;color:#606060!important;text-align:right;margin:0 0 30px!important;max-width:none!important;}
.ie-ref .ie-gift-card{border-left:1px solid #461111;padding:20px 0 20px 10px;margin-bottom:34px;}
.ie-ref .ie-gift-icon,.ie-ref .ie-gift-icon-fallback{display:none;}
.ie-ref .ie-gift-card b{font:400 14px/20px var(--ab);letter-spacing:0;text-transform:uppercase;color:#606060;}
.ie-ref .ie-gift-row,.ie-ref .ie-gift-card .ie-owner{font:400 14px/20px var(--ab);color:#606060;margin:0;}
.ie-ref .ie-gift-btn{background:#a3a3a3;box-shadow:0 4px 12px rgba(0,0,0,.25);font:700 14px/14px var(--ab);padding:12px 18px;}
.ie-ref .ie-gift-confirm{font:italic 400 11px/14px var(--ab);color:#606060;}
.ie-ref .ie-rsvp-card h2{font:300 40px/48px var(--cap);color:#a89f99;}
.ie-ref .ie-rsvp-card > p{font:italic 400 12px/15px var(--ab);color:#606060;}
.ie-ref .ie-rsvp-card{border-radius:14px;box-shadow:0 2px 10px rgba(0,0,0,.25);}
.ie-ref #ieProkes .ie-prokes-card{border-radius:12px;padding:20px 20px 24px;box-shadow:0 4px 10px rgba(0,0,0,.3);}
.ie-ref .ie-prokes-card h3{font:400 14px/14px 'Owisa Story','Cormorant Garamond',serif;letter-spacing:2.6px;color:#461111;}
.ie-ref .ie-prokes-card > p{font:400 13px/18px 'Poppins',sans-serif;color:#555;}
.ie-ref .ie-prokes-grid div{font:italic 400 14px/16px var(--ab);color:#555;}

/* ---- stage 5: galeri, ucapan, footer ---- */
.ie-ref #galeri{padding:20px 8px 20px;}
.ie-ref #galeri .ie-overlap{padding-left:12px;}
.ie-ref .ie-gallery-grid{grid-template-columns:repeat(6,1fr);gap:8px;}
.ie-ref .ie-gallery-grid a,.ie-ref .ie-gallery-grid a.ie-g-wide,.ie-ref .ie-gallery-grid a.ie-g-tall{grid-column:span 2;grid-row:auto;aspect-ratio:3/4;border-radius:0;}
.ie-ref .ie-gallery-grid a:nth-child(-n+3){grid-column:span 6;aspect-ratio:16/9;}
.ie-ref #ucapan{padding:30px 0 0;}
.ie-ref #ucapan .ie-overlap{text-align:center;margin:0 0 10px;}
.ie-ref #ucapan .ie-ov-b.ie-join{font:400 40px/48px var(--brit);margin:0;}
.ie-ref #ucapan > p{font:400 12px/15px var(--ab)!important;color:#7a7a7a!important;}
.ie-ref .ie-rsvp-card{background:#f4f1ea;border:1px solid #ddd;border-radius:8px 8px 0 0;box-shadow:none;padding:20px 16px;text-align:left;}
.ie-ref .ie-rsvp-card h2,.ie-ref .ie-rsvp-card > p{display:none;}
.ie-ref .ie-komen-list{margin-top:0;gap:0;background:#f4f1ea;}
.ie-ref .ie-komen-item{border-radius:0;box-shadow:none;background:transparent;border-top:1px solid #ddd;padding:14px 16px;}
.ie-ref .ie-komen-item b{font:700 13px/18px 'Roboto',sans-serif;color:#6b4a1f;}
.ie-ref .ie-komen-item p{font:400 13px/18px var(--ab);color:#333;}
.ie-ref .ie-footer-photo{min-height:844px;}
.ie-ref .ie-footer-photo::after{background:none;}
.ie-ref .ie-footer-photo img{filter:none;}
.ie-ref .ie-footer-inner{width:100%;text-align:center;padding:0 10px 20px;}
.ie-ref .ie-footer-inner .ie-eyebrow{font:400 14px/21px var(--ab);letter-spacing:2px;color:#fff;}
.ie-ref .ie-footer-inner h2{font:400 35px/52px var(--brit);color:#fff;}
.ie-ref .ie-footer-bottom{background:#fff;padding:36px 20px;}
.ie-ref .ie-footer-bottom p{font:400 12px/15px var(--ab);color:#888;}
.ie-ref .ie-form input,.ie-ref .ie-form select,.ie-ref .ie-form textarea{background:#fff;border:1px solid #ddd;border-radius:8px;font:400 13px/18px var(--ab);color:#333;}
.ie-ref .ie-form label{font:400 11px/14px var(--ab);color:#333;}
.ie-ref .ie-form .ie-btn-primary{width:auto;background:#888;color:#fff;border-radius:6px;padding:10px 20px;font:700 13px/13px var(--ab);letter-spacing:0;text-transform:none;box-shadow:none;}
.ie-ref .ie-form .ie-btn-primary{box-shadow:none!important;animation:none!important;outline:0;}

/* ---- desktop: kolom ponsel di tengah ---- */
@media(min-width:768px){
	body.ie-ref{background:#e8e4de;}
	.ie-ref .ie-wrap{max-width:480px;background:#fff;box-shadow:0 0 40px rgba(0,0,0,.18);}
	.ie-ref .ie-floating{right:calc(50% - 240px + 14px);}
}
.ie-ref .ie-toast:not(.ie-show){visibility:hidden;}

/* warna aksen mengikuti warna tema pilihan pengguna (--aksen diisi dari PHP) */
.ie-ref .ie-person-block .ie-vlabel{color:var(--aksen);}

/* ---- efek muncul: tiap elemen punya gerak sendiri, anak bergiliran; aktif hanya bila JS menyalakan .ie-fx-on ---- */
.ie-ref.ie-fx-on .ie-fx:not(.ie-in){opacity:0;}
.ie-ref .ie-fx.ie-in{animation-duration:.9s;animation-timing-function:cubic-bezier(.22,1,.36,1);animation-fill-mode:backwards;}
.ie-ref .ie-fx-rise.ie-in{animation-name:fxRise;}
.ie-ref .ie-fx-blur.ie-in{animation-name:fxBlur;animation-duration:1.1s;}
.ie-ref .ie-fx-pop.ie-in{animation-name:fxPop;animation-duration:.8s;animation-timing-function:cubic-bezier(.34,1.4,.64,1);}
.ie-ref .ie-fx-flip.ie-in{animation-name:fxFlip;}
.ie-ref .ie-fx-clipL.ie-in{animation-name:fxClipL;animation-duration:1.2s;}
.ie-ref .ie-fx-clipR.ie-in{animation-name:fxClipR;animation-duration:1.2s;}
.ie-ref .ie-fx-clipU.ie-in{animation-name:fxClipU;animation-duration:1.2s;}
@keyframes fxRise{from{opacity:0;transform:translateY(24px);}}
@keyframes fxBlur{from{opacity:0;filter:blur(12px);transform:translateY(14px) scale(.97);}}
@keyframes fxPop{from{opacity:0;transform:scale(.82);}}
@keyframes fxFlip{from{opacity:0;transform:perspective(500px) rotateX(-75deg);}}
@keyframes fxClipL{from{opacity:.4;clip-path:inset(0 100% 0 0);}to{opacity:1;clip-path:inset(0 0 0 0);}}
@keyframes fxClipR{from{opacity:.4;clip-path:inset(0 0 0 100%);}to{opacity:1;clip-path:inset(0 0 0 0);}}
@keyframes fxClipU{from{opacity:.4;clip-path:inset(100% 0 0 0);}to{opacity:1;clip-path:inset(0 0 0 0);}}
/* latar foto bergerak pelan (Ken Burns) */
.ie-ref .ie-cd-photo-slide.ie-active,.ie-ref .ie-footer-photo img{animation:fxKen 16s ease-in-out infinite alternate;}
@keyframes fxKen{from{transform:scale(1);}to{transform:scale(1.12);}}
@media (prefers-reduced-motion:reduce){
	.ie-ref .ie-fx,.ie-ref .ie-fx.ie-in{animation:none !important;opacity:1 !important;}
	.ie-ref .ie-fade{opacity:1 !important;transform:none !important;transition:none !important;}
	.ie-ref .ie-cd-photo-slide.ie-active,.ie-ref .ie-footer-photo img{animation:none !important;}
}
