:root{--white:#fff;--white-warm:#fffcfa;--pink-100:#fff8f9;--pink-200:#ffe8ed;--pink-300:#f8c4d4;--pink-400:#e88faa;--pink-500:#c9567a;--pink-600:#a83d5c;--cream:#fffef9;--ivory:#fefcf8;--parchment:#f9f5f0;--gold:#d4a574;--gold-light:#e8c9a0;--green-soft:#a8c6a0;--purple-soft:#c4a8d4;--whatsapp:#25d366;--whatsapp-dark:#128c7e;--shadow-soft:0 4px 16px #0000000f;--shadow-medium:0 8px 32px #00000014;--shadow-seal:0 4px 20px #c9567a40;--font-script:"Great Vibes",cursive;--font-elegant:"Cormorant Garamond",serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{overflow:hidden;height:100%}body{font-family:var(--font-elegant);background:var(--white);color:var(--pink-600);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;touch-action:manipulation}.invitation{position:relative;width:100%;height:100%}.silk-bg{position:fixed;background:var(--white);z-index:-2;inset:0}.silk-bg:before{content:"";position:absolute;background:radial-gradient(at 0 0,#f8c4d440 0%,#0000 50%),radial-gradient(at 100% 0,#f8c4d433 0%,#0000 45%),radial-gradient(at 0 100%,#f8c4d433 0%,#0000 45%),radial-gradient(at 100% 100%,#f8c4d440 0%,#0000 50%);inset:0}.silk-bg:after{content:"";position:absolute;background:radial-gradient(#0000 40%,#ffe8ed26 100%);inset:0}.bg-butterflies{position:fixed;pointer-events:none;z-index:-1;overflow:hidden;inset:0}.bg-butterfly{position:absolute;opacity:.15;filter:blur(1px);width:40px;height:auto}.bg-butterfly-1{animation:floatButterfly1 20s ease-in-out infinite;top:15%;left:10%}.bg-butterfly-2{animation:floatButterfly2 25s ease-in-out infinite;animation-delay:-5s;width:30px;top:60%;right:15%}.bg-butterfly-3{animation:floatButterfly3 22s ease-in-out infinite;animation-delay:-10s;width:35px;bottom:20%;left:20%}@keyframes floatButterfly1{0%,to{transform:translate(0)rotate(-5deg)}25%{transform:translate(20px,-30px)rotate(5deg)}50%{transform:translate(-10px,-50px)rotate(-10deg)}75%{transform:translate(30px,-20px)rotate(5deg)}}@keyframes floatButterfly2{0%,to{transform:translate(0)rotate(5deg)}33%{transform:translate(-25px,20px)rotate(-5deg)}66%{transform:translate(15px,-15px)rotate(10deg)}}@keyframes floatButterfly3{0%,to{transform:translate(0)rotate(0)}50%{transform:translate(25px,-25px)rotate(-5deg)}}.envelope-scene{position:fixed;display:flex;z-index:10;flex-direction:column;justify-content:center;align-items: center;transition:opacity .8s ease-out,transform .8s ease-out;inset:0}.envelope-scene.hidden{opacity:0;pointer-events:none;transform:scale(.9)}.envelope-container{display:flex;flex-direction:column;align-items: center;gap:24px;padding:20px}.deco-flowers{opacity:.9;width:min(280px,70vw);height:auto}.deco-flowers-top{animation:fadeSlideDown 1s ease-out .3s both}.deco-flowers-bottom{animation:fadeSlideUp 1s ease-out .5s both;transform:rotate(180deg)}@keyframes fadeSlideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:.9;transform:translateY(0)}}@keyframes fadeSlideUp{0%{opacity:0;transform:rotate(180deg)translateY(-20px)}to{opacity:.9;transform:rotate(180deg)translateY(0)}}.envelope{position:relative;animation:envelopeAppear 1s ease-out both;perspective:1000px;transform-style:preserve-3d;width:min(340px,88vw);height:min(220px,56vw)}@keyframes envelopeAppear{0%{opacity:0;transform:scale(.9)translateY(20px)}to{opacity:1;transform:scale(1)translateY(0)}}.envelope-back{position:absolute;background:linear-gradient(165deg,#fdfcfa 0%,#f9f7f4 50%,#f5f2ed 100%);border:1px solid #c8beaf4d;border-radius:3px;inset:0;box-shadow:0 2px 4px #0000000a,0 8px 24px #0000000f,0 16px 48px #b4a08c1a}.envelope-back:before{content:"";position:absolute;pointer-events:none;background-image:repeating-linear-gradient(0deg,#0000,#0000 2px,#00000002 2px 4px),repeating-linear-gradient(90deg,#0000,#0000 2px,#00000001 2px 4px);border-radius:3px;inset:0}.envelope-back:after{content:"";position:absolute;pointer-events:none;background:linear-gradient(to bottom right,#0000 49%,#0000000f 49% 51%,#0000 51%),linear-gradient(to bottom left,#0000 49%,#0000000f 49% 51%,#0000 51%);inset:0}.envelope-front{position:absolute;clip-path:polygon(0 20%,50% 0,100% 20%,100% 100%,0 100%);z-index:2;background:linear-gradient(#faf8f5 0%,#f7f5f1 40%,#f4f1ec 100%);border-radius:0 0 3px 3px;height:75%;bottom:0;left:0;right:0}.envelope-front:before{content:"";position:absolute;clip-path:polygon(0 20%,50% 0,100% 20%,100% 100%,0 100%);pointer-events:none;background:linear-gradient(#00000008 0%,#0000 15%);inset:0}.envelope-flap{position:absolute;transform-style:preserve-3d;transform-origin:50% 0%;z-index:4;height:50%;transition:transform 1s cubic-bezier(.4,0,.2,1);top:0;left:0;right:0}.envelope-flap:before{content:"";position:absolute;clip-path:polygon(0 0,100% 0,50% 100%);backface-visibility:hidden;background:linear-gradient(#f8f6f2 0%,#f5f3ee 50%,#f2efea 100%);inset:0}.envelope-flap:after{content:"";position:absolute;clip-path:polygon(0 0,100% 0,50% 100%);backface-visibility:hidden;pointer-events:none;background:linear-gradient(135deg,#ffffff80 0%,#0000 50%);inset:0}.flap-inner{position:absolute;clip-path:polygon(0 0,100% 0,50% 100%);backface-visibility:hidden;background:linear-gradient(#e8e2d8 0%,#efe9e0 100%);inset:0;transform:rotateY(180deg)}.flap-inner:before{content:"";position:absolute;clip-path:polygon(0 0,100% 0,50% 100%);background:repeating-linear-gradient(135deg,#0000,#0000 4px,#b48c8214 4px 8px);inset:0}.envelope.opened .envelope-flap{transform:rotateX(180deg)}.envelope.opened{animation:envelopeFadeOut 1.2s ease-out .8s forwards}@keyframes envelopeFadeOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.05)}}.seal-container{position:absolute;z-index:10;cursor:pointer;background:0 0;border:none;padding:0;top:50%;left:50%;transform:translate(-50%,-50%)}.wax-seal{filter:drop-shadow(var(--shadow-seal));animation:sealPulse 3s ease-in-out infinite;width:min(110px,30vw);height:auto;transition:transform .3s,filter .3s}.seal-container:hover .wax-seal,.seal-container:active .wax-seal{transform:scale(1.05)}.seal-glow{position:absolute;animation:glowPulse 3s ease-in-out infinite;pointer-events:none;background:radial-gradient(circle,#f8c4d433 0%,#0000 60%);border-radius:50%;inset:-15%}@keyframes sealPulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}@keyframes glowPulse{0%,to{opacity:.4;transform:scale(1)}50%{opacity:.7;transform:scale(1.05)}}.seal-container.breaking{animation:sealBreak .8s ease-out forwards}.seal-container.breaking .wax-seal{animation:sealFade .8s ease-out forwards}.seal-container.breaking .seal-glow{animation:glowFade .5s ease-out forwards}@keyframes sealBreak{0%{transform:translate(-50%,-50%)scale(1);opacity:1}40%{transform:translate(-50%,-50%)scale(1.08);opacity:1}to{transform:translate(-50%,-50%)scale(1.15);opacity:0}}@keyframes sealFade{0%{filter:drop-shadow(var(--shadow-seal))}to{filter:drop-shadow(0 0 15px #f8c4d44d)brightness(1.1)}}@keyframes glowFade{0%{opacity:.7}to{opacity:0}}.tap-instruction{display:flex;font-family:var(--font-elegant);color:var(--pink-500);animation:fadeInUp 1s ease-out .8s both,instructionPulse 3s ease-in-out 2s infinite;flex-direction:column;align-items: center;gap:8px;transition:opacity .3s,transform .3s;font-size:1.1rem;font-style:italic}.tap-instruction.fade-out{opacity:0;transform:translateY(10px)}.tap-icon{display:flex;animation:bounce 1.5s ease-in-out infinite}.tap-icon svg{width:20px;height:20px}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes instructionPulse{0%,to{opacity:1}50%{opacity:.6}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.flying-butterflies{position:fixed;pointer-events:none;z-index:15;opacity:0;inset:0}.flying-butterflies.active{opacity:1}.flying-butterfly{position:absolute;opacity:0;filter:drop-shadow(0 4px 8px #0000001a);width:60px;height:auto}.flying-butterflies.active .fly-1{animation:flyPath1 3s ease-out forwards}.flying-butterflies.active .fly-2{animation:flyPath2 3.5s ease-out .1s forwards}.flying-butterflies.active .fly-3{animation:flyPath3 3.2s ease-out .2s forwards}.flying-butterflies.active .fly-4{animation:flyPath4 4s ease-out .15s forwards}.flying-butterflies.active .fly-5{animation:flyPath5 3.8s ease-out .25s forwards}@keyframes flyPath1{0%{left:50%;top:50%;opacity:1;transform:translate(-50%,-50%)scale(.3)rotate(0)}30%{opacity:1;transform:translate(-100px,-150px)scale(.8)rotate(-15deg)}to{left:-10%;top:-10%;opacity:0;transform:translate(-50%,-50%)scale(1)rotate(-30deg)}}@keyframes flyPath2{0%{left:50%;top:50%;opacity:1;transform:translate(-50%,-50%)scale(.3)rotate(0)}30%{opacity:1;transform:translate(80px,-180px)scale(.7)rotate(20deg)}to{left:110%;top:-10%;opacity:0;transform:translate(-50%,-50%)scale(.9)rotate(45deg)}}@keyframes flyPath3{0%{left:50%;top:50%;opacity:1;transform:translate(-50%,-50%)scale(.3)rotate(0)}40%{opacity:1;transform:translate(-150px,-100px)scale(.9)rotate(-25deg)}to{left:-15%;top:30%;opacity:0;transform:translate(-50%,-50%)scale(1.1)rotate(-40deg)}}@keyframes flyPath4{0%{left:50%;top:50%;opacity:1;transform:translate(-50%,-50%)scale(.3)rotate(0)}35%{opacity:1;transform:translate(120px,-80px)scale(.75)rotate(15deg)}to{left:110%;top:40%;opacity:0;transform:translate(-50%,-50%)scale(1)rotate(35deg)}}@keyframes flyPath5{0%{left:50%;top:50%;opacity:1;transform:translate(-50%,-50%)scale(.3)rotate(0)}50%{opacity:1;transform:translateY(-200px)scale(.85)rotate(5deg)}to{left:50%;top:-15%;opacity:0;transform:translate(-50%,-50%)scale(1)rotate(10deg)}}.video-scene{position:fixed;display:flex;background:var(--white);z-index:5;opacity:0;pointer-events:none;justify-content:center;align-items: center;transition:opacity .8s ease-out;inset:0}.video-scene.active{opacity:1;pointer-events:auto}.video-container{display:flex;background:var(--white);justify-content:center;align-items: center;width:100%;height:100%}.video-container video{object-fit:contain;background:var(--white);width:100%;height:100%}@media (max-width:768px) and (orientation:portrait){.video-container video{object-fit:cover}}.unmute-prompt{position:fixed;display:flex;font-family:var(--font-elegant);color:var(--pink-500);cursor:pointer;z-index:100;animation:fadeInUp .5s ease-out;background:#fffffff2;border:none;border-radius:30px;align-items: center;gap:8px;padding:12px 20px;font-size:.95rem;bottom:20px;left:50%;transform:translate(-50%);box-shadow:0 4px 20px #00000026}.unmute-prompt svg{width:24px;height:24px}.unmute-prompt:hover{background:#fff}.skip-btn{position:fixed;display:flex;backdrop-filter:blur(8px);font-family:var(--font-elegant);color:var(--pink-500);cursor:pointer;z-index:100;opacity:0;animation:skipBtnFadeIn .5s ease-out 1s forwards;background:#ffffffd9;border:none;border-radius:25px;align-items: center;gap:6px;padding:10px 16px;transition:background .2s,transform .2s;font-size:.9rem;top:20px;right:20px;box-shadow:0 2px 12px #0000001a}@keyframes skipBtnFadeIn{0%{opacity:0}to{opacity:1}}.skip-btn:hover{background:#fff;transform:scale(1.02)}.skip-btn:active{transform:scale(.98)}.skip-btn svg{width:18px;height:18px}.actions-scene{position:fixed;display:flex;z-index:20;opacity:0;pointer-events:none;overflow-y:auto;justify-content:center;align-items: center;transition:opacity .8s ease-out;inset:0}.actions-scene.active{opacity:1;pointer-events:auto}.actions-container{display:flex;flex-direction:column;align-items: center;gap:24px;width:100%;max-width:400px;padding:40px 24px}.actions-flowers{animation:fadeSlideDown .8s ease-out both;width:min(250px,60vw);height:auto}.actions-title{font-family:var(--font-script);color:var(--pink-500);text-align:center;animation:fadeInUp .8s ease-out .2s both;font-size:clamp(2rem,8vw,3rem)}.action-buttons{display:flex;animation:fadeInUp .8s ease-out .4s both;flex-direction:column;gap:16px;width:100%}.action-btn{display:flex;font-family:var(--font-elegant);text-decoration:none;cursor:pointer;border:none;border-radius:50px;justify-content:center;align-items: center;gap:12px;padding:16px 24px;transition:transform .3s,box-shadow .3s;font-size:1.1rem;font-weight:600}.action-btn:active{transform:scale(.97)}.action-btn svg{flex-shrink:0;width:24px;height:24px}.confirm-btn{background:linear-gradient(135deg,var(--pink-500)0%,var(--pink-600)100%);color:#fff;box-shadow:0 4px 20px #c9567a59}.confirm-btn:hover{transform:translateY(-2px);box-shadow:0 6px 30px #c9567a73}.maps-btn{background:linear-gradient(135deg,var(--pink-400)0%,var(--pink-500)100%);color:#fff;box-shadow:0 4px 20px #d46a8c4d}.maps-btn:hover{transform:translateY(-2px);box-shadow:0 6px 30px #d46a8c66}.replay-btn{display:flex;border:2px solid var(--pink-300);font-family:var(--font-elegant);color:var(--pink-500);cursor:pointer;animation:fadeInUp .8s ease-out .6s both;background:0 0;border-radius:30px;justify-content:center;align-items: center;gap:8px;padding:12px 20px;transition:all .3s;font-size:1rem}.replay-btn:hover{background:var(--pink-100);border-color:var(--pink-400)}.replay-btn:active{transform:scale(.97)}.replay-btn svg{width:18px;height:18px}.hearts-decoration{position:fixed;pointer-events:none;overflow:hidden;inset:0}.heart{position:absolute;opacity:.2;width:30px;height:auto}.heart-1{animation:floatHeart 15s ease-in-out infinite;top:10%;left:8%}.heart-2{animation:floatHeart 18s ease-in-out infinite reverse;animation-delay:-5s;width:25px;top:70%;right:10%}.heart-3{animation:floatHeart 20s ease-in-out infinite;animation-delay:-10s;width:20px;bottom:15%;left:15%}@keyframes floatHeart{0%,to{transform:translateY(0)rotate(-10deg)}50%{transform:translateY(-20px)rotate(10deg)}}@media (max-width:380px){.envelope{width:92vw;height:60vw}.wax-seal{width:90px}.deco-flowers{width:70vw}.tap-instruction{font-size:1rem}}@media (min-width:768px){.envelope{width:420px;height:270px}.wax-seal{width:130px}.action-btn{padding:18px 32px;font-size:1.2rem}}@media (min-width:1024px){.envelope{width:480px;height:310px}.wax-seal{width:140px}}.rsvp-overlay{position:fixed;backdrop-filter:blur(4px);display:flex;z-index:1000;animation:fadeIn .3s ease-out;background:#00000080;justify-content:center;align-items: center;padding:20px;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.rsvp-modal{background:var(--white);overflow-y:auto;position:relative;animation:modalSlideUp .4s ease-out;border-radius:20px;width:100%;max-width:440px;max-height:90vh;padding:32px 24px;box-shadow:0 20px 60px #00000026}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.rsvp-close{position:absolute;background:var(--pink-100);cursor:pointer;display:flex;border:none;border-radius:50%;justify-content:center;align-items: center;width:32px;height:32px;transition:background .2s;top:16px;right:16px}.rsvp-close:hover{background:var(--pink-200)}.rsvp-close svg{color:var(--pink-500);width:18px;height:18px}.rsvp-title{font-family:var(--font-script);color:var(--pink-500);text-align:center;margin-bottom:8px;font-size:2rem}.rsvp-subtitle{font-family:var(--font-elegant);color:var(--pink-400);text-align:center;margin-bottom:24px;font-size:1rem}.rsvp-form{display:flex;flex-direction:column;gap:20px}.rsvp-label{display:block;font-family:var(--font-elegant);color:var(--pink-600);margin-bottom:10px;font-size:1rem;font-weight:600}.rsvp-optional{color:var(--pink-400);display:block;margin-top:2px;font-size:.9rem;font-weight:400}.rsvp-guests{display:flex;flex-direction:column;gap:12px}.rsvp-guest-row{display:flex;align-items: center;gap:10px}.rsvp-input{font-family:var(--font-elegant);border:2px solid var(--pink-200);background:var(--white);color:var(--pink-600);border-radius:12px;padding:12px 16px;transition:border-color .2s,box-shadow .2s;font-size:1rem}.rsvp-input:focus{outline:none;border-color:var(--pink-400);box-shadow:0 0 0 3px #c9567a1a}.rsvp-input::placeholder{color:var(--pink-300)}.rsvp-input-name{flex:1}.rsvp-input-age{width:80px}.rsvp-remove-guest{background:var(--pink-100);cursor:pointer;display:flex;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items: center;width:36px;height:36px;transition:background .2s}.rsvp-remove-guest:hover{background:var(--pink-200)}.rsvp-remove-guest svg{color:var(--pink-500);width:16px;height:16px}.rsvp-add-guest{display:flex;border:2px dashed var(--pink-200);color:var(--pink-400);font-family:var(--font-elegant);cursor:pointer;background:0 0;border-radius:12px;justify-content:center;align-items: center;gap:8px;padding:12px;transition:all .2s;font-size:.95rem}.rsvp-add-guest:hover{border-color:var(--pink-400);color:var(--pink-500);background:var(--pink-100)}.rsvp-add-guest svg{width:18px;height:18px}.rsvp-whatsapp-section{width:100%}.rsvp-input-whatsapp{box-sizing:border-box;width:100%}.rsvp-message-section{width:100%}.rsvp-textarea{font-family:var(--font-elegant);border:2px solid var(--pink-200);background:var(--white);color:var(--pink-600);resize:vertical;box-sizing:border-box;border-radius:12px;width:100%;min-height:80px;padding:12px 16px;transition:border-color .2s,box-shadow .2s;font-size:1rem}.rsvp-textarea:focus{outline:none;border-color:var(--pink-400);box-shadow:0 0 0 3px #c9567a1a}.rsvp-textarea::placeholder{color:var(--pink-300)}.rsvp-error{color:#dc3545;text-align:center;background:#fff5f5;border-radius:8px;padding:10px;font-size:.9rem}.rsvp-submit{background:linear-gradient(135deg,var(--pink-400)0%,var(--pink-500)100%);color:#fff;font-family:var(--font-elegant);cursor:pointer;border:none;border-radius:50px;padding:16px 24px;transition:transform .2s,box-shadow .2s;font-size:1.1rem;font-weight:600;box-shadow:0 4px 20px #c9567a4d}.rsvp-submit:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 30px #c9567a66}.rsvp-submit:active:not(:disabled){transform:scale(.98)}.rsvp-submit:disabled{opacity:.7;cursor:not-allowed}.rsvp-success-modal{text-align:center;padding:40px 24px}.rsvp-success-icon{background:linear-gradient(135deg,var(--whatsapp)0%,var(--whatsapp-dark)100%);display:flex;animation:successPop .5s ease-out;border-radius:50%;justify-content:center;align-items: center;width:80px;height:80px;margin:0 auto 20px}@keyframes successPop{0%{transform:scale(0)}50%{transform:scale(1.2)}to{transform:scale(1)}}.rsvp-success-icon svg{color:#fff;width:40px;height:40px}.rsvp-success-modal .rsvp-title{margin-bottom:12px}.rsvp-success-modal .rsvp-subtitle{margin-bottom:28px}@media (prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
