:root{--color-bg: #330d1c;--color-text: #fbeee7;--color-text-muted: #e6c6b8;--color-accent: #f3e3cc;--color-accent-deep: #e7d2b4;--color-border: #bd8773;--color-card-bg: #ffffff;--color-btn-text: #8a4631;--color-ink: #3f2c24;--font-serif: "Cormorant Garamond", Georgia, serif;--font-sans: "EB Garamond", Georgia, serif;--content-width: 680px;--card-radius: 10px;--btn-radius: 8px;--space-1: .5rem;--space-2: .75rem;--space-3: 1rem;--space-4: 1.5rem;--space-5: 2rem;--space-6: 3rem;--section-padding: 5rem var(--space-5);--shadow-card: 0 4px 16px rgba(120, 95, 60, .1);--nav-bg: rgba(152, 79, 56, .9);--nav-blur: 8px}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--font-sans);color:var(--color-text);background:var(--color-bg);line-height:1.6;-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--font-serif);font-weight:400;line-height:1.2}a{color:var(--color-accent);text-decoration:none}a:hover{text-decoration:underline}input,textarea,select{color:var(--color-ink)}::placeholder{color:#9a8f80}nav{position:sticky;top:0;z-index:10;background:var(--nav-bg);backdrop-filter:blur(var(--nav-blur));border-bottom:1px solid var(--color-border);padding:var(--space-3) var(--space-5)}nav ul{display:flex;justify-content:center;gap:2.5rem;list-style:none}nav a{font-family:var(--font-serif);font-style:italic;font-size:1rem;font-weight:500;letter-spacing:.02em;color:var(--color-text-muted);transition:color .2s}nav a:hover{color:var(--color-text);text-decoration:none}.hero{text-align:center;padding:8rem 2rem 6rem}.hero .eyebrow{font-family:var(--font-serif);font-style:italic;font-size:1rem;letter-spacing:.02em;color:var(--color-text-muted);margin-bottom:var(--space-4)}.hero h1{font-family:var(--font-serif);font-size:clamp(3rem,8vw,5.5rem);font-weight:400;letter-spacing:.04em;margin-bottom:var(--space-4)}.hero .date{font-family:var(--font-sans);font-size:1.1rem;font-weight:500;letter-spacing:.08em;margin-bottom:.5rem}.hero .location{font-family:var(--font-sans);font-size:.95rem;color:var(--color-text-muted)}section{max-width:var(--content-width);margin:0 auto;padding:var(--section-padding)}section h2{font-size:2.2rem;text-align:center;margin-bottom:2.5rem;color:var(--color-text)}section .content{font-size:1.05rem;color:var(--color-text-muted);line-height:1.8}.divider{max-width:var(--content-width);margin:0 auto;border:none;border-top:1px solid var(--color-border)}.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--space-5);margin-bottom:var(--space-5)}.detail-card{background:transparent;padding:var(--space-4) 0;text-align:center}.detail-card h3{font-size:1.4rem;margin-bottom:var(--space-3);color:var(--color-text)}.detail-card .time{font-weight:500;color:var(--color-accent);margin-bottom:.25rem}.detail-card .place{font-weight:500;margin-bottom:.25rem}.detail-card .address{font-size:.9rem;color:var(--color-text-muted)}.note{text-align:center;font-style:italic;font-size:.95rem}.btn-link{display:inline-block;margin-top:var(--space-3);font-weight:500;font-size:.9rem;border-bottom:1px solid var(--color-accent)}.btn-link:hover{text-decoration:none;opacity:.8}.timeline{list-style:none;max-width:360px;margin:0 auto}.timeline li{display:flex;gap:var(--space-4);padding:var(--space-3) 0;border-bottom:1px solid var(--color-border)}.timeline li:last-child{border-bottom:none}.tl-time{font-weight:500;white-space:nowrap;min-width:80px;color:var(--color-accent)}.tl-event{color:var(--color-text)}.rsvp-block{text-align:center}.btn{display:inline-block;margin-top:var(--space-4);padding:0 0 2px;background:transparent;color:var(--color-accent);font-family:var(--font-serif);font-style:italic;font-size:1.1rem;font-weight:500;letter-spacing:.02em;border-bottom:1px solid var(--color-accent);transition:opacity .2s}.btn:hover{opacity:.7;text-decoration:none}.rsvp-note{margin-top:var(--space-3);font-size:.85rem;color:var(--color-text-muted)}footer{text-align:center;padding:4rem 2rem;font-family:var(--font-serif);font-size:1.2rem;color:var(--color-text-muted);border-top:1px solid var(--color-border)}.site-footer{display:flex;justify-content:center;align-items:center;gap:var(--space-4);margin-top:var(--space-6);padding:var(--space-5) var(--space-4);border-top:1px solid var(--color-border);font-family:var(--font-sans);font-size:.85rem;color:var(--color-text-muted)}.site-footer a{color:inherit;text-decoration:underline;text-underline-offset:3px}.site-footer .logout-form{margin:0}.photo-card{margin-bottom:var(--space-5);border-radius:var(--card-radius);overflow:hidden;box-shadow:var(--shadow-card)}.photo-card img{display:block;width:100%;height:auto}.photo-card--cropped img{height:var(--photo-card-height);object-fit:cover;object-position:center calc(var(--photo-crop-y) + var(--photo-shift-y))}.splash{max-width:28rem;margin:0 auto;padding:var(--space-6) var(--space-4) 6rem;font-size:1.6rem}.splash-hero{text-align:center;margin-bottom:var(--space-6)}.splash-hero .eyebrow{font-family:var(--font-serif);font-style:italic;letter-spacing:.02em;font-size:1em;opacity:.7}.splash-hero h1{font-family:var(--font-serif);font-size:3.25em;margin:.25rem 0}.splash-hero .date{font-style:italic;opacity:.85}.splash-login{padding:var(--space-5) 0 0;border-top:1px solid var(--color-border)}.splash-login h2{font-family:var(--font-serif);margin-top:0}.splash-login .lede{opacity:.8}.login-form{display:grid;gap:var(--space-3);margin-top:var(--space-4)}.login-form label{display:grid;gap:.35rem}.login-form label span{font-size:.85em;opacity:.85}.login-form input{padding:.6rem .75rem;border-radius:var(--btn-radius);border:1px solid var(--color-border);font:inherit;font-size:1rem}.login-form button{padding:var(--space-2) var(--space-4);border-radius:var(--btn-radius);border:0;background:var(--color-accent);color:var(--color-btn-text);font:inherit;font-size:1rem;cursor:pointer;transition:background .2s}.login-form button:hover{background:var(--color-accent-deep)}.form-error{padding:var(--space-2) var(--space-3);background:#f6dede;border:1px solid #e0a3a3;color:#8a2020;border-radius:var(--btn-radius)}.splash-footer{font-size:.8em;opacity:.65;margin-top:var(--space-4);text-align:center}.admin-dialog{margin:auto;width:min(24rem,calc(100vw - 2rem));padding:var(--space-5) var(--space-4);border:1px solid var(--color-border);border-radius:var(--card-radius);box-shadow:var(--shadow-card);background:var(--color-card-bg);color:var(--color-ink)}.admin-dialog::backdrop{background:#28181273}.admin-dialog h2{font-family:var(--font-serif);margin-top:0}.admin-dialog .lede{opacity:.8}.admin-dialog input{padding:.6rem .75rem;border-radius:var(--btn-radius);border:1px solid var(--color-border);font:inherit}.admin-dialog-actions{display:flex;gap:var(--space-3);justify-content:flex-end;margin-top:var(--space-2)}.admin-dialog-actions button{padding:var(--space-2) var(--space-4);border-radius:var(--btn-radius);border:0;background:var(--color-accent);color:var(--color-btn-text);font:inherit;cursor:pointer;transition:background .2s,opacity .2s}.admin-dialog-actions button:hover{background:var(--color-accent-deep)}.admin-dialog-actions button[data-close]{background:transparent;color:#8a7f74}.admin-dialog-actions button[data-close]:hover{background:transparent;opacity:.7}.greeting{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);font-size:.9rem}.greeting-text{font-family:var(--font-serif);font-style:italic;font-size:1.15rem}.greeting-actions{display:flex;gap:1.25rem;align-items:center}.greeting-actions a{color:inherit;text-decoration:underline;text-underline-offset:3px}.logout-form{margin:0}.logout-form button{background:none;border:0;padding:0;cursor:pointer;font:inherit;color:inherit;text-decoration:underline;text-underline-offset:3px}.home{max-width:42rem;margin:0 auto;padding:var(--space-4) var(--space-4) var(--space-6);font-size:1.6rem}.home .photo-card{margin-bottom:var(--space-4)}.home-hero{text-align:center;padding:0;margin-bottom:var(--space-2)}.home-hero h1{font-family:var(--font-serif);font-size:3em;margin:.5rem 0}.home-hero .date{font-family:var(--font-serif);font-style:italic;font-size:1.5em;letter-spacing:.02em;margin:0}.home-intro{text-align:center;margin-bottom:0;font-family:var(--font-serif);font-style:italic;font-size:1.5em;opacity:.9}.agenda{display:grid;gap:var(--space-4);margin-bottom:var(--space-5)}.agenda-card{padding:var(--space-4) 0;background:transparent;text-align:center}.agenda-card+.agenda-card{border-top:1px solid var(--color-border)}.venue-photo{display:block;width:100%;height:170px;object-fit:cover;border-radius:calc(var(--card-radius) - 5px);margin-bottom:var(--space-3)}.agenda-body h3{margin:0 0 .25rem;font-family:var(--font-serif)}.agenda-meta{margin:.25rem 0}.agenda-address{margin:.25rem 0 .75rem;opacity:.75;font-size:.9em}.agenda-note{margin:.5rem 0 0;font-style:italic;opacity:.8}.agenda-phases{display:grid;gap:var(--space-3)}.agenda-phase{margin:0}.home-rsvp-cta{text-align:center;padding:var(--space-5) 0 0;border-top:1px solid var(--color-border)}.home-rsvp-cta a{display:inline-block;margin-top:var(--space-3);padding:0 0 2px;font-family:var(--font-serif);font-style:italic;font-size:1.1em;font-weight:500;color:var(--color-accent);border-bottom:1px solid var(--color-accent);text-decoration:none;transition:opacity .2s}.home-rsvp-cta a:hover{opacity:.7}.rsvp{max-width:42rem;margin:0 auto;padding:var(--space-5) var(--space-4) 6rem;font-size:1.6rem}.rsvp h1{font-family:var(--font-serif)}.rsvp-saved{padding:var(--space-2) var(--space-3);background:#dcefdc;border:1px solid #a8cfa8;color:#1f5d1f;border-radius:var(--btn-radius);margin-bottom:var(--space-4)}.rsvp-row{border-top:1px solid var(--color-border);padding:var(--space-4) 0;margin-bottom:0}.rsvp-row legend{padding:0 .5rem;font-family:var(--font-serif);font-size:1.25em}.rsvp-events{display:grid;gap:var(--space-2);margin-bottom:var(--space-3)}.rsvp-event{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3)}.rsvp-event-label{text-transform:capitalize}.rsvp-toggle{display:flex;gap:.5rem}.rsvp-toggle input{margin-right:.25rem}.rsvp-dietary{display:grid;gap:.35rem}.rsvp-dietary span{font-size:.85em;opacity:.85}.rsvp-dietary input{padding:.5rem .75rem;border-radius:var(--btn-radius);border:1px solid var(--color-border);font:inherit;font-size:1rem}.rsvp-submit{padding:var(--space-2) var(--space-5);background:var(--color-accent);color:var(--color-btn-text);border:0;border-radius:var(--btn-radius);cursor:pointer;font:inherit;font-size:1rem;transition:background .2s}.rsvp-submit:hover{background:var(--color-accent-deep)}.rsvp-help{font-size:.85em;opacity:.7;margin-top:var(--space-3)}.admin{max-width:56rem;margin:0 auto;padding:var(--space-5) var(--space-4) 6rem}.admin h1{font-family:var(--font-serif)}.admin-nav{display:flex;gap:var(--space-4);margin-bottom:var(--space-5);padding-bottom:var(--space-3);border-bottom:1px solid var(--color-border)}.admin-nav a{color:inherit}.admin-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(8rem,1fr));gap:var(--space-3);margin-bottom:var(--space-5)}.admin-stat{padding:var(--space-3);background:transparent;border:1px solid var(--color-border);border-radius:var(--card-radius);text-align:center}.admin-stat .label{font-size:.8rem;opacity:.7;text-transform:uppercase;letter-spacing:.05em}.admin-stat .value{font-family:var(--font-serif);font-size:2rem}.admin-table{width:100%;border-collapse:collapse;font-size:.9rem;margin-bottom:var(--space-5)}.admin-table th,.admin-table td{padding:.85rem 1.1rem;border-bottom:1px solid var(--color-border);text-align:left}.admin-table th{font-weight:600;background:#b08d5714}.admin-table .yes{color:#2d7a2d}.admin-table .no{color:#a83232}.admin-table .dash{opacity:.4}.admin-table .view-as{font-size:.8rem}.admin-dietary{margin-top:var(--space-5)}.admin-dietary ul{padding-left:1.25rem}.guest-section{border-top:1px solid var(--color-border)}.guest-section>summary{list-style:none;cursor:pointer;display:flex;align-items:baseline;gap:var(--space-2);padding:var(--space-3) 0;font-family:var(--font-serif);font-size:1.5rem;text-transform:capitalize}.guest-section>summary::-webkit-details-marker{display:none}.guest-section>summary:before{content:"▸";display:inline-block;color:var(--color-text-muted);transition:transform .15s}.guest-section[open]>summary:before{transform:rotate(90deg)}.guest-count{font-family:var(--font-sans);font-size:.9rem;color:var(--color-text-muted)}.guest-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--space-3);margin-top:var(--space-4)}.guest-card{border:1px solid var(--color-border);border-radius:var(--card-radius);padding:var(--space-3) var(--space-4);background:#ffffff08}.guest-card-top{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-3)}.guest-name{font-weight:600;font-size:1.05rem}.guest-att{font-weight:700}.guest-att.yes{color:#6fcf7f}.guest-att.no{color:#e58a8a}.guest-att.dash{color:var(--color-text-muted);opacity:.6}.guest-meta{margin-top:.2rem;font-size:.9rem;color:var(--color-text-muted);text-transform:capitalize}.guest-detail{margin-top:.3rem;font-size:.85rem;color:var(--color-text-muted);word-break:break-word}.impersonation-banner{display:flex;justify-content:space-between;align-items:center;padding:.6rem var(--space-4);background:#f7e2a8;color:#4a3a00;font-size:.85rem}.impersonation-banner button{background:none;border:1px solid currentColor;padding:.2rem .6rem;border-radius:.3rem;cursor:pointer;font:inherit;color:inherit}.email-form{display:grid;gap:var(--space-3);max-width:40rem}.email-form label{display:grid;gap:.35rem}.email-form label span{font-size:.85rem;opacity:.85}.email-form select,.email-form input,.email-form textarea{padding:.5rem .75rem;border-radius:var(--btn-radius);border:1px solid var(--color-border);font:inherit}.email-filters{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.email-result{font-size:.9rem;margin-top:.5rem}.home-gift-blurb{text-align:center;margin-top:var(--space-5);font-size:.95em;color:var(--color-text-muted)}.home-gift-blurb a{color:var(--color-accent)}.gifts{max-width:48rem;margin:0 auto;padding:var(--space-5) var(--space-4) var(--space-6);font-size:1.6rem}.gifts-back{display:inline-block;margin-bottom:var(--space-4);font-size:.9em}.gifts h1{text-align:center}.gifts-intro{text-align:center;opacity:.9;max-width:34rem;margin:var(--space-3) auto var(--space-5)}.gift-moments{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,14rem),1fr));gap:var(--space-4)}.gift-moment{display:flex;flex-direction:column;align-items:center;border:1px solid var(--color-border);border-radius:var(--card-radius);padding:var(--space-4);text-align:center}.gift-moment.is-funded{opacity:.55}.gift-title{font-size:1.3em;margin:0 0 .25rem}.gift-blurb{font-size:.95em;color:var(--color-text-muted);flex:1}.gift-ratio{margin-top:var(--space-2);font-size:.9em;color:var(--color-text-muted)}.gift-done{margin-top:var(--space-3);font-style:italic;color:var(--color-accent)}.gift-btn{margin-top:var(--space-3);border:1px solid var(--color-accent);border-radius:var(--btn-radius);padding:.45rem 1.3rem;background:transparent;color:var(--color-accent);font:inherit;font-size:1rem;cursor:pointer;transition:background .2s,color .2s}.gift-btn:hover{background:var(--color-accent);color:var(--color-bg)}.gift-dialog{margin:auto;width:min(20rem,calc(100vw - 2rem));padding:var(--space-4);text-align:center;font-size:1rem;background:var(--color-bg);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--card-radius);box-shadow:0 12px 40px #00000073}.gift-dialog::backdrop{background:#00000080}.gift-dialog-title{font-family:var(--font-serif);margin:0}.gift-dialog-sub{color:var(--color-text-muted);font-size:.9rem;margin:.25rem 0 var(--space-3)}.gift-dialog-options{display:flex;gap:var(--space-3);justify-content:center}.gift-opt{border:1px solid var(--color-accent);border-radius:var(--btn-radius);padding:.45rem 1.3rem;color:var(--color-accent);text-decoration:none;font-size:1rem;transition:background .2s,color .2s}.gift-opt:hover{background:var(--color-accent);color:var(--color-bg);text-decoration:none}.gift-dialog-alt{font-size:.85rem;color:var(--color-text-muted);margin-top:var(--space-3)}.gift-dialog-close{margin-top:var(--space-3);background:none;border:0;padding:0;cursor:pointer;font:inherit;color:var(--color-text-muted);text-decoration:underline}.gifts-total{margin:var(--space-3) 0 var(--space-4);font-size:1.05rem}.gifts-total strong{color:var(--color-accent)}.gifts-log-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3)}.inline-form{display:inline;margin:0}.link-btn{background:none;border:0;padding:0;cursor:pointer;font:inherit;color:var(--color-accent);text-decoration:underline}
