html,body{-webkit-font-smoothing:antialiased;font-family:system-ui,sans-serif}.envelope-reveal{flex-direction:column;justify-content:center;align-items:center;gap:32px;display:flex;position:absolute;inset:0}.envelope-scene{cursor:pointer;flex-shrink:0;width:325px;height:325px;position:relative;overflow:hidden}.envelope-image-frame{aspect-ratio:345/272;position:absolute;top:16px;left:-50px;right:8px}.envelope-image-clip{pointer-events:none;position:absolute;inset:0;overflow:hidden}.envelope-img{width:118.26%;max-width:none;height:157.1%;display:block;position:absolute;top:-6.62%;left:-3.19%}.tap-hint{pointer-events:none;white-space:nowrap;align-items:center;gap:6px;animation:5s ease-in-out infinite float;display:flex;position:relative}@keyframes float{0%{transform:translateY(0)}50%{transform:translateY(-8px)}to{transform:translateY(0)}}.tap-arrow{flex-shrink:0;width:15.686px;height:18.572px;transform:rotate(-14.51deg)}.tap-text{color:#fff;letter-spacing:-.368px;font-family:Cedarville Cursive,cursive;font-size:16px;line-height:1.5}.paper-reveal{justify-content:center;align-items:center;animation:.6s ease-out fade-in;display:flex;position:absolute;inset:0;overflow-y:auto}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.paper-card{flex-direction:column;justify-content:space-between;align-items:center;width:361px;height:478px;padding:42px 64px 48px 62px;display:flex;position:relative}.paper-texture{pointer-events:none;position:absolute;inset:0;overflow:hidden}.invitation-details{text-align:center;color:#000;flex-direction:column;align-items:center;gap:26px;width:235px;display:flex;position:relative}.save-the-date{margin:0;font-family:Cormorant Garamond,serif;font-size:11px;font-style:italic;font-weight:700;line-height:1.5}.names{font-family:Cormorant Garamond,serif;font-size:24px;font-weight:400;line-height:1.5}.names p{margin:0}.invite-copy{margin:0;font-family:Cormorant Garamond,serif;font-size:11px;font-style:italic;line-height:1.5}.datetime{font-family:Cormorant Garamond,serif;font-size:12px;line-height:normal}.datetime p{margin:0}.location{font-family:Cormorant Garamond,serif;font-size:12px;line-height:normal}.location p{margin:0}.rsvp-footer{flex-direction:column;align-items:center;gap:4px;display:flex;position:relative}.rsvp-by{color:#000;text-align:center;margin:0;font-family:Cormorant Garamond,serif;font-size:12px;font-style:italic;font-weight:700}.rsvp-button{padding:10px;position:relative}.rsvp-button span{color:#000;text-underline-offset:2px;white-space:nowrap;cursor:pointer;font-family:Cinzel,serif;font-size:14px;font-weight:700;text-decoration:underline}.rsvp-reveal{justify-content:center;align-items:center;padding:24px 0;animation:.6s ease-out fade-in;display:flex;position:absolute;inset:0;overflow-y:auto}.rsvp-card{flex-direction:column;justify-content:space-between;gap:32px;width:361px;padding:42px 64px 48px 62px;display:flex;position:relative}.paper-texture{pointer-events:none;z-index:0;position:absolute;inset:0;overflow:hidden}.paper-texture img{width:199.18%;max-width:none;height:106.8%;display:block;position:absolute;top:-3.46%;left:-52.42%}.rsvp-header{z-index:1;flex-direction:column;align-items:center;gap:16px;display:flex;position:relative}.rsvp-title{color:#000;text-align:center;align-items:center;min-height:39px;margin:0;font-family:Cormorant Garamond,serif;font-size:11px;font-style:italic;font-weight:700;line-height:1.5;display:flex}.name-field{flex-direction:column;align-items:center;gap:2px;width:187px;display:flex}.field-label{color:#000;font-family:Cormorant Garamond,serif;font-size:16px;font-style:italic}.line-input{color:#000;text-align:center;box-sizing:border-box;background:0 0;border:none;border-bottom:.5px solid #000;outline:none;width:100%;padding:2px 0 4px;font-family:Cormorant Garamond,serif;font-size:12px}.line-input::placeholder{color:#5c2d2d;font-size:12px;font-style:normal}.rsvp-questions{flex-direction:column;gap:27px;width:235px;display:flex}.question-group{flex-direction:column;align-items:center;gap:8px;width:100%;padding:0 24px;display:flex}.question{color:#000;text-align:center;width:100%;margin:0;font-family:Cormorant Garamond,serif;font-size:16px;font-style:italic;line-height:1.5}.options{flex-direction:column;align-items:flex-start;gap:12px;width:100%;display:flex}.option{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;display:flex}.option-block{flex-direction:column;align-items:flex-start;gap:6px;width:100%;display:flex}.conditional-input{width:100%}.checkbox{border:.5px solid #000;flex-shrink:0;width:12px;height:12px;display:block;position:relative}.checkbox--on:after{content:"";background-color:#000;position:absolute;inset:2px}.option-text{color:#000;white-space:nowrap;font-family:Cormorant Garamond,serif;font-size:12px;line-height:normal}.rsvp-footer{z-index:1;flex-direction:column;align-items:center;gap:12px;width:100%;display:flex;position:relative}.rsvp-by{color:#000;text-align:center;margin:0;font-family:Cormorant Garamond,serif;font-size:12px;font-style:italic;font-weight:700;line-height:1.5}.send-btn{color:#000;text-underline-offset:2px;cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:10px;font-family:Cinzel,serif;font-size:14px;font-weight:700;text-decoration:underline;transition:opacity .2s}.send-btn:disabled{cursor:default}.rsvp-error{color:#c0392b;text-align:center;margin:0;font-family:Courier Prime,Courier,monospace;font-size:10px}.rsvp-success{z-index:1;text-transform:lowercase;color:#000;text-align:center;padding:40px 0;font-family:Cormorant Garamond,serif;font-size:24px;font-style:italic;font-weight:400;line-height:1.6;position:relative}*,:before,:after{box-sizing:border-box;margin:0;padding:0}.viewport{width:100vw;height:100dvh;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);background-color:#13452e;position:fixed;inset:0;overflow:hidden}.bg-forest{pointer-events:none;position:absolute;inset:0}.bg-forest img{object-fit:cover;object-position:center top;opacity:.3;width:100%;height:100%}.noise{pointer-events:none;opacity:.15;width:100%;height:100%;position:absolute;inset:0}
