/* Portada y apertura de la carta */
.gate{background:transparent;backdrop-filter:none;isolation:isolate;overflow:hidden}
.gate:before{content:'';position:absolute;inset:-22px;z-index:-1;background:linear-gradient(#50463680,#50463680),url('assets/foto-1.jpg') center/cover;filter:blur(9px);transition:filter 1.5s ease}
.gate.opened:before{filter:blur(0)}
.hero>img{filter:blur(9px)}
.invitation-open .hero>img{filter:blur(0);transition:transform 2.5s ease,filter 1.7s ease}
.hero{min-height:680px;overflow:hidden}.hero>img{object-position:center 40%;transform:scale(1.06);transition:transform 2.5s ease}.hero:after{background:linear-gradient(180deg,#241b17a3 0%,#241b173d 55%,#241b1780)}.hero-copy{align-self:start;margin:0;padding:145px 22px 80px;opacity:0;transform:translateY(22px);transition:opacity 1.5s .2s,transform 1.5s .2s}.invitation-open .hero-copy{opacity:1;transform:none}.invitation-open .hero>img{transform:scale(1)}.wedding-label{font:40px 'Great Vibes',cursive;margin:0 0 15px;color:#f6ebd9}h1{font-size:clamp(86px,11vw,160px);line-height:1.25;margin:0 auto 12px;font-weight:400}h1 em{font-family:'Cormorant Garamond',Georgia,serif;font-size:.72em;font-weight:400;color:#dfc589}.hero .gold-line{margin:18px auto 25px}.hero .date{font-size:18px;letter-spacing:7px}.hero-location{font-size:21px}.monogram{border:1px solid #e6d1ac99;border-radius:50%;width:66px;height:76px;display:grid;place-items:center;font-family:'Great Vibes',cursive;font-size:32px;letter-spacing:-4px;padding-right:5px}.menu-toggle{display:grid;gap:7px;padding:14px 6px;border:0;background:transparent;width:42px;z-index:4}.menu-toggle span{height:1px;background:#fff;width:30px;display:block}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(4px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-4px) rotate(-45deg)}header{align-items:start;padding:25px 4%}header nav{position:absolute;right:3%;top:82px;min-width:230px;background:#f7f3ecf7;color:#51463c;border:1px solid #c9b58e;padding:15px 25px;box-shadow:0 10px 30px #0002}header nav a{display:block;padding:13px 0;font-size:20px;text-decoration:none}header nav a:hover{color:#aa8954}.envelope{isolation:isolate;perspective:1000px;transition:transform .9s 1s,opacity .9s 1s}.envelope:after{content:'';position:absolute;inset:0;z-index:2;background:repeating-linear-gradient(0deg,#f5efdf,#f5efdf 2px,#eee7d8 3px);clip-path:polygon(0 0,50% 59%,100% 0,100% 100%,0 100%);border-radius:6px;pointer-events:none}.flap{z-index:4;backface-visibility:hidden;transition:transform .8s ease}.envelope p{z-index:5;transition:opacity .3s}.envelope button{z-index:6;font-family:'Great Vibes',cursive;font-size:37px;letter-spacing:-5px;padding-right:8px;transition:opacity .35s,transform .4s}.envelope small{z-index:5;transition:opacity .3s}.photo-letter{position:absolute;z-index:1;left:7%;top:10%;width:86%;height:85%;padding:9px 9px 40px;background:#fffaf0;box-shadow:0 5px 20px #0003;opacity:0;transform:translateY(12%);transition:transform 1.2s .55s cubic-bezier(.22,.68,.2,1),opacity .3s .4s}.photo-letter img{width:100%;height:100%;object-fit:cover}.photo-letter span{display:block;font:27px 'Great Vibes',cursive;color:#8a6a3d;margin-top:5px}.opening .flap{transform:rotateX(180deg)}.opening .envelope button{opacity:0;transform:scale(.8)}.opening .envelope p,.opening .envelope small{opacity:0}.opening .photo-letter{opacity:1;transform:translateY(-84%)}.opening .envelope{transform:translateY(24vh)}.gate{transition:opacity 1s,visibility 1s}.gate.opened .envelope{opacity:0;transform:translateY(40vh)}
@media(max-width:600px){.hero{min-height:650px}.hero-copy{padding:145px 12px 50px}h1{font-size:clamp(62px,14.5vw,88px);white-space:nowrap}.wedding-label{font-size:34px;margin-bottom:18px}.hero .date{font-size:15px;letter-spacing:5px}.hero-location{font-size:18px}.monogram{width:52px;height:60px;font-size:28px}header{padding:20px}.photo-letter span{font-size:24px}.opening .photo-letter{transform:translateY(-95%)}}
@media(prefers-reduced-motion:reduce){.hero>img,.hero-copy{transition:none}.opening .envelope{transform:none}}

.music-control{position:fixed;right:20px;bottom:20px;z-index:8;display:flex;align-items:center;gap:10px;border:1px solid #d2bc8d;border-radius:30px;padding:11px 17px;background:#70273ce8;color:#fff8e9;box-shadow:0 4px 18px #0002;font:9px Montserrat,sans-serif;letter-spacing:1.5px;cursor:pointer}.music-control[hidden]{display:none}.music-control b{font-size:23px;font-weight:400}.music-control:hover{background:#70273c}
