/* Secciones posteriores de la invitación */
.invitacion {
            min-height: 100vh;
            display: grid;
            place-items: center;
            padding: 70px 20px;
            text-align: center;

            background:
                linear-gradient(
                    rgba(255, 255, 255, 0.62),
                    rgba(255, 255, 255, 0.62)
                ),
                linear-gradient(
                    145deg,
                    #f7d9dc,
                    #fff8f5
                );
        }

.invitacion-contenido {
            width: min(780px, 100%);
            padding: clamp(38px, 7vw, 75px);

            border: 1px solid rgba(211, 166, 79, 0.65);

            background: rgba(255, 250, 247, 0.78);
            backdrop-filter: blur(8px);

            box-shadow:
                0 25px 60px rgba(123, 77, 80, 0.12);
        }

.invitacion-contenido h2 {
            color: var(--rosa-oscuro);
            font-family: "Great Vibes", cursive;
            font-size: clamp(65px, 10vw, 105px);
            font-weight: 400;
        }

.invitacion-contenido p {
            max-width: 620px;
            margin: 16px auto 0;
            font-family: "Cormorant Garamond", serif;
            font-size: clamp(21px, 3vw, 30px);
            line-height: 1.45;
}

/* Bienvenida editorial */
.bienvenida {
    position: relative;
    isolation: isolate;
    min-height: 100svh;
    overflow: hidden;
    padding: clamp(58px, 8vw, 96px) 22px;
    background:
        radial-gradient(circle at 50% 18%, rgba(255,255,255,.94), transparent 30%),
        radial-gradient(circle at 12% 72%, rgba(239,190,202,.36), transparent 28%),
        radial-gradient(circle at 88% 78%, rgba(250,220,225,.52), transparent 30%),
        linear-gradient(145deg, #fffaf7 0%, #fae3e6 48%, #fff8f4 100%);
}

.bienvenida::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -2;
    opacity: .35;
    background-image: url("../assets/fondos/textura-papel.svg");
    background-size: 480px;
    mix-blend-mode: multiply;
}

.bienvenida::after {
    content: "";
    position: absolute;
    z-index: -1;
    width: min(720px, 120vw);
    aspect-ratio: 1;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%) scale(.72);
    opacity: 0;
    border: 1px solid rgba(199,151,73,.22);
    border-radius: 50%;
    box-shadow: 0 0 0 50px rgba(255,255,255,.08), 0 0 0 51px rgba(199,151,73,.10);
}

.bienvenida.entrada-activa::after {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
    transition: opacity .9s ease, transform 1.15s cubic-bezier(.2,.78,.2,1);
}

.bienvenida-marco {
    position: absolute;
    inset: 16px;
    border: 1px solid rgba(199,151,73,.58);
    pointer-events: none;
}

.bienvenida-marco::before,
.bienvenida-marco::after {
    content: "✦";
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    padding: 0 12px;
    color: var(--dorado);
    background: #fff7f4;
}

.bienvenida-marco::before { top: -12px; }
.bienvenida-marco::after { bottom: -12px; }

.bienvenida-floral {
    position: absolute;
    z-index: -1;
    width: clamp(250px, 33vw, 470px);
    opacity: .55;
    filter: saturate(.62) drop-shadow(0 18px 25px rgba(112,69,77,.12));
    pointer-events: none;
}

.bienvenida-floral-uno { top: -82px; right: -105px; transform: rotate(82deg); }
.bienvenida-floral-dos { bottom: -90px; left: -100px; transform: rotate(-96deg); }

.bienvenida-contenido {
    position: relative;
    width: min(760px, 100%);
    margin: auto;
    text-align: center;
}

.bienvenida-monograma {
    position: absolute;
    z-index: -1;
    left: 50%;
    top: 47%;
    transform: translate(-50%, -50%);
    color: rgba(180,111,117,.055);
    font-family: "Great Vibes", cursive;
    font-size: clamp(300px, 43vw, 540px);
    font-weight: 400;
    line-height: 1;
    pointer-events: none;
}

.bienvenida-etiqueta {
    font-family: "Montserrat", sans-serif;
    font-size: clamp(10px, 1.2vw, 12px);
    letter-spacing: .32em;
    text-transform: uppercase;
    color: rgba(117,74,80,.76);
}

.bienvenida-corona {
    display: block;
    width: clamp(58px, 7vw, 82px);
    margin: 14px auto 4px;
    filter: drop-shadow(0 7px 8px rgba(113,66,44,.16));
}

.bienvenida.entrada-activa .bienvenida-corona {
    animation: brilloBienvenida 1.5s ease .75s both;
}

.bienvenida-kicker {
    font-family: "Cormorant Garamond", serif;
    font-size: clamp(16px, 2vw, 22px);
    letter-spacing: .38em;
    text-transform: uppercase;
}

.bienvenida h2 {
    margin-top: -7px;
    color: var(--rosa-oscuro);
    font-family: "Great Vibes", cursive;
    font-size: clamp(84px, 12vw, 134px);
    font-weight: 400;
    line-height: .94;
    text-shadow: 0 2px 0 rgba(255,255,255,.9), 0 13px 28px rgba(121,71,75,.14);
}

.bienvenida-fecha {
    width: min(540px, 96%);
    margin: 17px auto 24px;
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    color: var(--vino);
    font-family: "Cormorant Garamond", serif;
    text-transform: uppercase;
}

.bienvenida-fecha span {
    padding: 10px;
    border-top: 1px solid rgba(199,151,73,.65);
    border-bottom: 1px solid rgba(199,151,73,.65);
    font-size: clamp(13px, 2vw, 18px);
    letter-spacing: .14em;
}

.bienvenida-fecha strong {
    padding: 0 23px;
    color: var(--rosa-oscuro);
    font-size: clamp(58px, 8vw, 84px);
    font-weight: 500;
    line-height: .8;
}

.bienvenida.entrada-activa .bienvenida-fecha strong {
    animation: brilloTextoDorado 1.6s ease 1.1s both;
}

.bienvenida-fecha small {
    grid-column: 1 / -1;
    margin-top: 10px;
    color: var(--dorado);
    font-size: clamp(22px, 3vw, 31px);
    font-weight: 600;
    letter-spacing: .12em;
}

.bienvenida blockquote {
    max-width: 630px;
    margin: 0 auto;
    color: #734b50;
    font-family: "Cormorant Garamond", serif;
    font-size: clamp(19px, 2.5vw, 26px);
    font-style: italic;
    line-height: 1.48;
}

.bienvenida-ornamento {
    display: flex;
    align-items: center;
    gap: 12px;
    width: min(290px, 72%);
    margin: 22px auto 9px;
    color: var(--dorado);
}

.bienvenida-ornamento::before,
.bienvenida-ornamento::after { content: ""; flex: 1; height: 1px; background: linear-gradient(90deg, transparent, var(--dorado)); }
.bienvenida-ornamento::after { background: linear-gradient(90deg, var(--dorado), transparent); }
.bienvenida-ornamento span { font-size: 24px; }

.bienvenida-cierre {
    font-family: "Cormorant Garamond", serif;
    font-size: clamp(17px, 2vw, 21px);
    letter-spacing: .06em;
}

.ir-cuenta {
    margin: 20px auto 0;
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    gap: 3px;
    padding: 8px 22px 4px;
    border: 0;
    color: var(--vino);
    background: transparent;
    cursor: pointer;
}

.ir-cuenta span {
    position: relative;
    font-family: "Montserrat", sans-serif;
    font-size: 10px;
    letter-spacing: .21em;
    text-transform: uppercase;
}

.ir-cuenta span::after {
    content: "";
    position: absolute;
    left: 12%;
    right: 12%;
    bottom: -7px;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--dorado), transparent);
    transform: scaleX(.55);
    transition: transform .35s ease;
}

.ir-cuenta i {
    margin-top: 7px;
    color: var(--dorado);
    font-family: "Cormorant Garamond", serif;
    font-size: 23px;
    font-style: normal;
    animation: indicarAbajo 1.9s ease-in-out infinite;
}

.ir-cuenta:hover span::after,
.ir-cuenta:focus-visible span::after { transform: scaleX(1); }
.ir-cuenta:focus-visible { outline: 1px solid rgba(199,151,73,.72); outline-offset: 5px; border-radius: 999px; }

.bienvenida.preparando-entrada .bienvenida-contenido {
    opacity: 0;
    transform: translateY(34px) scale(.96);
}

.bienvenida .bienvenida-contenido {
    transition: opacity .85s ease, transform 1s cubic-bezier(.2,.78,.2,1);
}

.bienvenida .entrada-pieza {
    opacity: 0;
    transform: translateY(18px);
}

.bienvenida.entrada-activa .entrada-pieza {
    opacity: 1;
    transform: none;
    transition: opacity .72s ease, transform .82s cubic-bezier(.2,.78,.2,1);
}

.bienvenida.entrada-activa .pieza-1 { transition-delay: .20s; }
.bienvenida.entrada-activa .pieza-2 { transition-delay: .36s; }
.bienvenida.entrada-activa .pieza-3 { transition-delay: .52s; }
.bienvenida.entrada-activa .pieza-4 { transition-delay: .72s; }
.bienvenida.entrada-activa .pieza-5 { transition-delay: .92s; }
.bienvenida.entrada-activa .pieza-6 { transition-delay: 1.10s; }

.control-musica {
    position: fixed;
    z-index: 900;
    right: max(16px, env(safe-area-inset-right));
    bottom: max(18px, env(safe-area-inset-bottom));
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 44px;
    padding: 8px 13px 8px 9px;
    border: 1px solid rgba(195,147,67,.62);
    border-radius: 999px;
    color: var(--vino);
    background: rgba(255,250,247,.82);
    box-shadow: 0 8px 22px rgba(102,59,65,.14);
    backdrop-filter: blur(12px);
    cursor: pointer;
}

.control-musica-icono {
    width: 27px;
    aspect-ratio: 1;
    display: grid;
    place-items: center;
    border-radius: 50%;
    color: white;
    background: linear-gradient(145deg, #e0b65e, #a96c32);
    box-shadow: inset 0 0 0 1px rgba(255,243,203,.65);
}

.control-musica-texto {
    font-size: 10px;
    letter-spacing: .15em;
    text-transform: uppercase;
}

.control-musica.reproduciendo .control-musica-icono {
    animation: pulsoMusica 2.2s ease-in-out infinite;
}

.bienvenida.entrada-activa .bienvenida-contenido {
    opacity: 1;
    transform: none;
}

@media (max-width: 620px) {
    .bienvenida { padding: 48px 26px 44px; }
    .bienvenida-marco { inset: 10px; }
    .bienvenida-floral { width: 235px; opacity: .38; }
    .bienvenida-floral-uno { top: -60px; right: -115px; }
    .bienvenida-floral-dos { bottom: -60px; left: -112px; }
    .bienvenida-corona { margin-top: 10px; }
    .bienvenida h2 { font-size: clamp(76px, 24vw, 94px); }
    .bienvenida-fecha { margin: 13px auto 18px; }
    .bienvenida-fecha strong { padding: 0 14px; }
    .bienvenida blockquote { font-size: 19px; line-height: 1.38; }
    .bienvenida-ornamento { margin-top: 17px; }
    .bienvenida-monograma { font-size: 330px; }
    .control-musica { right: 14px; bottom: 14px; padding-right: 10px; }
    .control-musica-texto { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
}

/* Enlaces de hoteles táctiles en navegadores iOS */
.hotel-card::after { pointer-events: none; }
.hotel-acciones { z-index: 4; }
.hotel-acciones a { position: relative; z-index: 5; touch-action: manipulation; }

/* Pin de ubicación vectorial, simétrico y centrado */
.evento-sello {
    top: -23px;
    width: 34px;
    height: 47px;
    color: #c8943f;
    filter: drop-shadow(0 5px 7px rgba(112,67,76,.12));
}
.evento-sello::before,
.evento-sello::after,
.evento-sello > span { display: none; }
.evento-sello svg {
    display: block;
    width: 100%;
    height: 100%;
    overflow: visible;
}
.evento-sello path {
    fill: #fffaf5;
    stroke: currentColor;
    stroke-width: 1.25;
    vector-effect: non-scaling-stroke;
}
.evento-sello circle {
    fill: #d1a04c;
    stroke: #fffaf5;
    stroke-width: 1.5;
}
.boton-ubicacion .ubicacion-pin {
    display: block;
    width: 15px;
    height: 21px;
    flex: 0 0 15px;
    overflow: visible;
    background: none;
}
.ubicacion-pin::before,
.ubicacion-pin::after { display: none; }
.boton-ubicacion .ubicacion-pin path {
    fill: rgba(255,250,246,.96);
    stroke: currentColor;
    stroke-width: 2;
    vector-effect: non-scaling-stroke;
}
.boton-ubicacion .ubicacion-pin circle {
    fill: currentColor;
}
.boton-ubicacion:hover .ubicacion-pin path { fill: rgba(255,255,255,.18); }

/* Cuenta regresiva: joya editorial, no panel de estadísticas */
.cuenta-regresiva {
    position: relative;
    isolation: isolate;
    min-height: 100svh;
    display: grid;
    place-items: center;
    overflow: hidden;
    padding: clamp(65px, 9vw, 105px) 22px;
    color: var(--vino);
    background:
        radial-gradient(circle at 50% 48%, rgba(255,255,255,.82), transparent 34%),
        radial-gradient(circle at 80% 16%, rgba(234,184,196,.30), transparent 29%),
        linear-gradient(155deg, #fff9f5, #f4d8dd 52%, #fff8f3);
}

.cuenta-regresiva::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -2;
    opacity: .38;
    background: url("../assets/fondos/textura-papel.svg") center / 480px;
    mix-blend-mode: multiply;
}

.cuenta-marco {
    position: absolute;
    inset: 16px;
    border: 1px solid rgba(199,151,73,.58);
    pointer-events: none;
}

.cuenta-marco::before,
.cuenta-marco::after {
    content: "◆";
    position: absolute;
    left: 50%;
    transform: translateX(-50%) rotate(45deg);
    padding: 5px 11px;
    color: var(--dorado);
    font-size: 8px;
    background: #fff7f3;
}
.cuenta-marco::before { top: -12px; }
.cuenta-marco::after { bottom: -12px; }

.cuenta-floral {
    position: absolute;
    z-index: -1;
    width: clamp(250px, 33vw, 480px);
    opacity: .42;
    filter: saturate(.6) drop-shadow(0 18px 25px rgba(112,69,77,.11));
    pointer-events: none;
}
.cuenta-floral-uno { top: -105px; left: -125px; transform: rotate(-10deg); }
.cuenta-floral-dos { right: -125px; bottom: -110px; transform: rotate(172deg); }

.cuenta-contenido {
    width: min(900px, 100%);
    text-align: center;
}

.cuenta-kicker {
    font-family: "Montserrat", sans-serif;
    font-size: clamp(10px, 1.2vw, 12px);
    letter-spacing: .34em;
    text-transform: uppercase;
}

.cuenta-regresiva h2 {
    margin-top: 5px;
    color: var(--rosa-oscuro);
    font-family: "Great Vibes", cursive;
    font-size: clamp(60px, 8vw, 96px);
    font-weight: 400;
    line-height: 1;
}

.cuenta-intro {
    margin-top: 5px;
    font-family: "Cormorant Garamond", serif;
    font-size: 19px;
    font-style: italic;
}

.reloj-editorial {
    position: relative;
    width: min(820px, 94vw);
    min-height: 310px;
    margin: 22px auto 15px;
    display: grid;
    grid-template-columns: 1.2fr auto 1fr auto 1fr auto 1fr;
    align-items: center;
    gap: clamp(9px, 2vw, 24px);
    padding: 55px clamp(20px, 5vw, 62px);
}

.escena-gran-dia {
    position: relative;
    display: none;
    width: min(820px, 94vw);
    min-height: 310px;
    margin: 22px auto 15px;
    place-items: center;
    align-content: center;
    overflow: hidden;
    padding: 50px 35px;
    border: 1px solid rgba(199,151,73,.68);
    border-radius: 50%;
    background:
        radial-gradient(circle at 50% 42%, rgba(255,255,255,.95), rgba(255,247,227,.52) 45%, rgba(232,184,91,.11) 72%, transparent);
    box-shadow: 0 0 0 10px rgba(255,255,255,.28), 0 0 55px rgba(211,166,79,.24), inset 0 0 60px rgba(255,255,255,.55);
}

.es-gran-dia .reloj-editorial,
.evento-finalizado .reloj-editorial { display: none; }
.es-gran-dia .escena-gran-dia,
.evento-finalizado .escena-gran-dia { display: grid; }

.escena-gran-dia > img {
    width: clamp(65px, 8vw, 92px);
    filter: drop-shadow(0 0 15px rgba(211,166,79,.55));
}
.gran-dia-kicker {
    margin-top: 7px;
    font-family: "Montserrat", sans-serif;
    font-size: 10px;
    letter-spacing: .30em;
    text-transform: uppercase;
}
.escena-gran-dia > strong {
    display: block;
    color: var(--rosa-oscuro);
    font-family: "Great Vibes", cursive;
    font-size: clamp(64px, 9vw, 108px);
    font-weight: 400;
    line-height: 1.05;
    text-shadow: 0 2px white, 0 0 28px rgba(211,166,79,.28);
}
.escena-gran-dia > p:last-child {
    font-family: "Cormorant Garamond", serif;
    font-size: clamp(18px, 2.2vw, 24px);
    font-style: italic;
}

.lluvia-dorada { position: absolute; inset: 0; overflow: hidden; pointer-events: none; }
.lluvia-dorada span {
    position: absolute;
    top: -12%;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--dorado);
    box-shadow: 0 0 9px rgba(211,166,79,.85);
    animation: lluviaDorada 4.8s linear infinite;
}
.lluvia-dorada span:nth-child(1) { left: 8%; animation-delay: -.4s; }
.lluvia-dorada span:nth-child(2) { left: 16%; animation-delay: -2.1s; width: 3px; height: 3px; }
.lluvia-dorada span:nth-child(3) { left: 25%; animation-delay: -3.4s; }
.lluvia-dorada span:nth-child(4) { left: 34%; animation-delay: -1.1s; width: 4px; height: 4px; }
.lluvia-dorada span:nth-child(5) { left: 43%; animation-delay: -2.8s; }
.lluvia-dorada span:nth-child(6) { left: 51%; animation-delay: -.8s; width: 3px; height: 3px; }
.lluvia-dorada span:nth-child(7) { left: 59%; animation-delay: -3.8s; }
.lluvia-dorada span:nth-child(8) { left: 67%; animation-delay: -1.7s; width: 4px; height: 4px; }
.lluvia-dorada span:nth-child(9) { left: 74%; animation-delay: -2.5s; }
.lluvia-dorada span:nth-child(10) { left: 82%; animation-delay: -.2s; width: 3px; height: 3px; }
.lluvia-dorada span:nth-child(11) { left: 89%; animation-delay: -3.1s; }
.lluvia-dorada span:nth-child(12) { left: 95%; animation-delay: -1.4s; width: 4px; height: 4px; }

@keyframes lluviaDorada {
    0% { transform: translateY(-15px) rotate(0deg); opacity: 0; }
    14% { opacity: .9; }
    82% { opacity: .55; }
    100% { transform: translateY(355px) rotate(180deg); opacity: 0; }
}

.reloj-anillo {
    position: absolute;
    inset: 0;
    border: 1px solid rgba(199,151,73,.50);
    border-radius: 50%;
    box-shadow:
        0 0 0 10px rgba(255,255,255,.28),
        0 18px 50px rgba(113,67,76,.09),
        inset 0 0 55px rgba(255,255,255,.48);
}

.reloj-anillo::before,
.reloj-anillo::after {
    content: "✦";
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    color: var(--dorado);
    padding: 0 12px;
    background: #fbe9e8;
}
.reloj-anillo::before { top: -11px; }
.reloj-anillo::after { bottom: -11px; }

.tiempo { position: relative; z-index: 1; }
.tiempo strong {
    display: block;
    color: var(--rosa-oscuro);
    font-family: "Cormorant Garamond", serif;
    font-size: clamp(50px, 7vw, 82px);
    font-weight: 400;
    line-height: .9;
    font-variant-numeric: tabular-nums;
}
.tiempo-dias strong { color: #ad6570; font-size: clamp(62px, 8vw, 96px); }
.tiempo span {
    display: block;
    margin-top: 10px;
    font-family: "Montserrat", sans-serif;
    font-size: clamp(9px, 1vw, 11px);
    letter-spacing: .22em;
    text-transform: uppercase;
}
.reloj-editorial > i { color: rgba(199,151,73,.68); font-size: 11px; font-style: normal; }

.cuenta-fecha-final {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    font-family: "Cormorant Garamond", serif;
    text-transform: uppercase;
}
.cuenta-fecha-final span { color: var(--dorado); font-size: 31px; line-height: 1; }
.cuenta-fecha-final p { padding-left: 12px; border-left: 1px solid rgba(199,151,73,.55); font-size: 14px; letter-spacing: .18em; }
.cuenta-cierre { margin-top: 10px; font-family: "Cormorant Garamond", serif; font-size: clamp(18px, 2vw, 22px); font-style: italic; }

.ir-mensaje {
    margin: 13px auto 0;
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: 7px 22px 3px;
    border: 0;
    color: var(--vino);
    background: transparent;
    cursor: pointer;
}
.ir-mensaje span { font-family: "Cormorant Garamond", serif; font-size: 17px; font-style: italic; letter-spacing: .04em; }
.ir-mensaje i { color: var(--dorado); font-size: 22px; font-style: normal; animation: indicarAbajo 1.9s ease-in-out infinite; }
.ir-mensaje:focus-visible { outline: 1px solid rgba(199,151,73,.72); outline-offset: 4px; border-radius: 999px; }

.reloj-editorial,
.cuenta-regresiva h2,
.cuenta-kicker,
.cuenta-intro,
.cuenta-fecha-final,
.cuenta-cierre { transition: opacity .65s ease, transform .75s ease, filter .7s ease; }

.tiempo-detenido .reloj-editorial { opacity: 0; transform: scale(.82); filter: blur(8px) brightness(1.2); }
.tiempo-detenido h2,
.tiempo-detenido .cuenta-kicker,
.tiempo-detenido .cuenta-intro,
.tiempo-detenido .cuenta-fecha-final,
.tiempo-detenido .cuenta-cierre { opacity: .08; transform: translateY(-8px); }
.tiempo-detenido .ir-mensaje { opacity: 0; pointer-events: none; }
.tiempo-detenido::after {
    content: "✦";
    position: absolute;
    z-index: 5;
    left: 50%;
    top: 50%;
    color: var(--dorado);
    font-size: 34px;
    transform: translate(-50%, -50%);
    animation: destelloPuente .95s ease forwards;
}

@keyframes destelloPuente {
    0% { opacity: 0; transform: translate(-50%, -50%) scale(.35) rotate(0); text-shadow: 0 0 0 transparent; }
    45% { opacity: 1; transform: translate(-50%, -50%) scale(1.6) rotate(28deg); text-shadow: 0 0 30px rgba(211,166,79,.9); }
    100% { opacity: 0; transform: translate(-50%, 150px) scale(.55) rotate(65deg); text-shadow: 0 0 18px rgba(211,166,79,.4); }
}

/* Mensaje especial */
.mensaje-especial {
    position: relative;
    isolation: isolate;
    min-height: 100svh;
    display: grid;
    place-items: center;
    overflow: hidden;
    padding: clamp(65px, 9vw, 110px) 24px;
    color: var(--vino);
    background:
        radial-gradient(circle at 50% 48%, rgba(255,255,255,.93), transparent 36%),
        linear-gradient(145deg, #fffaf7, #f9e9e8 52%, #fff8f2);
}
.mensaje-especial::before { content: ""; position: absolute; inset: 0; z-index: -3; opacity: .28; background: url("../assets/fondos/textura-papel.svg") center / 480px; mix-blend-mode: multiply; }
.mensaje-marco { position: absolute; inset: 16px; border: 1px solid rgba(199,151,73,.48); pointer-events: none; }
.mensaje-bruma { position: absolute; z-index: -2; width: min(780px, 115vw); aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, rgba(243,211,216,.56), rgba(255,255,255,.18) 52%, transparent 70%); filter: blur(12px); }
.mensaje-floral { position: absolute; z-index: -1; width: clamp(250px, 31vw, 440px); opacity: .30; filter: saturate(.55); }
.mensaje-floral-uno { right: -115px; top: -90px; transform: rotate(82deg); }
.mensaje-floral-dos { left: -120px; bottom: -95px; transform: rotate(-96deg); }
.mensaje-mariposa { position: absolute; right: 13%; top: 22%; width: clamp(34px, 4vw, 55px); opacity: .62; filter: drop-shadow(0 7px 8px rgba(108,66,72,.15)); animation: vueloMariposa 7s ease-in-out infinite; }
.mensaje-contenido { width: min(780px, 100%); text-align: center; }
.mensaje-kicker { font-family: "Montserrat", sans-serif; font-size: 11px; letter-spacing: .34em; text-transform: uppercase; }
.mensaje-destello { margin: 22px auto; color: var(--dorado); font-size: 22px; text-shadow: 0 0 16px rgba(211,166,79,.5); }
.mensaje-especial blockquote { margin: 0; font-family: "Cormorant Garamond", serif; font-style: italic; }
.frase-parte { display: block; opacity: 0; transform: translateY(22px); }
.frase-parte:nth-child(1), .frase-parte:nth-child(2) { font-size: clamp(25px, 3.5vw, 39px); line-height: 1.25; }
.frase-parte:nth-child(3), .frase-parte:nth-child(4) { color: var(--rosa-oscuro); font-family: "Great Vibes", cursive; font-size: clamp(62px, 9vw, 108px); line-height: .88; }
.mensaje-firma { margin-top: 30px; opacity: 0; }
.mensaje-firma span { display: block; font-family: "Cormorant Garamond", serif; font-size: 17px; font-style: italic; }
.mensaje-firma strong { display: block; color: var(--rosa-oscuro); font-family: "Great Vibes", cursive; font-size: 48px; font-weight: 400; }
.ir-familia { margin: 18px auto 0; display: inline-flex; flex-direction: column; align-items: center; gap: 5px; padding: 8px 20px 3px; border: 0; color: var(--vino); background: transparent; cursor: pointer; opacity: 0; }
.ir-familia span { font-family: "Cormorant Garamond", serif; font-size: 17px; font-style: italic; letter-spacing: .04em; }
.ir-familia i { color: var(--dorado); font-size: 22px; font-style: normal; animation: indicarAbajo 1.9s ease-in-out infinite; }
.ir-familia:focus-visible { outline: 1px solid rgba(199,151,73,.72); outline-offset: 4px; border-radius: 999px; }
.mensaje-visible .mensaje-kicker,
.mensaje-visible .mensaje-destello { animation: revelarCuenta .7s ease forwards; }
.mensaje-visible .parte-1 { animation: revelarFrase .8s ease .25s forwards; }
.mensaje-visible .parte-2 { animation: revelarFrase .8s ease .62s forwards; }
.mensaje-visible .parte-3 { animation: revelarFrase .9s ease 1.0s forwards; }
.mensaje-visible .parte-4 { animation: revelarFrase .9s ease 1.34s forwards; }
.mensaje-visible .mensaje-firma { animation: revelarCuenta .8s ease 1.75s forwards; }
.mensaje-visible .ir-familia { animation: revelarCuenta .8s ease 2.05s forwards; }
@keyframes revelarFrase { to { opacity: 1; transform: none; } }

.mensaje-contenido,
.mensaje-mariposa { transition: opacity .65s ease, transform .8s cubic-bezier(.2,.78,.2,1), filter .7s ease; }
.transicion-familia .mensaje-contenido { opacity: 0; transform: translateY(-34px) scale(.96); filter: blur(4px); }
.transicion-familia .mensaje-mariposa { transform: translate(-42vw, 62vh) rotate(-18deg) scale(1.25); opacity: 0; transition-duration: 1.1s; }
.transicion-familia::after { content: "♡"; position: absolute; left: 50%; bottom: 9%; color: var(--dorado); font-size: 34px; transform: translateX(-50%); animation: lazoFamilia 1.05s ease forwards; }
@keyframes lazoFamilia { 0% { opacity: 0; transform: translateX(-50%) scale(.4); } 48% { opacity: 1; transform: translateX(-50%) scale(1.35); text-shadow: 0 0 22px rgba(211,166,79,.7); } 100% { opacity: 0; transform: translateX(-50%) translateY(90px) scale(.7); } }

/* Familia */
.familia { position: relative; isolation: isolate; min-height: 100svh; display: grid; place-items: center; overflow: hidden; padding: clamp(62px, 8vw, 100px) 24px; color: var(--vino); background: radial-gradient(circle at 50% 45%, rgba(255,255,255,.94), transparent 37%), linear-gradient(150deg, #fff9f5, #f7dfe2 52%, #fff8f3); }
.familia::before { content: ""; position: absolute; inset: 0; z-index: -3; opacity: .32; background: url("../assets/fondos/textura-papel.svg") center / 480px; mix-blend-mode: multiply; }
.familia-marco { position: absolute; inset: 16px; border: 1px solid rgba(199,151,73,.52); pointer-events: none; }
.familia-arco { position: absolute; z-index: -1; width: min(750px, 105vw); height: min(660px, 85vh); border: 1px solid rgba(199,151,73,.30); border-radius: 50% 50% 8px 8px / 42% 42% 8px 8px; box-shadow: inset 0 0 65px rgba(255,255,255,.46), 0 0 0 13px rgba(255,255,255,.18); }
.familia-floral { position: absolute; z-index: -1; width: clamp(250px, 31vw, 440px); opacity: .34; filter: saturate(.58); }
.familia-floral-uno { left: -115px; top: -90px; transform: rotate(-9deg); }
.familia-floral-dos { right: -120px; bottom: -95px; transform: rotate(172deg); }
.familia-contenido { width: min(820px, 100%); text-align: center; }
.familia-kicker { font-family: "Montserrat", sans-serif; font-size: 11px; letter-spacing: .34em; text-transform: uppercase; }
.familia h2 { margin-top: 3px; color: var(--rosa-oscuro); font-family: "Great Vibes", cursive; font-size: clamp(70px, 9vw, 108px); font-weight: 400; line-height: 1; }
.familia-intro { max-width: 560px; margin: 5px auto 25px; font-family: "Cormorant Garamond", serif; font-size: clamp(18px, 2vw, 22px); font-style: italic; }
.familia-grupos { display: grid; grid-template-columns: 1.25fr auto 1fr; align-items: center; gap: clamp(25px, 5vw, 60px); }
.familia-grupo { padding: 22px 10px; }
.familia-medallon {
    position: relative;
    width: 104px;
    height: 58px;
    margin: 0 auto 9px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #b17b2f;
}
.familia-medallon::before,
.familia-medallon::after {
    content: "";
    position: absolute;
    border: 1px solid rgba(199,151,73,.52);
    border-radius: 50%;
}
.familia-medallon::before { inset: 1px 22px; }
.familia-medallon::after { inset: 6px 27px; border-color: rgba(199,151,73,.24); }
.familia-medallon strong {
    position: relative;
    z-index: 2;
    font-family: "Cormorant Garamond", serif;
    font-size: 25px;
    font-weight: 500;
    letter-spacing: .04em;
    text-shadow: 0 0 12px rgba(211,166,79,.20);
}
.familia-medallon strong small { padding: 0 2px; color: var(--dorado); font-size: .65em; }
.rama {
    position: absolute;
    top: 15px;
    width: 29px;
    height: 30px;
    border-top: 1px solid rgba(177,123,47,.65);
    border-radius: 50%;
}
.rama::before,
.rama::after {
    content: "";
    position: absolute;
    width: 8px;
    height: 4px;
    border: 1px solid rgba(177,123,47,.52);
    border-radius: 100% 0 100% 0;
}
.rama::before { top: 5px; }
.rama::after { top: 13px; }
.rama-izquierda { left: 0; transform: rotate(26deg); }
.rama-izquierda::before, .rama-izquierda::after { left: 7px; transform: rotate(-24deg); }
.rama-derecha { right: 0; transform: rotate(-26deg) scaleX(-1); }
.rama-derecha::before, .rama-derecha::after { left: 7px; transform: rotate(-24deg); }
.medallon-madrina { width: 84px; }
.medallon-madrina strong { font-family: "Great Vibes", cursive; font-size: 34px; font-weight: 400; transform: translateY(2px); }
.flor-grabada {
    position: absolute;
    z-index: 2;
    top: 9px;
    width: 10px;
    height: 10px;
    border: 1px solid rgba(177,123,47,.60);
    border-radius: 50% 50% 50% 0;
    transform: rotate(-45deg);
}
.flor-grabada::before,
.flor-grabada::after { content: ""; position: absolute; width: 8px; height: 8px; border: 1px solid rgba(177,123,47,.45); border-radius: 50%; }
.flor-grabada::before { left: -6px; top: 3px; }
.flor-grabada::after { right: -6px; top: 3px; }
.flor-uno { left: 6px; }
.flor-dos { right: 6px; transform: rotate(45deg) scaleX(-1); }
.familia-grupo > p { font-family: "Montserrat", sans-serif; font-size: 10px; letter-spacing: .25em; text-transform: uppercase; }
.familia-grupo h3 { color: var(--rosa-oscuro); font-family: "Cormorant Garamond", serif; font-size: clamp(27px, 3.5vw, 42px); font-weight: 500; line-height: 1.05; }
.familia-grupo > span { display: block; margin: 4px 0; color: var(--dorado); font-family: "Great Vibes", cursive; font-size: 29px; }
.familia-separador { width: 1px; height: 190px; background: linear-gradient(transparent, rgba(199,151,73,.65), transparent); display: grid; place-items: center; }
.familia-separador span { padding: 10px 0; color: var(--dorado); background: #fbeceb; }
.familia-cierre { margin-top: 24px; font-family: "Cormorant Garamond", serif; font-size: clamp(18px, 2vw, 22px); font-style: italic; }
.ir-evento { margin: 13px auto 0; display: inline-flex; flex-direction: column; align-items: center; gap: 4px; padding: 7px 20px 3px; border: 0; color: var(--vino); background: transparent; cursor: pointer; opacity: 0; }
.ir-evento span { font-family: "Cormorant Garamond", serif; font-size: 17px; font-style: italic; }
.ir-evento i { color: var(--dorado); font-size: 22px; font-style: normal; animation: indicarAbajo 1.9s ease-in-out infinite; }
.ir-evento:focus-visible { outline: 1px solid rgba(199,151,73,.72); outline-offset: 4px; border-radius: 999px; }
.familia-contenido > *, .familia-grupo, .familia-separador { opacity: 0; transform: translateY(18px); }
.familia-visible .familia-contenido > * { animation: revelarCuenta .72s ease forwards; }
.familia-visible .familia-contenido > :nth-child(2) { animation-delay: .12s; }
.familia-visible .familia-contenido > :nth-child(3) { animation-delay: .25s; }
.familia-visible .familia-contenido > :nth-child(4) { animation-delay: .36s; }
.familia-visible .familia-contenido > :nth-child(5) { animation-delay: .88s; }
.familia-visible .ir-evento { animation: revelarCuenta .75s ease 1.05s forwards; }
.familia-visible .familia-papas { animation: revelarCuenta .75s ease .48s forwards; }
.familia-visible .familia-separador { animation: revelarCuenta .75s ease .62s forwards; }
.familia-visible .familia-madrina { animation: revelarCuenta .75s ease .72s forwards; }
.familia-visible .familia-medallon { animation: brilloMedallon 1.35s ease 1s both; }
@keyframes brilloMedallon {
    0% { filter: brightness(.92); transform: scale(.94); }
    48% { filter: brightness(1.2) drop-shadow(0 0 10px rgba(211,166,79,.38)); transform: scale(1.04); }
    100% { filter: none; transform: scale(1); }
}

.familia-contenido,
.familia-arco { transition: opacity .7s ease, transform .85s cubic-bezier(.2,.78,.2,1), filter .7s ease; }
.transicion-evento .familia-contenido { opacity: 0; transform: translateY(-26px) scale(.96); filter: blur(3px); }
.transicion-evento .familia-arco { transform: scale(.72); opacity: 0; filter: blur(7px); }
.transicion-evento::after {
    content: "";
    position: absolute;
    z-index: 6;
    left: 50%;
    top: 52%;
    width: 28px;
    height: 28px;
    border: 2px solid var(--dorado);
    border-radius: 50% 50% 50% 0;
    transform: translate(-50%, -50%) rotate(-45deg);
    animation: marcadorPuente 1.05s ease forwards;
}
.transicion-evento::before { content: ""; position: absolute; z-index: 7; left: 50%; top: 52%; width: 7px; height: 7px; border-radius: 50%; background: var(--dorado); transform: translate(-50%, -50%); animation: puntoPuente 1s ease forwards; }
@keyframes marcadorPuente { 0% { opacity: 0; transform: translate(-50%, -50%) rotate(-45deg) scale(.3); } 48% { opacity: 1; transform: translate(-50%, -50%) rotate(-45deg) scale(1.35); filter: drop-shadow(0 0 15px rgba(211,166,79,.7)); } 100% { opacity: 0; transform: translate(-50%, 150px) rotate(-45deg) scale(.7); } }
@keyframes puntoPuente { 0%,100% { opacity: 0; } 45% { opacity: 1; box-shadow: 0 0 14px rgba(211,166,79,.8); } }

/* Detalles del evento */
.detalles-evento { position: relative; isolation: isolate; min-height: 100svh; display: grid; place-items: center; overflow: hidden; padding: clamp(58px, 8vw, 96px) 24px; color: var(--vino); background: radial-gradient(circle at 50% 45%, rgba(255,255,255,.94), transparent 36%), radial-gradient(circle at 14% 78%, rgba(236,191,201,.35), transparent 28%), linear-gradient(145deg, #fffaf7, #f5dce0 50%, #fff8f3); }
.detalles-evento::before { content: ""; position: absolute; inset: 0; z-index: -3; opacity: .32; background: url("../assets/fondos/textura-papel.svg") center / 480px; mix-blend-mode: multiply; }
.evento-marco { position: absolute; inset: 16px; border: 1px solid rgba(199,151,73,.55); pointer-events: none; }
.evento-floral { position: absolute; z-index: -1; width: clamp(250px, 31vw, 450px); opacity: .30; filter: saturate(.56); }
.evento-floral-uno { right: -115px; top: -100px; transform: rotate(82deg); }
.evento-floral-dos { left: -120px; bottom: -100px; transform: rotate(-96deg); }
.evento-contenido { width: min(800px, 100%); text-align: center; }
.evento-kicker { font-family: "Montserrat", sans-serif; font-size: 11px; letter-spacing: .34em; text-transform: uppercase; }
.detalles-evento h2 { margin: 3px 0 13px; color: var(--rosa-oscuro); font-family: "Great Vibes", cursive; font-size: clamp(68px, 9vw, 104px); font-weight: 400; line-height: 1; }
.evento-tarjeta { position: relative; width: min(630px, 94%); margin: 0 auto; padding: 38px clamp(27px, 5vw, 54px) 32px; border: 1px solid rgba(199,151,73,.62); border-radius: 48% 48% 16px 16px / 12% 12% 16px 16px; background: linear-gradient(rgba(255,253,248,.91), rgba(255,247,241,.88)), url("../assets/fondos/textura-papel.svg"); background-size: auto, 380px; box-shadow: 0 18px 50px rgba(112,67,76,.12), inset 0 0 0 7px rgba(255,255,255,.48); }
.evento-sello { position: absolute; left: 50%; top: -18px; width: 38px; height: 48px; transform: translateX(-50%); color: var(--dorado); }
.evento-sello::before { content: ""; position: absolute; left: 5px; top: 0; width: 28px; height: 28px; border: 1px solid var(--dorado); border-radius: 50%; background: #fffaf5; box-shadow: 0 5px 12px rgba(112,67,76,.10); }
.evento-sello::after { content: ""; position: absolute; left: 50%; top: 24px; width: 13px; height: 13px; border-right: 1px solid var(--dorado); border-bottom: 1px solid var(--dorado); background: #fffaf5; transform: translateX(-50%) rotate(45deg); }
.evento-sello span { position: absolute; z-index: 2; left: 50%; top: 10px; width: 7px; height: 7px; border-radius: 50%; background: var(--dorado); transform: translateX(-50%); }
.evento-fecha { width: min(470px, 100%); margin: 0 auto 14px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; font-family: "Cormorant Garamond", serif; text-transform: uppercase; }
.evento-fecha span { padding: 8px; border-top: 1px solid rgba(199,151,73,.58); border-bottom: 1px solid rgba(199,151,73,.58); font-size: 14px; letter-spacing: .15em; }
.evento-fecha strong { padding: 0 18px; color: var(--rosa-oscuro); font-size: 62px; font-weight: 500; line-height: .8; }
.evento-fecha small { grid-column: 1/-1; margin-top: 7px; color: var(--dorado); font-size: 23px; letter-spacing: .13em; }
.evento-linea { display: flex; align-items: center; gap: 9px; width: 72%; margin: 13px auto; color: var(--dorado); }
.evento-linea::before,.evento-linea::after { content: ""; flex: 1; height: 1px; background: linear-gradient(90deg,transparent,rgba(199,151,73,.65)); }.evento-linea::after { background: linear-gradient(90deg,rgba(199,151,73,.65),transparent); }
.evento-tipo { font-family: "Montserrat", sans-serif; font-size: 10px; letter-spacing: .28em; text-transform: uppercase; }
.evento-tarjeta h3 { color: var(--rosa-oscuro); font-family: "Cormorant Garamond", serif; font-size: clamp(31px, 4vw, 45px); font-weight: 500; line-height: 1.08; }
.evento-hora { margin: 5px 0 8px; font-family: "Cormorant Garamond", serif; font-size: 20px; }.evento-hora strong { color: var(--dorado); font-size: 31px; font-weight: 500; }
.evento-tarjeta address { font-family: "Cormorant Garamond", serif; font-size: clamp(16px, 2vw, 19px); font-style: normal; line-height: 1.38; }
.boton-ubicacion { margin: 19px auto 0; display: inline-flex; align-items: center; gap: 10px; padding: 11px 19px; border: 1px solid rgba(199,151,73,.64); border-radius: 999px; color: var(--vino); background: rgba(255,250,246,.72); text-decoration: none; font-family: "Montserrat", sans-serif; font-size: 10px; letter-spacing: .17em; text-transform: uppercase; transition: transform .3s ease, background .3s ease, color .3s ease; }
.boton-ubicacion:hover { transform: translateY(-2px); color: white; background: var(--dorado); }
.ubicacion-pin { position: relative; width: 14px; height: 18px; flex: 0 0 14px; }
.ubicacion-pin::before { content: ""; position: absolute; left: 1px; top: 0; width: 12px; height: 12px; border: 1px solid currentColor; border-radius: 50%; }
.ubicacion-pin::after { content: ""; position: absolute; left: 50%; top: 10px; width: 6px; height: 6px; border-right: 1px solid currentColor; border-bottom: 1px solid currentColor; transform: translateX(-50%) rotate(45deg); }
.boton-ubicacion .ubicacion-pin { background: radial-gradient(circle at 50% 6px, currentColor 0 2px, transparent 2.5px); }
.evento-cierre { margin-top: 17px; font-family: "Cormorant Garamond", serif; font-size: clamp(18px, 2vw, 22px); font-style: italic; }
.ir-dress-code { margin: 10px auto 0; display: inline-flex; flex-direction: column; align-items: center; gap: 4px; padding: 7px 20px 3px; border: 0; color: var(--vino); background: transparent; cursor: pointer; opacity: 0; }
.ir-dress-code span { font-family: "Cormorant Garamond", serif; font-size: 17px; font-style: italic; }
.ir-dress-code i { color: var(--dorado); font-size: 22px; font-style: normal; animation: indicarAbajo 1.9s ease-in-out infinite; }
.ir-dress-code:focus-visible { outline: 1px solid rgba(199,151,73,.72); outline-offset: 4px; border-radius: 999px; }
.evento-contenido > *, .evento-tarjeta > * { opacity: 0; transform: translateY(16px); }
.evento-visible .evento-contenido > * { animation: revelarCuenta .72s ease forwards; }.evento-visible .evento-contenido > :nth-child(2){animation-delay:.12s}.evento-visible .evento-contenido > :nth-child(3){animation-delay:.28s}.evento-visible .evento-contenido > :nth-child(4){animation-delay:1.05s}
.evento-visible .ir-dress-code { animation: revelarCuenta .72s ease 1.2s forwards; }
.evento-visible .evento-tarjeta > * { animation: revelarCuenta .65s ease forwards; }.evento-visible .evento-tarjeta > :nth-child(1){animation-delay:.40s}.evento-visible .evento-tarjeta > :nth-child(2){animation-delay:.48s}.evento-visible .evento-tarjeta > :nth-child(3){animation-delay:.58s}.evento-visible .evento-tarjeta > :nth-child(4){animation-delay:.66s}.evento-visible .evento-tarjeta > :nth-child(5){animation-delay:.72s}.evento-visible .evento-tarjeta > :nth-child(6){animation-delay:.78s}.evento-visible .evento-tarjeta > :nth-child(7){animation-delay:.84s}.evento-visible .evento-tarjeta > :nth-child(8){animation-delay:.91s}

.evento-contenido,
.evento-tarjeta { transition: opacity .7s ease, transform .85s cubic-bezier(.2,.78,.2,1), filter .7s ease; }
.transicion-dress .evento-contenido { opacity: 0; transform: translateY(-30px) scale(.96); filter: blur(4px); }
.transicion-dress .evento-tarjeta { transform: scale(.82); }
.transicion-dress::after { content: "✦"; position: absolute; z-index: 8; left: 50%; top: 55%; color: var(--dorado); font-size: 32px; animation: destelloDress 1.05s ease forwards; }
@keyframes destelloDress { 0% { opacity: 0; transform: translate(-50%,-50%) scale(.3); } 45% { opacity: 1; transform: translate(-50%,-50%) scale(1.55) rotate(28deg); text-shadow: 0 0 26px rgba(211,166,79,.8); } 100% { opacity: 0; transform: translate(-50%,150px) scale(.6) rotate(70deg); } }

/* Código de vestimenta */
.dress-code { position: relative; isolation: isolate; min-height: 100svh; display: grid; place-items: center; overflow: hidden; padding: clamp(58px, 8vw, 100px) 24px; color: var(--vino); background: linear-gradient(145deg,#fffaf6,#f9e9e8 52%,#fff8f2); }
.dress-code::before { content: ""; position: absolute; inset: 0; z-index: -4; opacity: .28; background: url("../assets/fondos/textura-papel.svg") center / 480px; mix-blend-mode: multiply; }
.dress-marco { position: absolute; inset: 16px; border: 1px solid rgba(199,151,73,.54); pointer-events: none; }
.dress-luz { position: absolute; z-index: -2; left: 13%; top: 50%; width: min(680px,75vw); height: 76vh; transform: translateY(-50%); border-radius: 50%; background: radial-gradient(ellipse,rgba(255,255,255,.94),rgba(249,222,225,.34) 50%,transparent 72%); filter: blur(10px); }
.dress-baile { position: absolute; z-index: -1; left: clamp(-50px,2vw,45px); bottom: -3%; width: min(58vw,720px); max-height: 94%; object-fit: contain; object-position: left bottom; opacity: .72; filter: saturate(.78) contrast(.94); mix-blend-mode: multiply; transform: translateX(-35px) scale(.96); transition: opacity 1s ease, transform 1.25s cubic-bezier(.2,.78,.2,1); }
.dress-contenido { width: min(1100px,100%); display: flex; justify-content: flex-end; }
.dress-texto { width: min(510px,46%); padding: clamp(34px,5vw,58px); text-align: center; border: 1px solid rgba(199,151,73,.58); border-radius: 48% 48% 16px 16px / 12% 12% 16px 16px; background: rgba(255,251,247,.78); box-shadow: 0 20px 50px rgba(112,67,76,.11), inset 0 0 0 7px rgba(255,255,255,.42); backdrop-filter: blur(8px); }
.dress-kicker { font-family:"Montserrat",sans-serif; font-size:11px; letter-spacing:.32em; text-transform:uppercase; }
.dress-code h2 { margin: 4px 0; color:var(--rosa-oscuro); font-family:"Great Vibes",cursive; font-size:clamp(78px,9vw,115px); font-weight:400; line-height:1; }
.dress-ornamento { display:flex; align-items:center; gap:10px; width:72%; margin:5px auto 16px; color:var(--dorado); }.dress-ornamento::before,.dress-ornamento::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,rgba(199,151,73,.7));}.dress-ornamento::after{background:linear-gradient(90deg,rgba(199,151,73,.7),transparent);}
.dress-invitacion { font-family:"Cormorant Garamond",serif; font-size:clamp(19px,2.2vw,24px); font-style:italic; line-height:1.38; }
.color-reservado { margin:24px auto 17px; display:flex; align-items:center; justify-content:center; gap:15px; padding:15px 17px; border-top:1px solid rgba(199,151,73,.42); border-bottom:1px solid rgba(199,151,73,.42); }
.muestra-rosa { width:42px; aspect-ratio:1; flex:0 0 42px; border-radius:50%; background:radial-gradient(circle at 35% 28%,#fce5e7,#d7929c 65%,#ad6670); box-shadow:0 0 0 5px rgba(255,255,255,.62),0 7px 16px rgba(112,67,76,.16); }
.color-reservado div { text-align:left; }.color-reservado small { display:block; font-family:"Montserrat",sans-serif; font-size:9px; letter-spacing:.16em; text-transform:uppercase; }.color-reservado strong { display:block; color:var(--rosa-oscuro); font-family:"Cormorant Garamond",serif; font-size:21px; font-weight:500; }
.dress-nota { font-family:"Cormorant Garamond",serif; font-size:17px; font-style:italic; line-height:1.35; }
.dress-texto > * { opacity:0; transform:translateY(18px); }.dress-visible .dress-baile { opacity:.82; transform:none; }.dress-visible .dress-texto > * { animation:revelarCuenta .72s ease forwards; }.dress-visible .dress-texto > :nth-child(2){animation-delay:.15s}.dress-visible .dress-texto > :nth-child(3){animation-delay:.28s}.dress-visible .dress-texto > :nth-child(4){animation-delay:.40s}.dress-visible .dress-texto > :nth-child(5){animation-delay:.58s}.dress-visible .dress-texto > :nth-child(6){animation-delay:.76s}

.cuenta-contenido > *,
.reloj-editorial .tiempo,
.reloj-editorial > i {
    opacity: 0;
    transform: translateY(18px);
}
.cuenta-visible .cuenta-contenido > * { animation: revelarCuenta .75s ease forwards; }
.cuenta-visible .cuenta-contenido > :nth-child(2) { animation-delay: .10s; }
.cuenta-visible .cuenta-contenido > :nth-child(3) { animation-delay: .20s; }
.cuenta-visible .cuenta-contenido > :nth-child(4) { animation-delay: .28s; }
.cuenta-visible .cuenta-contenido > :nth-child(5) { animation-delay: .78s; }
.cuenta-visible .cuenta-contenido > :nth-child(6) { animation-delay: .92s; }
.cuenta-visible .reloj-editorial .tiempo,
.cuenta-visible .reloj-editorial > i { animation: revelarCuenta .65s ease forwards; }
.cuenta-visible .reloj-editorial > :nth-child(2) { animation-delay: .38s; }
.cuenta-visible .reloj-editorial > :nth-child(3) { animation-delay: .45s; }
.cuenta-visible .reloj-editorial > :nth-child(4) { animation-delay: .50s; }
.cuenta-visible .reloj-editorial > :nth-child(5) { animation-delay: .57s; }
.cuenta-visible .reloj-editorial > :nth-child(6) { animation-delay: .62s; }
.cuenta-visible .reloj-editorial > :nth-child(7) { animation-delay: .69s; }
.cuenta-visible .reloj-editorial > :nth-child(8) { animation-delay: .74s; }

@keyframes revelarCuenta { to { opacity: 1; transform: none; } }

@keyframes indicarAbajo {
    0%, 100% { transform: translateY(0); opacity: .55; }
    50% { transform: translateY(6px); opacity: 1; }
}

@media (max-width: 620px) {
    .cuenta-regresiva { padding: 54px 18px 48px; }
    .cuenta-marco { inset: 10px; }
    .cuenta-regresiva h2 { font-size: clamp(57px, 17vw, 72px); }
    .reloj-editorial {
        width: min(355px, 92vw);
        min-height: 355px;
        grid-template-columns: 1fr 1fr;
        gap: 22px 8px;
        padding: 48px 35px;
    }
    .escena-gran-dia {
        width: min(355px, 92vw);
        min-height: 355px;
        border-radius: 48% 52% 49% 51% / 52% 47% 53% 48%;
        padding: 45px 28px;
    }
    .escena-gran-dia > strong { font-size: 69px; }
    .reloj-editorial > i { display: none; }
    .reloj-anillo { border-radius: 48% 52% 49% 51% / 52% 47% 53% 48%; }
    .tiempo strong, .tiempo-dias strong { font-size: 57px; }
    .tiempo span { margin-top: 7px; }
    .cuenta-floral { width: 235px; opacity: .31; }
    .cuenta-floral-uno { left: -115px; top: -65px; }
    .cuenta-floral-dos { right: -118px; bottom: -70px; }
    .mensaje-especial { padding: 58px 27px 50px; }
    .mensaje-marco { inset: 10px; }
    .mensaje-floral { width: 235px; opacity: .24; }
    .mensaje-mariposa { right: 7%; top: 18%; }
    .frase-parte:nth-child(1), .frase-parte:nth-child(2) { font-size: 26px; }
    .frase-parte:nth-child(3), .frase-parte:nth-child(4) { font-size: 68px; }
    .familia { padding: 54px 27px 48px; }
    .familia-marco { inset: 10px; }
    .familia-arco { width: 92vw; height: 76vh; }
    .familia h2 { font-size: 75px; }
    .familia-intro { margin-bottom: 12px; font-size: 18px; }
    .familia-grupos { grid-template-columns: 1fr; gap: 2px; }
    .familia-grupo { padding: 9px 5px; }
    .familia-medallon { width: 92px; height: 48px; margin-bottom: 5px; }
    .familia-medallon::before { inset: 0 21px; }
    .familia-medallon::after { inset: 5px 26px; }
    .familia-medallon strong { font-size: 22px; }
    .medallon-madrina { width: 76px; }
    .medallon-madrina strong { font-size: 31px; }
    .rama { top: 10px; }
    .familia-grupo h3 { font-size: 28px; }
    .familia-grupo > span { margin: 0; font-size: 23px; }
    .familia-separador { width: 180px; height: 1px; margin: 2px auto; background: linear-gradient(90deg, transparent, rgba(199,151,73,.65), transparent); }
    .familia-separador span { padding: 0 9px; }
    .familia-cierre { margin-top: 12px; font-size: 18px; }
    .ir-evento { margin-top: 6px; }
    .detalles-evento { padding: 48px 20px 42px; }
    .evento-marco { inset: 10px; }
    .detalles-evento h2 { font-size: 70px; margin-bottom: 9px; }
    .evento-tarjeta { width: 96%; padding: 32px 21px 25px; border-radius: 45% 45% 14px 14px / 8% 8% 14px 14px; }
    .evento-fecha strong { font-size: 55px; padding: 0 13px; }
    .evento-tarjeta h3 { font-size: 31px; }
    .evento-hora { margin: 2px 0 5px; }
    .evento-tarjeta address { font-size: 16px; line-height: 1.28; }
    .boton-ubicacion { margin-top: 13px; }
    .evento-cierre { margin-top: 11px; font-size: 17px; }
    .ir-dress-code { margin-top:4px; }
    .dress-code { padding:42px 13px 36px; align-items:center; }
    .dress-marco { inset:10px; }
    .dress-luz { left:-8%; width:64vw; height:80vh; }
    .dress-baile {
        left:-15%;
        bottom:7%;
        width:72vw;
        max-height:88%;
        object-position:left bottom;
        transform:translateX(-18px) scale(.96);
        opacity:.62;
        mix-blend-mode:multiply;
    }
    .dress-visible .dress-baile { opacity:.72; transform:none; }
    .dress-contenido { justify-content:flex-end; align-items:center; transform:translateY(-62px); }
    .dress-texto {
        position:relative;
        z-index:2;
        width:65%;
        margin-right:1px;
        padding:25px 13px 21px;
        border-radius:44% 44% 13px 13px / 7% 7% 13px 13px;
        background:rgba(255,251,247,.91);
        box-shadow:0 18px 42px rgba(112,67,76,.15),-8px 0 24px rgba(255,255,255,.50),inset 0 0 0 5px rgba(255,255,255,.48);
        backdrop-filter:blur(7px);
    }
    .dress-kicker { font-size:8px; letter-spacing:.24em; }
    .dress-code h2 { font-size:58px; }
    .dress-ornamento { margin:2px auto 10px; }
    .dress-invitacion { font-size:15px; line-height:1.28; }
    .color-reservado { margin:13px auto 10px; padding:10px 2px; gap:7px; }
    .muestra-rosa { width:29px; flex-basis:29px; box-shadow:0 0 0 3px rgba(255,255,255,.62),0 5px 12px rgba(112,67,76,.14); }
    .color-reservado small { font-size:7px; letter-spacing:.11em; }
    .color-reservado strong { font-size:14px; line-height:1.1; }
    .dress-nota { font-size:13px; line-height:1.25; }
}

@media (max-width: 360px) {
    .dress-baile { left:-18%; width:75vw; }
    .dress-texto { width:65%; padding-left:10px; padding-right:10px; }
    .dress-code h2 { font-size:53px; }
    .dress-invitacion { font-size:14px; }
}

/* Atelier de lujo: reemplaza la ilustración fotográfica */
.atelier-visual {
    position: absolute;
    z-index: -1;
    left: clamp(35px, 8vw, 130px);
    top: 50%;
    width: min(430px, 38vw);
    transform: translateY(-50%);
    text-align: center;
    color: #a87535;
    opacity: 0;
    transition: opacity 1s ease, transform 1.2s cubic-bezier(.2,.78,.2,1);
}
.dress-visible .atelier-visual { opacity: 1; transform: translateY(-50%); }
.atelier-visual > p:first-child { font-family:"Cormorant Garamond",serif; font-size:18px; font-style:italic; letter-spacing:.13em; text-transform:uppercase; }
.siluetas-gala { height:390px; display:flex; align-items:flex-end; justify-content:center; gap:36px; margin:8px auto 2px; filter:drop-shadow(0 13px 18px rgba(105,68,54,.10)); }
.silueta-vestido,.silueta-traje { position:relative; height:350px; }
.silueta-vestido { width:180px; }
.vestido-cabeza,.traje-cabeza { position:absolute; left:50%; top:7px; width:28px; height:32px; border:1.5px solid #b27c38; border-radius:50%; transform:translateX(-50%); }
.vestido-cuerpo { position:absolute; left:50%; top:41px; width:54px; height:88px; border:1.5px solid #b27c38; border-bottom:0; border-radius:48% 48% 8% 8%; transform:translateX(-50%); }
.vestido-cuerpo::before,.vestido-cuerpo::after { content:""; position:absolute; top:21px; width:65px; height:1px; background:#b27c38; }
.vestido-cuerpo::before { right:38px; transform:rotate(-24deg); transform-origin:right; }.vestido-cuerpo::after { left:38px; transform:rotate(24deg); transform-origin:left; }
.vestido-falda { position:absolute; left:50%; bottom:0; width:176px; height:235px; border:1.5px solid #b27c38; border-top:0; border-radius:8% 8% 48% 48% / 4% 4% 14% 14%; clip-path:polygon(42% 0,58% 0,100% 100%,0 100%); transform:translateX(-50%); background:repeating-linear-gradient(84deg,transparent 0 21px,rgba(199,151,73,.14) 22px 23px); }
.silueta-traje { width:105px; }
.traje-torso { position:absolute; left:50%; top:42px; width:82px; height:145px; border:1.5px solid #a87535; transform:translateX(-50%); clip-path:polygon(15% 0,40% 0,50% 18%,60% 0,85% 0,100% 100%,0 100%); }
.traje-torso::before,.traje-torso::after { content:""; position:absolute; top:13px; width:1px; height:78px; background:#a87535; }.traje-torso::before{left:35%;transform:rotate(-16deg)}.traje-torso::after{right:35%;transform:rotate(16deg)}
.traje-piernas { position:absolute; left:50%; top:187px; width:67px; height:160px; border-left:1.5px solid #a87535; border-right:1.5px solid #a87535; transform:translateX(-50%); }.traje-piernas::after{content:"";position:absolute;left:50%;top:0;height:100%;width:1px;background:#a87535}
.atelier-linea { display:flex; align-items:center; gap:10px; color:var(--dorado); }.atelier-linea::before,.atelier-linea::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,rgba(199,151,73,.65));}.atelier-linea::after{background:linear-gradient(90deg,rgba(199,151,73,.65),transparent)}
.atelier-nota { margin-top:7px; font-family:"Montserrat",sans-serif; font-size:9px; letter-spacing:.18em; text-transform:uppercase; }
.paleta-formal { display:flex; justify-content:center; gap:10px; margin:17px auto 2px; }
.paleta-formal span { width:25px; aspect-ratio:1; border-radius:50%; border:3px solid rgba(255,255,255,.75); box-shadow:0 0 0 1px rgba(199,151,73,.34),0 5px 11px rgba(92,57,63,.11); }
.tono-negro{background:#272326}.tono-champagne{background:#d8c29d}.tono-vino{background:#753b48}.tono-azul{background:#26344d}
.dress-baile { display:none !important; }

@media (max-width:620px) {
    .dress-code { padding:42px 12px 36px; }
    .dress-contenido { transform:none; align-items:center; }
    .atelier-visual { left:7px; top:51%; width:40%; transform:translateY(-50%); }
    .dress-visible .atelier-visual { transform:translateY(-50%); }
    .atelier-visual > p:first-child { font-size:10px; letter-spacing:.07em; }
    .siluetas-gala { height:280px; gap:8px; margin-top:3px; transform:scale(.73); transform-origin:center bottom; width:190%; margin-left:-45%; }
    .atelier-linea { margin-top:-67px; }
    .atelier-nota { font-size:6px; letter-spacing:.08em; line-height:1.4; }
    .dress-texto { width:61%; margin-left:auto; padding:23px 11px 19px; }
    .dress-code h2 { font-size:55px; }
    .dress-invitacion { font-size:14px; }
    .paleta-formal { gap:6px; margin:11px auto 0; }
    .paleta-formal span { width:19px; border-width:2px; }
    .color-reservado { margin-top:10px; }
}

/* Mesa de regalos Liverpool */
.ir-regalos { position:absolute; z-index:4; left:50%; bottom:28px; transform:translateX(-50%); display:flex; flex-direction:column; align-items:center; gap:3px; color:#9c6d72; border:0; background:transparent; font-family:"Cormorant Garamond",serif; font-size:15px; font-style:italic; cursor:pointer; }
.ir-regalos i { color:var(--dorado); font-size:18px; font-style:normal; animation:flotarFlecha 1.8s ease-in-out infinite; }
.mesa-regalos { position:relative; min-height:100svh; overflow:hidden; display:grid; place-items:center; padding:58px 22px; color:#744f57; text-align:center; background:radial-gradient(circle at 50% 34%,rgba(255,255,255,.96),transparent 42%),linear-gradient(155deg,#fff9f6,#f8e2e5 55%,#fdf4ef); }
.mesa-regalos::before { content:""; position:absolute; inset:0; opacity:.25; background:url("../assets/fondos/textura-papel.svg") center/480px; mix-blend-mode:multiply; }
.regalos-marco { position:absolute; inset:17px; border:1px solid rgba(199,151,73,.55); pointer-events:none; }
.regalos-contenido { position:relative; z-index:2; width:min(590px,94%); padding:45px 48px 40px; border:1px solid rgba(199,151,73,.5); border-radius:46% 46% 20px 20px / 9% 9% 20px 20px; background:rgba(255,252,248,.84); box-shadow:0 25px 65px rgba(111,66,75,.13),inset 0 0 0 7px rgba(255,255,255,.44); backdrop-filter:blur(9px); }
.regalos-kicker { margin:0; font:500 10px/1.2 "Montserrat",sans-serif; letter-spacing:.34em; text-transform:uppercase; }
.mesa-regalos h2 { margin:5px 0 0; color:var(--rosa-oscuro); font:400 clamp(62px,8vw,92px)/1 "Great Vibes",cursive; }
.regalos-ornamento { display:flex; align-items:center; gap:10px; width:68%; margin:4px auto 16px; color:var(--dorado); }.regalos-ornamento::before,.regalos-ornamento::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,rgba(199,151,73,.72));}.regalos-ornamento::after{background:linear-gradient(90deg,rgba(199,151,73,.72),transparent)}
.regalos-frase { margin:0 0 8px; font:italic 25px/1.25 "Cormorant Garamond",serif; }
.regalos-texto { max-width:420px; margin:0 auto 22px; font:17px/1.45 "Cormorant Garamond",serif; }
.liverpool-tarjeta { position:relative; padding:20px 20px 16px; border:1px solid rgba(179,126,61,.4); border-radius:14px; background:linear-gradient(145deg,rgba(255,255,255,.86),rgba(255,245,239,.72)); box-shadow:0 12px 30px rgba(111,67,74,.09); }
.liverpool-marca { margin:0 0 7px; color:#b72439; font:600 19px/1 "Montserrat",sans-serif; letter-spacing:.03em; }
.liverpool-tarjeta small { display:block; font:500 8px/1.2 "Montserrat",sans-serif; letter-spacing:.24em; text-transform:uppercase; }
.liverpool-tarjeta strong { display:block; margin:4px 0 14px; color:#8e5e66; font:500 34px/1 "Cormorant Garamond",serif; letter-spacing:.12em; }
.regalos-acciones { display:flex; justify-content:center; gap:9px; flex-wrap:wrap; }.regalos-acciones button,.regalos-acciones a { min-width:145px; padding:11px 16px; border:1px solid rgba(178,123,57,.62); border-radius:999px; font:500 9px/1 "Montserrat",sans-serif; letter-spacing:.12em; text-transform:uppercase; text-decoration:none; cursor:pointer; transition:.3s ease; }.regalos-acciones button{color:#8e6268;background:transparent}.regalos-acciones a{color:#fff;background:linear-gradient(135deg,#bd8b3e,#d7ad63)}.regalos-acciones button:hover,.regalos-acciones a:hover{transform:translateY(-2px);box-shadow:0 8px 18px rgba(104,63,68,.13)}.regalos-acciones button.copiado{color:#fff;background:#a5747a}
.copiar-estado { min-height:15px; margin:8px 0 0; font:italic 12px/1.2 "Cormorant Garamond",serif; }
.regalos-nota { margin:15px 0 0; font:italic 15px/1.3 "Cormorant Garamond",serif; }
.regalo-caja { position:absolute; z-index:1; left:clamp(18px,7vw,110px); top:50%; width:230px; height:190px; transform:translateY(-50%) rotate(-4deg); border:1px solid rgba(188,137,68,.36); border-radius:8px; background:linear-gradient(145deg,rgba(249,213,218,.38),rgba(255,250,244,.28)); opacity:.7; }.regalo-tapa{position:absolute;left:-12px;right:-12px;top:-18px;height:37px;border:1px solid rgba(188,137,68,.42);border-radius:7px;background:rgba(255,247,241,.55)}.regalo-liston-v{position:absolute;left:50%;top:-18px;bottom:0;width:33px;transform:translateX(-50%);background:linear-gradient(90deg,rgba(198,147,69,.18),rgba(218,179,104,.44),rgba(198,147,69,.18))}.regalo-liston-h{position:absolute;left:0;right:0;top:70px;height:31px;background:linear-gradient(rgba(198,147,69,.18),rgba(218,179,104,.4),rgba(198,147,69,.18))}.regalo-mono{position:absolute;top:-68px;width:78px;height:55px;border:2px solid rgba(188,137,68,.5);border-radius:55% 45% 52% 48%}.regalo-mono-izq{left:48px;transform:rotate(27deg)}.regalo-mono-der{right:48px;transform:rotate(-27deg)}
.regalo-destello { position:absolute; color:rgba(199,151,73,.62); animation:destelloSuave 2.8s ease-in-out infinite; }.regalo-destello-uno{left:11%;top:18%;font-size:24px}.regalo-destello-dos{right:12%;bottom:17%;font-size:16px;animation-delay:1.1s}
.regalos-contenido>* { opacity:0; transform:translateY(18px); }.regalos-visible .regalos-contenido>*{animation:revelarCuenta .72s ease forwards}.regalos-visible .regalos-contenido>:nth-child(2){animation-delay:.12s}.regalos-visible .regalos-contenido>:nth-child(3){animation-delay:.22s}.regalos-visible .regalos-contenido>:nth-child(4){animation-delay:.32s}.regalos-visible .regalos-contenido>:nth-child(5){animation-delay:.42s}.regalos-visible .regalos-contenido>:nth-child(6){animation-delay:.55s}.regalos-visible .regalos-contenido>:nth-child(7){animation-delay:.67s}.transicion-regalos .dress-contenido{filter:blur(4px);opacity:.35;transform:scale(.97);transition:.65s ease}
@keyframes destelloSuave{50%{opacity:.25;transform:scale(.65) rotate(25deg)}}

@media(max-width:620px){.ir-regalos{bottom:22px;font-size:13px}.mesa-regalos{padding:45px 14px}.regalos-contenido{width:92%;padding:35px 18px 29px}.mesa-regalos h2{font-size:58px}.regalos-frase{font-size:21px}.regalos-texto{font-size:15px}.liverpool-tarjeta strong{font-size:29px}.regalo-caja{left:50%;top:76%;width:190px;height:145px;transform:translate(-50%,-50%) rotate(-4deg);opacity:.2}.regalos-acciones button,.regalos-acciones a{min-width:132px;padding:10px 12px;font-size:8px}}

/* Confirmación familiar */
.ir-accesos{display:flex;flex-direction:column;align-items:center;gap:2px;margin:18px auto -20px;color:#98666d;border:0;background:transparent;font:italic 15px "Cormorant Garamond",serif;cursor:pointer}.ir-accesos i{color:var(--dorado);font-style:normal}
.accesos{position:relative;min-height:100svh;display:grid;place-items:center;overflow:hidden;padding:55px 20px;color:#744f57;text-align:center;background:radial-gradient(circle at 50% 20%,#fffdf9,transparent 44%),linear-gradient(160deg,#fae8eb,#fff8f3)}
.accesos::before{content:"L";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:rgba(196,149,76,.08);font:400 min(72vw,720px)/1 "Great Vibes",cursive}
.accesos-marco{position:absolute;inset:17px;border:1px solid rgba(199,151,73,.55)}
.accesos-contenido{position:relative;z-index:2;width:min(650px,94%);padding:42px 48px;border:1px solid rgba(199,151,73,.52);border-radius:44% 44% 18px 18px/8% 8% 18px 18px;background:rgba(255,252,248,.87);box-shadow:0 24px 65px rgba(105,62,70,.13),inset 0 0 0 7px rgba(255,255,255,.45);backdrop-filter:blur(8px)}
.accesos-kicker{margin:0;font:500 9px "Montserrat",sans-serif;letter-spacing:.32em;text-transform:uppercase}.accesos h2{margin:5px 0;color:var(--rosa-oscuro);font:400 clamp(55px,7vw,82px)/1 "Great Vibes",cursive}.accesos-intro{margin:8px auto 22px;font:italic 18px "Cormorant Garamond",serif}
.acceso-login{display:grid;grid-template-columns:1.6fr .8fr;gap:12px;max-width:490px;margin:auto}.acceso-login label,.invitado-campo label{display:grid;gap:5px;text-align:left;font:500 8px "Montserrat",sans-serif;letter-spacing:.15em;text-transform:uppercase}.acceso-login input,.invitado-campo input,.invitado-campo select{width:100%;padding:12px 13px;color:#704f55;border:1px solid rgba(181,126,65,.45);border-radius:9px;outline:none;background:rgba(255,255,255,.72);font:15px "Cormorant Garamond",serif}.acceso-login input:focus,.invitado-campo input:focus,.invitado-campo select:focus{border-color:#c2934c;box-shadow:0 0 0 3px rgba(199,151,73,.11)}
.acceso-login>button,.decision-asistencia button,.registro-acciones button{padding:12px 17px;border:1px solid rgba(181,126,65,.6);border-radius:999px;color:#fff;background:linear-gradient(135deg,#b9813d,#d9b367);font:500 9px "Montserrat",sans-serif;letter-spacing:.11em;text-transform:uppercase;cursor:pointer}.acceso-login>button{grid-column:1/-1;justify-self:center}.acceso-estado,.registro-estado{grid-column:1/-1;min-height:18px;margin:0;color:#9a5962;font:italic 14px "Cormorant Garamond",serif}
.familia-saludo{margin:5px 0;font:italic 23px "Cormorant Garamond",serif}.familia-saludo strong{color:var(--rosa-oscuro)}.familia-limite{margin:0 0 17px;font:15px "Montserrat",sans-serif}.decision-asistencia{padding:16px 0;border-top:1px solid rgba(199,151,73,.35);border-bottom:1px solid rgba(199,151,73,.35)}.decision-asistencia p{margin:0 0 12px;font:italic 19px "Cormorant Garamond",serif}.decision-asistencia button+button{color:#94666c;background:transparent}
.lista-invitados{display:grid;gap:11px;margin:17px 0}.invitado-campo{padding:14px;border:1px solid rgba(199,151,73,.35);border-radius:12px;background:rgba(255,255,255,.5)}.invitado-encabezado{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;color:#9d6f75;font:500 11px "Montserrat",sans-serif;letter-spacing:.13em;text-transform:uppercase}.quitar-invitado{width:25px;height:25px;border:1px solid rgba(171,104,114,.35);border-radius:50%;color:#a26770;background:transparent;font-size:18px;cursor:pointer}.invitado-opciones{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:9px}.registro-acciones{display:flex;justify-content:center;gap:9px;flex-wrap:wrap}.registro-acciones button:first-child{color:#94666c;background:transparent}
[hidden]{display:none!important}
@media(max-width:620px){.accesos{padding:42px 12px}.accesos-contenido{width:94%;padding:32px 17px}.accesos h2{font-size:53px}.acceso-login{grid-template-columns:1fr}.acceso-login>button,.acceso-estado{grid-column:auto}.familia-saludo{font-size:20px}.decision-asistencia{display:grid;gap:8px}.decision-asistencia p{margin-bottom:3px}.invitado-opciones{grid-template-columns:1fr}.registro-acciones{display:grid}.ir-accesos{margin-bottom:-17px}}

/* Boletos digitales */
.boletos-panel{margin-top:25px;padding-top:21px;border-top:1px solid rgba(199,151,73,.4)}.boletos-encabezado{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.boletos-encabezado p{margin:0;color:var(--rosa-oscuro);font:italic 22px "Cormorant Garamond",serif}.boletos-encabezado button{padding:11px 17px;color:#fff;border:1px solid rgba(183,128,57,.65);border-radius:999px;background:linear-gradient(135deg,#b9813d,#dbb66d);font:500 8px "Montserrat",sans-serif;letter-spacing:.12em;text-transform:uppercase;cursor:pointer}.boletos-imprimibles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.boleto-xv{position:relative;overflow:hidden;min-height:390px;padding:25px 18px 18px;color:#704d55;border:1px solid rgba(199,151,73,.6);border-radius:12px;text-align:center;background:radial-gradient(circle at 50% 20%,#fff,#fff8f3 58%,#f5dfe3);box-shadow:0 13px 26px rgba(105,63,71,.11)}.boleto-xv::before{content:"L";position:absolute;left:50%;top:43%;transform:translate(-50%,-50%);color:rgba(199,151,73,.08);font:260px/1 "Great Vibes",cursive}.boleto-marco{position:absolute;inset:8px;border:1px solid rgba(199,151,73,.35);border-radius:8px}.boleto-kicker{position:relative;margin:0;font:italic 17px "Cormorant Garamond",serif}.boleto-xv h3{position:relative;margin:-2px 0 2px;color:var(--rosa-oscuro);font:400 52px/1 "Great Vibes",cursive}.boleto-fecha{position:relative;margin:0;font:500 8px "Montserrat",sans-serif;letter-spacing:.2em}.boleto-linea{position:relative;display:flex;align-items:center;gap:8px;width:72%;margin:10px auto;color:var(--dorado)}.boleto-linea::before,.boleto-linea::after{content:"";flex:1;height:1px;background:rgba(199,151,73,.5)}.boleto-nombre{position:relative;margin:4px 0 0;color:#8f5e67;font:600 21px "Cormorant Garamond",serif}.boleto-familia{position:relative;margin:0 0 9px;font:9px "Montserrat",sans-serif;letter-spacing:.12em;text-transform:uppercase}.boleto-qr{position:relative;width:126px;height:126px;display:grid;place-items:center;margin:0 auto;padding:5px;border:1px solid rgba(199,151,73,.4);background:#fffaf5}.boleto-qr img,.boleto-qr canvas{width:116px!important;height:116px!important}.boleto-folio{position:relative;margin:8px 0 3px;font:600 10px "Montserrat",sans-serif;letter-spacing:.13em}.boleto-lugar{position:relative;margin:0;font:italic 12px "Cormorant Garamond",serif}.boletos-aviso{margin:13px 0 0;font:italic 13px "Cormorant Garamond",serif}
@media(max-width:620px){.boletos-encabezado{display:grid;justify-items:center}.boletos-imprimibles{grid-template-columns:1fr}.boleto-xv{width:min(300px,100%);margin:auto}}

/* Vista previa del boleto tipo talón */
.boletos-imprimibles{grid-template-columns:1fr}.boleto-xv{display:grid;grid-template-columns:1fr 34%;min-height:250px;padding:0;border-radius:13px;background:linear-gradient(135deg,#fbf0f8,#ead7ec 58%,#d9bee1)}.boleto-xv::before{display:none}.boleto-principal{position:relative;display:grid;grid-template-columns:34% 1fr;align-items:center;padding:22px 10px 22px 18px}.boleto-principal::after{content:"";position:absolute;right:0;top:13px;bottom:13px;border-right:1px dashed rgba(116,78,113,.48)}.boleto-corona{position:absolute;left:22px;top:14px;color:#b98534;font-size:36px}.boleto-xv-marca{color:#a8732f;text-shadow:1px 1px #fff;font:600 75px/1 "Cormorant Garamond",serif}.boleto-centro{position:relative;text-align:center}.boleto-centro .boleto-kicker{font:500 9px "Montserrat",sans-serif;letter-spacing:.18em;text-transform:uppercase}.boleto-centro h3{font-size:47px}.boleto-centro .boleto-nombre{margin:3px 0 0;font-size:18px}.boleto-centro .boleto-familia{margin:0 0 8px;font-size:7px}.boleto-datos{display:grid;grid-template-columns:repeat(3,1fr);font:11px "Cormorant Garamond",serif}.boleto-datos span+span{border-left:1px solid rgba(184,135,58,.4)}.boleto-datos b{display:block;font:500 6px "Montserrat",sans-serif;letter-spacing:.1em;text-transform:uppercase}.boleto-talon{display:grid;place-items:center;align-content:center;padding:15px 8px}.boleto-talon>p:first-child{margin:0 0 7px;font:600 22px/1 "Cormorant Garamond",serif}.boleto-talon small{display:block;font-size:10px;letter-spacing:.12em}.boleto-talon .boleto-qr{width:92px;height:92px;margin:0;padding:4px}.boleto-talon .boleto-qr img,.boleto-talon .boleto-qr canvas{width:82px!important;height:82px!important}.boleto-talon .boleto-folio{margin:6px 0 3px;font-size:7px;letter-spacing:.04em}.boleto-talon>span{font:500 6px "Montserrat",sans-serif;letter-spacing:.12em;text-transform:uppercase}
@media(max-width:620px){.boleto-xv{width:100%;min-height:218px;grid-template-columns:1fr 35%}.boleto-principal{grid-template-columns:30% 1fr;padding:16px 5px 16px 10px}.boleto-corona{left:13px;top:13px;font-size:25px}.boleto-xv-marca{font-size:51px}.boleto-centro h3{font-size:37px}.boleto-centro .boleto-nombre{font-size:14px}.boleto-datos{font-size:8px}.boleto-talon>p:first-child{font-size:17px}.boleto-talon .boleto-qr{width:75px;height:75px}.boleto-talon .boleto-qr img,.boleto-talon .boleto-qr canvas{width:65px!important;height:65px!important}}

/* Hospedaje cercano */
.ir-hospedaje{display:flex;align-items:center;gap:9px;margin:18px auto 0;padding:11px 18px;color:#95636b;border:1px solid rgba(188,135,60,.48);border-radius:999px;background:rgba(255,255,255,.56);font:italic 14px "Cormorant Garamond",serif;cursor:pointer}.ir-hospedaje i{color:var(--dorado);font-style:normal}.hospedaje{position:relative;min-height:100svh;overflow:hidden;padding:70px 25px;color:#704e56;background:radial-gradient(circle at 50% 14%,rgba(255,255,255,.98),transparent 38%),linear-gradient(150deg,#fff9f5,#f4dfe3)}.hospedaje::before{content:"";position:absolute;inset:0;opacity:.24;background:url("../assets/fondos/textura-papel.svg") center/480px;mix-blend-mode:multiply}.hospedaje-marco{position:absolute;inset:17px;border:1px solid rgba(199,151,73,.54)}.hospedaje-contenido{position:relative;z-index:2;width:min(1040px,94%);margin:auto;text-align:center}.hospedaje-kicker{margin:0;font:500 9px "Montserrat",sans-serif;letter-spacing:.34em;text-transform:uppercase}.hospedaje h2{margin:5px 0;color:var(--rosa-oscuro);font:400 clamp(57px,7vw,85px)/1 "Great Vibes",cursive}.hospedaje-intro{max-width:590px;margin:7px auto 28px;font:italic 19px/1.4 "Cormorant Garamond",serif}.hoteles-lista{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;text-align:left}.hotel-card{position:relative;overflow:hidden;min-height:228px;padding:27px 25px 22px;border:1px solid rgba(199,151,73,.43);border-radius:16px;background:rgba(255,252,248,.78);box-shadow:0 15px 35px rgba(107,65,73,.09);backdrop-filter:blur(7px)}.hotel-card::after{content:"";position:absolute;right:-32px;bottom:-34px;width:125px;height:125px;border:1px solid rgba(199,151,73,.16);border-radius:50%}.hotel-numero{position:absolute;right:18px;top:10px;color:rgba(184,128,56,.14);font:600 65px/1 "Cormorant Garamond",serif}.hotel-etiqueta{position:relative;margin:0 0 7px;color:#a57478;font:500 8px "Montserrat",sans-serif;letter-spacing:.18em;text-transform:uppercase}.hotel-card h3{position:relative;margin:0 0 8px;color:#9f6470;font:600 28px "Cormorant Garamond",serif}.hotel-card>p:not(.hotel-etiqueta){position:relative;min-height:44px;margin:0 0 17px;font:16px/1.35 "Cormorant Garamond",serif}.hotel-acciones{position:relative;display:flex;gap:8px;flex-wrap:wrap}.hotel-acciones a{padding:9px 13px;color:#8c6067;border:1px solid rgba(185,129,57,.5);border-radius:999px;background:rgba(255,255,255,.5);font:500 7px "Montserrat",sans-serif;letter-spacing:.1em;text-transform:uppercase;text-decoration:none}.hotel-acciones a:last-child{color:#fff;background:linear-gradient(135deg,#b9863d,#d5ad65)}.hospedaje-aviso{display:flex;align-items:center;gap:18px;margin:22px auto 0;padding:18px 25px;border-top:1px solid rgba(199,151,73,.4);border-bottom:1px solid rgba(199,151,73,.4);text-align:left}.hospedaje-aviso>span{color:var(--dorado);font-size:25px}.hospedaje-aviso p{margin:0;font:italic 14px/1.45 "Cormorant Garamond",serif}.hospedaje-aviso strong{display:block;margin-bottom:2px;color:#97636b;font:500 9px "Montserrat",sans-serif;letter-spacing:.13em;text-transform:uppercase}
@media(max-width:620px){.hospedaje{padding:48px 13px}.hospedaje-contenido{width:92%}.hospedaje h2{font-size:54px}.hospedaje-intro{font-size:16px}.hoteles-lista{grid-template-columns:1fr}.hotel-card{min-height:0;padding:23px 19px}.hotel-card h3{font-size:25px}.hotel-card>p:not(.hotel-etiqueta){min-height:0}.hospedaje-aviso{align-items:flex-start;padding:16px 8px}.hotel-acciones a{padding:9px 11px}}

/* Álbum colaborativo */
.ir-recuerdos{display:flex;align-items:center;gap:9px;margin:22px auto 0;padding:10px 18px;color:#96656d;border:0;background:transparent;font:italic 15px "Cormorant Garamond",serif;cursor:pointer}.ir-recuerdos i{color:var(--dorado);font-style:normal}.recuerdos{position:relative;min-height:100svh;overflow:hidden;display:grid;place-items:center;padding:60px 22px;color:#714f57;text-align:center;background:radial-gradient(circle at 50% 48%,rgba(255,255,255,.97),transparent 43%),linear-gradient(145deg,#f8e4e8,#fff9f4 52%,#efd8df)}.recuerdos::before{content:"";position:absolute;inset:0;opacity:.24;background:url("../assets/fondos/textura-papel.svg") center/480px;mix-blend-mode:multiply}.recuerdos-marco{position:absolute;inset:17px;border:1px solid rgba(199,151,73,.56)}.recuerdos-contenido{position:relative;z-index:3;width:min(590px,92%);padding:48px 50px 42px;border:1px solid rgba(199,151,73,.48);border-radius:46% 46% 18px 18px/10% 10% 18px 18px;background:rgba(255,252,248,.82);box-shadow:0 25px 65px rgba(102,62,71,.12),inset 0 0 0 7px rgba(255,255,255,.45);backdrop-filter:blur(8px)}.recuerdos-kicker{margin:0;font:500 9px "Montserrat",sans-serif;letter-spacing:.33em;text-transform:uppercase}.recuerdos h2{margin:5px 0;color:var(--rosa-oscuro);font:400 clamp(62px,8vw,92px)/1 "Great Vibes",cursive}.recuerdos-linea{display:flex;align-items:center;gap:10px;width:70%;margin:4px auto 17px;color:var(--dorado)}.recuerdos-linea::before,.recuerdos-linea::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,rgba(199,151,73,.7))}.recuerdos-linea::after{background:linear-gradient(90deg,rgba(199,151,73,.7),transparent)}.recuerdos-frase{margin:0 0 9px;color:#96626b;font:italic 24px/1.25 "Cormorant Garamond",serif}.recuerdos-texto{margin:0 auto 25px;font:17px/1.45 "Cormorant Garamond",serif}.recuerdos-acciones{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.recuerdos-acciones a{min-width:205px;padding:13px 18px;color:#95636b;border:1px solid rgba(188,133,61,.58);border-radius:999px;background:rgba(255,255,255,.62);font:500 8px "Montserrat",sans-serif;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;transition:.3s ease}.recuerdos-acciones a:last-child{color:#fff;background:linear-gradient(135deg,#b8803a,#dab56d)}.recuerdos-acciones a:hover{transform:translateY(-2px);box-shadow:0 9px 20px rgba(105,62,69,.12)}.recuerdos-acciones span{margin-right:5px;font-size:13px}.recuerdos-nota{margin:17px 0 0;font:italic 13px "Cormorant Garamond",serif}.polaroid{position:absolute;z-index:1;width:210px;height:250px;padding:14px 14px 52px;border:1px solid rgba(199,151,73,.28);background:rgba(255,253,249,.74);box-shadow:0 18px 42px rgba(103,60,67,.12)}.polaroid::before{content:"";display:block;width:100%;height:100%;background:radial-gradient(circle at 40% 32%,rgba(255,255,255,.9),transparent 25%),linear-gradient(145deg,#e9cdd6,#f9e8e7 50%,#d9b6c6)}.polaroid i{position:absolute;left:50%;top:43%;transform:translate(-50%,-50%);color:rgba(179,123,53,.66);font:normal 55px "Great Vibes",cursive}.polaroid-uno{left:7%;top:16%;transform:rotate(-9deg)}.polaroid-dos{right:6%;top:22%;transform:rotate(8deg)}.polaroid-tres{left:12%;bottom:7%;width:170px;height:205px;transform:rotate(5deg)}
@media(max-width:820px){.polaroid{opacity:.36}.polaroid-uno{left:-80px}.polaroid-dos{right:-85px}.polaroid-tres{left:-60px}}@media(max-width:620px){.recuerdos{padding:45px 12px}.recuerdos-contenido{width:92%;padding:38px 19px 32px}.recuerdos h2{font-size:57px}.recuerdos-frase{font-size:21px}.recuerdos-texto{font-size:15px}.recuerdos-acciones{display:grid}.recuerdos-acciones a{min-width:0}.polaroid{opacity:.22}}

/* Cierre cinematográfico */
.ir-cierre{display:flex;align-items:center;gap:8px;margin:20px auto -20px;padding:10px;color:#95646c;border:0;background:transparent;font:italic 15px "Cormorant Garamond",serif;cursor:pointer}.ir-cierre i{color:var(--dorado);font-style:normal}.cierre{position:relative;min-height:100svh;overflow:hidden;display:grid;place-items:center;padding:55px 22px;color:#704e56;text-align:center;background:radial-gradient(circle at 50% 42%,rgba(255,255,255,.98),transparent 35%),linear-gradient(155deg,#f4dce2,#fff9f4 52%,#ecd1da)}.cierre::before{content:"L";position:absolute;left:50%;top:48%;transform:translate(-50%,-50%);color:rgba(199,151,73,.07);font:400 min(72vw,750px)/1 "Great Vibes",cursive}.cierre::after{content:"";position:absolute;inset:0;opacity:.24;background:url("../assets/fondos/textura-papel.svg") center/480px;mix-blend-mode:multiply}.cierre-marco{position:absolute;z-index:2;inset:17px;border:1px solid rgba(199,151,73,.58)}.cierre-contenido{position:relative;z-index:3;width:min(580px,92%);padding:44px 48px}.cierre-corona{color:#c29244;font-size:50px;line-height:1;text-shadow:0 8px 15px rgba(126,81,36,.18)}.cierre-kicker{margin:12px 0 0;font:500 9px "Montserrat",sans-serif;letter-spacing:.34em;text-transform:uppercase}.cierre h2{margin:2px 0;color:var(--rosa-oscuro);font:400 clamp(82px,11vw,125px)/.9 "Great Vibes",cursive}.cierre-mensaje{max-width:500px;margin:16px auto 12px;font:italic 22px/1.45 "Cormorant Garamond",serif}.cierre-firma{margin:3px 0;color:#ad6b77;font:400 70px/1 "Great Vibes",cursive}.cierre-fecha{display:flex;align-items:center;justify-content:center;gap:13px;margin:12px 0;color:#956069;font:500 14px "Montserrat",sans-serif;letter-spacing:.2em}.cierre-fecha i{width:4px;height:4px;border-radius:50%;background:var(--dorado)}.cierre-espera{margin:0;font:italic 15px "Cormorant Garamond",serif}.cierre-acciones{display:flex;justify-content:center;gap:9px;flex-wrap:wrap;margin-top:24px}.cierre-acciones button{padding:11px 18px;color:#936069;border:1px solid rgba(188,134,60,.54);border-radius:999px;background:rgba(255,255,255,.58);font:500 8px "Montserrat",sans-serif;letter-spacing:.11em;text-transform:uppercase;cursor:pointer}.cierre-acciones button:last-child{color:#fff;background:linear-gradient(135deg,#b8803b,#dab46c)}.cierre-destellos i{position:absolute;z-index:3;color:rgba(199,151,73,.72);font-style:normal;opacity:.2;animation:destelloCierre 3s ease-in-out infinite}.cierre-destellos i:nth-child(1){left:15%;top:20%;font-size:25px}.cierre-destellos i:nth-child(2){right:16%;top:27%;font-size:18px;animation-delay:.8s}.cierre-destellos i:nth-child(3){right:21%;bottom:18%;font-size:22px;animation-delay:1.5s}.cierre-destellos i:nth-child(4){left:22%;bottom:25%;font-size:15px;animation-delay:2.1s}.cierre-contenido>*{opacity:0;transform:translateY(17px)}.cierre-visible .cierre-contenido>*{animation:revelarCuenta .85s ease forwards}.cierre-visible .cierre-contenido>:nth-child(2){animation-delay:.13s}.cierre-visible .cierre-contenido>:nth-child(3){animation-delay:.25s}.cierre-visible .cierre-contenido>:nth-child(4){animation-delay:.38s}.cierre-visible .cierre-contenido>:nth-child(5){animation-delay:.53s}.cierre-visible .cierre-contenido>:nth-child(6){animation-delay:.66s}.cierre-visible .cierre-contenido>:nth-child(7){animation-delay:.78s}.cierre-visible .cierre-contenido>:nth-child(8){animation-delay:.9s}@keyframes destelloCierre{50%{opacity:1;transform:scale(1.3) rotate(25deg)}}
@media(max-width:620px){.cierre{padding:45px 13px}.cierre-contenido{width:94%;padding:35px 18px}.cierre-corona{font-size:43px}.cierre h2{font-size:88px}.cierre-mensaje{font-size:19px}.cierre-firma{font-size:62px}.cierre-acciones{display:grid}.cierre-acciones button{width:210px}}

/* Control de música siempre accesible sobre las barras del navegador móvil */
.control-musica {
    z-index: 2147483647;
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
    transform: translateZ(0);
}
@media (max-width: 620px) {
    .control-musica {
        right: calc(15px + env(safe-area-inset-right));
        bottom: calc(82px + env(safe-area-inset-bottom));
        width: 51px;
        min-width: 51px;
        height: 51px;
        min-height: 51px;
        padding: 6px;
        justify-content: center;
        border: 2px solid rgba(195,147,67,.8);
        background: rgba(255,250,247,.95);
        box-shadow: 0 10px 28px rgba(102,59,65,.22), 0 0 0 4px rgba(255,255,255,.55);
    }
    .control-musica-icono { width: 35px; font-size: 18px; }
}

/* Refinación final del atelier en móvil */
@media (max-width:620px) {
    .dress-code { place-items:center; padding-top:22px; }
    .dress-contenido { transform:translateY(-96px); }
    .atelier-visual {
        left:13px;
        top:43%;
        width:43%;
    }
    .siluetas-gala {
        width:158%;
        height:300px;
        margin-left:-29%;
        gap:18px;
        transform:scale(.70);
    }
    .atelier-linea {
        position:relative;
        width:112%;
        margin:-62px 0 0 -6%;
    }
    .atelier-linea::before,
    .atelier-linea::after { opacity:.55; }
    .atelier-linea::after {
        content:"";
        position:absolute;
        left:50%;
        bottom:-16px;
        width:128px;
        height:22px;
        border:1px solid rgba(168,117,53,.48);
        border-top-color:rgba(168,117,53,.18);
        border-radius:50%;
        background:radial-gradient(ellipse,rgba(211,166,79,.09),transparent 68%);
        transform:translateX(-50%);
    }
    .atelier-nota { margin-top:23px; }
    .dress-texto {
        width:58%;
        margin-right:4px;
        padding:20px 10px 17px;
    }
    .dress-code h2 { font-size:51px; }
    .dress-invitacion { font-size:13px; }
    .paleta-formal { margin-top:9px; }
    .paleta-formal span { width:17px; }
    .color-reservado { margin:8px auto 7px; padding:8px 1px; }
    .muestra-rosa { width:27px; flex-basis:27px; }
    .color-reservado strong { font-size:13px; }
    .dress-nota { font-size:12px; }
}

@media (max-width:360px) {
    .atelier-visual { left:8px; width:44%; }
    .dress-texto { width:59%; margin-right:1px; }
    .dress-code h2 { font-size:47px; }
}

/* Atelier móvil: figurines completos y separados de la tarjeta */
@media (max-width:620px) {
    .atelier-visual {
        left: 5px;
        top: 44%;
        width: 150px;
        overflow: visible;
    }
    .siluetas-gala {
        width: 273px;
        height: 350px;
        margin: -25px 0 0 -61px;
        gap: 18px;
        transform: scale(.56);
        transform-origin: center bottom;
    }
    .atelier-linea {
        width: 132px;
        margin: -154px auto 0;
    }
    .atelier-nota {
        width: 142px;
        margin: 24px auto 0;
        white-space: normal;
    }
    .dress-texto {
        width: 55%;
        margin-right: 2px;
    }
}

@media (max-width:360px) {
    .atelier-visual { left: 1px; width: 139px; }
    .siluetas-gala { transform: scale(.52); }
    .atelier-linea { width: 122px; }
    .atelier-nota { width: 130px; }
    .dress-texto { width: 56%; }
}

/* Muestrario de alta costura */
.muestrario-gala {
    width: min(420px, 38vw);
    min-height: 470px;
    display: grid;
    place-items: center;
    align-content: center;
    isolation: isolate;
}
.monograma-gala {
    position: absolute;
    z-index: -1;
    left: 50%;
    top: 42%;
    color: rgba(190,139,62,.13);
    font-family: "Great Vibes", cursive;
    font-size: clamp(300px, 34vw, 470px);
    font-weight: 400;
    line-height: .65;
    transform: translate(-50%,-50%);
    text-shadow: 0 18px 45px rgba(155,103,42,.07);
}
.atelier-titulo {
    margin: 0 0 24px;
    color: #986a36;
    font-family: "Cormorant Garamond", serif;
    font-size: 17px;
    font-style: italic;
    letter-spacing: .2em;
    text-transform: uppercase;
}
.muestras-tela {
    position: relative;
    width: 290px;
    height: 245px;
}
.tela {
    position: absolute;
    width: 142px;
    height: 185px;
    border: 5px solid rgba(255,252,247,.9);
    border-radius: 10px 10px 42px 10px;
    box-shadow: 0 18px 32px rgba(104,67,57,.16), 0 0 0 1px rgba(184,132,61,.28);
}
.tela::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    opacity: .5;
    background: repeating-linear-gradient(115deg,transparent 0 8px,rgba(255,255,255,.13) 9px 10px);
}
.tela-negra { left: 2px; top: 25px; background: linear-gradient(140deg,#171519,#4b4349); transform: rotate(-12deg); }
.tela-champagne { left: 49px; top: 9px; background: linear-gradient(140deg,#eadbbe,#b99b69); transform: rotate(-4deg); }
.tela-vino { right: 48px; top: 9px; background: linear-gradient(140deg,#8b4a59,#4f2330); transform: rotate(5deg); }
.tela-noche { right: 1px; top: 27px; background: linear-gradient(140deg,#34435d,#111a2b); transform: rotate(13deg); }
.etiqueta-gala {
    position: relative;
    z-index: 2;
    margin-top: -48px;
    padding: 12px 24px;
    color: #8d6233;
    border: 1px solid rgba(188,137,68,.62);
    border-radius: 999px;
    background: rgba(255,250,244,.93);
    box-shadow: 0 10px 24px rgba(99,61,56,.12);
    font-family: "Montserrat", sans-serif;
    font-size: 10px;
    letter-spacing: .2em;
    text-transform: uppercase;
}
.etiqueta-gala span { color: var(--dorado); margin: 0 6px; }
.muestrario-gala .atelier-nota {
    width: auto;
    margin: 20px 0 0;
    font-family: "Cormorant Garamond", serif;
    font-size: 15px;
    font-style: italic;
    letter-spacing: .04em;
    text-transform: none;
}

@media (max-width:620px) {
    .dress-contenido {
        width: 100%;
        justify-content: center;
        transform: translateY(-116px);
    }
    .dress-texto {
        width: 88%;
        margin: 0;
        padding: 23px 18px 20px;
    }
    .muestrario-gala {
        z-index: -1;
        left: 50%;
        top: 68%;
        width: 310px;
        min-height: 330px;
        transform: translate(-50%,-50%);
    }
    .dress-visible .muestrario-gala { transform: translate(-50%,-50%); }
    .monograma-gala { top: 45%; font-size: 300px; }
    .atelier-titulo { margin-bottom: 10px; font-size: 11px; }
    .muestras-tela { width: 220px; height: 168px; }
    .tela { width: 104px; height: 132px; border-width: 4px; }
    .tela-negra { left: 5px; top: 20px; }
    .tela-champagne { left: 38px; top: 5px; }
    .tela-vino { right: 37px; top: 5px; }
    .tela-noche { right: 4px; top: 20px; }
    .etiqueta-gala { margin-top: -31px; padding: 9px 16px; font-size: 8px; }
    .muestrario-gala .atelier-nota { width: auto; margin-top: 13px; font-size: 12px; }
}
