*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{min-height:100dvh;background:#f7f2ed;color:#5c3d2e;display:flex;align-items:flex-start;justify-content:center;padding:0}#root{width:100%;max-width:480px;padding:24px 20px}@media(min-height:900px){body{align-items:center}}.card{background:radial-gradient(ellipse at top left,rgba(212,176,160,.08) 0%,transparent 50%),radial-gradient(ellipse at bottom right,rgba(138,171,138,.06) 0%,transparent 50%),#fffbf7;border:1px solid #e8ddd3;border-radius:20px;padding:40px 32px 32px;text-align:center;position:relative;overflow:hidden;box-shadow:0 1px 3px #5c3d2e0a,0 8px 32px #5c3d2e0f}.decor{position:absolute;pointer-events:none;z-index:0}.decor-star-tr{top:12px;right:28px;width:52px;height:52px}.decor-shell-tr2{top:-4px;right:-6px;width:50px;height:50px;transform:rotate(-15deg)}.decor-smallshell-tr{top:52px;right:4px;width:32px;height:28px;transform:rotate(10deg)}.decor-coral-r{top:28%;right:-8px;width:56px;height:72px}.decor-seahorse-r{top:44%;right:2px;width:36px;height:58px}.decor-shell-br{bottom:60px;right:-2px;width:44px;height:44px;transform:rotate(20deg)}.decor-star-br{bottom:14px;right:30px;width:46px;height:46px}.decor-smallshell-br{bottom:8px;right:80px;width:30px;height:26px;transform:rotate(-10deg)}.decor-seaweed-bl{bottom:-4px;left:8px;width:28px;height:70px}.decor-seaweed-br{bottom:-4px;right:12px;width:24px;height:60px;transform:scaleX(-1)}.page-wrapper{position:relative}.photo-overlay{position:fixed;inset:0;background:#0a080666;z-index:10;cursor:pointer;animation:fadeIn .3s ease}.bg-photo-container{position:absolute;top:-40px;left:-60px;z-index:0;cursor:pointer;animation:float 5s ease-in-out infinite;transition:all .5s cubic-bezier(.4,0,.2,1)}.bg-photo-container .bg-photo{width:200px;border-radius:14px;opacity:.18;filter:saturate(.6);transition:all .5s cubic-bezier(.4,0,.2,1);display:block}.bg-photo-container .reveal-hint{position:absolute;bottom:14px;left:50%;transform:translate(-50%);font-family:Cormorant Garamond,serif;font-style:italic;font-size:.72rem;color:#7a5040;background:#fffbf7e6;padding:5px 14px;border-radius:20px;white-space:nowrap;pointer-events:none;animation:hintPulse 2.5s ease-in-out infinite;box-shadow:0 2px 8px #5c3d2e1a}@keyframes hintPulse{0%,to{opacity:.85;transform:translate(-50%) scale(1)}50%{opacity:1;transform:translate(-50%) scale(1.04)}}.bg-photo-container.revealed{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:11;animation:none}.bg-photo-container.revealed .bg-photo{width:min(85vw,400px);opacity:1;filter:saturate(1);border-radius:16px;box-shadow:0 20px 60px #0000004d}.card-dimmed{opacity:.3;filter:blur(2px);transition:all .4s ease}@keyframes float{0%,to{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-10px) rotate(-1deg)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.script-title{font-family:Cormorant Garamond,serif;font-style:italic;font-weight:400;font-size:2.6rem;line-height:1.15;color:#7a5040;margin-bottom:20px;letter-spacing:.01em;position:relative;z-index:1}.section-label{font-size:.65rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:#a08272;margin-bottom:6px;position:relative;z-index:1}.couple-names{font-family:Cormorant Garamond,serif;font-style:italic;font-weight:500;font-size:1.5rem;color:#7a5040;margin-bottom:18px;position:relative;z-index:1}.event-details{margin-bottom:22px;position:relative;z-index:1}.event-date{font-size:.82rem;font-weight:600;letter-spacing:.1em;color:#5c3d2e;margin-bottom:4px}.event-location{font-size:.8rem;color:#a08272;line-height:1.5}.divider{width:56px;height:1px;background:#ddd0c4;margin:0 auto 20px;position:relative;z-index:1}.registry{margin-bottom:22px;position:relative;z-index:1}.qr-wrapper{margin:14px auto 12px;width:136px;height:136px;background:#fffbf7;border:1px solid #e8ddd3;border-radius:12px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #5c3d2e0d}.registry-link{display:inline-block;font-size:.72rem;color:#a08272;text-decoration:none;letter-spacing:.02em;transition:color .2s}.registry-link:hover{color:#7a5040}.rsvp-section{position:relative;z-index:1}.rsvp-label{font-size:.65rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:#a08272;margin-bottom:6px}.jack-jill-note{font-family:Cormorant Garamond,serif;font-style:italic;font-size:.95rem;color:#b8977e;margin-bottom:16px}.inputs{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}.name-input{width:100%;padding:12px 16px;font-size:.92rem;font-family:Cormorant Garamond,serif;font-style:italic;background:#f7f2ed99;border:1px solid #ddd0c4;border-radius:10px;color:#5c3d2e;outline:none;transition:border-color .2s,box-shadow .2s;text-align:center}.name-input:focus{border-color:#b8977e;box-shadow:0 0 0 3px #b8977e1a}.name-input::placeholder{color:#c4b0a0}.buttons{display:flex;gap:10px}.btn{flex:1;padding:13px 0;font-size:.78rem;font-weight:600;font-family:inherit;letter-spacing:.1em;text-transform:uppercase;border-radius:10px;cursor:pointer;transition:all .2s ease;position:relative}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.3;cursor:not-allowed;transform:none}.btn-yes{background:transparent;color:#5c7a5e;border:1.5px solid #8aab8a}.btn-yes:not(:disabled):hover{background:#8aab8a;color:#fff;border-color:#8aab8a;box-shadow:0 4px 14px #8aab8a40}.btn-no{background:transparent;color:#a08272;border:1.5px solid #ddd0c4}.btn-no:not(:disabled):hover{background:#c4897a;color:#fff;border-color:#c4897a;box-shadow:0 4px 14px #c4897a40}.sending{opacity:.6;pointer-events:none}.error-msg{color:#c4897a;font-size:.8rem;margin-top:14px}.success-card{padding:48px 32px}.success-icon{font-size:2.6rem;margin-bottom:14px;line-height:1}.success-heading{font-family:Cormorant Garamond,serif;font-style:italic;font-weight:500;font-size:1.7rem;color:#7a5040;margin-bottom:8px;position:relative;z-index:1}.success-detail{color:#a08272;font-size:.88rem;line-height:1.6;position:relative;z-index:1}.success-event{margin-top:24px;padding-top:24px;border-top:1px solid #e8ddd3;position:relative;z-index:1}.success-event-date{font-size:.82rem;font-weight:600;color:#5c3d2e;margin-bottom:4px}.success-event-location{font-size:.8rem;color:#a08272;line-height:1.5}@media(max-width:420px){.card{padding:32px 24px 28px}.script-title{font-size:2.2rem;margin-bottom:16px}.couple-names{font-size:1.35rem}.qr-wrapper{width:120px;height:120px}}
