:root{--txt:#f9f8ff;--muted:#d7d2ea;--pink:#ff4ea8;--violet:#7c6bff;--gold:#ffd98a;--glass:rgba(14,13,30,.56);--line:rgba(255,255,255,.2)}
*{box-sizing:border-box}html,body{margin:0;scroll-behavior:smooth}
body{font-family:'Assistant',sans-serif;color:var(--txt);background:linear-gradient(145deg, rgba(8,8,20,.76), rgba(22,15,45,.86)),url('assets/moishi-leila-bg-v1.jpg?v=20260209-2031') center/cover fixed no-repeat;min-height:100vh;overflow-x:hidden}
#stars{position:fixed;inset:0;z-index:-2}.noise{position:fixed;inset:0;background-image:radial-gradient(rgba(255,255,255,.06) 1px,transparent 1px);background-size:3px 3px;opacity:.08;z-index:-1}
#hearts{position:fixed;inset:0;pointer-events:none;z-index:2}
.glass{background:var(--glass);border:1px solid var(--line);backdrop-filter:blur(12px);box-shadow:0 20px 45px rgba(0,0,0,.35)}
.hero{width:min(1120px,94vw);margin:22px auto;padding:30px;border-radius:28px;text-align:center}.tag{letter-spacing:3px;color:#ffd8ef;margin:0;font-weight:700}
h1{font-family:'Playfair Display',serif;font-size:clamp(2rem,6vw,4rem);margin:.2em 0}.date{color:#ffe6af;font-weight:800}.lead{max-width:760px;margin:8px auto 0;color:var(--muted)}
.countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;max-width:740px;margin:18px auto 0}.time-box{padding:14px;border:1px solid #ffffff2b;border-radius:16px;background:#00000030}.time-box b{display:block;font-size:2rem}
.hero-actions,.row-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:14px}
.btn{display:inline-flex;justify-content:center;align-items:center;border-radius:13px;padding:11px 16px;font-weight:800;text-decoration:none;cursor:pointer;border:1px solid var(--line);color:#fff;background:#ffffff10}.btn.primary{background:linear-gradient(120deg,var(--pink),var(--violet));border:none}
main{width:min(1120px,94vw);margin:0 auto 18px}.reveal{opacity:0;transform:translateY(12px);transition:.55s ease}.reveal.visible{opacity:1;transform:none}
.spotlight{display:grid;grid-template-columns:1.2fr .8fr;gap:12px}.spotlight-photo,.spotlight-copy{padding:12px;border-radius:24px}.spotlight-photo img{width:100%;height:100%;max-height:520px;object-fit:cover;border-radius:18px;border:1px solid #ffffff3d}
.chips{display:flex;gap:8px;flex-wrap:wrap}.chips span{padding:6px 10px;border-radius:999px;background:#ffffff18;border:1px solid #ffffff26}
.story,.rsvp{margin-top:12px;padding:18px;border-radius:24px}.story-line{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.story-line article{background:#00000029;padding:12px;border-radius:14px;border:1px solid #ffffff22}
.info-grid{margin-top:12px;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.card{padding:16px;border-radius:20px}.card ul{margin:0;padding-inline-start:18px;display:grid;gap:8px}.actions-col{display:grid;gap:8px}
summary{cursor:pointer;font-weight:700}.muted{color:var(--muted)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}label{display:grid;gap:6px;font-weight:700}input,select,textarea{width:100%;background:#0f1128c9;color:#fff;border:1px solid #ffffff35;border-radius:12px;padding:11px}.full{grid-column:1 / -1}
.rsvp-progress-wrap{display:grid;gap:8px}.rsvp-progress-labels{display:flex;justify-content:space-between;color:#e9dbff;font-weight:700;font-size:.92rem}.rsvp-progress-track{height:9px;background:#ffffff1f;border-radius:999px;overflow:hidden;border:1px solid #ffffff2f}.rsvp-progress-track b{display:block;height:100%;width:33.33%;background:linear-gradient(90deg,#ff4ea8,#7c6bff,#00ffd0);box-shadow:0 0 18px #7c6bffab;transition:width .35s ease}
.rsvp-step{display:grid;grid-template-columns:1fr 1fr;gap:10px;animation:stepIn .35s ease}.rsvp-summary{padding:14px;border-radius:14px;background:linear-gradient(150deg,#ffffff14,#ffffff05);line-height:1.65}.rsvp-nav-actions{align-items:center}.rsvp-nav-actions #copyBtn,.rsvp-nav-actions #clearBtn,.rsvp-nav-actions #sendWa,.rsvp-nav-actions #sendTg{margin-inline-start:auto}
@keyframes stepIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.footer{width:min(1120px,94vw);margin:0 auto 22px;text-align:center;color:#c7c5e2}
@media (max-width:980px){.spotlight,.story-line,.info-grid,.form-grid,.rsvp-step{grid-template-columns:1fr}.countdown{grid-template-columns:repeat(2,1fr)}.rsvp-nav-actions #copyBtn,.rsvp-nav-actions #clearBtn,.rsvp-nav-actions #sendWa,.rsvp-nav-actions #sendTg{margin-inline-start:0}}

#scrollProgress{position:fixed;top:0;right:0;height:4px;width:0;background:linear-gradient(90deg,#ff4ea8,#7c6bff,#ffd98a);z-index:9999;box-shadow:0 0 10px #ff4ea8aa}
.blessing{margin-top:12px;padding:18px;border-radius:24px;text-align:center}
.live-timeline{margin-top:12px;padding:18px;border-radius:24px}
.timeline-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:10px}
.timeline-card{padding:14px;border-radius:14px;border:1px solid #ffffff2e;background:#ffffff10;display:grid;gap:4px;text-align:center;transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease}
.timeline-card b{font-size:1.2rem;color:#ffe4a8}
.timeline-card.active{border-color:#ffd98a;box-shadow:0 0 0 1px #ffd98a66,0 10px 24px #ffd98a33;transform:translateY(-3px);background:linear-gradient(160deg,#ffd98a26,#ff4ea822)}
.timeline-card.done{opacity:.65}
#timelineNow{font-weight:700;color:#fbe7ff}
@media (max-width:980px){.timeline-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

#quickNav{position:sticky;top:10px;z-index:50;width:min(1120px,94vw);margin:0 auto 10px;padding:10px 12px;border-radius:14px;display:flex;gap:8px;justify-content:center}#quickNav a{color:#fff;text-decoration:none;padding:8px 12px;border:1px solid #ffffff33;border-radius:999px;background:#ffffff12;font-weight:700}

.blessing-wall{margin-top:12px;padding:18px;border-radius:24px}
.blessing-form{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:8px}
.blessing-list{margin-top:12px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.blessing-card{padding:12px;border-radius:14px;border:1px solid #ffffff30;background:linear-gradient(155deg,#ffffff1c,#ffffff08)}
.blessing-card .meta{display:flex;justify-content:space-between;gap:8px;color:#f4ddff;font-size:.9rem;margin-bottom:6px}
.blessing-card p{margin:0;color:#fff;line-height:1.6}
.blessing-empty{padding:12px;border:1px dashed #ffffff38;border-radius:12px;color:#d6d2ea;text-align:center}
@media (max-width:980px){.blessing-form,.blessing-list{grid-template-columns:1fr}}
