@import "https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,500;0,600;1,500&family=Manrope:wght@400;500;600&display=swap";:root{color:#2a1718;font-synthesis:none;--wine:#681f2b;--ink:#2a1718;--paper:#fbf8f4;--sand:#f4efe9;--line:#d8cbc1;--gold:#9b6d4a;--muted:#735d58;background:#f4efe9;font-family:Manrope,system-ui,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input,textarea{font:inherit}button{transition:transform .15s,background .15s,opacity .15s}button:active{transform:translateY(1px)}button:disabled{cursor:wait;opacity:.65}.admin-page{background:linear-gradient(135deg,#f8f3ed,#eee6df);min-height:100vh}.topbar{z-index:10;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#f8f4efdf;border-bottom:1px solid #d8cbc1aa;position:sticky;top:0}.topbar-inner{justify-content:space-between;align-items:center;max-width:1152px;margin:auto;padding:18px 32px;display:flex}.brand,.top-actions,.row-actions,.panel-head span,.security-note,.link-button,.primary-button,.outline-button{align-items:center;display:flex}.brand{gap:12px}.brand strong{font:600 21px/1 Cormorant Garamond,Georgia,serif;display:block}.brand small{text-transform:uppercase;letter-spacing:.17em;color:#866c65;margin-top:5px;font-size:10px;display:block}.brand-mark{background:var(--wine);color:#fff4df;border-radius:50%;place-items:center;width:42px;height:42px;display:grid;box-shadow:inset 0 0 0 1px #b58c62}.top-actions{color:var(--muted);gap:22px;font-size:13px}.top-actions>span{text-overflow:ellipsis;white-space:nowrap;max-width:460px;overflow:hidden}.link-button{color:var(--wine);cursor:pointer;background:0 0;border:0;gap:7px}.admin-shell{max-width:1152px;margin:auto;padding:48px 32px 64px}.settings-panel{border:1px solid var(--line);background:#fbf8f4cc;border-radius:28px;margin-bottom:58px;padding:28px;box-shadow:0 16px 48px #401c190d}.section-title{justify-content:space-between;align-items:end;gap:24px;margin-bottom:22px;display:flex}.section-title .eyebrow{margin:0 0 5px}.section-title h2{margin:0;font:600 34px Cormorant Garamond,Georgia,serif}.section-title>span{color:var(--muted);font-size:12px}.event-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.event-form label{gap:7px;display:grid}.event-form label>span{color:#5f4945;align-items:center;gap:6px;font-size:12px;font-weight:600;display:flex}.event-form input,.event-form textarea{border:1px solid var(--line);width:100%;color:var(--ink);background:#fffdfb;border-radius:12px;outline:none;padding:12px 14px}.event-form textarea{resize:vertical;line-height:1.55}.event-form input:focus,.event-form textarea:focus{border-color:var(--gold);box-shadow:0 0 0 3px #9b6d4a22}.form-footer{justify-content:flex-end;display:flex}.save-button{background:#fff}.admin-heading{justify-content:space-between;align-items:flex-end;gap:32px;margin-bottom:36px;display:flex}.eyebrow{text-transform:uppercase;letter-spacing:.23em;color:var(--gold);font-size:11px;font-weight:600}.admin-heading h1{max-width:650px;margin:12px 0 16px;font:600 58px/.98 Cormorant Garamond,Georgia,serif}.admin-heading>div>p:last-child{max-width:580px;color:var(--muted);margin:0;font-size:15px;line-height:1.75}.primary-button{background:var(--wine);color:#fff;cursor:pointer;white-space:nowrap;border:0;border-radius:999px;justify-content:center;gap:8px;padding:14px 23px;box-shadow:0 9px 20px #681f2b1f}.primary-button:hover{background:#541823}.guest-panel{border:1px solid var(--line);background:var(--paper);border-radius:28px;overflow:hidden;box-shadow:0 20px 60px #401c1914}.panel-head{border-bottom:1px solid #e4d9d1;justify-content:space-between;padding:17px 28px;font-size:13px;display:flex}.panel-head span{gap:8px}.panel-head span:last-child{color:#8f7973}.empty-state{text-align:center;color:#7d4b42;flex-direction:column;justify-content:center;align-items:center;min-height:280px;display:flex}.empty-state h2,.guest-list h2{margin:16px 0 6px;font:600 27px Cormorant Garamond,Georgia,serif}.empty-state p{color:#7b6660}.guest-list{margin:0;padding:0;list-style:none}.guest-list li{border-bottom:1px solid #e8ded6;justify-content:space-between;align-items:center;gap:24px;padding:22px 28px;display:flex}.guest-list li:last-child{border:0}.guest-list h2{margin:0}.guest-data{min-width:0}.guest-title{align-items:center;gap:10px;margin-bottom:8px;display:flex}.rsvp-badge{text-transform:uppercase;letter-spacing:.06em;border-radius:999px;padding:4px 8px;font-size:10px;font-weight:600}.rsvp-badge.yes{color:#376144;background:#dfece2}.rsvp-badge.no{color:#8b3945;background:#f2e1e2}.rsvp-badge.waiting{color:#806d63;background:#eee7df}.guest-list code{text-overflow:ellipsis;color:#947f78;max-width:700px;font-size:12px;display:block;overflow:hidden}.row-actions{gap:8px}.outline-button{cursor:pointer;color:var(--ink);background:0 0;border:1px solid #d6c6bc;border-radius:999px;gap:7px;padding:10px 16px}.outline-button:hover{background:#f2eae4}.icon-button{cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;width:39px;height:39px;display:grid}.icon-button.danger{color:#9b3443}.icon-button.danger:hover{background:#f5e3e5}.security-note{color:#88716b;gap:8px;margin-top:18px;font-size:12px}.modal-backdrop{z-index:30;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#2a080d80;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.guest-dialog{border:1px solid var(--line);background:var(--paper);width:min(460px,100%);color:var(--ink);border-radius:24px;padding:34px;animation:.2s reveal;position:relative;box-shadow:0 30px 90px #2a080d55}.guest-dialog h2{margin:8px 0 0;font:600 38px Cormorant Garamond,Georgia,serif}.guest-dialog>p:not(.eyebrow){color:var(--muted);line-height:1.6}.dialog-close{color:#705b57;cursor:pointer;background:0 0;border:0;font-size:29px;position:absolute;top:14px;right:17px}.guest-form,.login-card form{gap:9px;margin-top:24px;display:grid}.guest-form label,.login-card label{font-size:13px;font-weight:600}.guest-form input,.login-card input{border:1px solid var(--line);background:#fff;border-radius:12px;outline:none;width:100%;padding:13px 14px}.guest-form input:focus,.login-card input:focus{border-color:var(--gold);box-shadow:0 0 0 3px #9b6d4a22}.guest-form .primary-button,.login-card .primary-button{margin-top:11px}.form-error{color:#a52222;margin:4px 0 0;font-size:13px}.toast{z-index:50;color:#fff;background:#261a18;border-radius:16px;padding:16px 20px;animation:.25s toast-in;position:fixed;bottom:24px;right:24px;box-shadow:0 16px 48px #0004}.invitation-page{background:#4b111b url(/wedding-botanical.png) 50%/cover fixed;place-items:center;min-height:100vh;padding:56px 24px;display:grid}.invitation-page:before{content:"";pointer-events:none;background:linear-gradient(#23040a25,#23040a73);position:fixed;inset:0}.invitation-card,.invitation-status{text-align:center;background:#f7efe4f5;border:1px solid #c9b38f99;border-radius:32px;width:min(720px,100%);padding:64px;animation:.6s reveal;position:relative;box-shadow:0 32px 90px #19040861}.dear{color:#704b3c;margin:38px 0 4px;font:italic 500 25px Cormorant Garamond,Georgia,serif}.invitation-card h1{color:#511a25;margin:0;font:600 60px/1.05 Cormorant Garamond,Georgia,serif}.ornament{color:#aa7b43;align-items:center;gap:14px;margin:34px 0;display:flex}.ornament:before,.ornament:after{content:"";background:linear-gradient(90deg,#0000,#b6956b,#0000);flex:1;height:1px}.invitation-copy{color:#553c35;max-width:520px;margin:auto;font:500 26px/1.45 Cormorant Garamond,Georgia,serif}.couple{color:#611d2a;margin:34px 0 0;font:600 66px Cormorant Garamond,Georgia,serif}.couple span{color:#a57747;font-size:32px}.event-grid{text-align:left;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:46px;display:grid}.event-grid>div{background:#ffffff59;border:1px solid #ccbba5;border-radius:16px;flex-direction:column;padding:16px;display:flex}.event-grid svg{color:#986d39;width:20px;margin-bottom:14px}.event-grid small,.farewell{color:#856c62;text-transform:uppercase;letter-spacing:.15em}.event-grid strong{margin-top:6px;font-size:13px;line-height:1.45}.event-grid span{color:#806d64;margin-top:5px;font-size:10px;line-height:1.4}.rsvp-section{border-top:1px solid #d7c4ae;border-bottom:1px solid #d7c4ae;margin-top:42px;padding:30px 22px}.rsvp-section>svg{color:var(--wine)}.rsvp-section h2{color:#5e2630;margin:10px 0 5px;font:600 28px Cormorant Garamond,Georgia,serif}.rsvp-section>p{color:#76615a;margin:0;font-size:13px;line-height:1.6}.rsvp-actions{justify-content:center;gap:10px;margin-top:20px;display:flex}.rsvp-button{color:#5a403a;cursor:pointer;background:#fff9f2;border:1px solid #cbb9ae;border-radius:999px;justify-content:center;align-items:center;gap:7px;padding:11px 17px;display:flex}.rsvp-button.yes:hover,.rsvp-button.yes.selected{color:#315b39;background:#e5efe5;border-color:#6b8c70}.rsvp-button.no:hover,.rsvp-button.no.selected{color:#7d303d;background:#f3e3e4;border-color:#ad737b}.rsvp-section .rsvp-saved{color:#4e7355;margin-top:14px}.farewell{margin:40px 0 0;font-size:12px}.invitation-status{width:min(500px,100%);padding:46px}.invitation-status h1{color:var(--wine);margin:0 0 12px;font:600 40px Cormorant Garamond,Georgia,serif}.invitation-status p{color:var(--muted)}.login-page{background:linear-gradient(#38101ad9,#38101ad9),url(/wedding-botanical.png) 50%/cover;place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{background:#fff8eff5;border:1px solid #fff3;border-radius:28px;width:min(460px,100%);padding:42px;box-shadow:0 28px 90px #0005}.login-card>.brand-mark{margin:auto}.login-card>.eyebrow,.login-card h1,.login-card>p{text-align:center}.login-card h1{color:#5c1d28;margin:10px 0 4px;font:600 44px Cormorant Garamond,Georgia,serif}.login-card>p{color:#715d57;line-height:1.65}.loader{border:2px solid #ccb8ad;border-top-color:var(--wine);border-radius:50%;width:28px;height:28px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@keyframes reveal{0%{opacity:0;transform:translateY(10px)}}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}@media (width<=720px){.topbar-inner,.admin-shell{padding-left:20px;padding-right:20px}.top-actions>span{display:none}.admin-shell{padding-top:30px}.settings-panel{margin-bottom:42px;padding:22px 18px}.section-title{flex-direction:column;align-items:start}.section-title>span{display:none}.event-form{grid-template-columns:1fr}.event-form .wide{grid-column:auto}.admin-heading{flex-direction:column;align-items:stretch}.admin-heading h1{font-size:45px}.guest-list li{flex-direction:column;align-items:stretch}.guest-list code{max-width:82vw}.row-actions{justify-content:space-between}.invitation-page{padding:28px 14px}.invitation-card{padding:42px 24px}.invitation-card h1{font-size:45px}.couple{font-size:49px}.event-grid{grid-template-columns:1fr}.invitation-copy{font-size:23px}.rsvp-actions{flex-direction:column}.rsvp-button{width:100%}}.invitation-page{isolation:isolate;background-position:50%;background-attachment:scroll;min-height:100svh;padding:clamp(28px,6vw,56px) clamp(14px,4vw,24px);position:relative}.invitation-page:before{z-index:-1;background:linear-gradient(#23040a4d,#23040a9c);position:absolute}.invitation-card,.invitation-status{z-index:1;-webkit-backdrop-filter:blur(5px);background:#faf6efe6}@media (width<=720px){.invitation-page{align-items:start}.invitation-card,.invitation-status{-webkit-backdrop-filter:blur(3px);background:#faf6efd1;border-radius:24px;width:100%;padding:36px 20px}.invitation-card h1{font-size:clamp(38px,11vw,45px)}.dear{margin-top:28px}.ornament{margin:28px 0}.event-grid{margin-top:34px}.rsvp-section{margin-top:34px;padding:26px 8px}.rsvp-section h2{font-size:27px}.farewell{margin-top:32px}}.invitation-copy em{font-style:italic}.invitation-message{color:#70564e;max-width:530px;margin:27px auto -12px;font-size:14px;line-height:1.65}.field-hint{color:var(--muted);font-size:11px;line-height:1.45}@media (width<=720px){.invitation-message{margin:23px auto -9px;font-size:13px}}.topbar-inner,.admin-shell{width:min(100%,540px);margin-inline:auto}.topbar-inner{gap:12px;padding:12px 18px}.top-actions{gap:12px;min-width:0}.top-actions>span{display:none}.admin-shell{padding:28px 18px 48px}.settings-panel{border-radius:22px;margin-bottom:36px;padding:22px 18px}.section-title,.admin-heading{flex-direction:column;align-items:stretch;gap:14px}.section-title h2{font-size:30px}.section-title>span{display:block}.event-form{grid-template-columns:minmax(0,1fr);gap:13px}.event-form .wide{grid-column:auto}.form-footer,.form-footer .primary-button,.admin-heading>.primary-button{width:100%}.admin-heading{margin-bottom:24px}.admin-heading h1{overflow-wrap:anywhere;max-width:none;font-size:clamp(42px,12vw,52px)}.guest-panel{border-radius:22px}.panel-head{gap:8px;padding:15px 17px}.guest-list li{flex-direction:column;align-items:stretch;gap:16px;padding:19px 17px}.guest-title{flex-wrap:wrap;align-items:flex-start}.guest-list h2{overflow-wrap:anywhere}.guest-list code{overflow-wrap:anywhere;white-space:normal;max-width:100%}.row-actions{justify-content:flex-end}.outline-button,.icon-button,.link-button{min-height:44px}.icon-button{min-width:44px}.invitation-page{padding:max(18px, env(safe-area-inset-top)) 14px max(18px, env(safe-area-inset-bottom));align-items:start}.invitation-card,.invitation-status{-webkit-backdrop-filter:blur(3px);background:#faf6efd1;border-radius:26px;width:min(100%,520px);padding:clamp(28px,8vw,42px) clamp(18px,6vw,30px)}.invitation-card h1{overflow-wrap:anywhere;font-size:clamp(38px,11vw,48px);line-height:1.04}.couple{overflow-wrap:anywhere;font-size:clamp(43px,12vw,58px);line-height:1.05}.couple span{padding-inline:5px;display:inline-block}.invitation-copy{font-size:clamp(22px,6vw,25px)}.event-grid{grid-template-columns:minmax(0,1fr);gap:10px;margin-top:34px}.event-grid>div{text-align:left;grid-template-columns:28px minmax(0,1fr);align-items:start;column-gap:10px;padding:14px;display:grid}.event-grid svg{grid-row:1/span 3;margin:2px 0 0}.event-grid small,.event-grid strong,.event-grid span{overflow-wrap:anywhere;min-width:0}.event-grid strong{font-size:14px}.event-grid span{font-size:12px}.rsvp-section{margin-top:30px;padding:25px 0}.rsvp-actions{flex-direction:column;gap:10px}.rsvp-button{width:100%;min-height:48px}.login-page{padding:max(18px, env(safe-area-inset-top)) 16px max(18px, env(safe-area-inset-bottom))}.login-card{width:min(100%,460px);padding:clamp(26px,8vw,40px) clamp(20px,7vw,34px)}.login-card .primary-button{width:100%;min-height:48px}.guest-dialog{max-height:calc(100svh - 32px);padding:30px 22px;overflow-y:auto}.guest-form .primary-button{width:100%;min-height:48px}.toast{right:max(14px, env(safe-area-inset-right));bottom:max(14px, env(safe-area-inset-bottom));left:max(14px, env(safe-area-inset-left));text-align:center}@media (width<=380px){.brand strong{font-size:18px}.brand small{font-size:8px}.brand-mark{width:36px;height:36px}.top-actions{font-size:11px}.admin-shell{padding-inline:14px}.invitation-page{padding-inline:10px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
