:root{--ivory:#f7f2ea;--paper:#fcfaf6;--champagne:#e9d9c4;--gold:#a98655;--gold-soft:#cbb28c;--rose:#cda9a5;--rose-pale:#ead9d5;--ink:#3d3733;--muted:#766b63;--serif:"Cormorant Garamond",Georgia,serif;--sans:"Montserrat",Arial,sans-serif;--script:"Allura",cursive}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ivory);color:var(--ink);font-family:var(--serif);font-size:18px;line-height:1.6;overflow-x:hidden}.locked{overflow:hidden}.grain{position:fixed;inset:0;z-index:100;pointer-events:none;opacity:.045;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.65'/%3E%3C/svg%3E")}.eyebrow{font:500 .66rem/1.4 var(--sans);letter-spacing:.28em;text-transform:uppercase;color:var(--gold);margin:0 0 1.5rem}.opening{position:fixed;inset:0;z-index:90;display:grid;place-items:center;min-height:100dvh;background:radial-gradient(circle at 50% 42%,#fffdf9 0,var(--ivory) 43%,#e9ddd0 100%);transition:opacity 1.1s ease,visibility 1.1s}.opening::before,.opening::after{content:"";position:absolute;width:1px;height:17vh;background:linear-gradient(transparent,var(--gold-soft),transparent);left:50%;top:0}.opening::after{top:auto;bottom:0}.opening.is-open{opacity:0;visibility:hidden}.opening__halo{position:absolute;width:min(86vw,520px);aspect-ratio:1;border:1px solid rgba(169,134,85,.28);border-radius:50%;box-shadow:0 0 0 18px rgba(203,178,140,.06),0 0 0 60px rgba(203,178,140,.035);animation:breathe 5s ease-in-out infinite}.opening__content{position:relative;text-align:center;width:min(88vw,480px);padding:2rem}.opening__eyebrow{margin-bottom:1.9rem}.monogram{width:84px;height:84px;border:1px solid var(--gold-soft);border-radius:50%;display:grid;place-items:center;margin:auto;position:relative}.monogram::before,.monogram::after{content:"";position:absolute;width:18px;height:1px;background:var(--gold-soft)}.monogram::before{left:-9px}.monogram::after{right:-9px}.monogram span{font-size:2rem;font-weight:300;color:var(--gold)}.opening h1{font-size:clamp(3.5rem,16vw,6rem);font-weight:300;line-height:.76;margin:2.2rem 0 1.7rem}.opening h1 em{font:400 .72em var(--script);display:block;color:var(--rose);margin-left:1.4em}.opening__copy{font-style:italic;color:var(--muted);font-size:1rem}.open-button{margin-top:1.4rem;border:1px solid var(--gold);background:transparent;color:var(--ink);min-width:220px;padding:1rem 1.4rem;font:500 .67rem var(--sans);letter-spacing:.18em;text-transform:uppercase;cursor:pointer;transition:.35s}.open-button:hover,.open-button:focus-visible{background:var(--gold);color:white}.open-button i{font-style:normal;margin-left:1rem}.music-reference{font:400 .55rem var(--sans);letter-spacing:.08em;color:#92867d;margin-top:1.1rem}.mini-nav{position:fixed;top:0;left:0;right:0;z-index:30;padding:max(1rem,env(safe-area-inset-top)) 1.2rem 1rem;display:flex;justify-content:space-between;align-items:center;background:linear-gradient(var(--ivory),rgba(247,242,234,.88),transparent);opacity:0;pointer-events:none;transition:.5s}.mini-nav.visible{opacity:1;pointer-events:auto}.mini-nav__brand{color:var(--gold);font-size:1.35rem;text-decoration:none}.mini-nav__cta{color:var(--ink);text-decoration:none;text-transform:uppercase;letter-spacing:.16em;font:500 .58rem var(--sans);border-bottom:1px solid var(--gold);padding-bottom:.3rem}.hero{position:relative;min-height:100dvh;display:grid;place-items:center;overflow:hidden;background:linear-gradient(160deg,#fcfaf6,var(--ivory) 55%,#eadbd2);padding:7rem 1.5rem 4rem}.hero::before{content:"";position:absolute;inset:5% 8%;border:1px solid rgba(169,134,85,.24);border-radius:50% 50% 46% 54%/55% 44% 56% 45%;transform:rotate(-7deg)}.hero__content{position:relative;text-align:center;max-width:600px}.hero__xv{font-size:clamp(8rem,40vw,16rem);line-height:.65;color:rgba(169,134,85,.11);position:absolute;top:9%;left:50%;transform:translateX(-50%);font-weight:300}.hero h2{font-size:clamp(4.3rem,18vw,8rem);font-weight:300;line-height:.72;margin:4rem 0 2.6rem;position:relative}.hero h2 span{display:block;font:400 .66em var(--script);color:var(--rose);transform:translateX(18%)}.date-lockup{display:flex;align-items:center;justify-content:center;gap:1rem;color:var(--gold)}.date-lockup b{font-size:1.3rem;font-weight:400}.date-lockup span{border-left:1px solid var(--gold-soft);border-right:1px solid var(--gold-soft);padding:.1rem 1rem;font:.63rem var(--sans);letter-spacing:.2em;text-transform:uppercase}.hero__intro{max-width:390px;margin:2rem auto;color:var(--muted);font-style:italic;font-size:1rem}.scroll-cue{display:block;width:1px;height:50px;margin:2.2rem auto 0;background:rgba(169,134,85,.25);position:relative}.scroll-cue span{position:absolute;width:3px;height:13px;background:var(--gold);left:-1px;animation:scroll 2s infinite}.ornament{position:absolute;border:1px solid rgba(169,134,85,.18);border-radius:50%}.ornament--one{width:150px;height:150px;left:-90px;bottom:12%}.ornament--two{width:100px;height:100px;right:-55px;top:15%}.section{padding:7rem 1.35rem;position:relative}.section__inner{max-width:980px;margin:auto;text-align:center}.narrow{max-width:650px}.section-title{font-size:clamp(2.7rem,11vw,5rem);font-weight:300;line-height:.95;margin:.5rem 0 2.3rem}.section-title em{font:400 1em var(--script);color:var(--rose)}.family{background:var(--paper)}.flourish{color:var(--gold-soft);font-size:.9rem;margin:2rem}.parents{display:grid;grid-template-columns:1fr auto 1fr;gap:1.1rem;align-items:center}.parents p{font-size:1.35rem;line-height:1.2;margin:0}.parents p span{display:block;font:500 .55rem var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin-bottom:.75rem}.parents i{width:1px;height:55px;background:var(--gold-soft)}blockquote{margin:3.5rem auto 0;padding:2.2rem 1.2rem 0;border-top:1px solid var(--champagne);font-style:italic;color:var(--muted);max-width:470px}.countdown{background:var(--ink);color:var(--ivory);overflow:hidden}.countdown::before{content:"28";position:absolute;right:-.1em;bottom:-.35em;font-size:19rem;color:rgba(255,255,255,.025);line-height:1}.counter{display:grid;grid-template-columns:repeat(4,1fr);max-width:700px;margin:3rem auto 0}.counter div{border-right:1px solid rgba(233,217,196,.22)}.counter div:last-child{border:0}.counter strong{display:block;font-size:clamp(2.2rem,9vw,4.4rem);font-weight:300;line-height:1}.counter span{font:.55rem var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--gold-soft)}.venues{background:var(--ivory)}.venue-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.4rem;text-align:left}.venue-card{background:var(--paper);padding:3rem;min-height:480px;position:relative;border-top:2px solid var(--gold-soft)}.venue-card--blush{background:var(--rose-pale)}.venue-card__number{position:absolute;right:1.4rem;top:.5rem;font-size:5.5rem;color:rgba(169,134,85,.11);line-height:1}.venue-card__type{font:500 .6rem var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--gold)}.venue-card h3{font-size:2.5rem;line-height:.9;font-weight:400;margin:2.8rem 0 1.2rem}.time{color:var(--gold);font-style:italic}.pending{display:inline-block;border:1px solid var(--gold-soft);border-radius:30px;padding:.25rem .75rem;font:500 .58rem var(--sans);letter-spacing:.12em;text-transform:uppercase}.address{font-size:.9rem;color:var(--muted);margin:1.7rem 0}.text-link{font:500 .62rem var(--sans);letter-spacing:.15em;text-transform:uppercase;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--gold);padding-bottom:.35rem}.text-link span{color:var(--gold)}.timeline{background:var(--paper)}.timeline-list{text-align:left;margin:3rem auto;max-width:500px}.timeline-list>div{display:grid;grid-template-columns:34px 1px 1fr;gap:1.3rem;min-height:92px}.timeline-list>div>span{font:500 .58rem var(--sans);color:var(--gold)}.timeline-list i{background:var(--champagne);position:relative}.timeline-list i::before{content:"";position:absolute;width:7px;height:7px;border-radius:50%;background:var(--gold);top:4px;left:-3px}.timeline-list b{font-size:1.35rem;font-weight:400;display:block;line-height:1}.timeline-list small{font:400 .66rem var(--sans);color:var(--muted)}.editable-note,.gallery-note{font:400 .58rem var(--sans);color:#94877e;letter-spacing:.06em}.gallery{background:#e8dbd2}.photo-grid{display:grid;grid-template-columns:1.15fr .85fr;grid-template-rows:1fr 1fr;gap:.8rem;max-width:760px;margin:auto}.photo-placeholder{min-height:210px;background:linear-gradient(135deg,rgba(255,255,255,.45),rgba(169,134,85,.15));border:1px solid rgba(255,255,255,.48);display:grid;place-items:center;position:relative;color:#887a70}.photo-placeholder--tall{grid-row:1/3;min-height:430px}.photo-placeholder span{position:absolute;top:1rem;left:1rem;font:.55rem var(--sans);letter-spacing:.18em}.photo-placeholder p{font-style:italic;line-height:1.15}.gallery-note{margin-top:1.5rem}.dress{background:var(--paper)}.dress__icon{font-size:2.5rem;color:var(--gold);margin-bottom:1rem}.script-word{font:400 clamp(4rem,15vw,7rem) var(--script);color:var(--rose);line-height:.7;margin:.5rem 0 2rem}.dress .section__inner>p:not(.eyebrow,.script-word){color:var(--muted);max-width:450px;margin-left:auto;margin-right:auto}.palette{display:flex;justify-content:center;gap:.6rem;margin-top:2.3rem}.palette i{width:30px;height:30px;border-radius:50%;background:#f2e9de}.palette i:nth-child(2){background:var(--champagne)}.palette i:nth-child(3){background:var(--rose)}.palette i:nth-child(4){background:var(--gold-soft)}.gifts{background:var(--ivory)}.gifts p{color:var(--muted)}.gift-placeholder{border:1px solid var(--champagne);padding:2.2rem;margin-top:2.4rem;display:grid;gap:.25rem}.gift-placeholder span{color:var(--gold)}.gift-placeholder b{font-weight:400;font-size:1.15rem}.gift-placeholder small{font:400 .57rem var(--sans);color:#93867d;letter-spacing:.08em}.rsvp{background:var(--rose-pale)}.rsvp p{color:var(--muted)}.whatsapp-button{display:inline-flex;gap:.8rem;align-items:center;background:var(--ink);color:white;text-decoration:none;padding:1.1rem 1.6rem;margin:1.7rem 0;font:500 .64rem var(--sans);letter-spacing:.14em;text-transform:uppercase;transition:.3s}.whatsapp-button:hover{background:var(--gold)}.rsvp small{display:block;font:400 .56rem var(--sans);color:#8b7d74}.closing{min-height:92dvh;display:grid;place-items:center;overflow:hidden;background:linear-gradient(150deg,var(--paper),#e9d9cf);text-align:center}.closing__orb{position:absolute;width:min(88vw,570px);aspect-ratio:1;border:1px solid rgba(169,134,85,.32);border-radius:50%;box-shadow:0 0 0 35px rgba(255,255,255,.18)}.closing__xv{font-size:6rem;line-height:.6;color:rgba(169,134,85,.16)}.closing h2{font-size:clamp(4rem,17vw,8rem);font-weight:300;line-height:.72;margin:1rem}.closing h2 em{font:400 .7em var(--script);color:var(--rose);display:block}.closing p{font-style:italic;color:var(--muted)}.closing__date{font:500 .65rem var(--sans);letter-spacing:.28em;color:var(--gold);margin-top:2rem}.music-button{position:fixed;z-index:40;right:1rem;bottom:max(1rem,env(safe-area-inset-bottom));width:46px;height:46px;border-radius:50%;border:1px solid var(--gold-soft);background:rgba(252,250,246,.88);backdrop-filter:blur(8px);color:var(--gold);cursor:pointer;opacity:0;pointer-events:none;transition:.4s}.music-button.visible{opacity:1;pointer-events:auto}.music-button span{display:block;animation:spin 8s linear infinite}.music-toast{position:fixed;z-index:39;right:1rem;bottom:4.6rem;background:var(--ink);color:white;padding:.8rem 1rem;font-size:.8rem;max-width:280px;opacity:0;transform:translateY(8px);pointer-events:none;transition:.3s}.music-toast small{color:var(--gold-soft);font-family:var(--sans);font-size:.55rem}.music-toast.show{opacity:1;transform:none}.reveal{opacity:0;transform:translateY(28px);transition:opacity 1s ease,transform 1s ease}.reveal.is-visible{opacity:1;transform:none}@keyframes breathe{50%{transform:scale(1.035);opacity:.7}}@keyframes scroll{0%{top:0;opacity:0}30%{opacity:1}100%{top:38px;opacity:0}}@keyframes spin{to{transform:rotate(360deg)}}
@media(max-width:700px){.section{padding:6rem 1.2rem}.venue-grid{grid-template-columns:1fr}.venue-card{padding:2.2rem;min-height:430px}.parents{gap:.7rem}.parents p{font-size:1.12rem}.counter{gap:0}.photo-grid{grid-template-columns:1fr;grid-template-rows:auto}.photo-placeholder--tall{grid-row:auto;min-height:420px}.photo-placeholder{min-height:230px}.gallery-note{padding:0 1rem}}@media(min-width:900px){.mini-nav{padding-left:3rem;padding-right:3rem}.hero__intro{font-size:1.12rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}

/* Fotografía vertical principal */
.gallery-photo{margin:0;position:relative;overflow:hidden;background:#241f1e;min-height:430px}
.gallery-photo--principal{grid-row:1/3}
.gallery-photo img{width:100%;height:100%;display:block;object-fit:cover;object-position:50% 42%;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.gallery-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 60%,rgba(22,18,17,.62));pointer-events:none}
.gallery-photo figcaption{position:absolute;z-index:1;inset:auto 1.2rem 1rem;color:white;display:flex;align-items:end;justify-content:space-between}
.gallery-photo figcaption span{font:500 .55rem var(--sans);letter-spacing:.18em;color:var(--gold-soft)}
.gallery-photo figcaption p{margin:0;font:400 1.45rem var(--script)}
.gallery-photo:hover img{transform:scale(1.025)}
@media(max-width:700px){.gallery-photo--principal{grid-row:auto;min-height:clamp(540px,145vw,760px)}.gallery-photo img{object-position:50% 46%}}

/* Portada fotográfica */
.opening{background:#080808;color:#fff}
.opening__portrait{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 43%;animation:openingZoom 12s ease-out both}
.opening__veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.36) 0%,rgba(0,0,0,.04) 32%,rgba(0,0,0,.15) 57%,rgba(0,0,0,.82) 100%)}
.opening__halo{opacity:.5;border-color:rgba(233,217,196,.38);box-shadow:0 0 0 18px rgba(203,178,140,.03),0 0 0 60px rgba(203,178,140,.02)}
.opening .eyebrow,.opening h1 em{color:#e4c39d}.opening__copy{color:#f7eee7;text-shadow:0 1px 12px rgba(0,0,0,.7)}
.opening h1{text-shadow:0 2px 20px rgba(0,0,0,.55)}
.opening .open-button{border-color:#d4b68d;color:#fff;background:rgba(12,10,9,.28);backdrop-filter:blur(7px)}
.opening .open-button:hover,.opening .open-button:focus-visible{background:#b18b5c;border-color:#b18b5c}
.opening .music-reference{color:#d8cdc4}
.gallery-photo--secondary{min-height:210px}.gallery-photo--secondary img{object-position:50% 32%}.gallery-photo--xv img{object-position:50% 46%}
@keyframes openingZoom{from{transform:scale(1.035)}to{transform:scale(1)}}
@media(max-width:700px){.opening__portrait{object-position:50% 48%}.opening__content{align-self:end;padding-bottom:max(2.2rem,env(safe-area-inset-bottom))}.opening__halo{top:15%;width:82vw}.opening h1{font-size:clamp(3.5rem,15vw,5.2rem);margin:1.2rem 0 1rem}.opening__eyebrow{margin-bottom:1rem}.monogram{width:62px;height:62px}.monogram span{font-size:1.55rem}.opening__copy{margin:.6rem 0}.open-button{margin-top:.7rem}.gallery-photo--secondary{min-height:clamp(460px,125vw,650px)}.gallery-photo--roses img{object-position:50% 28%}.gallery-photo--xv img{object-position:50% 42%}}

/* La fotografía protagonista vive dentro de la invitación, en el primer hero */
.opening{background:radial-gradient(circle at 50% 42%,#fffdf9 0,var(--ivory) 43%,#e9ddd0 100%);color:var(--ink)}
.opening .eyebrow{color:var(--gold)}.opening h1{color:var(--ink);text-shadow:none}.opening h1 em{color:var(--rose)}
.opening__copy{color:var(--muted);text-shadow:none}.opening .open-button{border-color:var(--gold);color:var(--ink);background:transparent;backdrop-filter:none}
.opening .open-button:hover,.opening .open-button:focus-visible{background:var(--gold);border-color:var(--gold);color:white}.opening .music-reference{color:#92867d}
.opening__halo{opacity:1;border-color:rgba(169,134,85,.28);box-shadow:0 0 0 18px rgba(203,178,140,.06),0 0 0 60px rgba(203,178,140,.035)}
.hero{background:#080808;color:#fff}
.hero__portrait{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 30%;animation:openingZoom 12s ease-out both}
.hero__veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.58) 0%,rgba(0,0,0,.07) 30%,rgba(0,0,0,.18) 55%,rgba(0,0,0,.88) 100%)}
.hero::before{z-index:1;border-color:rgba(233,217,196,.32)}.hero__content{z-index:2}
.hero .eyebrow{display:inline-block;transform:translateX(-115%);color:#f2cf98;text-shadow:0 2px 12px rgba(0,0,0,.95);font-weight:600;letter-spacing:.34em}.hero .date-lockup{color:#f4d29e;background:rgba(8,7,6,.34);border:1px solid rgba(242,207,152,.22);width:max-content;max-width:100%;margin-left:auto;margin-right:auto;padding:.55rem 1rem;backdrop-filter:blur(4px);text-shadow:0 2px 10px rgba(0,0,0,.9)}.hero h2{color:#fff;text-shadow:0 2px 22px rgba(0,0,0,.62)}.hero h2 span{color:#e3b8b8}
.hero .date-lockup b{color:#ffe2b7}.hero .date-lockup span{border-color:rgba(244,210,158,.72);color:#f4d29e;font-weight:600}.hero__intro{color:#f3eae4;text-shadow:0 1px 12px rgba(0,0,0,.82)}
.hero .scroll-cue{background:rgba(255,255,255,.28)}.hero .scroll-cue span{background:#e2c39a}.hero .ornament{border-color:rgba(233,217,196,.28)}
@media(max-width:700px){.opening__content{align-self:center;padding-bottom:2rem}.opening__halo{top:auto}.hero__portrait{object-position:50% 30%}.hero{padding-top:6.5rem;padding-bottom:2.5rem}.hero .eyebrow{transform:translateX(-78%);font-size:.6rem}.hero h2{font-size:clamp(3.8rem,16vw,5.7rem);margin:2.5rem 0 1.5rem}.hero .date-lockup{padding:.45rem .65rem;gap:.65rem}.hero__intro{font-size:.92rem;margin:1.4rem auto}}

/* Control ceremonial para deslizar y abrir */
.open-slider{--slider-red:#8f2636;--thumb-size:46px;position:relative;width:min(255px,76vw);height:54px;margin:1.5rem auto 0;border-radius:999px;background:rgba(255,255,255,.55);border:1px solid rgba(143,38,54,.38);box-shadow:inset 0 0 0 4px rgba(255,255,255,.32),0 10px 30px rgba(89,42,42,.08);overflow:hidden;transition:box-shadow .3s}
.open-slider:focus-within{box-shadow:inset 0 0 0 4px rgba(255,255,255,.35),0 0 0 3px rgba(143,38,54,.14),0 10px 30px rgba(89,42,42,.11)}
.open-slider__label{position:absolute;inset:0;display:grid;place-items:center;padding-right:36px;font:600 .58rem var(--sans);letter-spacing:.15em;text-transform:uppercase;color:#76565b;pointer-events:none;transition:opacity .2s}
.open-slider__fill{position:absolute;right:0;top:0;bottom:0;width:calc(24px + var(--slide));max-width:100%;background:linear-gradient(270deg,#741a2b,var(--slider-red));opacity:.16;pointer-events:none}
.open-slider input{position:absolute;inset:0;width:100%;height:100%;margin:0;appearance:none;-webkit-appearance:none;background:transparent;cursor:grab;outline:none;direction:rtl}
.open-slider input:active{cursor:grabbing}
.open-slider input::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:var(--thumb-size);height:var(--thumb-size);border-radius:50%;border:0;background:var(--slider-red);box-shadow:0 3px 12px rgba(85,21,35,.28);background-image:linear-gradient(135deg,rgba(255,255,255,.18),transparent);cursor:grab}
.open-slider input::-moz-range-thumb{width:var(--thumb-size);height:var(--thumb-size);border-radius:50%;border:0;background:var(--slider-red);box-shadow:0 3px 12px rgba(85,21,35,.28);cursor:grab}
.open-slider input::-moz-range-track{background:transparent;border:0}.open-slider::after{content:"‹";position:absolute;left:var(--thumb-left);top:50%;transform:translate(-50%,-54%);font:300 1.8rem var(--serif);color:white;pointer-events:none;text-shadow:0 1px 3px rgba(0,0,0,.25)}
@media(max-width:700px){.open-slider{width:min(245px,74vw);height:52px;margin-top:1.1rem}.open-slider__label{font-size:.56rem}}

/* Iconografía lineal de ceremonia y recepción */
.venue-icon{width:42px;height:42px;display:grid;place-items:center;margin:2.1rem 0 1.25rem;color:var(--gold);position:relative}
.venue-card .venue-icon+.venue-card__type{margin-top:0}
.venue-card .venue-card__type+h3{margin-top:1.65rem}
.venue-icon--church{border:1px solid rgba(169,134,85,.55);border-bottom:0;border-radius:21px 21px 0 0}
.venue-icon--church::before{content:"";position:absolute;width:1px;height:19px;background:var(--gold);left:50%;top:10px}
.venue-icon--church::after{content:"";position:absolute;width:11px;height:1px;background:var(--gold);left:calc(50% - 5px);top:16px}
.venue-icon--church i{position:absolute;width:52px;height:1px;background:linear-gradient(90deg,transparent,var(--gold-soft),transparent);bottom:0}
.venue-icon--celebration{border:1px solid rgba(169,134,85,.38);border-radius:50%}
.venue-icon--celebration::before,.venue-icon--celebration::after{content:"";position:absolute;width:4px;height:4px;border:1px solid var(--gold-soft);border-radius:50%}
.venue-icon--celebration::before{left:-7px;top:8px}.venue-icon--celebration::after{right:-6px;bottom:7px}
.venue-icon--celebration i{font-style:normal;font-size:1.05rem;color:var(--gold);line-height:1}
@media(max-width:700px){.venue-icon{margin-top:1.5rem}}

/* Portada: control fuera del aro y respiración reforzada */
.opening>.open-slider{position:absolute;z-index:3;left:50%;top:calc(50% + min(45vw,285px) + 18px);transform:translateX(-50%);margin:0}
.opening__halo{animation:breathe 4.6s cubic-bezier(.45,0,.55,1) infinite}
@keyframes breathe{0%,100%{transform:scale(1);opacity:.94;box-shadow:0 0 0 18px rgba(203,178,140,.06),0 0 0 60px rgba(203,178,140,.035)}50%{transform:scale(1.075);opacity:.58;box-shadow:0 0 0 28px rgba(203,178,140,.10),0 0 0 92px rgba(203,178,140,.055)}}
@media(max-width:700px){.opening>.open-slider{top:calc(50% + 45vw + 18px)}}

/* Firma Sofia sobre la zona oscura del vestido */
.hero h2 span{transform:translate(-2%,-.08em)}
@media(max-width:700px){.hero h2 span{transform:translate(-4%,-.06em)}}

/* Iconos editoriales para galería, vestimenta y regalos */
.section-icon{width:48px;height:42px;display:block;position:relative;margin:0 auto 1.35rem;color:var(--gold)}
.section-icon::after{content:"";position:absolute;left:50%;bottom:-7px;width:64px;height:1px;transform:translateX(-50%);background:linear-gradient(90deg,transparent,var(--gold-soft),transparent)}
.section-icon--gallery{width:46px;height:36px;border:1px solid rgba(169,134,85,.7);padding:4px}
.section-icon--gallery::before{content:"";position:absolute;width:5px;height:5px;border:1px solid var(--gold);border-radius:50%;right:7px;top:6px}
.section-icon--gallery i{position:absolute;left:7px;right:7px;bottom:7px;height:13px;border-left:1px solid var(--gold);border-bottom:1px solid var(--gold);transform:skewY(-31deg)}
.section-icon--hanger::before{content:"";position:absolute;width:12px;height:12px;border:1px solid var(--gold);border-left-color:transparent;border-bottom-color:transparent;border-radius:50%;left:18px;top:0;transform:rotate(-35deg)}
.section-icon--hanger i{position:absolute;width:38px;height:21px;left:5px;bottom:5px;border-left:1px solid var(--gold);border-right:1px solid var(--gold);border-bottom:1px solid var(--gold);transform:perspective(20px) rotateX(-8deg);clip-path:polygon(50% 0,100% 100%,0 100%)}
.section-icon--gift{width:42px;height:36px;border:1px solid rgba(169,134,85,.72);margin-top:3px}
.section-icon--gift::before{content:"";position:absolute;left:-4px;right:-4px;top:7px;height:6px;border:1px solid var(--gold);background:var(--ivory)}
.section-icon--gift i{position:absolute;left:50%;top:-1px;bottom:0;width:1px;background:var(--gold)}
.section-icon--gift i::before,.section-icon--gift i::after{content:"";position:absolute;bottom:35px;width:11px;height:7px;border:1px solid var(--gold);border-radius:10px 10px 0 10px}
.section-icon--gift i::before{right:1px;transform:rotate(12deg)}.section-icon--gift i::after{left:1px;transform:scaleX(-1) rotate(12deg)}
.gallery .section-icon--gallery{border-color:rgba(122,92,62,.72)}.gallery .section-icon::after{background:linear-gradient(90deg,transparent,rgba(122,92,62,.62),transparent)}

/* Datos finales: padrinos, etiqueta y regalos */
.godparents{margin:3.1rem auto 0;padding-top:2.3rem;border-top:1px solid var(--champagne);max-width:520px}
.godparents__title{margin:0 0 1.35rem;font:500 .62rem var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--gold)}
.godparents__names{display:grid;grid-template-columns:1fr auto 1fr;gap:1.1rem;align-items:center}
.godparents__names p{font-size:1.22rem;line-height:1.2;margin:0}.godparents__names p span{display:block;margin-bottom:.65rem;font:500 .55rem var(--sans);letter-spacing:.17em;text-transform:uppercase;color:var(--gold)}
.godparents__names>i{width:1px;height:45px;background:var(--gold-soft)}
.reserved-color{display:inline-flex;align-items:center;justify-content:center;gap:.65rem;margin:2rem auto 0!important;padding:.75rem 1rem;border:1px solid rgba(91,94,55,.34);color:#5b5e37!important;font:500 .66rem/1.45 var(--sans)!important;letter-spacing:.04em}
.reserved-color>i{flex:0 0 auto;width:13px;height:13px;border-radius:50%;background:#686b3f;box-shadow:0 0 0 4px rgba(104,107,63,.12)}
.gift-message{margin:2.4rem auto 0;padding:2.2rem 1.5rem;border:1px solid var(--champagne);position:relative;background:rgba(255,255,255,.24)}
.gift-message>span{display:block;color:var(--gold);font-size:.8rem;margin-bottom:.65rem}.gift-message p{margin:0;color:var(--ink);font-size:1.15rem;line-height:1.55}.gift-message em{font:400 1.65rem var(--script);color:var(--rose)}
@media(max-width:700px){.godparents__names{gap:.7rem}.godparents__names p{font-size:1.05rem}.reserved-color{align-items:center;text-align:center;font-size:.62rem!important}.gift-message{padding:1.8rem 1rem}}

/* Acceso independiente al contenido oficial de Spotify */
.music-button{width:auto;min-width:112px;height:46px;padding:0 1rem;display:flex;align-items:center;justify-content:center;gap:.55rem;text-decoration:none;background:rgba(20,18,17,.9);border-color:rgba(255,255,255,.28);color:#fff;box-shadow:0 7px 24px rgba(0,0,0,.18)}
.music-button span{animation:none;color:var(--gold-soft);font-size:.9rem}.music-button b{font:600 .58rem var(--sans);letter-spacing:.11em;text-transform:uppercase}.music-button:hover,.music-button:focus-visible{background:#171717;border-color:var(--gold-soft);transform:translateY(-2px)}.music-button.is-playing span{animation:spin 6s linear infinite;color:#f0c98d}.music-button.needs-audio{border-style:dashed}
