@import url('https://fonts.googleapis.com/css2?family=Pinyon+Script&family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;1,300;1,400;1,500&display=swap');

*{margin:0;padding:0;box-sizing:border-box}
:root{
  --ink:#3a2c2c;
  --ink2:#7a5c5c;
  --verde:#c9a0a0;
  --verde2:#b08080;
  --hoja:#dbb8b8;
  --crema:#fdf6f0;
  --dorado:#b89878;
  --dorado2:#c9a888;
}
html{scroll-behavior:smooth}
body{
  background:radial-gradient(ellipse at center,#f0e8e8 0%,#e8d8d8 100%);
  min-height:100vh;display:flex;justify-content:center;
  padding:0;font-family:'Cormorant Garamond',serif;
}

/* ═══ OVERLAY CARTA ═══ */
#carta-overlay{
  position:fixed;inset:0;z-index:9999;
  background:radial-gradient(ellipse at center,#fdf0ea 0%,#edddd4 100%);
  cursor:pointer;
  opacity:1;
  display:flex;
  align-items:center;
  justify-content:center;
}

/* Wrapper — centrado por flexbox del padre, overflow visible para la carta */
#carta-sobre{
  position:relative;
  width:min(380px,88vw);
  flex-shrink:0;
  overflow:visible;
}

/* ── CUERPO: rectángulo del sobre ── */
#carta-cuerpo{
  position:relative;
  width:100%;
  height:0;padding-bottom:66%; /* ratio sobre real */
  /* Fondo: textura papel + iluminación desde esquina superior izquierda */
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.72' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0.50 0 0 0 0 0.36 0 0 0 0 0.22 0 0 0 0.22 0'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23g)'/%3E%3C/svg%3E"),
    linear-gradient(135deg,#fef8f2 0%,#f5e8de 45%,#e8d0c2 100%);
  background-size:300px 300px, 100% 100%;
  border:1px solid rgba(176,120,90,0.42);
  border-radius:2px;
  box-shadow:
    0 32px 80px rgba(80,40,15,0.38),
    0 10px 28px rgba(100,55,25,0.22),
    0 2px 6px rgba(100,55,25,0.12),
    inset 0 1px 0 rgba(255,240,220,0.60),
    inset 0 -1px 0 rgba(140,90,50,0.10);
  z-index:2;
  overflow:hidden;
}
#carta-cuerpo-svg{
  position:absolute;inset:0;width:100%;height:100%;pointer-events:none;
}
/* Sombra interior sutil en los bordes del sobre */
#carta-cuerpo::after{
  content:'';position:absolute;inset:0;pointer-events:none;
  box-shadow:inset 0 0 30px rgba(140,90,50,0.08);
}

/* ── SOLAPAS LATERALES (triángulos izq/der) ── */
#carta-solapa-izq,
#carta-solapa-der{
  position:absolute;
  top:0;
  width:0;height:0;
  z-index:1;
}
#carta-solapa-izq{
  left:0;
  border-top: solid transparent;
  border-bottom: solid transparent;
  border-left: solid #ecddd2;
  /* tamaño dinámico via CSS custom props, fallback fijo */
  border-top-width:   calc(var(--sobre-h,120px) * 0.5);
  border-bottom-width:calc(var(--sobre-h,120px) * 0.5);
  border-left-width:  calc(var(--sobre-w,280px) * 0.38);
  filter:brightness(0.94);
}
#carta-solapa-der{
  right:0;
  border-top: solid transparent;
  border-bottom: solid transparent;
  border-right: solid #ecddd2;
  border-top-width:   calc(var(--sobre-h,120px) * 0.5);
  border-bottom-width:calc(var(--sobre-h,120px) * 0.5);
  border-right-width: calc(var(--sobre-w,280px) * 0.38);
  filter:brightness(0.92);
}

/* ── SOLAPA INFERIOR (triángulo apunta arriba) ── */
#carta-solapa-inf{
  position:absolute;
  bottom:0;left:0;
  width:0;height:0;
  border-left:  solid transparent;
  border-right: solid transparent;
  border-bottom: solid #e8d5c8;
  border-left-width:  calc(var(--sobre-w,280px) * 0.5);
  border-right-width: calc(var(--sobre-w,280px) * 0.5);
  border-bottom-width:calc(var(--sobre-h,120px) * 0.46);
  z-index:1;
  filter:brightness(0.96);
}

/* ── SOLAPA SUPERIOR ── */
#carta-solapa{
  position:absolute;
  top:0;left:0;
  width:100%;
  height:50%;
  transform-origin:top center;
  transform-style:preserve-3d;
  z-index:3;
  filter:drop-shadow(0 2px 1px rgba(120,70,35,0.18));
}
/* Cara interior visible cuando solapa rota >90° */
.solapa-interior{
  backface-visibility:visible;
  opacity:0;
  transition:opacity 0.1s;
}
.solapa-frontal{
  backface-visibility:visible;
}
/* JS togglea .open en solapa para mostrar interior */
#carta-solapa.open .solapa-interior{ opacity:1; }
#carta-solapa.open .solapa-frontal { opacity:0; }

/* Paralax — perspectiva en el contenedor */
#carta-sobre{
  perspective:800px;
  transform-style:preserve-3d;
}

/* ── LACRE ── */
#carta-sello{
  position:absolute;
  /* Posicionado via JS — ver updateSelloPos() */
  top:0; left:0;
  z-index:10;
  width:64px;height:64px;
  border-radius:50%;
  background:
    radial-gradient(circle at 68% 72%, rgba(60,30,5,0.14) 0%, transparent 55%),
    radial-gradient(circle at 25% 35%, rgba(255,240,140,0.22) 0%, transparent 40%),
    radial-gradient(circle at 32% 28%,#f8e080 0%,#d4a838 40%,#a87c18 75%,#7a5808 100%);
  box-shadow:
    0 6px 20px rgba(100,65,5,0.60),
    0 2px 6px rgba(80,50,5,0.35),
    inset 0 2px 5px rgba(255,235,110,0.50),
    inset 0 -2px 4px rgba(60,35,2,0.25),
    inset 2px 0 3px rgba(255,230,100,0.15),
    inset -2px 0 3px rgba(60,35,2,0.12);
  display:flex;align-items:center;justify-content:center;
  /* Forma ligeramente irregular — cera real no es círculo perfecto */
  border-radius:52% 48% 50% 50% / 50% 50% 52% 48%;
}
#carta-sello::before{
  content:'';position:absolute;inset:5px;
  border-radius:52% 48% 50% 50% / 50% 50% 52% 48%;
  border:1px solid rgba(255,220,60,0.35);
  box-shadow:inset 0 1px 3px rgba(255,235,100,0.20);
}
/* Textura cera — imperfecciones múltiples */
#carta-sello::after{
  content:'';position:absolute;inset:0;
  border-radius:52% 48% 50% 50% / 50% 50% 52% 48%;
  background:
    radial-gradient(circle at 65% 70%, rgba(80,45,5,0.18) 0%, transparent 55%),
    radial-gradient(circle at 20% 80%, rgba(100,60,10,0.10) 0%, transparent 35%),
    radial-gradient(circle at 80% 20%, rgba(255,240,150,0.08) 0%, transparent 30%);
}
#carta-sello span{
  font-family:Georgia,'Times New Roman',serif;
  font-size:16px;font-style:italic;letter-spacing:1px;
  color:rgba(55,28,3,0.92);
  position:relative;z-index:2;line-height:1;
  text-shadow:0 1px 2px rgba(255,220,80,0.30);
}

/* ── CARTA-PAPEL con granulado ── */
#carta-papel{
  position:absolute;
  top:0;
  left:5%; /* (100% - 90%) / 2 */
  width:90%;
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='350' height='350'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.78' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0.44 0 0 0 0 0.28 0 0 0 0 0.16 0 0 0 0.16 0'/%3E%3C/filter%3E%3Crect width='350' height='350' filter='url(%23g)'/%3E%3C/svg%3E"),
    linear-gradient(175deg,#fdfaf6 0%,#f5ece2 100%);
  background-size:350px 350px, 100% 100%;
  border:1px solid rgba(176,120,90,0.24);
  border-bottom:none;
  border-radius:2px 2px 0 0;
  padding:36px 28px 32px;
  text-align:center;
  z-index:1;
  opacity:0;
  box-shadow:0 -4px 20px rgba(100,55,25,0.10);
}
#carta-papel-inner{opacity:0;}

/* ══ TEXTO CARTA ══ */
#carta-eyebrow{
  font-family:'Cormorant Garamond',serif;
  font-size:12px;letter-spacing:4px;text-transform:uppercase;
  color:rgba(150,110,80,0.60);margin-bottom:16px;
}
#carta-divider{
  width:44px;height:1px;margin:0 auto 20px;
  background:linear-gradient(to right,transparent,rgba(192,150,120,0.55),transparent);
}
#carta-texto{
  font-family:'Cormorant Garamond',serif;
  font-style:italic;font-size:19px;
  color:#3a2c2c;line-height:1.90;margin-bottom:22px;
}
#carta-cta{
  font-family:'Cormorant Garamond',serif;
  font-size:13px;letter-spacing:2.5px;
  color:rgba(150,110,80,0.72);
  animation:ctaPulse 2s ease-in-out infinite;
}
@keyframes ctaPulse{0%,100%{opacity:0.40;}50%{opacity:1;}}

/* ═══ PAPER ═══ */
.wrap{
  width:100%;max-width:430px;background:var(--crema);
  position:relative;overflow:hidden;
  box-shadow:0 18px 80px rgba(40,60,20,0.22),0 4px 20px rgba(40,60,20,0.10);
  opacity:0;pointer-events:none;transition:opacity 1.0s ease 0.2s;
}
.wrap.revealed{opacity:1;pointer-events:auto;}
#grain-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:3;mix-blend-mode:multiply;opacity:0.55;}
.wrap::before{content:'';position:absolute;inset:0;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='350' height='350'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0.28 0 0 0 0 0.38 0 0 0 0 0.18 0 0 0 0.18 0'/%3E%3C/filter%3E%3Crect width='350' height='350' filter='url(%23g)'/%3E%3C/svg%3E");
  background-size:350px 350px;pointer-events:none;z-index:4;mix-blend-mode:multiply;}

/* Manchas de acuarela verde */
.wc-blob{position:absolute;pointer-events:none;z-index:1;border-radius:62% 38% 55% 45%/48% 58% 42% 52%;}
.wb1{width:340px;height:250px;top:-40px;right:-90px;background:radial-gradient(ellipse,rgba(106,143,94,0.18) 0%,rgba(106,143,94,0.08) 45%,transparent 70%);transform:rotate(16deg);}
.wb2{width:290px;height:210px;top:300px;left:-95px;background:radial-gradient(ellipse,rgba(74,103,65,0.16) 0%,rgba(74,103,65,0.06) 45%,transparent 70%);transform:rotate(-22deg);}
.wb3{width:310px;height:230px;top:700px;right:-75px;background:radial-gradient(ellipse,rgba(138,171,122,0.15) 0%,transparent 65%);transform:rotate(9deg);}
.wb4{width:290px;height:220px;top:1080px;left:-85px;background:radial-gradient(ellipse,rgba(106,143,94,0.14) 0%,transparent 65%);transform:rotate(-14deg);}
.wb5{width:330px;height:240px;top:1540px;right:-95px;background:radial-gradient(ellipse,rgba(74,103,65,0.13) 0%,transparent 65%);transform:rotate(20deg);}
.wb6{width:310px;height:230px;top:2050px;left:-75px;background:radial-gradient(ellipse,rgba(138,171,122,0.13) 0%,transparent 65%);transform:rotate(-9deg);}
.wb7{width:360px;height:250px;top:2500px;right:-85px;background:radial-gradient(ellipse,rgba(106,143,94,0.12) 0%,transparent 65%);transform:rotate(15deg);}

.content{position:relative;z-index:2;}

/* ═══ HERO ═══ */
.hero{padding:0;min-height:573px;position:relative;text-align:center;overflow:visible;}
.hero-photo{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:contain;object-position:center top;
  -webkit-mask-image:linear-gradient(to bottom, transparent 0%, black 18%, black 72%, transparent 100%),
                    linear-gradient(to right,  transparent 0%, black 12%, black 88%, transparent 100%);
  -webkit-mask-composite:destination-in;
  mask-image:linear-gradient(to bottom, transparent 0%, black 18%, black 72%, transparent 100%),
             linear-gradient(to right,  transparent 0%, black 12%, black 88%, transparent 100%);
  mask-composite:intersect;
  opacity:0.42;
  mix-blend-mode:multiply;
  z-index:1;
  pointer-events:none;
}
.butterfly-wrap{position:relative;z-index:4;}
.hero-names{position:absolute;bottom:12%;left:0;right:0;z-index:4;text-align:center;}
.name-line{
  font-family:'Pinyon Script',cursive;font-size:58px;line-height:1.25;
  color:var(--ink);display:block;overflow:hidden;white-space:nowrap;padding-bottom:8px;
}
.name-amp{
  font-family:'Cormorant Garamond',serif;font-size:22px;font-style:italic;
  color:var(--verde2);display:block;margin:2px 50px;overflow:hidden;opacity:0;
  letter-spacing:3px;
}
.hero-date{
  font-family:'Cormorant Garamond',serif;font-size:14px;
  color:var(--verde2);letter-spacing:3px;margin-top:12px;opacity:0;
  text-transform:uppercase;
}

@keyframes reveal{from{width:0}to{width:100%}}
@keyframes fadein{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
.name1{animation:reveal 1.1s steps(22,end) 0.4s forwards;width:0;}
.name-amp{animation:fadein 0.5s ease 1.6s forwards;}
.name2{animation:reveal 1.1s steps(22,end) 2.2s forwards;width:0;}
.hero-date{animation:fadein 0.6s ease 3.4s forwards;}

/* Mariposa */
.butterfly-wrap{position:absolute;top:20px;right:18px;width:88px;z-index:5;opacity:0;}
@keyframes butterflyFloat{
  0%{transform:translate(120px,-20px) rotate(-8deg);opacity:0;}
  15%{opacity:1;}
  35%{transform:translate(0px,0px) rotate(4deg);opacity:1;}
  55%{transform:translate(0px,0px) rotate(-2deg);opacity:1;}
  70%{transform:translate(0px,0px) rotate(2deg);opacity:1;}
  100%{transform:translate(0px,0px) rotate(0deg);opacity:1;}
}
@keyframes butterflyRest{
  0%,100%{transform:translateY(0px) rotate(-1deg);}
  50%{transform:translateY(-4px) rotate(1deg);}
}
@keyframes wingFlapL{
  0%,100%{transform:rotateY(0deg);}
  50%{transform:rotateY(65deg);}
}
@keyframes wingFlapR{
  0%,100%{transform:rotateY(0deg);}
  50%{transform:rotateY(-65deg);}
}
.butterfly-wrap{animation:butterflyFloat 5s ease-in-out 0.8s forwards, butterflyRest 3s ease-in-out 5.8s infinite;}
.butterfly-wrap svg{transform-style:preserve-3d;}
.bfly-wing-l{animation:wingFlapL 0.5s ease-in-out infinite;transform-origin:right center;transform-style:preserve-3d;}
.bfly-wing-r{animation:wingFlapR 0.5s ease-in-out infinite;transform-origin:left center;transform-style:preserve-3d;}

/* ═══ DIVISOR BOTÁNICO ═══ */
.leaf-divider{display:block;width:100%;text-align:center;margin:6px 0;}
.leaf-divider svg{opacity:0.55;}

/* ═══ SECTIONS ═══ */
.nos-casamos{padding:18px 36px 8px;text-align:center;position:relative;}
.venue{text-align:center;padding:6px 36px 22px;position:relative;}
.programa{padding:18px 10px 18px 36px;position:relative;text-align:center;}
.faltan{text-align:center;padding:14px 36px 18px;position:relative;}
.obsequios{text-align:center;padding:6px 36px 18px;}
.confirma{text-align:center;padding:6px 48px 22px;position:relative;}
.autobuses{text-align:center;padding:24px 36px 18px;}
.autobuses-img{width:100%;max-width:400px;display:block;margin:0 auto 14px;mix-blend-mode:multiply;opacity:0.95;}
.autobuses-grid{display:flex;flex-direction:column;gap:8px;margin:16px 0 0;}
.autobus-card{background:rgba(154,124,58,0.07);border:1px solid rgba(154,124,58,0.20);border-radius:12px;padding:16px 20px;text-align:left;}
.autobus-linea{font-family:'Cormorant Garamond',serif;font-size:15px;font-weight:600;color:var(--ink);margin:0 0 8px;}
.autobus-dato{font-family:'Cormorant Garamond',serif;font-size:14px;color:var(--ink2);margin:0 0 4px;}
.autobus-dato span{opacity:.65;font-size:.88em;}
.autobus-plazas{margin-top:8px;font-family:'Cormorant Garamond',serif;font-size:13px;color:var(--dorado);font-style:italic;margin-bottom:0;}
.garden-footer{position:relative;padding:0;min-height:200px;text-align:center;}

.script-title{
  font-family:'Pinyon Script',cursive;font-size:38px;
  color:var(--ink);display:block;margin-bottom:10px;
}
.script-title--sm{font-size:30px;}
.script-title--xs{font-size:28px;}
.italic-text{
  font-family:'Cormorant Garamond',serif;font-style:italic;
  font-size:15px;color:var(--ink2);line-height:1.90;
}
.datetime-text{
  font-family:'Cormorant Garamond',serif;font-size:13px;
  letter-spacing:2.5px;text-transform:uppercase;
  color:var(--ink);line-height:2;margin:12px 0 8px;
}
.venue-name{
  font-family:'Cormorant Garamond',serif;font-size:13px;
  letter-spacing:3px;text-transform:uppercase;
  color:var(--ink);line-height:2;
}
.pill-btn{
  display:inline-block;margin-top:12px;padding:7px 22px;
  border:1px solid rgba(74,103,65,0.45);border-radius:20px;
  background:rgba(106,143,94,0.12);
  font-family:'Cormorant Garamond',serif;font-size:14px;
  color:var(--verde);cursor:pointer;text-decoration:none;
  transition:background 0.2s;
}
.pill-btn:hover{background:rgba(106,143,94,0.25);}

/* ═══ TIMELINE CON PÉTALOS ═══ */
.tl-map{position:relative;width:100%;min-height:430px;padding-left:38px;}
.path-svg{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;overflow:visible;z-index:2;}
#map-fp-track{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1;}
.fp{opacity:0;transition:opacity 0.6s ease;will-change:opacity;}
.tl-item{position:absolute;display:flex;align-items:center;z-index:3;}
.tl-icon-w{width:38px;height:38px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.tl-label{font-family:'Cormorant Garamond',serif;font-size:14px;color:var(--ink2);line-height:1.3;white-space:nowrap;font-style:italic;}
.tl-time{font-family:'Cormorant Garamond',serif;font-size:12px;color:var(--dorado);display:block;letter-spacing:1px;font-style:normal;}

.tl0{top:8px;left:58%;}
.tl1{top:100px;left:60%;}
.tl2{top:145px;left:-7%;}
.tl3{top:278px;left:60%;}
.tl4{top:372px;left:2%;}

/* ═══ COUNTDOWN ═══ */
.faltan-title{
  font-family:'Pinyon Script',cursive;font-size:42px;
  color:var(--ink);display:inline-block;margin-right:6px;
}
.faltan-header{display:flex;align-items:center;justify-content:center;gap:6px;margin-bottom:4px;}
/* Mariposa pequeña countdown */
.butterfly-small{display:inline-block;vertical-align:middle;position:relative;top:-4px;width:44px;}
@keyframes bflySmall{0%,100%{transform:translateY(0) rotate(-3deg);}50%{transform:translateY(-7px) rotate(3deg);}}
.butterfly-small{animation:bflySmall 2.2s ease-in-out infinite;}
.bfly-sm-l{animation:wingFlapL 0.55s ease-in-out infinite;transform-origin:right center;}
.bfly-sm-r{animation:wingFlapR 0.55s ease-in-out infinite;transform-origin:left center;}

.cd-box{
  border:1px solid rgba(74,103,65,0.35);border-radius:10px;
  display:inline-flex;align-items:stretch;
  padding:10px 12px 8px;margin-top:10px;
  background:rgba(235,242,228,0.55);gap:0;
}
.cd-unit{text-align:center;padding:0 8px;min-width:52px;}
.cd-unit .cd-num{
  display:block;font-family:'Cormorant Garamond',serif;
  font-size:34px;font-weight:400;color:var(--ink);
  letter-spacing:1px;line-height:1;
  font-variant-numeric:tabular-nums;white-space:nowrap;
}
.cd-unit.secs-unit .cd-num{color:var(--dorado);}
.cd-unit .cd-lbl{
  display:block;font-family:'Cormorant Garamond',serif;
  font-size:9px;letter-spacing:1.2px;text-transform:uppercase;
  color:var(--verde2);margin-top:4px;
}
.cd-sep{
  font-family:'Cormorant Garamond',serif;font-size:32px;font-weight:300;
  color:rgba(74,103,65,0.45);align-self:flex-start;padding-top:2px;
}

.te-esperamos{
  font-family:'Pinyon Script',cursive;font-size:40px;
  color:var(--ink);position:relative;z-index:2;
  padding:18px 0 10px;
}
.reveal{opacity:0;transform:translateY(22px);transition:opacity 0.75s ease,transform 0.75s ease;}
.reveal.visible{opacity:1;transform:none;}
.section-gap{height:28px;}
.end-line{margin-bottom:0;}

/* Títulos de sección */
.section-ornament{display:block;text-align:center;margin:0 auto 4px;opacity:0.5;}

/* Caja IBAN */
.iban-box{
  font-family:'Cormorant Garamond',serif;font-size:14px;
  letter-spacing:1.5px;color:var(--ink);
  margin-top:10px;padding:8px 18px;
  border:1px solid rgba(74,103,65,0.32);border-radius:10px;
  display:inline-block;background:rgba(220,232,210,0.38);
}
/* Imagen obsequios */
.obsequios-img{width:100%;max-width:320px;display:block;margin:0 auto 14px;}
/* Imagen footer */
.end-garden-img{width:100%;height:auto;display:block;margin:0 auto;opacity:0.95;object-fit:cover;}

@media(max-width:430px){
  .wrap{max-width:100%;}
  .name-line{font-size:48px;}
}
a[x-apple-data-detectors]{
  color:inherit!important;text-decoration:none!important;
  font-size:inherit!important;font-family:inherit!important;
  font-weight:inherit!important;line-height:inherit!important;
  pointer-events:none;
}

/* ═══ RSVP MODAL ═══ */
.rsvp-overlay{
  position:fixed;inset:0;z-index:1000;
  background:rgba(20,30,15,0.60);
  backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);
  display:flex;align-items:center;justify-content:center;
  padding:20px;
  opacity:0;pointer-events:none;
  transition:opacity 0.3s ease;
}
.rsvp-overlay--open{opacity:1;pointer-events:all;}
.rsvp-modal{
  position:relative;
  width:100%;max-width:390px;max-height:90vh;overflow-y:auto;
  background:var(--crema);
  border-radius:4px;
  box-shadow:0 24px 80px rgba(0,0,0,0.30),0 4px 20px rgba(0,0,0,0.14);
  padding:36px 28px 28px;
  transform:translateY(18px);
  transition:transform 0.3s ease;
}
.rsvp-overlay--open .rsvp-modal{transform:translateY(0);}
.rsvp-modal::before{
  content:'';position:absolute;inset:0;border-radius:4px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='350' height='350'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.80' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0.27 0 0 0 0 0.35 0 0 0 0 0.19 0 0 0 0.18 0'/%3E%3C/filter%3E%3Crect width='350' height='350' filter='url(%23g)'/%3E%3C/svg%3E");
  background-size:350px 350px;pointer-events:none;z-index:0;mix-blend-mode:multiply;
}
.rsvp-modal > *{position:relative;z-index:1;}
.rsvp-close{
  position:absolute;top:14px;right:16px;z-index:2;
  background:none;border:none;cursor:pointer;
  font-family:'Cormorant Garamond',serif;font-size:18px;
  color:var(--ink2);opacity:0.6;line-height:1;
  transition:opacity 0.2s;padding:4px;
}
.rsvp-close:hover{opacity:1;}
.rsvp-modal .script-title{text-align:center;display:block;margin-bottom:18px;}
.rsvp-form{text-align:left;}
.rsvp-field{margin-bottom:14px;}
.rsvp-label{
  display:block;
  font-family:'Cormorant Garamond',serif;
  font-size:11px;letter-spacing:2px;text-transform:uppercase;
  color:var(--ink2);margin-bottom:6px;
}
.rsvp-input{
  width:100%;
  font-family:'Cormorant Garamond',serif;font-size:15px;
  color:var(--ink);background:rgba(245,240,232,0.70);
  border:1px solid rgba(44,58,30,0.25);border-radius:8px;
  padding:9px 14px;outline:none;
  transition:border-color 0.2s,background 0.2s;
  -webkit-appearance:none;appearance:none;
}
.rsvp-input:focus{border-color:rgba(44,58,30,0.55);background:rgba(245,240,232,0.95);}
.rsvp-select{cursor:pointer;}
.rsvp-radio-group{display:flex;gap:12px;flex-wrap:wrap;}
.rsvp-radio{
  display:flex;align-items:center;gap:7px;cursor:pointer;
  font-family:'Cormorant Garamond',serif;font-style:italic;
  font-size:15px;color:var(--ink2);
}
.rsvp-radio input[type="radio"]{accent-color:var(--verde2);width:16px;height:16px;cursor:pointer;flex-shrink:0;}
.rsvp-submit{
  margin-top:6px;width:100%;
  font-family:'Cormorant Garamond',serif;font-size:15px;
  color:var(--ink);letter-spacing:1px;
  background:rgba(107,143,94,0.15);
  border:1px solid rgba(44,58,30,0.35);border-radius:20px;
  padding:10px 22px;cursor:pointer;transition:background 0.2s;
}
.rsvp-submit:hover:not(:disabled){background:rgba(107,143,94,0.28);}
.rsvp-submit:disabled{opacity:0.55;cursor:not-allowed;}
.rsvp-msg{
  margin-top:10px;font-family:'Cormorant Garamond',serif;
  font-style:italic;font-size:14px;text-align:center;min-height:20px;
}
.rsvp-msg--ok{color:#4a6820;}
.rsvp-msg--error{color:#8c2020;}

/* ═══ FIRMA VELUM STUDIO ═══ */
#velum-badge{text-align:center;padding:14px 0 18px;}
#velum-badge a{
  font-family:'Cormorant Garamond',serif;
  font-style:italic;
  font-size:12px;
  color:var(--dorado,#a08060);
  text-decoration:none;
  letter-spacing:0.5px;
  opacity:0.7;
  transition:opacity 0.2s;
}
#velum-badge a:hover{opacity:1;}

::-webkit-scrollbar{width:3px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:rgba(44,36,23,0.20);border-radius:2px}::-webkit-scrollbar-thumb:hover{background:rgba(44,36,23,0.35)}*{scrollbar-width:thin;scrollbar-color:rgba(44,36,23,0.20) transparent}
