@font-face{font-family:Second Lesson PERSONAL USE;src:url(/fonts/SecondLesson.otf)format("opentype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Ysabeau Office;src:url(/fonts/YsabeauOffice-Thin.woff2)format("woff2"),url(/fonts/YsabeauOffice-Thin.ttf)format("truetype");font-weight:100;font-style:normal;font-display:swap}@font-face{font-family:Ysabeau Office;src:url(/fonts/YsabeauOffice-Light.woff2)format("woff2"),url(/fonts/YsabeauOffice-Light.ttf)format("truetype");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:Ysabeau Office;src:url(/fonts/YsabeauOffice-Regular.woff2)format("woff2"),url(/fonts/YsabeauOffice-Regular.ttf)format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Ysabeau Office;src:url(/fonts/YsabeauOffice-Medium.woff2)format("woff2"),url(/fonts/YsabeauOffice-Medium.ttf)format("truetype");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Ysabeau Office;src:url(/fonts/YsabeauOffice-SemiBold.woff2)format("woff2"),url(/fonts/YsabeauOffice-SemiBold.ttf)format("truetype");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Ysabeau Office;src:url(/fonts/YsabeauOffice-Bold.woff2)format("woff2"),url(/fonts/YsabeauOffice-Bold.ttf)format("truetype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Ysabeau Office;src:url(/fonts/YsabeauOffice-ThinItalic.woff2)format("woff2"),url(/fonts/YsabeauOffice-ThinItalic.ttf)format("truetype");font-weight:100;font-style:italic;font-display:swap}@font-face{font-family:Ysabeau Office;src:url(/fonts/YsabeauOffice-Italic.woff2)format("woff2"),url(/fonts/YsabeauOffice-Italic.ttf)format("truetype");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:New Rome Trial;src:url(/fonts/NewRomeTrial-Light.ttf)format("truetype");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:mr_HamiltoneG Rus Regular;src:url(/fonts/mr_HamiltoneG-Rus-Regular.otf)format("opentype");font-weight:400;font-style:normal;font-display:swap}:root{--bg:#f7f5f1;--ink:#2a2a2a;--muted:#6b6b6b;--gold:#d4b46a;--gold-soft:#c9a55a;--sage:#9ba586;--sage-dark:#879472;--card-border:#a3b18a;--card-ink:#a3b18a;--serif:"Ysabeau Office", "Times New Roman", serif;--display:"New Rome Trial", "Ysabeau Office", serif;--script:"mr_HamiltoneG Rus Regular", cursive;--amp:"Second Lesson PERSONAL USE", "New Rome Trial", serif;--sans:"Manrope", system-ui, sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{font-family:var(--sans);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased}button,input{font:inherit}.page-state{text-align:center;min-height:100vh;color:var(--muted);place-items:center;padding:24px;display:grid}.page-state--error{color:#8b3a3a}.invite{width:min(100%,402px);font-family:var(--serif);background:#fff;margin:0 auto;font-weight:100;position:relative;overflow:clip}.invite__hero{width:100%;padding:30px 30px 0;position:relative}.invite__hero-frame{aspect-ratio:1;border-radius:8px;width:100%;position:relative;overflow:hidden}.invite__hero-photo{object-fit:cover;object-position:center 40%;filter:grayscale();width:100%;height:100%;display:block}.invite__deco{pointer-events:none;-webkit-user-select:none;user-select:none;position:absolute}.invite__deco--hero{z-index:2;opacity:.95;width:62%;height:auto;top:0;right:-30px}.invite__save-the-date{z-index:3;font-family:var(--script);color:#fff;text-shadow:0 2px 16px #00000047;margin:0;font-size:clamp(40px,11vw,52px);line-height:.95;position:absolute;top:28px;left:14px}.invite__intro{padding:18px 15px 4px;position:relative}.invite__block{padding:8px 15px 4px;position:relative}.invite__block--tight{padding-bottom:0}.invite__block--tight>p{margin-bottom:0;padding-bottom:0}.invite__block--tight .invite__deco-break--wishes{margin-top:0}.invite__pair-title{text-align:center;font-family:var(--display);letter-spacing:.12em;text-transform:uppercase;color:var(--ink);margin:4px 0 0;font-size:26px;font-weight:300}.invite__date-row{text-align:center;font-family:var(--display);letter-spacing:.04em;color:var(--ink);margin:12px 0 18px;font-size:26px;font-weight:300}.invite__names-stack{z-index:1;min-height:190px;margin:0 0 18px;position:relative}.invite__names-stack--single{align-items:center;min-height:100px;display:flex}.invite__deco--names{z-index:0;opacity:.85;width:52%;height:auto;top:0;right:-15px}.invite__name-gold{z-index:1;font-family:var(--display);color:var(--gold);letter-spacing:-.01em;margin:0;font-size:clamp(52px,15vw,68px);font-weight:300;line-height:.92;position:relative}.invite__name-gold--second{margin-top:-6px;padding-left:42px}.invite__ampersand{z-index:1;font-family:var(--amp);color:var(--gold);letter-spacing:-.04em;margin:-28px 0 -22px 4px;font-size:clamp(96px,28vw,120px);font-style:normal;font-weight:400;line-height:.75;position:relative}.invite__copy{margin-bottom:16px}.invite__copy p,.invite__block p{color:var(--muted);margin:0 0 10px;font-size:15px;font-weight:100;line-height:1.45}.invite__lead{font-weight:600;color:var(--ink)!important}.invite__card{border:1px solid var(--card-border);color:var(--card-ink);background:#fff;border-radius:16px;flex-direction:column;margin-bottom:18px;padding:16px 18px 18px;display:flex}.invite__card-date{font-family:var(--display);color:var(--card-ink);letter-spacing:.02em;margin:0 0 12px;font-size:24px;font-weight:300}.invite__card-venue{font-family:var(--serif);letter-spacing:.06em;text-transform:uppercase;color:var(--card-ink);margin:0 0 6px;font-size:15px;font-weight:600}.invite__card-address{color:var(--card-ink);flex-direction:column;margin:0;font-size:14px;line-height:1.4;text-decoration:none;transition:opacity .15s;display:flex}.invite__card-address:hover{opacity:.78}.invite__card-map{letter-spacing:.04em;text-transform:uppercase;text-underline-offset:3px;text-align:right;align-self:flex-end;margin-top:12px;font-size:12px;font-weight:600;text-decoration:underline;display:block}.invite__deco-break{pointer-events:none;justify-content:flex-start;align-items:flex-end;height:110px;margin:-2px 0 -22px;padding:0;display:flex;overflow:visible}.invite__deco-break img{width:68%;max-width:none;height:auto;margin-left:-8px;display:block;transform:translateY(12%)}.invite__deco-break--wishes{justify-content:flex-start;align-items:flex-start;height:auto;margin:0 -15px 4px;padding:0}.invite__deco-break--wishes img{width:78%;max-width:none;margin-top:0;margin-left:-6px;transform:none}.invite__deco--palette{object-fit:contain;object-position:top right;z-index:0;opacity:.95;width:48%;max-width:180px;height:auto;max-height:220px;top:8px;right:-15px}.invite__block--dresscode>:not(.invite__deco--palette){z-index:1;position:relative}.invite__hint{z-index:2;position:relative;margin-top:16px!important}.invite__section-title{font-family:var(--display);color:var(--gold-soft);margin:0 0 8px;font-size:40px;font-weight:300;line-height:1.05}.invite__palette-label{font-family:var(--script);color:#222!important;margin:8px 0 10px!important;font-size:44px!important;line-height:1!important}.invite__swatches{flex-wrap:wrap;gap:14px;margin-bottom:8px;display:flex}.invite__swatches span{border:1px solid #0000000f;border-radius:50%;width:52px;height:52px}.invite__signature-wrap{min-height:110px;margin:18px 15px 8px;position:relative;overflow:visible}.invite__signature{z-index:1;font-family:var(--script);color:var(--ink);margin:0;font-size:44px;line-height:1.05;position:relative}.invite__deco--love{z-index:0;opacity:.9;width:48%;height:auto;bottom:-12%;right:-15px}.invite__cta-wrap{padding:10px 21px 22px}.invite__cta{background:var(--sage);color:#fff;width:100%;font-family:var(--sans);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;border:0;border-radius:14px;padding:18px 16px;font-size:15px;font-weight:700;transition:background .2s,transform .15s}.invite__cta:hover:not(:disabled){background:var(--sage-dark)}.invite__cta:active:not(:disabled){transform:translateY(1px)}.invite__cta:disabled{opacity:.75;cursor:default}.invite__footer{width:100%;margin-top:8px}.invite__footer-photo{aspect-ratio:402/196;object-fit:cover;object-position:center;filter:grayscale();width:100%;height:auto;display:block}.popup-backdrop{z-index:50;background:#14141473;place-items:center;padding:20px;animation:.2s fade-in;display:grid;position:fixed;inset:0}.popup{text-align:center;background:#fff;border-radius:20px;width:min(100%,360px);padding:28px 24px;animation:.25s pop-in;box-shadow:0 20px 60px #0000002e}.popup__title{font-family:var(--serif);color:var(--gold);margin:0 0 10px;font-size:32px;font-weight:500}.popup__message{color:var(--muted);margin:0 0 14px;line-height:1.4}.popup__survey{color:var(--ink);margin:0 0 22px;font-size:14px;line-height:1.45}.popup__survey a{color:var(--sage-dark);text-underline-offset:2px;font-weight:600;text-decoration:underline}.popup__btn{background:var(--sage);color:#fff;cursor:pointer;border:0;border-radius:12px;padding:12px 28px;font-weight:600}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes pop-in{0%{opacity:0;transform:translateY(10px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.admin{width:min(1100px,100% - 32px);margin:0 auto;padding:32px 0 64px}.admin--login{place-items:center;min-height:100vh;display:grid}.admin__login{border:1px solid var(--card-border);background:#fff;border-radius:18px;gap:12px;width:min(100%,420px);padding:28px;display:grid}.admin__login h1,.admin__header h1,.admin__card h2{font-family:var(--serif);margin:0;font-weight:500}.admin__login p,.admin__header p{color:var(--muted);margin:0}.admin__login input,.admin__form input{border:1px solid var(--card-border);background:#fff;border-radius:10px;width:100%;padding:12px 14px}.admin__login button,.admin__form button{background:var(--sage);color:#fff;cursor:pointer;border:0;border-radius:10px;padding:12px 16px;font-weight:600}.admin__header{justify-content:space-between;align-items:start;gap:16px;margin-bottom:24px;display:flex}.admin__ghost,.admin__link,.admin__danger{border:1px solid var(--card-border);cursor:pointer;background:#fff;border-radius:10px;padding:10px 14px}.admin__danger{color:#8b3a3a}.admin__stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:20px;display:grid}.admin__stats div{border:1px solid var(--card-border);background:#fff;border-radius:14px;gap:4px;padding:16px;display:grid}.admin__stats strong{font-family:var(--serif);font-size:32px;font-weight:500}.admin__stats span{color:var(--muted);font-size:14px}.admin__card{border:1px solid var(--card-border);background:#fff;border-radius:16px;margin-bottom:16px;padding:20px}.admin__form{grid-template-columns:repeat(4,minmax(0,1fr));align-items:end;gap:12px;margin-top:16px;display:grid}.admin__form label{color:var(--muted);gap:6px;font-size:13px;display:grid}.admin__error{color:#8b3a3a;margin:8px 0 0}.admin__info{color:#3f5d2c;margin:8px 0 0}.admin__hint{color:var(--muted);margin:0;font-size:14px;line-height:1.4}.admin__excel-actions{flex-wrap:wrap;align-items:center;gap:12px;margin-top:14px;display:flex}.admin__excel-actions button,.admin__file{background:var(--sage);color:#fff;cursor:pointer;border:0;border-radius:10px;padding:10px 14px;font-weight:600}.admin__file{align-items:center;display:inline-flex}.admin__file input{display:none}.admin__check{color:var(--muted);align-items:center;gap:8px;font-size:14px;display:inline-flex}.admin__messages-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.admin__search{width:100%;font:inherit;border:1px solid #ddd;border-radius:10px;margin-top:12px;padding:10px 12px}.admin__messages{gap:12px;margin-top:14px;display:grid}.admin__message{background:#fafafa;border:1px solid #eee;border-radius:12px;padding:12px 14px}.admin__message header{justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;display:flex}.admin__message pre{white-space:pre-wrap;font-family:var(--sans);color:var(--ink);margin:0;font-size:13px;line-height:1.45}.admin__table-wrap{margin-top:12px;overflow-x:auto}.admin__table{border-collapse:collapse;width:100%}.admin__table th,.admin__table td{text-align:left;vertical-align:top;border-bottom:1px solid #eee;padding:12px 10px;font-size:14px}.admin__table small{color:var(--muted)}.badge{border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-block}.badge--accepted{color:#3f5d2c;background:#e7f0df}.badge--pending{color:#7a6230;background:#f3efe6}@media (width<=860px){.admin__stats,.admin__form{grid-template-columns:1fr 1fr}}@media (width<=560px){.admin__stats,.admin__form{grid-template-columns:1fr}.admin__header{flex-direction:column}}
