@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@400;500;600&family=Cormorant+Garamond:wght@400;500;600;700&family=Montserrat:wght@400;500;600&display=swap');
:root{--wine:#27030e;--wine2:#410916;--wine3:#681a2a;--gold:#d6b16b;--cream:#f6eee7;--line:rgba(214,177,107,.45)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#130108;color:var(--cream);font-family:Montserrat,sans-serif;font-size:13px;line-height:1.8;overflow-x:hidden}.cover,main,footer{width:100%;max-width:680px;margin:auto}.cover{min-height:100svh;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:50px 34px 70px;overflow:hidden;background:radial-gradient(ellipse at 50% 42%,rgba(112,20,46,.52),transparent 48%),linear-gradient(145deg,#160009,#420a19 52%,#21030d)}.cover:before,.cover:after{content:"";position:absolute;inset:22px 20px;border:1px solid rgba(193,94,119,.3);pointer-events:none}.cover:after{inset:38px 37px;border:1px solid rgba(214,177,107,.24);clip-path:polygon(50% 0,62% 7%,75% 4%,88% 14%,100% 25%,94% 36%,100% 50%,94% 64%,100% 75%,88% 86%,75% 96%,62% 93%,50% 100%,38% 93%,25% 96%,12% 86%,0 75%,6% 64%,0 50%,6% 36%,0 25%,12% 14%,25% 4%,38% 7%)}.cover>*{position:relative;z-index:1}.cover-flower{font:52px Cinzel;color:var(--gold);text-shadow:0 0 25px rgba(214,177,107,.6);animation:pulse 3s ease-in-out infinite}.eyebrow{font:10px Montserrat;letter-spacing:4px;color:#d8b985;margin:16px 0}.cover h1{font:500 49px Cinzel;letter-spacing:1px;color:var(--gold);margin:4px 0}.cover h1 i{font:34px Cormorant Garamond;color:#e7c985}.cover-date{font:14px Cinzel;letter-spacing:2px;color:#e3c890;margin:4px 0 140px}.guest{font:11px Cinzel;color:#e4c997}.guest strong{display:block;font:600 20px Cormorant Garamond;letter-spacing:1px;margin-top:6px}.open-btn,.outline-btn{border:1px solid var(--gold);border-radius:30px;background:linear-gradient(100deg,#420a19,#751b35,#420a19);background-size:200% auto;color:#ffe7b5;padding:13px 30px;font:11px Cinzel;letter-spacing:2px;text-transform:uppercase;text-decoration:none;cursor:pointer;box-shadow:0 0 0 4px rgba(52,112,190,.85),0 0 25px rgba(214,177,107,.25);transition:.35s;margin-top:20px}.open-btn:hover,.outline-btn:hover{background-position:right center;transform:translateY(-3px);box-shadow:0 0 0 4px rgba(52,112,190,.95),0 8px 30px rgba(214,177,107,.35)}.section{position:relative;padding:100px 30px;text-align:center;background:radial-gradient(ellipse at center,rgba(102,23,45,.38),transparent 68%),linear-gradient(160deg,#21030d,#3d0817 48%,#26030e);border-bottom:1px solid rgba(214,177,107,.15);overflow:hidden}.section:before{content:"✦  ❧  ✦";position:absolute;top:23px;left:0;right:0;color:rgba(214,177,107,.6);letter-spacing:10px;font-size:16px;opacity:.7}.section>*{position:relative;z-index:1}.section.reveal{opacity:0;transform:translateY(45px);transition:opacity .9s ease,transform .9s ease}.section.reveal.visible{opacity:1;transform:none}.hero{padding-top:115px}.section h2{font:500 39px Cormorant Garamond;line-height:1.05;margin:10px 0 24px;color:#fff0da}.hero h2 em{display:block;color:var(--gold);font:italic 25px Cormorant Garamond;margin-top:13px}.lead{max-width:550px;margin:auto;color:#ead6c4;font-size:13px}.ornament{color:var(--gold);letter-spacing:8px;margin:28px 0}.names{font:500 61px Cormorant Garamond;line-height:1;color:#fff1d9}.names span{color:var(--gold);font-size:42px}.muted{color:#d7b477;letter-spacing:4px}.quote{background:linear-gradient(135deg,#310713,#61172a);padding-left:48px;padding-right:48px}.quote p{font:italic 28px Cormorant Garamond;color:#fff1dc;margin:5px auto;max-width:560px}.quote small{color:var(--gold);letter-spacing:2px}.quote-mark{font:90px Cormorant Garamond!important;line-height:.4;color:var(--gold)!important}.couple-grid{display:flex;align-items:center;justify-content:center;gap:35px}.couple-grid article{max-width:230px}.avatar{width:115px;height:115px;border-radius:50%;display:grid;place-items:center;margin:auto;border:1px solid var(--gold);outline:5px solid rgba(214,177,107,.12);background:radial-gradient(circle,#77304a,#2b0410);font:60px Cormorant Garamond;color:var(--gold);animation:float 4s ease-in-out infinite}.avatar-dark{background:radial-gradient(circle,#974f5e,#2b0410);animation-delay:1s}.couple-grid h3,.event h3{font:500 31px Cormorant Garamond;color:#ffe1ad;margin:19px 0 7px}.couple-grid p,.event p{font-size:11px;color:#e1c8b2}.amp{font:55px Cormorant Garamond;color:var(--gold)}.countdown{display:flex;justify-content:center;gap:12px;margin:35px 0}.countdown div{min-width:68px;padding:7px 13px;border-right:1px solid var(--line)}.countdown div:last-child{border:0}.countdown b{display:block;font:38px Cinzel;color:var(--gold)}.countdown span{font-size:9px;letter-spacing:1px;color:#e4c3a4}.event{border:1px solid var(--line);padding:32px 23px;background:rgba(31,2,12,.35);box-shadow:inset 0 0 35px rgba(214,177,107,.04)}.event-icon{font-size:32px;color:var(--gold)}.outline-btn{display:inline-block;background:transparent;box-shadow:none}.gallery-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;max-width:480px;margin:auto}.photo{aspect-ratio:1;display:grid;place-items:center;border:1px solid var(--line);background:radial-gradient(circle,#771e38,#2c0410);color:var(--gold);font:38px Cormorant Garamond}.p2{background:radial-gradient(circle,#8f5264,#3c091a)}.p3{background:radial-gradient(circle,#5f3740,#1f020b)}.p4{background:radial-gradient(circle,#9a6a59,#3b0b19)}.rsvp form{display:grid;gap:12px;max-width:430px;margin:28px auto}.rsvp input,.rsvp select,.rsvp textarea{font:12px Montserrat;color:#ffe6c5;background:rgba(20,1,8,.5);border:1px solid var(--line);padding:14px}.rsvp option{color:#222}.success{color:var(--gold)}.music{position:fixed;z-index:5;right:max(18px,calc((100vw - 680px)/2 + 18px));top:18px;border:1px solid var(--gold);border-radius:50%;background:#320714;color:var(--gold);width:44px;height:44px;cursor:pointer;font-size:20px;display:none;animation:pulse 2.5s infinite}footer{background:linear-gradient(160deg,#170009,#5b1328);padding:50px 25px;text-align:center;color:#e4c4a2}footer b{font:29px Cormorant Garamond;color:var(--gold)}.cover.hidden{display:none}@keyframes pulse{0%,100%{transform:scale(1);filter:drop-shadow(0 0 0 transparent)}50%{transform:scale(1.08);filter:drop-shadow(0 0 14px rgba(214,177,107,.65))}}@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}@media(max-width:680px){.cover,.section,footer{max-width:none}.cover{padding-left:22px;padding-right:22px}.cover-date{margin-bottom:120px}.names{font-size:53px}.section{padding-left:21px;padding-right:21px}.quote{padding-left:24px;padding-right:24px}}
/* Motif Jawa/batik bergerak: pola simetris, ukiran dan kilau halus */
.cover:before{inset:0;border:0;opacity:.72;background-image:radial-gradient(ellipse at 10% 14%,transparent 0 54px,rgba(133,35,60,.72) 55px 58px,transparent 59px),radial-gradient(ellipse at 90% 14%,transparent 0 54px,rgba(133,35,60,.72) 55px 58px,transparent 59px),repeating-linear-gradient(45deg,transparent 0 16px,rgba(130,32,56,.26) 17px 19px,transparent 20px 34px),repeating-linear-gradient(-45deg,transparent 0 16px,rgba(130,32,56,.26) 17px 19px,transparent 20px 34px);background-size:220px 250px,220px 250px,76px 76px,76px 76px;background-position:left top,right top,center center,center center;background-repeat:no-repeat, no-repeat,repeat,repeat;animation:batikShift 18s ease-in-out infinite;mix-blend-mode:screen}.cover:after{inset:0;border:0;clip-path:none;background:radial-gradient(ellipse at 4% 18%,transparent 0 118px,rgba(146,39,67,.62) 119px 124px,transparent 125px),radial-gradient(ellipse at 96% 18%,transparent 0 118px,rgba(146,39,67,.62) 119px 124px,transparent 125px),linear-gradient(90deg,rgba(103,23,45,.75),transparent 16%,transparent 84%,rgba(103,23,45,.75));background-size:290px 560px,290px 560px,100% 100%;background-position:left top,right top,center; background-repeat:no-repeat;opacity:.9;animation:motifGlow 5s ease-in-out infinite alternate}.cover-flower{position:relative}.cover-flower:before,.cover-flower:after{content:"❧";position:absolute;top:8px;color:rgba(193,113,77,.78);font-size:38px;animation:vineSway 4s ease-in-out infinite}.cover-flower:before{right:58px;transform:rotate(-35deg)}.cover-flower:after{left:58px;transform:rotate(35deg);animation-delay:1.2s}@keyframes batikShift{0%,100%{background-position:left top,right top,center center,center center;transform:scale(1)}50%{background-position:left 8px,right -8px,center 12px,center -12px;transform:scale(1.025)}}@keyframes motifGlow{from{opacity:.55;filter:brightness(.85)}to{opacity:.95;filter:brightness(1.2)}}@keyframes vineSway{0%,100%{margin-top:0;opacity:.65}50%{margin-top:7px;opacity:1}}
.section.reveal{opacity:1;transform:none;animation:sectionRise .9s ease both;animation-delay:var(--delay,0ms)}@keyframes sectionRise{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
