@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,400;0,500;1,400;1,500&display=swap');
:root{--wine:#742d41;--deep:#4c1d2a;--ivory:#faf6ef;--cream:#f1e9dc;--ink:#342d2a;--muted:#82736c}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ivory);color:var(--ink);font-family:'DM Sans',Arial,sans-serif}h1,h2,h3{font-family:'Playfair Display',Georgia,serif;font-weight:400}h1 em,h2 em{color:var(--wine);font-weight:400}a{text-decoration:none;color:inherit}.topbar{height:78px;max-width:1380px;margin:auto;padding:0 5%;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #e8dfd2}.brand{font-family:'Playfair Display',Georgia,serif;font-size:25px;letter-spacing:.5px}.brand span{color:var(--wine)}.navlink,.top-note{font-size:12px;text-transform:uppercase;letter-spacing:1.8px}.eyebrow{font-size:11px;letter-spacing:3px;color:var(--wine);font-weight:700;text-transform:uppercase}.btn{display:inline-flex;justify-content:space-between;align-items:center;gap:35px;background:var(--wine);border:1px solid var(--wine);color:white;padding:17px 24px;font-family:inherit;font-size:12px;font-weight:700;letter-spacing:1px;text-transform:uppercase;cursor:pointer;border-radius:0}.btn:hover{background:var(--deep)}.btn-outline{display:inline-block;border:1px solid #cbbdb4;padding:12px 15px;background:white;font-size:12px;cursor:pointer}.landing{text-align:center}.landing>.eyebrow{margin-top:105px}.landing h1{font-size:clamp(45px,6.2vw,88px);line-height:1.13;margin:25px 10px}.landing>p{max-width:530px;color:var(--muted);margin:0 auto 30px;line-height:1.9;padding:0 15px}.mini-note{font-size:11px;letter-spacing:1px;color:var(--muted);margin-top:20px}.landing-showcase{margin:110px auto 0;padding:80px 6%;background:#eae1d7;display:flex;justify-content:center;align-items:center;gap:9%;text-align:left}.showcase-copy{max-width:450px}.showcase-copy h2{font-size:clamp(35px,4vw,58px);line-height:1.25}.showcase-copy p{line-height:1.9;color:var(--muted)}.showcase-card{background:#fcf7ed;min-height:480px;width:min(100%,440px);padding:60px 20px;outline:1px solid #cba7a6;outline-offset:-17px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--wine);box-shadow:0 22px 45px #42172218}.ornament{font-size:43px;color:#c29575}.showcase-card small{font-size:9px;letter-spacing:2.5px;line-height:1.8}.showcase-card h3{font-size:52px;line-height:1.25;margin:24px 0}.showcase-card h3 i{display:block;font-size:34px;color:#be9a79}.line{width:80px;background:#cdb8a5;height:1px;margin:14px}.showcase-card p{font-size:11px;letter-spacing:2px;margin:18px 0}.fake-button{margin-top:22px;border:1px solid var(--wine);padding:14px 19px;font-size:10px;letter-spacing:2px}footer{text-align:center;padding:25px;font-size:11px;letter-spacing:1px;color:var(--muted)}.form-layout{max-width:1230px;margin:65px auto;padding:0 5%;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:8%}.form-layout h1,.editor-head h1{font-size:clamp(40px,4vw,60px);margin:13px 0}.intro{line-height:1.8;color:var(--muted);max-width:510px;margin-bottom:35px}.fields{display:grid;gap:19px}.fields label{font-size:12px;font-weight:700;letter-spacing:.2px;display:grid;gap:10px}.fields input,.fields textarea{font-family:inherit;color:var(--ink);width:100%;padding:14px 15px;border:1px solid #d7ccc0;background:#fffdf9;border-radius:0;font-size:14px;outline-color:var(--wine)}.fields textarea{resize:vertical}.two{display:grid;grid-template-columns:1fr 1fr;gap:16px}.optional,.hint{color:var(--muted);font-weight:400}.form-aside{padding-top:45px}.form-aside .showcase-card{position:sticky;top:25px}.errors{background:#fae8e8;border-left:3px solid #af3434;padding:10px 15px;color:#8f2222;margin:12px 0}.success{padding:15px;background:#e9f4e7;margin-bottom:20px}.editor{max-width:1460px;padding:50px 4%;margin:auto}.editor-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:30px}.editor-grid{display:grid;grid-template-columns:minmax(0,500px) minmax(0,1fr);gap:35px;align-items:start}.editor-panel{background:white;border:1px solid #eee0d5;padding:27px}.editor-panel h2{font-size:27px;margin:2px 0}.preview-panel{border:1px solid #decfbe;background:white;position:sticky;top:15px}.preview-top{padding:16px 20px;border-bottom:1px solid #eee0d5;display:flex;justify-content:space-between;font-size:12px}.preview-top span{color:var(--muted)}.preview-panel iframe{width:100%;height:850px;border:0}.share-block{border-top:1px solid #eee0d5;padding-top:20px;display:grid;gap:9px;font-size:12px}.copy-row{display:flex;gap:7px}.copy-row input{min-width:0}.warning{color:#904b3d;line-height:1.6;margin:0}.hint{line-height:1.6;margin:0 0 10px}.wedding-page{background:#faf7f0}.wedding-nav{padding:19px 6%;display:flex;justify-content:space-between;align-items:center;background:#faf7f0}.wedding-nav .monogram{font-family:'Playfair Display',Georgia,serif;font-size:23px;color:var(--wine)}.monogram span{font-style:italic}.wedding-nav>div{display:flex;gap:35px}.wedding-nav>div a{font-size:11px;letter-spacing:1.7px;text-transform:uppercase}.wedding-hero{min-height:710px;background:radial-gradient(circle at 50% 45%,#fffaf1 0,#f2e9dc 73%,#e8dacd 100%);border:14px solid #f4ecdf;outline:1px solid #dac8b6;outline-offset:-24px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:75px 25px;position:relative;overflow:hidden}.hero-corner{position:absolute;color:#9f6474;opacity:.28;font-size:190px;line-height:1}.hero-corner-a{left:0;top:20px;transform:rotate(-35deg)}.hero-corner-b{right:0;bottom:20px;transform:rotate(145deg)}.wedding-invite{font-size:10px;letter-spacing:2px;color:#7d6b62;margin-top:21px}.wedding-hero h1{font-size:clamp(66px,10vw,138px);line-height:1;margin:22px 0;color:var(--wine);z-index:1;overflow-wrap:anywhere}.wedding-hero h1 span{display:block;font-style:italic;font-size:.5em;margin:9px 0;color:#b89078}.hero-mark{line-height:1;margin-top:8px}.wedding-date{letter-spacing:2.5px;font-size:13px;margin:18px 0 7px}.wedding-location{font-family:'Playfair Display',Georgia,serif;font-size:22px;margin:0 0 32px}.wedding-cta{background:var(--wine);color:white;font-size:10px;letter-spacing:2px;padding:16px 24px}.wedding-cta span{margin-left:23px}.hero-bottom{position:absolute;bottom:24px;letter-spacing:2px;font-size:9px;color:#a58d82}.story-section,.details-section,.rsvp-section{padding:105px 20px;text-align:center}.story-section{max-width:850px;margin:auto}.story-section h2,.details-section h2,.rsvp-section h2{font-size:clamp(40px,5vw,62px);margin:18px auto 25px}.story-line{height:1px;width:85px;background:#b7988d;margin:30px auto}.story-section p{font-family:'Playfair Display',Georgia,serif;line-height:2;font-size:19px;color:#6f625e;white-space:pre-line}.details-section{background:#eee4d9}.details-card{background:#faf6ef;max-width:550px;margin:35px auto 0;padding:35px 25px 55px;outline:1px solid #d8c4b4;outline-offset:-12px}.details-card h3{font-size:30px;color:var(--wine);margin:16px 0 9px}.details-card p{color:#82736c;font-size:13px;line-height:1.8}.dividerline{height:1px;width:70px;background:#cab4a5;margin:24px auto}.detail-icon{font-size:35px;color:#b6907f}.details-card a{display:inline-block;border-bottom:1px solid var(--wine);padding:15px 0 8px;margin-top:15px;color:var(--wine);font-size:11px;letter-spacing:2px}.rsvp-section p{color:var(--muted)}.rsvp-notice{margin-top:20px;display:inline-block;border:1px solid #cab6a6;color:#6c574e;padding:15px 25px;letter-spacing:1px;font-size:12px}.wedding-footer{background:var(--wine);color:white;padding:30px;font-size:11px;letter-spacing:2px}@media(max-width:900px){.landing-showcase{flex-direction:column;text-align:center}.form-layout,.editor-grid{grid-template-columns:1fr}.form-aside{display:none}.preview-panel{position:relative}.editor-head{align-items:start;flex-direction:column}.wedding-nav>div{gap:15px}.wedding-hero{min-height:650px}.hero-corner{font-size:110px}}@media(max-width:500px){.topbar{height:68px}.two{grid-template-columns:1fr}.landing>.eyebrow{margin-top:65px}.landing-showcase{margin-top:70px}.wedding-nav{flex-direction:column;gap:16px}.wedding-hero{padding:65px 20px;min-height:600px}.wedding-hero h1{font-size:58px}.hero-corner{font-size:75px}.wedding-hero .eyebrow{font-size:9px}.preview-panel iframe{height:650px}.copy-row{flex-direction:column}.editor-panel{padding:20px}}

/* Milestone 2: RSVP and private guest dashboard */
.rsvp-form{max-width:550px;margin:30px auto 0;padding:30px;background:#fffaf4;border:1px solid #dccab9;display:grid;gap:17px;text-align:left}.rsvp-form>label{display:grid;gap:7px;font-size:13px;font-weight:600;color:#604c4b}.rsvp-form input:not([type=radio]),.rsvp-form textarea{width:100%;padding:13px;border:1px solid #d4c4b9;background:white;font:inherit;box-sizing:border-box}.rsvp-form fieldset{border:1px solid #d4c4b9;display:grid;gap:12px;padding:12px 16px}.rsvp-form legend{padding:0 6px;font-size:13px;font-weight:600}.rsvp-form fieldset label{font-size:13px}.rsvp-form .wedding-cta{border:0;cursor:pointer}.rsvp-privacy{font-size:12px!important;line-height:1.6;text-align:left}.rsvp-trap{position:absolute;left:-9999px}.rsvp-section .success,.rsvp-section .errors{max-width:550px;margin:15px auto}.guest-dashboard{max-width:1280px;margin:65px auto;padding:0 24px}.guest-dashboard h1{font-size:clamp(40px,5vw,65px);margin:10px 0}.guest-dashboard>p{color:#786d65}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin:35px 0}.stat-grid>div{background:white;border:1px solid #e8dcd0;padding:28px 20px}.stat-grid strong{font-family:Georgia,serif;font-size:42px;color:var(--wine);display:block}.stat-grid span{font-size:12px;color:#80736a}.guest-toolbar{display:flex;gap:20px;justify-content:space-between;align-items:center;margin:30px 0}.guest-toolbar p{color:#786d65;font-size:13px}.guest-table-wrap{overflow-x:auto;background:white;border:1px solid #e8dcd0}.guest-table{border-collapse:collapse;width:100%;font-size:13px}.guest-table th{text-align:left;background:#efe6df;white-space:nowrap}.guest-table td,.guest-table th{padding:16px;border-bottom:1px solid #eee4da;vertical-align:top}.guest-table td small{display:block;color:#81746b;margin-top:5px}.guest-table td{min-width:90px;overflow-wrap:anywhere}.guest-table td:first-child{min-width:175px}@media(max-width:750px){.stat-grid{grid-template-columns:repeat(2,1fr)}.guest-toolbar{flex-direction:column;align-items:start}.rsvp-form{padding:20px}}

/* Milestone 3 invitations */
.invitation-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin:25px 0 40px}.invitation-actions{display:flex;gap:8px;flex-wrap:wrap}.inline-check{display:flex!important;flex-direction:row!important;align-items:center;gap:10px!important}.inline-check input{width:auto!important}.invitation-grid .editor-panel{align-content:start}.invitation-grid .fields input{max-width:100%}@media(max-width:750px){.invitation-grid{grid-template-columns:1fr}}

/* Milestone 4 design and photos */
.fields select{width:100%;padding:14px;border:1px solid #d7ccc0;background:#fffdf9;color:var(--ink);font:inherit}.current-photo img{width:100%;max-height:190px;object-fit:cover}.current-photo{display:grid;gap:10px}.editor-status{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:16px 20px;margin:0 0 24px;border:1px solid #d9cbbb;background:#fff}.editor-status strong{font-size:14px}.editor-status span{font-size:12px;color:#77675f}.editor-status a{font-size:12px;text-decoration:underline;margin-left:auto}.status-closed{border-color:#cba8a8;background:#fff4f2}.status-open{border-color:#b4d5bb;background:#f2fbf3}.preview-devices{display:flex;gap:5px}.preview-devices button{font:inherit;padding:5px 10px;border:1px solid #d5c6b8;background:white;cursor:pointer}.preview-devices button[aria-pressed=true]{background:var(--wine);color:white}.preview-panel.mobile-preview iframe{max-width:390px;display:block;margin:auto;box-shadow:0 0 0 12px #eee5db;min-height:740px}.preview-panel.mobile-preview{padding-bottom:22px}.wedding-page.theme-sage{--wine:#486453;--deep:#283b30;--ivory:#f7f6ed;--cream:#e5e7d7}.wedding-page.theme-rose{--wine:#a44e69;--deep:#713045;--ivory:#fff5f2;--cream:#f1dedb}.wedding-page.theme-midnight{--wine:#493c60;--deep:#292039;--ivory:#f9f3e9;--cream:#e8decf}.wedding-page .wedding-hero{background:radial-gradient(circle at 50% 45%,#fffaf1 0,var(--cream) 100%)}.wedding-hero.has-cover{background-image:linear-gradient(rgba(28,19,23,.48),rgba(28,19,23,.55)),var(--cover-image);background-size:cover;background-position:center}.wedding-hero.has-cover h1,.wedding-hero.has-cover .eyebrow,.wedding-hero.has-cover .wedding-invite,.wedding-hero.has-cover .wedding-date,.wedding-hero.has-cover .wedding-location,.wedding-hero.has-cover .hero-bottom{color:#fff}.wedding-hero.has-cover .hero-mark{color:#f3d9b1}.story-photo{width:min(100%,580px);max-height:430px;object-fit:cover;display:block;margin:10px auto 35px}.story-photo[hidden]{display:none}.wedding-page .wedding-footer{background:var(--wine)}.wedding-page .wedding-cta{background:var(--wine)}.wedding-page .details-section{background:var(--cream)}.wedding-page .details-card h3,.wedding-page .details-card a,.wedding-page h1 em,.wedding-page h2 em,.wedding-page .monogram,.wedding-page .eyebrow{color:var(--wine)}@media(max-width:700px){.preview-top{flex-wrap:wrap;gap:8px}.preview-devices{width:100%}.editor-status{align-items:start;flex-direction:column}.editor-status a{margin-left:0}}
