.saltar{position:absolute;left:-999px;top:0;background:var(--olivo);color:var(--fondo);padding:var(--s3);z-index:60}
.saltar:focus{left:0}
.centro{text-align:center}
/* Barra y menú */
.barra{position:fixed;inset:0 0 auto;z-index:40;display:flex;justify-content:space-between;align-items:center;padding:calc(var(--s3) + env(safe-area-inset-top)) var(--s4) var(--s3);color:var(--fondo);transition:background .3s,color .3s}
.barra.sobre-claro{background:rgba(247,242,233,.94);color:var(--olivo)}
.monograma{font:italic 1.5rem var(--serif);color:inherit;text-decoration:none;min-height:44px;display:flex;align-items:center;gap:var(--s1)}
.btn-menu,.cerrar{font:500 .9375rem var(--sans);min-height:44px;min-width:44px;padding:0 var(--s4);background:none;color:inherit;border:var(--linea);border-radius:var(--r-pill);cursor:pointer}
.nav-desktop{display:none}
dialog#menu{border:0;width:100%;height:100%;max-width:none;max-height:none;background:var(--olivo);color:var(--fondo);padding:var(--s4)}
dialog#menu::backdrop{background:var(--olivo)}
dialog#menu nav{display:flex;flex-direction:column;gap:var(--s3);margin-top:var(--s7)}
dialog#menu nav a{font:2.25rem/1.2 var(--serif);color:var(--fondo);text-decoration:none;padding:var(--s2) 0}
dialog#menu .cerrar{float:right;color:var(--fondo)}
@media (min-width:900px){.nav-desktop{display:flex;gap:var(--s5)}.nav-desktop a{color:inherit;text-decoration:none;padding:var(--s2) 0;border-bottom:1px solid transparent}.nav-desktop a[aria-current]{border-color:var(--bronce)}.btn-menu{display:none}}
/* Botones */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 var(--s5);border-radius:var(--r-pill);font:500 1rem var(--sans);text-decoration:none;cursor:pointer;transition:background .25s,color .25s}
.btn-solido{background:var(--olivo);color:var(--fondo);border:1px solid var(--olivo);width:100%;margin-top:var(--s4)}
.btn-solido:hover{background:#3b4233}
.btn-solido:disabled{background:var(--salvia);border-color:var(--salvia);cursor:not-allowed}
.btn-linea{border:var(--linea);color:var(--olivo);background:none;margin-top:var(--s4)}
.btn-linea:hover{background:var(--olivo);color:var(--fondo)}
.btn-linea[aria-disabled=true]{opacity:.55;pointer-events:none}
.flotante{position:fixed;right:var(--s3);bottom:calc(var(--s3) + env(safe-area-inset-bottom));z-index:30;min-height:48px;display:flex;align-items:center;padding:0 var(--s4);background:var(--olivo);color:var(--fondo);border-radius:var(--r-pill);text-decoration:none;font-weight:500;box-shadow:0 4px 16px rgba(43,42,38,.25);transition:opacity .25s}
.flotante.oculto{opacity:0;pointer-events:none}
/* Hero: único momento memorable = la rama que se dibuja */
.hero{max-width:none;min-height:100dvh;background:var(--olivo);text-align:center;padding:calc(var(--s7) + env(safe-area-inset-top)) var(--s4) var(--s6);display:flex;flex-direction:column;align-items:center}
.hero h1,.hero .fecha,.hero .frase{color:var(--fondo)}
.hero h1{font-size:clamp(2.75rem,13vw,5rem);margin-top:var(--s4)}
.hero h1 i{color:var(--bronce)}
.fecha{font:500 1rem var(--sans);letter-spacing:.2em;margin-top:var(--s3)}
.frase{font:italic 1.375rem/1.4 var(--serif);margin-top:var(--s3);max-width:24rem}
.bajar{margin-top:auto;padding-top:var(--s5);color:var(--fondo);text-decoration:none;min-height:44px;opacity:.85}
.rama-hero{width:140px;margin-bottom:var(--s3)}
.rama-hero path{stroke-dasharray:1;stroke-dashoffset:1;animation:dibujar 2.2s ease-out .2s forwards}
.rama-hero path:nth-child(n+2){animation-delay:.9s}
@keyframes dibujar{to{stroke-dashoffset:0}}
.arco{width:min(72vw,300px);aspect-ratio:4/5;border-radius:var(--r-arco) var(--r-arco) 0 0;overflow:hidden;position:relative;background:var(--salvia)}
.arco img,.galeria img{width:100%;height:100%;object-fit:cover}
.ph::after{content:attr(data-label);position:absolute;inset:0;display:none;align-items:center;justify-content:center;color:var(--fondo);font:italic 1.25rem var(--serif);padding:var(--s3);text-align:center}
.ph.sin-foto::after{display:flex}
.ph.sin-foto img{display:none}
/* Historia */
.linea-tiempo{list-style:none;padding:0 0 0 var(--s4);border-left:var(--linea)}
.linea-tiempo li{position:relative;padding-bottom:var(--s5)}
.linea-tiempo li::before{content:"";position:absolute;left:calc(-1 * var(--s4) - 5px);top:.6rem;width:9px;height:9px;border-radius:50%;background:var(--bronce)}
.linea-tiempo li:last-child{padding-bottom:0}
.linea-tiempo li{opacity:0;transform:translateY(12px);transition:opacity .6s,transform .6s}
.linea-tiempo li.visto{opacity:1;transform:none}
/* Evento */
.tarjetas{display:grid;gap:var(--s4)}
.tarjeta{border:var(--linea);border-radius:var(--r-card);padding:var(--s5) var(--s4);text-align:center}
.lugar{font:1.5rem var(--serif);color:var(--olivo);margin:var(--s2) 0}
@media (min-width:700px){.tarjetas{grid-template-columns:1fr 1fr}}
/* Cuenta regresiva */
.cuenta{max-width:none;background:var(--salvia-claro)}
#contador{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s2);max-width:30rem;margin:0 auto;text-align:center}
#contador b{display:block;font:400 clamp(2.25rem,12vw,3.5rem)/1 var(--serif);color:var(--olivo);font-variant-numeric:tabular-nums}
#contador span{font-size:.9375rem;color:var(--bronce-txt)}
/* Galería */
.galeria{display:grid;grid-template-columns:1fr 1fr;gap:var(--s2)}
.galeria figure{aspect-ratio:3/4;background:var(--salvia);position:relative;overflow:hidden;border-radius:var(--r-card)}
.galeria figure:nth-child(3n+1){grid-column:span 2;aspect-ratio:3/2}
@media (min-width:900px){.galeria{grid-template-columns:repeat(3,1fr)}.galeria figure:nth-child(3n+1){grid-column:auto;aspect-ratio:3/4}}
/* Vestimenta */
.paleta{list-style:none;display:flex;justify-content:center;gap:var(--s3);margin-top:var(--s4);padding:0}
.paleta li{width:40px;height:40px;border-radius:50%;border:1px solid var(--bronce)}
/* RSVP */
form{display:grid;gap:var(--s2);margin-top:var(--s4)}
label,legend{font-weight:500;margin-top:var(--s3);color:var(--olivo)}
input:not([type=radio]),select,textarea{font:inherit;width:100%;min-height:48px;padding:var(--s2) var(--s3);background:#fff;border:1px solid var(--salvia);border-radius:var(--r-card);color:var(--texto)}
input:focus-visible,select:focus-visible,textarea:focus-visible{border-color:var(--olivo)}
input[aria-invalid=true]{border-color:var(--error)}
fieldset{border:0;padding:0;display:grid;gap:var(--s2)}
.opcion{display:flex;align-items:center;gap:var(--s3);min-height:48px;padding:0 var(--s3);border:1px solid var(--salvia);border-radius:var(--r-card);background:#fff;font-weight:400;color:var(--texto);margin:0;cursor:pointer}
.opcion:has(input:checked){border-color:var(--olivo);background:var(--salvia-claro)}
.opcion input{width:22px;height:22px;accent-color:var(--olivo)}
.ayuda{font-size:.9375rem;color:#5d5f52;font-weight:400}
.error{color:var(--error);font-size:.9375rem}
.gracias{text-align:center;padding:var(--s6) 0}
.gracias:focus{outline:none}
/* Detalles y FAQ */
.sep{margin-top:var(--s5)}
details{border-bottom:var(--linea);padding:var(--s3) 0}
summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font:1.375rem var(--serif);color:var(--olivo)}
details p{margin-top:var(--s2)}
/* Cierre */
.cierre{background:var(--olivo);text-align:center;padding:var(--s7) var(--s4) calc(var(--s8) + env(safe-area-inset-bottom));display:flex;flex-direction:column;align-items:center;gap:var(--s3);color:var(--fondo)}
.cierre h2{color:var(--fondo);margin-top:var(--s4)}
.cierre h2 i{color:var(--bronce)}
