@import "https://fonts.googleapis.com/css2?family=Great+Vibes&family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;1,300;1,400&family=Montserrat:wght@200;300;400;500;600&display=swap";:root{--bg:#f0f0f2;--bg-card:#f5f5f7;--navy:#2c3e50;--navy-soft:#4a6fa5;--blue-ink:#5b7fb5;--blue-deep:#3a5a8a;--gold:#c5a04a;--gold-light:#dcc070;--gold-bright:#e8c84a;--text:#2c3040;--text-muted:#6a7080;--white:#fff}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:Montserrat,sans-serif;overflow-x:hidden}#root{width:100%;min-height:100vh}.fullscreen{flex-direction:column;justify-content:center;align-items:center;width:100%;min-height:100vh;display:flex;position:relative;overflow:hidden}.bg-gradient{z-index:0;pointer-events:none;background:linear-gradient(#ecedf2 0%,#f4f3f0 50%,#eeedf0 100%);position:fixed;inset:0}.particles-container{z-index:1;pointer-events:none;position:fixed;inset:0;overflow:hidden}.particle{background:var(--gold);opacity:0;border-radius:50%;animation:linear infinite particleFloat;position:absolute}@keyframes particleFloat{0%{opacity:0;transform:translateY(100vh)translate(0)scale(0)}10%{opacity:.6;transform:translateY(90vh)translate(10px)scale(1)}90%{opacity:.15;transform:translateY(10vh)translate(-20px)scale(.5)}to{opacity:0;transform:translateY(0)translate(0)scale(0)}}.ambient-glow{filter:blur(60px);pointer-events:none;z-index:0;border-radius:50%;position:fixed}.glow-1{background:radial-gradient(at 40% 40%,#5b7fb540 0%,#0000 60%),radial-gradient(at 70% 30%,#3a5a8a2e 0%,#0000 50%),radial-gradient(at 30% 60%,#c5a04a1a 0%,#0000 45%);width:450px;height:400px;animation:20s ease-in-out infinite alternate blobFloat1;top:-120px;left:-80px}.glow-2{background:radial-gradient(#5b7fb538 0%,#0000 60%),radial-gradient(at 30% 60%,#3a5a8a26 0%,#0000 50%),radial-gradient(at 70% 40%,#c5a04a14 0%,#0000 45%);width:400px;height:380px;animation:18s ease-in-out infinite alternate blobFloat2;bottom:-120px;right:-80px}.glow-3{background:radial-gradient(at 60% 40%,#5b7fb533 0%,#0000 55%),radial-gradient(at 40%,#c5a04a1f 0%,#0000 40%);width:350px;height:300px;animation:22s ease-in-out infinite alternate-reverse blobFloat1;top:-80px;right:-60px}@keyframes blobFloat1{0%{transform:translate(0)scale(1)rotate(0)}50%{transform:translate(30px,20px)scale(1.05)rotate(3deg)}to{transform:translate(-10px,15px)scale(.98)rotate(-2deg)}}@keyframes blobFloat2{0%{transform:translate(0)scale(1)}50%{transform:translate(-25px,-15px)scale(1.08)}to{transform:translate(15px,-20px)scale(.95)}}.hero-content{text-align:center;z-index:10;padding:2rem}.hero-overline{letter-spacing:6px;text-transform:uppercase;color:var(--text-muted);margin-bottom:2rem;font-family:Montserrat,sans-serif;font-size:.7rem;font-weight:400}.hero-names{color:var(--gold);text-shadow:0 2px 8px #c5a04a26;margin-bottom:1rem;font-family:Great Vibes,cursive;font-size:5.5rem;line-height:1.1}.hero-names .amp{color:var(--text);vertical-align:middle;margin:0 15px;font-family:Cormorant Garamond,serif;font-size:2.8rem;font-weight:300;display:inline-block}.hero-date-line{justify-content:center;align-items:center;gap:20px;margin:2rem 0;display:flex}.hero-line{background:linear-gradient(90deg, transparent, var(--gold), transparent);width:80px;height:1px}.hero-date-text{letter-spacing:5px;color:var(--text-muted);font-family:Cormorant Garamond,serif;font-size:1.1rem;font-weight:400}.cta-button{border:1px solid var(--gold);color:var(--gold);letter-spacing:5px;text-transform:uppercase;cursor:pointer;background:0 0;border-radius:2px;margin-top:3rem;padding:18px 50px;font-family:Montserrat,sans-serif;font-size:.75rem;font-weight:500;transition:all .5s;position:relative;overflow:hidden}.cta-button:before{content:"";background:linear-gradient(135deg, var(--gold), var(--gold-bright));opacity:0;z-index:-1;transition:opacity .5s;position:absolute;inset:0}.cta-button:hover{color:var(--white);border-color:var(--gold);box-shadow:0 10px 25px #c5a04a40}.cta-button:hover:before{opacity:1}.envelope-section{z-index:10}.envelope-outer{perspective:2000px;cursor:pointer;filter:drop-shadow(0 20px 40px #3a5a8a33);width:380px;height:260px;transition:filter .3s;position:relative}.envelope-outer:hover{filter:drop-shadow(0 25px 50px #3a5a8a4d)}.env-body{background:linear-gradient(160deg,#5b7fb5,#4a6fa5,#3a5a8a);border-radius:6px;position:absolute;inset:0;overflow:hidden}.env-body:after{content:"";border:1px solid #c5a04a4d;border-radius:4px;position:absolute;inset:4px}.env-liner{background:repeating-linear-gradient(45deg,#0000 0 30px,#c5a04a08 30px 31px);position:absolute;inset:0}.env-letter{z-index:1;background:#fff;border-radius:3px;justify-content:center;align-items:center;width:90%;height:88%;display:flex;position:absolute;top:12px;left:5%;overflow:hidden;box-shadow:0 2px 10px #0000001a}.env-card-preview-img{object-fit:cover;opacity:.95;width:100%;height:100%}.env-flap-left,.env-flap-right{z-index:2;pointer-events:none;width:50%;height:100%;position:absolute;top:0}.env-flap-left{left:0}.env-flap-right{right:0}.env-flap-bottom{z-index:3;pointer-events:none;width:100%;height:55%;position:absolute;bottom:0;left:0}.env-flap-top{z-index:4;transform-origin:top;width:100%;height:60%;transition:transform 1s cubic-bezier(.4,0,.2,1);position:absolute;top:0;left:0}.env-flap-top.open{z-index:0;transform:rotateX(180deg)}.env-seal{z-index:5;width:60px;height:60px;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.env-seal-circle{background:radial-gradient(circle at 35% 35%, var(--gold-bright), var(--gold), #9b7d46);color:#fff;text-shadow:0 1px 3px #0006;border:2px solid #ffffff1a;border-radius:50%;justify-content:center;align-items:center;width:100%;height:100%;font-family:Great Vibes,cursive;font-size:1.5rem;display:flex;box-shadow:0 6px 15px #0000004d,inset 0 2px 4px #fff6,inset 0 -3px 8px #00000040}.env-seal:before,.env-seal:after{content:"";background:radial-gradient(circle, var(--gold), #9b7d46);border-radius:50%;position:absolute}.env-seal:before{width:16px;height:16px;bottom:-2px;left:-7px}.env-seal:after{width:12px;height:12px;bottom:0;right:-5px}.envelope-tap-hint{color:var(--text-muted);letter-spacing:1px;margin-top:2.5rem;font-family:Cormorant Garamond,serif;font-size:1.1rem;font-style:italic;animation:3s ease-in-out infinite fadeInOut}@keyframes fadeInOut{0%,to{opacity:.3}50%{opacity:.8}}.invitation-screen{z-index:10;flex-direction:column;align-items:center;width:100%;max-width:600px;padding:2rem;display:flex}.wedding-card-frame{width:95%;max-width:480px;height:80vh;max-height:750px;box-shadow:none;background:0 0;border-radius:0;justify-content:center;align-items:center;margin-bottom:1.5rem;padding:0;display:flex;position:relative}.wedding-card-img{object-fit:contain;border-radius:2px;width:auto;max-width:100%;height:auto;max-height:100%;display:block}.next-btn{border:1px solid var(--gold);color:var(--gold);letter-spacing:5px;text-transform:uppercase;cursor:pointer;background:0 0;border-radius:2px;padding:16px 45px;font-family:Montserrat,sans-serif;font-size:.75rem;font-weight:500;transition:all .5s}.next-btn:before{content:"";background:linear-gradient(135deg, var(--gold), var(--gold-bright));opacity:0;z-index:-1;transition:opacity .5s;position:absolute;inset:0}.next-btn:hover{background:var(--gold);color:var(--white);box-shadow:0 10px 20px #c5a04a33}.rsvp-screen{z-index:10;-webkit-backdrop-filter:blur(20px);background:#ffffffd9;border:1px solid #c5a04a26;border-radius:4px;width:100%;max-width:500px;padding:2.5rem 2rem;position:relative;box-shadow:0 30px 60px #3a5a8a1a}.rsvp-title{color:var(--gold);text-align:center;margin-bottom:.5rem;font-family:Great Vibes,cursive;font-size:3.5rem}.rsvp-subtitle{letter-spacing:3px;text-transform:uppercase;text-align:center;color:var(--text-muted);margin-bottom:2.5rem;font-family:Cormorant Garamond,serif;font-size:.9rem}.rsvp-form{z-index:1;flex-direction:column;gap:1.8rem;display:flex;position:relative}.field-group{flex-direction:column;gap:8px;display:flex}.field-label{letter-spacing:2px;text-transform:uppercase;color:var(--text);font-family:Montserrat,sans-serif;font-size:.75rem;font-weight:500}.field-input{width:100%;color:var(--text);background:#fffc;border:1px solid #5b7fb533;border-radius:4px;padding:12px 14px;font-family:Montserrat,sans-serif;font-size:.95rem;transition:all .3s}.field-input::placeholder{color:#aab0bc}.field-input:focus{border-color:var(--gold);background:#fff;outline:none;box-shadow:0 0 0 3px #c5a04a1a}.attend-cards{gap:16px;display:flex}.attend-card{cursor:pointer;flex:1;position:relative}.attend-card input{opacity:0;width:0;height:0;position:absolute}.attend-card-inner{background:#fff9;border:1px solid #5b7fb526;border-radius:4px;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:20px 16px;transition:all .3s;display:flex}.attend-card:hover .attend-card-inner{border-color:var(--gold);background:#c5a04a08}.attend-card input:checked+.attend-card-inner{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold);background:#c5a04a14}.attend-emoji{font-size:1.8rem;transition:transform .3s}.attend-card input:checked+.attend-card-inner .attend-emoji{transform:scale(1.1)}.attend-label-text{color:var(--text);font-family:Cormorant Garamond,serif;font-size:.95rem;font-weight:500}.attend-card input:checked+.attend-card-inner .attend-label-text{color:var(--gold)}.rsvp-submit{background:linear-gradient(135deg, var(--blue-deep), var(--navy-soft));color:var(--white);letter-spacing:4px;text-transform:uppercase;cursor:pointer;border:none;border-radius:4px;justify-content:center;align-items:center;height:56px;margin-top:.5rem;padding:18px;font-family:Montserrat,sans-serif;font-size:.8rem;font-weight:500;transition:all .3s;display:flex;box-shadow:0 8px 16px #3a5a8a33}.rsvp-submit:hover{transform:translateY(-1px);box-shadow:0 12px 24px #3a5a8a4d}.rsvp-submit:disabled{cursor:not-allowed;box-shadow:none;background:#bdc3c7;transform:none}.spinner{border:2px solid #fff3;border-top-color:var(--white);border-radius:50%;width:20px;height:20px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.success-screen{z-index:10;text-align:center;-webkit-backdrop-filter:blur(20px);background:#ffffffd9;border:1px solid #c5a04a26;border-radius:4px;width:100%;max-width:500px;padding:2.5rem 2rem;position:relative;box-shadow:0 30px 60px #3a5a8a1a}.success-check{border:2px solid var(--gold);border-radius:50%;justify-content:center;align-items:center;width:70px;height:70px;margin:0 auto 2rem;display:flex}.success-check svg{width:32px;height:32px;stroke:var(--gold);stroke-width:2px;fill:none;stroke-linecap:round;stroke-linejoin:round}.check-path{stroke-dasharray:50;stroke-dashoffset:50px;animation:.7s .4s forwards drawCheck}@keyframes drawCheck{to{stroke-dashoffset:0}}.success-heading{color:var(--gold);margin-bottom:1rem;font-family:Great Vibes,cursive;font-size:3.5rem}.success-text{color:var(--text-muted);font-family:Cormorant Garamond,serif;font-size:1.2rem;font-style:italic;line-height:1.8}@media (width<=550px){.hero-names{font-size:3.8rem}.hero-names .amp{font-size:2rem}.envelope-outer{width:300px;height:210px}.attend-cards{flex-direction:column}.wedding-card-frame{margin-bottom:2rem}.rsvp-screen,.success-screen{margin:0 1rem}}
