
:root{--navy:#0d1018;--burg:#5a1825;--gold:#c9a45c;--champ:#e8d7b2;--cream:#f8f4ea;--glass:rgba(8,10,16,.58)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#05070b;color:var(--cream);font-family:Georgia,"Times New Roman",serif}body,button,input,textarea{font-size:16px}
.invite{max-width:540px;margin:auto;background:var(--navy);overflow:hidden;box-shadow:0 0 60px #000;position:relative}
section{min-height:100svh;position:relative;display:flex;align-items:center;justify-content:center;padding:34px 22px;overflow:hidden}
.bg-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;opacity:.78;filter:saturate(.88) contrast(1.05)}
.scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,7,11,.46),rgba(5,7,11,.72) 70%,rgba(5,7,11,.94));z-index:1}
.content{position:relative;z-index:2;width:100%;text-align:center}.eyebrow{letter-spacing:.28em;font-size:11px;color:var(--champ)}h1,h2,h3{margin:10px 0;color:var(--cream);font-weight:400}h1{font-size:42px;letter-spacing:.08em}h2{font-size:28px;letter-spacing:.08em}.script{font-style:italic;color:var(--gold)}p{line-height:1.8;color:#eee6d7}.gold-line{width:72px;height:1px;background:var(--gold);margin:18px auto}.btn{display:inline-block;padding:12px 24px;border:1px solid var(--gold);border-radius:999px;color:var(--cream);background:rgba(201,164,92,.08);text-decoration:none;letter-spacing:.12em;font-size:11px}
.card{background:var(--glass);border:1px solid rgba(201,164,92,.42);border-radius:22px;padding:22px;backdrop-filter:blur(8px);margin:12px 0}.couple-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.portrait{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:20px;border:1px solid rgba(201,164,92,.45)}.small{font-size:12px;color:#d6c7aa}.event{margin:12px 0;padding:20px;border-radius:20px;border:1px solid rgba(201,164,92,.35);background:rgba(10,12,18,.65)}.event h3{color:var(--gold)}
#acara .content{max-width:390px}
#acara .event-intro{display:flex;align-items:center;justify-content:center;gap:10px;margin:2px auto 18px;color:#d9ccb5}
#acara .event-intro p{margin:0;font-size:12px;line-height:1.5;letter-spacing:.04em;max-width:235px}
#acara .event-spark{color:var(--gold);font-size:11px}
#acara .event-royal{position:relative;margin:0;padding:20px 18px 22px;border-radius:24px;border:1px solid rgba(201,164,92,.42);background:linear-gradient(145deg,rgba(15,17,24,.78),rgba(8,10,16,.58));box-shadow:0 18px 45px rgba(0,0,0,.22);overflow:hidden}
#acara .event-royal::before,#acara .event-royal::after{content:"";position:absolute;width:70px;height:70px;border:1px solid rgba(201,164,92,.16);border-radius:50%;pointer-events:none}
#acara .event-royal::before{top:-38px;left:-38px}
#acara .event-royal::after{bottom:-42px;right:-42px}
#acara .event-ornament{font-size:20px;color:var(--gold);line-height:1;margin-bottom:8px;text-shadow:0 0 16px rgba(201,164,92,.28)}
#acara .event-label{font-size:9px;letter-spacing:.28em;color:var(--champ);margin-bottom:5px}
#acara .event-royal h3{font-size:21px;letter-spacing:.12em;margin:4px 0;color:var(--gold)}
#acara .event-divider{width:48px;height:1px;background:var(--gold);margin:10px auto 13px;opacity:.8}
#acara .event-date{font-size:13px;line-height:1.7;margin:0 0 10px;color:var(--cream)}
#acara .event-place{font-size:12px;line-height:1.7;margin:0 auto 16px;color:#d9d0c1}
#acara .event-place strong{font-size:13px;color:#f3eadb;font-weight:500}
#acara .event-royal .btn{font-size:9px;padding:10px 19px}
#acara .event-connector{height:30px;display:flex;align-items:center;justify-content:center;color:var(--gold);font-size:12px;position:relative}
#acara .event-connector::before,#acara .event-connector::after{content:"";height:1px;background:rgba(201,164,92,.28);width:72px}
#acara .event-connector::before{margin-right:9px}
#acara .event-connector::after{margin-left:9px}.story{display:grid;grid-template-columns:72px 1fr;gap:14px;text-align:left;margin:14px 0}.year{color:var(--gold);font-size:22px}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.gallery img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:14px;border:1px solid rgba(201,164,92,.28)}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.stat{padding:14px 4px;border:1px solid rgba(201,164,92,.35);border-radius:15px;background:rgba(10,12,18,.62)}.stat strong{display:block;font-size:24px;color:var(--gold)}.form input,.form textarea{width:100%;padding:13px 14px;margin:6px 0;background:rgba(255,255,255,.06);border:1px solid rgba(232,215,178,.3);border-radius:12px;color:#fff}.form textarea{min-height:100px;resize:vertical}.choices{display:flex;gap:8px}.choice{flex:1;padding:12px;border:1px solid rgba(201,164,92,.4);border-radius:12px}.choice input{width:auto}.quote{border-left:2px solid var(--gold);padding:12px 14px;text-align:left;background:rgba(10,12,18,.5);border-radius:0 14px 14px 0;margin:9px 0}.footer-note{font-size:11px;color:#bcae95;letter-spacing:.08em}.hidden{display:none}.fade{animation:fade .8s ease both}@keyframes fade{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media(max-width:380px){h1{font-size:34px}section{padding:28px 16px}}

.site-footer{position:relative;background:rgba(7,9,14,.96);padding:30px 16px 34px;text-align:center;border-top:1px solid rgba(201,164,92,.28)}
.site-footer::before{content:'✦';display:block;color:var(--gold);font-size:11px;letter-spacing:.2em;margin-bottom:12px}.footer-title{max-width:330px;margin:0 auto}
.footer-title{font-size:10px;line-height:1.7;color:#ddd5c7;letter-spacing:.03em}
.footer-title strong{color:#e8d7b2}
.footer-links{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin-top:12px}
.footer-links a{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:0 13px;border:1px solid rgba(232,215,178,.45);border-radius:999px;color:#f8f4ea;text-decoration:none;font-size:10px;letter-spacing:.02em;background:rgba(255,255,255,.035)}
.footer-links a:hover{background:rgba(201,164,92,.12);border-color:#c9a45c}

.guest-name{font-size:18px;color:#e8d7b2;font-weight:600;letter-spacing:.03em;margin:2px 0 14px}

/* OPENING — Royal Wedding */
#opening .content{max-width:430px}
#opening .eyebrow{font-size:0;color:transparent;height:0;margin:0}
#opening .eyebrow::after{content:'✦';font-size:15px;color:var(--gold);display:block;height:22px}
#opening h2{font-size:0;line-height:1.55;letter-spacing:.02em;margin:18px 0 14px}
#opening h2::first-line{font-size:21px}
#opening h2{white-space:pre-line}
#opening .content>p{font-size:14px;line-height:1.9;max-width:330px;margin:0 auto;color:#eee6d7}
#opening .content>h2.script{font-size:28px!important;line-height:1.25;margin-top:26px;color:var(--gold)}
#opening .gold-line{width:92px;margin:10px auto 20px}

#opening .arabic-bismillah{font-size:34px;line-height:1.9;color:var(--champ);font-weight:500;text-shadow:0 2px 18px rgba(0,0,0,.45);margin-bottom:2px}
#opening .opening-salam{font-size:21px;line-height:1.55;letter-spacing:.02em;white-space:pre-line;margin:12px auto 18px;max-width:310px}

/* THE BRIDE & THE GROOM — refined royal layout */

#mempelai .royal-couple{position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;max-width:380px;margin:0 auto}
#mempelai .person-card{width:100%;max-width:300px;padding:14px 14px 18px;border:1px solid rgba(201,164,92,.40);border-radius:24px;background:rgba(7,10,16,.56);backdrop-filter:blur(7px);box-shadow:0 16px 45px rgba(0,0,0,.22)}
#mempelai .person-card .portrait{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:18px;border:1px solid rgba(232,215,178,.26)}
#mempelai .person-role{margin-top:13px;font-size:10px;letter-spacing:.25em;color:var(--champ)}
#mempelai .person-card h3{font-size:25px;color:var(--gold);margin:7px 0 4px}
#mempelai .person-card .small{margin:0 auto 13px;line-height:1.55}
#mempelai .instagram-btn{font-size:9px;padding:9px 17px;letter-spacing:.12em}
#mempelai .couple-divider{height:38px;display:flex;align-items:center;justify-content:center;color:var(--gold);font-size:14px;text-shadow:0 0 15px rgba(201,164,92,.35)}


/* COUNTDOWN — Royal Wedding */
#countdown .content{max-width:390px}
#countdown .gold-line{margin:14px auto 8px}
#countdown .countdown-ornament{font-size:13px;color:var(--gold);line-height:1;margin:0 auto 14px;opacity:.9}
#countdown .countdown-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-width:340px;margin:0 auto}
#countdown .countdown-stats .stat{min-height:74px;padding:13px 6px 12px;border-radius:16px;background:rgba(10,12,18,.52);border-color:rgba(201,164,92,.42);backdrop-filter:blur(3px);display:flex;flex-direction:column;align-items:center;justify-content:center}
#countdown .countdown-stats .stat strong{font-size:29px;line-height:1.05;letter-spacing:.03em}
#countdown .countdown-stats .stat span{margin-top:5px;font-size:11px;letter-spacing:.08em;color:#eee6d7}
#countdown .countdown-bottom-ornament{margin-top:20px;color:var(--gold);font-size:12px;opacity:.85}
#countdown h2{max-width:350px;margin-left:auto;margin-right:auto}
@media(max-width:380px){#countdown .countdown-stats{gap:8px}#countdown .countdown-stats .stat{min-height:68px;padding:11px 4px}#countdown .countdown-stats .stat strong{font-size:26px}}

/* LOVE STORY — Photo + Story editorial timeline */
#love-story .content{max-width:430px}
#love-story .love-intro{font-size:11px;color:#d8ccb8;letter-spacing:.06em;margin:-2px 0 18px}
#love-story .story-list{display:flex;flex-direction:column;gap:14px}
#love-story .story{display:grid;grid-template-columns:45% 55%;gap:0;margin:0;text-align:left;min-height:142px;border:1px solid rgba(201,164,92,.42);border-radius:20px;overflow:hidden;background:rgba(7,10,16,.66);box-shadow:0 16px 38px rgba(0,0,0,.2);backdrop-filter:blur(6px)}
#love-story .story.story-reverse{grid-template-columns:55% 45%}
#love-story .story.story-reverse .story-photo{order:2;border-left:1px solid rgba(201,164,92,.3);border-right:0}
#love-story .story-photo{width:100%;height:100%;min-height:142px;display:block;object-fit:cover;border:0;border-right:1px solid rgba(201,164,92,.3)}
#love-story .story-photo-empty{display:flex;align-items:center;justify-content:center;background:linear-gradient(145deg,rgba(201,164,92,.08),rgba(7,10,16,.85));color:var(--gold);font-size:20px}
#love-story .story-copy{padding:15px 13px 15px 14px;display:flex;flex-direction:column;justify-content:center}
#love-story .story-reverse .story-copy{padding-left:13px;padding-right:14px}
#love-story .story-kicker{font-size:8px;letter-spacing:.22em;color:var(--champ);margin-bottom:5px}
#love-story .year{font-size:17px;line-height:1;color:var(--gold);margin-bottom:5px;letter-spacing:.05em}
#love-story .story-copy h3{font-size:16px;line-height:1.25;margin:0 0 6px;color:var(--cream);letter-spacing:.03em}
#love-story .story-copy p{font-size:10px;line-height:1.6;margin:0;color:#ddd4c5}
#love-story .story::after{content:'✦';position:absolute}

/* Gallery — consistent premium photo boxes */
#gallery .content{max-width:430px}
#gallery .gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
#gallery .gallery-item{position:relative;aspect-ratio:1/1;overflow:hidden;border-radius:14px;border:1px solid rgba(201,164,92,.32);background:rgba(7,10,16,.58)}
#gallery .gallery-item img{display:block;width:100%;height:100%;object-fit:cover;border:0;border-radius:0}
#gallery .gallery-empty{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:5px;color:var(--gold);font-size:16px;background:linear-gradient(145deg,rgba(201,164,92,.08),rgba(7,10,16,.85))}
#gallery .gallery-empty small{font-size:7px;letter-spacing:.18em;color:#d8ccb8}

/* Background image fallback */
.bg-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;opacity:.78;filter:saturate(.88) contrast(1.05)}
.bg-fallback{position:absolute;inset:0;background:linear-gradient(145deg,#15100f,#07090d);z-index:0}


/* COVER LOCK — invitation opens only after the button is pressed */
html.cover-locked,body.cover-locked{overflow:hidden!important;height:100%;touch-action:none}
body.cover-locked #cover{min-height:100svh;height:100svh}

/* CLOSING — final cinematic scene */
#closing .content{max-width:390px;padding:10px 10px 18px;text-align:center}
#closing .closing-ornament{color:var(--gold);font-size:16px;margin-bottom:12px;text-shadow:0 0 18px rgba(201,164,92,.35)}
#closing .eyebrow{letter-spacing:.34em;font-size:10px;color:var(--champ)}
#closing .closing-heading{margin:20px 0 8px;color:var(--gold);font-family:Georgia,"Times New Roman",serif;font-size:31px;letter-spacing:.12em;line-height:1.25;text-shadow:0 2px 22px rgba(0,0,0,.4)}
#closing .gold-line{width:88px;margin:14px auto 18px}
#closing .closing-text{max-width:310px;margin:0 auto;color:#eee6d7;font-size:13px;line-height:1.9}
#closing .closing-tagline{margin:24px 0 8px;color:var(--cream);font-size:16px;letter-spacing:.1em;font-style:italic;font-weight:400}
#closing .closing-heart{margin-top:14px;color:var(--gold);font-size:22px;text-shadow:0 0 18px rgba(201,164,92,.28)}

/* FINAL PREMIUM PAGES — Gallery / RSVP / Ucapan / Gift / Closing */
#gallery .content{max-width:430px}
#gallery .gallery-ornament{color:var(--gold);font-size:10px;letter-spacing:.08em;margin:2px 0 12px;opacity:.9}
#gallery .featured-label,#gallery .gallery-subtitle{font-size:9px;letter-spacing:.25em;color:var(--champ);margin:8px 0 9px}
#gallery .featured-video{width:100%;aspect-ratio:16/9;border:1px solid rgba(201,164,92,.48);border-radius:18px;overflow:hidden;background:#05070b;box-shadow:0 16px 36px rgba(0,0,0,.25)}
#gallery .featured-video video{display:block;width:100%;height:100%;object-fit:cover}
#gallery .gallery-divider{color:var(--gold);font-size:11px;margin:13px 0 8px}
#gallery .gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
#gallery .gallery-item{position:relative;aspect-ratio:1/1;overflow:hidden;border-radius:15px;border:1px solid rgba(201,164,92,.34);background:rgba(7,10,16,.58);box-shadow:0 10px 24px rgba(0,0,0,.18)}
#gallery .gallery-item img{display:block;width:100%;height:100%;object-fit:cover;border:0;border-radius:0}
#gallery .gallery-empty{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:5px;color:var(--gold);font-size:16px;background:linear-gradient(145deg,rgba(201,164,92,.08),rgba(7,10,16,.85))}
#gallery .gallery-empty small{font-size:7px;letter-spacing:.18em;color:#d8ccb8}

#rsvp .content,#ucapan .content{max-width:410px}
#rsvp .rsvp-ornament{color:var(--gold);font-size:12px;margin:-3px 0 13px}
#rsvp .rsvp-stats{gap:7px;margin-bottom:14px}
#rsvp .rsvp-stats .stat{padding:12px 3px;border-radius:15px;background:rgba(10,12,18,.55);backdrop-filter:blur(5px)}
#rsvp .rsvp-stats .stat strong{font-size:23px}
#rsvp .rsvp-stats .stat span{font-size:9px;letter-spacing:.07em}
#rsvp .royal-form,#ucapan .royal-form{margin-top:8px;padding:18px;border-radius:22px;background:rgba(8,10,16,.58);border:1px solid rgba(201,164,92,.40);box-shadow:0 16px 42px rgba(0,0,0,.22)}
#rsvp .form-note{font-size:9px;line-height:1.55;color:#bfb4a2;margin:9px 0 0}
#rsvp .form .btn,#ucapan .form .btn{font-size:9px;padding:10px 17px;margin-top:6px}

#ucapan .love-note{font-size:11px;color:#d8ccb8;letter-spacing:.07em;margin:-2px 0 2px}
#ucapan .guestbook-title{margin:18px 0 9px;color:var(--champ);font-size:9px;letter-spacing:.19em}
#ucapan .wish-list{display:flex;flex-direction:column;gap:8px}
#ucapan .wish-card{position:relative;text-align:left;padding:15px 15px 13px;border:1px solid rgba(201,164,92,.36);border-radius:18px;background:rgba(7,10,16,.57);box-shadow:0 12px 30px rgba(0,0,0,.18)}
#ucapan .wish-card .wish-spark{position:absolute;right:12px;top:10px;color:var(--gold);font-size:11px}
#ucapan .wish-card b{display:block;color:var(--gold);font-size:13px;font-weight:500;letter-spacing:.05em}
#ucapan .wish-card span{display:block;margin-top:2px;color:#a99e8e;font-size:8px;letter-spacing:.06em}
#ucapan .wish-card p{font-size:10px;line-height:1.65;margin:8px 0 0;color:#e5dccd}
#ucapan .wish-empty{padding:18px;border:1px dashed rgba(201,164,92,.35);border-radius:16px;color:#bdb2a1;font-size:10px;line-height:1.6}
#ucapan .wish-pagination{display:flex;justify-content:center;align-items:center;gap:12px;margin-top:10px;color:#d8ccb8;font-size:9px}
#ucapan .wish-pagination .btn{padding:6px 10px;font-size:10px;min-width:30px}
#ucapan .wish-pagination button:disabled{opacity:.35;cursor:default}

#gift .content{max-width:410px}
#gift .gift-intro{font-size:11px;line-height:1.7;max-width:300px;margin:0 auto 4px;color:#ddd4c5}
#gift .gift-cards{display:flex;flex-direction:column;gap:10px;margin-top:5px}
#gift .bank-card{position:relative;min-height:132px;padding:16px 16px 13px;border:1px solid rgba(201,164,92,.48);border-radius:18px;background:linear-gradient(145deg,rgba(29,24,24,.88),rgba(7,10,16,.78));box-shadow:0 14px 34px rgba(0,0,0,.24);overflow:hidden;text-align:left}
#gift .bank-card::after{content:'✦';position:absolute;right:15px;top:13px;color:rgba(201,164,92,.18);font-size:34px}
#gift .bank-top{display:flex;align-items:center;gap:8px;color:var(--champ);font-size:10px;letter-spacing:.18em}
#gift .bank-top span{color:var(--gold);font-size:11px}
#gift .account-number{margin:24px 0 17px;color:#f8f1df;font-size:16px;letter-spacing:.13em;word-break:break-word}
#gift .bank-bottom{display:flex;align-items:center;justify-content:space-between;gap:10px;color:#cfc3af;font-size:10px;letter-spacing:.05em}
#gift .copy-btn{border:1px solid rgba(201,164,92,.65);background:rgba(201,164,92,.08);color:var(--cream);border-radius:999px;padding:7px 12px;font-size:8px;letter-spacing:.12em;cursor:pointer;white-space:nowrap}
#gift .copy-btn:hover{background:rgba(201,164,92,.16)}
#gift .gift-separator{margin:16px 0 9px;color:var(--gold);font-size:12px}
#gift .physical-card{padding:19px 17px 17px;border:1px solid rgba(201,164,92,.42);border-radius:20px;background:rgba(7,10,16,.62);box-shadow:0 14px 34px rgba(0,0,0,.2)}
#gift .physical-icon{font-size:22px;color:var(--gold);margin-bottom:4px}
#gift .physical-title{font-size:10px;letter-spacing:.24em;color:var(--champ)}
#gift .physical-card p{font-size:11px;line-height:1.7;margin:10px auto 12px;max-width:310px}

#closing .content{max-width:390px;padding:10px 10px 18px;text-align:center}
#closing .closing-ornament{color:var(--gold);font-size:17px;margin-bottom:16px;text-shadow:0 0 18px rgba(201,164,92,.35)}
#closing .closing-eyebrow{font-size:10px;letter-spacing:.34em;color:var(--champ)}
#closing .closing-heading{margin:5px 0 14px;color:var(--gold);font-family:Georgia,"Times New Roman",serif;font-size:29px;letter-spacing:.11em;line-height:1.25;text-shadow:0 2px 22px rgba(0,0,0,.4)}
#closing .closing-divider{color:var(--gold);font-size:10px;letter-spacing:.08em;margin:4px 0 20px;opacity:.9}
#closing .closing-names{font-size:26px;letter-spacing:.12em;color:var(--cream);margin-bottom:16px}
#closing .closing-text{max-width:310px;margin:0 auto;color:#eee6d7;font-size:12px;line-height:1.9}
#closing .closing-tagline{margin:24px 0 8px;color:var(--cream);font-size:15px;letter-spacing:.08em;font-style:italic;font-weight:400}
#closing .closing-heart{margin-top:14px;color:var(--gold);font-size:23px;text-shadow:0 0 18px rgba(201,164,92,.28)}

@media(max-width:380px){#gallery .gallery{gap:7px}#gift .account-number{font-size:14px}#closing .closing-names{font-size:23px}}

#backgroundMusic{display:none}
.guest-label{white-space:pre-line;line-height:1.55}
.music-toggle{position:fixed;right:14px;bottom:16px;z-index:9999;display:none;align-items:center;gap:6px;border:1px solid rgba(201,164,92,.65);background:rgba(13,16,24,.78);backdrop-filter:blur(8px);color:var(--cream);border-radius:999px;padding:7px 10px;font:600 9px/1 Arial,sans-serif;letter-spacing:.12em;cursor:pointer;box-shadow:0 6px 20px rgba(0,0,0,.28)}
body.music-started .music-toggle{display:flex}
.music-toggle .music-icon{font-size:14px;color:var(--gold);line-height:1}
.music-toggle.is-muted{opacity:.72}
@media(min-width:700px){.music-toggle{right:24px;bottom:24px}}



/* ROYAL PAGE ANIMATIONS — element-aware cinematic reveals */
.reveal{opacity:0;transform:translate3d(var(--rx,0),var(--ry,22px),0) scale(.985);filter:blur(0);will-change:opacity,transform;}
.reveal.is-visible{animation:royalElementReveal 1.08s cubic-bezier(.22,.8,.24,1) both;animation-delay:var(--reveal-delay,0s)}
@keyframes royalElementReveal{from{opacity:0;transform:translate3d(var(--rx,0),var(--ry,22px),0) scale(.985)}to{opacity:1;transform:translate3d(0,0,0) scale(1)}}
.reveal-top{--rx:0;--ry:-30px}
.reveal-bottom{--rx:0;--ry:30px}
.reveal-left{--rx:-42px;--ry:0}
.reveal-right{--rx:42px;--ry:0}
.reveal-center{--rx:0;--ry:0}
.reveal-scale{--rx:0;--ry:0}
.reveal-scale.is-visible{animation-name:royalScaleReveal}
@keyframes royalScaleReveal{from{opacity:0;transform:scale(.88)}to{opacity:1;transform:scale(1)}}
.reveal-line.is-visible{animation:royalLine 1.05s cubic-bezier(.22,.8,.24,1) both}

/* Each section has its own motion language. Cover stays completely static. */
#opening .reveal:nth-child(1){--reveal-delay:.04s}
#opening .reveal:nth-child(2){--reveal-delay:.14s}
#opening .reveal:nth-child(3){--reveal-delay:.22s}
#opening .reveal:nth-child(4){--reveal-delay:.32s}
#opening .reveal:nth-child(5){--reveal-delay:.42s}

#mempelai .reveal:nth-child(1),#countdown .reveal:nth-child(1),#acara .reveal:nth-child(1),#love-story .reveal:nth-child(1),#gallery .reveal:nth-child(1),#rsvp .reveal:nth-child(1),#ucapan .reveal:nth-child(1),#gift .reveal:nth-child(1),#closing .reveal:nth-child(1){--reveal-delay:.04s}

#love-story .story-list .reveal,#gallery .gallery .reveal,#gift .bank-card.reveal,#ucapan .wish-card.reveal{animation-duration:1.02s}
#gallery .gallery .reveal:nth-child(2n){--rx:42px;--ry:0}
#gallery .gallery .reveal:nth-child(3n){--rx:-42px;--ry:0}
#love-story .story-list .reveal:nth-child(odd){--rx:-42px;--ry:0}
#love-story .story-list .reveal:nth-child(even){--rx:42px;--ry:0}
#gift .bank-card.reveal:nth-child(odd){--rx:-34px;--ry:0}
#gift .bank-card.reveal:nth-child(even){--rx:34px;--ry:0}

@media(prefers-reduced-motion:reduce){
  .reveal,.reveal.is-visible{opacity:1;transform:none;animation:none!important}
}
