:root{color:#242a2f;font-synthesis:none;text-rendering:optimizelegibility;--card-border:#242a2f1f;--card-shadow:0 18px 38px #1e2a3014;--copy-muted:#667077;--surface:#fffffcf0;--surface-strong:#fff;--accent:#315f53;--accent-strong:#193d35;--accent-soft:#e6f0ec;--secondary-accent:#a4543a;--ink-soft:#3d464c;--danger:#9b3d35;--danger-soft:#8b3b2d1f;background:linear-gradient(#e8f0ebe0 0%,#f6f8f6fa 38%,#f9faf8 100%);font-family:Aptos,Trebuchet MS,Segoe UI,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;margin:0}a{color:inherit}button,input,select,textarea{font:inherit}.site-header{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);z-index:10;background:#f9faf8e0;border-bottom:1px solid #242a2f1a;justify-content:space-between;align-items:center;min-height:72px;padding:0 5vw;display:flex;position:sticky;top:0}.brand,.site-header nav,.site-footer,.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{border-radius:8px;padding:.45rem .55rem;font-size:.92rem;text-decoration:none}.site-footer{color:var(--copy-muted);border-top:1px solid #242a2f14;justify-content:space-between;padding:1rem 5vw 1.35rem;font-size:.8rem}.footer-admin-link{letter-spacing:.04em;text-transform:uppercase;text-decoration:none}.hero{color:#fffffb;background:linear-gradient(90deg,#18201bdb,#18201b7a,#18201b24),url(/hero-wedding.png) 50%/cover;min-height:calc(100svh - 140px);padding:8vh 5vw 12vh;display:flex}.hero-copy{align-self:center;max-width:760px;animation:.62s ease-out both rise-in}.eyebrow{color:var(--secondary-accent);text-transform:uppercase;margin:0 0 .75rem;font-size:.78rem;font-weight:800}.hero .eyebrow{color:#ffd8ba}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:8px;gap:.45rem}.hero-facts span{background:#fffffb24;border:1px solid #fffffb47;padding:.7rem .85rem}.hero .secondary-button{color:#fffffb;background:#fffffb1f;border:1px solid #fffffb2e}.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:#fff}.timeline{border-left:2px solid #d49b63;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:#e6f0ecb8;border:1px solid #242a2f1a;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:#e6f0ecd6}.faq-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem;display:grid}.faq-grid article{background:#fffffcdb;border:1px solid #242a2f14;border-radius:8px;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:8px}.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 #242a2f24;border-radius:8px;gap:1rem;margin:0;padding:1.25rem;display:grid}legend{padding:0 .35rem;font-weight:800}label{gap:.35rem;font-weight:700;display:grid}.field-error{color:var(--danger)}.checkbox-row{align-items:center;gap:.7rem;display:flex}input,select,textarea{background:var(--surface-strong);color:#242a2f;border:1px solid #242a2f2e;border-radius:8px;min-width:0;min-height:46px;padding:.7rem .85rem;transition:border-color .16s,box-shadow .16s,background-color .16s}textarea{resize:vertical;min-height:120px}input[aria-invalid=true],select[aria-invalid=true],textarea[aria-invalid=true]{border-color:var(--danger);box-shadow:0 0 0 3px var(--danger-soft)}.field-error-message{color:var(--danger);font-size:.9rem;font-weight:700}button,.icon-button,.secondary-button{cursor:pointer;border:0;border-radius:8px;justify-content:center;min-height:46px;padding:.8rem 1rem;font-weight:800;text-decoration:none;transition:background-color .16s,box-shadow .16s,color .16s,opacity .16s,transform .16s}button:not(.secondary-button),.icon-button{background:var(--accent);color:#fffffb}.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}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:3px;outline:3px solid #a4543a52}input:focus,select:focus,textarea:focus{border-color:#315f538c;box-shadow:0 0 0 4px #315f531f}@media (hover:hover){.site-header nav a:hover,.footer-admin-link:hover{background:#315f5314}button:not(:disabled):hover,.icon-button:hover,.secondary-button:hover{transform:translateY(-1px);box-shadow:0 10px 20px #1e2a301f}.household-card:hover,.hotel-card:hover,.faq-grid article:hover{border-color:#315f5338;box-shadow:0 18px 34px #1e2a301a}}.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:8px;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:#e6f0ecb8;border-radius:8px;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:#242a2f14}.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 #242a2f14;border-bottom:1px solid #242a2f14;padding:.85rem 0}.member-list{gap:.6rem;display:grid}.member-row{background:#fffffcb8;border:1px solid #242a2f14;border-radius:8px;justify-content:space-between;align-items:center;gap:1rem;padding:.9rem 1rem;display:flex}.note-block{background:#e6f0ec94;border-radius:8px;padding:.9rem 1rem}.edit-panel{background:#fffffcbd;border:1px solid #242a2f1f;border-radius:8px;gap:1rem;padding:1rem;display:grid}.warning-message{color:#6f441d;background:#d8a66f29;border:1px solid #85522138;border-radius:8px;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}.success-card{margin-top:1rem}.invite-code-box{background:#fff;border:1px dashed #242a2f3d;border-radius:8px;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:#e6f0eca8;border:1px solid #242a2f14;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,#e6f0ece0,#fffffcf5);border:1px solid #2f513824;border-radius:8px;padding:1rem;overflow:hidden}.loading-card{min-height:300px}.loading-pulse{grid-template-columns:auto minmax(0,1fr);align-items:center}.loading-pulse h1{font-size:clamp(1.9rem,4vw,3.1rem);line-height:1.05}.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-mark{color:var(--accent-strong);background:#315f531a;border-radius:8px;place-items:center;width:92px;height:92px;display:grid;position:relative}.loading-mark:before{content:"";border:2px solid #315f5324;border-top-color:#a4543aa6;border-radius:50%;width:68px;height:68px;animation:2.6s linear infinite shimmer-rotate;position:absolute}.loading-mark svg{z-index:1;width:1.5rem;height:1.5rem;position:relative}.skeleton-stack,.admin-skeleton{gap:.75rem;display:grid}.admin-skeleton{width:100%}.skeleton-household-card{animation:.36s ease-out both rise-in}.skeleton-household-card:nth-child(2){animation-delay:80ms}.skeleton-household-card:nth-child(3){animation-delay:.14s}.skeleton-line,.skeleton-button,.skeleton-row{background:linear-gradient(90deg,#6670771f,#315f532e,#6670771f) 0 0/220% 100%;border-radius:8px;animation:1.35s ease-in-out infinite skeleton-shimmer;display:block}.skeleton-line{width:min(72%,520px);height:.9rem}.skeleton-line.wide{width:min(100%,640px)}.skeleton-line.short{width:min(42%,240px)}.skeleton-line.title{width:min(54%,320px);height:1.25rem}.skeleton-line.number{width:4rem;height:2rem}.skeleton-button{width:120px;height:46px}.skeleton-row{width:100%;height:50px}.skeleton-actions{justify-content:flex-end}.qr-loading-shell,.dashboard-refresh{width:100%}.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:#fffffcfa;border:1px solid #242a2f1f;border-radius:8px;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 #242a2f1a;border-radius:8px;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 skeleton-shimmer{0%{background-position:120% 0}to{background-position:-120% 0}}@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(100svh - 150px);padding-top:5vh}.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,.site-footer,.loading-pulse{display:grid}.loading-mark{margin:0 auto}.skeleton-actions{justify-content:stretch}.skeleton-button{width:100%}.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,.site-footer{padding-left:1.25rem;padding-right:1.25rem}.site-header nav,.button-inline,.hero-actions>a,.hero-actions>button,.toolbar-actions>a,.toolbar-actions>button,.invite-actions-row>a,.invite-actions-row>button{width:100%}.modal-backdrop{align-items:flex-end;padding:.75rem}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}}
