:root{--gold:#c8a24a;--gold-light:#edd797;--cream:#f7f1e5;--ink:#2d2017;--wine:#4a2524}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:Montserrat,Arial,sans-serif;font-weight:300;overflow-x:hidden}body.locked{overflow:hidden}.welcome{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;text-align:center;color:#fff;background:linear-gradient(rgba(27,17,12,.62),rgba(27,17,12,.82)),url('c0911427-c200-44f3-a21d-5f1cb018c562.jpg') center 30%/cover;transition:opacity 1s,visibility 1s}.welcome::before{content:"";position:absolute;inset:24px;border:1px solid rgba(237,215,151,.55);pointer-events:none}.welcome.hidden{opacity:0;visibility:hidden}.welcome__glow{position:absolute;width:70vw;height:70vw;max-width:600px;max-height:600px;border-radius:50%;background:radial-gradient(circle,rgba(200,162,74,.22),transparent 70%)}.welcome__content{position:relative;padding:40px 30px}.eyebrow{text-transform:uppercase;letter-spacing:.3em;font-size:.68rem;font-weight:500;color:var(--gold)}.welcome h1{font:500 clamp(2.9rem,10vw,6rem)/.9 'Cormorant Garamond',serif;margin:20px 0}.welcome h1 span,.hero h1 span,.closing__names span{color:var(--gold);font-style:italic}.welcome__years{font:400 1.7rem 'Cormorant Garamond',serif;letter-spacing:.12em}.welcome button{margin-top:28px;border:1px solid var(--gold-light);background:rgba(45,32,23,.3);color:#fff;padding:15px 32px;text-transform:uppercase;letter-spacing:.18em;font-size:.7rem;cursor:pointer;transition:.3s}.welcome button:hover{background:var(--gold);color:var(--ink)}.sound-hint{font-size:.65rem;opacity:.7;margin-top:14px}.rings{height:42px;position:relative;width:72px;margin:24px auto}.rings i{position:absolute;border:2px solid var(--gold-light);border-radius:50%;width:42px;height:42px}.rings i:first-child{left:4px}.rings i:last-child{right:4px}.music-control{position:fixed;z-index:50;right:18px;top:18px;width:46px;height:46px;border-radius:50%;border:1px solid rgba(255,255,255,.5);background:rgba(45,32,23,.72);backdrop-filter:blur(8px);display:grid;place-items:center;cursor:pointer}.music-bars{height:17px;display:flex;align-items:center;gap:3px}.music-bars i{display:block;width:2px;height:100%;background:var(--gold-light);animation:sound .8s ease-in-out infinite alternate}.music-bars i:nth-child(2){animation-delay:.25s;height:65%}.music-bars i:nth-child(3){animation-delay:.5s;height:85%}.music-control.paused i{animation:none;height:3px}@keyframes sound{to{height:25%}}.hero{height:100svh;min-height:650px;position:relative;display:grid;place-items:center;overflow:hidden;text-align:center;color:#fff}.hero__image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 35%;filter:sepia(.25) saturate(.75)}.hero__veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(25,16,10,.45),rgba(25,16,10,.2) 45%,rgba(25,16,10,.78))}.hero__content{position:relative;width:min(92%,850px);padding-top:20px}.anniversary{font:600 clamp(7rem,25vw,14rem)/.62 'Cormorant Garamond',serif;color:var(--gold-light);margin:25px 0 0;text-shadow:0 4px 30px #000}.hero h2{font:400 clamp(2rem,8vw,4.6rem) 'Cormorant Garamond',serif;text-transform:uppercase;letter-spacing:.24em;margin:10px 0 22px;padding-left:.24em}.gold-line{display:flex;align-items:center;justify-content:center;gap:14px;font-size:.65rem;letter-spacing:.2em;color:var(--gold-light)}.gold-line i{width:90px;height:1px;background:var(--gold)}.hero h1{font:500 clamp(1.7rem,5vw,3rem)/.86 'Cormorant Garamond',serif;margin:25px 0 0}.hero__subtitle{font:400 1.2rem 'Cormorant Garamond',serif;letter-spacing:.28em;text-transform:uppercase;color:var(--gold-light)}.scroll-cue{position:absolute;left:50%;bottom:-72px;width:24px;height:42px;border:1px solid rgba(255,255,255,.5);border-radius:15px;transform:translateX(-50%)}.scroll-cue span{position:absolute;top:8px;left:10px;width:3px;height:7px;background:var(--gold-light);border-radius:2px;animation:scroll 1.6s infinite}@keyframes scroll{to{transform:translateY(17px);opacity:0}}.love-note{padding:100px 24px;text-align:center;background:var(--cream)}.love-note blockquote{font:500 clamp(1.9rem,5vw,3.4rem)/1.2 'Cormorant Garamond',serif;margin:25px auto;max-width:900px}.ornament{color:var(--gold);font-size:1.2rem;margin-top:25px}.memory{position:relative;margin:0 auto}.memory img{display:block;width:100%;object-fit:cover}.memory--wide{width:min(100%,1200px)}.memory--wide>img{height:min(72vw,690px)}.memory__caption{position:absolute;inset:auto 0 0;color:#fff;padding:90px 8% 40px;background:linear-gradient(transparent,rgba(25,16,10,.8))}.memory__caption span{font:500 clamp(2rem,6vw,4rem) 'Cormorant Garamond',serif}.memory__caption p{margin:4px 0;font-size:.8rem;letter-spacing:.08em}.story-text{padding:100px max(8%,24px);display:grid;grid-template-columns:auto minmax(0,700px);justify-content:center;gap:28px;background:#fff}.story-text .number{font:600 4.5rem/1 'Cormorant Garamond',serif;color:var(--gold-light)}.story-text p{font:400 clamp(1.5rem,3vw,2.2rem)/1.35 'Cormorant Garamond',serif;margin:0}.photo-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px;max-width:1100px;margin:auto;padding:0 12px}.photo-pair figure{margin:0;height:650px;overflow:hidden}.photo-pair img{width:100%;height:100%;object-fit:cover}.love-note--dark{background:var(--ink);color:#fff}.memory--portrait{display:grid;grid-template-columns:1.15fr .85fr;gap:12px;max-width:900px;padding:12px}.memory--portrait img{height:650px;object-fit:cover}.memory--portrait img:last-child{filter:sepia(.12)}.mosaic{display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:min(48vw,580px);max-width:1200px;margin:auto}.mosaic>*{width:100%;height:100%;object-fit:cover}.mosaic__words{background:var(--wine);color:#fff;display:flex;flex-direction:column;justify-content:center;padding:12%;font-family:'Cormorant Garamond',serif}.mosaic__words small{color:var(--gold-light);text-transform:uppercase;letter-spacing:.2em}.mosaic__words strong{font-size:clamp(2.4rem,6vw,5rem);line-height:.85;margin-top:22px;font-weight:500}.gallery{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:160px;gap:8px;max-width:1200px;padding:8px;margin:auto;background:#fff}.gallery img{width:100%;height:100%;object-fit:cover}.gallery img:nth-child(1){grid-column:span 5;grid-row:span 3}.gallery img:nth-child(2){grid-column:span 7;grid-row:span 2}.gallery img:nth-child(3){grid-column:span 4;grid-row:span 3}.gallery img:nth-child(4){grid-column:span 3;grid-row:span 3}.gallery img:nth-child(5){grid-column:span 5;grid-row:span 2}.gallery img:nth-child(6){grid-column:span 4;grid-row:span 2}.gallery img:nth-child(7){grid-column:span 3;grid-row:span 2}.closing{min-height:90svh;background:linear-gradient(rgba(35,22,15,.72),rgba(35,22,15,.88)),url('7ad9a6e2-9dc1-48c2-a262-b8044f051362.jpg') center/cover fixed;display:grid;place-items:center;text-align:center;color:#fff;padding:100px 24px}.closing__content{max-width:800px}.closing h2{font:600 clamp(5rem,18vw,11rem)/.8 'Cormorant Garamond',serif;color:var(--gold-light);margin:35px 0}.closing p{font:400 clamp(1.4rem,4vw,2.2rem)/1.4 'Cormorant Garamond',serif}.closing__names{font:500 clamp(2.8rem,8vw,5.5rem) 'Cormorant Garamond',serif;margin:60px 0 25px}.closing .toast{font-size:1.25rem;color:var(--gold-light)}footer{text-align:center;background:#1d1510;color:rgba(255,255,255,.55);padding:32px;font-size:.6rem;letter-spacing:.16em;text-transform:uppercase}.reveal{opacity:0;transform:translateY(35px);transition:opacity 1s ease,transform 1s ease}.reveal.visible{opacity:1;transform:none}@media(max-width:700px){.welcome::before{inset:12px}.hero h2{font-size:2.05rem}.hero__image{object-position:58% center}.scroll-cue{bottom:-55px}.story-text{grid-template-columns:1fr;gap:12px;padding:70px 30px}.story-text .number{font-size:3rem}.photo-pair figure,.memory--portrait img{height:480px}.memory--portrait{grid-template-columns:1fr 1fr}.mosaic{grid-template-columns:1fr;grid-auto-rows:110vw}.mosaic__words{height:75vw}.gallery{grid-template-columns:1fr 1fr;grid-auto-rows:270px}.gallery img:nth-child(n){grid-column:span 1;grid-row:span 1}.gallery img:nth-child(1),.gallery img:nth-child(4){grid-column:span 2}.closing{background-attachment:scroll}.love-note{padding:75px 20px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}*{animation:none!important}}
.event-section{background:#fff;padding:110px 20px}.event-heading{text-align:center;margin-bottom:55px}.event-heading h2{font:600 clamp(2.6rem,7vw,5rem)/1 'Cormorant Garamond',serif;margin:18px 0;color:var(--ink)}.event-heading>p:last-child{letter-spacing:.2em;text-transform:uppercase;font-size:.72rem}.countdown{display:flex;justify-content:center;gap:clamp(8px,3vw,35px);margin:0 auto 90px}.countdown div{width:clamp(70px,16vw,135px);aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid #dec98f;background:var(--cream);position:relative}.countdown div::after{content:"";position:absolute;inset:5px;border:1px solid rgba(200,162,74,.28)}.countdown strong{font:600 clamp(2rem,6vw,4.2rem)/.9 'Cormorant Garamond',serif;color:var(--wine)}.countdown span{text-transform:uppercase;letter-spacing:.12em;font-size:clamp(.48rem,1.5vw,.65rem);margin-top:8px}.venues{max-width:1180px;margin:auto;display:grid;gap:45px}.venue{display:grid;grid-template-columns:.8fr 1.2fr;min-height:440px;background:var(--cream);box-shadow:0 15px 45px rgba(45,32,23,.08)}.venue--reverse{grid-template-columns:1.2fr .8fr}.venue--reverse .venue__info{order:2}.venue__info{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:55px}.venue__icon{color:var(--gold);font-size:1.3rem}.venue__info h3{font:600 clamp(2rem,4vw,3.4rem)/1 'Cormorant Garamond',serif;margin:15px 0}.venue__time{font:500 1.25rem 'Cormorant Garamond',serif;color:var(--wine)}.venue__info a{display:inline-block;margin-top:18px;padding:13px 20px;border:1px solid var(--gold);color:var(--ink);text-decoration:none;text-transform:uppercase;letter-spacing:.12em;font-size:.62rem}.venue__map{position:relative;min-height:400px;background:#e8dfcf}.venue__map iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.map-offline{display:none;position:absolute;inset:0;margin:0;align-items:center;justify-content:center;text-align:center;padding:25px;color:#6f6257}.offline .venue__map iframe{display:none}.offline .map-offline{display:flex}.rsvp{padding:110px 20px;background:var(--wine);position:relative;overflow:hidden}.rsvp::before,.rsvp::after{content:"";position:absolute;width:350px;height:350px;border:1px solid rgba(237,215,151,.15);border-radius:50%}.rsvp::before{left:-180px;top:-180px}.rsvp::after{right:-180px;bottom:-180px}.rsvp__card{position:relative;max-width:850px;margin:auto;background:var(--cream);padding:clamp(35px,7vw,80px);text-align:center;box-shadow:0 20px 60px rgba(0,0,0,.25)}.rsvp h2{font:600 clamp(2.7rem,7vw,5rem)/1 'Cormorant Garamond',serif;margin:15px 0}.rsvp__intro{font:400 1.2rem/1.5 'Cormorant Garamond',serif}.rsvp form{margin-top:38px}.rsvp label{display:block;text-align:left;font-size:.68rem;text-transform:uppercase;letter-spacing:.12em;margin-bottom:9px}.form-row{display:flex}.form-row input{min-width:0;flex:1;border:1px solid #cdbb95;background:#fff;padding:16px;font:400 .9rem Montserrat,sans-serif;outline:none}.form-row input:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(200,162,74,.16)}.form-row button{border:0;background:var(--ink);color:#fff;padding:0 25px;text-transform:uppercase;letter-spacing:.12em;font-size:.65rem;cursor:pointer}.form-row button:disabled{opacity:.55;cursor:wait}.form-status{min-height:22px;font-size:.78rem;margin:13px 0;color:#675b51}.form-status.success{color:#47633d}.form-status.error{color:#9a3232}.family-count{border-top:1px solid #d9cba9;margin-top:30px;padding-top:30px;display:flex;align-items:center;justify-content:center;gap:13px}.family-count strong{font:600 3.6rem/1 'Cormorant Garamond',serif;color:var(--gold)}.family-count span{max-width:110px;text-align:left;text-transform:uppercase;letter-spacing:.1em;font-size:.6rem;line-height:1.5}
@media(max-width:760px){.event-section{padding:80px 12px}.countdown{gap:5px;margin-bottom:65px}.venue,.venue--reverse{grid-template-columns:1fr}.venue--reverse .venue__info{order:0}.venue__info{padding:45px 30px;align-items:center;text-align:center}.venue__map{min-height:330px}.form-row{flex-direction:column;gap:8px}.form-row button{padding:16px}.rsvp{padding:75px 12px}.rsvp__card{padding:45px 24px}.family-count{flex-direction:column}.family-count span{text-align:center;max-width:none}}

/* Fondo floral inspirado en las Bodas de Oro */
body{background:#faf6ed url('fondo-bodas-de-oro.png') center/cover fixed}
.welcome{color:var(--ink);background:#faf6ed url('fondo-bodas-de-oro.png') center/cover no-repeat;text-align:left;place-items:center start;padding-left:10vw}
.welcome::before{border-color:rgba(173,126,33,.55)}
.welcome__content{width:min(56vw,720px);text-align:center}
.welcome__glow{left:2vw;background:radial-gradient(circle,rgba(255,255,255,.72),transparent 72%)}
.welcome button{border-color:#a77d27;background:rgba(255,255,255,.55);color:var(--ink)}
.welcome button:hover{background:var(--gold);color:#fff}
.welcome .sound-hint{color:#665745;opacity:.9}
.love-note,.event-section{background:rgba(250,247,239,.9) url('fondo-bodas-de-oro.png') center/cover fixed;background-blend-mode:screen}
.story-text{background:rgba(255,255,255,.92)}
.rsvp{background:linear-gradient(rgba(74,37,36,.18),rgba(74,37,36,.25)),url('fondo-bodas-de-oro.png') center/cover fixed}
@media(max-width:700px){body{background-attachment:scroll}.welcome{place-items:center;background-position:68% center;padding:0}.welcome::after{content:"";position:absolute;inset:0;background:rgba(255,252,246,.57);z-index:0}.welcome__content{z-index:1;width:100%;padding:40px 25px;text-shadow:0 1px 10px rgba(255,255,255,.9)}.love-note,.event-section,.rsvp{background-attachment:scroll;background-position:66% center}}
.gallery img:nth-child(n){grid-column:span 6;grid-row:span 3}
@media(max-width:700px){.gallery{grid-template-columns:1fr;grid-auto-rows:440px}.gallery img:nth-child(n){grid-column:span 1;grid-row:span 1}}
.site-footer{display:flex;flex-direction:column;align-items:center;gap:20px}.site-footer>p{margin:0}.creator-credit{display:flex;align-items:center;gap:10px;color:rgba(255,255,255,.8);text-decoration:none;letter-spacing:.08em;transition:color .25s,transform .25s}.creator-credit:hover{color:#fff;transform:translateY(-2px)}.creator-credit img{width:42px;height:42px;object-fit:contain;border-radius:6px}.creator-credit span{font-size:.55rem;color:rgba(255,255,255,.5)}.creator-credit strong{font-size:.65rem;font-weight:500}@media(max-width:480px){.creator-credit{flex-wrap:wrap;justify-content:center}.creator-credit span{width:100%}}

/* Contorno para que los textos dorados conserven contraste sobre fondos claros */
.eyebrow,.anniversary,.gold-line,.hero__subtitle,.welcome h1 span,.hero h1 span,.closing__names span,.closing h2,.closing .toast,.ornament,.family-count strong{
  text-shadow:-1px -1px 0 #000,1px -1px 0 #000,-1px 1px 0 #000,1px 1px 0 #000,0 1px 1px rgba(0,0,0,.65);
}
