:root{color:#25231f;font-synthesis:none;text-rendering:optimizelegibility;--card-border:#25231f1f;--card-shadow:0 18px 36px #25231f14;--copy-muted:#625d54;--surface:#fffdf8eb;--surface-strong:#fffdf8;--accent:#2f5138;--accent-strong:#1d3725;--accent-soft:#eef2ea;--danger:#8b3b2d;background:radial-gradient(circle at top,#d8a66f24,#0000 28%),linear-gradient(#faf8f3 0%,#f5f0e7 100%);font-family:Aptos,Trebuchet MS,Segoe UI,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0}a{color:inherit}button,input,select,textarea{font:inherit}.site-header{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:10;background:#faf8f3eb;border-bottom:1px solid #25231f1a;justify-content:space-between;align-items:center;min-height:72px;padding:0 5vw;display:flex;position:sticky;top:0}.brand,.site-header nav,.hero-facts,.hero-actions,.plain-list li,.token-row,.icon-button,.secondary-button,button,.meta-row span,.stats-inline span,.invite-code-box,.title-row{align-items:center;display:flex}.brand{gap:.55rem;font-weight:800;text-decoration:none}.brand svg,.hero-facts svg,.plain-list svg,.token-row svg,.icon-button svg,.secondary-button svg,button svg,.meta-row svg,.stats-inline svg{width:1.05rem;height:1.05rem}.site-header nav{gap:1rem}.site-header nav a{font-size:.92rem;text-decoration:none}.hero{color:#fffdf8;background:linear-gradient(90deg,#18201bdb,#18201b7a,#18201b24),url(/hero-wedding.png) 50%/cover;min-height:calc(100vh - 72px);padding:10vh 5vw 16vh;display:flex}.hero-copy{align-self:center;max-width:760px;animation:.62s ease-out both rise-in}.eyebrow{color:#9e5a43;text-transform:uppercase;margin:0 0 .75rem;font-size:.78rem;font-weight:800}.hero .eyebrow{color:#f4c7a2}h1,h2,h3,p{overflow-wrap:anywhere}h1,h2{font-family:Iowan Old Style,Palatino Linotype,Georgia,serif;font-weight:500}h1{margin:0;font-size:clamp(3.25rem,8vw,7.5rem);line-height:.95}h2{margin:0 0 1.25rem;font-size:clamp(2rem,3vw,2.6rem);line-height:1.05}h3{margin:0}.hero-lede,.page-lede{max-width:650px;font-size:1.08rem;line-height:1.7}.hero-lede{font-size:1.25rem}.hero-facts,.hero-actions{flex-wrap:wrap;gap:.9rem}.hero-facts span,.icon-button,.secondary-button,button{border-radius:10px;gap:.45rem}.hero-facts span{background:#fffdf824;border:1px solid #fffdf847;padding:.7rem .85rem}.hero-actions{margin-top:1.6rem}.section-grid,.faq-section,.narrow-page,.admin-page{padding:5rem 5vw}.section-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:4rem;display:grid}.travel-section{background:#fffdf8}.timeline{border-left:2px solid #d8a66f;gap:1.25rem;padding-left:1.25rem;display:grid}.timeline div,.plain-list{gap:.35rem;display:grid}.timeline div{animation:.52s ease-out both rise-in}.timeline div:nth-child(2){animation-delay:80ms}.timeline div:nth-child(3){animation-delay:.14s}.timeline div:nth-child(4){animation-delay:.2s}.timeline div:nth-child(5){animation-delay:.26s}.timeline span,.plain-list,.form-message,.page-lede,.note-block p{color:var(--copy-muted)}.plain-list{margin:0;padding:0;list-style:none}.plain-list li{gap:.75rem;margin-bottom:1rem;line-height:1.55}.compact-list li{margin-bottom:.4rem}.compact-actions{margin-top:1rem}.hotel-list{gap:1rem;display:grid}.hotel-card{background:#eef2ea9e;border:1px solid #25231f1a;border-radius:8px;gap:.9rem;padding:1.25rem;display:grid}.hotel-card p,.phone-note{color:var(--copy-muted);margin:0}.hotel-card dl{grid-template-columns:max-content minmax(0,1fr);gap:.45rem 1rem;margin:0;display:grid}.hotel-card dt{color:var(--accent-strong);font-weight:800}.hotel-card dd{color:var(--copy-muted);margin:0}.faq-section{background:#eef2eacc}.faq-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;display:grid}.faq-grid article{background:#fffdf8cc;min-height:180px;padding:1.5rem}.narrow-page{max-width:940px;margin:0 auto}.lookup-card,.subsection-card,.callout-card,.household-card{background:var(--surface);border:1px solid var(--card-border);box-shadow:var(--card-shadow);border-radius:22px}.lookup-card,.callout-card{padding:2rem}.lookup-form,.rsvp-form,.admin-page,.subsection-card,.results-list,.household-card,.modal-form,.loading-card,.loading-pulse,.qr-modal-content{gap:1rem;display:grid}.lookup-form{max-width:520px;margin-top:1.5rem}.admin-page{gap:1.5rem}.admin-grid{grid-template-columns:minmax(0,1fr);gap:1.5rem;display:grid}.rsvp-form fieldset,.admin-page fieldset{border:1px solid #25231f24;border-radius:16px;gap:1rem;margin:0;padding:1.25rem;display:grid}legend{padding:0 .35rem;font-weight:800}label{gap:.35rem;font-weight:700;display:grid}.checkbox-row{align-items:center;gap:.7rem;display:flex}input,select,textarea{background:var(--surface-strong);color:#25231f;border:1px solid #25231f2e;border-radius:10px;min-height:46px;padding:.7rem .85rem}textarea{resize:vertical;min-height:120px}button,.icon-button,.secondary-button{cursor:pointer;border:0;justify-content:center;min-height:46px;padding:.8rem 1rem;font-weight:800;text-decoration:none}button:not(.secondary-button),.icon-button{background:var(--accent);color:#fffdf8}.secondary-button{color:var(--accent-strong);background:#2f51381a}.button-inline{width:fit-content}.danger-button{color:var(--danger);background:#8b3b2d1a}button:disabled,.secondary-button:disabled{cursor:progress;opacity:.72}.section-heading,.admin-toolbar,.toolbar-actions,.token-row,.split-fields,.filter-grid,.invite-actions-row,.meta-row,.stats-grid,.stats-inline,.invite-code-box{gap:1rem}.section-heading,.admin-toolbar,.toolbar-actions{justify-content:space-between;align-items:flex-start;display:flex}.token-row{background:var(--surface);border:1px solid var(--card-border);box-shadow:var(--card-shadow);border-radius:18px;padding:1rem}.token-row input{flex:1}.subsection-card{padding:1.5rem}.split-fields,.filter-grid,.stats-grid{display:grid}.split-fields,.filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.invite-actions-row{flex-wrap:wrap;align-items:center;display:flex}.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.stats-grid article{background:#eef2eab8;border-radius:16px;gap:.3rem;padding:1rem;display:grid}.stats-grid strong{font-size:1.8rem}.results-list{align-content:start}.filter-toggle{align-self:end;min-height:46px}.household-card{padding:1.35rem}.title-row,.meta-row,.stats-inline{flex-wrap:wrap}.title-row{gap:.75rem;margin-bottom:.45rem}.status-pill{text-transform:capitalize;border-radius:999px;padding:.32rem .7rem;font-size:.8rem;font-weight:800}.status-pill.attending{color:var(--accent-strong);background:#2f51381f}.status-pill.partial{color:#855221;background:#d8a66f2e}.status-pill.declined{color:var(--danger);background:#8b3b2d24}.status-pill.not_started,.status-pill.invite-not_generated{color:#3e3b35;background:#25231f14}.status-pill.invite-generated{color:var(--accent-strong);background:#2f51381f}.status-pill.invite-exported{color:#855221;background:#d8a66f2e}.status-pill.invite-sent{color:var(--accent-strong);background:#2f51382e}.status-pill.invite-archived{color:var(--danger);background:#8b3b2d24}.meta-row,.stats-inline{color:var(--copy-muted);font-size:.94rem}.meta-row{gap:.85rem}.stats-inline{border-top:1px solid #25231f14;border-bottom:1px solid #25231f14;padding:.85rem 0}.member-list{gap:.6rem;display:grid}.member-row{background:#fffdf8b8;border:1px solid #25231f14;border-radius:14px;justify-content:space-between;align-items:center;gap:1rem;padding:.9rem 1rem;display:flex}.note-block{background:#eef2ea85;border-radius:14px;padding:.9rem 1rem}.edit-panel{background:#fffdf8bd;border:1px solid #25231f1f;border-radius:16px;gap:1rem;padding:1rem;display:grid}.warning-message{color:#6f441d;background:#d8a66f29;border:1px solid #85522138;border-radius:12px;margin:0;padding:.75rem .9rem}.compact-message{margin:0}.note-block strong{margin-bottom:.35rem;display:block}.note-block p{margin:0}.callout-card{gap:1rem;display:grid}.invite-code-box{background:#fffdf8;border:1px dashed #25231f3d;border-radius:16px;flex-wrap:wrap;justify-content:space-between;padding:1rem}.invite-code-box strong{letter-spacing:.04em;font-size:1.05rem}.subsection-card>h2,.callout-card>h2{margin-bottom:0}.confirmation-row{background:#eef2ea9e;border:1px solid #25231f14;border-radius:8px;justify-content:space-between;align-items:center;gap:1rem;padding:.8rem 1rem;display:flex}.confirmation-row .form-message{margin:0}.inline-loading-shell{background:linear-gradient(135deg,#eef2eadb,#fffdf8f2);border:1px solid #2f513824;border-radius:18px;padding:1rem;overflow:hidden}.loading-card{min-height:300px}.loading-pulse{grid-template-columns:auto minmax(0,1fr);align-items:center}.loading-pulse.compact{gap:.8rem}.loading-pulse.compact h1{font-size:clamp(1.25rem,4vw,1.8rem);line-height:1.1}.loading-pulse.compact .page-lede{margin:0;font-size:.98rem}.loading-orbit{place-items:center;width:92px;height:92px;display:grid;position:relative}.loading-orbit:before{content:"";border:2px solid #2f513829;border-top-color:#2f51388c;border-radius:50%;width:100%;height:100%;animation:2.6s linear infinite shimmer-rotate;position:absolute}.loading-orbit span{background:linear-gradient(#d8a66f,#9e5a43);border-radius:999px;width:12px;height:12px;animation:1.9s ease-in-out infinite pulse-bob;position:absolute;box-shadow:0 10px 22px #9e5a4338}.loading-orbit span:first-child{animation-delay:0s;top:8px}.loading-orbit span:nth-child(2){animation-delay:.2s;right:10px}.loading-orbit span:nth-child(3){animation-delay:.4s;bottom:10px;left:14px}.modal-backdrop{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:30;background:#18201b6b;justify-content:center;align-items:center;padding:1.25rem;display:flex;position:fixed;inset:0}.modal-card{background:#fffdf8fa;border:1px solid #25231f1f;border-radius:24px;width:min(100%,760px);max-width:760px;max-height:min(88vh,960px);padding:1.5rem;animation:.26s ease-out both modal-in;overflow:auto;box-shadow:0 30px 60px #18201b33}.qr-modal-content{text-align:center;justify-items:center}.qr-code-image{background:#fff;border:1px solid #25231f1a;border-radius:18px;width:min(100%,256px);max-width:256px;padding:.8rem}@keyframes rise-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse-bob{0%,to{transform:scale(.88)}50%{transform:scale(1.18)}}@keyframes modal-in{0%{opacity:0;transform:translateY(16px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@media (width<=980px){.admin-grid,.faq-grid,.section-grid{grid-template-columns:1fr}}@media (width<=760px){.site-header{flex-direction:column;justify-content:center;align-items:flex-start;gap:.6rem;min-height:96px;padding-top:1rem;padding-bottom:1rem}.hero{min-height:calc(100vh - 96px);padding-top:7vh}.split-fields,.filter-grid,.stats-grid,.section-heading,.admin-toolbar,.toolbar-actions,.invite-actions-row,.token-row,.member-row,.invite-code-box,.confirmation-row,.loading-pulse{grid-template-columns:1fr}.section-heading,.admin-toolbar,.toolbar-actions,.invite-actions-row,.token-row,.member-row,.confirmation-row,.loading-pulse{display:grid}.loading-orbit{margin:0 auto}.modal-card{max-height:92vh;padding:1.25rem}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=560px){.section-grid,.faq-section,.narrow-page,.admin-page{padding-left:1.25rem;padding-right:1.25rem}h1{font-size:clamp(2.7rem,12vw,4.1rem)}.stats-grid{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}
