:root{--wine:#4b0710;--burnt:#781820;--deep:#210307;--gold:#d8ae55;--gold2:#f4d98c;--ivory:#fff8e9;--black:#0d0103;--glass:#fff8e90d}*{box-sizing:border-box}html{scroll-behavior:smooth;overflow-y:auto;overscroll-behavior-y:auto}body{margin:0;background:var(--black);color:var(--ivory);font-family:Montserrat,sans-serif;overflow-x:hidden}body.intro-lock{overflow:hidden}h1,h2,h3{font-family:Cinzel,serif}p{line-height:1.75}.page-progress{position:fixed;z-index:150;left:0;top:0;height:3px;width:0;background:linear-gradient(90deg,#9b6f24,#ffe8a5,#a57827);box-shadow:0 0 12px #f6d679}.intro{position:fixed;inset:0;z-index:140;background:radial-gradient(circle at 50% 35%,#8b1822 0,#37050b 45%,#100204 100%);display:grid;place-items:center;text-align:center;transition:opacity 1.8s,visibility 1.8s}.intro.hidden{opacity:0;visibility:hidden}.stars,.cinema-stars{position:absolute;inset:0;background-image:radial-gradient(#f6dc91 1px,transparent 1px);background-size:38px 38px;opacity:.18;animation:twinkle 3s infinite alternate}.intro-glow{position:absolute;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle,#e3a84822,transparent 66%);filter:blur(12px)}.envelope-wrap{position:relative;width:min(88vw,460px);perspective:1300px}.envelope{position:relative;height:285px;filter:drop-shadow(0 30px 32px #000a);transform:translateZ(0)}.envelope-back,.envelope-front,.flap{position:absolute;inset:0;border:1px solid #d5ae62}.envelope-back{background:linear-gradient(145deg,#f0dfbd,#cba66b)}.envelope-front{z-index:4;background:linear-gradient(145deg,#e8d2a8,#b68b50);clip-path:polygon(0 35%,50% 72%,100% 35%,100% 100%,0 100%)}.flap{z-index:5;transform-origin:top;transition:transform 2.35s cubic-bezier(.2,.75,.25,1);background:linear-gradient(160deg,#f4e4c2,#c69959);clip-path:polygon(0 0,100% 0,50% 74%);backface-visibility:hidden}.letter{position:absolute;z-index:2;left:7%;right:7%;bottom:12px;height:245px;background:#fff9e8;color:#4c1117;border:1px solid #cda354;padding:44px 20px 20px;display:flex;flex-direction:column;justify-content:center;gap:10px;transition:transform 2.45s .8s cubic-bezier(.18,.75,.2,1);box-shadow:0 0 24px #0004}.letter:before{content:'';position:absolute;inset:12px;border:1px solid #b88a3e}.letter strong{font:400 clamp(42px,11vw,66px) 'Great Vibes';color:#7b111c}.letter span{font-family:Cinzel;letter-spacing:3px;font-size:12px}.letter-small{font-size:10px!important}.wax{position:absolute;z-index:8;left:50%;top:58%;transform:translate(-50%,-50%);width:88px;height:88px;border-radius:50%;border:4px double #e7b44f;background:radial-gradient(circle at 32% 25%,#ad2430,#6c0710 58%,#310105);color:#f2c760;box-shadow:0 8px 15px #0008,0 0 0 8px #66101955;cursor:pointer;transition:.35s}.wax:hover{transform:translate(-50%,-50%) scale(1.07);filter:brightness(1.12)}.monogram-mini{position:relative;display:block;width:55px;height:55px;margin:auto;font-family:'Great Vibes';font-size:36px}.monogram-mini i,.monogram-mini b{position:absolute;font-style:normal;font-weight:400}.monogram-mini i{left:4px;top:3px}.monogram-mini b{right:3px;bottom:1px}.envelope.open .flap{transform:rotateX(180deg);z-index:1}.envelope.open .letter{transform:translateY(-145px)}.envelope.open .wax{opacity:0;transform:translate(-50%,-50%) scale(.45)}.open-hint{margin-top:36px;color:#d6b467;text-transform:uppercase;letter-spacing:4px;font-size:12px;animation:pulse 1.8s infinite}.cinema{position:fixed;inset:0;z-index:130;display:grid;place-items:center;background:radial-gradient(circle at center,#7b121c 0,#250308 52%,#080102 100%);opacity:0;visibility:hidden;transition:opacity 1.2s}.cinema.show{opacity:1;visibility:visible}.cinema-copy{position:relative;z-index:2;text-align:center;width:min(88vw,780px);opacity:0;transform:scale(.96);transition:1.6s .55s}.cinema.show .cinema-copy{opacity:1;transform:none}.cinema-copy p{font-family:'Great Vibes';font-size:clamp(34px,6vw,65px);color:#f1cf78;margin:20px 0 0}.cinema-copy h2{font-size:clamp(17px,3vw,28px);letter-spacing:2px;font-weight:500}.lux-monogram{position:relative;width:120px;height:105px;margin:auto;color:#efc767;text-shadow:0 0 18px #e2af4b55;font-family:'Great Vibes';line-height:1}.lux-monogram span,.lux-monogram b{position:absolute;font-size:92px;font-weight:400}.lux-monogram span{left:5px;top:0}.lux-monogram b{right:0;bottom:-4px}.hero-monogram{width:82px;height:68px;margin-bottom:-5px}.hero-monogram span,.hero-monogram b{font-size:61px}.floating-actions{position:fixed;z-index:70;right:18px;bottom:20px;display:grid;gap:10px}.float-btn{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;border:1px solid #e0b75d99;background:#3a070dcc;color:#f2d27c;box-shadow:0 8px 22px #0007;backdrop-filter:blur(8px);font-size:20px;text-decoration:none;cursor:pointer;transition:.25s}.float-btn:hover{transform:translateY(-2px);background:#6d101a}.hero{position:relative;min-height:100svh;background-image:linear-gradient(#1b020642,#10010588),var(--hero);background-size:cover;background-position:center;display:grid;place-items:center;text-align:center;overflow:hidden}.hero:before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 50% 34%,transparent 25%,#100104c9 100%)}.hero-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,#18020722,#12010435 55%,#100103d9)}.hero-frame{position:absolute;inset:18px;border:1px solid #d8ae5580}.hero-frame:before,.hero-frame:after{content:'❦';position:absolute;color:#e9c96e;font-size:25px}.hero-frame:before{left:14px;top:8px}.hero-frame:after{right:14px;bottom:8px;transform:rotate(180deg)}.hero-content{position:relative;z-index:2;padding:35px 18px;text-shadow:0 4px 22px #000}.mini,.eyebrow{font-size:11px;letter-spacing:4px;text-transform:uppercase;color:#e7c369}.roman{font:600 clamp(75px,16vw,145px) Cinzel;line-height:.8;color:#f2d582;text-shadow:0 2px 0 #7f5512,0 0 28px #e2b94e55}.hero h1{font:400 clamp(58px,10vw,105px) 'Great Vibes';margin:10px 0;color:#f8dfa0}.date{font-family:Cinzel;letter-spacing:6px}.ornament{color:#eacb70;font-size:28px}.scroll-cue{position:absolute;z-index:3;bottom:25px;color:#f0ce72;text-decoration:none;font-size:42px;animation:bob 1.8s infinite}.section{padding:88px max(22px,calc((100% - 1050px)/2));text-align:center;background:radial-gradient(circle at 50% 0,#74111a38,transparent 50%),linear-gradient(180deg,#160205,#0d0103)}.section h2{font-size:clamp(30px,5vw,50px);color:#edcb73;margin:8px 0 18px}.story h2 span{font-family:'Great Vibes';font-size:1.5em}.story p:last-child,.gallery-title p:last-child,.rsvp>p{max-width:720px;margin:20px auto}.countdown{display:grid;grid-template-columns:repeat(4,1fr);max-width:760px;margin:38px auto 28px;border:1px solid #d8ae5560;background:#fff8e908;border-radius:20px;overflow:hidden;box-shadow:0 22px 55px #0005}.countdown div{padding:27px 8px;border-right:1px solid #d8ae5544}.countdown div:last-child{border:0}.countdown b{display:block;color:#f1d27d;font:600 clamp(30px,6vw,59px) Cinzel}.countdown span{text-transform:uppercase;letter-spacing:2px;font-size:10px}.gold-button{display:inline-block;color:#2c080b;background:linear-gradient(135deg,#f0d788,#9d7226);padding:13px 24px;border-radius:30px;text-decoration:none;font-weight:700}.photo-band{min-height:78vh;background-image:linear-gradient(#15010455,#15010499),var(--band);background-size:cover;background-position:center;display:grid;place-items:center;background-attachment:fixed;padding:30px}.quote-card{max-width:720px;padding:40px;background:#170205c9;border:1px solid #d8ae5577;backdrop-filter:blur(5px);box-shadow:0 20px 60px #0008}.quote-card p{font:400 48px 'Great Vibes';color:#edca72;margin:0}.quote-card h2{font-size:clamp(25px,5vw,47px)}.premium-gallery{background:#080102;padding-bottom:30px}.gallery-stage{position:relative;height:min(86vh,820px);min-height:560px;overflow:hidden;display:grid;place-items:center}.blur-bg{position:absolute;inset:-45px;background-size:cover;background-position:center;filter:blur(38px) saturate(.8) brightness(.35);transform:scale(1.12);transition:background-image .6s}.gallery-vignette{position:absolute;inset:0;z-index:1;background:radial-gradient(circle,transparent 30%,#0b0103ed 94%);pointer-events:none}.gallery-stage figure{z-index:2;margin:0;width:min(90vw,860px);height:91%;display:flex;flex-direction:column;align-items:center}.gallery-stage figure img{touch-action:pan-y;user-select:none;-webkit-user-drag:none;width:100%;height:calc(100% - 45px);object-fit:contain;filter:drop-shadow(0 20px 26px #000);animation:kenburns 9s ease-in-out infinite alternate;transition:opacity .28s}.gallery-stage figure img.fade{opacity:.12}.gallery-stage figcaption{width:100%;display:flex;justify-content:space-between;align-items:center;color:#f1d287;padding:10px 5px;font-size:12px;letter-spacing:2px;text-transform:uppercase}.gallery-stage figcaption button{background:none;border:0;color:#f1d287;text-transform:uppercase;letter-spacing:1px;cursor:pointer}.gallery-arrow{position:absolute;z-index:4;top:50%;transform:translateY(-50%);border:1px solid #d8ae5588;background:#3b0710aa;color:#f3d37c;width:48px;height:62px;font-size:42px;cursor:pointer}.gallery-arrow.prev{left:10px}.gallery-arrow.next{right:10px}.thumbs{display:flex;touch-action:pan-x;overscroll-behavior-inline:contain;gap:8px;overflow-x:auto;padding:12px max(16px,calc((100% - 900px)/2));scrollbar-width:none}.thumbs::-webkit-scrollbar{display:none}.thumbs button{padding:0;border:2px solid transparent;background:none;flex:0 0 70px;height:90px;opacity:.55;cursor:pointer}.thumbs button.active{border-color:var(--gold);opacity:1}.thumbs img{width:100%;height:100%;object-fit:cover}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:22px;margin-top:35px}.card{position:relative;border:1px solid #d6aa4e70;padding:35px 20px;background:linear-gradient(145deg,#72131ccc,#30060bcc);border-radius:20px;box-shadow:0 16px 40px #0006;overflow:hidden}.card:after{content:'';position:absolute;inset:8px;border:1px solid #f1d27b22;border-radius:14px;pointer-events:none}.card .icon{font-size:35px;color:var(--gold)}.card a,.whatsapp-only button{display:inline-block;color:#2c080b;background:linear-gradient(135deg,#efd584,#9e742a);padding:12px 22px;border-radius:30px;text-decoration:none;font-weight:700;border:0;cursor:pointer}.line{max-width:650px;margin:35px auto;text-align:left;border-left:1px solid var(--gold);padding-left:28px}.line div{position:relative;padding:0 0 27px 12px}.line div:before{content:'';position:absolute;left:-35px;top:5px;width:12px;height:12px;border-radius:50%;background:var(--gold);box-shadow:0 0 15px var(--gold)}.line time{display:block;color:var(--gold);font:600 21px Cinzel}.line span{opacity:.9}.etiquette{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px}.etiquette>div{padding:35px 22px;border:1px solid #d6aa4e55;border-radius:16px;background:#5b081277}.reserved{border-top:1px solid var(--gold);border-bottom:1px solid var(--gold);padding:15px;color:#f1cf76}.rsvp form{max-width:620px;margin:30px auto;text-align:left;background:var(--glass);border:1px solid #d6aa4e55;padding:25px;border-radius:18px;box-shadow:0 20px 55px #0004}.rsvp label,.rsvp legend{display:block;margin:18px 0 8px;font-weight:600}.rsvp input[type=text],.rsvp select{width:100%;padding:14px;border-radius:9px;border:1px solid #d6aa4e88;background:#220408;color:white;font-size:16px}.rsvp fieldset{border:0;padding:0;margin:20px 0}.rsvp fieldset label{display:inline-flex;margin-right:24px;align-items:center;gap:8px;font-weight:400}.rsvp button{width:100%;margin-top:15px;border:1px solid var(--gold);background:linear-gradient(135deg,#d9af58,#8f681f);color:#26070b;padding:15px 28px;border-radius:50px;text-transform:uppercase;letter-spacing:2px;font-weight:700;cursor:pointer}.form-note{font-size:12px;opacity:.7;text-align:center}.wa-card{max-width:600px;margin:auto;border:1px solid #d8ae5570;padding:45px 25px;background:linear-gradient(145deg,#6d111b99,#260408cc);border-radius:22px}.wa-icon{display:inline-grid;place-items:center;width:65px;height:65px;border-radius:50%;background:#25d366;color:white;font-size:35px;margin-bottom:15px}.lightbox{position:fixed;inset:0;z-index:160;background:#080102f7;display:grid;place-items:center;opacity:0;visibility:hidden;transition:.35s;padding:18px}.lightbox.open{opacity:1;visibility:visible}.lightbox img{max-width:96vw;max-height:92vh;object-fit:contain}.lightbox button{position:absolute;right:18px;top:12px;background:none;border:0;color:white;font-size:42px;cursor:pointer}footer{text-align:center;padding:70px 20px;background:#090102;border-top:1px solid #d6aa444}footer h2{font-family:'Great Vibes';font-size:50px;color:#edca72;margin:5px}.footer-monogram{width:72px;height:65px}.footer-monogram span,.footer-monogram b{font-size:58px}.reveal{opacity:0;transform:translateY(24px);transition:opacity .9s,transform .9s}.reveal.visible{opacity:1;transform:none}.petal{position:fixed;z-index:25;top:-30px;width:12px;height:18px;border-radius:80% 0 80% 0;background:#8d1722aa;pointer-events:none;animation:fall linear forwards}@keyframes twinkle{to{opacity:.32}}@keyframes pulse{50%{opacity:.45}}@keyframes bob{50%{transform:translateY(8px)}}@keyframes kenburns{from{transform:scale(1)}to{transform:scale(1.035)}}@keyframes fall{to{transform:translate3d(var(--drift),110vh,0) rotate(540deg);opacity:.15}}@media(max-width:720px){.hero{background-position:54% center}.section{padding-top:68px;padding-bottom:68px}.gallery-stage{height:72vh;min-height:500px}.gallery-arrow{width:40px;height:54px}.envelope{height:235px}.letter{height:205px}.wax{width:76px;height:76px}.floating-actions{right:11px;bottom:13px}.float-btn{width:44px;height:44px}.photo-band{background-attachment:scroll}.countdown div{padding:22px 4px}.countdown span{letter-spacing:1px;font-size:9px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.photo-band{background-attachment:scroll}}

/* Ajustes de encuadre para celular */
.hero-portrait{background-position:center 24%}
.photo-band-portrait{background-position:center 28%}
.gallery-stage figure img{touch-action:pan-y;user-select:none;-webkit-user-drag:none;object-position:center center;max-width:100%;max-height:100%}
@media(max-width:720px){.hero-portrait{background-position:center 20%}.photo-band-portrait{background-position:center 24%}.gallery-stage figure{width:94vw;height:88%}.gallery-stage figure img{touch-action:pan-y;user-select:none;-webkit-user-drag:none;object-fit:contain!important;object-position:center center!important;animation:none}.thumbs button{flex-basis:64px;height:82px}}


/* Premium V2: estabilidad táctil y de desplazamiento */
.premium-gallery,.gallery-stage,.thumbs{overflow-anchor:none}
.gallery-stage{touch-action:pan-y;overscroll-behavior-y:auto}
.gallery-stage figure{touch-action:pan-y}
body.lightbox-open{overflow:hidden;touch-action:none}
@media(max-width:720px){
  html,body{scroll-snap-type:none!important}
  .premium-gallery{contain:layout paint}
  .gallery-stage{height:min(72svh,680px);min-height:460px}
  .gallery-stage figure{height:90%}
  .gallery-stage figcaption{padding-inline:12px}
  .gallery-arrow{opacity:.82}
}
