*{box-sizing:border-box}
:root{
  --ivory:#f7f0e4;
  --paper:#eee3d1;
  --brown:#493226;
  --brown2:#684b37;
  --green:#59664e;
  --green2:#3f4b39;
  --terracotta:#9b664b;
  --gold:#b18a4f;
  --white:#fffaf2;
  --line:rgba(73,50,38,.18);
}
html{scroll-behavior:smooth}
body{margin:0;background:#d9cdbb;color:var(--brown);font-family:Georgia,"Times New Roman",serif}
button,input,select{font:inherit}
a{text-decoration:none;color:inherit}
.invite{max-width:520px;margin:auto;background:var(--ivory);min-height:100vh;overflow:hidden;box-shadow:0 0 45px #3c2d2240}
.hero{min-height:100svh;display:flex;align-items:center;justify-content:center;position:relative;color:#fffaf2;text-align:center;background:
radial-gradient(circle at 18% 22%,#d7b97922 0 2px,transparent 3px),
radial-gradient(circle at 82% 68%,#d7b97918 0 2px,transparent 3px),
linear-gradient(145deg,#3b2c24,#604936 48%,#3f4b3b);isolation:isolate}
.hero:before{content:"";position:absolute;inset:18px;border:1px solid #d7bb825c;border-radius:2px;pointer-events:none}
.hero:after{content:"";position:absolute;inset:29px;border:1px solid #fffaf218;pointer-events:none}
.hero-inner{position:relative;z-index:3;width:88%;max-width:420px;padding:36px 0 58px}
.hero-corner{position:absolute;width:78px;height:78px;z-index:2;opacity:.95}
.hero-corner:before,.hero-corner:after{content:"";position:absolute;border-color:#d7b979}
.corner-tl{left:29px;top:29px;border-top:1px solid #d7b97955;border-left:1px solid #d7b97955}
.corner-tr{right:29px;top:29px;border-top:1px solid #d7b97955;border-right:1px solid #d7b97955}
.corner-bl{left:29px;bottom:29px;border-bottom:1px solid #d7b97955;border-left:1px solid #d7b97955}
.corner-br{right:29px;bottom:29px;border-bottom:1px solid #d7b97955;border-right:1px solid #d7b97955}
.hero-corner:after{width:18px;height:18px;border-width:1px;border-style:solid;transform:rotate(45deg);opacity:.85}
.corner-tl:after{left:7px;top:7px;border-right:0;border-bottom:0}
.corner-tr:after{right:7px;top:7px;border-left:0;border-bottom:0}
.corner-bl:after{left:7px;bottom:7px;border-right:0;border-top:0}
.corner-br:after{right:7px;bottom:7px;border-left:0;border-top:0}
.cover-botanical{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden;opacity:.52}
.cover-botanical svg{width:100%;height:100%;display:block}
.cover-botanical .side-leaves,.cover-botanical .flourish{fill:none;stroke:#d5b06a;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round}
.cover-botanical .side-leaves{opacity:.55}
.cover-botanical .flourish{opacity:.38}
.eyebrow,.kicker{font-size:10px;letter-spacing:.34em;text-transform:uppercase}
.sunda-ornament{width:150px;height:58px;margin:0 auto 2px;color:#d8b76f;opacity:.96}
.sunda-ornament svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.sunda-ornament .bud{fill:currentColor;stroke:none}
.hero h1{font-size:47px;font-weight:400;line-height:.9;margin:9px 0 13px;letter-spacing:-.02em;display:flex;flex-direction:column;align-items:center}
.hero h1 span{display:block}
.hero h1 i,.amp,.closing-names i{font-style:italic;color:#d4b36f;margin:-1px 0 1px;font-size:.92em;line-height:.7}
.hero h1 i{position:relative}
.hero h1 i:before,.hero h1 i:after{content:"";display:inline-block;width:44px;height:1px;background:#d4b36f66;vertical-align:middle;margin:0 12px}
.date{letter-spacing:.18em;font-size:13px;margin:0}
.guest-box{margin:27px auto 17px;padding:13px 18px 14px;border-top:1px solid #d7bb825c;border-bottom:1px solid #d7bb825c;display:flex;flex-direction:column;gap:4px}
.guest-box small{opacity:.7;font-size:11px}
.guest-box .guest-type{font-size:12px;opacity:.92}
.guest-box strong{font-size:16px;font-weight:400;color:#e0c37e;letter-spacing:.02em}
.hero-quote{font-size:12.5px;line-height:1.85;opacity:.84;max-width:350px;margin:0 auto}
.hero .primary-btn{margin-top:17px;background:#b18a4f;color:#fff;border:1px solid #e5ca91;box-shadow:0 7px 18px #1f140c40;padding:9px 19px;min-width:154px;font-size:9px;letter-spacing:.12em;border-radius:999px}
.scroll-note{position:absolute;bottom:16px;left:0;right:0;font-size:8px;letter-spacing:.18em;opacity:.62;z-index:3;display:flex;flex-direction:column;align-items:center;gap:6px}
.scroll-note>span:first-child{width:1px;height:14px;background:#d9bd80;display:block;position:relative}
.scroll-note>span:first-child:after{content:"";position:absolute;left:-2px;bottom:0;width:5px;height:5px;border-right:1px solid #d9bd80;border-bottom:1px solid #d9bd80;transform:rotate(45deg)}
.scroll-text{font-size:8px}
.content.locked{display:none}
.section{padding:72px 24px;background:var(--ivory);position:relative}
.intro{text-align:center;background:var(--paper)}
.ornament{color:var(--gold);font-size:18px}
.intro h2,.section-head h2,.closing h2{font-size:32px;font-weight:400;margin:10px 0}
.intro h2 em{color:var(--gold)}
.lead{line-height:1.9;font-size:14px;color:var(--brown2);max-width:380px;margin:18px auto}
.sundanese-line{width:90px;height:1px;background:var(--gold);margin:25px auto}
.section-head{text-align:center;margin-bottom:28px}
.section-head>span{color:var(--terracotta);font-size:10px;letter-spacing:.2em}
.section-head h2{margin:7px 0;font-size:30px}
.section-head p{font-family:Arial,sans-serif;font-size:12px;line-height:1.7;color:var(--brown2);margin:0 auto;max-width:360px}
.couple{background:var(--ivory);text-align:center}
.person{padding:18px;background:#fffaf255;border:1px solid var(--line);border-radius:22px;box-shadow:0 14px 32px #49322612}
.portrait{width:170px;height:170px;margin:auto;border-radius:24px;background:linear-gradient(145deg,#d4c2a6,#92785c);display:grid;place-items:center;border:6px solid var(--white);box-shadow:0 12px 25px #49322618;overflow:hidden;position:relative}.portrait img{width:100%;height:100%;object-fit:cover;display:none}.portrait.has-photo img{display:block}.portrait.has-photo span{display:none}
.portrait span{font-size:58px;color:#fff8ea}
.role{font:10px Arial,sans-serif;letter-spacing:.2em;text-transform:uppercase;color:var(--terracotta);margin:18px 0 6px}
.person h3{font-size:25px;font-weight:400;margin:5px}
.person p:last-child{font:12px/1.7 Arial,sans-serif;color:var(--brown2)}
.person .role{margin:16px 0 4px;color:var(--gold);font-size:10px;letter-spacing:.14em;text-transform:uppercase}.instagram-btn{display:inline-flex;align-items:center;gap:7px;margin-top:12px;padding:7px 13px;border:1px solid rgba(177,138,79,.48);border-radius:999px;color:var(--brown);font:10px Arial,sans-serif;text-decoration:none;letter-spacing:.06em;background:#fffaf280}.instagram-btn span{font-size:13px;color:var(--gold)}.instagram-btn[style*="display: none"]{display:none!important}
.amp{text-align:center;font-size:30px;margin:12px}
.event{background:var(--paper)}
.event-card{background:#fffaf2;border:1px solid var(--line);border-radius:22px;padding:28px 22px;text-align:center;margin:14px 0;box-shadow:0 15px 32px #49322610}
.event-label{font:10px Arial,sans-serif;letter-spacing:.25em;color:var(--terracotta)}
.event-date{font-size:25px;margin-top:15px}
.event-day,.event-time{font:12px Arial,sans-serif;color:var(--brown2);margin-top:5px}
.event-divider{width:50px;height:1px;background:var(--gold);margin:18px auto}
.event-card h3{font-size:18px;font-weight:400;margin:5px}
.event-card p{font:12px/1.6 Arial,sans-serif;color:var(--brown2)}
.outline-btn{display:inline-block;border:1px solid var(--gold);background:transparent;color:var(--brown);border-radius:999px;padding:10px 15px;font:10px Arial,sans-serif;letter-spacing:.1em;cursor:pointer}
.countdown{background:var(--green2);color:#fff9ed;text-align:center}
.section-head.light h2,.section-head.light p,.section-head.light{color:#fff9ed}
.timer{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}
.timer div{border:1px solid #d9bc7a55;background:#ffffff0e;padding:16px 5px;border-radius:12px}
.timer b{display:block;font-size:25px;color:#e0c37e;font-weight:400}
.timer span{font:9px Arial,sans-serif;opacity:.75}
.story{background:var(--ivory)}
.story-item{padding:20px 0;border-bottom:1px solid var(--line)}
.story-item:last-child{border-bottom:0}
.story-item small{color:var(--terracotta);letter-spacing:.15em}
.story-item h3{font-size:22px;font-weight:400;margin:7px 0}
.story-item p{font:13px/1.8 Arial,sans-serif;color:var(--brown2)}
.quote{background:var(--brown);color:#fff9ed;text-align:center}
.quote-mark{font-size:58px;color:#d3b06d;height:55px}
.quote p{font-size:16px;line-height:1.9;font-style:italic;max-width:370px;margin:0 auto 16px}
.quote small{font:10px Arial,sans-serif;letter-spacing:.15em;color:#d9bd80}
.rsvp{background:var(--paper);text-align:center}
#rsvpForm{display:grid;gap:10px;max-width:360px;margin:auto}
#rsvpForm input,#rsvpForm select{border:1px solid var(--line);background:#fffaf2;border-radius:12px;padding:13px;color:var(--brown);outline:none}
#rsvpForm .primary-btn{background:#59664e;color:#fff9ed;border-color:#9b7b48}
.gift{text-align:center}
.gift-card{max-width:330px;margin:auto;padding:28px 20px;border:1px solid var(--line);border-radius:20px;background:#fffaf2}
.gift-icon{font-size:20px;color:var(--gold)}
.gift-card strong,.gift-card b,.gift-card small{display:block;margin:7px}
.gift-card b{font-size:20px;letter-spacing:.08em}
.gift-card small{font:11px Arial;color:var(--brown2)}
.closing.sundanese-closing{min-height:100svh;background:linear-gradient(180deg,#f5eddd 0%,#efe3cf 72%,#e7dac5 100%);color:#4d3d2c;text-align:center;padding:54px 22px 26px;display:flex;flex-direction:column;justify-content:flex-start;position:relative;overflow:hidden;border-top:1px solid rgba(177,138,79,.35)}
.closing-bg-photo,.closing-bg-overlay{position:absolute;inset:0;pointer-events:none}.closing-bg-photo{display:none;background-position:center;background-size:cover;background-repeat:no-repeat;z-index:0;filter:saturate(.78) contrast(.96)}.closing-bg-overlay{background:linear-gradient(180deg,rgba(45,37,29,.58),rgba(58,48,37,.42) 52%,rgba(33,43,34,.62));z-index:1}.sundanese-closing:before{content:"";position:absolute;inset:12px;border:1px solid rgba(177,138,79,.45);border-radius:24px;pointer-events:none;z-index:2}.sundanese-closing:after{content:"";position:absolute;left:10%;right:10%;bottom:42px;height:150px;background:linear-gradient(160deg,transparent 48%,rgba(104,123,99,.11) 49%,transparent 50%),linear-gradient(20deg,transparent 49%,rgba(104,123,99,.09) 50%,transparent 51%);clip-path:polygon(0 100%,0 65%,18% 48%,32% 68%,49% 38%,65% 62%,82% 45%,100% 65%,100% 100%);pointer-events:none;z-index:2}.closing-top-ornament{position:relative;z-index:3;color:#b18a4f;font-size:18px;letter-spacing:.25em;margin-bottom:8px}.sundanese-closing .kicker{position:relative;z-index:3;color:#687b63;font:600 10px Arial,sans-serif;letter-spacing:.28em;text-transform:uppercase;margin:0 0 7px}.sundanese-closing h2{position:relative;z-index:3;font:400 39px/1.1 Georgia,serif;margin:5px 0;color:#4b3a28}.closing-divider{position:relative;z-index:3;color:#b18a4f;margin:9px auto 14px;display:flex;align-items:center;gap:10px;max-width:180px}.closing-divider:before,.closing-divider:after{content:"";height:1px;background:#b18a4f;flex:1;opacity:.7}.closing-divider span{font-size:12px}.closing-message{position:relative;z-index:3;font:13px/1.85 Georgia,serif;max-width:330px;margin:0 auto 20px;color:#665846}.closing-names{position:relative;z-index:3;font:italic 29px/1.2 Georgia,serif;color:#4b3a28}.closing-names i{color:#b18a4f}.closing-date{position:relative;z-index:3;margin-top:5px;color:#7b654b;font:11px Arial,sans-serif;letter-spacing:.2em;text-transform:uppercase}.closing-final{position:relative;z-index:3;margin:15px auto 3px;color:#5f5141;font:italic 13px/1.7 Georgia,serif}.closing-sundanese{position:relative;z-index:3;margin:0 auto;color:#687b63;font:italic 11px/1.7 Georgia,serif}.closing-bottom-ornament{position:relative;z-index:3;color:#b18a4f;margin:10px auto 0;font-size:18px}.closing-leaf{position:absolute;width:110px;height:190px;opacity:.13;background:radial-gradient(ellipse at 30% 20%,#687b63 0 8%,transparent 9%),radial-gradient(ellipse at 65% 45%,#687b63 0 9%,transparent 10%),radial-gradient(ellipse at 30% 72%,#687b63 0 8%,transparent 9%);pointer-events:none;z-index:2}.closing-leaf-left{left:-48px;top:85px;transform:rotate(-18deg)}.closing-leaf-right{right:-48px;bottom:95px;transform:rotate(18deg)}

.footer{position:relative;z-index:3;margin-top:30px;padding-top:17px;border-top:1px solid rgba(177,138,79,.3);font:10px Arial,sans-serif;color:#665846}.footer p{margin-bottom:10px}.footer a{display:inline-block;border:1px solid rgba(177,138,79,.55);border-radius:999px;padding:7px 10px;margin:3px;color:#5b6d58;text-decoration:none}
/* v27: lower footer slightly and let the Sundanese landscape occupy the lower breathing space. */
.sundanese-closing .footer{margin-top:30px;margin-bottom:42px}
.sundanese-closing:after{opacity:.9}

@media(max-width:380px){.sundanese-closing h2{font-size:34px}.closing-photo-wrap{width:min(74vw,245px)}.closing-message{font-size:12px}}
@media(min-width:700px){body{padding:20px}.invite{border-radius:24px}.hero{border-radius:24px 24px 0 0}}

@media(max-width:380px){.hero h1{font-size:39px}.hero h1 i:before,.hero h1 i:after{width:30px;margin:0 8px}.sunda-ornament{width:132px;height:52px}.hero-inner{width:86%;padding-top:27px}.guest-box{margin-top:21px}.hero-quote{font-size:11.5px}.hero .primary-btn{min-width:145px;padding:8px 17px}}

/* Opening — minimalist Sundanese transition */
.intro{padding:46px 18px;background:linear-gradient(180deg,#f3eadc 0%,#f7f0e4 52%,#eee3d1 100%);overflow:hidden}
.opening-frame{position:relative;max-width:450px;margin:0 auto;padding:58px 30px 48px;border:1px solid rgba(177,138,79,.42);background:rgba(255,250,242,.58);box-shadow:0 16px 35px rgba(73,50,38,.08);overflow:hidden}
.opening-frame:before{content:"";position:absolute;inset:9px;border:1px solid rgba(177,138,79,.18);pointer-events:none}
.opening-corner{position:absolute;width:54px;height:54px;opacity:.7}
.opening-corner:before,.opening-corner:after{content:"";position:absolute;background:var(--gold)}
.opening-corner:before{width:38px;height:1px;top:0;left:0}
.opening-corner:after{width:1px;height:38px;top:0;left:0}
.opening-corner-tl{top:18px;left:18px}
.opening-corner-tr{top:18px;right:18px;transform:scaleX(-1)}
.opening-corner-bl{bottom:18px;left:18px;transform:scaleY(-1)}
.opening-corner-br{bottom:18px;right:18px;transform:scale(-1)}
.opening-flourish{width:142px;height:52px;margin:0 auto 12px;color:var(--gold);opacity:.85}
.opening-flourish svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.opening-flourish .bud{fill:currentColor;stroke:none}
.intro .kicker{margin:0;color:var(--gold);font-size:10px;letter-spacing:.24em;text-transform:uppercase}
.intro h2{font-size:25px;line-height:1.45;font-weight:400;letter-spacing:.01em;color:var(--brown);margin:16px auto 14px;max-width:360px}
.opening-divider{display:flex;align-items:center;justify-content:center;gap:9px;margin:3px auto 20px;color:var(--gold)}
.opening-divider span{width:54px;height:1px;background:rgba(177,138,79,.55)}
.opening-divider i{font-style:normal;font-size:11px}
.intro .lead{font-size:13.5px;line-height:1.95;color:var(--brown2);max-width:360px;margin:0 auto}
.opening-closing{font-size:12px;line-height:1.9;color:#786452;max-width:340px;margin:17px auto 0}
.opening-signature{margin:27px auto 0;padding-top:17px;border-top:1px solid rgba(177,138,79,.25);display:flex;flex-direction:column;gap:7px}
.opening-signature span{font-size:9px;letter-spacing:.15em;text-transform:uppercase;color:#947b60}
.opening-signature strong{font:22px Georgia,serif;color:var(--brown);font-weight:400}
.opening-signature strong i{font-style:italic;color:var(--gold);padding:0 4px}
.opening-bottom-ornament{margin-top:25px;color:var(--gold);font-size:21px;transform:rotate(-45deg);opacity:.8}
@media(max-width:380px){.intro{padding:34px 13px}.opening-frame{padding:48px 23px 40px}.intro h2{font-size:22px}.intro .lead{font-size:12.5px}.opening-closing{font-size:11.5px}.opening-flourish{width:125px}}



/* Cover — Sunda Heritage Modern v24 */
.hero{background:
 radial-gradient(circle at 50% 17%,rgba(177,138,79,.18),transparent 24%),
 radial-gradient(circle at 12% 76%,rgba(89,102,78,.16),transparent 30%),
 radial-gradient(circle at 88% 78%,rgba(89,102,78,.13),transparent 30%),
 linear-gradient(155deg,#2f261e 0%,#493629 45%,#29231d 100%);
 overflow:hidden}
.hero:before{inset:16px;border:1px solid rgba(215,187,130,.55);border-radius:4px}
.hero:after{inset:25px;border:1px solid rgba(255,250,242,.10)}
.hero-inner{padding-top:58px;z-index:5}
.cover-heritage-band{position:absolute;top:39px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:9px;color:#d7bb82;opacity:.8;z-index:5}
.cover-heritage-band .heritage-line{width:34px;height:1px;background:linear-gradient(90deg,transparent,#d7bb82)}
.cover-heritage-band .heritage-line:nth-of-type(2){transform:scaleX(-1)}
.heritage-dot{width:4px;height:4px;border:1px solid #d7bb82;border-radius:50%}
.heritage-diamond{font:12px Georgia,serif;transform:rotate(45deg)}
.cover-mountain{position:absolute;left:0;right:0;bottom:0;height:190px;z-index:1;opacity:.42;pointer-events:none}
.mountain-line{position:absolute;bottom:20px;width:72%;height:115px;border-top:1px solid rgba(215,187,130,.42);border-radius:50% 50% 0 0;filter:drop-shadow(0 -8px 10px rgba(0,0,0,.12))}
.mountain-line-a{left:-12%;transform:rotate(-5deg)}
.mountain-line-b{right:-12%;transform:scaleX(-1) rotate(-5deg);opacity:.75}
.sunda-roof-mark{position:absolute;left:50%;bottom:8px;width:92px;height:46px;transform:translateX(-50%);opacity:.7}
.sunda-roof-mark:before,.sunda-roof-mark:after{content:"";position:absolute;bottom:11px;width:55px;height:28px;border-top:1px solid #d7bb82}
.sunda-roof-mark:before{left:0;transform:skewY(-23deg);border-radius:70% 0 0 0}
.sunda-roof-mark:after{right:0;transform:skewY(23deg);border-radius:0 70% 0 0}
.sunda-roof-mark{border-bottom:1px solid rgba(215,187,130,.35)}
.hero .eyebrow{letter-spacing:.28em;color:#ead4a6}
.hero h1{font-size:49px;text-shadow:0 5px 24px rgba(0,0,0,.25)}
.hero .date{color:#e8d4ad;letter-spacing:.22em}
.guest-box{border-color:rgba(215,187,130,.48);background:rgba(35,27,21,.28);backdrop-filter:blur(2px);box-shadow:0 10px 28px rgba(0,0,0,.18)}
.hero-quote{max-width:320px;color:#f4eadb}
.hero .primary-btn{position:relative;z-index:6;background:#b18a4f;border-color:#ead19c;box-shadow:0 8px 24px rgba(0,0,0,.28)}
.cover-botanical{z-index:2}

/* Opening — Sundanese heritage transition v24 */
.intro{position:relative;padding:54px 18px 62px;background:
 radial-gradient(circle at 12% 16%,rgba(89,102,78,.10),transparent 25%),
 radial-gradient(circle at 88% 82%,rgba(177,138,79,.10),transparent 28%),
 linear-gradient(180deg,#f1e6d4 0%,#f8f1e6 52%,#eee1cc 100%)}
.intro:before{content:"";position:absolute;inset:14px;border:1px solid rgba(177,138,79,.18);border-radius:30px;pointer-events:none}
.opening-frame{max-width:455px;padding:52px 30px 43px;background:rgba(255,250,242,.72);border-color:rgba(177,138,79,.55);box-shadow:0 20px 45px rgba(73,50,38,.11)}
.opening-frame:after{content:"";position:absolute;left:22px;right:22px;bottom:18px;height:42px;background:linear-gradient(165deg,transparent 46%,rgba(89,102,78,.12) 47% 49%,transparent 50%),linear-gradient(15deg,transparent 46%,rgba(177,138,79,.12) 47% 49%,transparent 50%);opacity:.8;pointer-events:none}
.opening-heritage-label{display:flex;justify-content:center;margin:-6px auto 12px;color:#59664e;font:8px/1 Arial,sans-serif;letter-spacing:.28em;text-transform:uppercase}
.opening-heritage-label:before,.opening-heritage-label:after{content:"";width:35px;height:1px;margin:4px 8px 0;background:rgba(89,102,78,.4)}
.opening-heritage-label span{white-space:nowrap}
.opening-flourish{width:154px;height:54px;opacity:.92}
.intro h2{font-size:26px;color:#493226}
.opening-divider{margin-bottom:21px}
.opening-divider span{background:rgba(89,102,78,.4)}
.intro .lead{color:#5e4939}
.opening-closing{color:#765f4b}
.opening-signature{position:relative;z-index:2}
.opening-landscape{position:relative;height:34px;margin:15px auto -5px;max-width:220px;opacity:.62}
.opening-landscape:before,.opening-landscape:after{content:"";position:absolute;bottom:0;width:90px;height:30px;border-top:1px solid #879078;border-radius:50% 50% 0 0}
.opening-landscape:before{left:0;transform:rotate(-7deg)}
.opening-landscape:after{right:0;transform:scaleX(-1) rotate(-7deg)}
.opening-landscape span{position:absolute;left:50%;bottom:0;width:42px;height:20px;border-top:1px solid #9a7641;transform:translateX(-50%)}
.opening-landscape i{position:absolute;left:50%;bottom:0;width:1px;height:23px;background:#9a7641;transform:translateX(-50%)}
.opening-landscape b{position:absolute;left:50%;bottom:20px;width:6px;height:6px;border:1px solid #9a7641;transform:translateX(-50%) rotate(45deg);font-size:0}

/* Traditional Sunda couple section v12 */
.sundanese-couple{overflow:hidden;background:linear-gradient(180deg,#f7f0e4 0%,#f2e6d3 72%,#eee0c9 100%);padding:70px 18px 42px;position:relative}
.sundanese-couple:before{content:"";position:absolute;inset:10px;border:1px solid rgba(177,138,79,.28);border-radius:28px;pointer-events:none}
.sundanese-couple:after{content:"";position:absolute;left:-30px;right:-30px;bottom:0;height:180px;background:radial-gradient(ellipse at 20% 100%,rgba(89,102,78,.15),transparent 52%),radial-gradient(ellipse at 80% 100%,rgba(89,102,78,.15),transparent 52%);pointer-events:none}
.couple-frame{position:absolute;inset:0;pointer-events:none;z-index:0}
.couple-leaf{position:absolute;width:120px;height:170px;opacity:.16;border-radius:80% 0 80% 0;background:linear-gradient(135deg,transparent 46%,#59664e 47% 53%,transparent 54%),repeating-linear-gradient(135deg,transparent 0 16px,rgba(89,102,78,.7) 17px 19px,transparent 20px 31px);filter:blur(.1px)}
.couple-leaf-left{left:-50px;top:105px;transform:rotate(-20deg)}
.couple-leaf-right{right:-50px;top:250px;transform:scaleX(-1) rotate(-20deg)}
.couple-top-ornament{width:170px;height:62px;margin:0 auto 4px;color:#9a7641;position:relative;z-index:1}
.couple-top-ornament svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.couple-top-ornament .bud{fill:currentColor;stroke:none}
.couple-head{position:relative;z-index:1;margin-bottom:10px}.couple-head>span{color:#8c6940}.couple-head h2{font-size:34px;color:#493226;margin:4px 0 8px}.couple-subtitle{max-width:390px!important;font-family:Georgia,"Times New Roman",serif!important;font-size:13px!important;letter-spacing:.08em;line-height:1.8!important;color:#684b37!important;text-transform:uppercase}
.couple-divider{display:flex;align-items:center;gap:9px;width:150px;margin:13px auto 0;color:#b18a4f}.couple-divider:before,.couple-divider:after{content:"";height:1px;flex:1;background:rgba(177,138,79,.55)}.couple-divider i{font-style:normal;font-size:13px}.couple-intro{position:relative;z-index:1;text-align:center;max-width:350px;margin:0 auto 28px;font:12px/1.8 Arial,sans-serif;color:#684b37}
.couple-grid{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) 34px minmax(0,1fr);gap:5px;align-items:start}
.sundanese-person{padding:0 2px;background:transparent;border:0;border-radius:0;box-shadow:none}.portrait-frame{width:100%;max-width:172px;margin:0 auto;position:relative;padding:7px;border:1px solid rgba(177,138,79,.7);border-radius:30px 30px 18px 18px;background:rgba(255,250,242,.62);box-shadow:0 10px 25px rgba(73,50,38,.12)}
.portrait-frame:before{content:"";position:absolute;inset:-4px;border:1px solid rgba(89,102,78,.22);border-radius:34px 34px 21px 21px;pointer-events:none}.sundanese-person .portrait{width:100%;height:auto;aspect-ratio:1/1.08;margin:0;border-radius:23px 23px 15px 15px;border:4px solid #fffaf2;box-shadow:none;background:linear-gradient(145deg,#d7c7ad,#8e765b)}
.portrait-corner{position:absolute;width:18px;height:18px;border-color:#9b7845;border-style:solid;opacity:.85}.pc-tl{left:-3px;top:18px;border-width:1px 0 0 1px;border-radius:10px 0 0 0}.pc-tr{right:-3px;top:18px;border-width:1px 1px 0 0;border-radius:0 10px 0 0}.pc-bl{left:-3px;bottom:18px;border-width:0 0 1px 1px;border-radius:0 0 0 10px}.pc-br{right:-3px;bottom:18px;border-width:0 1px 1px 0;border-radius:0 0 10px 0}
.sundanese-person .role{margin:13px 0 4px;font-size:8px;color:#59664e;letter-spacing:.16em}.sundanese-person h3{font-size:25px;color:#493226;margin:2px 0 3px}.family-line{display:flex;align-items:center;gap:5px;justify-content:center;color:#b18a4f;margin:6px 0}.family-line span{width:28px;height:1px;background:rgba(177,138,79,.6)}.family-line i{font-style:normal;font-size:11px}.sundanese-person .parents{font:10.5px/1.65 Arial,sans-serif;color:#684b37;margin:0 auto;max-width:170px}.sundanese-person .instagram-btn{margin-top:10px;padding:6px 10px;font-size:8px;background:#5b634a;color:#fff9ed;border-color:#8f7a4e;box-shadow:0 4px 10px rgba(63,75,57,.15)}.sundanese-person .instagram-btn span{color:#e0c37e;font-size:12px}
.couple-center-ornament{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding-top:125px;color:#8d6b3d}.couple-center-ornament b{font:italic 36px Georgia,serif;color:#9a7641}.leaf-mini{width:14px;height:24px;border:1px solid #9a7641;border-radius:80% 0 80% 0;transform:rotate(45deg);position:relative}.leaf-mini:after{content:"";position:absolute;left:6px;top:-4px;width:1px;height:31px;background:#9a7641;transform:rotate(-45deg)}.leaf-mini.bottom{transform:rotate(225deg)}
.couple-prayer{position:relative;z-index:1;text-align:center;max-width:390px;margin:32px auto 0;padding:20px 14px 12px;border-top:1px solid rgba(177,138,79,.35)}.couple-prayer:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:rgba(177,138,79,.35)}.couple-prayer-ornament{color:#9a7641;font-size:17px;margin-bottom:6px}.couple-prayer p{font:12px/1.8 Georgia,serif;color:#684b37;margin:0}
.sunda-landscape{position:relative;height:70px;margin:14px -18px -42px;overflow:hidden;z-index:1;opacity:.6}.mountain{position:absolute;bottom:-42px;width:180px;height:100px;border-radius:50% 50% 0 0;background:linear-gradient(150deg,transparent 48%,#879078 49% 51%,transparent 52%);border-top:1px solid rgba(89,102,78,.45)}.mountain-a{left:-25px;transform:rotate(-7deg)}.mountain-b{right:-25px;transform:scaleX(-1) rotate(-7deg)}.roof{position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:100px;height:40px}.roof:before,.roof:after{content:"";position:absolute;bottom:8px;width:62px;height:30px;border-top:2px solid #9a7641;border-radius:60% 0 0 0}.roof:before{left:0;transform:skewY(-24deg)}.roof:after{right:0;transform:skewY(24deg) scaleX(-1)}.roof span{position:absolute;left:50%;bottom:4px;width:2px;height:36px;background:#9a7641;transform:translateX(-50%)}.roof i{position:absolute;left:50%;bottom:34px;width:9px;height:9px;border:1px solid #9a7641;transform:translateX(-50%) rotate(45deg)}
@media(max-width:360px){.sundanese-couple{padding-left:14px;padding-right:14px}.couple-grid{grid-template-columns:minmax(0,1fr) 24px minmax(0,1fr)}.sundanese-person h3{font-size:22px}.sundanese-person .parents{font-size:9.5px}.portrait-frame{max-width:150px}.couple-center-ornament{padding-top:108px}}

/* Traditional Sunda event section v13 — inspired by the reference, intentionally simplified */
.sundanese-event{background:linear-gradient(180deg,#f4eadb 0%,#f7f0e4 48%,#eee2cf 100%);overflow:hidden;padding:66px 18px 54px;position:relative}
.sundanese-event:before{content:"";position:absolute;inset:12px;border:1px solid rgba(177,138,79,.25);border-radius:30px;pointer-events:none}
.event-side-ornament{position:absolute;width:120px;height:220px;opacity:.15;pointer-events:none;background:repeating-linear-gradient(115deg,transparent 0 17px,rgba(89,102,78,.75) 18px 20px,transparent 21px 35px);border-radius:70% 20% 70% 20%;z-index:0}
.event-side-left{left:-75px;top:175px;transform:rotate(-24deg)}.event-side-right{right:-75px;top:510px;transform:scaleX(-1) rotate(-24deg)}
.event-top-ornament{width:145px;height:50px;margin:0 auto 5px;color:#9a7641;position:relative;z-index:1}.event-top-ornament svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.event-top-ornament .bud{fill:currentColor;stroke:none}
.event-head{position:relative;z-index:1;margin-bottom:22px}.event-head h2{font-size:35px;margin:3px 0 8px;color:#493226}.event-head>span{color:#8c6940}.event-head p{font-family:Georgia,"Times New Roman",serif!important;font-size:12px!important;line-height:1.8!important;letter-spacing:.1em;color:#684b37!important;text-transform:uppercase;max-width:340px!important}.event-head-divider{display:flex;align-items:center;gap:8px;width:125px;margin:13px auto 0;color:#b18a4f}.event-head-divider:before,.event-head-divider:after{content:"";height:1px;flex:1;background:rgba(177,138,79,.5)}.event-head-divider i{font-style:normal;font-size:12px}
.sundanese-event-card{position:relative;z-index:1;background:rgba(255,250,242,.76);border:1px solid rgba(177,138,79,.5);border-radius:24px;padding:0 17px 18px;margin:0;box-shadow:0 13px 28px rgba(73,50,38,.08);overflow:visible}.sundanese-event-card:before{content:"";position:absolute;inset:7px;border:1px solid rgba(177,138,79,.18);border-radius:18px;pointer-events:none}.sundanese-event-card:after{content:"";position:absolute;left:-20px;right:-20px;top:0;height:52px;background:linear-gradient(90deg,rgba(89,102,78,.06),rgba(177,138,79,.1),rgba(89,102,78,.06));pointer-events:none}
.sundanese-event-card .event-label{position:relative;z-index:5;display:table;margin:-13px auto 19px;padding:9px 26px;border:1px solid #b18a4f;background:#59664e;color:#fff8ea;border-radius:999px;font:12px Georgia,serif;letter-spacing:.03em;box-shadow:0 5px 12px rgba(63,75,57,.16)}
.event-info-grid{position:relative;z-index:2;display:grid;grid-template-columns:30px 1fr;column-gap:10px;row-gap:15px;text-align:left;max-width:310px;margin:auto}.event-icon{width:25px;height:25px;color:#9a7641;display:grid;place-items:center}.event-icon svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.event-info-grid>div:nth-child(2n){border-bottom:1px solid rgba(177,138,79,.17);padding-bottom:9px}.event-info-grid>div:nth-child(2n):last-child{border-bottom:0}.event-caption{display:block;font:8px Arial,sans-serif;letter-spacing:.18em;text-transform:uppercase;color:#8f7358;margin-bottom:2px}.event-info-grid strong{display:block;font:15px Georgia,serif;font-weight:400;color:#493226;line-height:1.35}.event-info-grid small{display:block;font:10px/1.55 Arial,sans-serif;color:#684b37;margin-top:2px}.event-map-btn{position:relative;z-index:2;margin:18px auto 0;display:table;background:#59664e;color:#fff9ed;border-color:#9b7b48;padding:9px 16px;box-shadow:0 5px 12px rgba(63,75,57,.12)}.event-map-btn span{color:#e1c486;font-size:13px;margin-right:4px}
.event-connector{position:relative;z-index:1;height:42px;display:flex;align-items:center;justify-content:center;gap:8px;color:#9a7641}.event-connector span{width:42px;height:1px;background:rgba(177,138,79,.45)}.event-connector i{font-style:normal;font-size:17px;transform:rotate(-45deg)}
.event-bottom-landscape{position:relative;z-index:0;height:115px;margin:5px -18px -30px;overflow:hidden;opacity:.62}.event-mountain{position:absolute;bottom:-65px;width:230px;height:125px;border-radius:50% 50% 0 0;border-top:1px solid rgba(89,102,78,.28);background:linear-gradient(150deg,transparent 47%,rgba(89,102,78,.18) 48% 51%,transparent 52%)}.em-a{left:-45px;transform:rotate(-5deg)}.em-b{right:-45px;transform:scaleX(-1) rotate(-5deg)}.event-roof{position:absolute;left:50%;bottom:4px;transform:translateX(-50%);width:100px;height:47px}.event-roof:before,.event-roof:after{content:"";position:absolute;bottom:7px;width:64px;height:34px;border-top:2px solid rgba(154,118,65,.75);border-radius:70% 0 0 0}.event-roof:before{left:0;transform:skewY(-23deg)}.event-roof:after{right:0;transform:skewY(23deg) scaleX(-1)}.event-roof span{position:absolute;left:50%;bottom:4px;width:2px;height:39px;background:rgba(154,118,65,.75);transform:translateX(-50%)}
.event-closing{position:relative;z-index:1;max-width:330px;margin:6px auto 0;text-align:center;font:12px/1.8 Georgia,serif;color:#684b37}.event-closing-ornament{text-align:center;color:#9a7641;font-size:14px;margin-top:10px}
@media(max-width:360px){.sundanese-event{padding-left:14px;padding-right:14px}.sundanese-event-card{padding-left:12px;padding-right:12px}.event-info-grid{grid-template-columns:27px 1fr;column-gap:8px}.event-info-grid strong{font-size:13.5px}.event-head h2{font-size:32px}}


/* Traditional Sunda countdown v15 — calm natural landscape, simplified from the reference */
.sundanese-countdown{background:linear-gradient(180deg,#f6eddf 0%,#f7f0e4 48%,#efe2cf 100%);color:var(--brown);text-align:center;overflow:hidden;position:relative;padding:64px 18px 0;min-height:650px}
.sundanese-countdown:before{content:"";position:absolute;inset:12px;border:1px solid rgba(177,138,79,.25);border-radius:30px;pointer-events:none;z-index:0}
.countdown-frame{position:absolute;inset:28px;border:1px solid rgba(89,102,78,.12);border-radius:24px;pointer-events:none;z-index:0}
.countdown-top-ornament{position:relative;z-index:2;width:125px;height:46px;margin:0 auto 3px;color:#9a7641}.countdown-top-ornament svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.countdown-top-ornament .bud{fill:currentColor;stroke:none}
.countdown-head{position:relative;z-index:2;margin-bottom:12px}.countdown-head>span{color:#8c6940}.countdown-head h2{font-size:34px;color:#493226;margin:4px 0 5px;font-weight:400}.countdown-divider{display:flex;align-items:center;justify-content:center;gap:8px;margin:3px auto 10px;color:#b18a4f}.countdown-divider:before,.countdown-divider:after{content:"";width:40px;height:1px;background:rgba(177,138,79,.5)}.countdown-divider i{font-style:normal;font-size:11px}.countdown-head p{font-family:Georgia,"Times New Roman",serif!important;font-size:11.5px!important;line-height:1.75!important;letter-spacing:.12em;color:#684b37!important;text-transform:uppercase;max-width:340px!important}
.countdown-leaf{position:absolute;width:110px;height:150px;opacity:.12;background:linear-gradient(135deg,transparent 46%,#59664e 47% 53%,transparent 54%),repeating-linear-gradient(135deg,transparent 0 15px,rgba(89,102,78,.7) 16px 18px,transparent 19px 29px);border-radius:80% 0 80% 0;z-index:1}.countdown-leaf-left{left:-48px;top:120px;transform:rotate(-20deg)}.countdown-leaf-right{right:-48px;top:250px;transform:scaleX(-1) rotate(-20deg)}
.countdown-couple{position:relative;z-index:2;display:flex;justify-content:center;align-items:center;gap:9px;margin:12px auto 4px;color:#493226}.countdown-couple span{font:italic 31px/1 Georgia,serif}.countdown-couple i{font:italic 22px Georgia,serif;color:#b18a4f}.countdown-date{position:relative;z-index:2;font:11px Arial,sans-serif;letter-spacing:.25em;color:#684b37;margin-top:10px;text-transform:uppercase}.countdown-divider-wide{position:relative;z-index:2;display:flex;align-items:center;gap:9px;justify-content:center;width:150px;margin:13px auto 18px;color:#b18a4f}.countdown-divider-wide span{height:1px;flex:1;background:rgba(177,138,79,.55)}.countdown-divider-wide i{font-style:normal;font-size:10px}
.sundanese-countdown .timer{position:relative;z-index:2;display:grid;grid-template-columns:repeat(2,1fr);gap:10px;max-width:330px;margin:0 auto}.sundanese-countdown .timer div{position:relative;border:1px solid rgba(177,138,79,.62);background:rgba(255,250,242,.74);padding:15px 8px 13px;border-radius:18px;box-shadow:0 8px 18px rgba(73,50,38,.08);overflow:visible}.sundanese-countdown .timer div:before{content:"";position:absolute;inset:4px;border:1px solid rgba(177,138,79,.2);border-radius:13px;pointer-events:none}.sundanese-countdown .timer div:after{content:"✦";position:absolute;left:50%;top:-7px;transform:translateX(-50%);font-size:10px;color:#9a7641;background:#f7f0e4;padding:0 5px}.sundanese-countdown .timer b{font:400 34px/1 Georgia,serif;color:#59664e;display:block;position:relative;z-index:1}.sundanese-countdown .timer span{display:block;position:relative;z-index:1;margin-top:7px;font:8px Arial,sans-serif;letter-spacing:.2em;text-transform:uppercase;color:#8b6f55}.countdown-landscape{position:relative;z-index:1;height:190px;margin:26px -18px 0;overflow:hidden;opacity:.62}.cd-mountain{position:absolute;bottom:34px;width:260px;height:150px;border-radius:50% 50% 0 0;border-top:1px solid rgba(89,102,78,.3);background:linear-gradient(150deg,transparent 45%,rgba(89,102,78,.15) 46% 53%,transparent 54%)}.cd-mountain-a{left:-85px;transform:rotate(-6deg)}.cd-mountain-b{right:-85px;transform:scaleX(-1) rotate(-6deg)}.cd-field{position:absolute;left:-15%;right:-15%;bottom:0;height:95px;background:linear-gradient(180deg,transparent 0 22%,rgba(89,102,78,.08) 23% 24%,transparent 25% 38%,rgba(89,102,78,.1) 39% 40%,transparent 41%),linear-gradient(175deg,transparent 45%,rgba(89,102,78,.12) 46% 52%,transparent 53%);border-radius:50% 50% 0 0}.cd-river{position:absolute;left:45%;bottom:-8px;width:70px;height:130px;border-left:1px solid rgba(177,138,79,.45);border-right:1px solid rgba(177,138,79,.35);transform:rotate(10deg);border-radius:50%}.cd-roof{position:absolute;left:50%;bottom:24px;transform:translateX(-50%);width:110px;height:55px}.cd-roof:before,.cd-roof:after{content:"";position:absolute;bottom:10px;width:70px;height:38px;border-top:2px solid rgba(154,118,65,.75);border-radius:70% 0 0 0}.cd-roof:before{left:0;transform:skewY(-24deg)}.cd-roof:after{right:0;transform:skewY(24deg) scaleX(-1)}.cd-roof span{position:absolute;left:50%;bottom:5px;width:2px;height:42px;background:rgba(154,118,65,.75);transform:translateX(-50%)}
@media(max-width:380px){.sundanese-countdown{padding-left:14px;padding-right:14px}.countdown-head h2{font-size:30px}.countdown-couple span{font-size:28px}.sundanese-countdown .timer{gap:8px}.sundanese-countdown .timer b{font-size:31px}.countdown-landscape{margin-left:-14px;margin-right:-14px}}

/* Traditional Sunda Love Story */
.sundanese-story{background:linear-gradient(180deg,#f7f0e4 0%,#f3eadc 100%);overflow:hidden;text-align:center;padding-bottom:100px}
.story-top-ornament{width:140px;height:50px;margin:0 auto 2px;color:var(--gold);opacity:.95}
.story-top-ornament svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.story-top-ornament .bud{fill:currentColor;stroke:none}
.story-side-pattern{position:absolute;top:150px;width:90px;height:310px;opacity:.18;pointer-events:none}.story-side-left{left:-35px;border-radius:60% 0 60% 0;background:radial-gradient(ellipse at 55% 20%,transparent 0 26%,var(--green) 27% 29%,transparent 30%),radial-gradient(ellipse at 35% 50%,transparent 0 25%,var(--gold) 26% 28%,transparent 29%),radial-gradient(ellipse at 60% 78%,transparent 0 25%,var(--green) 26% 28%,transparent 29%);transform:rotate(-18deg)}.story-side-right{right:-35px;transform:scaleX(-1) rotate(-18deg)}
.story-head{position:relative;z-index:2;margin-bottom:12px}.story-head h2{font-size:32px}.story-head p{font-family:Georgia,"Times New Roman",serif;font-size:12px;letter-spacing:.04em}.story-divider{display:flex;align-items:center;justify-content:center;gap:10px;color:var(--gold);margin-top:14px}.story-divider:before,.story-divider:after{content:"";width:38px;height:1px;background:var(--gold)}.story-divider i{font-style:normal;font-size:12px}
.story-intro{position:relative;z-index:2;max-width:340px;margin:0 auto 30px;font:12px/1.8 Arial,sans-serif;color:var(--brown2)}
.story-timeline{position:relative;max-width:390px;margin:0 auto;text-align:center}.story-timeline:before{content:"";position:absolute;top:0;bottom:20px;left:50%;width:1px;background:linear-gradient(var(--gold),rgba(177,138,79,.18));transform:translateX(-50%)}
.story-item{position:relative;padding:0 0 42px;border:0}.story-marker{position:relative;z-index:3;width:32px;height:32px;margin:0 auto 14px;border:1px solid var(--gold);border-radius:50%;background:var(--ivory);display:grid;place-items:center;color:var(--green);font:9px Arial,sans-serif;letter-spacing:.1em;box-shadow:0 0 0 6px #f3eadc}.story-photo-wrap{position:relative;width:88%;max-width:320px;aspect-ratio:1/1;margin:0 auto 18px;border:1px solid rgba(177,138,79,.55);border-radius:24px;padding:7px;background:#fffaf2;box-shadow:0 14px 28px #49322612;overflow:hidden}.story-photo{width:100%;height:100%;display:block;object-fit:cover;border-radius:18px}.story-photo-corner{position:absolute;width:28px;height:28px;border-color:var(--gold);opacity:.8}.story-photo-corner.tl{left:2px;top:2px;border-top:1px solid;border-left:1px solid;border-radius:18px 0 0 0}.story-photo-corner.tr{right:2px;top:2px;border-top:1px solid;border-right:1px solid;border-radius:0 18px 0 0}.story-photo-corner.bl{left:2px;bottom:2px;border-bottom:1px solid;border-left:1px solid;border-radius:0 0 0 18px}.story-photo-corner.br{right:2px;bottom:2px;border-bottom:1px solid;border-right:1px solid;border-radius:0 0 18px 0}.story-photo-placeholder{display:grid;place-items:center;background:linear-gradient(145deg,#efe2ce,#e4d4bd)}.story-photo-placeholder-mark{font-size:38px;color:var(--gold)}
.story-copy{position:relative;z-index:2;padding:0 12px}.story-copy small{display:inline-block;color:var(--terracotta);font:10px Arial,sans-serif;letter-spacing:.2em;text-transform:uppercase}.story-copy h3{font-size:24px;font-weight:400;margin:7px 0;color:var(--brown)}.story-copy-divider{color:var(--gold);font-size:14px;margin:2px 0 7px}.story-copy p{max-width:340px;margin:0 auto;font:13px/1.85 Arial,sans-serif;color:var(--brown2)}
.story-landscape{position:absolute;left:0;right:0;bottom:0;height:145px;overflow:hidden;pointer-events:none;opacity:.35}.story-mountain{position:absolute;bottom:12px;width:240px;height:110px;background:linear-gradient(135deg,transparent 48%,var(--green) 49% 52%,transparent 53%);filter:blur(.2px)}.sm-a{left:-30px;transform:rotate(-2deg)}.sm-b{right:-40px;transform:scaleX(-1) rotate(-3deg)}.story-field{position:absolute;bottom:0;left:0;right:0;height:42px;background:linear-gradient(170deg,transparent 45%,#8f9b76 46% 48%,transparent 49%);opacity:.7}.story-roof{position:absolute;bottom:16px;left:50%;width:92px;height:42px;transform:translateX(-50%);border-top:2px solid var(--brown2)}.story-roof:before,.story-roof:after{content:"";position:absolute;top:-2px;width:55px;height:24px;border-top:2px solid var(--brown2)}.story-roof:before{right:50%;transform:skewY(22deg);transform-origin:right top}.story-roof:after{left:50%;transform:skewY(-22deg);transform-origin:left top}.story-roof span{position:absolute;left:50%;top:10px;width:30px;height:30px;border-left:1px solid var(--brown2);border-right:1px solid var(--brown2);transform:translateX(-50%)}

/* Rona Kenangan — Simple 01 Traditional Sunda */
.sundanese-gallery{position:relative;overflow:hidden;background:
  radial-gradient(circle at 12% 18%,rgba(177,138,79,.10) 0 2px,transparent 3px),
  radial-gradient(circle at 88% 42%,rgba(88,111,82,.08) 0 2px,transparent 3px),
  linear-gradient(180deg,#fbf6ec 0%,#f5eee1 100%);
}
.gallery-top-ornament{width:150px;margin:0 auto 8px;color:#b18a4f;opacity:.82}
.gallery-top-ornament svg{display:block;width:100%;height:auto;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.gallery-top-ornament .bud{fill:#b18a4f;stroke:none}
.gallery-head{position:relative;z-index:2}
.gallery-head h2{color:#4a382c}
.gallery-head p{color:#6d665d}
.gallery-divider{margin:12px auto 18px;color:#b18a4f;font-size:13px;letter-spacing:5px}
.gallery-grid{position:relative;z-index:2;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0 14px}
.gallery-item{margin:0;min-width:0}
.gallery-photo{position:relative;aspect-ratio:4/5;overflow:hidden;border-radius:16px;background:#e8dfd1;border:1px solid rgba(177,138,79,.52);box-shadow:0 8px 22px rgba(68,52,40,.10)}
.gallery-photo img{display:block;width:100%;height:100%;object-fit:cover}
.gallery-placeholder{width:100%;height:100%;display:grid;place-items:center;color:#9d7b48;font-size:28px;background:linear-gradient(145deg,#eee5d7,#e2d7c5)}
.gallery-corner{position:absolute;width:17px;height:17px;pointer-events:none;opacity:.85}
.gallery-corner:before,.gallery-corner:after{content:"";position:absolute;background:#b18a4f}
.gallery-corner:before{height:1px;width:100%;top:0}
.gallery-corner:after{width:1px;height:100%;left:0}
.gc-tl{top:7px;left:7px}.gc-br{right:7px;bottom:7px;transform:rotate(180deg)}
.gallery-item figcaption{margin:7px 3px 0;text-align:center;font-size:11px;color:#665b50;font-style:italic}
.gallery-leaf{position:absolute;width:120px;height:220px;opacity:.13;pointer-events:none;background:
 radial-gradient(ellipse at 50% 8%,#586f52 0 9px,transparent 10px),
 radial-gradient(ellipse at 35% 25%,#586f52 0 8px,transparent 9px),
 radial-gradient(ellipse at 68% 42%,#586f52 0 9px,transparent 10px),
 radial-gradient(ellipse at 40% 62%,#586f52 0 8px,transparent 9px)}
.gallery-leaf-left{left:-65px;top:150px;transform:rotate(-18deg)}.gallery-leaf-right{right:-65px;top:390px;transform:scaleX(-1) rotate(-18deg)}
.gallery-landscape{position:relative;height:105px;margin-top:18px;overflow:hidden;opacity:.42}
.gallery-mountain{position:absolute;bottom:25px;width:170px;height:65px;border-radius:55% 55% 0 0/90% 90% 0 0;background:#91a08b}
.gm-a{left:-25px;transform:skewX(-15deg)}.gm-b{right:-30px;bottom:18px;background:#778874;transform:skewX(15deg)}
.gallery-field{position:absolute;left:-5%;right:-5%;bottom:-28px;height:70px;border-radius:50% 50% 0 0;background:#9aa587}
.gallery-roof{position:absolute;left:50%;bottom:25px;width:76px;height:30px;transform:translateX(-50%);border-top:3px solid #66533f}
.gallery-roof:before,.gallery-roof:after{content:"";position:absolute;top:-2px;width:46px;height:3px;background:#66533f}
.gallery-roof:before{left:-7px;transform:rotate(25deg)}.gallery-roof:after{right:-7px;transform:rotate(-25deg)}

/* Rona Kenangan v18 — stronger Sundanese character, still restrained */
.sundanese-gallery{background:
  radial-gradient(ellipse at 0% 0%,rgba(76,96,68,.20) 0 13%,transparent 13.5%),
  radial-gradient(ellipse at 100% 100%,rgba(76,96,68,.18) 0 15%,transparent 15.5%),
  repeating-linear-gradient(135deg,rgba(177,138,79,.035) 0 2px,transparent 2px 12px),
  linear-gradient(180deg,#fbf6ec 0%,#f4ecde 100%);
  border-top:1px solid rgba(177,138,79,.28);
  border-bottom:1px solid rgba(177,138,79,.28);
}
.sundanese-gallery:before,.sundanese-gallery:after{content:"";position:absolute;top:0;bottom:0;width:20px;pointer-events:none;opacity:.72;background:
  linear-gradient(180deg,transparent 0 7%,rgba(88,111,82,.22) 7.2% 7.6%,transparent 7.8% 92%,rgba(88,111,82,.22) 92.2% 92.6%,transparent 92.8%),
  repeating-linear-gradient(160deg,transparent 0 22px,rgba(177,138,79,.18) 23px 24px,transparent 25px 44px);
}
.sundanese-gallery:before{left:0;border-right:1px solid rgba(177,138,79,.22)}
.sundanese-gallery:after{right:0;transform:scaleX(-1);border-right:1px solid rgba(177,138,79,.22)}
.gallery-grid{max-width:390px;margin:0 auto;padding:0 18px;gap:13px 12px}
.gallery-item{position:relative}
.gallery-item:before{content:"";position:absolute;inset:-3px;pointer-events:none;border:1px solid rgba(88,111,82,.22);border-radius:19px;clip-path:polygon(0 0,28px 0,28px 3px,3px 3px,3px 28px,0 28px,0 0,100% 0,100% 28px,97% 28px,97% 3px,72px 3px,72px 0,100% 0,100% 100%,72px 100%,72px 97%,97% 97%,97% 72px,100% 72px,100% 100%,0 100%,0 72px,3px 72px,3px 97%,28px 97%,28px 100%,0 100%);opacity:.9}
.gallery-photo{border:1px solid rgba(177,138,79,.75);border-radius:18px;padding:4px;background:linear-gradient(145deg,#fffaf1,#efe2cf);box-shadow:0 9px 20px rgba(68,52,40,.11),inset 0 0 0 1px rgba(88,111,82,.14)}
.gallery-photo img,.gallery-placeholder{border-radius:14px}
.gallery-corner{width:21px;height:21px}
.gallery-corner:before,.gallery-corner:after{background:#596b4f}
.gc-tl{top:6px;left:6px}.gc-br{right:6px;bottom:6px}
.gallery-divider{position:relative;display:flex;align-items:center;justify-content:center;gap:10px}
.gallery-divider:before,.gallery-divider:after{content:"";width:44px;height:1px;background:linear-gradient(90deg,transparent,#b18a4f)}
.gallery-divider:after{background:linear-gradient(90deg,#b18a4f,transparent)}
.gallery-divider i{display:grid;place-items:center;width:18px;height:18px;border:1px solid #b18a4f;color:#596b4f;transform:rotate(45deg);font-size:8px;letter-spacing:0}
.gallery-divider i::first-letter{transform:rotate(-45deg)}
.gallery-landscape{height:120px;margin-top:24px;opacity:.48}
.gallery-head h2{letter-spacing:.01em}
.gallery-head p{max-width:290px;margin-left:auto;margin-right:auto;line-height:1.7}

/* Traditional Sunda RSVP + Ucapan & Doa v19 */
.sundanese-rsvp{background:linear-gradient(180deg,#f4eadb 0%,#f8f1e5 50%,#eee3d1 100%);overflow:hidden;padding:68px 18px 38px;position:relative}
.sundanese-rsvp:before{content:"";position:absolute;inset:12px;border:1px solid rgba(177,138,79,.26);border-radius:30px;pointer-events:none}
.sundanese-rsvp:after{content:"";position:absolute;left:18px;right:18px;top:22px;bottom:22px;border:1px solid rgba(89,102,78,.10);border-radius:24px;pointer-events:none}
.rsvp-top-ornament{width:145px;height:50px;margin:0 auto 4px;color:#9a7641;position:relative;z-index:2}.rsvp-top-ornament svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.rsvp-top-ornament .bud{fill:currentColor;stroke:none}
.rsvp-head{position:relative;z-index:2;margin-bottom:14px}.rsvp-head>span{color:#8c6940}.rsvp-head h2{color:#493226;font-size:31px;margin:5px 0 8px}.rsvp-head p{color:#684b37;max-width:320px}.rsvp-divider{display:flex;align-items:center;justify-content:center;gap:9px;margin:13px auto 0;width:130px}.rsvp-divider:before,.rsvp-divider:after{content:"";height:1px;flex:1;background:rgba(177,138,79,.55)}.rsvp-divider i{font-style:normal;color:#59664e;font-size:11px}
.rsvp-quote{position:relative;z-index:2;max-width:330px;margin:0 auto 18px;text-align:center;color:#6b503c;font-size:12px;line-height:1.8;font-style:italic}
.rsvp-stats{position:relative;z-index:2;display:grid;grid-template-columns:repeat(3,1fr);gap:7px;max-width:355px;margin:0 auto 16px}.rsvp-stats>div{background:rgba(255,250,242,.78);border:1px solid rgba(177,138,79,.42);border-radius:15px;padding:11px 4px;box-shadow:0 7px 16px rgba(73,50,38,.06)}.rsvp-stats strong{display:block;color:#59664e;font:24px Georgia,serif}.rsvp-stats span{display:block;margin-top:3px;color:#8f7358;font:7px Arial,sans-serif;letter-spacing:.14em}
.sunda-form{position:relative;z-index:2;max-width:355px;margin:0 auto;display:grid;gap:7px}.sunda-form label{margin:5px 0 0;color:#765a44;font:8px Arial,sans-serif;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.sunda-form input,.sunda-form select,.sunda-form textarea{width:100%;border:1px solid rgba(177,138,79,.36);background:rgba(255,250,242,.88);border-radius:12px;padding:11px 12px;color:#493226;outline:none;font:12px Georgia,serif}.sunda-form textarea{resize:vertical;line-height:1.6}.sunda-form input:focus,.sunda-form select:focus,.sunda-form textarea:focus{border-color:#9a7641;box-shadow:0 0 0 2px rgba(177,138,79,.08)}.sunda-form .primary-btn{width:auto;display:table;margin:8px auto 0;padding:7px 14px;background:#59664e;color:#fff9ed;border:1px solid #9b7b48;border-radius:999px;font-size:8px;letter-spacing:.08em;box-shadow:0 5px 12px rgba(63,75,57,.12);cursor:pointer}.message-form .outline-btn{width:auto;display:table;margin:7px auto 0;padding:7px 14px;background:#59664e;color:#fff9ed;border:1px solid #9b7b48;border-radius:999px;font-size:8px;letter-spacing:.08em;box-shadow:0 5px 12px rgba(63,75,57,.12);cursor:pointer}
.message-area{position:relative;z-index:2;max-width:355px;margin:34px auto 0;padding-top:23px;border-top:1px solid rgba(177,138,79,.34)}.message-head{text-align:center}.section-mini-ornament{color:#9a7641;font-size:20px;margin-bottom:4px}.message-head h3{margin:0;color:#493226;font:25px Georgia,serif;font-weight:400}.message-head p{margin:7px auto 15px;max-width:300px;color:#765a44;font:11px/1.7 Georgia,serif}
.message-list{margin-top:18px;display:grid;gap:9px}.message-card{background:rgba(255,250,242,.82);border:1px solid rgba(177,138,79,.30);border-radius:14px;padding:12px 13px;box-shadow:0 5px 14px rgba(73,50,38,.05)}.message-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.message-card-head strong{font:13px Georgia,serif;color:#493226}.message-card-head small{font:8px Arial,sans-serif;color:#9b856e}.message-card p{margin:6px 0 0;color:#684b37;font:11px/1.7 Georgia,serif}.message-empty{text-align:center;padding:15px;border:1px dashed rgba(177,138,79,.35);border-radius:13px;color:#9b856e;font:10px/1.6 Arial,sans-serif;background:#fffaf255}.message-pagination{display:flex;justify-content:center;gap:5px;margin-top:12px}.message-page{min-width:27px;height:27px;border:1px solid rgba(177,138,79,.35);border-radius:50%;background:#fffaf2;color:#59664e;font:10px Arial,sans-serif}.message-page.active{background:#59664e;color:#fff9ed;border-color:#59664e}
.rsvp-bottom-landscape{position:relative;z-index:1;height:105px;margin:8px -18px -38px;overflow:hidden;opacity:.42}.rsvp-mountain{position:absolute;bottom:-52px;width:240px;height:120px;border-radius:50% 50% 0 0;border-top:1px solid rgba(89,102,78,.32);background:linear-gradient(150deg,transparent 46%,rgba(89,102,78,.14) 47% 51%,transparent 52%)}.rm-a{left:-45px;transform:rotate(-5deg)}.rm-b{right:-45px;transform:scaleX(-1) rotate(-5deg)}.rsvp-field{position:absolute;left:20%;right:20%;bottom:-30px;height:70px;border-top:1px solid rgba(177,138,79,.22);border-radius:50%}
.rsvp-leaf{position:absolute;width:115px;height:210px;opacity:.15;pointer-events:none;background:repeating-linear-gradient(145deg,transparent 0 17px,rgba(89,102,78,.8) 18px 20px,transparent 21px 34px);border-radius:70% 20% 70% 20%}.rsvp-leaf-left{left:-72px;top:150px;transform:rotate(-22deg)}.rsvp-leaf-right{right:-72px;top:470px;transform:scaleX(-1) rotate(-22deg)}

/* Tanda Kasih — Traditional Sunda */
.sundanese-gift{position:relative;overflow:hidden;text-align:center;background:linear-gradient(180deg,#f7f0e4 0%,#f3eadb 100%);}
.sundanese-gift:before{content:"";position:absolute;inset:16px;border:1px solid rgba(177,138,79,.38);border-radius:28px;pointer-events:none;}
.gift-head{position:relative;z-index:2;max-width:620px;margin:0 auto 22px;padding-top:8px;}
.gift-head h2{font-family:Georgia,serif;color:#4b3a28;margin:7px 0 8px;font-size:clamp(30px,7vw,42px);font-weight:500;}
.gift-head>span{display:block;font:11px Arial,sans-serif;letter-spacing:.28em;color:#7b6b53;margin-bottom:6px;}
.gift-divider{display:flex;align-items:center;justify-content:center;gap:12px;color:#b18a4f;margin:10px auto 13px;}
.gift-divider:before,.gift-divider:after{content:"";width:70px;height:1px;background:linear-gradient(90deg,transparent,#b18a4f);}
.gift-divider:after{background:linear-gradient(90deg,#b18a4f,transparent);}
.gift-divider i{font-style:normal;font-size:13px;}
.gift-head p{margin:0 auto;color:#665846;line-height:1.8;max-width:440px;font-size:13px;}
.gift-bank-list{position:relative;z-index:2;display:grid;gap:14px;max-width:430px;margin:0 auto;padding:0 18px;}
.gift-bank-card{position:relative;text-align:left;min-height:126px;padding:18px 20px 15px;border:1px solid #b18a4f;border-radius:19px;background:linear-gradient(135deg,#53614a,#344334);box-shadow:0 9px 22px rgba(69,53,34,.12);color:#f8f0df;overflow:hidden;}
.gift-bank-card:before{content:"";position:absolute;width:150px;height:150px;border:1px solid rgba(230,203,148,.24);border-radius:50%;right:-65px;top:-75px;}
.gift-bank-card:after{content:"";position:absolute;inset:8px;border:1px solid rgba(230,203,148,.18);border-radius:13px;pointer-events:none;}
.gift-bank-top,.gift-bank-bottom,.gift-bank-number{position:relative;z-index:1;}
.gift-bank-top{display:flex;justify-content:space-between;align-items:center;font:11px Arial,sans-serif;letter-spacing:.18em;text-transform:uppercase;color:#e5cf9e;}
.gift-bank-top b{font-size:14px;font-weight:400;color:#e5cf9e;}
.gift-bank-number{font-family:Georgia,serif;font-size:21px;letter-spacing:.11em;margin:17px 0 12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.gift-bank-bottom{display:flex;justify-content:space-between;align-items:center;gap:10px;}
.gift-bank-bottom small{font:10px Arial,sans-serif;letter-spacing:.08em;color:#efe5cf;text-transform:uppercase;}
.gift-copy-btn{border:1px solid #d6b873;background:transparent;color:#f8f0df;border-radius:999px;padding:6px 11px;font:10px Arial,sans-serif;letter-spacing:.1em;cursor:pointer;}
.gift-copy-btn:hover{background:#d6b873;color:#3d3328;}
.gift-send-card{position:relative;z-index:2;max-width:430px;margin:26px auto 0;padding:24px 22px 22px;border:1px solid rgba(177,138,79,.65);border-radius:22px;background:rgba(255,250,242,.86);box-shadow:0 8px 22px rgba(69,53,34,.08);}
.gift-send-ornament{color:#b18a4f;font-size:20px;margin-bottom:5px;}
.gift-send-card h3{margin:0 0 8px;font:500 25px Georgia,serif;color:#4b3a28;}
.gift-send-card p{margin:0 auto 15px;max-width:340px;color:#665846;font-size:12px;line-height:1.8;}
.gift-address{display:grid;gap:5px;margin:12px auto 17px;padding:13px 14px;border:1px solid rgba(177,138,79,.35);border-radius:14px;background:#fbf6ec;}
.gift-address strong{font:600 13px Georgia,serif;color:#4b3a28;}
.gift-address span{font-size:11px;line-height:1.6;color:#6d604f;}
.gift-map-btn{display:inline-flex;align-items:center;justify-content:center;min-width:118px;padding:9px 15px;border-radius:999px;border:1px solid #b18a4f;background:#687b63;color:#fff9ee;text-decoration:none;font:600 10px Arial,sans-serif;letter-spacing:.1em;box-shadow:0 5px 12px rgba(69,53,34,.12);}
.gift-closing{position:relative;z-index:2;max-width:420px;margin:22px auto 5px;padding:0 25px;color:#665846;font:italic 13px/1.8 Georgia,serif;}
.gift-bottom-ornament{position:relative;z-index:2;color:#b18a4f;margin-top:10px;font-size:19px;}
.gift-leaf{position:absolute;width:115px;height:190px;opacity:.16;pointer-events:none;background:radial-gradient(ellipse at 30% 20%,#687b63 0 8%,transparent 9%),radial-gradient(ellipse at 65% 45%,#687b63 0 9%,transparent 10%),radial-gradient(ellipse at 30% 72%,#687b63 0 8%,transparent 9%);filter:blur(.2px);}
.gift-leaf-left{left:-52px;bottom:70px;transform:rotate(-18deg);}.gift-leaf-right{right:-52px;top:90px;transform:rotate(18deg);}
.gift-top-ornament{position:relative;z-index:2;color:#b18a4f;font-size:19px;margin-bottom:2px;}
@media(max-width:380px){.gift-bank-number{font-size:18px}.gift-bank-card{padding-left:16px;padding-right:16px}.gift-bank-list{padding:0 14px}}

.sundanese-closing:has(.closing-bg-photo[style*="background-image"]) .kicker,.sundanese-closing:has(.closing-bg-photo[style*="background-image"]) .closing-date,.sundanese-closing:has(.closing-bg-photo[style*="background-image"]) .closing-sundanese{color:#f5eddd}.sundanese-closing:has(.closing-bg-photo[style*="background-image"]) h2,.sundanese-closing:has(.closing-bg-photo[style*="background-image"]) .closing-message,.sundanese-closing:has(.closing-bg-photo[style*="background-image"]) .closing-names,.sundanese-closing:has(.closing-bg-photo[style*="background-image"]) .closing-final{color:#fffaf2}.sundanese-closing:has(.closing-bg-photo[style*="background-image"]) .footer{color:#f5eddd;border-color:rgba(245,237,221,.3)}.sundanese-closing:has(.closing-bg-photo[style*="background-image"]) .footer a{color:#fffaf2;border-color:rgba(245,237,221,.5)}


/* =========================================================
   v26 — SUNDA LANDSCAPE PAGE CONNECTORS
   ========================================================= */
.sunda-page-connector{height:42px;position:relative;z-index:10;background:var(--ivory);overflow:hidden;display:flex;align-items:center;justify-content:center;pointer-events:none}
.sunda-page-connector:before{content:"";position:absolute;left:7%;right:7%;top:21px;height:1px;background:linear-gradient(90deg,transparent,rgba(177,138,79,.42) 20%,rgba(89,102,78,.34) 50%,rgba(177,138,79,.42) 80%,transparent)}
.sunda-page-connector:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:25px;background:linear-gradient(160deg,transparent 45%,rgba(89,102,78,.11) 46% 50%,transparent 51%),linear-gradient(20deg,transparent 47%,rgba(89,102,78,.08) 48% 52%,transparent 53%);clip-path:polygon(0 100%,0 68%,10% 54%,18% 69%,29% 47%,39% 67%,51% 43%,63% 68%,74% 50%,84% 70%,94% 55%,100% 67%,100% 100%)}
.connector-mountain{position:absolute;bottom:6px;width:155px;height:26px;border-top:1px solid rgba(89,102,78,.35);border-radius:50% 50% 0 0;opacity:.75}
.connector-mountain:before,.connector-mountain:after{content:"";position:absolute;bottom:0;width:72px;height:21px;border-top:1px solid rgba(89,102,78,.28);border-radius:50% 50% 0 0}
.connector-mountain:before{left:-30px;transform:rotate(-8deg)}.connector-mountain:after{right:-30px;transform:scaleX(-1) rotate(-8deg)}
.connector-sulur{position:relative;z-index:3;background:var(--ivory);padding:0 10px;color:var(--gold);font:18px Georgia,serif;transform:translateY(-1px)}
.connector-line{position:absolute;width:6px;height:6px;border:1px solid rgba(177,138,79,.65);transform:rotate(45deg);background:var(--ivory);z-index:3}

/* Countdown: the section is intentionally the strongest sage-green pause in the story. */
.sundanese-countdown{background:linear-gradient(180deg,#65745c 0%,#59684f 48%,#485741 100%) !important;color:#fffaf0 !important;min-height:680px}
.sundanese-countdown:before{border-color:rgba(225,207,162,.34)}
.sundanese-countdown .countdown-frame{border-color:rgba(236,224,196,.18)}
.sundanese-countdown .countdown-head>span{color:#e0c58b}
.sundanese-countdown .countdown-head h2{color:#fffaf0}
.sundanese-countdown .countdown-head p{color:#f1e6d3 !important}
.sundanese-countdown .countdown-divider:before,.sundanese-countdown .countdown-divider:after{background:rgba(226,199,137,.6)}
.sundanese-countdown .countdown-date{color:#ead9b8}
.sundanese-countdown .countdown-couple{color:#fffaf0}
.sundanese-countdown .countdown-couple i{color:#e0bd73}
.sundanese-countdown .countdown-divider-wide span{background:rgba(226,199,137,.55)}
.sundanese-countdown .timer div{background:rgba(247,240,228,.94);border-color:rgba(224,197,139,.82);box-shadow:0 10px 22px rgba(31,43,30,.20)}
.sundanese-countdown .timer div:before{border-color:rgba(177,138,79,.25)}
.sundanese-countdown .timer div:after{background:#59684f;color:#f1dca9}
.sundanese-countdown .timer b{color:#53634d}
.sundanese-countdown .timer span{color:#78634d}
.sundanese-countdown .countdown-landscape{opacity:.82}
.sundanese-countdown .cd-mountain{border-top-color:rgba(238,228,204,.34);background:linear-gradient(150deg,transparent 45%,rgba(233,224,202,.12) 46% 53%,transparent 54%)}
.sundanese-countdown .cd-field{background:linear-gradient(180deg,transparent 0 22%,rgba(239,229,207,.11) 23% 24%,transparent 25% 38%,rgba(239,229,207,.13) 39% 40%,transparent 41%),linear-gradient(175deg,transparent 45%,rgba(239,229,207,.15) 46% 52%,transparent 53%)}
.sundanese-countdown .cd-roof:before,.sundanese-countdown .cd-roof:after{border-top-color:rgba(226,199,137,.72)}
.sundanese-countdown .cd-roof span{background:rgba(226,199,137,.72)}

/* Cover photo treatment: photo first, warm Sunda overlay second. */
.hero.has-cover-photo{background-position:center;background-size:cover;background-repeat:no-repeat}
.hero.has-cover-photo:after{border-color:rgba(255,250,242,.18)}

/* Closing photo treatment: no photo = dark sage heritage fallback; uploaded photo fills the page. */
.sundanese-closing{background:linear-gradient(180deg,#53624d 0%,#485741 65%,#374334 100%) !important;color:#fffaf2}
.sundanese-closing .closing-bg-photo{display:none;background-position:center;background-size:cover;background-repeat:no-repeat;filter:saturate(.78) contrast(.98)}
.sundanese-closing .closing-bg-overlay{background:linear-gradient(180deg,rgba(42,38,30,.48),rgba(48,54,41,.42) 52%,rgba(28,39,31,.70))}
.sundanese-closing .sundanese-closing,.sundanese-closing .kicker{color:#e5d3a8}
.sundanese-closing h2,.sundanese-closing .closing-message,.sundanese-closing .closing-names,.sundanese-closing .closing-final{color:#fffaf2}
.sundanese-closing .closing-date,.sundanese-closing .closing-sundanese{color:#e5d3a8}
.sundanese-closing .footer{color:#eee2cc;border-color:rgba(238,226,204,.28)}
.sundanese-closing .footer a{color:#fffaf2;border-color:rgba(255,250,242,.4)}
.sundanese-closing.has-closing-photo .closing-bg-photo{display:block}
.sundanese-closing.has-closing-photo .closing-bg-overlay{background:linear-gradient(180deg,rgba(48,38,28,.55),rgba(50,56,42,.42) 50%,rgba(25,34,28,.70))}

/* Keep the closing as a full visual chapter rather than a photo card. */
.sundanese-closing .closing-photo-wrap{display:none !important}

@media(max-width:380px){.sunda-page-connector{height:36px}.sundanese-countdown{min-height:650px}.sundanese-closing{min-height:100svh}}


/* Cover -> Opening transition: the same landscape motif starts the visual journey. */
.sunda-cover-connector{height:48px;position:relative;background:linear-gradient(180deg,#3f4b3b 0%,#59684f 38%,var(--ivory) 100%);overflow:hidden;display:flex;align-items:center;justify-content:center;z-index:9}
.sunda-cover-connector:before{content:"";position:absolute;left:0;right:0;bottom:0;height:25px;background:linear-gradient(160deg,transparent 44%,rgba(247,240,228,.32) 45% 49%,transparent 50%),linear-gradient(20deg,transparent 47%,rgba(247,240,228,.23) 48% 52%,transparent 53%);clip-path:polygon(0 100%,0 70%,12% 50%,23% 69%,35% 43%,48% 67%,60% 46%,73% 69%,86% 52%,100% 70%,100% 100%)}
.sunda-cover-connector span{position:absolute;bottom:10px;width:170px;height:24px;border-top:1px solid rgba(177,138,79,.55);border-radius:50% 50% 0 0}
.sunda-cover-connector span:before,.sunda-cover-connector span:after{content:"";position:absolute;bottom:0;width:76px;height:20px;border-top:1px solid rgba(177,138,79,.38);border-radius:50% 50% 0 0}.sunda-cover-connector span:before{left:-32px;transform:rotate(-8deg)}.sunda-cover-connector span:after{right:-32px;transform:scaleX(-1) rotate(-8deg)}
.sunda-cover-connector i{position:relative;z-index:2;background:#65745c;color:#e0c58b;font:18px Georgia,serif;font-style:normal;padding:0 11px;transform:translateY(-2px)}
.sunda-cover-connector b{position:absolute;width:6px;height:6px;border:1px solid rgba(177,138,79,.7);background:#65745c;transform:rotate(45deg);z-index:1}


/* V30 — Cover readability only. Preserve original layout/positioning. */
.hero.has-cover-photo .guest-box{
  background:rgba(55,53,43,.66);
  border-top-color:rgba(225,201,150,.55);
  border-bottom-color:rgba(225,201,150,.55);
  box-shadow:0 10px 26px rgba(28,28,23,.20);
}
.hero.has-cover-photo h1{
  text-shadow:0 2px 7px rgba(27,27,23,.58);
}
.hero.has-cover-photo .date,
.hero.has-cover-photo .hero-quote,
.hero.has-cover-photo .eyebrow{
  text-shadow:0 2px 6px rgba(27,27,23,.55);
}
.hero.has-cover-photo .hero-quote{color:#fffaf2;opacity:.96}


/* =========================================================
   V31 SCROLL REVEAL ANIMATIONS
   Deliberate, slow entrance so movement remains visible.
   ========================================================= */
.reveal{
  opacity:0;
  transform:translate3d(0,42px,0);
  filter:blur(7px);
  transition:
    opacity 1.05s cubic-bezier(.22,.61,.36,1),
    transform 1.15s cubic-bezier(.22,.61,.36,1),
    filter 1.15s cubic-bezier(.22,.61,.36,1);
  transition-delay:var(--reveal-delay,0ms);
  will-change:opacity,transform,filter;
}
.reveal.is-visible{
  opacity:1;
  transform:translate3d(0,0,0);
  filter:blur(0);
}
.reveal-left{transform:translate3d(-58px,18px,0) rotate(-.4deg)}
.reveal-right{transform:translate3d(58px,18px,0) rotate(.4deg)}
.reveal-up{transform:translate3d(0,54px,0)}
.reveal-down{transform:translate3d(0,-54px,0)}
.reveal-zoom{transform:translate3d(0,20px,0) scale(.90)}
.reveal-soft{transform:translate3d(0,26px,0);filter:blur(10px)}
.reveal.is-visible.reveal-left,
.reveal.is-visible.reveal-right,
.reveal.is-visible.reveal-up,
.reveal.is-visible.reveal-down,
.reveal.is-visible.reveal-zoom,
.reveal.is-visible.reveal-soft{
  transform:translate3d(0,0,0) rotate(0) scale(1);
}

/* Keep decorative SVG/ornaments subtle and secondary. */
[data-reveal-decoration]{
  opacity:0;
  transform:translateY(18px);
  transition:opacity 1.1s ease, transform 1.2s cubic-bezier(.22,.61,.36,1);
}
[data-reveal-decoration].is-visible{
  opacity:1;
  transform:translateY(0);
}

/* Music control */
.music-toggle{
  position:fixed;
  right:max(14px,calc((100vw - 520px)/2 + 14px));
  bottom:18px;
  z-index:1000;
  display:none;
  align-items:center;
  gap:7px;
  min-width:72px;
  height:38px;
  padding:0 13px;
  border:1px solid rgba(239,218,171,.65);
  border-radius:999px;
  background:rgba(63,75,57,.90);
  color:#fffaf2;
  box-shadow:0 8px 24px rgba(40,32,25,.22);
  backdrop-filter:blur(8px);
  cursor:pointer;
  font-size:11px;
  letter-spacing:.08em;
}
body.opened .music-toggle{display:flex}
.music-toggle .music-icon{
  display:inline-grid;
  place-items:center;
  width:18px;
  height:18px;
  border:1px solid rgba(255,250,242,.5);
  border-radius:50%;
  font-size:12px;
  line-height:1;
}
.music-toggle.playing .music-icon{
  animation:musicPulse 1.4s ease-in-out infinite;
}
@keyframes musicPulse{
  0%,100%{transform:scale(1);opacity:.75}
  50%{transform:scale(1.18);opacity:1}
}

@media (max-width:520px){
  .music-toggle{
    right:14px;
    bottom:14px;
  }
}
@media (prefers-reduced-motion:reduce){
  .reveal,[data-reveal-decoration]{
    transition:none!important;
    animation:none!important;
    filter:none!important;
    transform:none!important;
    opacity:1!important;
  }
}
