@import "https://fonts.googleapis.com/css2?family=Cinzel:wght@400;600&family=Cormorant+Garamond:ital,wght@0,400;0,600;1,400&display=swap";:root{--gold:#b39b59;--gold-dark:#9c864a;--bg-cream:#faf9f6;--text-dark:#333}body{background-color:var(--bg-cream);color:var(--text-dark);margin:0;padding:0;font-family:Cormorant Garamond,serif}.app-container{justify-content:center;align-items:center;min-height:100vh;display:flex;position:relative;overflow-x:hidden}.envelope-overlay{z-index:1000;background:#f3efe6;flex-direction:column;justify-content:center;align-items:center;transition:opacity .8s;display:flex;position:fixed;inset:0}.envelope-overlay.fade-out{opacity:0;pointer-events:none}.envelope-box{cursor:pointer;background:#dfd7c5;border-radius:4px;width:340px;height:220px;transition:transform .8s cubic-bezier(.4,0,.2,1);position:relative;box-shadow:0 15px 35px #0000001a}.envelope-box.opened{transform:scale(1.15)}.envelope-flap{transform-origin:top;z-index:3;border-top:120px solid #c9beaa;border-left:170px solid #0000;border-right:170px solid #0000;width:0;height:0;transition:transform .6s;position:absolute;top:0;left:0}.envelope-box.opened .envelope-flap{z-index:1;transform:rotateX(180deg)}.envelope-seal{background:var(--gold);color:#fff;z-index:4;border-radius:50%;justify-content:center;align-items:center;width:45px;height:45px;font-family:Cinzel,serif;font-size:.9rem;transition:opacity .3s;display:flex;position:absolute;top:95px;left:50%;transform:translate(-50%);box-shadow:0 4px 10px #00000026}.envelope-box.opened .envelope-seal{opacity:0}.envelope-instruction{letter-spacing:2px;color:var(--gold-dark);margin-top:30px;font-family:Cinzel,serif;font-size:.9rem;animation:2s infinite pulse}@keyframes pulse{0%{opacity:.6}50%{opacity:1}to{opacity:.6}}.invite-content{text-align:center;opacity:0;background:#fff;width:90%;max-width:600px;padding:40px 20px;transition:all 1s cubic-bezier(.16,1,.3,1) .3s;transform:translateY(30px)scale(.98);box-shadow:0 10px 40px #0000000a}.invite-content.visible{opacity:1;transform:translateY(0)scale(1)}.invite-image{border-radius:6px;width:100%;max-width:450px;height:auto;margin-bottom:30px;box-shadow:0 4px 15px #00000014}h1,h2{color:var(--gold);font-family:Cinzel,serif;font-weight:400}h1{margin-bottom:10px;font-size:1.7rem}.details{margin:20px 0;font-size:1.2rem;line-height:1.6}.rsvp-date{color:#666;margin-top:30px;font-size:.9rem;font-style:italic}.primary-btn{background:var(--gold);color:#fff;letter-spacing:1.5px;cursor:pointer;border:none;border-radius:3px;width:100%;padding:14px 35px;font-family:Cinzel,serif;font-size:1rem;transition:background .3s}.primary-btn:hover:not(:disabled){background:var(--gold-dark)}.primary-btn:disabled{opacity:.6;cursor:not-allowed}.secondary-btn{color:var(--gold-dark);border:1px dashed var(--gold);cursor:pointer;background:0 0;border-radius:3px;width:100%;margin-bottom:20px;padding:10px;font-family:Cinzel,serif;transition:background .2s}.secondary-btn:hover{background:#fdfcf7}.modal-overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:2000;background:#00000080;justify-content:center;align-items:center;padding:15px;display:flex;position:fixed;inset:0}.modal-content{background:#fff;border-radius:6px;width:100%;max-width:500px;max-height:90vh;padding:30px;position:relative;overflow-y:auto;box-shadow:0 20px 40px #00000026}.modal-close{cursor:pointer;color:#999;background:0 0;border:none;font-size:1.5rem;position:absolute;top:15px;right:15px}.party-name{color:#666;margin-bottom:20px;font-size:1.1rem;font-style:italic}.guest-card{background:#fdfdfd;border:1px solid #eae5dc;border-radius:4px;margin-bottom:15px;padding:15px}.guest-header{color:var(--gold-dark);justify-content:space-between;align-items:center;margin-bottom:8px;font-family:Cinzel,serif;font-size:.85rem;display:flex}.remove-guest-btn{color:#d9534f;cursor:pointer;background:0 0;border:none;font-size:.8rem;text-decoration:underline}.guest-card input[type=text]{box-sizing:border-box;border:1px solid #ddd;border-radius:3px;width:100%;margin-bottom:12px;padding:10px;font-family:inherit;font-size:1.05rem}.rsvp-selection{gap:10px;display:flex}.radio-card{text-align:center;cursor:pointer;border:1px solid #ddd;border-radius:3px;flex:1;justify-content:center;align-items:center;gap:6px;padding:10px;font-size:.95rem;transition:all .2s;display:flex}.radio-card input{accent-color:var(--gold)}.radio-card.selected{border-color:var(--gold);color:var(--gold-dark);background:#fdfcf7;font-weight:600}.error-msg{color:#d9534f;margin-bottom:15px;font-size:.95rem}.success-msg{color:#5cb85c;margin-bottom:15px;font-size:.95rem}.map-link,.plain-link{color:inherit;border-bottom:1px dotted var(--gold);text-decoration:none;transition:opacity .2s}.map-link:hover,.plain-link:hover{opacity:.7}.hosted-by{letter-spacing:1px;color:var(--gold-dark);margin-bottom:25px;font-family:Cinzel,serif;font-size:.95rem}.extra-notes{border-top:1px solid #eee;margin-top:35px;padding-top:20px;font-size:1rem;line-height:1.5}.surprise-note{color:#8c7333;margin-bottom:12px;font-weight:600}.contact-note{color:#555}.rsvp-highlight{letter-spacing:1.5px;color:#8c7333;background:#fdfcf7;border-top:1px solid #e6dec5;border-bottom:1px solid #e6dec5;margin:25px 0 20px;padding:12px 0;font-family:Cinzel,serif;font-size:1.1rem;font-weight:600}
