@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600&family=DM+Sans:wght@400;500;600&family=Great+Vibes&display=swap');:root{--cream:#f9eadb;--pink:#af625c;--brown:#563722;--gold:#c89c65;--paper:#fff6eb}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--brown);background:var(--cream);font-family:'DM Sans',sans-serif}body.locked{overflow:hidden}.sr-only{position:absolute;clip:rect(0,0,0,0);width:1px;height:1px;overflow:hidden}.cover{position:fixed;inset:0;z-index:100;display:grid;place-items:center;background:#eed9c6;overflow:hidden}.cover-image{width:100%;height:100%;object-fit:contain}.cover-interaction{position:absolute;inset:0;display:flex;align-items:flex-end;justify-content:center;padding-bottom:max(10%,45px)}#openInvitation{border:1px solid #efd1a0;border-radius:18px;color:white;background:#a65f57;padding:18px 26px;font:600 13px 'DM Sans';letter-spacing:2px;cursor:pointer;box-shadow:0 5px 20px #54332155}#openInvitation span{margin-left:12px}.cover.dismissed{opacity:0;pointer-events:none;transition:opacity .85s}.nav{position:sticky;top:0;z-index:9;background:#fff0e3ed;border-bottom:1px solid #d5b9a2;display:flex;align-items:center;justify-content:space-between;padding:12px max(5%,20px);gap:18px}.brand{font:40px 'Cormorant Garamond';color:var(--brown);text-decoration:none}.nav nav{display:flex;gap:clamp(12px,3vw,40px);flex-wrap:wrap}.nav a{color:var(--brown);text-decoration:none}.nav nav a{font-size:12px;text-transform:uppercase;letter-spacing:1.1px}.nav button{border:1px solid #ae7c74;background:transparent;border-radius:50%;width:40px;height:40px;cursor:pointer;color:#ad635c}.section{padding:clamp(65px,9vw,130px) 22px;text-align:center}.eyebrow{text-transform:uppercase;letter-spacing:3px;font-size:12px;color:#986c59;font-weight:600}.section h2{font:500 clamp(39px,6vw,74px)/1.05 'Cormorant Garamond',Georgia,serif;margin:12px auto 30px}.section h2 em,.closing h2 em{font-family:'Great Vibes',cursive;font-weight:400;color:var(--pink)}.flourish{color:#b77964;margin:24px}.intro{max-width:950px;margin:auto}.intro>p:not(.eyebrow):not(.signature){max-width:660px;margin:18px auto;line-height:1.9;font-size:17px}.signature{font:24px/1.5 'Cormorant Garamond';margin:28px}.signature strong{color:var(--pink);font-size:32px}.feature-photo{margin:45px auto 0;width:min(550px,90%);border:7px solid #fff7eb;outline:1px solid var(--gold);border-radius:46% 46% 6px 6px;overflow:hidden;box-shadow:0 20px 50px #51332322}.feature-photo img{display:block;width:100%;height:auto}.date{background:#e8cbb7 url('assets/sofia-06.webp') center/cover;position:relative;isolation:isolate}.date:before{content:'';position:absolute;inset:0;background:#ffeed9d9;z-index:-1}.date>strong{display:block;font:140px/1 'Cormorant Garamond';color:var(--pink)}.date h2{font-family:'Great Vibes';color:var(--pink);font-size:90px;margin:0}.date p{font-size:18px}.date h3{font:30px 'Cormorant Garamond';margin-bottom:12px}.sample-note{font-size:12px!important;opacity:.7}.outline-button,.main-button{display:inline-block;text-decoration:none;background:var(--pink);border:1px solid var(--gold);color:white;border-radius:12px;padding:16px 24px;letter-spacing:1.4px;font-size:12px;cursor:pointer;margin-top:22px}.details{background:#fff3e9}.events{max-width:1020px;margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:26px}.event{padding:42px 24px;border:1px solid #d7af8c;border-radius:22px;background:#f8e8db;box-shadow:0 12px 35px #90674912}.event-index{font:40px 'Cormorant Garamond';color:var(--gold)}.event time{display:block;font:45px 'Cormorant Garamond';color:var(--pink)}.event h3{font:34px 'Cormorant Garamond';margin:15px 0}.event p:not(.eyebrow){line-height:1.7}.quote{background:#7e5047;color:#fff5e6}.quote p{font:35px 'Cormorant Garamond'}.quote h2{font-family:'Great Vibes';font-size:80px}.gallery{background:radial-gradient(ellipse at top,#ffefe2,#ead2bd);padding:70px 0}.gallery-top{padding:0 20px 40px}.gallery-top p:last-child{text-transform:uppercase;letter-spacing:2px;font-size:12px}.gallery-block{max-width:1020px;margin:0 auto 78px;padding:0 17px}.gallery-number{text-align:left;font:14px 'Cormorant Garamond';letter-spacing:3px;color:#976c54;margin:0 0 12px}.gallery-img{display:block;border:4px solid #fef3e4;outline:1px solid #bd9564;padding:0;overflow:hidden;background:#f2d4b9;cursor:zoom-in;box-shadow:0 15px 34px #55331c30;width:100%;border-radius:20px}.gallery-img img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .5s}.gallery-img:hover img{transform:scale(1.035)}.gallery-img.wide{aspect-ratio:1.62}.gallery-pair{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}.gallery-img.tall{aspect-ratio:3/4}.rsvp{background:#fff1e6}.rsvp small{display:block}.rsvp-form{max-width:460px;margin:35px auto 0;text-align:left;border:1px solid #dbb59e;padding:30px;border-radius:18px;background:#fffbf5}.rsvp-form label{display:block;font-size:14px;margin:15px 0 8px}.rsvp-form input,.rsvp-form select{width:100%;border:1px solid #cdaea1;border-radius:8px;padding:15px;background:#fff;font-size:16px}.rsvp-form button{width:100%}#formStatus{font-size:12px;line-height:1.7;color:#765a4f}.closing{background:#e8d2c2}.closing h2{font-size:80px}.closing img{width:min(480px,90%);border:6px solid #fff5e9;box-shadow:0 12px 32px #53352233;border-radius:15px;margin-top:18px}footer{text-align:center;padding:48px 20px;background:#573b32;color:#fff0e4}footer strong{font:25px 'Cormorant Garamond'}footer small{display:block;letter-spacing:1px;font-size:10px;margin-top:18px}#lightbox{border:0;padding:12px;background:#261d19e8;max-width:96vw;max-height:96vh}#lightbox::backdrop{background:#160c0ce8}#lightbox img{max-height:85vh;max-width:90vw;object-fit:contain}#closeLightbox{position:absolute;right:9px;top:0;border:0;background:#fff;color:#522f2f;border-radius:50%;font-size:26px;cursor:pointer;width:36px;height:36px}@media(max-width:650px){.nav{padding:8px 13px}.nav nav{gap:8px;justify-content:center}.nav nav a{font-size:9px;letter-spacing:0}.brand{font-size:27px}.nav button{width:30px;height:30px}.events{grid-template-columns:1fr}.gallery-img.wide{aspect-ratio:1.35}.gallery-pair{gap:9px;margin-top:9px}.gallery-block{margin-bottom:46px}.cover-image{object-fit:cover}.cover-interaction{padding-bottom:11%}#openInvitation{padding:14px 15px;font-size:11px}.section{padding:60px 18px}.date>strong{font-size:100px}.date h2{font-size:70px}.intro>p:not(.eyebrow):not(.signature){font-size:15px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.gallery-img img{transition:none}}
/* V02: portada vertical íntegra, sin botones sobre el arte ni recorte en PC/móvil. */
.cover{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(10px,2vh,20px);padding:clamp(8px,2vh,20px) 12px;background:#ead4c3;}
.cover-image{display:block;width:auto;height:auto;max-width:100%;max-height:calc(100dvh - 112px);max-height:calc(100vh - 112px);object-fit:contain;box-shadow:0 5px 30px #462a1720;}
.cover-interaction{position:static;inset:auto;display:flex;align-items:center;justify-content:center;padding:0;flex:0 0 auto;}
#openInvitation{min-height:48px;white-space:nowrap;position:relative;z-index:1;}
@media(max-width:650px){.cover{padding:8px 7px;gap:10px}.cover-image{width:auto;height:auto;max-height:calc(100dvh - 84px);object-fit:contain}.cover-interaction{padding:0}#openInvitation{min-height:44px;}}
@media(prefers-reduced-motion:reduce){.cover.dismissed{transition:none}}

/* V03 — CONTENEDOR FUNCIONAL DE PORTADA TOMADO COMO REFERENCIA DE SOFÍA LIZBETH V11.
   La portada aprobada de Judith incluye gráficamente el botón; una única zona
   accesible y pulsable coincide con ese botón, sin añadir texto visual duplicado. */
html.invitation-locked{overflow:hidden!important;height:100%;scroll-behavior:auto!important}
html.invitation-locked body{overflow:hidden!important;height:100dvh;overscroll-behavior:none}
.cover{position:fixed;inset:0;z-index:100;width:100%;max-width:480px;margin:auto;height:100dvh;min-height:100dvh;max-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(ellipse at center,#f5dfca,#9b6554);overflow:hidden;gap:0}
.cover-frame{border:1px solid #c49b68;outline:1px solid #c49b6866;outline-offset:7px;width:100%;height:calc(100dvh - 48px);max-height:calc(100dvh - 48px);min-height:0;display:flex;align-items:center;justify-content:center;padding:8px;background:#f5dfce;overflow:hidden}
.cover-art{position:relative;display:block;height:100%;max-height:100%;max-width:100%;aspect-ratio:1024 / 1792;flex:0 1 auto}
.cover-image{display:block;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;box-shadow:none}
#openInvitation{position:absolute;left:20%;top:84%;width:60%;height:6%;min-height:0;padding:0;border:0;border-radius:14px;background:transparent;box-shadow:none;cursor:pointer;touch-action:manipulation;letter-spacing:normal}
#openInvitation:focus-visible{outline:3px solid #fff4d9;outline-offset:3px;box-shadow:0 0 0 6px #8e4b45}
.cover.dismissed{opacity:0;pointer-events:none;transition:opacity .8s ease}
html.invitation-locked #experience{visibility:hidden!important}
@media(max-width:650px){.cover{padding:18px}.cover-frame{height:calc(100dvh - 36px);max-height:calc(100dvh - 36px);padding:6px}.cover-image{object-fit:contain}}
@media(max-height:650px){.cover{padding:14px}.cover-frame{height:calc(100dvh - 28px);max-height:calc(100dvh - 28px);padding:5px}}
@media(prefers-reduced-motion:reduce){.cover.dismissed{transition:none}}

/* Confirmación FSF MUESTRAS */
.rsvp-form textarea{width:100%;border:1px solid #cdaea1;border-radius:8px;padding:15px;background:#fff;font:16px 'DM Sans',sans-serif;resize:vertical}
.registered-state{max-width:460px;margin:35px auto 0;padding:25px;background:#fffbf5;border:1px solid #dbb59e;border-radius:18px}.registered-state h3{font:32px 'Cormorant Garamond',serif}.registered-state button{cursor:pointer}
[hidden]{display:none!important}
