*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{--sage:#7d9e8c;--gold:#c9963d;--cream:#fdfaf5;--dark:#1a1a18;--text:#2c2c28;--shadow:0 8px 40px rgba(125,158,140,0.2)}
html,body{height:100%;font-family:'Lato',sans-serif;background:var(--cream);color:var(--text);overflow:hidden}
.screen{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .5s ease,transform .5s cubic-bezier(.4,0,.2,1);z-index:1;overflow-y:auto;padding:60px 80px}
.screen.active{opacity:1;pointer-events:all;z-index:10}
.slide-from-right{transform:translateX(50px);opacity:0}.slide-from-left{transform:translateX(-50px);opacity:0}
.slide-to-left{transform:translateX(-50px);opacity:0}.slide-to-right{transform:translateX(50px);opacity:0}
.fade-in{animation:fadeIn .8s ease both}
@keyframes fadeIn{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
.hidden{display:none!important}

/* Start */
.start-screen{background:linear-gradient(160deg,#fdfaf5,#f0ede5)}
.petals-bg{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.start-center{text-align:center;padding:20px}
.rings-icon{font-size:3.5rem;margin-bottom:16px;animation:ringsFloat 3s ease-in-out infinite}
@keyframes ringsFloat{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-12px) rotate(3deg)}}
.start-sub{font-size:.85rem;letter-spacing:3px;text-transform:uppercase;color:var(--sage);margin-bottom:10px}
.start-names{font-family:'Cormorant Garamond',serif;font-size:3rem;color:var(--dark);margin-bottom:8px}
.start-date{font-size:1rem;color:var(--gold);margin-bottom:32px;letter-spacing:2px;font-family:'Cormorant Garamond',serif}

/* Password */
.pass-box{background:#fff;border-radius:20px;padding:48px 40px;text-align:center;max-width:420px;width:100%;box-shadow:var(--shadow)}
.pass-icon{font-size:3rem;margin-bottom:16px}
.pass-box h2{font-family:'Cormorant Garamond',serif;font-size:1.8rem;color:var(--dark);margin-bottom:24px}
.pass-input{width:100%;padding:13px 18px;border:2px solid #e0d8cc;border-radius:50px;font-size:1rem;outline:none;margin-bottom:16px;text-align:center;letter-spacing:3px;font-family:'Lato',sans-serif}
.pass-err{color:#c0392b;margin-top:10px;font-size:.9rem}

/* Content */
.content-box{background:#fff;border-radius:20px;padding:48px 40px;max-width:720px;width:100%;box-shadow:var(--shadow);text-align:center;max-height:calc(100vh - 80px);overflow-y:auto}
.wedding-icon{font-size:3rem;margin-bottom:12px}
.box-title{font-family:'Cormorant Garamond',serif;font-size:2rem;color:var(--dark);margin-bottom:12px}
.box-sub{font-size:1rem;color:#888;margin-bottom:24px;line-height:1.7}

/* Countdown */
.cd-grid{display:flex;align-items:center;justify-content:center;gap:10px;margin:24px 0}
.cd-block{background:linear-gradient(135deg,#f8f5ee,#f0ede5);border-radius:12px;padding:14px 18px;min-width:72px;box-shadow:0 2px 8px rgba(201,150,61,.15)}
.cd-block span:first-child{display:block;font-size:2.2rem;font-weight:700;color:var(--dark);font-family:'Cormorant Garamond',serif}
.cd-lbl{font-size:.7rem;color:#aaa;text-transform:uppercase;letter-spacing:1px}
.cd-sep{font-size:2rem;color:var(--gold);font-weight:700}

/* Program */
.program-list{text-align:left;margin-bottom:28px}
.prog-item{display:flex;align-items:center;gap:16px;padding:14px 0;border-bottom:1px solid #f0ede5}
.prog-item:last-child{border-bottom:none}
.prog-icon{font-size:1.4rem;min-width:32px;text-align:center}
.prog-ora{font-weight:700;color:var(--gold);min-width:52px;font-family:'Cormorant Garamond',serif;font-size:1.1rem}
.prog-ev{font-size:1rem;color:var(--dark)}

/* Galerie */
.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-bottom:28px}
.gallery-grid img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:12px;cursor:zoom-in;transition:transform .2s;box-shadow:0 2px 10px rgba(0,0,0,.1);opacity:0}
.gallery-grid img.photo-in{animation:photoIn .5s ease forwards}
@keyframes photoIn{from{opacity:0;transform:scale(.88)}to{opacity:1;transform:scale(1)}}

/* Map */
.location-name{font-family:'Cormorant Garamond',serif;font-size:1.5rem;color:var(--dark);margin-bottom:4px}
.location-addr{font-size:.95rem;color:#888;margin-bottom:16px}
.map-wrap{border-radius:14px;overflow:hidden;margin-bottom:16px;box-shadow:0 4px 20px rgba(0,0,0,.12)}
.map-wrap iframe{width:100%;height:260px;border:none}
.btn-map{display:inline-block;background:linear-gradient(135deg,var(--sage),#5d8a78);color:#fff;text-decoration:none;border-radius:50px;padding:10px 28px;font-size:.95rem;margin-bottom:12px}

/* RSVP */
.rsvp-input{width:100%;padding:13px 18px;border:2px solid #e0d8cc;border-radius:12px;font-size:1rem;font-family:'Lato',sans-serif;outline:none;margin-bottom:12px;transition:border .2s;text-align:left}
.rsvp-input:focus{border-color:var(--sage)}
.rsvp-msg{height:90px;resize:none;border-radius:12px}
.rsvp-radio-group{display:flex;gap:20px;margin-bottom:12px;flex-wrap:wrap}
.rsvp-radio{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:.95rem}
.rsvp-thanks{text-align:center;padding:20px}
.rsvp-thanks h3{font-family:'Cormorant Garamond',serif;font-size:1.8rem;margin:12px 0 8px;color:var(--dark)}

/* Lightbox */
#lightbox{display:none;position:fixed;inset:0;background:rgba(0,0,0,.88);z-index:999;align-items:center;justify-content:center;cursor:pointer}
#lightbox.open{display:flex}
#lightbox img{max-width:88vw;max-height:88vh;border-radius:10px;transition:opacity .15s}
.lb-nav{position:fixed;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.15);border:none;color:#fff;font-size:3rem;padding:10px 18px;cursor:pointer;border-radius:8px;z-index:1000}
.lb-prev{left:12px}.lb-next{right:12px}
.lb-close{position:fixed;top:16px;right:16px;background:rgba(255,255,255,.15);border:none;color:#fff;font-size:1.4rem;width:40px;height:40px;border-radius:50%;cursor:pointer;z-index:1000}

/* Buttons */
.btn-main{background:linear-gradient(135deg,var(--sage),#5d8a78);color:#fff;border:none;border-radius:50px;padding:13px 36px;font-size:1rem;font-family:'Lato',sans-serif;cursor:pointer;transition:transform .15s,box-shadow .2s;box-shadow:0 4px 18px rgba(125,158,140,.35)}
.btn-main:hover{transform:translateY(-2px);box-shadow:0 6px 24px rgba(125,158,140,.45)}
.nav-arrow{position:fixed;top:50%;transform:translateY(-50%);z-index:50;background:rgba(125,158,140,.15);border:2px solid rgba(125,158,140,.3);color:var(--sage);font-size:2.4rem;width:52px;height:52px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s}
.nav-arrow:hover{background:rgba(125,158,140,.3);transform:translateY(-50%) scale(1.1)}
.nav-arrow.disabled{opacity:.2;cursor:not-allowed;pointer-events:none}
.nav-left{left:18px}.nav-right{right:18px}
.nav-arrow.hidden{display:none}
.music-player{position:fixed;top:20px;right:20px;z-index:100}
.music-player.hidden{display:none}
.music-btn{width:46px;height:46px;border-radius:50%;background:rgba(125,158,140,.9);border:none;color:#fff;font-size:1.2rem;cursor:pointer;display:flex;align-items:center;justify-content:center}

/* Cover photo */
.cover-screen { padding:0; }
.cover-photo { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; }
.cover-overlay { position:absolute; inset:0; background:linear-gradient(to bottom, rgba(0,0,0,.2) 0%, rgba(0,0,0,.55) 100%); z-index:1; }
.cover-content { position:relative; z-index:2; text-align:center; color:#fff; padding:20px; }
.cover-sub { font-size:.85rem; letter-spacing:3px; text-transform:uppercase; opacity:.8; margin-bottom:10px; }
.cover-names { font-family:'Cormorant Garamond',serif; font-size:3.5rem; margin-bottom:8px; text-shadow:0 2px 20px rgba(0,0,0,.5); }
.cover-date { font-size:1.2rem; opacity:.9; margin-bottom:32px; letter-spacing:2px; }
.cover-scroll-btn { background:rgba(255,255,255,.2); border:2px solid rgba(255,255,255,.5); color:#fff; width:50px; height:50px; border-radius:50%; font-size:1.4rem; cursor:pointer; animation:bounceDown 1.5s ease-in-out infinite; backdrop-filter:blur(4px); }
@keyframes bounceDown { 0%,100%{transform:translateY(0)} 50%{transform:translateY(8px)} }

/* Extras dress code + registry */
.extras-section { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:20px; }
.extra-card { background:linear-gradient(135deg,#f8f5ee,#f0ede5); border-radius:14px; padding:18px; text-align:center; }
.extra-icon { font-size:1.8rem; margin-bottom:8px; }
.extra-title { font-family:'Cormorant Garamond',serif; font-size:1.1rem; color:var(--dark); margin-bottom:6px; }
.extra-text { font-size:.9rem; color:#666; line-height:1.5; }
.extra-link { color:var(--sage); font-size:.95rem; text-decoration:none; font-weight:600; }
.extra-link:hover { text-decoration:underline; }

/* Shared link nunta */
.music-player.hidden{display:none}

@media(max-width:600px){
  .screen{padding:50px 12px 30px}
  .content-box{padding:28px 16px}
  .start-names{font-size:2.2rem}
  .gallery-grid{grid-template-columns:repeat(2,1fr)}
  .nav-arrow{display:none}
  .cd-grid{gap:6px}
  .cd-block{padding:10px 12px;min-width:58px}
  .cd-block span:first-child{font-size:1.8rem}
}
