:root{--cr:#A91B32;--cr-d:#7A0E1E;--bk:#1A1A1A;--gd:#D4AF37;--wh:#FFF;--cr-w:#FFF8F5;--txt:#4A4A4A;--serif:'Playfair Display',serif;--sans:'Poppins',sans-serif}
*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--sans);color:var(--txt);background:var(--cr-w);line-height:1.6;overflow-x:hidden}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
.w{max-width:1300px;margin:0 auto;padding:0 40px}.ws{max-width:950px;margin:0 auto;padding:0 40px}
.top{position:fixed;top:0;left:0;width:100%;background:rgba(255,255,255,.98);backdrop-filter:blur(8px);box-shadow:0 2px 16px rgba(169,27,50,.12);z-index:1000;transition:all .3s}
.top.scrolled{box-shadow:0 3px 22px rgba(169,27,50,.18)}.top-flex{display:flex;align-items:center;justify-content:space-between;height:90px}
.mark{display:flex;align-items:center;gap:6px;font-family:var(--serif);font-size:26px;font-weight:700;color:var(--cr-d);padding:12px 22px;border:2px solid var(--cr);background:linear-gradient(135deg,rgba(169,27,50,.08),rgba(212,175,55,.08))}
.mark span{display:inline-block}.plus{font-size:20px;color:var(--gd);font-weight:400}.mark.small{font-size:20px;padding:9px 17px}.mark.small .plus{font-size:16px}
.menu{display:flex;gap:35px}.link{font-size:13px;font-weight:600;color:var(--txt);text-decoration:none;letter-spacing:1.2px;text-transform:uppercase;transition:all .3s;position:relative;padding-bottom:3px}
.link::after{content:'';position:absolute;bottom:0;left:0;width:0;height:2px;background:var(--cr);transition:width .3s}.link:hover,.link.active{color:var(--cr-d)}.link:hover::after,.link.active::after{width:100%}
.tog{display:none;flex-direction:column;gap:5px;background:0 0;border:none;cursor:pointer;padding:6px}.tog span{width:25px;height:2px;background:var(--cr-d);transition:all .3s}
.tog.active span:nth-child(1){transform:rotate(45deg) translate(7px,7px)}.tog.active span:nth-child(2){opacity:0}.tog.active span:nth-child(3){transform:rotate(-45deg) translate(7px,-7px)}
.hero{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:115px 40px 78px}
.hero-img{position:absolute;top:0;left:0;width:100%;height:100%;background-size:cover;background-position:center;background-repeat:no-repeat;z-index:-2}
.hero-lay{position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(135deg,rgba(169,27,50,.92) 0%,rgba(122,14,30,.88) 50%,rgba(26,26,26,.85) 100%);z-index:-1}
.sparkles{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;pointer-events:none;z-index:0}
.spark{position:absolute;width:4px;height:4px;background:radial-gradient(circle,rgba(212,175,55,.9),rgba(255,255,255,.6));border-radius:50%;opacity:0;animation:sparkle 4s infinite ease-in-out}
.spark:nth-child(1){left:20%;top:20%;animation-delay:0s}.spark:nth-child(2){left:60%;top:40%;animation-delay:1.3s}.spark:nth-child(3){left:80%;top:60%;animation-delay:2.6s}
@keyframes sparkle{0%,100%{transform:scale(.5);opacity:0}50%{transform:scale(1.5);opacity:1}}
.hero-wrap{position:relative;z-index:1;text-align:center;color:var(--wh);max-width:900px}.tag{display:inline-block;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:2.2px;color:var(--wh);background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25);padding:9px 21px;border-radius:24px;margin-bottom:32px}
.title{font-family:var(--serif);font-size:94px;font-weight:700;line-height:1.1;margin-bottom:24px;display:flex;flex-direction:column;gap:9px}.n{display:block}
.amp{font-size:50px;opacity:.9;margin:9px 0}.desc{font-size:18px;font-weight:300;letter-spacing:.7px;margin-bottom:32px}
.info{display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:44px;font-size:15px}.inf{display:flex;align-items:center;gap:8px}.inf i{font-size:18px}.dot{opacity:.6}
.timer{display:flex;justify-content:center;gap:30px;margin-bottom:44px}.t{display:flex;flex-direction:column;align-items:center;gap:7px}
.tn{font-family:var(--serif);font-size:56px;font-weight:700;line-height:1;color:var(--wh);min-width:80px;padding:13px 16px;border:2px solid rgba(255,255,255,.35);background:rgba(255,255,255,.08);border-radius:8px}
.tl{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:1.6px}.nasi{display:flex;flex-direction:column;gap:6px;padding:21px 32px;border-top:1px solid rgba(255,255,255,.22);border-bottom:1px solid rgba(255,255,255,.22)}
.nasi-t{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:1.7px;opacity:.88}.nasi-nm{font-family:var(--serif);font-size:25px;font-weight:700}
section{padding:115px 40px;position:relative}.hd{text-align:center;margin-bottom:68px}.st{display:block;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:2.2px;color:var(--cr);margin-bottom:12px}
.h2{font-family:var(--serif);font-size:56px;font-weight:700;color:var(--bk);line-height:1.2;margin-bottom:18px}.line{width:92px;height:3px;background:linear-gradient(90deg,transparent,var(--gd),transparent);margin:0 auto}
.story{background:linear-gradient(180deg,var(--cr-w) 0%,#F9F5F2 100%)}.story-lay{display:grid;grid-template-columns:43% 1fr;gap:74px;align-items:center}
.pic-box{position:relative;padding:24px}.pic-box img{width:100%;height:auto;display:block;border-radius:6px;box-shadow:0 13px 42px rgba(169,27,50,.24)}
.box-d{position:absolute;left:50%;transform:translateX(-50%);width:80%;height:3px;background:linear-gradient(90deg,transparent,var(--gd),transparent)}.box-d.t{top:12px}.box-d.b{bottom:12px}
.story-tx{padding:20px 0}.story-tx p{font-size:16px;font-weight:300;line-height:1.8;margin-bottom:24px}.story-tx p:last-child{margin-bottom:0}
.couple{background:var(--wh)}.couple-flex{display:grid;grid-template-columns:repeat(2,1fr);gap:62px;max-width:1120px;margin:0 auto}
.person{display:flex;flex-direction:column;align-items:center;text-align:center;transition:transform .4s}.person:hover{transform:translateY(-12px)}
.person-img{margin-bottom:32px;position:relative}.frame-sq{position:relative;width:315px;height:395px;overflow:hidden;border-radius:6px;box-shadow:0 16px 48px rgba(169,27,50,.2);transition:all .4s}
.bride-sq{border:3px solid var(--cr)}.groom-sq{border:3px solid var(--gd)}.person:hover .frame-sq{box-shadow:0 23px 62px rgba(169,27,50,.32)}
.pimg{width:100%;height:100%;object-fit:cover;transition:transform .4s}.person:hover .pimg{transform:scale(1.06)}
.person-info{max-width:315px}.pn{font-family:var(--serif);font-size:37px;font-weight:700;color:var(--bk);margin-bottom:8px}
.pr{display:block;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:2.2px;color:var(--cr);margin-bottom:20px}
.pb{font-size:15px;font-weight:300;line-height:1.7}
.program{background:linear-gradient(180deg,#F9F5F2 0%,var(--cr-w) 100%)}.prog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px}
.card{background:var(--wh);border-radius:10px;overflow:hidden;box-shadow:0 8px 32px rgba(169,27,50,.14);transition:all .4s;display:flex;flex-direction:column}
.card:hover{transform:translateY(-8px);box-shadow:0 15px 48px rgba(169,27,50,.24)}.card-img{position:relative;height:235px;overflow:hidden}
.cimg{width:100%;height:100%;object-fit:cover;transition:transform .5s}.card:hover .cimg{transform:scale(1.07)}
.card-icon{position:absolute;top:19px;right:19px;width:55px;height:55px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.96);border:2px solid var(--gd);border-radius:50%;box-shadow:0 4px 17px rgba(0,0,0,.15)}
.card-icon i{font-size:24px;color:var(--cr-d)}.card-body{padding:31px 27px;flex:1;display:flex;flex-direction:column}.card-h{font-family:var(--serif);font-size:29px;font-weight:700;color:var(--bk);margin-bottom:20px}
.card-r{display:flex;align-items:center;gap:10px;font-size:14px;margin-bottom:12px}.card-r i{font-size:18px;color:var(--cr)}
.card-loc{display:flex;align-items:flex-start;gap:10px;margin-bottom:24px}.card-loc i{font-size:18px;color:var(--cr);margin-top:2px}.cloc{flex:1}
.clocn{font-size:15px;font-weight:600;color:var(--bk);margin-bottom:4px}.cloca{font-size:13px;font-weight:300;line-height:1.4}
.card-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.8px;color:var(--cr-d);text-decoration:none;padding:12px 22px;border:1px solid var(--cr);border-radius:6px;transition:all .3s;margin-top:auto}
.card-btn:hover{background:var(--cr);color:var(--wh)}
.rsvp{background:var(--wh)}.rsvp-wrap{background:#FAF7F4;padding:56px 48px;border-radius:10px;box-shadow:0 12px 40px rgba(169,27,50,.17)}
.rsvp-p{font-size:16px;font-weight:300;line-height:1.7;text-align:center;margin-bottom:40px;max-width:670px;margin-left:auto;margin-right:auto}
.form{max-width:670px;margin:0 auto}.form-row{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-bottom:24px}
.fg{display:flex;flex-direction:column;gap:10px}.fl{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.8px;color:var(--cr-d)}
.fi,.fa{font-family:var(--sans);font-size:15px;padding:14px 17px;border:1px solid #D9CEC5;border-radius:6px;background:var(--wh);color:var(--txt);transition:all .3s}
.fi:focus,.fa:focus{outline:0;border-color:var(--cr);box-shadow:0 0 0 3px rgba(169,27,50,.12)}.rads{display:flex;flex-direction:column;gap:12px}
.ro{display:flex;align-items:center;gap:10px;font-size:15px;cursor:pointer}.ro input[type=radio]{width:18px;height:18px;accent-color:var(--cr);cursor:pointer}
.fb{display:inline-flex;align-items:center;justify-content:center;gap:10px;width:100%;font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:1.3px;color:var(--wh);background:linear-gradient(135deg,var(--cr-d),var(--cr));border:none;border-radius:6px;padding:17px 34px;cursor:pointer;transition:all .3s;margin-top:13px}
.fb:hover{transform:translateY(-2px);box-shadow:0 9px 27px rgba(169,27,50,.38)}.form-msg{margin-top:24px;padding:17px 21px;border-radius:6px;font-size:14px;text-align:center;display:none}
.form-msg.success{display:block;background:#E7F4E7;color:#2E7D32;border:1px solid #4CAF50}.form-msg.error{display:block;background:#FFECEC;color:#C62828;border:1px solid #F44336}
.foot{background:var(--bk);color:var(--wh);padding:60px 40px}.foot-wrap{display:flex;flex-direction:column;align-items:center;gap:32px;text-align:center}
.foot-main{display:flex;flex-direction:column;align-items:center;gap:16px}.foot-names{font-family:var(--serif);font-size:33px;font-weight:700}
.foot-date{font-size:14px;font-weight:300;opacity:.9}.foot-menu{display:flex;gap:24px;flex-wrap:wrap;justify-content:center}
.foot-menu a{font-size:13px;text-transform:uppercase;letter-spacing:1px;color:var(--wh);text-decoration:none;opacity:.9;transition:opacity .3s}.foot-menu a:hover{opacity:1}
.foot-note{font-family:var(--serif);font-size:19px;font-style:italic;opacity:.86}.r{opacity:0;transform:translateY(40px);transition:all .8s}.r.revealed{opacity:1;transform:translateY(0)}
@media (max-width:1024px){.story-lay{grid-template-columns:1fr;gap:48px}.prog-grid{grid-template-columns:1fr;max-width:500px;margin:0 auto}.couple-flex{grid-template-columns:1fr;gap:64px}}
@media (max-width:768px){.w,.ws{padding:0 24px}section{padding:80px 24px}.top-flex{height:74px}.menu{position:fixed;top:74px;left:0;width:100%;background:rgba(255,255,255,.99);backdrop-filter:blur(8px);flex-direction:column;gap:0;padding:20px 24px;box-shadow:0 7px 24px rgba(169,27,50,.2);transform:translateY(-135%);transition:transform .4s}
.menu.active{transform:translateY(0)}.link{padding:13px 0;width:100%;text-align:center}.tog{display:flex}.hero{padding:98px 24px 60px}.title{font-size:56px}.amp{font-size:34px}
.timer{gap:12px;flex-wrap:nowrap;overflow-x:auto;justify-content:flex-start;padding-bottom:8px}.t{flex-shrink:0}.tn{font-size:42px;min-width:70px;padding:11px 13px}
.h2{font-size:41px}.form-row{grid-template-columns:1fr}.rsvp-wrap{padding:41px 28px}.pn{font-size:28px}.frame-sq{width:275px;height:355px}}

