:root{--pink:#b8246d;--ink:#242126;--blue:#17658d;--muted:#746b71}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:white;color:var(--ink);font-family:'Cormorant Garamond',Georgia,serif;font-size:22px}button,.button{display:inline-flex;align-items:center;justify-content:center;gap:28px;border:0;border-radius:50px;background:var(--blue);color:white;padding:17px 27px;font:500 11px Montserrat,sans-serif;letter-spacing:1.1px;cursor:pointer;text-decoration:none;transition:transform .2s,background .2s}button:hover,.button:hover{transform:translateY(-2px);background:#104d6e}button:focus-visible,a:focus-visible{outline:3px solid #e284b3;outline-offset:5px}button span,.button span{font-size:18px}.eyebrow{font:500 10px Montserrat,sans-serif;letter-spacing:3px;line-height:1.9;color:var(--pink)}.script{font-family:'Great Vibes',cursive;color:var(--pink);font-size:65px;font-weight:400}.monogram{font:italic 78px 'Great Vibes',cursive;color:var(--pink);letter-spacing:-13px;padding-right:13px}h1{font-weight:400;font-size:clamp(54px,7vw,92px);line-height:1.1;margin:22px 0}h1 i{display:block;font-family:'Great Vibes';font-weight:400;font-size:.6em;color:var(--pink);margin:8px}h2{font-weight:400;font-size:clamp(38px,4.5vw,57px);line-height:1.12;margin:22px 0 28px}h3{font:400 65px 'Great Vibes';color:var(--pink);margin:20px 0 10px}p{line-height:1.6;margin:14px auto;max-width:600px}.fine-line{display:block;width:65px;height:1px;background:#dca7c0;margin:28px auto}.cover{min-height:100svh;display:grid;place-items:center;padding:35px 22px;background:#fff6fa;position:relative;overflow:hidden}.envelope{width:min(450px,100%);background:#fff;padding:55px 25px;text-align:center;box-shadow:0 22px 90px #862b5517;border:1px solid #f1dce6;position:relative;isolation:isolate}.envelope h1{font-size:55px}.envelope .monogram{margin-top:23px}.envelope p{font-size:22px}.envelope .place{font-size:17px;color:var(--muted)}.envelope button{margin:24px 0}.envelope small{display:block;font-size:16px;color:var(--muted)}nav{display:flex;justify-content:space-between;align-items:center;padding:19px 6%;border-bottom:1px solid #f6edf1}nav a{text-decoration:none;color:var(--ink);font:500 10px Montserrat;letter-spacing:1px}nav a:first-child{font:25px 'Cormorant Garamond'}nav span{color:var(--pink)}.hero{text-align:center;padding:90px 25px 40px;min-height:790px;display:flex;flex-direction:column;align-items:center;justify-content:center}.hero .monogram{font-size:62px;margin-top:25px}.hero h1{margin:16px 0}.hero .script{margin:10px 0;font-size:52px}.hero .fine-line{margin:18px auto}.hero p{margin:6px}.scroll{margin-top:50px;text-decoration:none;color:var(--pink);font-size:33px}section{text-align:center;padding:100px 28px;position:relative;overflow:hidden}section>p{max-width:570px;color:#595159}.welcome{padding-top:85px}.welcome>p:first-of-type{font-size:26px;color:var(--pink);max-width:480px}.countdown{display:flex;align-items:center;justify-content:center;gap:24px;margin:48px 0 14px}.countdown div{min-width:65px}.countdown b{display:block;font-size:51px;font-weight:400;color:var(--pink);font-variant-numeric:tabular-nums}.countdown span{font:9px Montserrat;letter-spacing:1.5px;color:var(--muted)}.countdown em{font-style:normal;color:#e4bed0;font-size:28px}.caption{font-size:18px;font-style:italic;color:var(--muted)}.day,.week,.rsvp{background:#fffafd}.date{display:flex;align-items:center;justify-content:center;gap:28px;margin:36px auto}.date span{font:11px Montserrat;letter-spacing:3px}.date strong{font-size:95px;font-weight:400;line-height:1;color:var(--pink);border-left:1px solid #edcfde;border-right:1px solid #edcfde;padding:0 26px}.day .button{margin:22px 0 10px}.text-button{display:block;background:none!important;color:var(--muted);margin:8px auto;padding:12px;font-size:10px}.dress-label{font-size:30px!important;color:var(--pink)!important}.actions{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;margin-top:30px}.trip-date{margin:40px auto 30px;display:flex;flex-direction:column;gap:9px}.trip-date span{font:10px Montserrat;letter-spacing:3px;color:var(--pink)}.trip-date strong{font-size:62px;font-weight:400}.gifts button,.rsvp button{margin-top:22px}footer{text-align:center;padding:80px 22px 36px}footer .closing{font-size:30px;font-style:italic;color:var(--pink)}footer .script{display:block;margin:15px 0 50px}footer .eyebrow{font-size:9px}.floral,.envelope{position:relative}.flower{position:absolute;width:400px;height:400px;pointer-events:none;z-index:0;opacity:.7}.flower.top{top:-115px;right:-160px;transform:rotate(-20deg)}.flower.bottom{bottom:-150px;left:-170px;transform:rotate(140deg)}.hero .flower{width:580px;height:580px}.hero .flower.top{top:-130px;right:-230px}.hero .flower.bottom{bottom:-230px;left:-240px}.floral>*:not(.flower),.envelope>*:not(.flower){position:relative;z-index:1}.envelope .flower{width:240px;height:240px;opacity:.55;z-index:-1}.envelope .flower.top{top:-30px;right:-60px}.envelope .flower.bottom{bottom:-40px;left:-80px}dialog{border:1px solid #ecd4e0;border-radius:4px;padding:50px 30px 35px;text-align:center;width:min(440px,90vw);color:var(--ink)}dialog::backdrop{background:#30232b80;backdrop-filter:blur(5px)}dialog p{font-size:21px}dialog h2{font-size:43px}#close-dialog{position:absolute;right:10px;top:8px;background:none;color:var(--muted);font-size:25px;padding:5px 10px}#ok-dialog{margin-top:15px}[hidden]{display:none!important}@media(min-width:1000px){.hero h1 i{display:inline;margin:0 20px}.hero{min-height:850px}.hero .flower{width:750px;height:750px}.hero .flower.top{right:-210px;top:-220px}.hero .flower.bottom{left:-240px;bottom:-310px}}@media(max-width:550px){section{padding:75px 24px}.hero{min-height:760px;padding-top:60px}.eyebrow{font-size:9px;letter-spacing:2px}.countdown{gap:10px}.countdown div{min-width:51px}.countdown b{font-size:40px}.countdown span{font-size:8px;letter-spacing:.7px}.countdown em{font-size:21px}.flower{opacity:.45}.date{gap:18px}.date strong{padding:0 20px}.envelope{padding:40px 20px}.actions{flex-direction:column;align-items:center}p{font-size:21px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

.hero-photo{width:230px;height:300px;object-fit:cover;border-radius:150px 150px 5px 5px;margin-bottom:28px;box-shadow:0 12px 45px #8e3d6018}.hero{padding-top:55px}.hero .monogram{display:none}.hero h1{font-size:65px}.photo-gallery{max-width:1000px;margin:45px auto 0;display:grid;grid-template-columns:1fr 1fr 1fr;gap:22px;align-items:center}.photo-gallery img{width:100%;height:390px;object-fit:cover;border-radius:150px 150px 3px 3px}.photo-gallery img:nth-child(2){height:440px}.final-photo{display:block;width:min(420px,100%);margin:40px auto 0;border-radius:220px 220px 4px 4px}@media(max-width:550px){.hero-photo{width:205px;height:280px}.hero h1{font-size:52px}.photo-gallery{gap:9px}.photo-gallery img{height:190px}.photo-gallery img:nth-child(2){height:230px}.hero{padding-bottom:40px}}
body{overflow-x:hidden}.hero{overflow:hidden}.flower{opacity:.9}.envelope{overflow:hidden}

.photo-gallery img:nth-child(5){height:440px}@media(max-width:550px){.photo-gallery img:nth-child(5){height:230px}}
/* Galería editorial */
.memories{background:linear-gradient(180deg,#fff,#fff8fb 60%,#fff);padding-left:5%;padding-right:5%}
.memories h2{max-width:600px;margin-left:auto;margin-right:auto}
.photo-gallery{max-width:1060px;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;align-items:start;margin-top:60px}
.photo-gallery .photo-frame{display:block;background:white;border-radius:5px;padding:9px 9px 32px;box-shadow:0 12px 36px #6d274515;position:relative;overflow:hidden;cursor:zoom-in;letter-spacing:0;transform:rotate(-2deg);transition:transform .3s,box-shadow .3s}
.photo-gallery .photo-frame:nth-child(2),.photo-gallery .photo-frame:nth-child(5){transform:translateY(35px) rotate(2deg)}
.photo-gallery .photo-frame:nth-child(3n){transform:rotate(1.5deg)}
.photo-gallery .photo-frame:hover{background:white;transform:translateY(-5px) rotate(0);box-shadow:0 18px 40px #6d274528}
.photo-gallery .photo-frame::after{content:'L & M';position:absolute;bottom:9px;left:0;right:0;color:var(--pink);font:italic 17px 'Cormorant Garamond',serif}
.photo-gallery .photo-frame img{display:block;width:100%;height:auto!important;aspect-ratio:2/3;object-fit:cover;border-radius:2px}
.memories{padding-bottom:140px}
#photo-viewer{width:min(960px,96vw);max-width:none;height:94svh;max-height:94svh;padding:48px 16px 45px;background:#fff;border:0;overflow:hidden}
#photo-viewer::backdrop{background:#21151cdb;backdrop-filter:blur(8px)}
#photo-viewer img{width:100%;height:100%;object-fit:contain}
#photo-viewer button{position:absolute;padding:9px 14px;min-width:44px;min-height:44px;z-index:1}
#photo-close{top:5px;right:8px;background:none;color:var(--ink);font-size:27px}
#photo-prev{bottom:0;left:10px}#photo-next{bottom:0;right:10px}
#photo-count{position:absolute;bottom:15px;left:45%;font:11px Montserrat;color:var(--muted)}
@media(max-width:650px){.photo-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:35px}.photo-gallery .photo-frame{padding:6px 6px 28px}.photo-gallery .photo-frame:nth-child(n){transform:rotate(-1.5deg)}.photo-gallery .photo-frame:nth-child(even){transform:translateY(24px) rotate(2deg)}.memories{padding-bottom:105px}.photo-gallery .photo-frame img{aspect-ratio:2/3}.photo-gallery .photo-frame::after{font-size:15px}}

/* Rosas y peonías en acuarela, como papelería de boda */
.flower.botanical{width:235px;height:650px;object-fit:contain;opacity:.85;filter:none}
.flower.botanical.top{top:-70px;right:-55px;transform:rotate(-12deg)}
.flower.botanical.bottom{bottom:-110px;left:-60px;transform:rotate(168deg)}
.hero .flower.botanical{width:310px;height:820px;opacity:.85}
.hero .flower.botanical.top{top:-120px;right:-45px;transform:rotate(-12deg)}
.hero .flower.botanical.bottom{bottom:-180px;left:-70px;transform:rotate(170deg)}
.envelope .flower.botanical{width:135px;height:370px;opacity:.75}
.envelope .flower.botanical.top{top:-80px;right:-35px}
.envelope .flower.botanical.bottom{bottom:-85px;left:-35px}
@media(max-width:650px){.flower.botanical{width:120px;height:380px;opacity:.65}.flower.botanical.top{right:-50px;top:-100px}.flower.botanical.bottom{left:-50px;bottom:-100px}.hero .flower.botanical{width:150px;height:480px;opacity:.7}.hero .flower.botanical.top{right:-55px;top:-90px}.hero .flower.botanical.bottom{left:-65px;bottom:-140px}}

.cover.opening{animation:coverExit .85s cubic-bezier(.65,0,.25,1) both;pointer-events:none}
.cover.opening .envelope{animation:cardExit .85s cubic-bezier(.65,0,.25,1) both}
#invitation.arriving{animation:invitationEnter 1.3s ease both}
@keyframes cardExit{0%{transform:translateY(0) scale(1);opacity:1}35%{transform:translateY(-20px) scale(1.025);opacity:1}100%{transform:translateY(-130px) scale(.95);opacity:0}}
@keyframes coverExit{0%,45%{opacity:1}100%{opacity:0}}
@keyframes invitationEnter{from{opacity:0;transform:translateY(45px)}to{opacity:1;transform:translateY(0)}}
html.auto-tour{scroll-behavior:auto}
#tour-control{position:fixed;bottom:20px;right:20px;z-index:20;padding:13px 19px;font-size:10px;letter-spacing:.5px;box-shadow:0 4px 22px #163d5526;background:#fff;color:var(--blue);border:1px solid #d3e0e8}
@media(max-width:550px){#tour-control{bottom:15px;right:12px;padding:12px 16px;font-size:9px}}
@media(prefers-reduced-motion:reduce){.cover.opening,.cover.opening .envelope,#invitation.arriving{animation:none}#tour-control{display:none}}

/* Acuarela de Eves_Aquadreams / Pixabay */
.flower.botanical{width:410px;height:260px;opacity:.82;object-fit:contain}
.flower.botanical.top{top:-85px;right:-120px;transform:rotate(190deg)}
.flower.botanical.bottom{bottom:-85px;left:-120px;transform:rotate(10deg)}
.hero .flower.botanical{width:570px;height:370px;opacity:.85}
.hero .flower.botanical.top{top:-80px;right:-200px;transform:rotate(195deg)}
.hero .flower.botanical.bottom{bottom:-95px;left:-210px;transform:rotate(15deg)}
.envelope .flower.botanical{width:230px;height:150px;opacity:.75}
.envelope .flower.botanical.top{top:-35px;right:-80px}
.envelope .flower.botanical.bottom{bottom:-40px;left:-85px}
@media(max-width:650px){.flower.botanical{width:240px;height:160px;opacity:.65}.flower.botanical.top{top:-55px;right:-100px}.flower.botanical.bottom{bottom:-60px;left:-110px}.hero .flower.botanical{width:280px;height:190px;opacity:.7}.hero .flower.botanical.top{top:-55px;right:-125px}.hero .flower.botanical.bottom{bottom:-65px;left:-135px}}

/* Veladuras de acuarela sobre blanco */
.cover,.hero,.day,.dress,.week,.rsvp{isolation:isolate}
.watercolor-wash{position:absolute!important;display:block;width:580px;height:470px;background-repeat:no-repeat;background-size:100% 100%;pointer-events:none;z-index:-1!important;opacity:.85}
.wash-0{left:-240px;bottom:-100px;transform:rotate(-25deg);width:750px;height:600px}
.wash-1{right:-200px;top:60px;transform:rotate(18deg)}
.wash-2{left:-250px;bottom:-150px;transform:rotate(150deg)}
.wash-3{right:-260px;top:-130px;transform:rotate(-45deg);opacity:.6}
.wash-4{left:-200px;top:30px;transform:rotate(35deg);opacity:.65}
.wash-5{right:-160px;bottom:-160px;transform:rotate(160deg)}
@media(max-width:650px){.watercolor-wash{width:380px;height:320px;opacity:.65}.wash-0{left:-200px;bottom:-80px;width:500px;height:450px}.wash-1{right:-180px;top:90px}.wash-2{left:-220px;bottom:-110px}.wash-3{right:-240px;top:-100px}.wash-4{left:-230px;top:50px}.wash-5{right:-200px;bottom:-120px}}

/* Flores fucsias de la referencia y música */
.flower.botanical{width:260px;height:650px;opacity:1;object-fit:contain}
.flower.botanical.top{top:-80px;right:-55px;transform:rotate(-10deg)}
.flower.botanical.bottom{bottom:-120px;left:-80px;transform:rotate(170deg)}
.hero .flower.botanical{width:340px;height:850px;opacity:1}
.hero .flower.botanical.top{top:-150px;right:-65px;transform:rotate(-12deg)}
.hero .flower.botanical.bottom{bottom:-220px;left:-90px;transform:rotate(168deg)}
.envelope .flower.botanical{width:155px;height:400px;opacity:.95}
.envelope .flower.botanical.top{top:-90px;right:-40px}
.envelope .flower.botanical.bottom{bottom:-100px;left:-45px}
#music-control{position:fixed;bottom:20px;left:20px;z-index:20;padding:13px 18px;font-size:10px;letter-spacing:.5px;box-shadow:0 4px 22px #163d5526;background:white;color:var(--blue);border:1px solid #d3e0e8}
@media(max-width:650px){.flower.botanical{width:150px;height:400px;opacity:.95}.flower.botanical.top{right:-65px;top:-80px}.flower.botanical.bottom{left:-75px;bottom:-120px}.hero .flower.botanical{width:190px;height:510px;opacity:1}.hero .flower.botanical.top{right:-85px;top:-120px}.hero .flower.botanical.bottom{left:-100px;bottom:-150px}#music-control{bottom:15px;left:12px;padding:12px;font-size:9px}}

/* Personajes en acuarela sobre los enlaces de outfits */
.actions.outfit-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;max-width:520px;margin:35px auto 0;align-items:center}
.outfit-illustrations{grid-column:1/-1;display:block;width:100%;height:350px;object-fit:contain;margin:0 auto -5px}
.outfit-actions button{width:100%;gap:12px;padding:17px 16px;font-size:10px}
@media(max-width:550px){.actions.outfit-actions{display:grid;gap:12px;max-width:380px}.outfit-illustrations{height:290px}.outfit-actions button{padding:15px 10px;font-size:8px;letter-spacing:.6px;gap:7px}}

.watercolor-date{position:relative;isolation:isolate;max-width:420px;padding:25px 25px 19px;gap:10px;color:var(--pink)}
.watercolor-date::before,.watercolor-date::after{content:'';position:absolute;z-index:-1;background:#f9dbe8;opacity:.55;inset:12px -4px 4px;border-radius:45% 12% 38% 16% / 12% 30% 18% 25%;transform:rotate(-2deg);clip-path:polygon(7% 0,95% 3%,98% 11%,91% 17%,100% 24%,95% 32%,100% 42%,94% 50%,99% 61%,91% 67%,98% 78%,89% 86%,94% 94%,5% 100%,1% 90%,7% 82%,0 70%,8% 62%,1% 52%,6% 43%,0 33%,8% 24%,3% 16%)}
.watercolor-date::after{inset:30px -9px 20px;transform:rotate(3deg);background:#f6bfd7;opacity:.2}
.watercolor-date .date-sun{width:230px;height:65px;margin:0 auto -8px}
.date-range{display:flex;justify-content:center;align-items:baseline;gap:15px}
.date-range>span{font:23px 'Cormorant Garamond';letter-spacing:2px}
.date-range strong{font:500 57px 'Cormorant Garamond';line-height:1}
.date-range i{font-size:33px;font-weight:400}
.watercolor-date>span{font-size:11px;letter-spacing:4px}
.date-wave{width:130px;height:25px;margin:auto}
@media(max-width:550px){.watercolor-date{max-width:330px;padding:20px}.date-range strong{font-size:49px}.date-range>span{font-size:20px}.watercolor-date>span{font-size:9px;letter-spacing:3px}}

.travel-illustration{display:block;width:180px;height:160px;object-fit:contain;margin:10px auto 20px;position:relative;z-index:1}
@media(max-width:550px){.travel-illustration{width:145px;height:135px;margin:5px auto 16px}}

.travel-watercolor{position:relative;isolation:isolate;width:250px;margin:6px auto 23px;padding:10px 25px}
.travel-watercolor::before,.travel-watercolor::after{content:'';position:absolute;z-index:-1;inset:15px -8px 5px;background:#f8d3e3;opacity:.5;transform:rotate(-4deg);clip-path:polygon(7% 0,95% 3%,98% 11%,91% 17%,100% 24%,95% 32%,100% 42%,94% 50%,99% 61%,91% 67%,98% 78%,89% 86%,94% 94%,5% 100%,1% 90%,7% 82%,0 70%,8% 62%,1% 52%,6% 43%,0 33%,8% 24%,3% 16%)}
.travel-watercolor::after{inset:35px -16px 18px;transform:rotate(4deg);opacity:.25;background:#edaccb}
.travel-watercolor .travel-illustration{margin:0 auto;width:180px;height:160px}
@media(max-width:550px){.travel-watercolor{width:210px;padding:8px 20px}.travel-watercolor .travel-illustration{width:145px;height:135px}}

/* Flores visibles en celulares: más tamaño y menos recorte lateral. */
@media(max-width:650px){
 .flower.botanical{width:290px;height:520px;opacity:1}
 .flower.botanical.top{right:-10px;top:-155px;transform:rotate(-8deg)}
 .flower.botanical.bottom{left:-25px;bottom:-175px;transform:rotate(172deg)}
 .hero .flower.botanical{width:330px;height:610px;opacity:1}
 .hero .flower.botanical.top{right:-15px;top:-180px;transform:rotate(-8deg)}
 .hero .flower.botanical.bottom{left:-30px;bottom:-225px;transform:rotate(172deg)}
 .envelope .flower.botanical{width:240px;height:440px;opacity:1}
 .envelope .flower.botanical.top{right:-10px;top:-140px}
 .envelope .flower.botanical.bottom{left:-25px;bottom:-150px}
}

body.viewing-outfits{overflow:hidden}
#outfit-viewer{width:min(760px,94vw);height:min(94svh,1100px);max-height:94svh;padding:0;border:0;border-radius:10px;overflow:hidden;background:#fff}
#outfit-viewer[open]{display:flex;flex-direction:column}
#outfit-viewer::backdrop{background:#241820ce;backdrop-filter:blur(6px)}
.outfit-viewer-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid #f1dce6;flex-shrink:0;background:#fff}
.outfit-viewer-header h2{font:400 28px 'Cormorant Garamond',serif;color:var(--pink);margin:0}
.outfit-viewer-header button{background:none;color:var(--ink);font:30px Georgia;padding:0;width:44px;height:44px;min-width:44px;letter-spacing:0}
.outfit-viewer-body{overflow:auto;overscroll-behavior:contain;min-height:0;flex:1}
.outfit-viewer-body img{display:block;width:100%;height:auto}
@media(max-width:550px){#outfit-viewer{width:96vw;height:94svh}.outfit-viewer-header{padding:8px 12px}.outfit-viewer-header h2{font-size:25px}}

.trip-date-image{display:block;width:min(375px,100%);height:auto;margin:30px auto;mix-blend-mode:multiply}
.flower.botanical,.hero .flower.botanical,.envelope .flower.botanical{object-fit:contain;width:340px;height:340px;opacity:1}
.flower.botanical.top,.hero .flower.botanical.top{top:-65px;right:-100px;transform:none}
.flower.botanical.bottom,.hero .flower.botanical.bottom{bottom:-65px;left:-100px;transform:none}
.hero .flower.botanical{width:440px;height:440px}
.envelope .flower.botanical{width:210px;height:210px}
.envelope .flower.botanical.top{top:-35px;right:-65px;transform:none}
.envelope .flower.botanical.bottom{bottom:-35px;left:-65px;transform:none}
.floral-side{width:145px;height:440px;object-fit:contain;right:-85px;top:20%;opacity:.9}
@media(max-width:650px){.flower.botanical,.hero .flower.botanical{width:260px;height:260px}.flower.botanical.top,.hero .flower.botanical.top{top:-30px;right:-115px}.flower.botanical.bottom,.hero .flower.botanical.bottom{bottom:-30px;left:-115px}.envelope .flower.botanical{width:210px;height:210px}.envelope .flower.botanical.top{top:-20px;right:-105px}.envelope .flower.botanical.bottom{bottom:-20px;left:-105px}.floral-side{width:110px;height:340px;right:-80px;opacity:.65}.trip-date-image{width:330px;max-width:100%}}

/* Composiciones originales del usuario, sin desplazar las flores fuera del marco. */
.flower.botanical.top,.hero .flower.botanical.top{top:0;right:0;transform:none}
.flower.botanical.bottom,.hero .flower.botanical.bottom{bottom:0;left:0;transform:none}
.envelope .flower.botanical.top{top:0;right:0}
.envelope .flower.botanical.bottom{bottom:0;left:0}
.floral-side{right:0;opacity:1;width:160px;height:480px}
@media(max-width:650px){
 .flower.botanical,.hero .flower.botanical{width:245px;height:245px;opacity:1}
 .flower.botanical.top,.hero .flower.botanical.top{top:0;right:0}
 .flower.botanical.bottom,.hero .flower.botanical.bottom{bottom:0;left:0}
 .envelope .flower.botanical{width:190px;height:190px}
 .envelope .flower.botanical.top{top:0;right:0}
 .envelope .flower.botanical.bottom{bottom:0;left:0}
 .envelope{padding-top:100px;padding-bottom:100px}
 section.floral{padding-top:125px;padding-bottom:125px}
 .floral-side{width:85px;height:300px;right:0;top:35%;opacity:.55}
}

/* Flores como marco parcial, con más espacio para el contenido. */
.flower.botanical.top,.hero .flower.botanical.top{top:-45px;right:-65px}
.flower.botanical.bottom,.hero .flower.botanical.bottom{bottom:-45px;left:-65px}
.envelope .flower.botanical.top{top:-25px;right:-35px}
.envelope .flower.botanical.bottom{bottom:-25px;left:-35px}
.floral-side{right:-40px}
@media(max-width:650px){
 .flower.botanical,.hero .flower.botanical{width:225px;height:225px}
 .flower.botanical.top,.hero .flower.botanical.top{top:-35px;right:-55px}
 .flower.botanical.bottom,.hero .flower.botanical.bottom{bottom:-35px;left:-55px}
 .envelope .flower.botanical{width:175px;height:175px}
 .envelope .flower.botanical.top{top:-25px;right:-35px}
 .envelope .flower.botanical.bottom{bottom:-25px;left:-35px}
 .envelope{padding-top:75px;padding-bottom:75px}
 section.floral{padding-top:100px;padding-bottom:100px}
 .floral-side{right:-32px;opacity:.5}
}

/* Apertura compacta con acuarela y hojas fucsias. */
.cover{isolation:isolate;background:#fffafd;padding:35px 20px;min-height:100svh}
.envelope{width:min(470px,100%);min-height:470px;aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:34px 26px;border-radius:8px;z-index:2;background:#fffffff2}
.envelope>.eyebrow{font-size:8px;letter-spacing:2px}
.envelope .monogram{font-size:61px;margin-top:14px;line-height:1}
.envelope h1{font-size:44px;margin:14px 0 0;white-space:nowrap}
.envelope h1 i{display:inline;font-size:.65em;margin:0 8px}
.envelope .fine-line{margin:18px auto}
.envelope p{font-size:21px;margin:3px auto;line-height:1.4}
.envelope .place{font-size:16px;margin-top:6px}
.envelope button{margin:20px 0 13px;padding:14px 25px}
.envelope small{font-size:15px}
.envelope .flower.botanical{width:180px;height:180px}
.envelope .flower.botanical.top{top:-35px;right:-55px}
.envelope .flower.botanical.bottom{bottom:-35px;left:-55px}
.cover::before,.cover::after{content:'';position:absolute;pointer-events:none;z-index:0;width:640px;height:560px;opacity:.5;background:radial-gradient(ellipse at 40% 45%,#eaa2c5 0,#f5c8dd 28%,#fbe7f0 53%,transparent 70%);border-radius:41% 59% 63% 37% / 60% 38% 62% 40%;filter:blur(9px)}
.cover::before{left:-220px;top:-160px;transform:rotate(-25deg)}
.cover::after{right:-240px;bottom:-180px;transform:rotate(35deg);background:radial-gradient(ellipse at 50% 50%,#dd70a6 0,#f2bbd4 28%,#fceaf3 53%,transparent 70%)}
.cover .watercolor-wash{z-index:0!important;opacity:.95;width:760px;height:640px;left:-270px;bottom:-180px}
.falling-leaves{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:3}
.falling-leaf{position:absolute;left:var(--x);top:-65px;width:var(--size);height:calc(var(--size)*1.5);color:#bd1c6a;animation:leafFall var(--duration) linear var(--delay) infinite;will-change:transform;opacity:0}
.falling-leaf:nth-child(3n){color:#e15498}.falling-leaf svg{width:100%;height:100%}
@keyframes leafFall{0%{transform:translate3d(0,-60px,0) rotate(0deg);opacity:0}10%{opacity:.7}50%{transform:translate3d(calc(var(--drift)*-.4),50svh,0) rotate(170deg);opacity:.6}90%{opacity:.55}100%{transform:translate3d(var(--drift),calc(100svh + 90px),0) rotate(340deg);opacity:0}}
@media(max-width:550px){.envelope{width:min(370px,100%);min-height:360px;padding:28px 16px}.envelope .monogram{font-size:54px;margin-top:12px}.envelope h1{font-size:36px;margin-top:12px}.envelope>.eyebrow{font-size:7px;letter-spacing:1.5px}.envelope .fine-line{margin:14px auto}.envelope p{font-size:19px}.envelope .place{font-size:14px}.envelope button{margin:17px 0 11px;padding:13px 22px}.envelope small{font-size:13px}.envelope .flower.botanical{width:145px;height:145px}.envelope .flower.botanical.top{top:-28px;right:-40px}.envelope .flower.botanical.bottom{bottom:-28px;left:-40px}.cover::before,.cover::after{width:470px;height:440px;opacity:.55}.cover::before{left:-240px;top:-100px}.cover::after{right:-250px;bottom:-110px}.falling-leaf{max-width:21px}}
@media(prefers-reduced-motion:reduce){.falling-leaves{display:none}}

.trip-date-image{display:block;width:min(375px,100%);max-width:100%;height:auto;margin:30px auto;object-fit:contain;object-position:center;mix-blend-mode:normal;align-self:center;float:none;transform:none}@media(max-width:650px){.trip-date-image{width:min(330px,100%);margin:28px auto}}

/* Identidad LM en fucsia con relieve y nombres de alto contraste. */
.monogram-logo{display:block;width:160px;height:120px;object-fit:contain;margin:0 auto 20px}
.envelope .monogram-logo{width:95px;height:72px;margin:10px auto 4px}
.hero-portrait{position:relative;display:inline-block;margin:0 auto 30px}
.hero-portrait .hero-photo{display:block;margin:0}
.portrait-logo{position:absolute;right:-38px;bottom:-18px;width:112px;height:88px;padding:9px;background:#fffffff2;border:1px solid #f2d5e3;border-radius:50%;box-shadow:0 5px 20px #8d1c5012}
.hero h1,.envelope h1{font-family:'Bodoni Moda','Cormorant Garamond',serif;font-weight:400;text-transform:uppercase;letter-spacing:2px;font-size:clamp(32px,5.4vw,68px);line-height:1.3}
.hero h1 i,.envelope h1 i{font-family:'Great Vibes',cursive;text-transform:none;letter-spacing:0;display:inline;font-size:.7em;margin:0 12px}
.envelope h1{font-size:28px;letter-spacing:1.5px;white-space:normal}
footer>.monogram-logo{width:180px;height:135px;margin:0 auto 25px}
@media(max-width:550px){.hero h1{font-size:31px;letter-spacing:1px}.hero h1 i{margin:0 7px}.envelope h1{font-size:25px;letter-spacing:.8px}.envelope h1 i{margin:0 6px}.portrait-logo{width:94px;height:75px;right:-25px;bottom:-15px}.envelope .monogram-logo{width:87px;height:66px}footer>.monogram-logo{width:155px;height:116px}}

/* Nombres originales en tres líneas, sin sello sobre la fotografía. */
.hero h1,.envelope h1{font-family:'Cormorant Garamond',Georgia,serif;text-transform:none;letter-spacing:0;font-weight:400;line-height:1.1;white-space:normal}
.hero h1{font-size:65px;margin:16px 0}
.hero h1 i,.envelope h1 i{display:block;font-family:'Great Vibes',cursive;color:var(--pink);font-weight:400;font-size:.6em;margin:8px 0;letter-spacing:0}
.envelope h1{font-size:42px;margin:10px 0 0}
.envelope{aspect-ratio:auto;min-height:470px}
.hero-portrait{margin-bottom:28px}
@media(max-width:550px){.hero h1{font-size:54px}.envelope h1{font-size:36px}.envelope{min-height:420px}.envelope h1 i{margin:5px 0}}

/* Acuarela y flores visibles en la tarjeta de apertura. */
.envelope{background:#fff;isolation:isolate}
.envelope .flower.botanical{width:240px;height:240px;opacity:1;z-index:0}
.envelope .flower.botanical.top{top:-10px;right:-10px}
.envelope .flower.botanical.bottom{bottom:-10px;left:-10px}
.envelope .envelope-wash{position:absolute!important;width:330px;height:280px;background-size:100% 100%;background-repeat:no-repeat;pointer-events:none;z-index:-1!important;opacity:.95}
.envelope-wash.top{right:-130px;top:-100px;transform:rotate(35deg)}
.envelope-wash.bottom{left:-130px;bottom:-90px;transform:rotate(200deg)}
.cover::before,.cover::after{opacity:.85}
.cover .watercolor-wash{opacity:1;left:-160px;bottom:-170px}
@media(max-width:550px){.envelope .flower.botanical{width:205px;height:205px}.envelope .flower.botanical.top{top:-10px;right:-15px}.envelope .flower.botanical.bottom{bottom:-10px;left:-15px}.envelope .envelope-wash{width:280px;height:250px}.envelope-wash.top{right:-110px;top:-90px}.envelope-wash.bottom{left:-110px;bottom:-80px}.cover::before,.cover::after{opacity:.8}}

/* Monograma caligráfico entrelazado, fucsia plano y sin relieve. */
.monogram-calligraphic{position:relative;width:145px;height:105px;margin:0 auto 24px;color:var(--pink);font-family:'Great Vibes',cursive;font-weight:400;font-size:91px;line-height:1;isolation:isolate}
.monogram-calligraphic span{position:absolute;top:9px;display:block;text-shadow:none;filter:none;-webkit-text-stroke:0}
.monogram-calligraphic .initial-l{left:13px;z-index:1;transform:rotate(-6deg)}
.monogram-calligraphic .initial-m{left:53px;top:12px;z-index:2;transform:rotate(3deg)}
.envelope .monogram-calligraphic{width:112px;height:77px;font-size:70px;margin:12px auto 4px;flex-shrink:0}
.envelope .monogram-calligraphic .initial-l{left:9px;top:5px}
.envelope .monogram-calligraphic .initial-m{left:41px;top:8px}
footer>.monogram-calligraphic{margin-bottom:25px}
@media(max-width:550px){.envelope .monogram-calligraphic{height:68px;font-size:63px;width:102px;margin-top:10px}.envelope .monogram-calligraphic .initial-m{left:38px}.monogram-calligraphic{font-size:82px;width:135px;height:95px}}

/* Logo aportado por el usuario y esquina inferior solo en acuarela. */
.envelope .flower.botanical.bottom{display:none}
.chosen-monogram{display:block;width:180px;height:120px;object-fit:contain;margin:0 auto 25px}
.envelope .chosen-monogram{width:125px;height:84px;margin:12px auto 5px;flex-shrink:0}
.envelope .envelope-wash.bottom{opacity:1;left:-105px;bottom:-65px;width:330px;height:290px}
@media(max-width:550px){.envelope .chosen-monogram{width:115px;height:77px;margin:10px auto 4px}.chosen-monogram{width:160px;height:107px}.envelope .envelope-wash.bottom{width:290px;height:260px;left:-100px;bottom:-60px}}
