*{margin:0;padding:0;box-sizing:border-box}
:root{
  --ink:#1c0f02;
  --ink2:#3a2208;
  --gold:#8b6914;
  --gold2:#c8a030;
  --parch:#f5e8c0;
  --parch2:#ede0a8;
}
html{scroll-behavior:smooth}
body{
  background:radial-gradient(ellipse at center,#2a1e08 0%,#140e04 100%);
  min-height:100vh;display:flex;justify-content:center;
  padding:20px 0 20px;font-family:'Cormorant Garamond',serif;
}

/* ═══ PERGAMINO ═══ */
.wrap{
  width:100%;max-width:430px;
  background:var(--parch);
  position:relative;overflow:hidden;
  box-shadow:0 18px 80px rgba(0,0,0,0.55),0 4px 20px rgba(0,0,0,0.25);
}

/* Textura de pergamino — fibras horizontales */
.wrap::before{
  content:'';position:absolute;inset:0;pointer-events:none;z-index:4;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='p'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.50 0.04' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0.42 0 0 0 0 0.28 0 0 0 0 0.06 0 0 0 0.28 0'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23p)'/%3E%3C/svg%3E");
  background-size:300px 300px;mix-blend-mode:multiply;opacity:0.7;
}
/* Manchas de envejecimiento */
.wrap::after{
  content:'';position:absolute;inset:0;pointer-events:none;z-index:4;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='400'%3E%3Cfilter id='age'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.018' numOctaves='5' seed='12' result='n'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0.38 0 0 0 0 0.22 0 0 0 0 0.04 0 0 0 0.22 0'/%3E%3C/filter%3E%3Crect width='400' height='400' filter='url(%23age)'/%3E%3C/svg%3E");
  background-size:400px 400px;mix-blend-mode:multiply;opacity:0.5;
}

#grain-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:3;mix-blend-mode:multiply;opacity:0.55;}

/* Manchas acuarela en bordes — tinta sepia */
.wc-blob{position:absolute;pointer-events:none;z-index:1;border-radius:62% 38% 55% 45%/48% 58% 42% 52%;}
.wb1{width:320px;height:240px;top:-30px;right:-80px;background:radial-gradient(ellipse,rgba(100,65,10,0.18) 0%,rgba(80,50,8,0.08) 45%,transparent 70%);transform:rotate(16deg);}
.wb2{width:280px;height:200px;top:260px;left:-80px;background:radial-gradient(ellipse,rgba(90,55,8,0.16) 0%,rgba(70,42,6,0.06) 45%,transparent 70%);transform:rotate(-22deg);}
.wb3{width:300px;height:220px;top:650px;right:-65px;background:radial-gradient(ellipse,rgba(100,65,10,0.15) 0%,transparent 65%);transform:rotate(9deg);}
.wb4{width:280px;height:210px;top:1040px;left:-70px;background:radial-gradient(ellipse,rgba(90,55,8,0.14) 0%,transparent 65%);transform:rotate(-14deg);}
.wb5{width:310px;height:230px;top:1500px;right:-80px;background:radial-gradient(ellipse,rgba(100,65,10,0.13) 0%,transparent 65%);transform:rotate(20deg);}
.wb6{width:295px;height:220px;top:2000px;left:-60px;background:radial-gradient(ellipse,rgba(90,55,8,0.12) 0%,transparent 65%);transform:rotate(-9deg);}
.wb7{width:330px;height:240px;top:2460px;right:-70px;background:radial-gradient(ellipse,rgba(100,65,10,0.13) 0%,transparent 65%);transform:rotate(15deg);}

.cloud-side{position:absolute;pointer-events:none;z-index:1;}
.content{position:relative;z-index:5;}

/* ═══ HERO ═══ */
.hero{padding:52px 24px 28px;min-height:300px;position:relative;}
.hero-names{position:relative;z-index:4;text-align:center;}

/* Contenedor de línea — overflow visible para que salgan las llamas */
.name-line{
  font-family:'Cinzel Decorative',serif;font-size:52px;line-height:1.30;
  color:var(--ink);display:block;padding-bottom:8px;
  position:relative;overflow:visible;
  /* bloque para centrar spans inline */
  white-space:nowrap;
}
.name-amp{
  font-family:'Cormorant Garamond',serif;font-size:28px;
  color:var(--gold);display:block;margin:2px 0 4px;opacity:0;
}
.hero-date{
  font-family:'Cormorant Garamond',serif;font-size:18px;
  color:var(--ink2);letter-spacing:4px;margin-top:8px;opacity:0;
  display:block;
}

@keyframes fadein{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
.name-amp{ animation:fadein 0.5s ease var(--amp-delay,2.0s) forwards; }
.hero-date{ opacity:0; }

/* ── Efecto tinta — cada letra aparece como recién escrita con pluma ── */
.ink-char{
  display:inline-block;
  opacity:0;
  color:var(--ink);
}
@keyframes ink-appear{
  0%  { opacity:0;  filter:blur(1.5px) brightness(0.4); color:#0a0600; transform:scale(1.08); }
  30% { opacity:1;  filter:blur(0.4px) brightness(0.6); color:#0f0800; transform:scale(1.03); }
  70% { opacity:1;  filter:blur(0px)   brightness(0.85); transform:scale(1.01); }
  100%{ opacity:1;  filter:blur(0px)   brightness(1);   color:var(--ink); transform:scale(1); }
}

/* ═══ 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;}
.castle-footer{position:relative;padding:20px 36px 0;min-height:180px;text-align:center;}

/* Separador de sección */
.section-rule{
  display:block;width:160px;margin:14px auto 0;
  border:none;border-top:1px solid rgba(100,65,10,0.30);
  position:relative;
}
.section-rule::before{
  content:'✦';position:absolute;top:-8px;left:50%;transform:translateX(-50%);
  font-size:9px;color:rgba(139,105,20,0.55);background:var(--parch);padding:0 5px;
}

.script-title{
  font-family:'Cinzel Decorative',serif;font-size:26px;
  color:var(--ink);display:block;margin-bottom:10px;
}
.italic-text{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:15px;color:var(--ink2);line-height:1.9;}
.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:8px 26px;
  border:1px solid rgba(100,65,10,0.45);border-radius:20px;
  background:rgba(139,105,20,0.10);
  font-family:'Cormorant Garamond',serif;font-size:14px;color:var(--gold);
  cursor:pointer;text-decoration:none;transition:background 0.2s;
}
.pill-btn:hover{background:rgba(139,105,20,0.20);}

/* ═══ TIMELINE ═══ */
.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:'Nothing You Could Do',cursive;font-size:14px;color:var(--ink2);line-height:1.3;white-space:nowrap;}
.tl-time{font-family:'Nothing You Could Do',cursive;font-size:12px;color:var(--gold);display:block;}
.tl0{top:8px;left:58%;}
.tl1{top:100px;left:60%;}
.tl2{top:155px;left:-7%;}
.tl3{top:278px;left:60%;}
.tl4{top:372px;left:2%;}

/* ═══ COUNTDOWN ═══ */
.faltan-title{font-family:'Cinzel Decorative',serif;font-size:26px;color:var(--ink);display:inline-block;margin-right:10px;}
@keyframes owlProgBob{0%,100%{transform:translateY(0) rotate(-4deg);}50%{transform:translateY(-10px) rotate(2deg);}}
@keyframes flapL{0%{transform:rotate(0deg) scaleY(1);}30%{transform:rotate(-38deg) scaleY(0.62);}60%{transform:rotate(-58deg) scaleY(0.42);}80%{transform:rotate(-22deg) scaleY(0.76);}100%{transform:rotate(0deg) scaleY(1);}}
@keyframes flapR{0%{transform:rotate(0deg) scaleY(1);}30%{transform:rotate(38deg) scaleY(0.62);}60%{transform:rotate(58deg) scaleY(0.42);}80%{transform:rotate(22deg) scaleY(0.76);}100%{transform:rotate(0deg) scaleY(1);}}
@keyframes cauldronBubble{0%,100%{transform:translateY(0) scale(1);}40%{transform:translateY(-3px) scale(1.02);}70%{transform:translateY(-1px) scale(0.99);}}
.cauldron-wrap{display:inline-block;vertical-align:middle;position:relative;top:-4px;width:48px;animation:cauldronBubble 2.2s ease-in-out infinite;}
.faltan-header{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:4px;}
.cd-box{
  border:1px solid rgba(100,65,10,0.35);border-radius:10px;
  display:inline-flex;align-items:stretch;
  padding:12px 14px 10px;margin-top:10px;
  background:rgba(245,232,192,0.55);
  gap:0;
}
.cd-unit{text-align:center;padding:0 10px;min-width:54px;}
.cd-unit .cd-num{
  display:block;font-family:'Cormorant Garamond',serif;
  font-size:36px;font-weight:500;
  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(--gold);}
.cd-unit .cd-lbl{
  display:block;font-family:'Cormorant Garamond',serif;
  font-size:9px;letter-spacing:1.5px;text-transform:uppercase;
  color:var(--gold);margin-top:5px;
}
.cd-sep{
  font-family:'Cormorant Garamond',serif;font-size:34px;font-weight:500;
  color:rgba(100,65,10,0.40);align-self:flex-start;padding-top:2px;
}

.te-esperamos{font-family:'Cinzel Decorative',serif;font-size:26px;color:var(--ink);position:relative;z-index:2;}
.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;}
.script-title--sm{font-size:22px;}
.script-title--xs{font-size:20px;}

/* IBAN */
.iban-box{
  font-family:'Cormorant Garamond',serif;font-size:14px;letter-spacing:1.5px;
  color:var(--ink);margin-top:10px;padding:9px 20px;
  border:1px solid rgba(100,65,10,0.30);border-radius:10px;
  display:inline-block;background:rgba(237,224,168,0.50);
}

/* Imágenes */
.obsequios-img{width:100%;max-width:260px;display:block;margin:0 auto 14px;mix-blend-mode:multiply;}
.end-castle-img{width:100%;height:auto;display:block;margin:0 auto;object-fit:contain;mix-blend-mode:multiply;}

@media(max-width:430px){.wrap{max-width:100%;}.name-line{font-size:30px;}}

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,10,2,0.65);
  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(--parch);
  border-radius:4px;
  box-shadow:0 24px 80px rgba(0,0,0,0.40),0 4px 20px rgba(0,0,0,0.20);
  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='300' height='300'%3E%3Cfilter id='p'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.50 0.04' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0.42 0 0 0 0 0.28 0 0 0 0 0.06 0 0 0 0.22 0'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23p)'/%3E%3C/svg%3E");
  background-size:300px 300px;pointer-events:none;z-index:0;mix-blend-mode:multiply;opacity:0.6;
}
.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(--gold);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(--gold);margin-bottom:6px;
}
.rsvp-input{
  width:100%;font-family:'Cormorant Garamond',serif;font-size:15px;
  color:var(--ink);background:rgba(237,224,168,0.45);
  border:1px solid rgba(100,65,10,0.28);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(100,65,10,0.58);background:rgba(237,224,168,0.70);}
.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(--gold);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(--gold);letter-spacing:1px;
  background:rgba(139,105,20,0.12);
  border:1px solid rgba(100,65,10,0.38);border-radius:20px;
  padding:10px 22px;cursor:pointer;transition:background 0.2s;
}
.rsvp-submit:hover:not(:disabled){background:rgba(139,105,20,0.24);}
.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:#3a6820;}
.rsvp-msg--error{color:#8c2020;}

/* ═══ FIRMA ═══ */
#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(--gold);text-decoration:none;letter-spacing:0.5px;opacity:0.7;transition:opacity 0.2s;
}
#velum-badge a:hover{opacity:1;}

/* ═══ AUTOBUSES ═══ */
.autobuses{text-align:center;padding:24px 36px 18px;}
.autobuses-img{width:auto;max-width:220px;max-height:200px;display:block;margin:0 auto 14px;mix-blend-mode:multiply;opacity:0.85;}
.autobuses-grid{display:flex;flex-direction:column;gap:8px;margin:16px 0 0;}
.autobus-card{background:rgba(237,224,168,0.35);border:1px solid rgba(100,65,10,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(--gold);font-style:italic;margin-bottom:0;}
