*{box-sizing:border-box}html{scroll-behavior:smooth}
body.invitation{margin:0;font-family:var(--body-font,"DM Sans",sans-serif);background:var(--bg,#f7f7f7);color:var(--text,#252525);overflow-x:hidden}
.invitation a{text-decoration:none;color:inherit}.invitation button,.invitation input,.invitation select,.invitation textarea{font:inherit}
.inv-shell{width:min(100%,920px);margin:auto;background:var(--paper,#fff);min-height:100vh;box-shadow:0 0 60px rgba(0,0,0,.08);position:relative;overflow:hidden}
.inv-section{padding:78px 24px;position:relative}.inv-container{width:min(100%,720px);margin:auto}.inv-center{text-align:center}
.inv-kicker{display:inline-block;font-size:10px;letter-spacing:.25em;text-transform:uppercase;color:var(--accent);font-weight:800;margin-bottom:12px}
.inv-title{font-family:var(--display-font,"Playfair Display",serif);font-size:clamp(34px,8vw,58px);line-height:1.08;margin:0;color:var(--heading,var(--text))}
.inv-sub{font-size:14px;line-height:1.8;color:var(--muted,#777);max-width:600px;margin:16px auto 0}
.inv-btn{border:0;border-radius:999px;padding:12px 20px;display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--accent);color:var(--button-text,#fff);font-weight:800;font-size:12px;cursor:pointer}
.inv-btn.secondary{background:transparent;color:var(--accent);border:1px solid var(--border,#ddd)}.inv-btn.full{width:100%}
.cover-screen{position:fixed;inset:0;z-index:999;background:var(--cover-bg,#f3f0ea);display:grid;place-items:center;padding:20px;transition:.6s ease}
.cover-screen.closed{opacity:0;pointer-events:none;transform:scale(1.04)}
.cover-card{width:min(460px,100%);min-height:650px;border-radius:34px;padding:54px 28px;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;background:var(--cover-card,#fff);box-shadow:0 30px 90px rgba(0,0,0,.14)}
.cover-card:before,.cover-card:after{content:"";position:absolute;border:1px solid var(--ornament,rgba(0,0,0,.08));border-radius:50%}.cover-card:before{width:340px;height:340px;right:-180px;top:-140px}.cover-card:after{width:240px;height:240px;left:-130px;bottom:-80px}
.cover-kicker{font-size:9px;letter-spacing:.3em;font-weight:800;color:var(--accent);z-index:1}.cover-names{font-family:var(--display-font,"Playfair Display");font-size:clamp(48px,12vw,78px);line-height:1;margin:22px 0 12px;color:var(--heading);z-index:1}.cover-date{font-size:11px;letter-spacing:.22em;color:var(--muted);z-index:1}
.cover-guest{margin:34px 0 22px;padding:16px 18px;min-width:260px;border-top:1px solid var(--border);border-bottom:1px solid var(--border);z-index:1}.cover-guest small,.cover-guest strong{display:block}.cover-guest small{font-size:10px;color:var(--muted)}.cover-guest strong{margin-top:5px;font-size:14px}
.cover-photo{width:210px;height:255px;margin:22px 0;border-radius:var(--photo-radius,105px 105px 18px 18px);background:linear-gradient(145deg,var(--photo-a,#ccc),var(--photo-b,#999));background-size:cover;background-position:center;box-shadow:var(--photo-shadow,none);z-index:1}
.hero-inv{min-height:760px;display:grid;place-items:center;text-align:center;background:var(--hero-bg);position:relative;overflow:hidden}.hero-inv:before{content:"";position:absolute;inset:0;background:var(--hero-overlay,transparent)}
.hero-inner{position:relative;z-index:1;padding:40px 24px}.hero-inv .inv-title{font-size:clamp(52px,11vw,86px)}.hero-date{font-size:11px;letter-spacing:.25em;margin-top:16px;color:var(--muted)}
.hero-photo{width:min(72vw,390px);height:430px;margin:34px auto 0;border-radius:var(--hero-photo-radius,190px 190px 24px 24px);background:linear-gradient(145deg,var(--photo-a),var(--photo-b));background-size:cover;background-position:center;box-shadow:var(--photo-shadow)}
.quote-box{padding:28px;border:1px solid var(--border);border-radius:24px;background:var(--soft-card);text-align:center}.quote-box blockquote{font-family:var(--display-font);font-size:21px;line-height:1.7;margin:0;color:var(--heading)}
.couple-grid{display:grid;grid-template-columns:1fr 80px 1fr;align-items:center;gap:18px}.person-card{text-align:center}.person-photo{width:180px;height:220px;margin:0 auto 18px;border-radius:var(--person-radius,90px 90px 18px 18px);background:linear-gradient(145deg,var(--photo-a),var(--photo-b));background-size:cover;background-position:center}.person-card h3{font-family:var(--display-font);font-size:30px;margin:0 0 9px;color:var(--heading)}.person-card p{font-size:12px;line-height:1.7;color:var(--muted);margin:0}.ampersand{font-family:var(--display-font);font-size:48px;color:var(--accent);text-align:center}
.countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:28px}.countdown div{padding:18px 8px;border:1px solid var(--border);border-radius:18px;background:var(--soft-card);text-align:center}.countdown b{display:block;font-family:var(--display-font);font-size:30px;color:var(--heading)}.countdown span{font-size:9px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}
.event-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:30px}.event-card{padding:28px;border-radius:24px;background:var(--soft-card);border:1px solid var(--border);text-align:center}.event-card h3{font-family:var(--display-font);font-size:29px;margin:0 0 14px;color:var(--heading)}.event-card p{font-size:12px;line-height:1.8;color:var(--muted);margin:7px 0}.event-card strong{color:var(--text)}
.gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:26px}.gallery-item{aspect-ratio:4/5;border-radius:20px;background:linear-gradient(145deg,var(--photo-a),var(--photo-b));background-size:cover;background-position:center;overflow:hidden}.gallery-item:nth-child(3n){grid-column:span 2;aspect-ratio:16/9}
.gift-card{padding:28px;border-radius:24px;background:var(--soft-card);border:1px solid var(--border);text-align:center}.gift-card .bank{font-size:12px;font-weight:800;color:var(--accent);letter-spacing:.12em}.gift-card .account{font-family:var(--display-font);font-size:28px;margin:10px 0}.gift-card .holder{font-size:11px;color:var(--muted)}
.rsvp-form{display:grid;gap:12px;margin-top:24px}.rsvp-form input,.rsvp-form select,.rsvp-form textarea{width:100%;padding:13px 14px;border-radius:14px;border:1px solid var(--border);background:var(--input-bg,#fff);color:var(--text);outline:none}.rsvp-form textarea{resize:vertical;min-height:110px}.success-note{padding:14px;border-radius:14px;background:#eaf8ef;color:#237545;font-size:12px;margin-bottom:16px}
.wishes{display:grid;gap:10px;margin-top:24px}.wish{padding:15px 17px;border-radius:16px;background:var(--soft-card);border:1px solid var(--border)}.wish strong{font-size:12px}.wish p{font-size:12px;line-height:1.65;color:var(--muted);margin:7px 0 0}
.inv-footer{text-align:center;padding:55px 24px 90px;background:var(--footer-bg,var(--soft-card))}.inv-footer h3{font-family:var(--display-font);font-size:36px;margin:10px 0;color:var(--heading)}.inv-footer p{font-size:11px;color:var(--muted)}
.bottom-nav{position:fixed;left:50%;bottom:14px;transform:translateX(-50%);z-index:90;display:flex;gap:4px;padding:6px;background:rgba(25,25,32,.85);backdrop-filter:blur(12px);border-radius:999px;box-shadow:0 12px 30px rgba(0,0,0,.18)}.bottom-nav a{color:#fff;font-size:9px;padding:9px 10px;border-radius:999px;white-space:nowrap}.bottom-nav a:hover{background:rgba(255,255,255,.12)}
.music-toggle{position:fixed;right:14px;top:14px;z-index:95;width:46px;height:46px;border:0;border-radius:50%;background:rgba(25,25,32,.85);color:#fff;cursor:pointer;box-shadow:0 10px 25px rgba(0,0,0,.15)}
.demo-badge{position:fixed;left:14px;top:14px;z-index:95;background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:999px;padding:8px 11px;font-size:9px;font-weight:800;box-shadow:0 8px 25px rgba(0,0,0,.08)}
.reveal-inv{opacity:0;transform:translateY(18px);transition:.7s ease}.reveal-inv.visible{opacity:1;transform:none}

/* THEMES */
.theme-minimal-white{--bg:#f3f3f1;--paper:#fff;--text:#25262a;--heading:#15161a;--muted:#777a80;--accent:#9a8f70;--border:#e7e5df;--soft-card:#faf9f5;--cover-bg:#f0f0ed;--cover-card:#fff;--ornament:#e7e3d8;--photo-a:#d8d6d0;--photo-b:#9f9e99;--display-font:"Playfair Display";--body-font:"DM Sans";--hero-bg:#fff;--hero-overlay:linear-gradient(180deg,transparent,#fbfaf7 100%);--photo-radius:4px;--person-radius:4px;--hero-photo-radius:4px;--photo-shadow:18px 18px 0 #ebe8df;--footer-bg:#f7f6f2}
.theme-blush-story{--bg:#f4e8e8;--paper:#fff8f6;--text:#65484b;--heading:#6b4548;--muted:#9e7c7d;--accent:#b9787b;--border:#ead4d1;--soft-card:#f8e8e5;--cover-bg:#f1dedf;--cover-card:#fff7f4;--ornament:#e8c8c4;--photo-a:#c99a94;--photo-b:#8a6b73;--display-font:"Playfair Display";--body-font:"DM Sans";--hero-bg:linear-gradient(160deg,#f4dcda,#fff8f4);--hero-overlay:radial-gradient(circle at 70% 15%,rgba(255,255,255,.55),transparent 30%);--photo-shadow:0 20px 45px rgba(128,84,89,.16);--footer-bg:#f3dfdf}
.theme-midnight-elegance{--bg:#111321;--paper:#191c2f;--text:#eee9df;--heading:#f3ead6;--muted:#aaa8b5;--accent:#c8b171;--border:#33374e;--soft-card:#22263c;--cover-bg:#111321;--cover-card:#1a1d30;--ornament:#4b4d5c;--photo-a:#4b4f67;--photo-b:#24283f;--display-font:"Playfair Display";--body-font:"DM Sans";--button-text:#1b1d2d;--hero-bg:radial-gradient(circle at 50% 20%,#303654,#17192b 65%);--hero-overlay:linear-gradient(180deg,rgba(0,0,0,.05),rgba(0,0,0,.25));--photo-shadow:0 0 0 1px #bba76f,0 25px 55px rgba(0,0,0,.30);--footer-bg:#111321;--input-bg:#191d31}
.theme-sage-garden{--bg:#e7ede8;--paper:#fbfaf4;--text:#455449;--heading:#506453;--muted:#7b8a7e;--accent:#708b73;--border:#d4ded3;--soft-card:#eef3ed;--cover-bg:#dfe8e0;--cover-card:#fbfaf4;--ornament:#c7d6c8;--photo-a:#9dae9c;--photo-b:#657a68;--display-font:"Playfair Display";--body-font:"DM Sans";--hero-bg:linear-gradient(160deg,#e2ebe3,#fbfaf4);--hero-overlay:radial-gradient(circle at 25% 20%,rgba(117,143,119,.10),transparent 32%);--photo-shadow:0 18px 45px rgba(82,108,85,.15);--footer-bg:#e4ebe4}
.theme-blue-luxe{--bg:#dce7f0;--paper:#f8fbfe;--text:#41556c;--heading:#3f5871;--muted:#7f92a5;--accent:#718faa;--border:#d3e0ea;--soft-card:#eaf2f8;--cover-bg:#dce8f1;--cover-card:#f8fbfe;--ornament:#c2d4e2;--photo-a:#91a8ba;--photo-b:#536f86;--display-font:"Playfair Display";--body-font:"DM Sans";--hero-bg:linear-gradient(160deg,#dfeaf3,#f8fbfe);--hero-overlay:radial-gradient(circle at 80% 15%,rgba(255,255,255,.75),transparent 32%);--photo-shadow:0 20px 50px rgba(69,92,115,.16);--footer-bg:#e2edf5}
@media(max-width:700px){.inv-section{padding:65px 18px}.couple-grid{grid-template-columns:1fr}.ampersand{font-size:34px}.event-grid{grid-template-columns:1fr}.countdown b{font-size:24px}.bottom-nav{max-width:calc(100% - 20px);overflow:auto;justify-content:flex-start}.hero-inv{min-height:680px}.cover-card{min-height:620px}}

/* PACKAGE SYSTEM V2 */
.love-timeline{position:relative;margin-top:34px;padding-left:28px}
.love-timeline:before{content:"";position:absolute;left:7px;top:5px;bottom:5px;width:1px;background:var(--border)}
.love-step{position:relative;padding:0 0 28px 22px}
.love-step:last-child{padding-bottom:0}
.love-dot{position:absolute;left:-27px;top:7px;width:11px;height:11px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 5px var(--paper)}
.love-date{display:inline-flex;margin-bottom:7px;font-size:9px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}
.love-step h3{font-family:var(--display-font);font-size:25px;margin:0 0 7px;color:var(--heading)}
.love-step p{margin:0;color:var(--muted);font-size:12px;line-height:1.75}

/* Exclusive light layout variations */
.layout-editorial .hero-photo{border-radius:4px;transform:rotate(-1.2deg);box-shadow:22px 22px 0 rgba(120,120,140,.10)}
.layout-editorial .person-photo{border-radius:4px}
.layout-editorial .quote-box,.layout-editorial .event-card,.layout-editorial .gift-card{border-radius:4px}
.layout-editorial .inv-title{letter-spacing:-.025em}
.layout-compact .inv-section{padding-top:48px;padding-bottom:48px}
.layout-compact .hero-inv{min-height:620px}
.layout-compact .hero-photo{height:360px;margin-top:24px}
.layout-compact .quote-box,.layout-compact .event-card,.layout-compact .gift-card{padding:22px}

@media(max-width:700px){
 .love-timeline{padding-left:24px}
 .love-step{padding-left:18px}
 .love-dot{left:-23px}
 .layout-compact .inv-section{padding-top:44px;padding-bottom:44px}
}
