@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,500;0,600;0,700;1,500&display=swap');
:root{--ink:#283e36;--muted:#768078;--paper:#faf8f3;--accent:#a65239;--line:#e1e3da}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:5px}button,.btn{cursor:pointer}.wrap{max-width:1180px;margin:auto;padding:0 28px}header{height:92px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{font-family:'Playfair Display',Georgia,serif;font-size:28px;font-weight:700}.brand span{color:var(--accent)}nav{display:flex;align-items:center;gap:30px;font-size:14px}.btn{display:inline-block;padding:14px 24px;border:1px solid var(--ink);background:var(--ink);color:white;border-radius:6px;font-size:14px;font-weight:600}.btn.light{background:transparent;color:var(--ink)}.eyebrow{text-transform:uppercase;letter-spacing:3px;font-size:11px;font-weight:700;color:var(--accent)}.hero{display:grid;grid-template-columns:1.05fr 1fr;gap:75px;align-items:center;padding:75px 0 85px}h1,h2,h3{font-family:'Playfair Display',Georgia,serif;font-weight:500}h1{font-size:64px;line-height:1.12;letter-spacing:-2px;margin:22px 0}h1 em{color:var(--accent);font-weight:500}.intro{color:#6a736a;line-height:1.8;font-size:16px;max-width:450px}.actions{display:flex;gap:12px;flex-wrap:wrap;margin:30px 0}.micro{color:var(--muted);font-size:12px}.stage{position:relative;min-height:435px;display:flex;align-items:center;justify-content:center;background:#e9eade;border-radius:180px 180px 12px 12px;padding:36px}.sample{background:#f7f2e5;border:1px solid #c8c7af;outline:7px solid #f7f2e5;box-shadow:0 22px 38px #283e361c;text-align:center;padding:30px 22px;color:#394f3a;width:270px;position:relative}.sample:before,.sample:after{content:'❧';display:block;font-size:48px;color:#849476}.sample:after{transform:rotate(180deg)}.sample small{font-size:9px;letter-spacing:2px;text-transform:uppercase}.sample h3{font-size:34px;margin:22px 0}.sample p{font-size:10px;letter-spacing:1px}.tag{position:absolute;bottom:28px;right:-16px;background:white;border:1px solid var(--line);padding:15px 22px;border-radius:9px;box-shadow:0 10px 30px #283e3610;font-size:12px}.strip{display:flex;justify-content:space-between;padding:24px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:13px;gap:20px}.section{padding:65px 0}.section-title{display:flex;align-items:end;justify-content:space-between;gap:20px}h2{font-size:38px;margin:12px 0}.section-title p{font-size:14px;color:var(--muted)}.filters{display:flex;gap:8px;flex-wrap:wrap;margin:28px 0}.filters button{border:1px solid var(--line);border-radius:30px;background:transparent;color:var(--ink);padding:10px 18px;font-size:12px}.filters button.active{background:var(--ink);color:white;border-color:var(--ink)}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.tile{border:1px solid var(--line);background:#fff;border-radius:10px;overflow:hidden}.art{height:310px;background:#e9eade;display:flex;align-items:center;justify-content:center;padding:30px}.art .sample{width:205px;padding:12px;outline-width:4px;box-shadow:0 8px 18px #283e3610}.art .sample h3{font-size:26px;margin:12px 0}.art .sample:before,.art .sample:after{font-size:27px}.tile-info{padding:19px 21px;display:flex;justify-content:space-between;align-items:center}.tile-info h3{font-family:inherit;font-size:14px;margin:0 0 5px;font-weight:600}.tile-info p{font-size:11px;color:var(--muted);margin:0}.tile-info a{font-size:20px}.birthday{background:#f5e3db}.birthday .sample{background:#fff6ea;outline-color:#fff6ea;color:#a65239;border-color:#ddaf90}.birthday .sample:before{content:'✦ ✧ ✦';color:#ce9464}.birthday .sample:after{content:'✧';color:#ce9464}.engagement{background:#e9e3ec}.engagement .sample{background:#fbf6f9;outline-color:#fbf6f9;border-color:#d1b7ca;color:#7d4c73}.engagement .sample:before,.engagement .sample:after{content:'♡';color:#ad7b9c}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:35px}.steps b{display:block;color:var(--accent);font-family:Georgia,serif;font-size:26px;margin-bottom:18px}.steps h3{font-family:inherit;font-size:16px;font-weight:600}.steps p{font-size:14px;color:var(--muted);line-height:1.8}.cta{text-align:center;background:#e9eade;border-radius:12px;padding:48px;margin-bottom:60px}.cta p{color:var(--muted)}footer{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding:28px 0;font-size:12px;color:var(--muted)}.invite{max-width:720px;margin:40px auto;padding:48px;text-align:center;border:1px solid #c7ccb9;background:#fffdf7;border-radius:180px 180px 12px 12px}.invite h1{font-size:54px}.invite .floral{font-size:70px;color:#839270}.invite .details{display:grid;grid-template-columns:1fr 1fr;gap:24px;padding:28px 0;border-block:1px solid var(--line);margin:30px 0}.invite .details p{font-size:14px;line-height:1.8}.invite .details b{font-size:11px;letter-spacing:2px;text-transform:uppercase}.invite .description{line-height:1.8;color:#70796e}.event-photo{width:100%;max-height:350px;object-fit:cover;border-radius:10px;margin-top:20px}.rsvp{text-align:left;margin-top:35px}.rsvp label{display:block;font-size:13px;margin:15px 0 7px}.rsvp input,.rsvp select,.rsvp textarea{width:100%;padding:12px;border:1px solid #cdd2c5;border-radius:5px;background:white}.rsvp button{margin-top:20px}.notice{padding:12px;background:#e9eade;border-radius:6px;font-size:14px}.error{background:#ffe6df}.invite .actions{justify-content:center}.gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.gallery img{width:100%;border-radius:8px}.empty{padding:30px;color:var(--muted)}[hidden]{display:none!important}@media(max-width:800px){.hero{gap:35px;grid-template-columns:1fr;padding:40px 0}.hero h1{font-size:48px}.stage{max-width:470px;width:100%;margin:auto}.cards{grid-template-columns:repeat(2,1fr)}nav a:not(.btn){display:none}.strip{flex-wrap:wrap}.steps{gap:22px}.invite{margin:20px 16px;padding:35px 22px}.tag{right:0}}@media(max-width:520px){.wrap{padding:0 20px}header{height:76px}.brand{font-size:24px}nav{gap:12px}.btn{padding:12px 17px}.hero h1{font-size:45px}.cards,.steps{grid-template-columns:1fr}.section{padding:42px 0}.section-title{display:block}h2{font-size:32px}.strip{font-size:11px}.invite h1{font-size:42px}.invite .details{grid-template-columns:1fr}footer{flex-direction:column}}

body.birthday .invite{background:#fff7ec;border-color:#d9b697;color:#904a32}body.engagement .invite{background:#fcf5fa;border-color:#ceb6c8;color:#76506d}body.birthday .invite .floral,body.engagement .invite .floral{color:inherit}
