.hero{background:#173f68}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:0}
.hero:before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,rgba(16,38,64,.88),rgba(23,63,104,.58));z-index:1}
.hero:after{z-index:1}
.hero h1{font-size:clamp(64px,10vw,124px)}
.footer .script{font-size:54px}
.nav-links a{font-size:13px}
.hero .eyebrow{font-size:13px}
.hero-intro{font-size:44px}
.hero-date{font-size:14px}
.hero .button{font-size:13px}
.hero-content{padding-top:8vh}
.floating-music{position:fixed!important;top:24px;right:max(24px,calc((100vw - 1080px)/2));z-index:2147483647;background:rgba(23,63,104,.9);backdrop-filter:blur(8px);box-shadow:0 5px 18px rgba(9,28,49,.2)}
.section-next{display:flex;flex-direction:column;align-items:center;gap:5px;width:max-content;margin:54px auto 0;color:var(--magenta);font-size:10px;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;transition:transform .25s ease}.section-next span{font-size:22px;line-height:1;font-family:Arial,sans-serif}.section-next:hover{transform:translateY(4px)}.navy-next{color:var(--navy)}.footer-back{color:#fff;text-decoration:none;font-size:11px;letter-spacing:.14em;text-transform:uppercase}
.verse-block{color:var(--navy);margin-bottom:26px}.verse-block p{font:500 24px/1.25 'Cormorant Garamond',serif;letter-spacing:.03em;text-transform:uppercase;margin:0 0 14px}.verse-block span{font:12px Montserrat,sans-serif;letter-spacing:.18em;text-transform:uppercase;color:#7d8793}.welcome .divider{margin:20px 0 28px}.welcome .divider b{font:24px 'Cormorant Garamond',serif;color:var(--navy);font-weight:400}.nosotros-label{margin-bottom:9px}.couple-names{font-size:clamp(62px,9vw,100px)!important;line-height:.8!important;letter-spacing:.04em;text-transform:uppercase;margin-bottom:36px!important}.couple-names em{font-size:.72em;margin:0 5px}.parents-intro{font:500 17px/1.45 'Cormorant Garamond',serif;color:var(--navy);letter-spacing:.08em;text-transform:uppercase;margin:0 0 24px}.parents-names{display:flex;flex-direction:column;align-items:center;color:#aa8f64;font:italic 18px/1.3 'Cormorant Garamond',serif;margin-bottom:32px}.parents-names p{margin:0}.parents-names span{display:block;width:42px;height:1px;background:#aa8f64;margin:15px 0}.invitation-copy{max-width:560px;font-size:17px}
.welcome-photo{width:min(720px,100%);margin:0 auto 30px;border-radius:3px;overflow:hidden;box-shadow:0 16px 34px rgba(23,63,104,.16);border:8px solid rgba(255,255,255,.78)}.welcome-photo img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover}
.between-photo-section{display:flex;justify-content:center;padding:34px 24px 70px;background:#fff}.between-photo-section img{display:block;width:min(560px,100%);height:auto;max-height:900px;object-fit:contain;border:10px solid #fff;box-shadow:0 18px 42px rgba(23,63,104,.14)}
@media(max-width:720px){.hero h1{font-size:68px}.footer .script{font-size:48px}.hero-content{padding-top:11vh}.floating-music{top:16px;right:17px}}
.couple-names{line-height:.95!important;letter-spacing:0!important;text-transform:none!important;white-space:nowrap}
@media(max-width:720px){.couple-names{font-size:clamp(36px,12.5vw,58px)!important;letter-spacing:-.02em!important}}
.welcome{background:linear-gradient(145deg,#fcfbf4 0%,#f8edf3 100%);box-shadow:0 18px 45px rgba(23,63,104,.08);position:relative;overflow:hidden}.welcome:before{content:"";position:absolute;width:280px;height:280px;right:-150px;top:-130px;border:1px solid rgba(231,121,174,.28);border-radius:50%}.welcome>*{position:relative}.verse-block p{font-size:clamp(21px,2.4vw,28px)}
@media(max-width:720px){.welcome{padding:72px 22px}.welcome:before{width:190px;height:190px;right:-115px;top:-80px}.parents-intro{font-size:15px}.invitation-copy{font-size:16px}}
.two-items{grid-template-columns:repeat(2,1fr);max-width:820px;margin-left:auto;margin-right:auto}.two-items article p{max-width:220px;margin-left:auto;margin-right:auto}.locations-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.locations-grid .location-card{height:100%;flex-direction:column;align-items:flex-start;justify-content:space-between}.locations-grid .location-card h3{font-size:28px}.locations-grid .button{margin-top:20px}
.location-photo{display:block;width:100%;height:180px;object-fit:cover;margin:-28px -34px 24px;width:calc(100% + 68px)}
.gallery-grid .couple-photo{object-fit:contain;background:#fff;padding:14px}
.gallery-grid .couple-photo{background:transparent;padding:0}
.single-photo-grid{grid-template-columns:1.05fr .95fr;max-width:900px;gap:48px}.single-photo-grid .gallery-copy{text-align:center}.single-photo-grid .gallery-copy h2{font-size:clamp(48px,6vw,68px)}
.dress-code{font:500 17px/1.45 'Cormorant Garamond',serif;color:var(--navy);letter-spacing:.08em;text-transform:uppercase;margin:24px 0 14px}.dress-code strong{font:42px/1 'Great Vibes',cursive;color:#b6a17b;text-transform:none;letter-spacing:0}.gallery-copy .no-white-highlight{display:inline-block;color:#fff!important;background:var(--navy);padding:11px 17px;margin:8px 0 0;font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;text-shadow:0 1px 2px rgba(0,0,0,.22);box-shadow:0 7px 16px rgba(23,63,104,.25)}
@media(max-width:720px){.single-photo-grid{grid-template-columns:1fr;gap:28px}.single-photo-grid img{height:300px}}
@media(max-width:720px){.locations-grid{grid-template-columns:1fr}.locations-grid .location-photo{margin:-25px -25px 22px;width:calc(100% + 50px)}}
.confirmation-modal[hidden]{display:none}.confirmation-modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:20px;background:rgba(16,38,64,.72);backdrop-filter:blur(5px)}.confirmation-modal-card{position:relative;width:min(500px,100%);padding:52px 38px 38px;text-align:center;background:var(--ivory);box-shadow:0 24px 70px rgba(0,0,0,.25)}.confirmation-modal-card h2{margin:0 0 12px;color:var(--navy);font:500 clamp(46px,7vw,68px)/.95 'Cormorant Garamond',serif}.confirmation-modal-card p:not(.eyebrow){margin:0 auto 28px;max-width:370px;color:#596271;font:20px/1.55 'Cormorant Garamond',serif}.confirmation-modal-close{position:absolute;top:12px;right:16px;border:0;background:none;color:var(--navy);font-size:30px;line-height:1;cursor:pointer}.modal-open{overflow:hidden}
.footer p:nth-child(2){font-size:24px}
.reels-section{padding:92px 0 76px;background:#fff}
.reels-heading{text-align:center;margin-bottom:34px}.reels-heading h2{font:500 clamp(48px,7vw,76px)/.92 'Cormorant Garamond',serif;color:var(--navy);margin:0 0 18px}.reels-heading h2 em{font-family:'Great Vibes',cursive;color:var(--pink);font-weight:400}.reels-heading>p:last-child{max-width:480px;margin:0 auto;color:#697382;font:17px/1.6 'Cormorant Garamond',serif}
.reels-track{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scroll-padding:24px;padding:8px max(24px,calc((100vw - 1080px)/2)) 22px;scrollbar-width:thin;scrollbar-color:var(--pink) transparent}.reels-track::-webkit-scrollbar{height:6px}.reels-track::-webkit-scrollbar-track{background:transparent}.reels-track::-webkit-scrollbar-thumb{background:var(--pink);border-radius:10px}.reel-card{position:relative;flex:0 0 265px;height:330px;margin:0;overflow:hidden;scroll-snap-align:center;background:var(--navy);box-shadow:0 12px 26px rgba(23,63,104,.16);transition:transform .28s ease,box-shadow .28s ease}.reel-card:hover{transform:translateY(-5px) scale(1.025);box-shadow:0 20px 38px rgba(23,63,104,.25);z-index:2}.reel-card:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(16,38,64,0) 48%,rgba(16,38,64,.5) 100%);pointer-events:none}.reel-card img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.2,.8,.2,1),filter .28s ease}.reel-card:hover img{transform:scale(1.07);filter:saturate(1.05)}.reel-card:nth-child(2) img{object-position:center}.reel-card figcaption{display:none}.reels-hint{text-align:center;margin:12px 0 0;color:var(--navy);font-size:10px;letter-spacing:.16em;text-transform:uppercase}.reels-hint span{display:inline-block;margin-left:8px;color:var(--pink);font-size:18px;vertical-align:-2px}
@media(max-width:980px){.reel-card{flex-basis:235px;height:290px}}
@media(max-width:720px){.reels-section{padding:74px 0 56px}.reels-heading{padding:0 22px}.reels-heading>p:last-child{font-size:16px}.reels-track{gap:14px;padding:8px 22px 20px}.reel-card{flex-basis:78vw;height:330px}}
.reel-card img{cursor:zoom-in}.reel-card img:focus{outline:2px solid var(--pink);outline-offset:-5px}
.photo-number{position:absolute;right:12px;bottom:10px;z-index:2;color:#fff;font:600 10px Montserrat,sans-serif;letter-spacing:.18em;text-shadow:0 1px 5px rgba(0,0,0,.45);pointer-events:none}
.photo-lightbox[hidden]{display:none}.photo-lightbox{position:fixed;inset:0;z-index:2147483646;display:grid;place-items:center;padding:34px;background:rgba(16,38,64,.88);backdrop-filter:blur(8px);animation:lightboxIn .28s ease both}.photo-lightbox img{display:block;max-width:min(90vw,780px);max-height:80vh;width:auto;height:auto;object-fit:contain;box-shadow:0 24px 70px rgba(0,0,0,.35);animation:photoZoomIn .35s cubic-bezier(.2,.8,.2,1) both}.photo-lightbox-caption{margin:14px 0 0;color:#fff;font:500 28px 'Cormorant Garamond',serif;letter-spacing:.04em;text-align:center}.photo-lightbox-close{position:absolute;top:18px;right:24px;border:0;background:transparent;color:#fff;font-size:42px;line-height:1;cursor:pointer}.photo-lightbox-close:focus{outline:2px solid var(--pink);outline-offset:5px}@keyframes lightboxIn{from{opacity:0}to{opacity:1}}@keyframes photoZoomIn{from{opacity:0;transform:scale(.82)}to{opacity:1;transform:scale(1)}}
.wish-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}.wish-list blockquote{width:100%;max-width:none}
@media(max-width:720px){.wish-list{display:grid;grid-template-columns:1fr;width:100%;gap:22px}.wish-list blockquote{width:100%;max-width:none}}
.full-video-section{padding:92px 0 78px;background:linear-gradient(135deg,#f8f7ef,#f8edf3)}.full-video-inner{text-align:center}.full-video-inner h2{font:500 clamp(48px,7vw,76px)/.92 'Cormorant Garamond',serif;color:var(--navy);margin:0 0 30px}.full-video-inner h2 em{font-family:'Great Vibes',cursive;color:var(--pink);font-weight:400}.full-video-frame{width:min(760px,100%);margin:0 auto;background:var(--navy);padding:10px;box-shadow:0 18px 45px rgba(23,63,104,.18)}.full-video-frame video{display:block;width:100%;max-height:620px;background:#102640;object-fit:contain}.full-video-note{margin:18px auto 0;color:#78818c;font-size:10px;letter-spacing:.12em;text-transform:uppercase}.full-video-section .section-next{margin-top:34px}
.event-date-label{margin:2px 0 4px!important;color:var(--magenta)!important;font:600 13px Montserrat,sans-serif!important;letter-spacing:.16em;text-transform:uppercase}
.event-gift-copy{max-width:620px;margin:12px auto 0!important;color:#697382!important;font:18px/1.65 'Cormorant Garamond',serif!important}
.gift-section{background:linear-gradient(135deg,#fcfbf4,#f8edf3);text-align:center!important;padding-top:92px;padding-bottom:92px}.gift-inner{max-width:820px;text-align:center!important;margin-left:auto;margin-right:auto}.gift-inner>.eyebrow{display:block;margin:0 0 20px!important;text-align:center!important}.gift-inner h2{font:500 clamp(48px,7vw,76px)/.92 'Cormorant Garamond',serif!important;margin:0 0 24px!important;color:var(--navy)!important;text-align:center!important}.gift-inner h2 em{font-family:'Great Vibes',cursive!important;color:var(--pink)!important;font-weight:400!important}.gift-inner .event-gift-copy{margin-left:auto!important;margin-right:auto!important;text-align:center!important}.gift-section .bank-card{text-align:left;background:rgba(255,255,255,.82)}
.no-children-section{background:#fff;text-align:center!important;padding-top:78px;padding-bottom:78px}.no-children-inner{max-width:760px;text-align:center!important;margin-left:auto;margin-right:auto}.no-children-inner>.eyebrow{display:block;margin:0 0 20px!important;text-align:center!important}.no-children-inner h2{margin:0 0 24px!important;color:var(--navy)!important;font:500 clamp(48px,7vw,76px)/.92 'Cormorant Garamond',serif!important;text-align:center!important}.no-children-inner h2 em{font-family:'Great Vibes',cursive!important;color:var(--pink)!important;font-weight:400!important}.no-children-inner>p:last-child{max-width:650px;margin:0 auto;color:#697382;font:18px/1.65 'Cormorant Garamond',serif!important;text-align:center!important}
.bank-accounts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;width:min(700px,100%);margin:28px auto 0;text-align:left}.bank-card{padding:20px 22px;background:rgba(255,255,255,.7);border:1px solid #d9d5cb;box-shadow:0 8px 22px rgba(23,63,104,.08)}.bank-card .eyebrow{margin:0 0 10px!important;font-size:10px}.bank-card strong{display:block;color:var(--navy);font:500 18px 'Cormorant Garamond',serif;text-transform:uppercase;letter-spacing:.08em}.account-number{display:block;margin:10px 0 7px;color:var(--navy);font:600 24px Montserrat,sans-serif;letter-spacing:.08em}.bank-card small{color:#697382;font:15px 'Cormorant Garamond',serif}
.rsvp-form .message-field{grid-column:1/-1}
@media(max-width:720px){.full-video-section{padding:74px 17px 58px}.full-video-frame{padding:6px}.full-video-frame video{max-height:70vh}.full-video-note{font-size:9px;line-height:1.6}}
@media(max-width:720px){.bank-accounts{grid-template-columns:1fr;gap:12px}.bank-card{padding:17px}.account-number{font-size:21px}}
.botanical-detail-target{position:relative;overflow:hidden}
#bienvenida,#historia,#evento,#galeria,#reels,#rsvp,#deseos{position:relative;overflow:hidden}
#bienvenida > *,#historia > *,#evento > *,#galeria > *,#reels > *,#rsvp > *,#deseos > *{position:relative;z-index:1}
#historia:after,#evento:before,#galeria:before,#reels:after,#rsvp:after,#deseos:before{content:"";position:absolute;z-index:0;width:175px;height:360px;background:url("botanical-sprig.png") center/contain no-repeat;pointer-events:none;opacity:.16}
#historia:after{right:-28px;top:18px;transform:rotate(5deg)}
#evento:before{left:-36px;bottom:12px;transform:scaleX(-1) rotate(4deg);opacity:.13}
#galeria:before{right:-32px;top:10px;transform:rotate(-4deg);opacity:.12}
#reels:after{left:-34px;bottom:20px;transform:scaleX(-1) rotate(-5deg);opacity:.11}
#rsvp:after{left:-34px;top:35px;transform:scaleX(-1);opacity:.13}
#deseos:before{right:-34px;bottom:-42px;transform:rotate(4deg);opacity:.14}
@media (max-width:700px){
  #historia:after,#evento:before,#galeria:before,#reels:after,#rsvp:after,#deseos:before{width:118px;height:245px;opacity:.12}
  #historia:after{right:-30px;top:12px}
  #evento:before{left:-32px;bottom:8px}
  #galeria:before{right:-30px;top:6px}
  #reels:after{left:-28px;bottom:14px}
  #rsvp:after{left:-28px;top:24px}
  #deseos:before{right:-28px;bottom:-30px}
}
.letter-intro{position:fixed;inset:0;z-index:2147483647;display:grid;place-items:center;background:#f8f7ef;perspective:1200px}.letter-intro.is-opening{animation:letterIntroOut .7s ease 2s forwards}.letter-stage{width:min(82vw,360px);height:min(68vw,260px);display:grid;place-items:center}.letter-envelope{position:relative;width:100%;height:100%;background:#173f68;box-shadow:0 22px 55px rgba(23,63,104,.22);transform-style:preserve-3d;animation:envelopeSettle .55s ease .05s both}.letter-envelope:before{content:"";position:absolute;inset:0;background:linear-gradient(145deg,rgba(255,255,255,.12),transparent 45%,rgba(0,0,0,.12));pointer-events:none}.letter-paper{position:absolute;z-index:2;left:8%;right:8%;bottom:7%;height:86%;display:grid;place-items:center;background:#fffdf7;color:#173f68;box-shadow:0 5px 16px rgba(0,0,0,.12);transform-origin:bottom center;animation:paperRise 1.05s cubic-bezier(.2,.8,.2,1) .5s both}.letter-paper span{font:42px 'Cormorant Garamond',serif;letter-spacing:.08em}.letter-paper b{font:32px 'Great Vibes',cursive;color:#e779ae;font-weight:400}.letter-pocket{position:absolute;z-index:4;inset:auto 0 0;height:58%;background:#214f7d;clip-path:polygon(0 0,50% 58%,100% 0,100% 100%,0 100%);animation:pocketRest .8s ease .4s both}.letter-flap{position:absolute;z-index:5;inset:0 0 auto;height:62%;background:#285a88;clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:top center;animation:flapOpen 1.05s cubic-bezier(.2,.75,.2,1) .55s both}.letter-intro:not(.is-opening){display:none}@keyframes envelopeSettle{from{opacity:0;transform:translateY(22px) rotateX(5deg) scale(.94)}to{opacity:1;transform:none}}@keyframes flapOpen{0%{transform:rotateX(0)}72%{transform:rotateX(-178deg)}100%{transform:rotateX(-180deg)}}@keyframes paperRise{0%{transform:translateY(36%);opacity:0}100%{transform:translateY(-14%);opacity:1}}@keyframes pocketRest{from{transform:translateY(12px)}to{transform:none}}@keyframes letterIntroOut{to{opacity:0;visibility:hidden;pointer-events:none}}
body.letter-opening{overflow:hidden}@media(prefers-reduced-motion:reduce){.letter-intro.is-opening{animation:none;display:none}.letter-intro{display:none}body.letter-opening{overflow:auto}}
.letter-intro{background:radial-gradient(circle at 50% 42%,#fffdf9 0%,#f8f1f3 54%,#e8eef4 100%);overflow:hidden}.letter-intro:before{content:"";position:absolute;inset:24px;border:1px solid rgba(23,63,104,.16);pointer-events:none}.letter-intro:after{content:"";position:absolute;width:42vw;height:42vw;max-width:520px;max-height:520px;border:1px solid rgba(231,121,174,.18);border-radius:50%;transform:rotate(18deg);pointer-events:none}.letter-stage{width:min(86vw,650px);height:min(64vw,430px);max-height:72vh}.letter-envelope{background:linear-gradient(145deg,#173f68,#214f7d);border:1px solid rgba(255,255,255,.35);box-shadow:0 30px 80px rgba(23,63,104,.28);animation:envelopeSettle .9s cubic-bezier(.2,.8,.2,1) .08s both}.letter-envelope:after{content:"L  &  A";position:absolute;z-index:6;left:50%;bottom:41%;transform:translate(-50%,50%);width:64px;height:64px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.75);border-radius:50%;background:#e779ae;color:#fff;font:500 12px 'Cormorant Garamond',serif;letter-spacing:.08em;box-shadow:0 5px 18px rgba(23,63,104,.25);animation:sealFade .35s ease 1.25s forwards}.letter-paper{left:6%;right:6%;bottom:6%;height:88%;background:linear-gradient(135deg,#fffefa,#fbf3f5);box-shadow:0 10px 30px rgba(23,63,104,.18);animation:paperRise 1.25s cubic-bezier(.18,.82,.2,1) .62s both}.letter-paper:before{content:"";position:absolute;inset:18px;border:1px solid rgba(170,143,100,.35);pointer-events:none}.letter-paper span{position:relative;z-index:1;font-size:clamp(42px,6vw,68px)}.letter-pocket{background:linear-gradient(145deg,#214f7d,#2b6594);animation:pocketRest .9s ease .48s both}.letter-flap{background:linear-gradient(145deg,#2b6594,#173f68);animation:flapOpen 1.28s cubic-bezier(.16,.78,.2,1) .66s both}.letter-intro.is-opening{animation:letterIntroOut .8s ease 2.65s forwards}@keyframes sealFade{to{opacity:0;transform:translate(-50%,50%) scale(.7)}}
@media(max-width:720px){.letter-intro:before{inset:14px}.letter-stage{width:88vw;height:min(112vw,560px);max-height:72vh}.letter-paper:before{inset:12px}.letter-envelope:after{width:52px;height:52px;font-size:10px}.letter-paper span{font-size:clamp(38px,10vw,58px)}}
.letter-intro{background:radial-gradient(circle at 50% 42%,#234f78 0%,#173f68 48%,#0b2540 100%)}.letter-intro:before{border-color:rgba(185,208,234,.4)}.letter-intro:after{border-color:rgba(185,208,234,.22)}.letter-envelope{background:linear-gradient(145deg,#0b2947,#1d527f);border-color:rgba(185,208,234,.5);box-shadow:0 30px 80px rgba(4,20,37,.5)}.letter-envelope:before{background:linear-gradient(145deg,rgba(185,208,234,.18),transparent 45%,rgba(0,0,0,.18))}.letter-envelope:after{background:#b9d0ea;color:#173f68;border-color:#fff;box-shadow:0 5px 18px rgba(4,20,37,.35)}.letter-paper{background:linear-gradient(135deg,#fff,#e8f1f8);box-shadow:0 10px 30px rgba(4,20,37,.28)}.letter-paper:before{border-color:rgba(23,63,104,.35)}.letter-paper b{color:#173f68}.letter-pocket{background:linear-gradient(145deg,#17466f,#0c2d4d)}.letter-flap{background:linear-gradient(145deg,#28628f,#123b61)}

/* Sobre de apertura central a pantalla completa. */
@property --envelope-opening { syntax: '<length>'; inherits: false; initial-value: 0px; }
.letter-intro{position:fixed;inset:0;z-index:2147483647;display:block;overflow:hidden;background:transparent;perspective:1400px}
.letter-intro:before,.letter-intro:after{display:none!important;content:none!important}
.letter-intro.is-opening{animation:none!important;background:#fff;display:block}
.letter-intro-video{display:block;width:100vw;height:100vh;min-width:100%;min-height:100%;object-fit:cover;object-position:center;background:#fff}
.letter-intro.is-closing{background:#f4efe7;animation:letterOutro .7s ease forwards}
.letter-intro.is-closing .letter-intro-video{animation:letterVideoFadeBlur .7s ease forwards}
.letter-intro-monogram{position:absolute;z-index:2;left:50%;top:53%;transform:translate(-50%,-50%) scale(.88);color:#344f6e;font:500 clamp(38px,7vw,76px) 'Cormorant Garamond',serif;letter-spacing:.12em;text-shadow:0 1px 2px rgba(255,255,255,.8);opacity:0;animation:monogramReveal .75s cubic-bezier(.2,.8,.2,1) 1.35s forwards;pointer-events:none}.letter-intro-monogram span{font-family:'Great Vibes',cursive;color:#b99a62;font-size:1.2em;letter-spacing:0}
.letter-intro.is-closing .letter-intro-monogram{animation:monogramFade .3s ease forwards}
@keyframes letterVideoFadeBlur{to{opacity:0;filter:blur(14px);transform:scale(1.06)}}
@keyframes letterOutro{from{opacity:1}to{opacity:0;visibility:hidden;pointer-events:none}}
@keyframes monogramReveal{to{opacity:.86;transform:translate(-50%,-50%) scale(1)}}
@keyframes monogramFade{to{opacity:0;transform:translate(-50%,-50%) scale(1.08)}}
.letter-intro.is-opening ~ .floating-music{visibility:hidden}
.letter-intro-play{position:absolute;z-index:3;left:50%;top:50%;display:grid;place-items:center;width:74px;height:74px;padding:0;transform:translate(-50%,-50%);border:1px solid rgba(255,255,255,.48);border-radius:50%;background:rgba(185,154,98,.96);color:#fff;box-shadow:0 0 0 9px rgba(185,154,98,.16),0 12px 30px rgba(35,54,76,.34);cursor:pointer;transition:transform .25s ease,opacity .25s ease,box-shadow .25s ease}.letter-intro-play:hover{transform:translate(-50%,-50%) scale(1.07);box-shadow:0 0 0 13px rgba(185,154,98,.18),0 14px 34px rgba(35,54,76,.38)}.letter-intro-play span{font-size:23px;line-height:1;margin-left:4px}.letter-intro-play.is-hidden{opacity:0;pointer-events:none;transform:translate(-50%,-50%) scale(.72)}
@media(max-width:720px){.letter-intro-play{width:64px;height:64px}.letter-intro-play span{font-size:19px}}
.letter-intro.is-opening{animation:letterIntroOut .35s ease 2.78s forwards}
.letter-envelope{position:absolute;inset:0;width:auto;height:auto;overflow:hidden;background:transparent;isolation:isolate;animation:none;transform:none;border:0;box-shadow:none}
.letter-envelope:before{content:"";position:absolute;inset:0;z-index:10;pointer-events:none;background:radial-gradient(circle at 50% 50%,rgba(244,239,231,.09) 0 3%,transparent 17%),radial-gradient(ellipse at center,transparent 0 48%,rgba(12,25,40,.32) 100%),repeating-linear-gradient(115deg,rgba(255,255,255,.035) 0 1px,transparent 1px 4px);mix-blend-mode:multiply}
.letter-envelope:after{content:"";position:absolute;inset:0;z-index:11;pointer-events:none;background:radial-gradient(ellipse at center,transparent 0 32%,rgba(0,0,0,.2) 100%);opacity:.62}
.letter-panel{position:absolute;inset:-1px;z-index:2;transform-style:preserve-3d;backface-visibility:hidden;animation:envelopeOpen 2.28s cubic-bezier(.65,0,.35,1) .7s both;filter:drop-shadow(0 0 2.5px rgba(244,239,231,.9)) drop-shadow(0 0 8px rgba(20,35,50,.74)) drop-shadow(0 10px 18px rgba(20,35,50,.34))}
.letter-panel:before{content:"";position:absolute;width:min(28vw,320px);height:min(50vh,420px);background:url("botanical-sprig.png") center/contain no-repeat;opacity:.14;filter:sepia(1) saturate(.55);pointer-events:none}.letter-panel-top:before{right:3vw;top:2vh;transform:rotate(18deg)}.letter-panel-right:before{right:2vw;bottom:5vh;transform:rotate(105deg)}.letter-panel-bottom:before{left:3vw;bottom:2vh;transform:rotate(198deg)}.letter-panel-left:before{left:2vw;top:5vh;transform:rotate(285deg)}
.letter-panel:after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.55;background:linear-gradient(135deg,transparent 0 42%,rgba(185,154,98,.65) 42.15% 42.35%,transparent 42.5% 57.5%,rgba(185,154,98,.38) 57.65% 57.85%,transparent 58%)}
.letter-panel-top{clip-path:polygon(0 0,100% 0,50% calc(50% - var(--envelope-opening)));background:linear-gradient(155deg,#405e7e 0%,#314c69 48%,#23364c 100%);transform-origin:50% 50%;animation-name:envelopeOpenTop}
.letter-panel-right{clip-path:polygon(100% 0,100% 100%,calc(50% + var(--envelope-opening)) 50%);background:linear-gradient(225deg,#3e5b79 0%,#304b67 48%,#23364c 100%);transform-origin:50% 50%;animation-name:envelopeOpenRight}
.letter-panel-bottom{clip-path:polygon(0 100%,100% 100%,50% calc(50% + var(--envelope-opening)));background:linear-gradient(25deg,#2b4865 0%,#385571 50%,#23364c 100%);transform-origin:50% 50%;animation-name:envelopeOpenBottom}
.letter-panel-left{clip-path:polygon(0 0,calc(50% - var(--envelope-opening)) 50%,0 100%);background:linear-gradient(125deg,#3d5a79 0%,#304b67 48%,#23364c 100%);transform-origin:50% 50%;animation-name:envelopeOpenLeft}
.letter-seal{position:absolute;z-index:12;left:50%;top:50%;display:grid;place-items:center;width:clamp(54px,10vw,82px);height:clamp(54px,10vw,82px);transform:translate(-50%,-50%);border:1px solid rgba(244,239,231,.75);border-radius:50%;background:#b99a62;color:#23364c;font:500 clamp(11px,1.7vw,15px) 'Cormorant Garamond',serif;letter-spacing:.08em;box-shadow:0 8px 28px rgba(12,25,40,.35);animation:sealDisappear .35s ease 1.8s forwards}.letter-seal span{font-family:'Great Vibes',cursive;font-size:1.25em}
@keyframes envelopeOpen{0%,100%{--envelope-opening:0px;transform:none}10%{--envelope-opening:clamp(3px,.7vw,9px);transform:none}100%{--envelope-opening:100vmax;transform:none}}
@keyframes envelopeOpenTop{0%,100%{--envelope-opening:0px;transform:none}12%{--envelope-opening:clamp(3px,.7vw,9px);transform:rotateX(-2deg) translateY(-1px)}30%{--envelope-opening:clamp(8px,2vw,22px)}52%{--envelope-opening:clamp(28px,14vw,180px);transform:rotateX(-6deg) translateY(-2px)}72%{--envelope-opening:clamp(90px,42vw,540px);transform:rotateX(-8deg) translateY(-3px)}100%{--envelope-opening:100vmax;transform:rotateX(-11deg) translateY(-4px)}}
@keyframes envelopeOpenRight{0%,100%{--envelope-opening:0px;transform:none}12%{--envelope-opening:clamp(3px,.7vw,9px);transform:rotateY(2deg) translateX(1px)}30%{--envelope-opening:clamp(8px,2vw,22px)}52%{--envelope-opening:clamp(28px,14vw,180px);transform:rotateY(6deg) translateX(2px)}72%{--envelope-opening:clamp(90px,42vw,540px);transform:rotateY(8deg) translateX(3px)}100%{--envelope-opening:100vmax;transform:rotateY(11deg) translateX(4px)}}
@keyframes envelopeOpenBottom{0%,100%{--envelope-opening:0px;transform:none}12%{--envelope-opening:clamp(3px,.7vw,9px);transform:rotateX(2deg) translateY(1px)}30%{--envelope-opening:clamp(8px,2vw,22px)}52%{--envelope-opening:clamp(28px,14vw,180px);transform:rotateX(6deg) translateY(2px)}72%{--envelope-opening:clamp(90px,42vw,540px);transform:rotateX(8deg) translateY(3px)}100%{--envelope-opening:100vmax;transform:rotateX(11deg) translateY(4px)}}
@keyframes envelopeOpenLeft{0%,100%{--envelope-opening:0px;transform:none}12%{--envelope-opening:clamp(3px,.7vw,9px);transform:rotateY(-2deg) translateX(-1px)}30%{--envelope-opening:clamp(8px,2vw,22px)}52%{--envelope-opening:clamp(28px,14vw,180px);transform:rotateY(-6deg) translateX(-2px)}72%{--envelope-opening:clamp(90px,42vw,540px);transform:rotateY(-8deg) translateX(-3px)}100%{--envelope-opening:100vmax;transform:rotateY(-11deg) translateX(-4px)}}
@keyframes sealDisappear{to{opacity:0;transform:translate(-50%,-50%) scale(.65)}}@keyframes letterIntroOut{to{opacity:0;visibility:hidden;pointer-events:none}}
body.letter-opening{overflow:hidden}.letter-intro:not(.is-opening){display:none}
.letter-intro.is-opening ~ .floating-music{visibility:hidden}
@media(max-width:720px){.letter-panel:after{opacity:.35}}
@media(prefers-reduced-motion:reduce){.letter-intro{display:none}.letter-intro.is-opening{animation:none}body.letter-opening{overflow:auto}}

/* Versión SVG: contornos curvos, pliegues y textura para un acabado de papel real. */
.letter-art{position:absolute;inset:-1px;width:calc(100% + 2px);height:calc(100% + 2px);z-index:2;overflow:visible;perspective:1200px}
.svg-flap{transform-box:fill-box;transform-origin:50% 50%;filter:none;will-change:transform}
.svg-flap path:first-child{stroke:#b99a62;stroke-width:.42;vector-effect:non-scaling-stroke;paint-order:stroke;filter:drop-shadow(0 0 2px rgba(244,239,231,.95)) drop-shadow(0 5px 10px rgba(15,28,43,.68))}
.svg-flap-top path:first-child{fill:#344f6e!important}.svg-flap-right path:first-child{fill:#304b67!important}.svg-flap-bottom path:first-child{fill:#385571!important}.svg-flap-left path:first-child{fill:#304b67!important}
.svg-crease{fill:none;stroke:rgba(244,239,231,.56);stroke-width:.28;vector-effect:non-scaling-stroke;filter:drop-shadow(0 1px 1px rgba(20,32,44,.85))}
.svg-flap-top{animation:svgOpenTop 2.28s cubic-bezier(.65,0,.35,1) .7s both}.svg-flap-right{animation:svgOpenRight 2.28s cubic-bezier(.65,0,.35,1) .7s both}.svg-flap-bottom{animation:svgOpenBottom 2.28s cubic-bezier(.65,0,.35,1) .7s both}.svg-flap-left{animation:svgOpenLeft 2.28s cubic-bezier(.65,0,.35,1) .7s both}
@keyframes svgOpenTop{0%,100%{transform:none}22%{transform:translateY(-1vh) rotateX(-1.5deg)}48%{transform:translateY(-10vh) rotateX(-5deg)}72%{transform:translateY(-35vh) rotateX(-8deg)}100%{transform:translateY(-66vh) rotateX(-12deg)}}
@keyframes svgOpenRight{0%,100%{transform:none}22%{transform:translateX(1vw) rotateY(1.5deg)}48%{transform:translateX(10vw) rotateY(5deg)}72%{transform:translateX(35vw) rotateY(8deg)}100%{transform:translateX(66vw) rotateY(12deg)}}
@keyframes svgOpenBottom{0%,100%{transform:none}22%{transform:translateY(1vh) rotateX(1.5deg)}48%{transform:translateY(10vh) rotateX(5deg)}72%{transform:translateY(35vh) rotateX(8deg)}100%{transform:translateY(66vh) rotateX(12deg)}}
@keyframes svgOpenLeft{0%,100%{transform:none}22%{transform:translateX(-1vw) rotateY(-1.5deg)}48%{transform:translateX(-10vw) rotateY(-5deg)}72%{transform:translateX(-35vw) rotateY(-8deg)}100%{transform:translateX(-66vw) rotateY(-12deg)}}
@media(prefers-reduced-motion:reduce){.letter-art{display:none}}

/* Modelo del nuevo video: sobre centrado, con tarjeta interior y solapas físicas. */
.letter-intro{background:rgba(244,239,231,.28)}
.letter-envelope{inset:auto;left:50%;top:50%;width:min(86vw,520px);height:min(54vw,320px);transform:translate(-50%,-50%);background:linear-gradient(145deg,#3d5874 0%,#344f6e 55%,#23364c 100%);border:1px solid rgba(244,239,231,.68);box-shadow:0 28px 45px rgba(20,34,49,.25),0 12px 20px rgba(20,34,49,.18);overflow:visible}
.letter-envelope:before{inset:0;border-radius:2px;background:repeating-linear-gradient(112deg,rgba(255,255,255,.025) 0 1px,transparent 1px 4px),linear-gradient(160deg,rgba(255,255,255,.08),transparent 38%,rgba(0,0,0,.12));mix-blend-mode:normal}
.letter-envelope:after{inset:-18px -10px -28px;background:radial-gradient(ellipse at 50% 65%,rgba(35,54,76,.28),transparent 66%);opacity:1;z-index:-1}
.letter-insert{position:absolute;z-index:1;left:18%;right:18%;top:10%;bottom:8%;background:linear-gradient(145deg,#fffdf4,#f4efe7);border:1px solid rgba(185,154,98,.66);box-shadow:0 10px 22px rgba(35,54,76,.32),inset 0 0 0 7px rgba(244,239,231,.72);transform:translateY(5%);}
.letter-insert:before{content:"";position:absolute;inset:13px;border:1px solid rgba(185,154,98,.42);background:linear-gradient(90deg,transparent 0 48%,rgba(185,154,98,.25) 48.2% 48.6%,transparent 48.8%)}
.letter-panel{inset:-1px;filter:drop-shadow(0 1px 2px rgba(244,239,231,.82)) drop-shadow(0 6px 8px rgba(15,28,43,.72))}
.letter-panel-top{clip-path:polygon(0 0,100% 0,50% calc(50% - var(--envelope-opening)));background:linear-gradient(155deg,#536b84 0%,#425b76 48%,#2b4159 100%)}
.letter-panel-right{clip-path:polygon(100% 0,100% 100%,calc(50% + var(--envelope-opening)) 50%);background:linear-gradient(225deg,#405a75 0%,#304a64 52%,#23364c 100%)}
.letter-panel-bottom{clip-path:polygon(0 100%,100% 100%,50% calc(50% + var(--envelope-opening)));background:linear-gradient(25deg,#2b4560 0%,#38536c 54%,#23364c 100%)}
.letter-panel-left{clip-path:polygon(0 0,calc(50% - var(--envelope-opening)) 50%,0 100%);background:linear-gradient(125deg,#435d78 0%,#304a64 52%,#23364c 100%)}
.letter-panel:before{opacity:.2}.letter-panel:after{opacity:.72;background:linear-gradient(135deg,transparent 0 46%,rgba(185,154,98,.9) 46.2% 46.7%,transparent 47% 53%,rgba(244,239,231,.42) 53.2% 53.6%,transparent 54%)}
@media(max-width:720px){.letter-envelope{width:86vw;height:54vw;min-height:205px;max-height:290px}.letter-insert{left:17%;right:17%;top:11%;bottom:9%}.letter-insert:before{inset:9px}.letter-envelope:after{inset:-12px -7px -20px}}
.letter-intro:before,.letter-intro:after{display:none!important;content:none!important}
