*{box-sizing:border-box} :root{--forest:#18251e;--forest2:#26392e;--gold:#c5a66b;--gold-light:#e6d4ad;--cream:#f8f5ee;--ink:#28332b;--muted:#7a7c70}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:Montserrat,Arial,sans-serif;font-weight:300}body.loading{overflow:hidden}.grain{position:fixed;inset:0;pointer-events:none;z-index:20;opacity:.12;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.2'/%3E%3C/svg%3E")}h1,h2,h3,p{margin-top:0}h2{font-family:'Cormorant Garamond',serif;font-weight:500;font-size:clamp(2.3rem,7vw,4.2rem);line-height:1.04;margin-bottom:20px}.cover{min-height:100svh;background:linear-gradient(180deg,rgba(14,28,21,.35),rgba(14,28,21,.88)),url('assets/foto-principal.jpg') center 38%/cover;position:relative;display:grid;place-items:center;text-align:center;color:#fff;overflow:hidden}.cover:before,.cover:after{content:"";position:absolute;inset:22px;border:1px solid rgba(220,195,145,.5);pointer-events:none}.cover:after{inset:30px;border-color:rgba(255,255,255,.18)}.cover-content{position:relative;z-index:2;padding:60px 20px 80px;width:min(100%,680px)}.eyebrow{font-size:.62rem;letter-spacing:.25em;font-weight:500;color:var(--gold);line-height:1.8}.cover .eyebrow{color:#ead9b6}.cover-names{font:500 clamp(3.5rem,12vw,7rem)/.9 'Cormorant Garamond',serif;margin:25px 0 20px}.cover-names i{font-weight:400;color:var(--gold-light);font-size:.7em}.cover-date{letter-spacing:.32em;font-size:.7rem}.cover-bottom{position:absolute;bottom:35px;letter-spacing:.28em;font-size:.55rem;color:#e7d8bb}.envelope-wrap{height:220px;display:grid;place-items:center;margin:34px auto 12px;perspective:1000px}.envelope{width:min(310px,78vw);height:190px;position:relative;border:0;background:transparent;cursor:pointer;transform-style:preserve-3d;filter:drop-shadow(0 18px 22px rgba(0,0,0,.28));transition:transform .5s}.envelope:hover{transform:translateY(-5px)}.envelope-back{position:absolute;inset:0;background:#e8dfcd;border-radius:3px}.envelope-letter{position:absolute;left:8%;right:8%;bottom:8px;height:145px;background:#fbf8ef;color:var(--forest);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:1;transition:transform 1s .3s}.letter-monogram{font:500 2.3rem 'Cormorant Garamond',serif}.letter-monogram b{color:var(--gold);font-weight:400}.envelope-letter small{font-size:.55rem;letter-spacing:.18em;margin-top:8px}.envelope-front-left,.envelope-front-right,.envelope-front-bottom{position:absolute;inset:0;background:#d8c9ad;z-index:3;clip-path:polygon(0 0,50% 55%,0 100%)}.envelope-front-right{clip-path:polygon(100% 0,50% 55%,100% 100%);background:#e1d4bc}.envelope-front-bottom{clip-path:polygon(0 100%,50% 48%,100% 100%);background:#cdbb9b}.envelope-flap{position:absolute;inset:0;background:#eee5d4;clip-path:polygon(0 0,100% 0,50% 58%);transform-origin:top;transition:transform .8s;z-index:5}.wax-seal{position:absolute;z-index:6;left:50%;top:56%;transform:translate(-50%,-50%);width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 35% 30%,#d8bb83,#96713d 75%);color:#fff4d8;font:1rem 'Cormorant Garamond',serif;box-shadow:0 3px 8px #68502f}.wax-seal span{font-size:.7rem}.envelope.open .envelope-flap{transform:rotateX(180deg);z-index:0}.envelope.open .envelope-letter{transform:translateY(-125px);z-index:4}.envelope.open .wax-seal{opacity:0;transition:opacity .2s}.open-hint{font-size:.65rem;letter-spacing:.1em;color:#eee4d2}.invitation{display:none;opacity:0;transition:opacity 1.2s}.invitation.visible{display:block}.invitation.show{opacity:1}.section-pad{padding:100px 22px}.intro{text-align:center;max-width:760px;margin:auto;padding-top:115px;padding-bottom:95px}.ornament{font:2rem 'Cormorant Garamond',serif;color:var(--gold);margin-bottom:18px}.script-title{font-style:italic;color:var(--forest2);font-size:clamp(3rem,9vw,5.4rem)}.fine-line{width:75px;height:1px;background:var(--gold);margin:25px auto}.intro-quote{max-width:560px;margin:0 auto 35px;color:#62665d;font:italic 1.2rem/1.7 'Cormorant Garamond',serif}.couple-names{font:500 2.2rem 'Cormorant Garamond',serif;margin-bottom:12px}.couple-names span{color:var(--gold);font-style:italic}.date-display{font-size:.62rem;letter-spacing:.2em;color:var(--muted)}.portrait-section{background:#eee9dd;text-align:center}.section-heading{text-align:center;margin:0 auto 42px;max-width:700px}.section-heading h2{color:var(--forest)}.hero-photo{position:relative;width:min(540px,90%);margin:auto;padding:12px;border:1px solid #cbb78e;background:#f9f6ee;box-shadow:0 25px 55px rgba(38,49,38,.13)}.hero-photo img{width:100%;height:auto;display:block}.photo-corner{position:absolute;width:45px;height:45px;border-color:var(--gold);border-style:solid}.top-left{top:4px;left:4px;border-width:1px 0 0 1px}.bottom-right{bottom:4px;right:4px;border-width:0 1px 1px 0}.photo-caption{font:italic 1.15rem 'Cormorant Garamond',serif;color:#77776b;margin:24px 0 0}.details-section{text-align:center;background:var(--forest);color:#f7f2e8}.details-section .section-heading h2{color:#fff}.date-card{width:180px;margin:0 auto 38px;padding:20px 10px;border-top:1px solid var(--gold);border-bottom:1px solid var(--gold)}.date-month,.date-weekday{font-size:.58rem;letter-spacing:.25em;color:var(--gold-light)}.date-number{font:500 5.2rem/.95 'Cormorant Garamond',serif;color:#fff;margin:9px 0}.countdown{display:flex;justify-content:center;gap:clamp(12px,4vw,38px);margin:0 auto 65px}.countdown div{display:flex;flex-direction:column;min-width:48px}.countdown strong{font:500 clamp(1.8rem,5vw,2.8rem) 'Cormorant Garamond',serif;color:var(--gold-light)}.countdown span{font-size:.48rem;letter-spacing:.15em;color:#c9c9ba}.event-list{display:grid;grid-template-columns:1fr auto 1fr;gap:30px;max-width:850px;margin:auto}.event-item{padding:10px}.event-icon{font:2.2rem 'Cormorant Garamond',serif;color:var(--gold);margin-bottom:15px}.event-item h3{font:500 2rem 'Cormorant Garamond',serif;margin:5px 0}.event-item p:not(.eyebrow){font-size:.85rem;color:#d8d9d0}.event-item .venue{min-height:42px}.event-divider{display:flex;align-items:center;color:var(--gold);font-size:1.5rem}.outline-button,.gold-button,.whatsapp-button{display:inline-flex;align-items:center;justify-content:center;gap:18px;text-decoration:none;letter-spacing:.14em;font-size:.62rem;font-weight:500;padding:15px 22px;transition:.25s}.outline-button{border:1px solid #b9a171;color:#f7f2e8;margin-top:12px}.outline-button:hover{background:#c5a66b;color:#18251e}.gallery-section{text-align:center;background:#f8f5ee}.section-note{font:italic 1.1rem 'Cormorant Garamond',serif;color:#777}.gallery-track{display:flex;gap:18px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none;padding:12px max(22px,calc((100vw - 1050px)/2)) 24px;cursor:grab;touch-action:pan-x pan-y}.gallery-track::-webkit-scrollbar{display:none}.gallery-card{flex:0 0 min(76vw,390px);height:470px;margin:0;padding:9px;border:1px solid #cbb78e;background:#fff;box-shadow:0 15px 35px #26392e14;scroll-snap-align:center;display:grid;place-items:center}.gallery-card img{width:100%;height:100%;object-fit:contain;background:#f1eee7}.gallery-controls{display:flex;align-items:center;justify-content:center;gap:24px;color:#777;font-size:.65rem;letter-spacing:.16em}.gallery-controls button{border:1px solid #c9b88f;background:transparent;width:35px;height:35px;border-radius:50%;font-size:1.4rem;color:var(--forest);cursor:pointer}.dress-section{background:#ebe5d8;text-align:center}.dress-frame{max-width:650px;margin:auto;border:1px solid #c5ad7c;padding:55px 25px;background:#f6f2e9;outline:1px solid #c5ad7c;outline-offset:7px}.dress-main{font:italic 2.5rem 'Cormorant Garamond',serif;color:var(--forest);margin:15px 0}.dress-note{font:italic 1.2rem/1.5 'Cormorant Garamond',serif;max-width:430px;margin:0 auto 25px;color:#666}.white-swatch{display:flex;flex-direction:column;align-items:center;gap:10px}.white-swatch span{width:38px;height:38px;border-radius:50%;background:#fff;border:1px solid #d7d2c7;box-shadow:0 2px 9px #0001}.white-swatch small{font-size:.48rem;letter-spacing:.16em;color:#777}.gift-section{text-align:center;background:var(--forest2);color:#f7f2e8}.gift-section h2{max-width:600px;margin:10px auto 20px;color:white}.gift-section>p:not(.eyebrow){max-width:540px;margin:0 auto 30px;line-height:1.8;color:#d7d9d0;font:1.15rem/1.6 'Cormorant Garamond',serif}.gold-button{background:var(--gold);color:#1c2a20}.gold-button:hover{background:#e1c995;transform:translateY(-2px)}.rsvp-section{text-align:center;max-width:720px;margin:auto}.rsvp-section h2{color:var(--forest)}.rsvp-section>p:not(.eyebrow):not(.rsvp-small){font:1.2rem/1.6 'Cormorant Garamond',serif;color:#696d63;max-width:510px;margin:0 auto 28px}.whatsapp-button{background:#253e30;color:#fff;padding:18px 28px}.whatsapp-button:hover{background:#345640;transform:translateY(-2px)}.rsvp-small{font-size:.58rem;letter-spacing:.18em;color:#8b887b;margin-top:25px}.footer{background:#142019;text-align:center;color:#eee8dc;padding:55px 20px 35px}.footer-monogram{font:2.8rem 'Cormorant Garamond',serif;color:var(--gold-light)}.footer-monogram span{font-style:italic;color:var(--gold)}.footer p{font:italic 1.15rem 'Cormorant Garamond',serif;margin:14px auto 5px}.footer small{font-size:.62rem;color:var(--gold-light);letter-spacing:.15em}.footer-line{width:50px;height:1px;background:var(--gold);margin:28px auto}.footer-brand{font-size:.5rem;letter-spacing:.25em;color:#a7a99c}.music-toggle{position:fixed;z-index:30;right:18px;top:18px;border:1px solid #d0b77e;background:#19271fdd;color:#f7edda;border-radius:30px;padding:10px 14px;font-size:1rem;cursor:pointer;backdrop-filter:blur(8px)}.music-toggle span{font:500 .55rem Montserrat,sans-serif;letter-spacing:.1em;margin-left:5px}.music-toggle.playing{background:#c5a66b;color:#1b281f}.regalos-page{min-height:100vh;background:linear-gradient(145deg,#17251d,#304638);color:#f7f2e8;padding:35px 18px;display:grid;place-items:center}.gift-page-card{width:min(600px,100%);padding:45px 25px;background:#f8f5ee;color:var(--ink);text-align:center;border:1px solid #c5a66b;box-shadow:0 25px 70px #0004}.gift-page-card h1{font:500 clamp(2.5rem,8vw,4rem) 'Cormorant Garamond',serif;margin:8px 0 12px}.gift-page-card .lead{font:italic 1.15rem/1.5 'Cormorant Garamond',serif;color:#707368}.bank-card{margin:25px auto;padding:22px 16px;border:1px solid #d5c49f;background:#fffdf8;text-align:left;max-width:430px}.bank-card h2{font:500 1.7rem 'Cormorant Garamond',serif;margin-bottom:15px}.bank-row{margin:12px 0;font-size:.82rem;line-height:1.5}.bank-row b{display:block;font-size:.57rem;letter-spacing:.12em;color:#8a7957;margin-bottom:3px}.copy-button{border:1px solid #b99c62;background:#26392e;color:#fff;padding:11px 15px;font:500 .6rem Montserrat,sans-serif;letter-spacing:.12em;cursor:pointer;margin-top:8px}.back-link{display:inline-block;margin-top:25px;color:#5d654f;font-size:.68rem;letter-spacing:.13em;text-decoration:none}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#1e3327;color:#fff;padding:12px 18px;font-size:.75rem;opacity:0;transition:.25s;pointer-events:none}.toast.show{opacity:1}@media(max-width:650px){.section-pad{padding:75px 18px}.cover:before{inset:13px}.cover:after{inset:20px}.cover-content{padding-top:55px}.envelope-wrap{height:190px}.envelope{height:165px}.event-list{grid-template-columns:1fr;gap:15px}.event-divider{justify-content:center;height:8px}.event-item .venue{min-height:0}.countdown{gap:13px;margin-bottom:45px}.countdown div{min-width:55px}.gallery-card{height:390px;flex-basis:82vw}.hero-photo{width:100%}.dress-frame{padding:45px 18px}.music-toggle{right:12px;top:12px}.music-toggle span{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
/* Iconografía de ceremonia y celebración */
.event-icon svg{width:43px;height:43px;fill:none;stroke:var(--gold);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;display:block;margin:0 auto}
/* Panel de regalos sobre la misma invitación: conserva scroll y estado de la tarjeta */
.gift-modal[hidden]{display:none}
.gift-modal{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:18px;overflow-y:auto;background:rgba(9,17,12,.82);backdrop-filter:blur(8px)}
.gift-modal-backdrop{position:fixed;inset:0}
.gift-modal-panel{position:relative;z-index:1;width:min(610px,100%);max-height:calc(100svh - 36px);overflow-y:auto;padding:42px 24px 34px;background:var(--cream);color:var(--ink);border:1px solid var(--gold);box-shadow:0 25px 80px #0007;text-align:center;overscroll-behavior:contain}
.gift-modal-panel h2{font-size:clamp(2.4rem,8vw,3.8rem);margin:7px 0 12px;color:var(--forest)}
.gift-modal-lead{max-width:470px;margin:0 auto 20px;font:italic 1.12rem/1.55 'Cormorant Garamond',serif;color:#707368}
.gift-modal-panel .bank-card{margin:18px auto;text-align:left}
.gift-modal-panel .bank-card h3{font:500 1.6rem 'Cormorant Garamond',serif;margin:0 0 12px}
.gift-modal-close{position:absolute;right:12px;top:8px;border:0;background:transparent;color:var(--forest);font:2rem 'Cormorant Garamond',serif;cursor:pointer;width:42px;height:42px}
.gift-back-button{border:0;background:transparent;cursor:pointer;font-family:Montserrat,Arial,sans-serif}
@media(max-width:650px){.gift-modal{padding:10px}.gift-modal-panel{max-height:calc(100svh - 20px);padding:38px 17px 28px}.event-icon svg{width:40px;height:40px}}

body.gift-modal-open{overflow:hidden}

/* Mantener el control de música accesible también sobre el panel de regalos */
.music-toggle{z-index:70}
