@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650&family=Italiana&family=Great+Vibes&display=swap";:root{--bg:#f7f5f0;--surface:#fdfcf9;--green:#31473a;--sage:#899b83;--line:#e4e5dc;--muted:#777c72;--text:#292d2a;--soft:#e5eadf}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px DM Sans,sans-serif}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button{border:1px solid var(--line);background:var(--surface);color:var(--green);border-radius:7px;padding:11px 16px;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:.18s}button:hover{background:#e9ede4}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--green);color:#fff;border-color:var(--green)}button.primary:hover{background:#435c49}button.icon{padding:9px;width:36px;height:36px;background:transparent;border-color:transparent}button.icon:hover{background:#e7eadd}button.text{border:0;background:transparent;padding:7px;color:var(--green)}svg{width:17px;height:17px;stroke:currentColor;stroke-width:1.5;fill:none;flex-shrink:0}a{color:inherit}button:focus-visible,a:focus-visible{outline:2px solid var(--sage);outline-offset:4px}input,select,textarea{border:1px solid #daddd2;border-radius:6px;background:var(--surface);padding:12px;color:var(--text);max-width:100%}input:focus,select:focus,textarea:focus{outline:2px solid #899b8370;outline-offset:1px}h1,h2,h3,p{margin:0}h1,h2,h3,.serif{font-family:Italiana,Georgia,serif;font-weight:400}.muted{color:var(--muted)}.eyebrow{text-transform:uppercase;font-size:11px;letter-spacing:2.2px;font-weight:600}.shell{min-height:100vh;padding-left:88px}.rail{width:88px;position:fixed;inset:0 auto 0 0;border-right:1px solid var(--line);display:flex;align-items:center;flex-direction:column;padding:30px 0;gap:24px;background:#f0f1e9}.brandmark{font-family:Georgia,serif;font-style:italic;font-size:38px;color:var(--green);text-decoration:none}.rail .active{background:#dce3d5}.rail-bottom{margin-top:auto;writing-mode:vertical-rl;transform:rotate(180deg);letter-spacing:3px;font-size:10px;color:#79836e}.topbar{height:100px;margin:0 48px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{font:34px Italiana,Georgia,serif;letter-spacing:-1px;color:var(--green)}.topright{display:flex;align-items:center;gap:20px}.wedding{text-align:right;font-size:13px;line-height:1.7}.avatar{border-radius:50%;width:38px;height:38px;background:#e6e4d6;padding:0;font-family:Georgia,serif}.main{max-width:1500px;margin:auto;padding:40px 48px}.heading{display:flex;justify-content:space-between;align-items:center;gap:16px}.heading h1{font-size:46px;letter-spacing:-1.2px;margin:6px 0 10px}.heading p{color:var(--muted);font-size:14px}.heading-actions{display:flex;gap:10px}.summary{display:grid;grid-template-columns:repeat(4,1fr);padding:30px 0;margin-top:30px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.stat{padding:0 30px;border-left:1px solid var(--line)}.stat:first-child{padding-left:0;border:0}.stat .number{font:43px Italiana,Georgia,serif;display:block;color:var(--green);margin-bottom:6px}.stat-label{display:flex;align-items:center;gap:8px;color:#5a6258}.dot{width:6px;height:6px;border-radius:50%;background:#7b8d6f}.dot.no{background:#ac8f7b}.dot.pending{background:#b8b9ad}.progressline{display:flex;align-items:center;gap:24px;margin:20px 0 42px;color:var(--muted);font-size:12px}.progress{height:3px;background:#e5e7de;flex:1}.progress i{display:block;height:100%;background:#8e9c7c}.section-title{display:flex;align-items:center;gap:12px;margin-bottom:20px}.section-title h2{font-family:DM Sans,sans-serif;font-size:17px;font-weight:550}.smallcount{background:#eaece3;padding:3px 8px;border-radius:4px;font-size:12px;color:#69735d}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:20px}.search{display:flex;align-items:center;gap:9px;border:1px solid var(--line);background:var(--surface);border-radius:6px;padding-left:12px;min-width:240px}.search input{border:0;background:transparent;width:100%;outline-offset:-3px}.sort{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px}.sort select{padding:9px 26px 9px 10px;font-size:12px}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:0;overflow:auto}.tabs button{white-space:nowrap;background:transparent;border:none;border-radius:0;padding:14px 15px;color:var(--muted);font-size:13px;border-bottom:2px solid transparent}.tabs button.selected{border-bottom-color:var(--green);color:var(--green);font-weight:600}.tablewrap{min-height:280px}table{border-collapse:collapse;width:100%;table-layout:auto}th{text-align:left;font-size:11px;letter-spacing:.7px;text-transform:uppercase;font-weight:500;color:#777f72;padding:19px 12px;background:#eff0e9}td{padding:20px 12px;border-bottom:1px solid var(--line);font-size:12px;vertical-align:middle}th:first-child,td:first-child{padding-left:16px}tr:hover td{background:#f0f2eb}.name{font-size:14px;font-weight:550}.initials{display:inline-flex;width:33px;height:33px;align-items:center;justify-content:center;background:#e8e8dd;color:#6f765f;border-radius:50%;margin-right:10px;font:12px Georgia,serif}.guestname{display:flex;align-items:center;white-space:nowrap}.phone{white-space:nowrap;color:#6d756a}.linkcopy{font-size:12px;padding:6px 7px;border:0;background:transparent;max-width:168px;justify-content:flex-start}.linkcopy span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chips{display:flex;gap:5px;flex-wrap:wrap;max-width:180px}.chip{border:1px solid #dadfcf;background:#ecf0e5;padding:4px 7px;border-radius:4px;color:#626e53;font-size:11px}.badge{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;border-radius:5px;padding:6px 9px;background:#e3ebde;color:#526747;font-size:11px}.badge.no{background:#ede5df;color:#936d59}.badge.pending{background:#eaece5;color:#777f70}.table-foot{display:flex;justify-content:space-between;align-items:center;margin-top:22px;color:var(--muted);font-size:12px}.footnote{margin-top:36px;border-top:1px solid var(--line);padding-top:22px;display:flex;justify-content:space-between;color:#85897c;font-size:11px}.menu-anchor{position:relative}.dropdown{position:absolute;right:15px;top:40px;z-index:20;min-width:195px;background:var(--surface);box-shadow:0 10px 40px #31473a18;border:1px solid var(--line);border-radius:8px;padding:5px}.dropdown button{display:flex;width:100%;border:0;justify-content:flex-start;padding:10px;font-size:13px}.danger{color:#a26550!important}.empty{text-align:center;padding:65px 20px}.empty h2{font-size:30px;margin-bottom:12px}.empty p{color:var(--muted);margin-bottom:22px}.mobile-list{display:none}#toast{position:fixed;bottom:28px;left:50%;transform:translate(-50%,20px);background:var(--green);color:#fff;border-radius:8px;padding:14px 22px;box-shadow:0 8px 30px #31473a26;opacity:0;pointer-events:none;z-index:100;transition:.25s}#toast.show{opacity:1;transform:translate(-50%)}dialog{border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:30px;width:490px;max-width:calc(100% - 28px);color:var(--text);box-shadow:0 20px 90px #27372825}dialog::backdrop{background:#25322660;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.modal-head h2{font-size:34px}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:26px 0}.field{display:flex;flex-direction:column;gap:8px;font-size:13px}.field.full{grid-column:1/-1}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:25px}.helper{font-size:12px;color:var(--muted);line-height:1.7}.success-icon{border:1px solid #c5d0bb;border-radius:50%;width:58px;height:58px;margin:10px auto 25px;display:grid;place-items:center;color:var(--green);font-size:25px}.success{padding:22px 4px;text-align:center}.success h2{font-size:38px;margin-bottom:15px}.success p{line-height:1.8;color:var(--muted);margin-bottom:24px}.invite-toolbar{position:sticky;top:0;z-index:30;background:var(--bg);border-bottom:1px solid var(--line);padding:13px 28px;display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--muted)}.invite-bg{min-height:100vh;background:#e8e9de;padding:38px 20px 60px}.invitation{background:#fdfcf7;max-width:580px;margin:0 auto;box-shadow:0 6px 60px #33462c09;color:var(--green)}.invite-hero{padding:50px 38px 40px;text-align:center;position:relative}.monogram{font:18px Georgia,serif;font-style:italic;width:48px;height:48px;border:1px solid #b4bba3;border-radius:50%;display:grid;place-items:center;margin:0 auto 35px}.invite-hero .eyebrow{font-size:10px;letter-spacing:3px}.invite-names{font:86px/.95 Italiana,Georgia,serif;letter-spacing:-3px;margin:28px 0 30px}.invite-names em{font-size:48px;display:block;line-height:1.35;font-weight:400;color:#8b977d}.date{font-size:14px;letter-spacing:4px}.city{font-size:11px;letter-spacing:3px;text-transform:uppercase;margin-top:15px}.invite-quote{font:23px/1.45 Italiana,Georgia,serif;max-width:300px;margin:35px auto 26px}.invite-border{border:1px solid #d8ddcd;padding:36px 15px 20px}.hero-link{font-size:11px;text-decoration:none;letter-spacing:1.4px;display:inline-flex;gap:12px;align-items:center;text-transform:uppercase;margin:3px 0 8px}.event-section{padding:40px 45px;background:#eef0e7;text-align:center}.event-section h2,.rsvp h2{font-size:38px;margin:9px 0 16px}.event{padding:22px 0}.event+.event{border-top:1px solid #d5dccb}.event h3{font-family:DM Sans;font-size:14px;font-weight:500}.event .time{font:29px Italiana,Georgia,serif;margin:10px 0}.event p{font-size:12px;line-height:1.8;color:#737c68}.event a{font-size:12px;display:inline-flex;gap:8px;align-items:center;text-decoration:none;border-bottom:1px solid #9fa98f;padding-bottom:4px;margin-top:13px}.rsvp{padding:45px 38px;text-align:center;scroll-margin-top:75px}.rsvp>p{font-size:13px;color:#77816c;line-height:1.8}.choices{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:25px 0}.choices button{font-size:12px;min-height:59px;background:transparent}.choices button.selected{border-color:var(--green);background:#e8ecdf}.rsvp-fields{text-align:left}.question{display:block;font-size:13px;line-height:1.7;margin-bottom:12px}.counter{display:flex;align-items:center;justify-content:space-between;padding:14px;border:1px solid var(--line);margin:18px 0 25px;border-radius:6px;font-size:12px}.counter-control{display:flex;gap:14px;align-items:center}.counter button{width:30px;height:30px;padding:0}.dietchoices{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}.dietchoices button{font-size:12px;border-radius:5px;padding:9px 12px}.dietchoices button.selected{background:#e3eadb;border-color:#7d8e6d}.rsvp textarea{width:100%;margin-bottom:18px;min-height:80px}.rsvp .submit{width:100%;margin-top:18px}.rsvp .helper{font-size:11px;margin-top:14px}.invitation-footer{text-align:center;border-top:1px solid var(--line);padding:26px}.invitation-footer .serif{font-size:26px}.invitation-footer p{font-size:10px;margin-top:12px;color:var(--muted);letter-spacing:2px}.rsvp-success{padding:60px 32px;text-align:center}.rsvp-success h2{font-size:44px;margin-bottom:20px}.rsvp-success p{font-size:14px;line-height:1.9;color:#6d7964}.response-summary{background:#edf0e6;padding:20px;margin:30px 0;line-height:1.9;font-size:13px}.preview-label{max-width:580px;margin:0 auto 18px;display:flex;justify-content:space-between;font-size:11px;letter-spacing:1px;color:#788168}.error{color:#a26550;font-size:12px;margin-top:10px}@media(min-width:1450px){td{padding-top:24px;padding-bottom:24px}.main{padding-top:48px}}@media(max-width:1180px){.main{padding:30px 26px}.topbar{margin:0 26px}.phone-col,.initials{display:none}.heading h1{font-size:40px}.heading-actions button{font-size:12px}.chips{max-width:145px}.linkcopy{max-width:135px}td{padding:18px 8px}}@media(max-width:800px){.shell{padding-left:0}.rail{display:none}.topbar{height:76px;margin:0 20px}.brand{font-size:30px}.wedding{font-size:11px}.topright{gap:8px}.main{padding:26px 20px}.heading{align-items:flex-start;flex-wrap:wrap}.heading h1{font-size:39px}.heading-actions{margin-top:7px;width:100%}.heading-actions button{flex:1;font-size:12px}.summary{margin-top:26px;padding:23px 0}.stat{padding:0 11px}.stat .number{font-size:33px}.stat-label{font-size:10px;gap:5px}.progressline{font-size:10px;gap:14px;margin-bottom:30px}.toolbar{gap:10px}.search{min-width:0;flex:1}.search input{font-size:12px;width:100%}.sort>span{display:none}.sort select{max-width:117px;font-size:11px}.tabs button{font-size:11px;padding:13px 11px}.tablewrap table{display:none}.mobile-list{display:block}.guest-card{border-bottom:1px solid var(--line)}.card-head{padding:18px 0;display:flex;align-items:center;gap:10px;cursor:pointer;list-style:none}.card-head .initials{display:inline-flex}.card-head .badge{margin-left:auto}.card-name{display:flex;flex-direction:column;gap:5px;font-size:13px}.card-name small{font-size:11px;color:var(--muted)}.card-body{padding:4px 0 20px 42px;font-size:13px;line-height:2}.card-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.card-actions button{font-size:11px;padding:8px}.footnote{line-height:1.8;gap:18px;font-size:10px}.invite-toolbar{padding:10px 14px;gap:10px}.invite-toolbar button{font-size:11px}.invite-toolbar>span{font-size:10px}.invite-bg{padding:0;background:#fdfcf7}.preview-label{padding:15px 20px;margin-bottom:0;background:#e8e9de}.invitation{box-shadow:none}.invite-hero{padding:25px 20px 30px}.invite-border{padding:25px 12px 18px}.monogram{margin-bottom:25px}.invite-names{font-size:78px;margin-top:25px}.invite-quote{font-size:22px}.event-section{padding:30px}.rsvp{padding:38px 24px}.formgrid{gap:14px}dialog{padding:24px}.table-foot{font-size:10px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}html{scroll-behavior:smooth}.auth-screen{min-height:100vh;display:grid;place-items:center;padding:32px 20px;background:var(--bg)}.auth-panel{width:min(430px,100%);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:42px 0;text-align:left}.auth-brand{display:inline-flex;margin-bottom:30px;text-decoration:none}.auth-panel h1{font-size:44px;line-height:1.05;margin:10px 0 24px;color:var(--green)}.auth-form{display:grid;gap:18px}.auth-form button{width:100%}.auth-form .helper{min-height:22px}.wedding-options{display:grid;gap:10px;margin-top:24px}.wedding-option{width:100%;justify-content:space-between;text-align:left;padding:15px}.wedding-option span{display:grid;gap:5px;min-width:0}.wedding-option strong,.wedding-option small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wedding-option small{color:var(--muted);font-size:12px}.wedding-option em{font-style:normal;font-size:11px;text-transform:uppercase;letter-spacing:.7px;color:var(--sage);flex-shrink:0}@media(max-width:600px){.auth-panel{padding:34px 0}.auth-panel h1{font-size:38px}}.invitation{background:#fdfcf7;overflow:hidden}.invite-hero{padding:190px 38px 24px;isolation:isolate}.botanical-crown{position:absolute;z-index:-1;top:0;left:0;width:100%;height:260px;object-fit:cover;object-position:top;pointer-events:none}.invite-border{border:0;padding:0 18px 18px}.invite-hero .eyebrow{font-family:Georgia,serif;font-size:12px;letter-spacing:4px}.invite-names{font-family:Great Vibes,Italiana,Georgia,serif;font-size:94px;line-height:1.22;letter-spacing:0;margin:24px 0 25px;overflow-wrap:anywhere}.invite-names em{font-family:Great Vibes,Italiana,Georgia,serif;font-style:normal;font-size:43px;line-height:.9;color:#839274}.invite-quote{font-size:25px;margin:28px auto 24px}.hero-link{font-size:12px;letter-spacing:1px;padding:12px 0;border-bottom:1px solid #b1ba9e}.couple-section{padding:18px 54px 48px;text-align:center}.couple-portrait{position:relative;margin:0 auto;max-width:350px;padding:9px;border:1px solid #a7b197;background:#fdfcf7;box-shadow:0 8px 24px #52653a08}.couple-portrait img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:center}.photo-placeholder{aspect-ratio:4/5;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:14px;background:#eceee4;color:#788568;outline:1px solid #d0d8c2;outline-offset:-16px}.photo-placeholder .serif{font-size:37px}.photo-placeholder>span+span{font-size:12px;letter-spacing:1px}.couple-caption{font-family:Great Vibes,Georgia,serif;font-size:30px;line-height:1.4;margin:24px 0 0}.photo-hint{font-size:12px;line-height:1.7;color:#788568;margin:12px auto 0;max-width:260px}.photo-picker{cursor:pointer;text-decoration:underline;text-underline-offset:4px;position:relative;overflow:hidden;padding:4px;font-size:12px;letter-spacing:0}.photo-picker input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;padding:0}.photo-picker:focus-within{outline:2px solid #899b83;outline-offset:2px}.preview-label{align-items:center;gap:12px}.event-section{background:#eef0e8;border-top:1px solid #e1e6d9;border-bottom:1px solid #e1e6d9}.event-section h2,.rsvp h2{font-family:Great Vibes,Italiana,Georgia,serif;font-size:44px;line-height:1.3}.invitation-footer{position:relative;padding:38px 25px 170px;isolation:isolate}.invitation-footer .serif{font-family:Great Vibes,Georgia,serif;font-size:38px}.botanical-closing{position:absolute;bottom:0;left:0;width:100%;height:160px;object-fit:cover;object-position:top;transform:rotate(180deg);z-index:-1;pointer-events:none}.rsvp>p,.question,.choices button,.dietchoices button,.counter,.event h3{font-size:14px}.event p,.event a,.rsvp .helper{font-size:13px}@media(max-width:600px){.invite-hero{padding:150px 20px 20px}.botanical-crown{height:210px}.invite-names{font-size:78px;margin:22px 0}.invite-border{padding:0 12px 12px}.couple-section{padding:10px 38px 38px}.couple-caption{font-size:27px}.invite-quote{font-size:23px}.photo-picker{font-size:11px}.invite-names em{font-size:38px}.invitation-footer{padding-bottom:145px}.botanical-closing{height:140px}}
