/* Corazones: la boda como la mejor mano. Fieltro borgoña, naipes marfil, oro y fotos en B/N.
   Todo es CSS/SVG; las paletas (demo/shared/content.js) cambian el fieltro y el oro. El rojo de los palos no cambia. */
:root{
  --bur:#5A0E1E;--bur2:#741628;--bur3:#3E0913;--gold:#D2B06A;--gold2:#B48E45;--iv:#FBF6EC;--card:#FFFDF7;--red:#A8162D;--ink:#24171A;--mute:#5B4A4E;--line:#E4D9C6;
  --disp:'Gloock',Georgia,serif;--sig:'Italianno',cursive;--sans:'Figtree',system-ui,sans-serif;
  --p-bg:var(--iv);--p-surface:var(--card);--p-ink:var(--ink);--p-muted:var(--mute);--p-line:var(--line);--p-accent:var(--red);--p-on-accent:#fff;
  --p-serif:var(--disp);--p-sans:var(--sans);--m-bg:var(--red);--m-fg:#fff;--m-border:#ffffff55
}
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;overflow-x:clip}
body{margin:0;background:var(--iv);color:var(--ink);font:400 16px/1.6 var(--sans)}
body.locked{overflow:hidden}
h1,h2,h3,p,blockquote,ol{margin:0}
img{display:block;max-width:100%}
a{color:inherit}
button,input{font:inherit;color:inherit}
.ic{width:1em;height:1em;flex:none}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible{outline:2px solid var(--red);outline-offset:3px}
.felt a:focus-visible,.felt button:focus-visible,.mbar a:focus-visible{outline-color:var(--gold)}

.felt{background:radial-gradient(80% 50% at 50% 30%,var(--bur2),var(--bur) 62%,var(--bur3) 100%);color:var(--iv)}
.k{font:700 12px/1.5 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--red)}
.k-gold{color:var(--gold)}.k-light{color:#F2E4D6}
.sig{font:400 46px/1.15 var(--sig);color:var(--gold)}
.head{text-align:center}
.sec h2{margin-top:6px;font:400 clamp(34px,9vw,48px)/1.1 var(--disp);overflow-wrap:anywhere}
.mute{color:var(--mute)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 26px;border:0;border-radius:999px;background:var(--red);color:#fff;font:600 15px var(--sans);text-decoration:none;cursor:pointer;white-space:nowrap}
.btn:hover{filter:brightness(1.08)}
.btn-light{background:var(--iv);color:var(--bur)}
.lnk{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0;border:0;background:none;cursor:pointer;font:600 14px var(--sans);color:var(--red);text-decoration:underline;text-underline-offset:4px}
.bw img,.bw .ph-img{filter:grayscale(1) contrast(1.05)}
.suit{display:block;width:1em;height:1em;flex:none}.suit.red{fill:var(--red)}.suit.black{fill:var(--ink)}
[data-rv]{opacity:0;transform:translateY(14px) rotate(-2deg);transition:opacity .3s ease,transform .4s cubic-bezier(.22,1,.36,1)}
[data-rv].in{opacity:1;transform:rotate(var(--tilt,0deg))}

/* Naipes: papel marfil y esquinas con letra y palo */
.card-i,.court,.ff{position:relative;background:var(--card);color:var(--ink);border-radius:12px;box-shadow:0 0 0 1px #00000014,0 18px 30px -18px #000a}
.cn{position:absolute;display:flex;flex-direction:column;align-items:center;gap:1px;font:400 22px/1 var(--disp);color:var(--red);pointer-events:none}
.cn .suit{width:14px;height:14px}
.cn.tl{left:10px;top:10px}.cn.br{right:10px;bottom:10px;rotate:180deg}
.cn.tr{right:10px;top:10px}.cn.bl{left:10px;bottom:10px;rotate:180deg}
.ace .cn{color:var(--ink)}
.back{position:absolute;inset:0;border-radius:inherit;background:var(--bur);background-image:repeating-linear-gradient(45deg,transparent 0 9px,color-mix(in srgb,var(--gold) 60%,transparent) 9px 10px),repeating-linear-gradient(-45deg,transparent 0 9px,color-mix(in srgb,var(--gold) 60%,transparent) 9px 10px);box-shadow:inset 0 0 0 6px var(--bur),inset 0 0 0 7px var(--gold),0 14px 24px -14px #000c;display:grid;place-items:center}
.back-m{width:58%;aspect-ratio:1;border-radius:50%;background:var(--bur);box-shadow:0 0 0 1px var(--gold);display:grid;place-items:center;font:400 24px var(--disp);color:var(--gold)}
.back-m i{font-style:normal;margin:0 .15em}

/* ======================= APERTURA ======================= */
.opening{position:fixed;inset:0;z-index:60;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:30px;padding:40px 20px 110px;transition:opacity .45s ease,visibility 0s .45s}
.opening.gone{opacity:0;visibility:hidden;pointer-events:none}
.op-intro{font:600 11px var(--sans);letter-spacing:.22em;text-transform:uppercase;color:#F2E4D6cc;text-align:center;max-width:300px}
.deck{position:relative;width:min(48vw,190px);aspect-ratio:2/3;padding:0;border:0;background:none;cursor:pointer;border-radius:12px}
.dk{position:absolute;inset:0;border-radius:12px;transform-origin:50% 120%;transition:transform .4s cubic-bezier(.3,0,.2,1),opacity .3s}
.dk.c0{transform:translate(-4px,4px)}.dk.c1{transform:translate(-2px,2px)}.dk.c3{transform:translate(2px,-2px)}.dk.c4{transform:translate(4px,-4px)}
.dk.face{perspective:900px;opacity:0}
.flip{position:absolute;inset:0;transform-style:preserve-3d;transition:transform .45s cubic-bezier(.3,0,.2,1) .1s}
.fb,.ff{position:absolute;inset:0;border-radius:12px;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.ff{transform:rotateY(180deg);padding:30px 14px;display:flex}
.fph{position:relative;flex:1 1 0;min-height:0;overflow:hidden;border-radius:4px;background:#222}
.fph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 70%}
.op-ticket{display:flex;flex-direction:column;align-items:center;text-align:center;gap:2px;max-width:340px;transition:opacity .3s}
.op-guest{font:400 30px/1.2 var(--disp);overflow-wrap:anywhere}
.op-seats{font-size:14px;color:#F2E4D6;margin-bottom:12px}
.op-hint{margin-top:6px;font-size:13px;color:#F2E4D6}
.opening.open .dk.c0{transform:rotate(-36deg)}.opening.open .dk.c1{transform:rotate(-18deg)}.opening.open .dk.c2{transform:rotate(0)}.opening.open .dk.c3{transform:rotate(18deg)}.opening.open .dk.c4{transform:rotate(36deg)}
.opening.flip .dk:not(.face){opacity:.45}
.opening.flip .dk.face{opacity:1}
.opening.flip .dk.fk{transform:translateX(-36%) rotate(-8deg)}.opening.flip .dk.fq{transform:translateX(36%) rotate(8deg)}
.opening.flip .flip{transform:rotateY(180deg)}
.opening.open .op-ticket,.opening.open .op-intro{opacity:0}

/* ======================= INVITACIÓN ======================= */
main{display:block}
.mbar{position:fixed;z-index:50;top:0;left:0;right:0;height:58px;padding:0 10px 0 20px;display:flex;align-items:center;justify-content:space-between;background:#FBF6ECf2;border-bottom:1px solid var(--line);opacity:0;transform:translateY(-64px);visibility:hidden;transition:opacity .35s,transform .45s cubic-bezier(.22,1,.36,1),visibility 0s .45s}
.mbar.show{opacity:1;transform:none;visibility:visible;transition-delay:0s}
.mbar .mono{font:400 22px var(--disp);color:var(--red);text-decoration:none;min-height:44px;display:flex;align-items:center}
.mono i{font-style:normal;margin:0 .15em}
.mbar nav{display:flex;align-items:center;gap:4px}
.mbar nav a{min-height:44px;display:inline-flex;align-items:center;padding:0 12px;font:600 14px var(--sans);text-decoration:none}
.mbar .mbar-cta{min-height:40px;border-radius:999px;background:var(--red);color:#fff}

.sec{position:relative;padding:72px 24px}
.sec>*{max-width:1040px;margin-inline:auto}

/* Portada: la carta de doble cabeza */
.hero{padding:22px 22px 60px;display:flex;flex-direction:column;align-items:center;gap:20px;text-align:center}
.hero-top{width:100%;display:flex;justify-content:space-between;align-items:center;font:600 12px var(--sans);letter-spacing:.16em;color:#F2E4D6}
.hero-top .mono{font:400 20px var(--disp);color:var(--gold);letter-spacing:0}
.court{width:min(70%,250px);aspect-ratio:300/470;padding:38px 22px;display:flex;flex-direction:column;gap:0}
.half{position:relative;flex:1 1 0;min-height:0;overflow:hidden;background:#222}
.half img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 60%}
.half.top{border-radius:4px 4px 0 0}
.half.bot{border-radius:0 0 4px 4px;rotate:180deg}
.mid{position:absolute;left:50%;top:50%;translate:-50% -50%;width:34px;height:34px;border-radius:50%;background:var(--card);display:grid;place-items:center;box-shadow:0 0 0 1px var(--line)}
.mid .suit{width:18px;height:18px}
.hero-txt{display:flex;flex-direction:column;align-items:center;gap:8px}
.names{font:400 clamp(54px,15vw,84px)/1 var(--sig);color:var(--gold);overflow-wrap:anywhere;outline:0}
.names .amp{font-size:.8em}
.hero-d{font:400 30px var(--disp);letter-spacing:.04em}
.hero-txt .btn{margin-top:14px}

/* La mejor mano: cuándo y dónde, en naipes */
.hand .lead{margin-top:14px;font-size:17px;color:#F2E4D6;max-width:460px;margin-inline:auto}
.cards{display:flex;flex-direction:column;align-items:center;gap:18px;margin-top:30px}
.card-i{width:min(100%,300px);padding:34px 40px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:4px}
.cards .card-i:nth-child(1){--tilt:-2deg}.cards .card-i:nth-child(2){--tilt:2deg}
.card-i h3{font:400 28px/1.15 var(--disp);overflow-wrap:anywhere}
.card-i p{font-size:15px;overflow-wrap:anywhere}

/* Historia: una foto y la jota con el texto */
.story-cards{display:flex;flex-direction:column;align-items:center;gap:18px;margin-top:30px}
.photo-card{width:min(78%,260px);aspect-ratio:3/4;padding:8px;background:#fff;border-radius:10px;box-shadow:0 0 0 1px #00000010,0 18px 28px -20px #0009;--tilt:-3deg}
.photo-card img{width:100%;height:100%;object-fit:cover;border-radius:4px}
.card-i.text{width:min(100%,360px);padding:40px 34px 34px;text-align:left;align-items:flex-start;--tilt:1.5deg}
.card-i.text h3{font-size:26px}
.card-i.text p{font-size:15.5px;line-height:1.6}
.card-i.text .sig{align-self:flex-end;color:var(--red);font-size:40px}

/* Galería: naipes con foto, de la A al 3 */
.deal{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:28px;max-width:420px;counter-reset:card}
.pcard{position:relative;aspect-ratio:3/4.2;padding:24px 10px;background:var(--card);border-radius:10px;box-shadow:0 14px 22px -14px #000c}
.pcard img{width:100%;height:100%;object-fit:cover;border-radius:3px}
.pcard::before,.pcard::after{position:absolute;min-width:14px;padding-bottom:13px;text-align:center;font:400 16px/1 var(--disp);color:var(--red);background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 14.2s-5.6-3.5-5.6-7.6A3.1 3.1 0 0 1 8 4.7a3.1 3.1 0 0 1 5.6 1.9c0 4.1-5.6 7.6-5.6 7.6z' fill='%23A8162D'/%3E%3C/svg%3E") center bottom/11px 11px no-repeat}
.pcard::before{left:8px;top:6px}.pcard::after{right:8px;bottom:6px;rotate:180deg}
.pcard:nth-child(1)::before,.pcard:nth-child(1)::after{content:'A'}
.pcard:nth-child(2)::before,.pcard:nth-child(2)::after{content:'K'}
.pcard:nth-child(3)::before,.pcard:nth-child(3)::after{content:'Q'}
.pcard:nth-child(4)::before,.pcard:nth-child(4)::after{content:'J'}
.pcard:nth-child(5)::before,.pcard:nth-child(5)::after{content:'10'}
.pcard:nth-child(6)::before,.pcard:nth-child(6)::after{content:'9'}
.pcard:nth-child(n+5){display:none}
.pcard:nth-child(odd){rotate:-1.5deg}.pcard:nth-child(even){rotate:1.5deg}
.gal-foot{display:flex;justify-content:center;margin-top:26px}

/* Cuenta regresiva: fichas de juego */
.cd{text-align:center}
.chips{display:flex;justify-content:center;gap:12px;margin-top:26px}
.chip-p{width:92px;aspect-ratio:1;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--iv);background:radial-gradient(circle,var(--bur2) 0 54%,var(--gold) 54% 56%,var(--bur) 56% 70%,transparent 70%),repeating-conic-gradient(var(--iv) 0 15deg,var(--red) 15deg 30deg);box-shadow:0 10px 16px -10px #000a,inset 0 0 0 3px #00000022}
.chip-p b{font:400 30px/1 var(--disp)}
.chip-p span{font:700 9px var(--sans);letter-spacing:.12em;text-transform:uppercase}
.cd-when{margin-top:22px;font:600 14px var(--sans)}
.cd .mute{margin-top:4px;font-size:15px}

/* Programa: iconos de línea y un hilo punteado */
.prog{background:var(--card)}
.evs{list-style:none;padding:0;margin-top:30px;max-width:560px}
.ev{position:relative;display:grid;grid-template-columns:40px minmax(0,1fr);column-gap:18px;padding-bottom:24px}
.ev:not(:last-child)::before{content:'';position:absolute;left:19px;top:38px;bottom:2px;border-left:1.5px dotted var(--red)}
.ev .tic{display:none;width:30px;height:30px;color:var(--ink);margin:2px auto 0}
.ev:nth-of-type(6n+1) .i0,.ev:nth-of-type(6n+2) .i1,.ev:nth-of-type(6n+3) .i2,.ev:nth-of-type(6n+4) .i3,.ev:nth-of-type(6n+5) .i4,.ev:nth-of-type(6n+6) .i5{display:block}
.ev-time{font:700 12px var(--sans);letter-spacing:.14em;color:var(--red)}
.ev h3{font:400 24px/1.2 var(--disp);overflow-wrap:anywhere}
.ev p{font-size:15px;overflow-wrap:anywhere}
.ev .lnk{min-height:40px;font-size:13px}
.ev .lz-off{display:none}

/* Vestimenta: el as */
.ace{margin-top:30px;width:min(100%,320px);padding:42px 34px;--tilt:-1.5deg}
.ace h3{margin-top:4px;font-size:30px}
.ace p{margin-top:8px}
.pips{display:flex;gap:6px;justify-content:center;font-size:14px}
.ace .b{font-weight:600}

/* Viaje */
.travel{display:flex;flex-direction:column;gap:34px}
.travel .intro{margin-top:12px;font-size:15px}
.tlist,.guide{max-width:620px}
.tlist{margin-top:18px}
.tinfo{display:grid;grid-template-columns:28px minmax(0,1fr);column-gap:14px;padding:14px 0;border-top:1px solid var(--line)}
.tic{width:24px;height:24px;margin-top:2px;color:var(--red)}
.tinfo h3{font:700 13px/1.4 var(--sans);text-transform:uppercase;letter-spacing:.1em}
.tinfo p{font-size:15px;line-height:1.55;color:var(--mute);overflow-wrap:anywhere}
.guide{margin-top:20px}.guide>.k{margin-bottom:4px}
.card-i.hotel{width:min(100%,340px);padding:40px 34px;--tilt:2deg}
.hotel h3{margin-top:4px}
.code{display:inline-flex;gap:6px;flex-wrap:wrap;margin-top:12px!important;padding:5px 14px;border-radius:999px;background:#F6E3E1;color:var(--red);font:600 13px var(--sans)!important}
.hotel:has([data-lz-href=hotelLink]:not([hidden])) .demo-booking{display:none}
.demo-booking{font-size:12px!important}

/* Frase sobre el dorso de celosía */
.lattice{position:relative;max-width:520px;padding:44px 34px;border-radius:14px;text-align:center;background:var(--bur);background-image:repeating-linear-gradient(45deg,transparent 0 13px,color-mix(in srgb,var(--gold) 35%,transparent) 13px 14px),repeating-linear-gradient(-45deg,transparent 0 13px,color-mix(in srgb,var(--gold) 35%,transparent) 13px 14px);box-shadow:inset 0 0 0 10px var(--bur),inset 0 0 0 11px var(--gold);display:flex;flex-direction:column;align-items:center;gap:14px}
.lattice>.suit{width:20px;height:20px;fill:var(--gold)}
.lattice blockquote{padding:18px 16px;background:var(--bur);font:400 clamp(30px,8vw,40px)/1.2 var(--sig);color:var(--gold);overflow-wrap:anywhere}

/* Preguntas */
.qs{margin-top:26px;max-width:720px;border-top:1px solid var(--line)}
.qs details{border-bottom:1px solid var(--line)}
.qs summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:58px;padding:12px 0;cursor:pointer;font:600 15px/1.4 var(--sans)}
.qs summary::-webkit-details-marker{display:none}
.qs summary::after{content:'';width:13px;height:13px;flex:none;background:linear-gradient(var(--red),var(--red)) center/100% 1.5px no-repeat,linear-gradient(var(--red),var(--red)) center/1.5px 100% no-repeat}
.qs details[open] summary::after{background-size:100% 1.5px,1.5px 0}
.qs p{padding:0 0 16px;color:var(--mute);font-size:15px}

/* Confirmación */
.rsvp{background:var(--card)}
.table{max-width:620px;padding:34px 22px 26px;background:var(--iv);border-radius:16px;box-shadow:0 0 0 1px var(--line),0 24px 40px -30px #0007}
.rs-for{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:18px;font-size:15px}
.rs-for b{font-weight:600}.rs-for span{color:var(--mute)}
.chipd{display:inline-block;margin-top:8px;padding:5px 12px;border-radius:999px;background:#F6E3E1;color:var(--red);font:600 12px var(--sans)}
#rsForm>.mute{margin-top:12px;font-size:15px}
#people{margin-top:6px}
.person{margin:0;padding:14px 0;border:0;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:8px;min-width:0}
.person legend{float:left;width:100%;padding:0;font:400 21px/1.3 var(--disp);overflow-wrap:anywhere}
.opts{display:flex;flex-wrap:wrap;gap:8px}
.opt{position:relative;display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 16px;border:1px solid #24171A38;border-radius:999px;background:#fff;cursor:pointer;font:600 13px var(--sans)}
.opt input{position:absolute;opacity:0;width:1px;height:1px}
.opt .ic{display:none}
.opt:has(input:checked){color:#fff;border-color:transparent}
.opt.yes:has(input:checked){background:var(--red)}.opt.no:has(input:checked){background:var(--ink)}
.opt:has(input:checked) .ic{display:block}
.opt:has(input:focus-visible){outline:2px solid var(--red);outline-offset:2px}
.person.is-err .opt{border-color:var(--red)}
.person-err{display:flex;align-items:center;gap:6px;color:var(--red);font:600 13px var(--sans)}
.fields{display:grid;gap:14px;margin-top:18px}
.fld{display:flex;flex-direction:column;gap:6px;font:600 13px var(--sans)}
.fld input{min-height:46px;padding:0 12px;border:1px solid #24171A38;border-radius:8px;background:#fff;font:400 16px var(--sans)}
.rs-err{display:flex;align-items:center;gap:8px;margin-top:14px;color:var(--red);font:600 14px var(--sans)}
#rsSave{display:flex;margin:20px auto 0}
.demo-note{margin-top:14px;font-size:13px;text-align:center}
#rsDone{text-align:center;margin-top:18px;display:flex;flex-direction:column;align-items:center}
.card-i.thanks{width:180px;aspect-ratio:2/3;justify-content:center;gap:0}
.big-h .suit{width:46px;height:46px}
.thanks .sig{color:var(--red);font-size:40px}
#rsSum{margin-top:14px;font-size:15px;width:100%}
.reply-list{list-style:none;margin:14px 0 0;padding:0;text-align:left}
.reply-list li{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:10px 0;border-top:1px solid var(--line)}
.reply-list b{font:400 17px var(--disp)}

/* Cierre */
.fin{text-align:center;padding-bottom:120px}
.fin-cards{position:relative;width:200px;height:180px;margin:0 auto}
.fin-back{width:110px;height:165px;left:22px;top:8px;right:auto;bottom:auto;rotate:-12deg}
.fin-q{position:absolute!important;left:72px;top:0;width:110px;height:165px;padding:0;justify-content:center;rotate:10deg}
.fin-n{margin-top:18px;font-size:clamp(52px,14vw,72px)}
.fin .k{margin-top:4px}
.fin-links{display:flex;justify-content:center;gap:22px;margin-top:22px;padding-top:14px;border-top:1px solid #ffffff2a}
.fin-links a{min-height:44px;display:inline-flex;align-items:center;font:600 14px var(--sans)}

@media(max-height:700px){.opening{gap:16px;padding-top:20px}.deck{width:min(36vw,150px)}}

/* Escritorio */
@media(min-width:900px){
  .mbar{left:50%;right:auto;width:min(1080px,calc(100% - 40px));translate:-50% 0;top:12px;border:1px solid var(--line);border-radius:999px}
  .sec{padding:104px 48px}
  .hero{display:grid;grid-template-columns:minmax(0,380px) minmax(0,460px);justify-content:center;align-items:center;gap:30px 90px;padding:40px 48px 90px;min-height:100vh;text-align:left}
  .hero-top{grid-column:1 / -1;align-self:start}
  .court{width:100%}
  .hero-txt{align-items:flex-start}
  .cards{flex-direction:row;justify-content:center;gap:30px}
  .story-cards{flex-direction:row;justify-content:center;align-items:center;gap:40px}
  .deal{max-width:none;grid-template-columns:repeat(5,minmax(0,1fr))}
  .pcard:nth-child(5){display:block}.pcard:nth-child(n+6){display:none}
  .chip-p{width:130px}.chip-p b{font-size:42px}
  .evs{max-width:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:24px}
  .ev::before{display:none}
  .travel{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:60px;align-items:start}
  .travel .head{text-align:left}
  .card-i.hotel{justify-self:center;margin-top:40px}
  .faq{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:60px;align-items:start}
  .faq .head{text-align:left}.faq .qs{margin-top:0}
  .table{padding:46px 44px 34px}
  .person{flex-direction:row;align-items:center;justify-content:space-between;flex-wrap:wrap}
  .person legend{float:none;width:auto}
  .fields{grid-template-columns:1fr 1fr}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition-duration:.01s!important}[data-rv]{opacity:1;transform:none}.opening{transition:opacity .2s!important}}
.lz-editor [data-rv]{opacity:1;transform:none}
/* Una baraja de colección: fibra, grabado, cantos y un reparto contenido. */
.felt{isolation:isolate;background:radial-gradient(ellipse at 50% 15%,var(--bur2),var(--bur) 65%,var(--bur3))}
.felt:not(.opening){position:relative}
.felt::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:url('/assets/corazones/fieltro.webp') repeat 0 0/420px;opacity:.1;mix-blend-mode:soft-light}
.card-i,.court,.ff,.pcard,.table{background-color:var(--card);background-image:url('/assets/aurelia/papel-algodon.webp');background-size:520px;background-blend-mode:multiply;box-shadow:0 1px 0 #fff9,inset 0 0 0 1px #fff8,0 8px 14px -10px #16091080,0 24px 42px -28px #16091070}
.cn{font-size:23px}.cn b{font-weight:400}.cn.tl{left:12px;top:12px}.cn.br{right:12px;bottom:12px}
.back{background:var(--bur);background-image:linear-gradient(120deg,#ffffff09,transparent 40%,#0000000d);box-shadow:inset 0 0 0 2px var(--iv),inset 0 0 0 3px var(--gold),0 8px 18px -12px #0009;color:var(--gold);overflow:hidden}
.back-engraving{position:absolute;inset:0;width:100%;height:100%;opacity:.86;pointer-events:none}
.back-m{position:relative;z-index:1;width:34%;background:var(--bur);box-shadow:none;font-size:24px;padding:2px}
[data-lz-seal]{display:inline-flex;align-items:center;justify-content:center;width:2.8em;height:1.5em;vertical-align:middle}
[data-lz-seal]>.lz-seal{display:inline-flex;align-items:center;justify-content:center;max-width:100%;max-height:100%;white-space:nowrap;line-height:1}
[data-lz-seal] img{width:100%;height:100%;object-fit:contain;filter:none!important}
.back-m [data-lz-seal]{width:100%;height:100%;position:absolute;inset:0}
.opening{gap:24px;padding:32px 20px 100px}
.op-intro{max-width:390px;line-height:1.6}.op-ticket{gap:6px}.op-seats{margin-bottom:8px}.op-hint{line-height:1.5}
.deck{flex:none;width:min(52vw,220px,calc((100svh - 390px)*.666667));min-width:110px;isolation:isolate;transition:transform .65s cubic-bezier(.22,1,.36,1)}
.deck::before,.deck::after{content:'';position:absolute;inset:0;border-radius:12px;z-index:-1;background:repeating-linear-gradient(0deg,#d6cbbb 0 1px,#f5eddd 1px 3px);box-shadow:0 12px 24px -14px #000a;pointer-events:none}
.deck::before{translate:0 8px;rotate:-1deg}.deck::after{translate:3px 4px;rotate:1deg}
.dk{transition:transform .65s cubic-bezier(.22,1,.36,1),opacity .45s}
.flip{transition:transform .7s cubic-bezier(.22,1,.36,1) .1s}
.opening.open .deck{transform:scale(var(--fan-scale,1))}
.opening.open .dk.c0{transform:rotate(-26deg)}.opening.open .dk.c1{transform:rotate(-13deg)}.opening.open .dk.c3{transform:rotate(13deg)}.opening.open .dk.c4{transform:rotate(26deg)}
.opening.flip .deck{transform:scale(var(--face-scale,1))}
.opening.flip .dk.c0{transform:rotate(-16deg)}.opening.flip .dk.c1{transform:rotate(-8deg)}.opening.flip .dk.c3{transform:rotate(8deg)}.opening.flip .dk.c4{transform:rotate(16deg)}
.opening.flip .dk:not(.face){opacity:.25}
.opening.flip .dk.fk{transform:translateX(-34%) rotate(-7deg)}.opening.flip .dk.fq{transform:translateX(34%) rotate(7deg)}
.ff{padding:36px 22px}.ff .cn{font-size:20px}.ff .cn .suit{width:12px;height:12px}
.hero{gap:28px;padding-block:28px 72px}.hero-top{font-size:11px;letter-spacing:.18em;opacity:.8}
.hero-top .mono{font-size:18px}.hero-top [data-lz-date]{font-size:11px}
.court{width:min(82%,300px);padding:42px 30px;aspect-ratio:300/470;border-radius:10px}
.court::after{content:'';position:absolute;inset:9px;border:1px solid #a88b6740;border-radius:5px;pointer-events:none}
.half{outline:1px solid #b99a6638;outline-offset:5px}.half img{object-position:50% 55%}
.mid{width:44px;height:44px;box-shadow:0 0 0 5px var(--card),0 0 0 6px #b99a6660}.mid .suit{width:21px;height:21px}
.names{font-size:clamp(58px,15vw,92px);line-height:1.05;text-wrap:balance;max-width:100%;padding-block:6px}
.hero-d{font-size:clamp(26px,5vw,34px)}.hero-txt{gap:12px}.hero-txt .k-light{max-width:100%;text-wrap:balance}
.hand .lead{font:400 clamp(23px,4vw,30px)/1.45 var(--disp);max-width:680px}
.cards{gap:30px;padding-inline:10px}.cards .card-i{width:min(100%,340px);padding:46px 36px 40px;--tilt:0deg!important;border-radius:6px;min-height:250px;justify-content:center}
.cards .card-i h3{font:400 14px var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--red);margin-bottom:12px}
.card-i p{font-size:16px;line-height:1.65}.main-event{display:flex;flex-direction:column;gap:8px;margin-top:14px}.main-event [data-lz=mainTime]{font:400 30px/1.2 var(--disp)}
#whereName{font:400 25px/1.35 var(--disp)}#whereAddr{font-size:15px}.cards .lnk{margin-top:12px}
.story-cards{gap:36px}.photo-card{width:min(90%,340px);padding:12px 12px 34px;border-radius:4px;--tilt:-1.5deg;box-shadow:0 18px 26px -20px #24171a70}
.photo-card img{border-radius:1px}.card-i.text{width:min(100%,430px);background:none;box-shadow:none;padding:30px 30px 24px;--tilt:0deg;border-radius:0;border-block:1px solid var(--line)}
.card-i.text .cn{display:none}.card-i.text h3{font:400 clamp(30px,6vw,42px)/1.2 var(--disp)}.card-i.text p{font:400 17px/1.8 var(--sans)}.card-i.text .sig{font:400 44px/1.3 var(--sig);margin-top:16px}
.deal{gap:20px;max-width:480px;padding:8px;margin-top:34px}.pcard{padding:40px 13px;border-radius:6px;transition:transform .25s ease,box-shadow .25s ease}
.pcard:nth-child(odd){rotate:-.8deg}.pcard:nth-child(even){rotate:.8deg;translate:0 12px}
.pcard img{border-radius:1px}.pcard:has(img:focus-visible){outline:2px solid var(--gold);outline-offset:4px}
@media(hover:hover){.pcard:hover{transform:translateY(-5px);box-shadow:0 20px 26px -20px #000b}}
.gal-foot{flex-direction:column;align-items:center;gap:14px;margin-top:40px}.gal-count{font-size:14px;color:var(--iv);opacity:.85}
.chips{gap:10px;margin-top:34px}.chip-p{position:relative;isolation:isolate;width:min(126px,calc((100vw - 68px)/3));border:1px solid var(--gold2);background:repeating-conic-gradient(from 0deg,var(--iv) 0 7deg,var(--bur3) 7deg 38deg,var(--iv) 38deg 45deg,var(--bur3) 45deg 90deg);box-shadow:inset 0 0 0 3px #24171a40,0 2px 0 var(--gold2),0 9px 16px -10px #24171a90}
.chip-p::before{content:'';position:absolute;inset:8px;border-radius:50%;z-index:-1;background:radial-gradient(circle at 35% 25%,var(--bur2),var(--bur3));border:3px double var(--gold);box-shadow:inset 1px 2px 3px #ffffff12,inset -1px -2px 4px #0003}
.chip-p b{font-size:calc(clamp(27px,4vw,42px)*var(--digit-scale,1));font-variant-numeric:tabular-nums}.chip-p span{font-size:11px;letter-spacing:.04em;margin-top:3px}
#timeError{font-size:15px;color:var(--red);max-width:520px;margin:20px auto}
.cd-when{font-size:15px;line-height:1.6;margin-top:30px}.cd .mute{max-width:560px;margin:12px auto 0}
.evs{max-width:740px}.ev{grid-template-columns:44px minmax(0,1fr);gap:22px;padding-bottom:34px}
.ev:not(:last-child)::before{left:21px;top:47px;bottom:9px;border-left:1px dashed #a8162d50}
.ev .tic{display:none!important;width:34px;height:34px;margin:4px auto 0;color:var(--red)}
.ev[data-event-icon=ceremony] .i0,.ev[data-event-icon=drinks] .i1,.ev[data-event-icon=meal] .i2,.ev[data-event-icon=party] .i3,.ev[data-event-icon=cake] .i4,.ev[data-event-icon=transport] .i5,.ev[data-event-icon=arrival] .i6{display:block!important}
.ev-time{font-size:15px;letter-spacing:.08em;margin-bottom:6px}.ev h3{font-size:27px}.ev p{font-size:16px;line-height:1.65}.ev .lnk{min-height:46px;font-size:14px;margin-top:4px}
.ace{width:min(100%,460px);padding:50px 34px;--tilt:0deg;border-radius:4px;outline:1px solid var(--line);outline-offset:-10px}.ace h3{font-size:36px}.ace p{margin-top:16px}.pips{margin-block:20px!important;gap:14px}
.travel{gap:44px}.travel .intro{font-size:16px;line-height:1.7;max-width:600px}.tinfo{grid-template-columns:34px minmax(0,1fr);gap:16px;padding:20px 0}.tinfo .tic{width:30px;height:30px}.tinfo h3{font-size:14px;letter-spacing:.08em}.tinfo p{font-size:16px;line-height:1.7}
.card-i.hotel{width:min(100%,380px);padding:44px 34px 34px;align-items:flex-start;text-align:left;--tilt:0deg;border-radius:4px;border-top:4px double var(--gold2);gap:10px}.hotel .cn{display:none}.hotel h3{font-size:32px}.hotel .code{border-radius:3px;padding:8px 12px}.hotel .lnk{margin-top:8px}.hotel .demo-booking{line-height:1.6}
.lattice{max-width:700px;padding:40px 30px;background-image:none;border-radius:5px;box-shadow:inset 0 0 0 1px #d2b06a70,inset 0 0 0 9px var(--bur),inset 0 0 0 10px #d2b06a50}
.lattice blockquote{font:400 clamp(28px,5vw,38px)/1.5 var(--disp);background:none;padding:12px 8px;color:var(--iv)}.lattice>.suit{width:26px;height:26px}.lattice .k{font-size:11px;letter-spacing:.14em;line-height:1.7;max-width:100%;overflow-wrap:anywhere}
.qs summary,.qs p{font-size:16px}.qs p{line-height:1.75}.qs summary{min-height:64px}
.table{border-radius:4px;border-top:4px double var(--gold2);max-width:700px}.table .head h2{font-size:clamp(36px,7vw,48px)}
.opt{min-height:48px;padding-inline:18px;font-size:14px}.fld input{min-height:48px}.fld{line-height:1.5}.chipd{font-size:13px;line-height:1.6;border-radius:3px;max-width:100%}
#rsExtras{width:100%;text-align:left;margin-top:16px;font-size:15px;overflow-wrap:anywhere}#rsExtras p{padding-block:10px;border-top:1px solid var(--line)}
#rsExtras b{display:block;font-weight:600}#rsExtras:empty{display:none}.card-i.thanks{width:170px;aspect-ratio:3/4;border-radius:6px}
.fin{padding-top:80px}.fin-cards{width:280px;height:240px}.fin-back{width:140px;height:210px;left:35px;top:18px;rotate:-10deg}.fin-q{width:140px;height:210px;left:105px;rotate:9deg}
.fin-closing{font:400 23px/1.5 var(--disp);max-width:600px;margin:26px auto 8px;text-wrap:balance;overflow-wrap:anywhere}.fin-n{margin-top:0}.fin>.k{max-width:600px;line-height:1.8}.fin-links{max-width:700px;flex-wrap:wrap;gap:8px 26px}
.lz-photo-color .bw img,.lz-photo-color .bw .ph-img{filter:none}
@media(min-width:900px){
 .hero{grid-template-columns:minmax(0,450px) minmax(0,460px);gap:36px 80px;padding:36px 48px 80px;min-height:min(100svh,1060px)}
 .hero .court{width:100%}.hero-txt{gap:20px}.names{font-size:clamp(72px,7vw,104px)}.hero-top{padding-bottom:10px;border-bottom:1px solid #ffffff20}
 .cards{gap:50px;padding-inline:0}.cards .card-i{min-height:300px}.story-cards{gap:80px}.photo-card{width:360px}.card-i.text{width:440px}
 .deal{max-width:1080px;grid-template-columns:repeat(5,minmax(0,1fr));gap:24px;padding:12px}.pcard:nth-child(3){translate:0 -8px}
 .evs{max-width:1040px;gap:28px}.ev{grid-template-columns:40px minmax(0,1fr);gap:16px;padding:26px 0 0;border-top:1px solid var(--line)}
 .travel{max-width:1200px;margin-inline:auto;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:70px}.card-i.hotel{margin-top:72px}
 .fin-cards{scale:1.08;margin-bottom:30px}
}
@media(max-height:640px) and (max-width:599px){.opening{gap:14px;padding:20px 20px 90px}.deck{width:min(48vw,calc((100svh - 360px)*.666667));min-width:105px}.op-intro{font-size:10px}.op-guest{font-size:26px}.op-ticket{gap:3px}.op-seats{margin-bottom:5px}}
@media(max-height:600px) and (min-width:600px){
 .opening{display:grid;grid-template-columns:240px minmax(200px,340px);grid-template-rows:auto auto;justify-content:center;align-content:center;column-gap:54px;row-gap:16px;padding:24px 40px 82px;overflow:auto}
 .deck{grid-column:1;grid-row:1/3;justify-self:center;width:min(190px,calc((100svh - 130px)*.666667));min-width:100px}
 .op-intro{grid-column:2;align-self:end}.op-ticket{grid-column:2;align-self:start}.op-guest{font-size:26px}.op-ticket .btn{min-height:46px}.op-seats{margin-bottom:4px}
}
@media(max-width:359px){.sec{padding-inline:20px}.hero{padding-inline:20px}.court{width:86%}.btn{padding-inline:20px;white-space:normal;text-align:center}.cards{padding-inline:8px}.cards .card-i{padding-inline:30px}.deal{gap:16px}.table{padding-inline:20px}.opt{padding-inline:12px;font-size:13px}.fin-cards{scale:.85;margin-block:-15px}}
@media(prefers-reduced-motion:reduce){.opening.open .deck,.opening.flip .deck{transform:scale(var(--face-scale,1))}.pcard{transition:none}}
/* El naipe gana escala en pantallas grandes y cabe entero en escritorios de menor altura. */
@media(min-width:900px){.hero .court{width:min(100%,calc((100svh - 200px)*.638298));min-width:240px;justify-self:center}}

/* Opción «sin fotos» (editor: photosOn; demo: botón Sin fotos o ?fotos=no): html.lz-no-photos.
   Las cartas llevan la inicial de cada nombre en lugar de la foto; la historia queda en su carta de texto y la galería se oculta. */
html:not(.lz-no-photos) .np-only,.lz-no-photos .ph-only{display:none!important}
.lz-no-photos .half,.lz-no-photos .fph{background:var(--card);box-shadow:inset 0 0 0 1px var(--line)}
.lz-no-photos .half img,.lz-no-photos .fph img{display:none}
.court-np{position:absolute;inset:0;display:grid;place-items:center;font:400 clamp(64px,22vw,96px)/1 var(--disp);color:var(--red)}
.fph .court-np{font-size:44px}
.lz-no-photos .photo-card,.lz-no-photos #galeria{display:none}
@media(min-width:900px){.court-np{font-size:104px}}
