/* Bundled fonts are same-origin and work offline after the app caches them. */
@font-face{font-family:'WeThing Invitation Serif';src:url('./invitation-fonts/CormorantGaramond.ttf') format('truetype');font-style:normal;font-weight:300 700;font-display:swap}
@font-face{font-family:'WeThing Invitation Serif';src:url('./invitation-fonts/LiberationSerif-Italic.ttf') format('truetype');font-style:italic;font-weight:400;font-display:swap}
@font-face{font-family:'WeThing Invitation Script';src:url('./invitation-fonts/GreatVibes-Regular.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:'WeThing Invitation Sans';src:url('./invitation-fonts/LiberationSans-Regular.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
.invitation-overlay{position:fixed;inset:0;z-index:16000;display:flex;align-items:flex-start;justify-content:center;overflow:auto;overscroll-behavior:contain;background:#24161dcc;padding:24px 16px max(24px,env(safe-area-inset-bottom));box-sizing:border-box;color:#432b33;font:15px/1.5 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}
.invitation-overlay *{box-sizing:border-box}.invitation-overlay [hidden]{display:none!important}
.invitation-dialog{width:min(100%,1000px);margin:auto;background:#fff8ed;border:1px solid #e5cec1;border-radius:22px;box-shadow:0 14px 70px #170a134d;padding:24px}
.invitation-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.invitation-header h2{font:600 32px/1.2 Georgia,serif;color:#850020;margin:0}
.invitation-overlay button,.invitation-overlay input,.invitation-overlay textarea,.invitation-overlay select{font-family:inherit;font-size:16px}
.invitation-close{width:44px;height:44px;flex:0 0 44px;border:1px solid #b9868c;border-radius:50%;background:#fff9f0;color:#850020;font:30px/1 sans-serif!important;cursor:pointer}
.invitation-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:30px}.invitation-controls,.invitation-preview-column{min-width:0}
.invitation-field{display:grid;gap:7px;min-width:0;margin:0 0 15px;font-size:14px;font-weight:600;color:#573841}.invitation-field input,.invitation-field textarea,.invitation-field select{width:100%;max-width:100%;min-width:0;padding:10px 11px;border:1px solid #ceafb0;border-radius:9px;background:#fffcf7;color:#432b33;line-height:1.4;min-height:44px;font-weight:400}.invitation-field textarea{resize:vertical}.invitation-field input[aria-invalid=true]{border:2px solid #b0182b}.invitation-field input::placeholder,.invitation-field textarea::placeholder{color:#8b7377}.invitation-field small{font-size:11px;font-weight:400;text-align:right;color:#79626a}
.invitation-field-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}
.invitation-designs{border:0;padding:0;margin:0 0 20px}.invitation-designs legend{font-size:14px;font-weight:600;margin:0 0 9px}.invitation-design-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.invitation-design{border:2px solid transparent;border-radius:12px;background:#f5e9d9;padding:4px;color:#6c424e;cursor:pointer}.invitation-design[aria-pressed=true]{border-color:#95021f;box-shadow:0 0 0 2px #fff8ed inset;background:#f0dcd7}.invitation-design img{display:block;width:100%;height:auto;aspect-ratio:2/3;object-fit:cover;border-radius:7px;background:#f7ead6}.invitation-design span{display:block;font-size:12px;line-height:1.4;padding:6px 1px}
.invitation-preview{margin:0;position:sticky;top:0}.invitation-preview canvas{display:block;width:100%;height:auto;aspect-ratio:2/3;background:#f5e8d7;box-shadow:0 4px 18px #56352a20;border-radius:4px}.invitation-preview figcaption{font-size:12px;color:#7c6266;margin-top:9px;text-align:center}.invitation-status,.invitation-save-status{font-size:13px;line-height:1.5;color:#77515e;overflow-wrap:anywhere;margin:10px 0}.invitation-status:empty,.invitation-save-status:empty{display:none}.invitation-text-preview{font-size:12px;color:#72545e;margin-top:14px}.invitation-text-preview summary{cursor:pointer;min-height:36px;padding:8px 0}.invitation-text-preview div{white-space:pre-wrap;overflow-wrap:anywhere;border-left:2px solid #d9b6b8;padding:8px 12px}
.invitation-export{border-top:1px solid #e5cec1;margin-top:22px;padding-top:18px}.invitation-privacy{padding:13px 15px;border-radius:12px;background:#f2e5d6;color:#634550;font-size:13px;line-height:1.6;margin:0 0 14px}.invitation-review{display:flex;gap:11px;align-items:flex-start;font-size:14px;margin-bottom:16px;cursor:pointer}.invitation-review input{accent-color:#95021f;width:20px;height:20px;flex:0 0 20px;margin:2px 0 0}
.invitation-export-actions{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px}.invitation-format{width:105px;margin:0}.invitation-primary,.invitation-secondary{min-height:44px;border-radius:9px;padding:10px 16px;line-height:1.4;cursor:pointer}.invitation-primary{background:#95021f;border:1px solid #95021f;color:#fff8ed}.invitation-secondary{background:transparent;border:1px solid #a64d60;color:#850020}.invitation-overlay button:disabled{opacity:.55;cursor:wait}.invitation-help{font-size:12px;color:#79616a;line-height:1.6;margin:14px 0}.invitation-done{display:block;margin:18px 0 0 auto}.invitation-offline{background:#f3e1c5;padding:10px 13px;border-radius:9px;font-size:13px;color:#6d4d31}
.invitation-overlay :is(button,input,textarea,select,a,summary):focus-visible{outline:3px solid #ae7e33;outline-offset:3px}
@media(max-width:700px){.invitation-overlay{padding:12px 8px max(16px,env(safe-area-inset-bottom))}.invitation-dialog{padding:18px 14px;border-radius:17px}.invitation-header h2{font-size:27px}.invitation-body{grid-template-columns:minmax(0,1fr);gap:18px}.invitation-preview-column{max-width:420px;width:100%;margin:0 auto}.invitation-preview{position:static}.invitation-export-actions>.invitation-primary,.invitation-export-actions>.invitation-secondary{flex:1 1 130px}.invitation-export-actions>.invitation-format{flex:0 0 96px}.invitation-done{width:100%}}
@media(prefers-reduced-motion:reduce){.invitation-overlay *{scroll-behavior:auto;transition:none!important}}
/* The planner's sixth preparative owns this inline editor and its lifecycle. */
.invitation-overlay.invitation-inline{position:static;inset:auto;z-index:auto;display:block;overflow:visible;overscroll-behavior:auto;background:transparent;padding:0;color:#432b33}
.invitation-inline .invitation-dialog{width:100%;margin:0;padding:18px;border-radius:16px;box-shadow:none;border-color:#d8b8b6;background:#fff8ed}
.invitation-inline .invitation-header{margin-bottom:14px}.invitation-inline .invitation-header h2{font-size:30px}
.invitation-inline .invitation-body{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:20px}
.invitation-inline .invitation-preview{position:static}.invitation-inline .invitation-preview-column{max-width:420px;justify-self:center;width:100%}
.invitation-prepared-message{border:1px solid #dec1ba;border-radius:12px;background:#f8eee3;padding:13px;margin:0 0 16px;min-width:0}
.invitation-message-optin{display:flex;align-items:flex-start;gap:10px;font-size:14px;font-weight:600;cursor:pointer;color:#850020}
.invitation-message-optin input{accent-color:#95021f;width:20px;height:20px;flex:0 0 20px;margin:1px 0 0}
.invitation-prepared-message p{font-size:12px;line-height:1.55;color:#77515e;margin:9px 0;overflow-wrap:anywhere}.invitation-prepared-message p:empty{display:none}
.invitation-prepared-message .invitation-field{margin:12px 0}.invitation-prepared-message .invitation-prepared-excerpt{white-space:pre-wrap;padding:10px;border-left:2px solid #b57883;background:#fffbf5;max-height:180px;overflow:auto}
.invitation-prepared-message .invitation-prepared-error{color:#95021f;font-weight:600}.invitation-prepared-message .invitation-secondary{width:100%;margin-top:4px}
.invitation-custom-preserved{font-size:12px;color:#77515e;line-height:1.5;margin:-6px 0 15px}.invitation-field textarea:disabled{opacity:1;color:#79616a;background:#f4ebdf;cursor:default}
@media(max-width:700px){.invitation-inline .invitation-dialog{padding:14px 12px}.invitation-inline .invitation-header h2{font-size:27px}}
