:root{--olive:#59633f;--olive-dark:#303824;--olive-soft:#8d9473;--ivory:#f7f1e6;--cream:#eee5d5;--gold:#b9985d;--ink:#353429;--white:#fffdf8;--shadow:0 18px 55px rgba(48,56,36,.18)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ivory);color:var(--ink);font-family:Georgia,'Times New Roman',serif;overflow-x:hidden}body.locked{overflow:hidden}.sample{position:fixed;z-index:100;top:0;left:50%;transform:translateX(-50%);background:rgba(48,56,36,.92);color:white;padding:7px 28px 8px;letter-spacing:.28em;font:600 10px/1 Arial,sans-serif;border-radius:0 0 14px 14px;box-shadow:0 5px 15px rgba(0,0,0,.16)}
.opening{position:fixed;inset:0;z-index:90;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;background:radial-gradient(circle at 20% 20%,#fffaf0 0,transparent 28%),radial-gradient(circle at 80% 75%,#dfe2d1 0,transparent 32%),linear-gradient(145deg,#f8f1e4,#e9dfce);transition:opacity 1s ease,visibility 1s ease}.opening::before,.opening::after{content:"";position:absolute;width:260px;height:480px;border:1px solid rgba(89,99,63,.18);border-radius:50%;transform:rotate(40deg)}.opening::before{left:-180px;top:-180px}.opening::after{right:-190px;bottom:-200px}.opening.opened{opacity:0;visibility:hidden;pointer-events:none}.opening-kicker{margin:0 0 32px;color:var(--olive-dark);letter-spacing:.21em;text-transform:uppercase;font:500 11px/1.4 Arial,sans-serif}.opening-help{margin-top:32px;color:#6e705f;font-size:13px;letter-spacing:.08em}.envelope{position:relative;width:min(82vw,390px);aspect-ratio:1.45;border:0;background:none;padding:0;filter:drop-shadow(0 22px 28px rgba(48,56,36,.24));cursor:pointer;transform:translateZ(0);animation:float 4s ease-in-out infinite}.envelope-back{position:absolute;inset:0;background:linear-gradient(145deg,#fffdf6,#e9dfcc);border:1px solid rgba(89,99,63,.15);border-radius:5px}.envelope-card{position:absolute;z-index:1;left:8%;right:8%;top:12%;height:75%;display:flex;align-items:center;justify-content:center;gap:8px;background:#fffaf0;border:1px solid #d8c7a7;color:var(--olive-dark);font-size:48px;transition:transform .75s ease}.envelope-card b{font-weight:400}.envelope-card i{font-weight:400;color:var(--gold)}.envelope-card small{position:absolute;bottom:18px;font:500 9px/1 Arial,sans-serif;letter-spacing:.25em;color:var(--gold)}.envelope-front{position:absolute;z-index:3;inset:0;clip-path:polygon(0 37%,50% 76%,100% 37%,100% 100%,0 100%);background:linear-gradient(155deg,#f5eddf,#e2d4bd);border-radius:5px}.envelope-flap{position:absolute;z-index:4;inset:0;clip-path:polygon(0 0,100% 0,50% 59%);background:linear-gradient(160deg,#fffaf0,#eadfcb);transform-origin:top;transition:transform .7s ease}.wax-seal{position:absolute;z-index:6;left:50%;top:55%;transform:translate(-50%,-50%);width:76px;height:76px;border-radius:48% 52% 46% 54%;display:flex;align-items:center;justify-content:center;gap:2px;background:radial-gradient(circle at 34% 26%,#87906d,#56603f 58%,#343b29);border:4px double rgba(255,255,255,.3);box-shadow:0 8px 16px rgba(48,56,36,.35),inset 0 0 0 2px rgba(0,0,0,.08);color:#efe5cf;font-size:20px}.wax-seal strong{font-weight:400}.wax-seal em{font-size:13px;color:#d5c49c}.envelope.is-opening .envelope-flap{transform:rotateX(180deg);z-index:0}.envelope.is-opening .envelope-card{transform:translateY(-48%)}.envelope.is-opening .wax-seal{opacity:0;transition:opacity .2s}
main{opacity:0;transition:opacity .8s ease}main.visible{opacity:1}.hero{position:relative;min-height:100svh;display:grid;place-items:center;overflow:hidden}.hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 45%}.hero-shade{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(21,26,17,.24),rgba(21,26,17,.08) 42%,rgba(21,26,17,.65))}.hero-content{position:relative;z-index:1;width:min(92%,700px);text-align:center;color:#fffaf0;text-shadow:0 2px 14px rgba(0,0,0,.34);padding:90px 12px 50px}.monogram{display:flex;align-items:center;justify-content:center;gap:4px;font-size:34px;margin-bottom:28px}.monogram span{font-weight:400}.monogram i{font-size:22px;color:#d8c397}.eyebrow,.section-label{font:600 10px/1.3 Arial,sans-serif;letter-spacing:.3em;text-transform:uppercase}.hero h1{font-size:clamp(48px,12vw,92px);line-height:.92;margin:12px 0 22px;font-weight:400}.hero h1 i{font-size:.65em;color:#e2cca2}.fine-line{height:1px;width:110px;background:#d9c394;margin:0 auto 20px}.hero-date{font:500 13px/1.5 Arial,sans-serif;letter-spacing:.26em}.hero-place{font-size:17px;font-style:italic}.scroll{position:absolute;z-index:2;bottom:26px;left:50%;transform:translateX(-50%);color:white;text-decoration:none;font-size:34px;animation:bounce 2s infinite}.section{position:relative;padding:92px max(24px,calc((100% - 960px)/2));text-align:center}.intro{background:var(--white);overflow:hidden}.intro blockquote{max-width:700px;margin:24px auto 8px;color:var(--olive-dark);font-size:clamp(23px,5vw,38px);line-height:1.38;font-style:italic}.verse{color:var(--gold);font-size:14px}.rings{height:48px;position:relative;margin:34px auto 18px;width:80px}.rings span{position:absolute;width:42px;height:42px;border:2px solid var(--gold);border-radius:50%}.rings span:first-child{left:5px}.rings span:last-child{right:5px}.lead{max-width:560px;margin:0 auto;font-size:18px;line-height:1.7}.botanical{position:absolute;width:170px;height:300px;opacity:.12}.botanical::before,.botanical::after{content:"";position:absolute;inset:0;border-left:2px solid var(--olive);border-radius:50%;transform:rotate(25deg)}.botanical::after{transform:rotate(55deg);left:45px}.botanical-left{left:-70px;bottom:-90px;transform:rotate(-20deg)}.botanical-right{right:-90px;top:-40px;transform:rotate(160deg)}
.date-section{background:linear-gradient(145deg,#56613f,#303823);color:var(--white)}.countdown{display:grid;grid-template-columns:repeat(4,1fr);max-width:670px;margin:30px auto 42px;border-top:1px solid rgba(255,255,255,.25);border-bottom:1px solid rgba(255,255,255,.25)}.countdown div{padding:24px 4px;border-right:1px solid rgba(255,255,255,.2)}.countdown div:last-child{border-right:0}.countdown strong{display:block;font-size:clamp(26px,7vw,48px);font-weight:400}.countdown span{font:500 9px/1 Arial,sans-serif;letter-spacing:.18em;text-transform:uppercase}.calendar-card{width:190px;margin:0 auto 28px;background:var(--ivory);color:var(--olive-dark);padding:16px 18px;box-shadow:var(--shadow);border-top:4px solid var(--gold)}.calendar-card span{display:block;font:600 9px/1.5 Arial,sans-serif;letter-spacing:.18em}.calendar-card strong{display:block;font-size:58px;line-height:1;margin:6px 0}.button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 24px;border:1px solid var(--olive);background:var(--olive);color:#fff;text-decoration:none;text-transform:uppercase;letter-spacing:.14em;font:600 10px/1 Arial,sans-serif;cursor:pointer;border-radius:0;transition:transform .2s,background .2s}.button:hover{transform:translateY(-2px);background:var(--olive-dark)}.button.outline{background:transparent;border-color:#d9c697;color:white}
.photo-break{position:relative;height:min(75vh,700px);overflow:hidden}.photo-break img{width:100%;height:100%;object-fit:cover;object-position:center}.photo-break::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(33,39,26,.1),rgba(33,39,26,.62))}.photo-quote{position:absolute;z-index:2;right:7%;top:50%;transform:translateY(-50%);max-width:460px;color:#fff;text-align:right}.photo-quote span{display:block;font-style:italic;font-size:22px}.photo-quote strong{display:block;font-size:clamp(34px,7vw,64px);font-weight:400;line-height:1.05}.families{background:var(--ivory)}.family-grid{display:grid;grid-template-columns:1fr 1px 1fr;gap:42px;max-width:760px;margin:40px auto}.family-divider{background:linear-gradient(transparent,var(--gold),transparent)}.family-grid h2,.sponsors span{font:600 10px/1.4 Arial,sans-serif;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}.family-grid p,.sponsors p{font-size:18px;margin:9px 0}.sponsors{border-top:1px solid #d7ccb8;max-width:600px;margin:40px auto 0;padding-top:35px}
.locations{background:var(--white)}.script-title{color:var(--olive-dark);font-size:clamp(42px,8vw,68px);font-weight:400;font-style:italic;margin:8px 0 42px}.location-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}.location-card{background:var(--ivory);padding:42px 28px;border:1px solid #ded3bf;box-shadow:0 12px 30px rgba(48,56,36,.08)}.location-icon,.timeline-icon{color:var(--gold);font-size:34px}.card-type{font:600 9px/1 Arial,sans-serif;letter-spacing:.22em;text-transform:uppercase;color:var(--olive)}.location-card h3{font-size:25px;font-weight:400;min-height:58px;margin:15px 0}.location-card time{display:block;color:var(--gold);font-size:20px;margin-bottom:12px}.location-card>p:not(.card-type){line-height:1.6;min-height:52px}.location-card .button{margin-top:12px}
.itinerary-section{background:#eef0e7}.timeline{position:relative;max-width:650px;margin:0 auto;text-align:left}.timeline::before{content:"";position:absolute;top:20px;bottom:20px;left:49px;width:1px;background:linear-gradient(var(--gold),var(--olive-soft),var(--gold))}.timeline-item{position:relative;min-height:130px;padding:3px 0 24px 100px}.timeline-icon{position:absolute;left:21px;top:0;width:57px;height:57px;display:grid;place-items:center;background:var(--ivory);border:1px solid var(--gold);border-radius:50%;font-size:21px;z-index:1}.timeline-item time{font:600 11px/1 Arial,sans-serif;letter-spacing:.18em;color:var(--gold)}.timeline-item h3{margin:8px 0 5px;font-size:24px;font-weight:400}.timeline-item p{margin:0;color:#666652;line-height:1.5}.gallery{display:grid;grid-template-columns:1fr 1fr;gap:5px;background:var(--olive-dark);padding:5px}.gallery img{width:100%;height:430px;object-fit:cover}.gallery .wide{grid-column:1/-1;height:min(70vh,650px);object-position:center 55%}.passes{background:var(--white)}.ticket{position:relative;max-width:420px;margin:32px auto 0;padding:38px 25px;background:linear-gradient(145deg,#faf5eb,#ece1ce);border:1px solid #cbb78c;box-shadow:var(--shadow)}.ticket::before,.ticket::after{content:"";position:absolute;top:50%;width:28px;height:28px;border-radius:50%;background:var(--white);border:1px solid #cbb78c}.ticket::before{left:-15px}.ticket::after{right:-15px}.ticket-monogram{color:var(--olive);font-size:20px}.ticket>strong{display:block;font-size:84px;font-weight:400;color:var(--olive-dark);line-height:1}.ticket>span{display:block;font:600 11px/1 Arial,sans-serif;letter-spacing:.36em;color:var(--gold)}.ticket small{display:block;margin-top:22px;font-style:italic;color:#696957}.rsvp{overflow:hidden;background:var(--ivory)}.rsvp>p:not(.section-label){max-width:560px;margin:-18px auto 30px;font-size:17px;line-height:1.7}.whatsapp{background:#59633f}.rsvp .botanical{pointer-events:none}footer{padding:90px 20px;background:var(--olive-dark);color:#eee4d0;text-align:center}footer .small{margin-bottom:18px}footer p{font:500 10px/1 Arial,sans-serif;letter-spacing:.25em}footer strong{display:block;margin-top:25px;font-size:26px;font-weight:400;font-style:italic}
.reveal{opacity:0;transform:translateY(22px);transition:opacity .8s ease,transform .8s ease}.reveal.shown{opacity:1;transform:none}@keyframes float{50%{transform:translateY(-10px)}}@keyframes bounce{50%{transform:translate(-50%,8px)}}
@media(max-width:700px){.section{padding:75px 22px}.hero{min-height:100svh}.hero-photo{object-position:56% center}.hero-content{padding-top:100px}.opening-kicker{margin-bottom:26px}.envelope{width:86vw}.family-grid{grid-template-columns:1fr;gap:20px}.family-divider{height:1px;width:80%;margin:auto}.location-grid{grid-template-columns:1fr}.location-card h3{min-height:0}.photo-break{height:68vh}.photo-break img{object-position:42% center}.photo-break::after{background:linear-gradient(to top,rgba(33,39,26,.65),rgba(33,39,26,.05))}.photo-quote{top:auto;bottom:11%;right:8%;left:8%;transform:none}.gallery img,.gallery .wide{height:52vw;min-height:210px}.countdown div{padding:20px 2px}.timeline::before{left:37px}.timeline-item{padding-left:80px}.timeline-icon{left:10px}.ticket{margin-left:8px;margin-right:8px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.envelope,.scroll{animation:none}.reveal{transition:none}.opening{transition:none}}

/* Rediseño inspirado en la línea editorial marfil de InvitArte */
:root{--serif:"Cormorant Garamond","Iowan Old Style",Georgia,serif;--sans:"Montserrat","Avenir Next","Segoe UI",sans-serif;--bar-height:40px}
html{background:#d6d1c8}body{background:#d6d1c8;font-family:var(--sans);font-weight:300;line-height:1.65}.sample{left:0;width:100%;height:var(--bar-height);transform:none;padding:0;display:grid;place-items:center;border-radius:0;background:rgba(48,56,36,.93);backdrop-filter:blur(8px);font-size:10px;letter-spacing:.22em}.opening{gap:22px;padding:calc(var(--bar-height) + 30px) 22px 30px;background:radial-gradient(circle at 14% 10%,#fffdf7 0,transparent 57%),radial-gradient(circle at 90% 78%,#e7e5d8 0,transparent 61%),linear-gradient(135deg,#f5ede1,#e8e6d8)}.opening::before,.opening::after{display:none}.opening-kicker{margin:0;color:#667052;font-size:10px;letter-spacing:.24em}.envelope{width:min(84vw,760px);aspect-ratio:auto;filter:drop-shadow(0 28px 25px rgba(58,63,45,.2));animation:none;transition:transform .6s cubic-bezier(.2,.8,.2,1),opacity .45s ease}.envelope img{display:block;width:100%;border-radius:3px}.envelope:hover{transform:translateY(-5px) scale(1.008)}.envelope.is-opening{opacity:0;transform:translateY(-18px) scale(1.045)}.opening-help{margin:0;color:#767565;font:400 10px/1.4 var(--sans);letter-spacing:.22em;text-transform:uppercase}.opening.opened{transition:opacity .62s ease .35s,visibility .62s ease .35s}
main{position:relative;width:min(100%,1320px);margin:0 auto;background:var(--white);box-shadow:0 22px 65px rgba(54,59,45,.14)}h1,h2,h3,blockquote,.script-title,.family-grid p,.sponsors p,.location-card time,.ticket{font-family:var(--serif)}.section-label,.eyebrow,.hero-date,.card-type,.button,.countdown span{font-family:var(--sans)}
.hero{min-height:max(740px,100svh);padding:calc(var(--bar-height) + 68px) 28px 70px}.hero-photo{object-position:center 47%}.hero-shade{background:radial-gradient(circle at 50% 48%,rgba(255,253,248,.9) 0 18%,rgba(255,253,248,.76) 38%,rgba(245,241,229,.32) 65%,rgba(35,42,27,.24) 100%)}.hero-content{width:min(90%,760px);padding:46px 28px;color:var(--olive-dark);text-shadow:none;background:rgba(255,253,248,.66);border:1px solid rgba(255,255,255,.5);box-shadow:0 22px 65px rgba(43,49,33,.12);backdrop-filter:blur(4px)}.hero .monogram{margin-bottom:8px;color:var(--olive);font-family:var(--serif);font-style:italic}.hero .eyebrow{color:#697151;margin-bottom:30px}.hero h1{margin:0 0 25px;color:#4a4d3e;font-family:var(--serif);font-size:clamp(4rem,9.5vw,8rem);letter-spacing:-.055em;line-height:.83}.hero h1 i{color:var(--gold);font-weight:400}.hero-date{color:#5c624c;font-size:12px}.hero-place{color:#6b715c;font-family:var(--sans);font-size:10px;font-style:normal;letter-spacing:.26em;text-transform:uppercase}.fine-line{background:var(--gold)}.scroll{color:#fffdf8;text-shadow:0 2px 8px rgba(0,0,0,.3)}
.section{padding-top:104px;padding-bottom:104px}.intro,.locations,.passes{background:#fffdf8}.date-section{background:linear-gradient(145deg,#667052,#39422e)}.photo-break{max-height:680px}.families{background:#f4eee3}.location-card{background:#faf5ec;border-color:rgba(89,99,63,.2);box-shadow:0 18px 45px rgba(48,56,36,.08)}.itinerary-section{background:#eef0e7}.ticket{background:linear-gradient(145deg,#fffdf8,#eee5d5)}.rsvp{background:#f4eee3}footer{background:#343c2b}.script-title{letter-spacing:-.035em}.lead,.location-card>p:not(.card-type),.timeline-item p,.rsvp>p:not(.section-label){font-family:var(--sans);font-weight:300}.family-grid h2,.sponsors span{font-family:var(--sans)}
@media(max-width:700px){.opening{padding-left:14px;padding-right:14px}.envelope{width:94vw}.opening-kicker{margin-bottom:4px}.hero{padding-left:18px;padding-right:18px}.hero-photo{object-position:57% center}.hero-content{width:94%;padding:38px 16px}.hero h1{font-size:clamp(3.6rem,16vw,5.1rem)}.hero-shade{background:radial-gradient(circle at 50% 49%,rgba(255,253,248,.92) 0 20%,rgba(255,253,248,.76) 45%,rgba(50,58,39,.18) 100%)}}

/* Monograma oficial y portada fotográfica */
.envelope-monogram{position:absolute;z-index:3;left:50%;top:58.3%;display:grid;place-items:center;width:12.6%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;background:#414b2f;box-shadow:inset 0 0 9px rgba(0,0,0,.16)}.envelope-monogram img{width:78%;height:78%;object-fit:contain;filter:drop-shadow(0 1px 1px rgba(0,0,0,.16))}.official-monogram{display:block;width:clamp(92px,14vw,145px);height:auto;margin:0 auto 5px;filter:drop-shadow(0 2px 7px rgba(0,0,0,.3))}.hero-shade{background:linear-gradient(to bottom,rgba(24,28,20,.24),rgba(24,28,20,.06) 34%,rgba(24,28,20,.62) 100%)}.hero-content{width:min(94%,820px);padding:70px 24px 35px;color:#fffaf0;text-shadow:0 2px 14px rgba(0,0,0,.42);background:transparent;border:0;box-shadow:none;backdrop-filter:none}.hero .eyebrow{margin:7px 0 26px;color:#fff7e7}.hero h1{color:#fffaf0}.hero-date,.hero-place{color:#fff8e8}.hero .fine-line{background:#e2ca92}.footer-monogram{width:100px;margin-bottom:20px}
@media(max-width:700px){.envelope-monogram{top:58.4%;width:13.6%}.hero-content{width:100%;padding:90px 8px 38px}.official-monogram{width:104px}.hero .eyebrow{margin-bottom:23px}.hero-shade{background:linear-gradient(to bottom,rgba(24,28,20,.2),rgba(24,28,20,.03) 32%,rgba(24,28,20,.7) 100%)}}
