:root{--color-bg: #fffaf6;--color-surface: #fff8f2;--color-gold: #c9a84c;--color-gold-light: #e8d5a3;--color-gold-dark: #8a6f2e;--color-pink: #f4c2c2;--color-pink-light: #fde8e8;--color-pink-dark: #d4808a;--color-cream: #fdf5e6;--color-white: #ffffff;--color-text: #3a2a1a;--color-text-muted: #7a6555;--color-border: #e8d5b0;--font-heading: "Cormorant Garamond", serif;--font-script: "Great Vibes", cursive;--font-body: "Lato", sans-serif;--shadow-soft: 0 4px 24px rgba(180, 140, 80, .12);--shadow-card: 0 8px 40px rgba(180, 140, 80, .18);--radius-card: 16px;--radius-pill: 50px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{font-family:var(--font-body);background-color:var(--color-bg);color:var(--color-text);line-height:1.6;min-height:100vh;overflow-x:hidden}#root{min-height:100vh}img{max-width:100%;height:auto;display:block}button{cursor:pointer;border:none;background:none;font-family:inherit}a{text-decoration:none;color:inherit}.ornament-divider{display:flex;align-items:center;justify-content:center;gap:12px;margin:24px auto;color:var(--color-gold)}.ornament-divider:before,.ornament-divider:after{content:"";height:1px;width:60px;background:linear-gradient(to right,transparent,var(--color-gold))}.ornament-divider:after{background:linear-gradient(to left,transparent,var(--color-gold))}.section{padding:64px 20px;max-width:860px;margin:0 auto;text-align:center}.section-title{font-family:var(--font-heading);font-size:clamp(2rem,5vw,3rem);font-weight:400;color:var(--color-gold-dark);margin-bottom:8px;letter-spacing:.02em}.section-subtitle{font-family:var(--font-script);font-size:clamp(1.4rem,3.5vw,2rem);color:var(--color-pink-dark);margin-bottom:24px}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.fade-in-up{animation:fadeInUp .8s ease both}.btn-gold{display:inline-flex;align-items:center;gap:8px;padding:12px 28px;background:linear-gradient(135deg,var(--color-gold),var(--color-gold-dark));color:#fff;border-radius:var(--radius-pill);font-family:var(--font-body);font-size:.95rem;font-weight:400;letter-spacing:.06em;text-transform:uppercase;box-shadow:0 4px 15px #b48c3c4d;transition:transform .2s,box-shadow .2s}.btn-gold:hover{transform:translateY(-2px);box-shadow:0 8px 24px #b48c3c66}.envelope-scene{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:32px;background:radial-gradient(ellipse at 50% 0%,#fdeef1,#fdf5e6 40%,#f9f0e0);cursor:pointer;-webkit-user-select:none;user-select:none;overflow:hidden;position:relative}.petals-container{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.petal{position:absolute;width:12px;height:18px;border-radius:50% 0;opacity:.5;animation:petalFall linear infinite}.petal-1{background:#f9c6d0;left:8%;animation-duration:6s;animation-delay:0s;width:10px;height:14px}.petal-2{background:#e8d5a3;left:22%;animation-duration:8s;animation-delay:1s}.petal-3{background:#f4c2c2;left:38%;animation-duration:7s;animation-delay:2.5s;width:8px;height:12px}.petal-4{background:#c9a84c;left:55%;animation-duration:9s;animation-delay:.5s;opacity:.3}.petal-5{background:#f9c6d0;left:70%;animation-duration:6.5s;animation-delay:3s}.petal-6{background:#e8d5a3;left:82%;animation-duration:7.5s;animation-delay:1.5s;width:14px;height:20px}.petal-7{background:#f4c2c2;left:15%;animation-duration:10s;animation-delay:4s}.petal-8{background:#c9a84c;left:90%;animation-duration:8.5s;animation-delay:2s;opacity:.25}@keyframes petalFall{0%{transform:translateY(-60px) rotate(0);opacity:0}10%{opacity:.5}90%{opacity:.5}to{transform:translateY(110vh) rotate(360deg);opacity:0}}.envelope-wrapper{position:relative;width:320px;height:240px;perspective:1000px;filter:drop-shadow(0 12px 32px rgba(180,140,60,.22));transition:transform .3s ease}.envelope-scene:hover .envelope-wrapper:not(.opening){transform:translateY(-6px)}.envelope-wrapper.opening{animation:envelopeLift 1.8s ease forwards}@keyframes envelopeLift{0%{transform:translateY(0) scale(1)}40%{transform:translateY(-20px) scale(1.04)}to{transform:translateY(-20px) scale(1.04) rotateX(5deg)}}.envelope{position:absolute;top:0;right:0;bottom:0;left:0;overflow:visible}.flap{position:absolute;overflow:hidden}.flap-bottom{bottom:0;left:0;right:0;height:130px;background:linear-gradient(160deg,#f8e8c4,#f0d898 60%,#e8c870);clip-path:polygon(0 0,50% 100%,100% 0);z-index:1}.flap-left{left:0;top:0;bottom:0;width:165px;background:linear-gradient(135deg,#fef3dc,#f5e4b5);clip-path:polygon(0 0,100% 50%,0 100%);z-index:2}.flap-right{right:0;top:0;bottom:0;width:165px;background:linear-gradient(225deg,#fef3dc,#f5e4b5);clip-path:polygon(100% 0,0 50%,100% 100%);z-index:2}.flap-top{top:0;left:0;right:0;height:130px;background:linear-gradient(200deg,#fdf5e0,#f8e8c0 60%,#f0d898);clip-path:polygon(0 0,50% 100%,100% 0);transform-origin:top center;transform:rotateX(0);transition:transform .8s cubic-bezier(.4,0,.2,1);z-index:5;border-top:1px solid #e8c870}.flap-top.flap-open{transform:rotateX(-170deg)}.envelope-front{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(160deg,#fffdf5,#fef6df 60%,#faecc8);border:1.5px solid #e8d098;border-radius:2px;z-index:3;display:flex;align-items:center;justify-content:center}.envelope-front:before{content:"";position:absolute;top:8px;right:8px;bottom:8px;left:8px;border:1px solid rgba(201,168,76,.35);pointer-events:none}.envelope-seal{width:72px;height:72px;border-radius:50%;background:radial-gradient(circle at 40% 35%,#e8c060,#c9a84c 50%,#8a6f2e);display:flex;align-items:center;justify-content:center;box-shadow:0 3px 12px #8a6f2e80,inset 0 1px 2px #ffffff4d;z-index:6;position:relative;border:2px solid #b89438}.initials{font-family:Great Vibes,cursive;font-size:1.05rem;color:#fff8e8;text-shadow:0 1px 2px rgba(100,70,10,.4);letter-spacing:.05em;white-space:nowrap}.letter{position:absolute;bottom:8px;left:12px;right:12px;height:90%;background:linear-gradient(180deg,#fffdf8,#fdf8ee);border:1px solid #e8d5b0;border-radius:4px 4px 0 0;display:flex;align-items:flex-start;justify-content:center;padding-top:20px;z-index:4;transform:translateY(100%);transition:transform .7s cubic-bezier(.4,0,.2,1) .7s}.letter.letter-rise{transform:translateY(30%)}.letter-preview-text{font-family:Great Vibes,cursive;font-size:1.15rem;color:var(--color-gold-dark, #8a6f2e);opacity:0;transition:opacity .5s ease 1.3s}.letter.letter-rise .letter-preview-text{opacity:1}.touch-prompt{display:flex;flex-direction:column;align-items:center;gap:12px;transition:opacity .5s ease}.touch-prompt.prompt-fade{opacity:0;pointer-events:none}.touch-circle{width:56px;height:56px;border-radius:50%;border:1.5px solid var(--color-gold, #c9a84c);display:flex;align-items:center;justify-content:center;color:var(--color-gold, #c9a84c);font-size:1.1rem;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1);box-shadow:0 0 #c9a84c66}50%{transform:scale(1.08);box-shadow:0 0 0 10px #c9a84c00}}.touch-text{font-family:Cormorant Garamond,serif;font-size:1rem;font-style:italic;color:var(--color-text-muted, #7a6555);letter-spacing:.1em}.envelope-tagline{font-family:Cormorant Garamond,serif;font-size:1.05rem;color:var(--color-text-muted, #7a6555);letter-spacing:.08em}.tagline-script{font-family:Great Vibes,cursive;font-size:1.5rem;color:var(--color-gold-dark, #8a6f2e)}@media (max-width: 400px){.envelope-wrapper{width:280px;height:210px}.envelope-seal{width:60px;height:60px}.initials{font-size:.9rem}}.invitation{padding:80px 20px 48px;text-align:center;background:linear-gradient(180deg,var(--color-cream) 0%,var(--color-bg) 100%);position:relative;overflow:hidden}.invitation:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(ellipse 60% 40% at 50% 0%,rgba(244,194,194,.25) 0%,transparent 70%);pointer-events:none}.invitation-inner{position:relative;z-index:1;max-width:680px;margin:0 auto}.blessing-text{font-family:var(--font-script);font-size:clamp(1.2rem,3vw,1.6rem);color:var(--color-text-muted);margin-bottom:32px;letter-spacing:.02em}.main-heading{font-family:var(--font-heading);font-size:clamp(2.2rem,6vw,3.8rem);font-weight:300;color:var(--color-gold-dark);line-height:1.2;letter-spacing:.04em;margin-bottom:12px}.main-heading span{font-weight:600;color:var(--color-pink-dark)}.names-banner{margin:32px 0}.names-row{display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap}.name-groom,.name-bride{font-family:var(--font-script);font-size:clamp(2.8rem,8vw,5rem);color:var(--color-gold-dark);line-height:1.1}.name-ampersand{font-family:var(--font-heading);font-size:clamp(1.8rem,4vw,2.8rem);color:var(--color-pink-dark);font-weight:300}.invite-prose{font-family:var(--font-heading);font-size:clamp(1rem,2.5vw,1.3rem);font-weight:300;font-style:italic;color:var(--color-text-muted);line-height:1.9;max-width:520px;margin:0 auto}.invite-prose strong{font-style:normal;font-weight:500;color:var(--color-text)}.gold-line{width:80px;height:1.5px;background:linear-gradient(90deg,transparent,var(--color-gold),transparent);margin:24px auto}.couple-details-section{padding:32px 20px 40px;background:var(--color-bg)}.couple-details-inner{max-width:860px;margin:0 auto;text-align:center}.couple-grid{display:grid;grid-template-columns:1fr auto 1fr;gap:0 20px;align-items:center;margin-top:20px}.couple-divider{display:flex;flex-direction:column;align-items:center;gap:8px}.divider-heart{font-size:1.6rem;animation:heartbeat 1.5s ease-in-out infinite;color:var(--color-pink-dark)}@keyframes heartbeat{0%,to{transform:scale(1)}14%{transform:scale(1.25)}28%{transform:scale(1)}42%{transform:scale(1.18)}70%{transform:scale(1)}}.divider-line{width:1.5px;flex:1;min-height:60px;background:linear-gradient(180deg,transparent,var(--color-gold-light),transparent)}.person-card{background:linear-gradient(145deg,var(--color-white) 0%,var(--color-cream) 100%);border:1px solid var(--color-border);border-radius:var(--radius-card);padding:20px 18px;box-shadow:var(--shadow-soft)}.person-name{font-family:var(--font-script);font-size:clamp(1.6rem,4vw,2.2rem);font-weight:400;color:var(--color-gold-dark);margin-bottom:10px;line-height:1.2}.person-parents{font-family:var(--font-body);font-size:.82rem;color:var(--color-text-muted);line-height:1.7}.person-parents strong{color:var(--color-text);font-weight:400}@media (max-width: 640px){.couple-grid{grid-template-columns:1fr;gap:16px}.couple-divider{flex-direction:row}.divider-line{height:1.5px;width:60px;min-height:unset;background:linear-gradient(90deg,transparent,var(--color-gold-light),transparent)}}.scratch-section{padding:48px 20px 64px;background:linear-gradient(180deg,var(--color-bg) 0%,var(--color-pink-light) 50%,var(--color-bg) 100%)}.scratch-inner{max-width:480px;margin:0 auto;text-align:center}.scratch-card-wrapper{position:relative;width:320px;height:200px;margin:40px auto 24px;border-radius:16px;overflow:hidden;box-shadow:var(--shadow-card);cursor:crosshair}.scratch-reveal{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,var(--color-cream) 0%,#fff9ee 60%,var(--color-cream) 100%);border:2px solid var(--color-gold-light);border-radius:16px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:20px}.reveal-date-label{font-family:var(--font-heading);font-size:.8rem;letter-spacing:.2em;text-transform:uppercase;color:var(--color-gold)}.reveal-date-day{font-family:var(--font-script);font-size:3.5rem;color:var(--color-gold-dark);line-height:1}.reveal-date-month-year{font-family:var(--font-heading);font-size:1.4rem;font-weight:400;color:var(--color-text);letter-spacing:.05em}.scratch-canvas{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:16px;touch-action:none}.revealed-badge{display:inline-block;padding:8px 24px;background:linear-gradient(135deg,var(--color-gold),var(--color-gold-dark));color:#fff;border-radius:50px;font-family:var(--font-heading);font-size:1rem;letter-spacing:.1em;margin-top:12px;animation:fadeInUp .5s ease both}@keyframes revealPop{0%{transform:scale(.7);opacity:0}60%{transform:scale(1.08)}to{transform:scale(1);opacity:1}}.reveal-date-day{animation:revealPop .6s cubic-bezier(.34,1.56,.64,1) both}.scratch-hint{font-family:var(--font-heading);font-size:1rem;font-style:italic;color:var(--color-text-muted);margin-top:8px}.scratch-progress{height:4px;width:200px;background:var(--color-border);border-radius:4px;overflow:hidden;margin:12px auto 0}.scratch-progress-fill{height:100%;background:linear-gradient(90deg,var(--color-gold-light),var(--color-gold));border-radius:4px;transition:width .1s ease}.venue-section{padding:48px 20px 64px;background:var(--color-bg)}.venue-inner{max-width:720px;margin:0 auto;text-align:center}.venue-card{background:linear-gradient(145deg,var(--color-white) 0%,var(--color-cream) 100%);border:1px solid var(--color-border);border-radius:var(--radius-card);padding:40px 32px;box-shadow:var(--shadow-card);margin:32px 0}.venue-name{font-family:var(--font-heading);font-size:clamp(1.5rem,4vw,2rem);font-weight:500;color:var(--color-gold-dark);margin-bottom:8px}.venue-meta{font-family:var(--font-body);font-size:.85rem;color:var(--color-text-muted);margin-bottom:8px;line-height:1.7}.venue-date-badge{display:inline-block;padding:6px 20px;border:1.5px solid var(--color-gold-light);border-radius:50px;font-family:var(--font-heading);font-size:1rem;color:var(--color-gold-dark);margin-bottom:24px;letter-spacing:.05em}.venue-buttons{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:8px}.venue-buttons .btn-gold{padding:8px 18px;font-size:.78rem}@media (max-width: 480px){.venue-card{padding:28px 20px}}.gallery-section{padding:48px 20px 64px;background:linear-gradient(180deg,var(--color-bg) 0%,var(--color-cream) 100%)}.gallery-inner{max-width:900px;margin:0 auto;text-align:center}.gallery-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:40px}@media (min-width: 600px){.gallery-grid{grid-template-columns:repeat(3,1fr)}}@media (min-width: 900px){.gallery-grid{grid-template-columns:repeat(4,1fr)}}.gallery-card{position:relative;aspect-ratio:1;overflow:hidden;border-radius:12px;cursor:pointer;background:var(--color-border);border:1.5px solid var(--color-border)}.gallery-img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}.gallery-card:hover .gallery-img{transform:scale(1.08)}.gallery-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to top,rgba(58,42,26,.6) 0%,transparent 60%);opacity:0;transition:opacity .3s ease;display:flex;align-items:flex-end;justify-content:center;padding-bottom:12px}.gallery-card:hover .gallery-overlay{opacity:1}.gallery-overlay-text{font-family:var(--font-heading);font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:#fff8dce6}.gallery-placeholder{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:var(--grad, linear-gradient(135deg, #f4c2c2, #e8d5a3))}.placeholder-icon{font-size:1.8rem;opacity:.6}.placeholder-label{font-family:var(--font-heading);font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-muted)}.lightbox-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#140c05e0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px;animation:fadeIn .25s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.lightbox-content{position:relative;max-width:90vw;max-height:90vh;border-radius:12px;overflow:hidden;box-shadow:0 24px 64px #00000080}.lightbox-img{display:block;max-width:90vw;max-height:85vh;object-fit:contain}.lightbox-close{position:absolute;top:12px;right:12px;width:36px;height:36px;border-radius:50%;background:#ffffff26;border:1px solid rgba(255,255,255,.3);color:#fff;font-size:1.1rem;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s}.lightbox-close:hover{background:#ffffff4d}.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);background:#ffffff26;border:1px solid rgba(255,255,255,.25);border-radius:50%;width:44px;height:44px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.2rem;cursor:pointer;transition:background .2s}.lightbox-nav:hover{background:#ffffff47}.lightbox-prev{left:-56px}.lightbox-next{right:-56px}@media (max-width: 560px){.lightbox-prev{left:4px}.lightbox-next{right:4px}}.gallery-hint{font-family:var(--font-heading);font-size:.85rem;font-style:italic;color:var(--color-text-muted);margin-top:20px;letter-spacing:.06em}.footer{background:linear-gradient(160deg,#3a2a1a,#2a1e10);padding:56px 20px 40px;text-align:center;position:relative;overflow:hidden}.footer:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--color-pink),var(--color-gold),var(--color-pink-dark),var(--color-gold),var(--color-pink))}.footer-inner{max-width:480px;margin:0 auto;position:relative;z-index:1}.footer-script{font-family:var(--font-script);font-size:clamp(1.5rem,5vw,2.2rem);color:var(--color-gold);line-height:1.3;margin-bottom:8px}.footer-hearts{display:flex;align-items:center;justify-content:center;gap:12px;margin:20px 0}.heart{color:var(--color-pink-dark);font-size:1.4rem;display:inline-block}.heart-main{font-size:2rem;animation:heartbeat 1.4s ease-in-out infinite}.heart-side{font-size:1rem;animation:heartbeat 1.4s ease-in-out infinite;animation-delay:.2s;opacity:.65}@keyframes heartbeat{0%,to{transform:scale(1)}14%{transform:scale(1.3)}28%{transform:scale(1)}42%{transform:scale(1.18)}70%{transform:scale(1)}}.footer-date{font-family:var(--font-heading);font-size:1rem;font-style:italic;color:var(--color-gold-light);margin-bottom:32px;letter-spacing:.08em}.footer-ornament{font-family:var(--font-heading);font-size:.65rem;letter-spacing:.3em;text-transform:uppercase;color:#c9a84c73;margin-bottom:4px}.footer-initials-seal{width:60px;height:60px;border-radius:50%;background:radial-gradient(circle at 40% 35%,#e8c060,#c9a84c 50%,#8a6f2e);display:flex;align-items:center;justify-content:center;margin:0 auto 24px;border:2px solid rgba(201,168,76,.6)}.footer-initials-text{font-family:var(--font-script);font-size:1rem;color:#fff8e8}.footer-love{font-family:var(--font-heading);font-size:.85rem;color:#c9a84c8c;letter-spacing:.15em;text-transform:uppercase}.countdown-section{padding:48px 20px;background:linear-gradient(135deg,#3a2a1a,#5a3e28 60%,#4a3020);position:relative;overflow:hidden;text-align:center}.countdown-section:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 70% 50% at 50% 100%,rgba(201,168,76,.12) 0%,transparent 70%);pointer-events:none}.countdown-inner{max-width:640px;margin:0 auto;position:relative;z-index:1}.countdown-title{font-family:var(--font-heading);font-size:clamp(1rem,2.5vw,1.2rem);letter-spacing:.25em;text-transform:uppercase;color:var(--color-gold-light);margin-bottom:8px}.countdown-script{font-family:var(--font-script);font-size:clamp(2rem,5vw,3rem);color:var(--color-gold);margin-bottom:40px}.countdown-grid{display:flex;justify-content:center;align-items:center;gap:12px;flex-wrap:wrap}.countdown-unit{display:flex;flex-direction:column;align-items:center;gap:8px}.countdown-number{width:80px;height:80px;background:#c9a84c1f;border:1.5px solid var(--color-gold);border-radius:12px;display:flex;align-items:center;justify-content:center;font-family:var(--font-heading);font-size:2.4rem;font-weight:600;color:var(--color-gold);letter-spacing:.02em;transition:all .3s ease}.countdown-number.tick{transform:scale(1.08);background:#c9a84c33}.countdown-label{font-family:var(--font-body);font-size:.65rem;letter-spacing:.18em;text-transform:uppercase;color:var(--color-gold-light)}.countdown-colon{font-family:var(--font-heading);font-size:2rem;color:var(--color-gold);opacity:.6;padding-bottom:20px;animation:blink 1s step-end infinite}@keyframes blink{50%{opacity:0}}.countdown-date-text{margin-top:32px;font-family:var(--font-heading);font-size:1.1rem;font-style:italic;color:var(--color-gold-light);letter-spacing:.06em}.countdown-date-text strong{font-style:normal;color:var(--color-gold)}.whatsapp-share{margin-top:32px}.btn-whatsapp{display:inline-flex;align-items:center;gap:8px;padding:12px 28px;background:#25d366;color:#fff;border-radius:var(--radius-pill);font-family:var(--font-body);font-size:.9rem;font-weight:400;letter-spacing:.05em;box-shadow:0 4px 15px #25d3664d;transition:transform .2s,box-shadow .2s;text-decoration:none}.btn-whatsapp:hover{transform:translateY(-2px);box-shadow:0 8px 24px #25d36666}@media (max-width: 480px){.countdown-number{width:68px;height:68px;font-size:2rem}.countdown-grid{gap:8px}}.app{min-height:100vh;background-color:var(--color-bg)}.invitation-content{background-color:var(--color-bg)}.invitation-border-top{height:6px;background:linear-gradient(90deg,var(--color-pink),var(--color-gold),var(--color-pink-dark),var(--color-gold),var(--color-pink))}@keyframes pageReveal{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.invitation-content{animation:pageReveal 1s ease both}
