:root{--cream:#f6eee6;--blush:#edd4c8;--gold:#b08968;--ink:#2c241e;--muted:#7a6a60;--paper:#fffaf6;--danger:#9a3f3f;--sans:"Source Sans 3", "Segoe UI", sans-serif;--serif:"Cormorant Garamond", Georgia, serif}*{box-sizing:border-box}html,body,#root{min-height:100%}body{color:var(--ink);font-family:var(--sans);background:var(--cream);margin:0}h1,h2{font-family:var(--serif);letter-spacing:.01em;font-weight:600}a{color:inherit}button,input,textarea{font:inherit}.eyebrow,.invite-kicker{color:var(--gold);letter-spacing:.22em;text-transform:uppercase;margin:0 0 .15rem;font-size:.78rem}.muted{color:var(--muted)}.form-error{color:var(--danger)}.btn,.invite-choices button{min-height:44px;color:var(--ink);cursor:pointer;background:#fff;border:1px solid #d8c4b5;border-radius:999px;justify-content:center;align-items:center;padding:.6rem 1rem;text-decoration:none;display:inline-flex}.btn-primary{background:var(--ink);border-color:var(--ink);color:#fff}.btn:disabled,.invite-choices button:disabled{opacity:.6;cursor:wait}.admin-shell{max-width:960px;margin:0 auto;padding:1.5rem 1rem 3rem}.admin-shell--narrow{align-items:center;max-width:420px;min-height:100dvh;display:grid}.admin-header,.admin-actions,.invite-row{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.admin-header{justify-content:space-between;margin-bottom:1.5rem}.admin-card,.invite-row{background:var(--paper);border:1px solid #eadcd1;border-radius:18px;padding:1.25rem}.admin-card{gap:.85rem;display:grid}.admin-grid{gap:1rem;display:grid}@media (width>=840px){.admin-grid{grid-template-columns:1.4fr .8fr;align-items:start}}.admin-card label,.invite-rsvp label,.admin-subcard label{color:var(--muted);gap:.35rem;font-size:.92rem;display:grid}.admin-section{gap:.75rem;padding-top:.4rem;display:grid}.admin-section h2{margin:0;font-size:1.35rem}.admin-section-head{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.admin-subcard{background:#fff;border:1px solid #eadcd1;border-radius:14px;gap:.7rem;padding:.9rem;display:grid}.check-row{flex-wrap:wrap;gap:1rem;display:flex}.inline-check{color:var(--ink);align-items:center;gap:.4rem;display:flex}.inline-check input{width:auto}input,textarea{width:100%;color:var(--ink);background:#fff;border:1px solid #e1d0c4;border-radius:12px;padding:.75rem .8rem}.invite-table{gap:.8rem;display:grid}.invite-row{justify-content:space-between}.invite-row h2{margin:0;font-size:1.4rem}.invite-row h2 a{text-decoration:none}.admin-modal-backdrop{z-index:20;background:#2c241e6b;place-items:center;padding:1.25rem;display:grid;position:fixed;inset:0}.admin-modal{background:var(--paper);text-align:center;border:1px solid #eadcd1;border-radius:18px;justify-items:center;gap:.75rem;width:min(100%,360px);padding:1.4rem 1.25rem 1.25rem;display:grid;box-shadow:0 24px 60px #5a32282e}.admin-modal h2{margin:0;font-size:1.7rem}.admin-qr{background:#fff;border-radius:16px;place-items:center;padding:.85rem;display:grid}.admin-modal .share-url{margin:0}.share-url{word-break:break-all;font-size:.92rem}.back-link{color:var(--muted);text-decoration:none}.status{background:#eee4db;border-radius:999px;padding:.25rem .7rem;font-size:.85rem;display:inline-flex}.status--yes{background:#dcecdc}.status--maybe{background:#f4e6c8}.status--no{background:#f3d8d4}.rsvp-note{font-family:var(--serif);font-size:1.15rem;font-style:italic}.invite{background:radial-gradient(at 50% 0,#f8e6dc 0%,#f3d5c7 42%,#e7cbbd 100%);place-items:start center;min-height:100dvh;padding:1.5rem 1.25rem 2.5rem;display:grid}.invite:before{content:"";pointer-events:none;background-image:radial-gradient(#5032280d .6px,#0000 .6px);background-size:3px 3px;position:fixed;inset:0}.invite-letter{text-align:center;background:#fffaf6eb;border:1px solid #b0896859;width:min(100%,440px);padding:1.35rem 1.6rem 1.25rem;animation:1.1s unfold;position:relative;box-shadow:0 24px 60px #5a32281f}.invite-letter--flow{grid-template-rows:1fr auto auto;min-height:min(78dvh,640px);display:grid}.invite-progress{justify-content:center;gap:.4rem;margin-top:.75rem;display:flex}.invite-progress span{background:#e4d0c3;border-radius:999px;width:7px;height:7px;transition:transform .35s,background .35s,width .35s}.invite-progress span.is-done{background:#c9a48a}.invite-progress span.is-current{background:var(--gold);width:18px;transform:scale(1.05)}.invite-stage{align-items:start;display:grid;overflow:hidden}.invite-page{justify-items:center;gap:.45rem;padding-top:.15rem;display:grid}.invite-page-title{margin:0 0 .2rem;font-size:1.85rem;line-height:1.15}.invite-page .invite-picks,.invite-page .invite-choices{text-align:left;width:min(78%,17.5rem)}.invite-page .invite-itinerary{text-align:left;width:100%}.invite-page--forward{animation:.55s cubic-bezier(.22,1,.36,1) page-in}.invite-page--back{animation:.55s cubic-bezier(.22,1,.36,1) page-in-back}.invite-nav{justify-content:space-between;align-items:center;gap:.75rem;min-height:44px;margin-top:.9rem;display:flex}.invite-nav .btn-primary{min-width:8.5rem}.invite-letter h1{margin:.15rem 0 .2rem;font-size:clamp(2.4rem,10vw,3.4rem);line-height:.95}.invite-from,.invite-body,.invite-meta{color:var(--muted)}.invite-from{font-family:var(--serif);margin:0 0 1rem;font-size:1.2rem;font-style:italic}.invite-rule{background:var(--gold);width:72px;height:1px;margin:0 auto 1.1rem}.invite-meta{margin:.2rem 0}.invite-body{font-family:var(--serif);font-size:1.2rem;line-height:1.55}.invite-map{color:var(--gold)}.invite-rsvp,.invite-thanks{gap:.8rem;margin-top:1.4rem;display:grid}.invite-choices{gap:.55rem;display:grid}.invite-choices button{border-color:var(--gold);width:100%;font-family:var(--serif);background:0 0;font-size:1.15rem}.invite-choices button.is-selected,.invite-choices button:hover,.invite-picks button.is-selected,.invite-picks button:hover{background:var(--ink);border-color:var(--ink);color:#fff}.invite-block{text-align:left;gap:.7rem;margin-top:1.1rem;display:grid}.invite-itinerary{gap:.9rem;margin:0;padding:0;list-style:none;display:grid}.invite-itinerary li{border-left:1px solid var(--gold);padding:0 0 .2rem 1rem;position:relative}.invite-itinerary strong{font-family:var(--serif);font-size:1.15rem;font-weight:600;display:block}.invite-itinerary p{color:var(--muted);margin:.15rem 0 0;font-size:.95rem}.invite-time{color:var(--gold);letter-spacing:.16em;text-transform:uppercase;font-size:.78rem;display:block}.invite-picks{gap:.55rem;display:grid}.invite-picks--split{grid-template-columns:1fr 1fr}.invite-picks button{border:1px solid var(--gold);width:100%;min-height:44px;color:var(--ink);text-align:left;cursor:pointer;background:0 0;border-radius:16px;gap:.15rem;padding:.7rem .9rem;display:grid}.invite-picks button span{color:var(--muted);font-size:.88rem}.invite-picks button.is-selected span,.invite-picks button:hover span{color:#fffaf6cc}.invite-end-actions{justify-items:center;gap:.85rem;margin-top:.6rem;display:grid}.invite-change{color:var(--gold);cursor:pointer;background:0 0;border:0;text-decoration:underline}@keyframes unfold{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:none}}@keyframes page-in{0%{opacity:0;transform:translate(36px)}to{opacity:1;transform:none}}@keyframes page-in-back{0%{opacity:0;transform:translate(-36px)}to{opacity:1;transform:none}}@media (width<=640px){.invite-row,.admin-header{flex-direction:column;align-items:flex-start}}
