.rsvp-page{--olive: #4a5c2f;--olive-dark: #2c3a1a;--olive-mid: #637a3d;--sand: #c8b98a;--sand-light: #ddd0a8;--cream: #f5f0e8;--cream-dark: #ede6d6;--brown: #8b7355;--brown-dark: #5c4a2a;--text: #2c3a1a;--text-muted: #7a7060;min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:48px 24px 80px;position:relative;overflow:hidden;background-color:var(--cream);color:var(--text);font-family:Montserrat,sans-serif;font-weight:300}:global(body.rsvp-body){min-height:100%;background-color:var(--cream, #f5f0e8);color:var(--text, #2c3a1a);font-family:Montserrat,sans-serif;font-weight:300}.rsvp-page .palm-left,.rsvp-page .palm-right{position:fixed;bottom:-40px;width:clamp(300px,30vw,400px);max-width:none;height:auto;display:block;opacity:.55;pointer-events:none;z-index:0;filter:invert(1);mix-blend-mode:multiply}.rsvp-page .palm-left{left:-24px;transform:scaleX(-1)}.rsvp-page .palm-right{right:-24px}.rsvp-page.palm-trees-colorized .palm-left,.rsvp-page.palm-trees-colorized .palm-right{filter:invert(1) sepia(1) hue-rotate(180deg) saturate(1) brightness(.9)}.rsvp-page .rsvp-header{text-align:center;position:relative;z-index:1;margin-bottom:1rem}.rsvp-page .eyebrow{font-family:Montserrat,sans-serif;font-size:10px;letter-spacing:.35em;text-transform:uppercase;color:var(--olive-mid);margin-bottom:16px}.rsvp-page .names{font-family:Cormorant Garamond,serif;font-size:clamp(44px,10vw,80px);font-weight:300;font-style:italic;line-height:1;color:var(--olive-dark);letter-spacing:-.01em;flex-direction:row;display:flex;gap:1rem}.rsvp-page .ampersand{font-size:clamp(36px,8vw,64px);color:var(--sand);display:block;line-height:1.1}.rsvp-page .date-line{font-family:Cormorant Garamond,serif;font-size:16px;font-weight:400;color:var(--brown);margin-top:16px;letter-spacing:.1em}.rsvp-page .ticket{width:100%;max-width:520px;position:relative;z-index:1;border:3px solid var(--olive);border-radius:14px;overflow:hidden;background:#fff;box-shadow:0 8px 40px #2c3a1a1a}.rsvp-page .boarding-pass{position:relative;padding:0 28px 24px}.rsvp-page .boarding-pass:before,.rsvp-page .boarding-pass:after{content:"";position:absolute;bottom:0;width:14px;height:14px;background:var(--cream);border-radius:50%;transform:translateY(50%);z-index:2}.rsvp-page .boarding-pass:before{left:-7px;box-shadow:inset -2px 0 0 var(--olive)}.rsvp-page .boarding-pass:after{right:-7px;box-shadow:inset 2px 0 0 var(--olive)}.rsvp-page .boarding-rsvp{display:flex;align-items:center;justify-content:center;gap:12px;padding:12px 20px;background:var(--olive);margin:0 -28px 20px}.rsvp-page .boarding-rsvp-label{font-family:Montserrat,sans-serif;font-size:11px;font-weight:600;letter-spacing:.35em;text-transform:uppercase;color:#fff}.rsvp-page .boarding-rsvp-divider{width:1px;height:14px;background:rgba(255,255,255,.4)}.rsvp-page .boarding-rsvp-text{font-family:Cormorant Garamond,serif;font-size:18px;font-style:italic;font-weight:400;color:#fff;letter-spacing:.04em}.rsvp-page .boarding-pass-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.rsvp-page .boarding-destination{display:flex;flex-direction:column;gap:2px}.rsvp-page .airport-code{font-family:Montserrat,sans-serif;font-size:clamp(36px,8vw,48px);font-weight:700;line-height:1;letter-spacing:.02em;color:var(--olive)}.rsvp-page .city-name{font-family:Montserrat,sans-serif;font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--text)}.rsvp-page .boarding-reference{display:flex;flex-direction:column;align-items:flex-end;gap:6px;color:var(--olive)}.rsvp-page .barcode{display:block}.rsvp-page .boarding-number{font-family:Montserrat,sans-serif;font-size:12px;font-weight:600;letter-spacing:.12em;color:var(--text)}.rsvp-page .flight-path{display:flex;align-items:center;gap:0;margin:0 -4px 20px;padding:4px 0}.rsvp-page .flight-dot{flex-shrink:0;width:8px;height:8px;border-radius:50%;background:var(--olive-mid)}.rsvp-page .flight-track{flex:1;position:relative;display:flex;align-items:center;justify-content:center;min-width:48px;height:28px;overflow:hidden}.rsvp-page .flight-line-animated{position:absolute;left:0;right:0;top:50%;height:2px;transform:translateY(-50%);background-image:repeating-linear-gradient(to right,var(--olive-mid) 0,var(--olive-mid) 6px,transparent 6px,transparent 12px);background-size:12px 2px;animation:flight-dash .9s linear infinite}.rsvp-page .flight-plane{position:absolute;left:50%;top:50%;z-index:1;flex-shrink:0;color:var(--olive-mid);transform:translate(-50%,-50%) rotate(90deg);background:white;transition:none}.rsvp-page .flight-exit-yes .flight-plane{animation:flight-exit-back .9s ease-in forwards}.rsvp-page .flight-exit-yes .flight-line-animated{animation:flight-dash .9s linear infinite}.rsvp-page .flight-yes-partial .flight-plane,.rsvp-page .flight-yes-from-left .flight-plane{animation:flight-yes-partial .9s ease-out forwards}.rsvp-page .flight-yes-from-left .flight-plane{animation-name:flight-yes-from-left}.rsvp-page .flight-yes-partial .flight-line-animated,.rsvp-page .flight-yes-from-left .flight-line-animated{animation:flight-dash .9s linear infinite}.rsvp-page .flight-exit-no .flight-plane{animation:flight-exit-decline 1.1s ease-in-out forwards}.rsvp-page .flight-exit-no-from-partial .flight-plane{animation:flight-exit-decline-from-partial 1.1s ease-in-out forwards}.rsvp-page .flight-exit-no-confirm .flight-plane{animation:flight-exit-decline-confirm .9s ease-in forwards}.rsvp-page .flight-yes-from-left .flight-plane{transform:translate(-50%,-50%) rotate(90deg)}.rsvp-page .flight-exit-no .flight-line-animated,.rsvp-page .flight-exit-no-from-partial .flight-line-animated,.rsvp-page .flight-exit-no-confirm .flight-line-animated{animation:flight-dash .9s linear infinite reverse}.rsvp-page .flight-arrow{flex-shrink:0;width:0;height:0;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:8px solid var(--olive-mid)}@keyframes flight-dash{0%{background-position:12px 0}to{background-position:0 0}}@keyframes flight-exit-back{0%{left:75%;transform:translate(-50%,-50%) rotate(90deg)}to{left:calc(100% + 14px);transform:translate(-50%,-50%) rotate(90deg)}}@keyframes flight-yes-partial{0%{left:50%;transform:translate(-50%,-50%) rotate(90deg)}to{left:75%;transform:translate(-50%,-50%) rotate(90deg)}}@keyframes flight-yes-from-left{0%{left:12.5%}to{left:75%}}@keyframes flight-exit-decline{0%{left:50%;transform:translate(-50%,-50%) rotate(90deg)}35%{left:50%;transform:translate(-50%,-50%) rotate(-90deg)}to{left:12.5%;transform:translate(-50%,-50%) rotate(-90deg)}}@keyframes flight-exit-decline-from-partial{0%{left:75%;transform:translate(-50%,-50%) rotate(90deg)}35%{left:75%;transform:translate(-50%,-50%) rotate(-90deg)}to{left:12.5%;transform:translate(-50%,-50%) rotate(-90deg)}}@keyframes flight-exit-decline-confirm{0%{left:12.5%;transform:translate(-50%,-50%) rotate(-90deg)}to{left:-14px;transform:translate(-50%,-50%) rotate(-90deg)}}@media (prefers-reduced-motion: reduce){.rsvp-page .flight-line-animated,.rsvp-page .flight-exit-yes .flight-line-animated,.rsvp-page .flight-yes-partial .flight-line-animated,.rsvp-page .flight-yes-from-left .flight-line-animated,.rsvp-page .flight-exit-no .flight-line-animated,.rsvp-page .flight-exit-no-from-partial .flight-line-animated,.rsvp-page .flight-exit-no-confirm .flight-line-animated{animation:none}.rsvp-page .flight-exit-yes .flight-plane{animation:none;left:calc(100% + 14px);transform:translate(-50%,-50%) rotate(90deg);opacity:0}.rsvp-page .flight-yes-partial .flight-plane,.rsvp-page .flight-yes-from-left .flight-plane{animation:none;left:75%;transform:translate(-50%,-50%) rotate(90deg);opacity:1}.rsvp-page .flight-exit-no .flight-plane,.rsvp-page .flight-exit-no-from-partial .flight-plane{animation:none;left:12.5%;transform:translate(-50%,-50%) rotate(-90deg);opacity:1}.rsvp-page .flight-exit-no-confirm .flight-plane{animation:none;left:-14px;transform:translate(-50%,-50%) rotate(-90deg);opacity:0}}.rsvp-page .boarding-details{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding-bottom:2rem;border-bottom:2px dashed var(--sand-light)}.rsvp-page .detail-col{display:flex;flex-direction:column;gap:4px}.rsvp-page .detail-label{font-family:Montserrat,sans-serif;font-size:9px;font-weight:500;letter-spacing:.3em;text-transform:uppercase;color:var(--olive-mid)}.rsvp-page .detail-value{font-family:Montserrat,sans-serif;font-size:22px;font-weight:700;line-height:1;color:var(--text)}.rsvp-page .ticket-body{background:#fff;padding:0 32px 32px}.rsvp-page .form-group{margin-bottom:24px}.rsvp-page .form-group--flush{margin-bottom:0}.rsvp-page label{display:block;font-size:9px;letter-spacing:.3em;text-transform:uppercase;color:var(--olive-mid);margin-bottom:8px;font-weight:500;text-align:left}.rsvp-page .field-label{display:block;font-size:9px;letter-spacing:.3em;text-transform:uppercase;color:var(--olive-mid);margin-bottom:8px;font-weight:500;text-align:left;font-family:Montserrat,sans-serif}.rsvp-page input[type=text],.rsvp-page input[type=email]{width:100%;padding:12px 0;border:none;border-bottom:1.5px solid var(--sand);border-radius:0;background:transparent;font-family:Cormorant Garamond,serif;font-size:18px;color:var(--text);outline:none;transition:border-color .2s;margin-bottom:0}.rsvp-page input[type=text]:focus,.rsvp-page input[type=email]:focus{border-bottom-color:var(--olive);background:transparent}.rsvp-page input::placeholder{color:var(--sand);font-style:italic}.rsvp-page .toggle-group{display:flex;gap:12px;flex-direction:column}@media (min-width: 480px){.rsvp-page .toggle-group{flex-direction:row}}.rsvp-page .toggle-option{flex:1}.rsvp-page .toggle-option input[type=radio]{display:none}.rsvp-page .toggle-option label{display:flex;align-items:center;justify-content:center;padding:11px;border:1.5px solid var(--sand);border-radius:6px;cursor:pointer;font-size:10px;letter-spacing:.2em;color:var(--text-muted);transition:all .2s;font-family:Montserrat,sans-serif;font-weight:400}.rsvp-page .toggle-option input[type=radio]:checked+label,.rsvp-page .toggle-option input[type=radio]:hover+label{background:var(--olive);border-color:var(--olive);color:#fff;letter-spacing:.2em}.rsvp-page .plus-one-section{overflow:hidden;max-height:0;opacity:0;transition:max-height .35s ease,opacity .3s ease;margin-top:0}.rsvp-page .plus-one-section.visible{max-height:120px;opacity:1;margin-top:0}.rsvp-page .info-section{display:none}.rsvp-page .info-section.visible{display:block}.rsvp-page .divider{border:none;border-top:1px dashed var(--sand-light);margin:28px 0}.rsvp-page .submit-btn{width:100%;padding:15px;background:var(--olive);color:#fff;border:none;border-radius:6px;font-family:Montserrat,sans-serif;font-size:10px;letter-spacing:.35em;text-transform:uppercase;cursor:pointer;transition:background .2s;font-weight:500}.rsvp-page .submit-btn:hover{background:var(--olive-dark)}.rsvp-page .submit-btn:disabled{opacity:.6;cursor:not-allowed}.rsvp-page .success{text-align:center;padding:0 32px 40px}.rsvp-page .success-icon{display:flex;align-items:center;justify-content:center;gap:8px;font-size:40px;margin-bottom:16px}.rsvp-page .success-icon-badge{width:28px;height:28px;object-fit:contain;position:relative;top:4px}.rsvp-page .success-heading{font-family:Cormorant Garamond,serif;font-size:32px;font-style:italic;color:var(--olive-dark);margin-bottom:10px}.rsvp-page .success-sub{font-size:12px;color:var(--text-muted);letter-spacing:.1em;line-height:1.8}.rsvp-page .calendar-link{display:inline-block;margin-top:24px;padding:12px 20px;border:1px solid var(--olive);border-radius:6px;color:#fff;background:var(--olive);font-family:Montserrat,sans-serif;font-size:10px;font-weight:500;letter-spacing:.15em;text-decoration:none;text-transform:uppercase;transition:background .2s ease,color .2s ease}.rsvp-page .calendar-link:hover{background:transparent;color:var(--olive-dark)}.rsvp-page .footer-note{margin-top:32px;text-align:center;font-size:10px;letter-spacing:.15em;color:var(--text-muted);position:relative;z-index:1}.rsvp-page .error-msg{font-size:11px;color:#b94040;margin-top:6px;display:none}.rsvp-page .error-msg.show{display:block}.rsvp-page .guest-greeting{font-family:Cormorant Garamond,serif;font-size:28px;font-style:italic;color:var(--olive-dark);text-align:center;margin-bottom:28px}.rsvp-page .status-note{font-size:11px;color:var(--text-muted);text-align:center;letter-spacing:.08em;line-height:1.7;margin-bottom:20px;padding:12px 16px;background:var(--cream-dark);border-radius:4px}.rsvp-page .status-note strong{color:var(--olive-dark);font-weight:500}.rsvp-page .optional{font-size:10px;color:var(--text-muted);font-weight:300;letter-spacing:.05em}.rsvp-page .error-state{text-align:center;padding:40px 32px}.rsvp-page .error-heading{font-family:Cormorant Garamond,serif;font-size:28px;font-style:italic;color:var(--olive-dark);margin-bottom:12px}.rsvp-page .error-sub{font-size:12px;color:var(--text-muted);letter-spacing:.1em;line-height:1.8}@media (max-width: 480px){.rsvp-page .boarding-pass{padding-left:20px;padding-right:20px}.rsvp-page .boarding-rsvp{margin-left:-20px;margin-right:-20px;padding-left:16px;padding-right:16px;gap:8px}.rsvp-page .boarding-rsvp-text{font-size:16px}.rsvp-page .ticket-body{padding-left:20px;padding-right:20px}.rsvp-page .detail-value{font-size:18px}.rsvp-page{padding-top:32px}.rsvp-page .palm-left,.rsvp-page .palm-right{width:140px;bottom:-20px;opacity:.5}.rsvp-page .palm-left{left:-16px}.rsvp-page .palm-right{right:-16px}}.audio-panel{position:fixed;right:20px;bottom:20px;z-index:20;width:min(18rem,calc(100vw - 40px));border:1px solid var(--sand, #c8b98a);border-radius:10px;background:rgba(245,240,232,.96);box-shadow:0 12px 32px #2c3a1a24;color:var(--text, #2c3a1a);font-family:Montserrat,sans-serif;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;pointer-events:none}.audio-panel__toggle{display:flex;align-items:center;justify-content:space-between;width:100%;padding:12px 14px;border:0;background:transparent;color:inherit;cursor:pointer;font:inherit;font-size:11px;letter-spacing:.18em;text-transform:uppercase}.audio-panel__toggle-icon{font-size:16px;line-height:1}.audio-panel__body{padding:0 14px 14px;border-top:1px solid var(--cream-dark, #ede6d6);pointer-events:none}.audio-panel__presets{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 14px}.audio-panel__preset{border:1px solid var(--sand, #c8b98a);background:var(--cream, #f5f0e8);color:var(--text, #2c3a1a);padding:5px 8px;border-radius:999px;cursor:pointer;font:inherit;font-size:10px;letter-spacing:.08em;text-transform:capitalize}.audio-panel__control{display:grid;gap:6px;margin-bottom:12px}.audio-panel__label{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted, #7a7060)}.audio-panel__label strong{color:var(--olive-dark, #2c3a1a);font-weight:500}.audio-panel__control input[type=range]{width:100%;accent-color:var(--olive, #4a5c2f)}.audio-panel__toggle-row{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--text-muted, #7a7060)}.entry-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:flex;align-items:center;justify-content:center;margin:0;padding:24px;border:none;background:rgba(245,240,232,.7);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);cursor:pointer;font-family:inherit;animation:entry-overlay-fade-in .6s ease}.entry-overlay__text{font-family:Montserrat,sans-serif;font-size:1rem;font-weight:500;text-transform:uppercase;color:var(--olive-dark, #6c5c54);text-align:center;letter-spacing:.02em;padding-bottom:3rem;line-height:1.35;max-width:14ch}@keyframes entry-overlay-fade-in{0%{opacity:0}to{opacity:1}}.audio-status{position:fixed;left:20px;bottom:20px;z-index:19;margin:0;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted, #7a7060);pointer-events:none}.background-audio{position:absolute;width:0;height:0;opacity:0;pointer-events:none}
