:root{
  --paper:#f7f3f2;
  --paper-2:#fbf8f6;
  --ink:#34282f;
  --muted:#78656f;
  --accent:#8f6673;
  --gold:#c4a56b;
  --gold-light:#ecd7a3;
  --line:#eadbdd;
  --dark:#23211f;
  --shadow:0 18px 40px rgba(72,44,55,.05);
  --serif:'Cormorant Garamond', Georgia, serif;
  --script:'Great Vibes', cursive;
  --sans:'DM Sans', system-ui, sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);overflow-x:hidden;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body.locked{overflow:hidden}
a{color:inherit}img{display:block;max-width:100%}button,input,select{font:inherit}button{cursor:pointer}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--gold);outline-offset:4px}
[hidden]{display:none!important}
.signature{font-family:var(--script);font-weight:400;line-height:1.03}
.micro{font-size:11px;font-weight:700;letter-spacing:.34em;text-transform:uppercase;line-height:1.6}
.micro.light{color:#fff7e9}.micro.accent{color:var(--accent)}.micro.gold-light{color:var(--gold-light)}
.display-title{margin:12px 0 18px;font-family:var(--serif);font-weight:500;font-size:clamp(50px,5.2vw,86px);line-height:.94;letter-spacing:-.03em;text-transform:uppercase}.display-title.centered{text-align:center}
.section-light{background:var(--paper)}.section-soft{background:var(--paper-2)}.section-dark{background:var(--dark);color:#f4ede4}
.section-wrap{width:min(1180px,calc(100% - 48px));margin:0 auto}.section-wrap.narrow{width:min(980px,calc(100% - 48px))}
.pill{display:inline-flex;align-items:center;justify-content:center;gap:14px;min-height:49px;padding:0 28px;border:1px solid transparent;border-radius:999px;text-decoration:none;letter-spacing:.14em;text-transform:uppercase;font-size:10px;font-weight:700;transition:transform .25s ease,background .25s ease,box-shadow .25s ease}.pill:hover:not(:disabled){transform:translateY(-2px)}
.pill-white{background:#fff;color:#55473b;box-shadow:0 14px 45px rgba(0,0,0,.18)}
.pill-gold{background:var(--gold);color:#fff;box-shadow:0 12px 30px rgba(103,74,32,.13)}
.pill-gold:disabled{opacity:.6;cursor:not-allowed}

.cover,.hero{position:relative;min-height:100svh;height:100svh;overflow:hidden;color:#fff}.cover{position:fixed;inset:0;z-index:100;height:100dvh;transition:opacity .9s ease,visibility .9s ease}.cover.is-gone{opacity:0;visibility:hidden;pointer-events:none}
.hero-bg{position:absolute;inset:0;overflow:hidden}.hero-backdrop{position:absolute;inset:-35px;background:url('./assets/eliana-principal.jpg') center 32%/cover no-repeat;filter:blur(34px) brightness(.65) saturate(.68);transform:scale(1.08)}
.hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center 28%;mask-image:linear-gradient(90deg,transparent 0%,black 15%,black 85%,transparent 100%);-webkit-mask-image:linear-gradient(90deg,transparent 0%,black 15%,black 85%,transparent 100%);animation:sceneBreath 17s ease-in-out infinite alternate}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(17,15,13,.22) 0%,rgba(17,15,13,.08) 28%,rgba(17,15,13,.14) 44%,rgba(14,12,11,.58) 78%,rgba(12,10,9,.78) 100%),linear-gradient(90deg,rgba(17,15,13,.15),transparent 35%,transparent 65%,rgba(17,15,13,.15))}
.sparkle-layer{position:absolute;inset:0;pointer-events:none}.sparkle{position:absolute;width:12px;height:12px;transform:rotate(45deg);animation:twinkle 3.4s ease-in-out infinite}.sparkle::before,.sparkle::after{content:'';position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(255,241,205,.98) 0%,rgba(255,241,205,.35) 42%,transparent 72%)}.sparkle::before{width:2px;height:18px}.sparkle::after{width:18px;height:2px}.s1{top:16%;left:18%;animation-delay:.1s}.s2{top:24%;right:20%;animation-delay:1s}.s3{top:39%;right:13%;animation-delay:1.7s}.s4{bottom:22%;left:19%;animation-delay:2.5s}.s5{bottom:18%;right:25%;animation-delay:1.9s}
.cover-inner,.hero-copy{position:absolute;left:0;right:0;z-index:2;padding:0 20px;text-align:center;text-shadow:0 2px 24px rgba(0,0,0,.34)}.cover-inner{bottom:clamp(54px,9svh,112px)}.hero-copy{bottom:clamp(92px,11svh,130px)}
.cover-inner>*{opacity:0;animation:enterSoft .95s cubic-bezier(.16,1,.3,1) forwards}.cover-inner>*:nth-child(1){animation-delay:.1s}.cover-inner>*:nth-child(2){animation-delay:.22s}.cover-inner>*:nth-child(3){animation-delay:.34s}.cover-inner>*:nth-child(4){animation-delay:.46s}.cover-inner>*:nth-child(5){animation-delay:.58s}
.cover-name,.hero-name{margin:0 auto;display:block;color:#fff;font-size:clamp(98px,11vw,186px);font-family:var(--script);font-weight:400;line-height:.96;letter-spacing:0;overflow:visible;white-space:nowrap}
.cover-line{margin:8px auto 22px;max-width:620px;font-family:var(--serif);font-style:italic;font-size:clamp(19px,2.05vw,27px);line-height:1.25}
.sound-note{margin-top:13px;font-size:10px;letter-spacing:.05em;color:#fffdf2;opacity:.88}
.hero-mark{margin:4px 0 0;color:var(--gold-light);font-size:20px}.hero-subtitle{margin:4px 0 14px;font-family:var(--serif);font-style:italic;font-size:clamp(28px,3.7vw,46px)}.hero-line{display:block;width:128px;height:1px;margin:0 auto 22px;background:rgba(255,241,219,.75)}.hero-date,.hero-place{margin:0 auto 10px;font-weight:600;color:#fff9ed}.hero-date{font-size:14px;letter-spacing:.08em}.hero-place{font-size:11px;letter-spacing:.16em;text-transform:uppercase}
.scroll-prompt{position:absolute;left:0;right:0;bottom:26px;z-index:2;display:flex;flex-direction:column;align-items:center;gap:6px;color:#f3e8d2;text-decoration:none;font-size:9px;font-weight:600;letter-spacing:.24em}.scroll-prompt b{font-size:17px;font-weight:400;animation:arrowBounce 1.8s ease-in-out infinite}
.sound-button{position:fixed;z-index:80;top:20px;right:clamp(16px,4vw,48px);display:flex;align-items:center;justify-content:center;width:48px;height:48px;border:1px solid rgba(255,255,255,.42);border-radius:50%;background:rgba(38,35,29,.35);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:#fff;box-shadow:0 4px 25px rgba(0,0,0,.12);opacity:0;transform:translateY(-14px);pointer-events:none;transition:opacity .4s,transform .4s,background .3s}.sound-button.visible{opacity:1;transform:none;pointer-events:auto}.sound-button:hover{background:rgba(35,35,28,.65)}.sound-glyph{font-size:22px}

[data-enter]{opacity:0;transform:translateY(22px);filter:blur(5px);transition:opacity .9s ease,transform .9s cubic-bezier(.17,1,.24,1),filter .9s ease}body.entered [data-enter]{opacity:1;transform:none;filter:none}body.entered [data-enter]:nth-child(2){transition-delay:.08s}body.entered [data-enter]:nth-child(3){transition-delay:.18s}body.entered [data-enter]:nth-child(4){transition-delay:.28s}body.entered [data-enter]:nth-child(5){transition-delay:.38s}body.entered [data-enter]:nth-child(6){transition-delay:.48s}
.reveal{opacity:0;transform:translateY(34px);filter:blur(5px);transition:opacity 1s cubic-bezier(.16,1,.3,1),transform 1s cubic-bezier(.16,1,.3,1),filter 1s cubic-bezier(.16,1,.3,1)}.reveal.visible{opacity:1;transform:none;filter:none}

.story{padding:120px 0 130px}.story-grid{display:grid;grid-template-columns:minmax(320px,440px) minmax(320px,1fr);align-items:center;gap:70px}.story-photo-frame{max-width:440px;overflow:hidden;border-radius:220px 220px 28px 28px;background:#ead8d7;box-shadow:var(--shadow)}.story-photo-frame img{width:100%;height:100%;aspect-ratio:4/5.2;object-fit:cover;object-position:center 25%}.story-copy{max-width:620px}.story-copy .display-title{margin-bottom:18px}.story-star{margin:0 0 24px;color:var(--gold);font-size:18px}.story-text{max-width:620px;margin:0 0 34px;color:#645860;font-family:var(--serif);font-size:clamp(23px,2.3vw,34px);font-style:italic;line-height:1.36}.family-blocks{display:grid;gap:18px;max-width:560px}.family-block{padding:18px 0;border-top:1px solid var(--line)}.family-block:last-child{border-bottom:1px solid var(--line)}.family-label{margin:0 0 8px;color:var(--accent);font-size:10px;font-weight:700;letter-spacing:.28em;text-transform:uppercase}.family-block h3{margin:0;font-family:var(--serif);font-size:clamp(36px,3vw,48px);font-weight:500;line-height:1.02}.story-invite{max-width:620px;margin:30px 0 28px;color:#5d525a;font-family:var(--serif);font-size:clamp(23px,2.5vw,34px);line-height:1.24}.story-signature{margin:18px 0 0;color:#a3834e;font-size:clamp(84px,8vw,130px);line-height:.92}

.verse{padding:110px 0;text-align:center}.verse .narrow{max-width:820px}.verse-star{margin:14px 0 14px;color:var(--gold);font-size:26px}.verse blockquote{margin:0;color:#4d454a;font-family:var(--serif);font-size:clamp(42px,4vw,60px);line-height:1.04}.verse-source{margin:20px 0 0;color:#8e7a56;font-size:12px;font-weight:700;letter-spacing:.18em;text-transform:uppercase}

.count{padding:115px 0 115px;text-align:center}.count-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:46px}.count-card{padding:30px 12px 24px;border:1px solid var(--line);border-radius:26px;background:rgba(255,255,255,.42)}.count-card strong{display:block;margin-bottom:10px;color:var(--accent);font-family:var(--serif);font-size:clamp(52px,6vw,78px);font-weight:600;line-height:.95}.count-card span{display:block;color:#8f7e84;font-size:11px;font-weight:700;letter-spacing:.18em}

.details{padding:20px 0 130px;text-align:center}.details-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;margin-top:42px}.detail-card{padding:42px 32px;border-radius:30px;background:#fff;border:1px solid #eaded0;box-shadow:var(--shadow)}.detail-icon{margin:0 0 12px;color:var(--gold);font-size:22px}.detail-kicker{margin:0 0 18px;color:var(--accent);font-size:11px;font-weight:700;letter-spacing:.28em}.detail-card h3{margin:0 0 18px;font-family:var(--serif);font-size:clamp(34px,2.8vw,48px);font-weight:500;line-height:1.06}.detail-lines{margin:0 0 22px;color:#5d535a;font-family:var(--serif);font-size:clamp(24px,1.8vw,31px);line-height:1.45}.detail-link{display:inline-block;padding-bottom:4px;border-bottom:1px solid currentColor;text-decoration:none;color:var(--accent);font-size:11px;font-weight:700;letter-spacing:.18em}

.gallery{padding:120px 0 132px}.gallery-head{text-align:center}.gallery-note{margin:6px auto 0;color:#8c867a;font-family:var(--serif);font-style:italic;font-size:24px}.gallery-grid{display:grid;grid-template-columns:1.02fr 1fr 1fr;grid-template-rows:300px 300px;gap:18px;margin:56px auto 0}.photo{position:relative;border:0;padding:0;overflow:hidden;background:#d1bca0}.photo img{width:100%;height:100%;object-fit:cover;filter:saturate(.94);transition:transform .9s cubic-bezier(.14,1,.3,1),filter .4s}.photo:hover img{transform:scale(1.05);filter:saturate(1)}.photo::after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,rgba(20,18,14,.42),transparent 42%);pointer-events:none}.photo span{position:absolute;left:21px;bottom:20px;z-index:1;color:#fff;font-size:9px;font-weight:700;letter-spacing:.19em}.photo-tall{grid-column:1;grid-row:1/3}.photo-tall img{object-position:center 28%}.photo-wide{grid-column:2/4;grid-row:1}.photo-wide img{object-position:center 48%}.photo-small-a{grid-column:2;grid-row:2}.photo-small-a img{object-position:center 28%}.photo-small-b{grid-column:3;grid-row:2}.photo-small-b img{object-position:center 26%}

.gifts{padding:120px 0;text-align:center}.light-title{color:#f3e9d9}.gifts-copy{max-width:760px;margin:22px auto 0;color:#e4dac5;font-family:var(--serif);font-size:clamp(26px,2.6vw,36px);font-style:italic;line-height:1.32}

.rsvp{padding:120px 0 140px;text-align:center}.rsvp-copy{max-width:620px;margin:6px auto 34px;color:#797368;font-family:var(--serif);font-size:clamp(24px,2.5vw,32px);font-style:italic;line-height:1.28}.rsvp-fields{display:flex;flex-direction:column;gap:18px;max-width:540px;margin:auto;padding:32px;background:#fff;border:1px solid #eaded0;box-shadow:var(--shadow);text-align:left}.rsvp-fields label{color:#59564e;font-size:11px;font-weight:600;letter-spacing:.05em}.rsvp-fields input,.rsvp-fields select{width:100%;height:48px;margin-top:9px;padding:0 13px;border:1px solid #e2ddcf;background:#faf7f1;color:#5e5e53;font-size:13px}.rsvp-fields button{margin-top:6px}
.footer{min-height:210px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:#20231c;color:#ded6c6}.footer>span{color:#c5a777}.footer .signature{margin:4px 0;color:#e9dec8;font-size:72px}.footer small{color:#aaa895;font-size:9px;letter-spacing:.25em}

.lightbox{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;background:rgba(12,13,11,.97);color:#fff}.lightbox>img{width:auto;height:auto;max-width:calc(100vw - 160px);max-height:88dvh;object-fit:contain}.lightbox button{position:absolute;display:flex;align-items:center;justify-content:center;width:46px;height:46px;border:1px solid rgba(255,255,255,.24);border-radius:50%;background:rgba(255,255,255,.06);color:#fff;font-size:35px;line-height:1}.lightbox-close{right:24px;top:22px}.lightbox-prev{left:25px;top:calc(50% - 23px)}.lightbox-next{right:25px;top:calc(50% - 23px)}.lightbox-count{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);font-size:11px;letter-spacing:.2em}

@keyframes enterSoft{from{opacity:0;transform:translateY(24px);filter:blur(7px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}
@keyframes sceneBreath{from{transform:scale(1.02)}to{transform:scale(1.075)}}
@keyframes twinkle{0%,100%{opacity:.25;transform:rotate(45deg) scale(.8)}50%{opacity:1;transform:rotate(45deg) scale(1.2)}}
@keyframes arrowBounce{50%{transform:translateY(6px)}}

@media (max-width:980px){
  .section-wrap,.section-wrap.narrow{width:min(100% - 36px, 1180px)}
  .story-grid{grid-template-columns:1fr;gap:36px}
  .story-photo-card{display:flex;justify-content:center}
  .story-copy{text-align:center;max-width:760px;margin:auto}.story-text,.story-invite{margin-left:auto;margin-right:auto}.family-blocks{margin:0 auto}
  .details-grid{grid-template-columns:1fr}
}
@media (max-width:720px){
  .cover,.hero{height:100svh;min-height:0}.cover{height:100dvh}
  .hero-backdrop{display:none}.hero-image{object-fit:cover;object-position:center 27%;mask-image:none;-webkit-mask-image:none}.hero-overlay{background:linear-gradient(180deg,rgba(16,18,14,.18) 0%,rgba(17,18,14,.02) 22%,rgba(18,20,14,.10) 38%,rgba(14,16,12,.58) 68%,rgba(12,14,11,.86) 100%)}
  .cover-inner{bottom:clamp(48px,8svh,82px);padding:0 14px}.hero-copy{bottom:clamp(92px,13svh,126px)}
  .cover-name,.hero-name{font-size:clamp(88px,24vw,132px)}
  .cover-line{font-size:22px;margin:6px auto 18px}.sound-note{font-size:9px}
  .hero-mark{margin-top:6px}.hero-subtitle{font-size:34px}.hero-date{font-size:11px;letter-spacing:.06em}.hero-place{font-size:9px;letter-spacing:.12em}
  .story{padding:96px 0 110px}.story-photo-frame{max-width:440px;width:min(100%,420px)}.display-title{font-size:clamp(44px,10.4vw,64px)}.story-text{font-size:clamp(22px,6vw,30px)}.family-block h3{font-size:40px}.story-invite{margin-bottom:24px}.story-signature{font-size:96px;margin-top:18px}
  .verse{padding:92px 0}.verse blockquote{font-size:clamp(39px,9.6vw,56px)}
  .count{padding:95px 0}.count-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.count-card{padding:24px 8px 20px}.count-card strong{font-size:54px}.count-card span{font-size:10px;letter-spacing:.12em}
  .details{padding:12px 0 105px}.detail-card{padding:34px 20px}
  .gallery{padding:100px 0}.gallery-grid{grid-template-columns:1fr 1fr;grid-template-rows:410px 205px 205px;gap:10px;margin-top:40px}.photo-tall{grid-column:1/3;grid-row:1}.photo-wide{grid-column:1/3;grid-row:2}.photo-small-a{grid-column:1;grid-row:3}.photo-small-b{grid-column:2;grid-row:3}.photo span{left:12px;bottom:12px;font-size:8px}
  .gifts{padding:100px 0}.gifts-copy{font-size:28px}
  .rsvp{padding:100px 0 110px}.rsvp-fields{padding:24px 18px}
  .sound-button{top:14px;right:14px;width:46px;height:46px}
  .lightbox>img{max-width:calc(100vw - 28px);max-height:76dvh}.lightbox-prev{left:7px;bottom:42px;top:auto}.lightbox-next{right:7px;bottom:42px;top:auto}.lightbox-close{right:15px;top:15px}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.reveal,[data-enter]{opacity:1;filter:none;transform:none}}



/* V4 — delicadeza en texto, foto de escalera, y swipe. Fondo sin textura. */
/* Entrada y salida suaves, repetibles en ambas direcciones del scroll. */
.reveal {
  opacity: 0;
  transform: translate3d(0, 21px, 0);
  filter: blur(4px);
  transition: opacity .82s cubic-bezier(.22,.71,.22,1),
              transform .95s cubic-bezier(.2,.8,.2,1),
              filter .82s ease;
  will-change: opacity, transform;
}
.reveal.visible {
  opacity: 1;
  transform: translate3d(0, 0, 0);
  filter: blur(0);
}
/* Texto individual, sin desaparecer toda la sección a la vez. */
.story-copy > .micro { transition-delay: .04s; }
.story-copy > .display-title { transition-delay: .10s; }
.story-copy > .story-star { transition-delay: .16s; }
.story-copy > .story-text { transition-delay: .10s; }
.story-copy .family-block:nth-child(2) { transition-delay: .12s; }
.story-copy > .story-invite { transition-delay: .08s; }
.story-copy > .story-signature { transition-delay: .10s; }
.details .detail-card:nth-child(2) { transition-delay: .12s; }
.gallery .photo:nth-child(2) { transition-delay: .08s; }
.gallery .photo:nth-child(3) { transition-delay: .13s; }
.gallery .photo:nth-child(4) { transition-delay: .18s; }

/* Segunda foto: se abre con una transición suave desde su marco. */
.story-photo-card.photo-rise { overflow: visible; }
.story-photo-card.photo-rise .story-photo-frame {
  clip-path: inset(8% 0 8% 0 round 210px 210px 28px 28px);
  transition: clip-path 1.18s cubic-bezier(.18,.76,.22,1),
              box-shadow 1s ease;
}
.story-photo-card.photo-rise img {
  transform: scale(1.075);
  transition: transform 1.45s cubic-bezier(.16,.8,.2,1);
}
.story-photo-card.photo-rise.visible .story-photo-frame {
  clip-path: inset(0% 0 0% 0 round 210px 210px 28px 28px);
}
.story-photo-card.photo-rise.visible img { transform: scale(1); }

/* Brillo diagonal sutil sin typing/caret ni recorte de la E. */
.name-sheen {
  background-image: linear-gradient(115deg,
    var(--sheen-base, #fff) 10%,
    var(--sheen-base, #fff) 38%,
    var(--sheen-flash, #fff5ce) 48%,
    var(--sheen-base, #fff) 58%,
    var(--sheen-base, #fff) 90%);
  background-size: 270% 100%;
  background-position: 100% center;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: elianaLuxeSweep 9s cubic-bezier(.32,0,.45,1) infinite;
  overflow: visible;
}
.cover-name,.hero-name { --sheen-base: #ffffff; --sheen-flash:#ffeab8; }
.story-signature { --sheen-base: #a3834e; --sheen-flash:#f5dca4; }
@keyframes elianaLuxeSweep {
  0%, 19% { background-position: 100% center; }
  40%, 100% { background-position: 0% center; }
}

/* Deslizamiento en galería abierta (también arrastrar con mouse). */
.lightbox > img {
  touch-action: pan-y;
  user-select: none;
  -webkit-user-select: none;
  -webkit-user-drag: none;
  cursor: grab;
}
.lightbox > img:active { cursor: grabbing; }
.lightbox > img.photo-slide-next { animation: lightboxSlideNext .34s ease both; }
.lightbox > img.photo-slide-prev { animation: lightboxSlidePrev .34s ease both; }
@keyframes lightboxSlideNext {
  from {opacity:.38; transform:translateX(18px) scale(.985)}
  to {opacity:1; transform:translateX(0) scale(1)}
}
@keyframes lightboxSlidePrev {
  from {opacity:.38; transform:translateX(-18px) scale(.985)}
  to {opacity:1; transform:translateX(0) scale(1)}
}
.lightbox-hint {
  position:absolute; bottom:49px; left:50%; transform:translateX(-50%);
  color:rgba(255,255,255,.60); font:600 9px/1.5 var(--sans);
  letter-spacing:.22em; white-space:nowrap; pointer-events:none;
}
.lightbox-count { bottom:22px; }

/* Crédito pequeño y discreto, con el dominio como único enlace. */
.footer {padding:34px 18px 24px;}
.footer-credit {
  margin:20px 0 0;
  color:rgba(226,218,202,.54);
  font-size:10px;
  font-weight:400;
  letter-spacing:.035em;
  line-height:1.7;
}
.footer-credit a {
  color:rgba(240,222,190,.76);
  text-decoration:none;
  border-bottom:1px solid rgba(240,222,190,.26);
  transition:color .3s,border-color .3s;
}
.footer-credit a:hover,
.footer-credit a:focus-visible {
  color:#fff;
  border-color:rgba(255,255,255,.7);
}
@media(max-width:720px) {
  .story-photo-card.photo-rise .story-photo-frame {
    clip-path: inset(6% 0 6% 0 round 210px 210px 28px 28px);
  }
  .story-photo-card.photo-rise.visible .story-photo-frame {
    clip-path: inset(0 0 0 0 round 210px 210px 28px 28px);
  }
  .lightbox-hint {bottom:23px; font-size:9px;}
  .lightbox-count {bottom:49px;}
}
@media(prefers-reduced-motion:reduce) {
  .reveal {opacity:1!important; filter:none!important; transform:none!important; will-change:auto!important;}
  .story-photo-card.photo-rise .story-photo-frame {clip-path:none!important;}
  .story-photo-card.photo-rise img {transform:none!important;}
  .name-sheen {animation:none!important; -webkit-text-fill-color:currentColor; background:none;}
  .lightbox > img.photo-slide-next,.lightbox > img.photo-slide-prev {animation:none!important;}
}


/* CORRECCIÓN DE NOMBRE ELIANA — diseño protegido en móvil y escritorio.
   El color del texto base SIEMPRE se ve. Brillo real encima, sin recortar glyphs.
   No crea cruces, texturas ni decoraciones adicionales. */
.cover-name.eliana-shimmer,
.hero-name.eliana-shimmer,
.story-signature.eliana-shimmer {
  position: relative;
  display: inline-block;
  width: max-content;
  max-width: none;
  padding: .12em .18em .19em;
  margin-left: 0;
  margin-right: 0;
  white-space: nowrap;
  overflow: visible !important;
  background: none !important;
  background-image: none !important;
  -webkit-background-clip: border-box !important;
  background-clip: border-box !important;
  -webkit-text-fill-color: currentColor !important;
  animation: none !important;
  transform-origin: center center;
  line-height: 1.18;
  box-sizing: content-box;
  isolation: isolate;
}
.cover-name.eliana-shimmer,
.hero-name.eliana-shimmer { color: #fff; }
/* Mantener animación de entrada de la portada (el degradado anterior la anulaba). */
.cover-inner > .cover-name.eliana-shimmer {
  animation: enterSoft .95s cubic-bezier(.16,1,.3,1) .22s forwards !important;
}
.story-signature.eliana-shimmer { color: #a3834e; }

/* Capa superpuesta: misma tipografía y alineación, solo visible dentro
   de una franja diagonal de luz que cruza de izquierda a derecha. */
.eliana-shimmer::after {
  content: attr(data-glow);
  position: absolute;
  z-index: 1;
  inset: 0;
  box-sizing: border-box;
  padding: inherit;
  font: inherit;
  letter-spacing: inherit;
  line-height: inherit;
  text-align: inherit;
  white-space: nowrap;
  pointer-events: none;
  color: #fff0b8;
  -webkit-text-fill-color: #fff0b8;
  text-shadow: 0 0 10px rgba(255, 235, 169, .95),
               0 0 23px rgba(255, 218, 143, .48);
  opacity: 0;
  clip-path: polygon(-50% -50%, -29% -50%, -8% 150%, -29% 150%);
  animation: elianaSweepVisible 5.6s ease-in-out infinite;
}
.story-signature.eliana-shimmer::after {
  color: #edd097;
  -webkit-text-fill-color: #edd097;
  text-shadow: 0 0 9px rgba(217, 167, 79, .88),
               0 0 22px rgba(238, 194, 126, .5);
}
@keyframes elianaSweepVisible {
  0%, 11% {
    opacity: 0;
    clip-path: polygon(-50% -50%, -29% -50%, -8% 150%, -29% 150%);
  }
  14% { opacity: 1; }
  43% {
    opacity: 1;
    clip-path: polygon(115% -50%, 137% -50%, 158% 150%, 136% 150%);
  }
  46%, 100% {
    opacity: 0;
    clip-path: polygon(115% -50%, 137% -50%, 158% 150%, 136% 150%);
  }
}
/* El diseño anterior animaba el color blanco de fondo, lo desactivamos. */
.cover-name.eliana-shimmer::before,
.hero-name.eliana-shimmer::before,
.story-signature.eliana-shimmer::before { content: none; }

/* Espacio de seguridad alrededor de la E y los trazos finales. */
.cover-inner, .hero-copy { overflow: visible; }
.cover-name.eliana-shimmer,
.hero-name.eliana-shimmer { vertical-align: middle; }
.story-signature.eliana-shimmer { vertical-align: baseline; }
@media (max-width:720px) {
  .cover-name.eliana-shimmer,
  .hero-name.eliana-shimmer { line-height: 1.20; padding: .16em .18em .17em; }
  .story-signature.eliana-shimmer { line-height: 1.2; padding: .15em .18em .16em; }
}
@media (prefers-reduced-motion: reduce) {
  .eliana-shimmer::after { animation: none !important; opacity: 0 !important; }
}

/* INVITACIONES 1-5 - no cambia el diseño previo */
.rsvp-pass{width:min(430px,100%);margin:28px auto 23px;padding:20px 18px;background:linear-gradient(135deg,rgba(255,253,247,.98),rgba(248,241,229,.95));border:1px solid rgba(166,133,76,.38);border-radius:17px;box-shadow:0 12px 36px rgba(116,80,39,.055);display:flex;flex-direction:column;align-items:center;gap:7px}
.rsvp-pass[hidden]{display:none}.pass-kicker{color:#9b8059;font-size:10px;letter-spacing:.22em;font-weight:700;line-height:1.6;text-align:center}.rsvp-pass strong{font-family:var(--serif);font-size:clamp(27px,4vw,37px);font-weight:500;line-height:1;color:#614e38}
.rsvp-notice{max-width:540px;margin:23px auto;padding:15px 18px;border-radius:9px;border:1px solid rgba(166,133,76,.20);color:#685b4c;background:rgba(255,252,245,.66);font-size:13px;line-height:1.55}
.rsvp-notice[hidden]{display:none}.rsvp-fields[hidden]{display:none}.rsvp-fields{gap:20px}
.rsvp-attendance{border:0;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.rsvp-attendance legend{margin-bottom:12px;color:#59564e;font-size:12px;font-weight:700;letter-spacing:.03em}
.rsvp-option{display:flex;gap:9px;align-items:center;border:1px solid #e5dcd1;padding:12px 15px;flex:1;min-width:145px;border-radius:10px;background:#fffefa;font-size:12px;cursor:pointer;white-space:nowrap}
.rsvp-option:has(input:checked){border-color:#b99a62;background:#f9f2e7}
.rsvp-option input{width:16px;height:16px;margin:0;accent-color:#ac8952;flex:none}
.rsvp-yes,.rsvp-no{display:flex;flex-direction:column;gap:10px}
.rsvp-no[hidden],.rsvp-yes[hidden]{display:none}
.rsvp-yes>label,.rsvp-no>label,.rsvp-guest-fields label{color:#59564e;font-size:12px;font-weight:600}
.rsvp-yes select,.rsvp-no input,.rsvp-guest-fields input{height:50px;margin-top:0;padding:0 14px;border:1px solid #e0d8c9;background:#fffefa;border-radius:8px;color:#514943;font-size:14px;width:100%}
.rsvp-yes select{appearance:auto}.rsvp-helper{font-size:12px;color:#776d64;margin:6px 0 0;line-height:1.6}
.rsvp-guest-fields{display:grid;gap:16px}.rsvp-guest-fields label{display:grid;gap:9px}.rsvp-submit{width:100%;margin-top:4px}
.rsvp-feedback{font-size:12px;margin:0;padding:9px 0;color:#9a423e;text-align:center}.rsvp-feedback[hidden]{display:none}
.rsvp-success{width:min(540px,100%);margin:26px auto;padding:35px 20px;background:#fffefa;border:1px solid rgba(166,133,76,.3);border-radius:18px;color:#51493a;box-shadow:0 18px 40px rgba(88,67,39,.055)}.rsvp-success[hidden]{display:none}
.rsvp-success span{font-family:var(--serif);font-size:32px;color:#b8945e}.rsvp-success h3{font-family:var(--serif);font-weight:500;font-size:37px;margin:8px 0 9px}.rsvp-success p{font-size:14px;line-height:1.5;color:#6d635a;margin:0}
.rsvp-honeypot{position:absolute!important;left:-100000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
@media(max-width:600px){.rsvp-pass{max-width:calc(100vw - 48px)}.rsvp-option{min-width:100%}.rsvp-fields{gap:17px}.rsvp-attendance{gap:9px}}
