:root{--rose:#b97c85;--rose-dark:#86565f;--pink:#f8e9e8;--cream:#fffaf5;--ink:#654b50;--gold:#b89a65}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:'DM Sans',sans-serif}button,input,select{font:inherit}button{cursor:pointer}a{color:inherit}.eyebrow{font-size:10px;letter-spacing:.26em;font-weight:700;color:var(--rose-dark)}.intro{position:fixed;inset:0;z-index:10;background:radial-gradient(ellipse at 50% 35%,#fffaf7 0%,#f9eeed 55%,#efd8d9 100%);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px 16px;overflow:hidden;transition:opacity .9s,visibility .9s}.intro.done{opacity:0;visibility:hidden;pointer-events:none}.intro-copy{position:relative;z-index:2}.intro-copy h1{font:400 clamp(38px,7vw,64px)/1.12 'Playfair Display',serif;margin:14px 0;color:#805c62}.intro-copy p{font-size:13px;line-height:1.8;max-width:300px;margin:0 auto 24px;color:#9b7b80}.intro-decor{position:absolute;color:#e8c6c8;font-size:110px;opacity:.25}.decor-left{top:7%;left:-25px}.decor-right{bottom:5%;right:-30px}.envelope-button{width:min(340px,88vw);height:245px;border:0;background:transparent;position:relative;perspective:1100px;z-index:2;filter:drop-shadow(0 19px 24px #b7838c44)}.envelope{position:absolute;left:0;right:0;bottom:15px;height:205px;transform-style:preserve-3d}.env-back{position:absolute;inset:0;background:#e2adb5;border-radius:5px}.letter{position:absolute;left:12%;width:76%;height:185px;bottom:6px;background:#fffaf4;border:1px solid #ecd7c8;box-shadow:0 1px 8px #ac777733;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:8px;z-index:2;transition:transform 1s .45s cubic-bezier(.2,.8,.2,1)}.letter-small{font:27px 'Great Vibes',cursive;color:var(--rose)}.letter-name{font:35px 'Playfair Display',serif;color:#9d6b72}.letter-sprig{color:var(--gold)}.env-front{position:absolute;inset:0;z-index:3;background:#edbdc3;clip-path:polygon(0 0,50% 55%,100% 0,100% 100%,0 100%);border-radius:5px}.env-front:after{content:'';position:absolute;inset:0;background:#e7afb7;clip-path:polygon(0 100%,50% 47%,100% 100%)}.env-flap{position:absolute;inset:0;z-index:5;background:#f0c7ca;clip-path:polygon(0 0,100% 0,50% 62%);transform-origin:top center;transition:transform .8s cubic-bezier(.3,.1,.2,1),z-index 0s .4s;backface-visibility:hidden}.seal{position:absolute;z-index:6;top:91px;left:calc(50% - 24px);height:48px;width:48px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#c6a56d,#a8814c);color:#fff9e8;border:3px double #e6d1a7;box-shadow:0 3px 7px #80523d55;transition:opacity .2s}.intro.opening .env-flap{transform:rotateX(180deg);z-index:1}.intro.opening .seal{opacity:0}.intro.opening .letter{transform:translateY(-150px)}.open-hint{background:none;border:0;color:#a5797d;letter-spacing:.13em;text-transform:uppercase;font-size:11px;margin-top:12px;padding:16px}.open-hint span{font-size:17px}.intro-footer{position:absolute;bottom:25px;font-size:9px;letter-spacing:.24em;color:#b69a9a}.site{opacity:0;transition:opacity .8s}.site.visible{opacity:1}.section{text-align:center;padding:90px 22px}.hero{min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(ellipse at 50% 50%,#fffdfa,#f8e9e8);position:relative;overflow:hidden}.hero:before,.hero:after{content:'❀';position:absolute;font-size:240px;color:#e9c9cb;opacity:.27}.hero:before{left:-95px;top:-75px}.hero:after{right:-90px;bottom:-110px}.hero-ornament{font-size:25px;color:var(--gold);margin-bottom:35px}.hero-script,.script-heading{font:400 clamp(45px,9vw,75px)/1.1 'Great Vibes',cursive;color:var(--rose);margin:22px 0 8px}.hero h2{font:400 clamp(62px,13vw,112px)/1.1 'Playfair Display',serif;letter-spacing:-.05em;color:#8e6168;margin:0}.cross{font-size:35px;color:var(--gold);margin:22px 0}.hero-message{max-width:460px;line-height:2;font-size:15px}.hero-date{margin-top:20px;font:19px 'Playfair Display',serif;color:#9d7478}.hero-scroll{position:absolute;bottom:26px;font-size:9px;letter-spacing:.2em;color:#a98689}.hero-scroll span{display:block;font-size:23px;margin-top:5px}.blessing{background:#fffaf6}.blessing p{max-width:460px;margin:20px auto;line-height:1.9}.divider-flower{color:var(--gold);font-size:25px;margin:24px}.parents{font-family:'Playfair Display',serif;font-style:italic}.countdown-section{background:#eecfd1}.countdown-section h2,.places h2{font:400 38px 'Playfair Display',serif}.countdown{display:flex;justify-content:center;gap:clamp(8px,3vw,30px);margin:36px auto}.countdown>div{min-width:65px}.countdown b{display:block;font:400 clamp(34px,8vw,58px) 'Playfair Display',serif}.countdown small{font-size:9px;letter-spacing:.18em}.countdown-section p{font-size:13px}.places{background:#fffaf7}.place-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;max-width:870px;margin:45px auto 0}.place-card{padding:42px 25px;background:#fff;border:1px solid #efd9d7;box-shadow:0 12px 38px #ad818011}.place-icon{font-size:37px;color:var(--gold);margin-bottom:17px}.place-card h3{font:400 25px 'Playfair Display',serif;min-height:65px;margin:15px 0}.place-card p{font-size:13px;line-height:1.7;min-height:45px}.place-time{display:block;color:var(--rose-dark);font-weight:700;margin:20px}.outline-btn{display:inline-block;text-decoration:none;border:1px solid #c99ba1;padding:14px 20px;font-size:10px;letter-spacing:.14em;transition:background .2s}.outline-btn:hover{background:#f9e9e9}.gallery-section{background:#f7e8e7}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;max-width:900px;margin:35px auto 0}.gallery img{width:100%;height:310px;object-fit:cover;border:7px solid white;box-shadow:0 10px 25px #b47d8520}.details{background:#fffaf6}.detail-box{margin:28px auto;max-width:450px;border-bottom:1px solid #ead8d2;padding-bottom:24px}.detail-icon{font-size:25px;color:var(--gold)}.detail-box h3{font:23px 'Playfair Display',serif}.detail-box p{font-size:14px}.rsvp{background:#f4dcdd}.rsvp-inner{max-width:520px;margin:auto;background:#fffaf7;padding:clamp(28px,6vw,55px);box-shadow:0 15px 60px #a87b7d22}.rsvp-inner>p{font-size:13px;line-height:1.8}form{text-align:left;display:flex;flex-direction:column;gap:10px;margin-top:30px}form label{font-size:12px;font-weight:600;margin-top:10px}form input,form select{width:100%;padding:15px;border:1px solid #e4c8c9;background:#fff;color:#63494e;border-radius:0}form input:focus,form select:focus{outline:2px solid #bc8c92;outline-offset:2px}#personasWrap{display:flex;flex-direction:column;gap:10px}.solid-btn{background:#a9737c;color:white;border:0;padding:17px 12px;letter-spacing:.12em;font-size:11px;margin-top:17px}.solid-btn:disabled{opacity:.5;cursor:not-allowed}form small{font-size:11px;line-height:1.7;color:#9b8082;text-align:center}.config-alert{color:#a34040;font-size:12px}footer{text-align:center;padding:70px 20px;background:#89636a;color:#fff8f2;display:flex;align-items:center;flex-direction:column;gap:14px}footer p{font:30px 'Great Vibes',cursive;margin:0}footer strong{font:34px 'Playfair Display',serif}footer span{font-size:9px;letter-spacing:.2em;margin-top:25px}footer a{font-size:12px;text-decoration:none}.footer-flower{font-size:34px}.music-toggle{position:fixed;right:18px;bottom:18px;z-index:5;background:#9d7077;color:white;border:0;border-radius:50%;width:47px;height:47px;box-shadow:0 4px 14px #0002}.music-toggle.playing{background:#b89a65}.reveal{opacity:0;transform:translateY(25px);transition:opacity .8s,transform .8s}.reveal.in-view{opacity:1;transform:none}@media(max-width:640px){.section{padding:75px 20px}.place-grid{grid-template-columns:1fr;max-width:390px}.place-card h3,.place-card p{min-height:0}.gallery{gap:7px}.gallery img{height:175px;border-width:3px}.hero-message{font-size:14px}.intro-copy h1{font-size:43px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}.reveal{opacity:1;transform:none}}

/* AURIVA premium: detalles animados y fotos de demostración */
.intro{isolation:isolate;background:radial-gradient(ellipse at 50% 24%,#fffdfb 0%,#f9e6e8 60%,#efd2d8 100%)}
.intro-copy,.envelope-button,.open-hint,.intro-footer{position:relative;z-index:2}
.petals{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1}
.petals i{position:absolute;top:-8%;left:calc(var(--n)*7%);width:12px;height:19px;border-radius:80% 5% 80% 15%;background:linear-gradient(125deg,#f8b9cb,#f6d6db);opacity:.72;animation:petalFall calc(7s + var(--n)*.35s) linear infinite;animation-delay:calc(var(--n)*-.85s)}
.petals i:nth-child(1){--n:1}.petals i:nth-child(2){--n:2}.petals i:nth-child(3){--n:3}.petals i:nth-child(4){--n:4}.petals i:nth-child(5){--n:5}.petals i:nth-child(6){--n:6}.petals i:nth-child(7){--n:7}.petals i:nth-child(8){--n:8}.petals i:nth-child(9){--n:9}.petals i:nth-child(10){--n:10}.petals i:nth-child(11){--n:11}.petals i:nth-child(12){--n:12}.petals i:nth-child(13){--n:13}.petals i:nth-child(14){--n:14}.petals i:nth-child(15){--n:15}
@keyframes petalFall{0%{transform:translate3d(0,-5vh,0) rotate(0)}50%{transform:translate3d(55px,50vh,0) rotate(210deg)}100%{transform:translate3d(-30px,110vh,0) rotate(470deg)}}
.envelope-button:not(:disabled){animation:envelopeFloat 3.6s ease-in-out infinite}
@keyframes envelopeFloat{50%{transform:translateY(-10px)}}
.hero-photo{width:min(72vw,300px);height:min(72vw,300px);border-radius:50% 50% 45% 45%;overflow:hidden;border:7px solid rgba(255,255,255,.8);box-shadow:0 16px 48px #b76b7c38;margin:0 auto 24px;animation:photoReveal 1.4s ease both}
.hero-photo img,.blessing-photo img{width:100%;height:100%;object-fit:cover}
.hero-photo img{animation:photoBreath 12s ease-in-out infinite alternate}
@keyframes photoReveal{from{opacity:0;transform:translateY(45px) scale(.86)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes photoBreath{to{transform:scale(1.13)}}
.hero-sparkles{font-size:25px;letter-spacing:22px;color:#bd8d50;animation:twinkle 2.8s ease-in-out infinite}
@keyframes twinkle{50%{opacity:.3;transform:scale(1.08)}}
.blessing-photo{width:min(80%,320px);height:220px;margin:0 auto 25px;overflow:hidden;border-radius:160px 160px 20px 20px;box-shadow:0 12px 35px #c38b9d30}
.place-visual{height:88px;display:grid;place-items:center;font-size:42px;color:#b78c5b;background:linear-gradient(135deg,#fbe5e9,#fffaf3);border-radius:14px;margin-bottom:14px;animation:twinkle 4s ease-in-out infinite}
.reception-visual{background:linear-gradient(135deg,#f9dce4,#f9efdd)}
.gallery img{transition:transform .55s ease,box-shadow .55s ease;cursor:zoom-in}
.gallery img:hover{transform:scale(1.045) rotate(-1deg);box-shadow:0 14px 32px #af7c8940}
.gallery-note{font-size:12px;opacity:.68;margin-top:16px}
.reveal.in-view{animation:riseSoft .85s ease both}
@keyframes riseSoft{from{opacity:0;transform:translateY(38px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.petals i,.envelope-button,.hero-photo,.hero-photo img,.hero-sparkles,.place-visual,.reveal.in-view{animation:none!important}}
