@import "https://fonts.googleapis.com/css2?family=Caveat:wght@400;700&family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;0,700;1,400&family=Inter:wght@400;500;600&display=swap";.language-toggle{z-index:100;background:var(--cream);border:1px solid var(--cream-dark);border-radius:9999px;align-items:center;gap:.25rem;padding:.25rem;display:flex;position:fixed;top:1rem;right:1rem}.language-toggle .lang-btn{cursor:pointer;background:0 0;border:none;border-radius:9999px;padding:.3rem .55rem;line-height:1;transition:background .15s}.language-toggle .lang-flag{filter:grayscale(.6)opacity(.55);font-size:1.1rem;line-height:1;transition:filter .2s;display:inline-block}.language-toggle .lang-btn:hover .lang-flag{filter:grayscale(.3)opacity(.85)}.language-toggle .lang-btn.active{background:var(--white)}.language-toggle .lang-btn.active .lang-flag{filter:none}.guest-page{background:var(--cream);width:100%}.guest-section{max-width:640px;padding:var(--space-xl) var(--space-sm);margin:0 auto}.reveal{opacity:0;transition:opacity .7s ease-out,transform .7s ease-out;transform:translateY(24px)}.reveal.visible{opacity:1;transform:translateY(0)}.loading,.error{text-align:center;color:var(--text-light);padding:4rem}.error{color:var(--brown)}.hero-section{text-align:center;padding-top:var(--space-2xl);padding-bottom:var(--space-xl)}@keyframes artwork-enter{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.hero-artwork{margin:0 auto var(--space-md);animation:1s ease-out both artwork-enter;display:block}.hero-title{color:var(--green);letter-spacing:3px;text-transform:uppercase;margin-bottom:var(--space-sm);font-size:3rem;font-weight:600}.hero-thin-line{background:var(--cream-dark);width:48px;height:1px;margin:var(--space-sm) auto}.hero-subtitle{color:var(--navy);margin-bottom:var(--space-xs);font-size:1.1rem;font-weight:400}.hero-sub2{color:var(--navy);font-size:1.1rem;font-weight:400}.hero-party-name{color:var(--navy);margin-top:var(--space-sm);font-size:2rem;font-weight:500}.artwork-divider{align-items:center;gap:var(--space-sm);max-width:640px;padding:0 var(--space-sm) var(--space-md);margin:0 auto;display:flex}.artwork-divider-line{background:var(--cream-dark);flex:1;height:1px}.artwork-divider img{flex-shrink:0;display:block}.schedule-section{padding-top:var(--space-xl);padding-bottom:var(--space-xl)}.section-heading{color:var(--navy);margin-bottom:var(--space-lg);font-size:2rem;font-weight:600}.timeline{margin:0;padding:0;list-style:none;position:relative}.timeline-item{gap:0 var(--space-sm);grid-template-columns:5.5rem 24px 1fr;margin:0;padding:0;display:grid;position:relative}.timeline-time{color:var(--navy);text-align:right;padding-top:.35rem;font-size:.9rem;font-weight:500}.timeline-track{flex-direction:column;align-items:center;padding-top:.75rem;display:flex}.timeline-dot{background:var(--cream);border:2px solid var(--green);border-radius:50%;flex-shrink:0;width:11px;height:11px}.timeline-track:after{content:"";background:var(--cream-dark);flex:1;width:1px;margin-top:.4rem}.timeline-item:last-child .timeline-track:after{display:none}.timeline-content{padding-bottom:var(--space-lg)}.timeline-event-name{color:var(--green);margin-bottom:.25rem;font-size:1.3rem;font-weight:600}.timeline-venue{color:var(--text);margin-bottom:.25rem;font-weight:400}.timeline-venue-link{color:var(--text);margin-bottom:.25rem;font-weight:400;text-decoration:none;display:block}.timeline-venue-link:hover{text-decoration:underline}.timeline-description{color:var(--text-light);margin-bottom:.25rem;font-weight:400}.children-callout{margin-top:var(--space-md);padding:var(--space-sm);border-left:3px solid var(--brown);background:var(--cream);color:var(--text-light);font-weight:400}@media (width<=768px){.timeline:before{display:none}.timeline-item{grid-template-columns:1fr}.timeline-track{display:none}.timeline-time{text-align:left;padding-top:var(--space-sm);border-top:1px solid var(--cream-dark);font-size:.85rem}.timeline-content{padding-bottom:var(--space-sm)}}.rsvp-section-wrap{background:var(--white);padding-top:var(--space-xl);padding-bottom:var(--space-xl);max-width:640px;padding-left:var(--space-sm);padding-right:var(--space-sm);margin:0 auto}.rsvp-deadline{color:var(--text-light);margin-top:-1rem;margin-bottom:var(--space-md);font-weight:400}.rsvp-locked-msg{color:var(--text-light);font-weight:400}.rsvp-guest-card{background:var(--cream);border:1px solid var(--cream-dark);padding:var(--space-md);margin-bottom:var(--space-sm);border-radius:8px}.rsvp-guest-name{color:var(--navy);margin-bottom:var(--space-sm);font-size:1.2rem;font-weight:500}.rsvp-event-row{margin-bottom:var(--space-sm)}.rsvp-event-label{color:var(--text-light);margin-bottom:.4rem;font-size:.9rem;font-weight:400;display:block}.rsvp-pill-container{border:1px solid var(--cream-dark);border-radius:9999px;width:fit-content;display:flex;overflow:hidden}.rsvp-pill{cursor:pointer;color:var(--text-light);font-family:var(--font-serif);background:0 0;border:none;padding:.55rem 1.4rem;font-size:.95rem;font-weight:500;line-height:1.2;transition:background .15s,color .15s}.rsvp-pill:first-child{border-right:1px solid var(--cream-dark)}.rsvp-pill:hover{color:var(--text)}.rsvp-pill-selected-yes{background:var(--green);color:var(--white)}.rsvp-pill-selected-no{background:var(--brown);color:var(--white)}.rsvp-pill-selected-yes:hover,.rsvp-pill-selected-no:hover{color:var(--white)}.rsvp-dietary-wrap,.rsvp-song-wrap{margin:var(--space-sm) 0 0}.rsvp-dietary-label,.rsvp-song-label{color:var(--text-light);margin-bottom:.3rem;font-size:.9rem;font-weight:400;display:block}.rsvp-dietary-wrap{margin-top:var(--space-sm)}.rsvp-underline-input{border:none;border-bottom:1px solid var(--cream-dark);width:100%;color:var(--text);background:0 0;outline:none;padding:.4rem 0;font-size:1rem;transition:border-color .15s}.rsvp-underline-input:focus{border-bottom-color:var(--green)}.rsvp-underline-input::placeholder{color:var(--text-light);opacity:.7}.btn{font-family:var(--font-serif);letter-spacing:0;cursor:pointer;border:1px solid #0000;border-radius:9999px;padding:.55rem 1.6rem;font-size:.95rem;font-weight:500;line-height:1.2;text-decoration:none;transition:background .15s,color .15s,border-color .15s,transform .1s;display:inline-block}.btn-primary{background:var(--green);border-color:var(--green);color:var(--white)}.btn-primary:hover{background:var(--green-dark);border-color:var(--green-dark);transform:scale(1.02)}.btn-primary:active{transform:scale(.98)}.btn-secondary{border-color:var(--green);color:var(--green);background:0 0}.btn-secondary:hover{background:var(--green);color:var(--white);text-decoration:none}.rsvp-submit-btn{margin:var(--space-md) 0 0;display:block}.rsvp-confirmation-card{text-align:center;background:var(--white);border:1px solid var(--cream-dark);padding:var(--space-xl) var(--space-md);margin-bottom:var(--space-xl);border-radius:12px}.rsvp-confirm-heading{color:var(--navy);margin-top:var(--space-sm);margin-bottom:var(--space-xs);font-size:1.6rem;font-weight:600}.rsvp-confirm-sub{color:var(--text-light);margin-bottom:var(--space-sm);font-weight:400}.rsvp-edit-link{margin-top:var(--space-sm)}.travel-section{padding-top:var(--space-xl);padding-bottom:var(--space-xl)}.travel-grid{gap:var(--space-sm);flex-direction:column;display:flex}.travel-card{background:var(--white);border:1px solid var(--cream-dark);padding:var(--space-md);border-radius:8px;flex-direction:column;display:flex}.travel-venue-name{color:var(--green);margin-bottom:.25rem;font-size:1.2rem;font-weight:600}.travel-event-list{color:var(--text-light);margin-bottom:var(--space-xs);font-size:.9rem;font-weight:400}.travel-address{color:var(--text-light);margin-bottom:var(--space-xs);font-weight:400}.travel-parking{color:var(--text);margin-bottom:var(--space-sm);flex:1;font-weight:400}.travel-map-btn{align-self:flex-end;margin-top:auto}.footer-section{text-align:center;padding-top:var(--space-xl);padding-bottom:var(--space-3xl)}.footer-tagline{color:var(--green);margin-top:var(--space-sm);margin-bottom:var(--space-xs);font-size:1.3rem;font-weight:500}.footer-location{color:var(--text-light);font-weight:400}.gifts-section{padding-top:var(--space-xl);padding-bottom:var(--space-xl)}.gifts-card{background:var(--white);border:1px solid var(--cream-dark);padding:var(--space-md);border-radius:8px}.gifts-card-title{color:var(--green);margin:0 0 .25rem;font-size:1.2rem;font-weight:600}.gifts-message{color:var(--text);margin:0;font-size:1rem;font-weight:400;line-height:1.6}.gifts-details{margin-top:var(--space-md);text-align:right}.gifts-details-content{text-align:left}.gifts-details-summary{-webkit-user-select:none;user-select:none;list-style:none}.gifts-details-summary::-webkit-details-marker{display:none}.gifts-details-summary::marker{content:""}.gifts-details[open] .gifts-details-summary{margin-bottom:var(--space-sm)}.gifts-details-content{padding:var(--space-md);background:var(--cream);color:var(--text);border-radius:8px;font-size:1rem;line-height:1.6}.gifts-details-placeholder{color:var(--text-light);margin:0}.login-page{background:var(--cream);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{background:var(--white);border:1px solid var(--cream-dark);text-align:center;border-radius:8px;width:100%;max-width:380px;padding:3rem 2.5rem}.login-card h1{color:var(--navy-dark);margin-bottom:.5rem;font-size:1.8rem}.login-card p{font-family:var(--font-sans);color:var(--text-light);margin-bottom:2rem;font-size:.875rem}.login-field{text-align:left;margin-bottom:1rem}.login-field label{font-family:var(--font-sans);color:var(--text-light);text-transform:uppercase;letter-spacing:.5px;margin-bottom:.25rem;font-size:.75rem;display:block}.login-field input{border:1px solid var(--cream-dark);border-radius:4px;width:100%;padding:.6rem .75rem;font-size:.875rem}.login-btn{background:var(--navy);width:100%;color:var(--white);font-family:var(--font-sans);cursor:pointer;border:none;border-radius:4px;margin-top:1rem;padding:.75rem;font-size:.875rem;font-weight:600;transition:background .15s}.login-btn:hover{background:var(--navy-dark)}.login-error{color:var(--brown);font-family:var(--font-sans);margin-top:1rem;font-size:.875rem}.overview{max-width:900px}.overview h1{color:var(--navy-dark);margin-bottom:2rem;font-size:2rem}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.5rem;margin-bottom:2rem;display:grid}.stat-card{background:var(--white);border:1px solid var(--cream-dark);border-radius:8px;padding:1.5rem}.stat-card h3{color:var(--green);margin-bottom:1rem;font-size:1.1rem}.stat-row{font-family:var(--font-sans);border-bottom:1px solid var(--cream);justify-content:space-between;padding:.35rem 0;font-size:.875rem;display:flex}.stat-row:last-child{border-bottom:none}.stat-label{color:var(--text-light)}.stat-value{color:var(--text);font-weight:600}.stat-value.confirmed{color:var(--green)}.stat-value.declined{color:var(--brown)}.stat-value.pending{color:var(--navy)}.guest-list{max-width:1000px}.guest-list h1{color:var(--navy-dark);margin-bottom:1rem;font-size:2rem}.guest-list-controls{flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.guest-list-controls input{border:1px solid var(--cream-dark);border-radius:4px;flex:1;min-width:200px;padding:.5rem .75rem;font-size:.875rem}.guest-list-controls select{border:1px solid var(--cream-dark);border-radius:4px;padding:.5rem .75rem;font-size:.875rem}.export-btn{background:var(--navy);color:var(--white);font-family:var(--font-sans);cursor:pointer;border:none;border-radius:4px;padding:.5rem 1rem;font-size:.875rem}.party-table{border-collapse:collapse;width:100%;font-family:var(--font-sans);font-size:.875rem}.party-table th{text-align:left;background:var(--navy-dark);color:var(--cream);padding:.75rem;font-weight:500}.party-table td{border-bottom:1px solid var(--cream-dark);padding:.75rem}.party-row{cursor:pointer;transition:background .1s}.party-row:hover{background:var(--cream)}.guest-subrow td{background:var(--cream);color:var(--text-light);padding-left:2rem;font-size:.8rem}.status-badge{border-radius:10px;padding:.15rem .5rem;font-size:.75rem;font-weight:500;display:inline-block}.status-badge.complete{background:var(--green-light);color:var(--white)}.status-badge.partial{background:var(--navy-light);color:var(--white)}.status-badge.pending{background:var(--cream-dark);color:var(--text-light)}.token-link{color:var(--navy);cursor:pointer;font-size:.75rem}.token-link:hover{text-decoration:underline}.send-all-btn{background:var(--green);color:var(--white);font-family:var(--font-sans);cursor:pointer;border:none;border-radius:4px;padding:.5rem 1rem;font-size:.875rem}.send-all-btn:hover{background:var(--green-dark)}.send-all-btn:disabled{opacity:.5;cursor:not-allowed}.invite-sent{color:var(--text-light);font-size:.75rem}.actions-cell{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.row-send-btn{background:var(--green);color:var(--white);font-family:var(--font-sans);cursor:pointer;white-space:nowrap;border:none;border-radius:4px;padding:.3rem .75rem;font-size:.75rem;font-weight:500}.row-send-btn:hover:not(:disabled){background:var(--green-dark)}.row-send-btn:disabled{opacity:.5;cursor:not-allowed}.no-email-badge{color:var(--brown);font-size:.7rem;font-weight:500;font-family:var(--font-sans);white-space:nowrap;background:#8b5e3c1f;border-radius:10px;padding:.2rem .6rem;display:inline-block}.party-edit{max-width:780px}.party-edit h1{color:var(--navy-dark);margin-bottom:2rem;font-size:2rem}.form-field{margin-bottom:1.25rem}.form-field label{font-family:var(--font-sans);color:var(--text-light);text-transform:uppercase;letter-spacing:.5px;margin-bottom:.25rem;font-size:.75rem;display:block}.form-field input{border:1px solid var(--cream-dark);border-radius:4px;width:100%;padding:.6rem .75rem;font-size:.875rem}.guest-row{align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.guest-row input{border:1px solid var(--cream-dark);border-radius:4px;flex:1;padding:.5rem;font-size:.875rem}.guest-row label{font-family:var(--font-sans);color:var(--text-light);align-items:center;gap:.25rem;font-size:.75rem;display:flex}.remove-btn{color:var(--brown);cursor:pointer;background:0 0;border:none;padding:0 .25rem;font-size:1.2rem}.add-guest-btn{border:1px dashed var(--cream-dark);font-family:var(--font-sans);color:var(--navy);cursor:pointer;background:0 0;border-radius:4px;margin-bottom:1.5rem;padding:.5rem 1rem;font-size:.875rem}.event-checkboxes{flex-direction:column;gap:.5rem;display:flex}.event-checkboxes label{font-family:var(--font-sans);color:var(--text);align-items:center;gap:.5rem;font-size:.875rem;display:flex}.save-btn{background:var(--green);color:var(--white);font-family:var(--font-sans);cursor:pointer;border:none;border-radius:4px;margin-top:1rem;padding:.75rem 2rem;font-size:.875rem;font-weight:600}.save-btn:hover:not(:disabled){background:var(--green-dark)}.save-btn:disabled{opacity:.5;cursor:not-allowed}.guest-matrix{border-collapse:collapse;width:100%;font-family:var(--font-sans);margin-bottom:.75rem;font-size:.875rem}.guest-matrix th{text-align:left;color:var(--text-light);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--cream-dark);padding:.5rem;font-size:.7rem;font-weight:500}.guest-matrix th.event-col,.guest-matrix th.child-col{text-align:center;white-space:nowrap;width:1%;padding:.5rem .75rem}.guest-matrix th.remove-col{width:1.5rem}.guest-matrix td{border-bottom:1px solid var(--cream);vertical-align:middle;padding:.5rem}.guest-matrix td.event-cell,.guest-matrix td.child-cell{text-align:center}.guest-matrix td.event-cell input[type=checkbox],.guest-matrix td.child-cell input[type=checkbox]{cursor:pointer;width:18px;height:18px;accent-color:var(--green)}.guest-matrix .name-inputs{gap:.5rem;display:flex}.guest-matrix .name-inputs input{border:1px solid var(--cream-dark);min-width:0;font-size:.875rem;font-family:var(--font-sans);border-radius:4px;flex:1;padding:.4rem .5rem}.guest-matrix .remove-btn{color:var(--brown);cursor:pointer;background:0 0;border:none;padding:0 .25rem;font-size:1.2rem;line-height:1}.guest-matrix .guest-row-invalid td{background:#8b5e3c0f}.validation-error{color:var(--brown);font-family:var(--font-sans);margin:.5rem 0 0;font-size:.8rem}.hint-text{font-family:var(--font-sans);color:var(--text-light);font-size:.8rem;font-style:normal}.delete-btn{background:var(--brown);color:var(--white);font-family:var(--font-sans);cursor:pointer;border:none;border-radius:4px;margin-top:1rem;margin-left:1rem;padding:.75rem 2rem;font-size:.875rem}.party-link-display{background:var(--cream);font-family:var(--font-sans);color:var(--navy);word-break:break-all;border-radius:4px;margin-bottom:1.5rem;padding:.75rem 1rem;font-size:.8rem}.invite-actions{align-items:center;gap:1rem;margin-top:.75rem;display:flex}.send-invite-btn{background:var(--green);color:var(--white);font-family:var(--font-sans);cursor:pointer;border:none;border-radius:4px;padding:.5rem 1rem;font-size:.8rem;font-weight:500}.send-invite-btn:hover:not(:disabled){background:var(--green-dark)}.send-invite-btn:disabled{opacity:.5;cursor:not-allowed}.sent-indicator{font-family:var(--font-sans);color:var(--text-light);font-size:.75rem}:root{--green:#6b7f5e;--green-light:#8a9e7a;--green-dark:#4a5940;--navy:#3b5066;--navy-light:#5a7a96;--navy-dark:#2c3e50;--brown:#8b5e3c;--brown-light:#a8785a;--cream:#faf7f2;--cream-dark:#e8e0d4;--white:#fff;--text:#2c3040;--text-light:#6b7080;--font-serif:"Cormorant Garamond", Georgia, "Times New Roman", serif;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-hand:"Caveat", cursive;--space-xs:.5rem;--space-sm:1rem;--space-md:1.5rem;--space-lg:2rem;--space-xl:3rem;--space-2xl:5rem;--space-3xl:6rem}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-serif);background-color:var(--cream);color:var(--text);-webkit-font-smoothing:antialiased;line-height:1.6}h1,h2,h3,h4{font-family:var(--font-serif);font-weight:600;line-height:1.2}button,input,select,textarea{font-family:var(--font-sans);font-size:.875rem}.guest-page,.guest-page *{font-family:var(--font-serif);font-style:normal}.guest-page button,.guest-page input,.guest-page select,.guest-page textarea{font-family:var(--font-serif)}a{color:var(--navy);text-decoration:none}a:hover{text-decoration:underline}
