:root{--ink:#292722;--ink-soft:#66615a;--cream:#fff;--paper:#fff;--wine:#98752f;--wine-dark:#302b22;--gold:#b38b3e;--line:#e9dfca}
body{background:#fff;color:var(--ink)}
.hero{min-height:100svh;background:radial-gradient(ellipse at 50% 47%,#fff 0,#fff 52%,#fbf8f0 100%);color:var(--ink);border-bottom:1px solid #eee7d9}
.hero:before,.hero:after{color:#b38b3e}.hero:before{top:13%;left:13%}.hero:after{right:13%;bottom:17%}
.grain{opacity:.045}.orb{border-color:#c5a76655}.orb-one{width:360px;height:360px;right:-230px;top:-160px}.orb-two{width:230px;height:230px;left:-160px;bottom:-120px}
.ring{width:125px;height:125px;border-color:#b38b3e44}.ring-left{left:9%;bottom:10%}.ring-right{right:9%;top:12%}
.hero-content{max-width:690px;padding:52px 24px 58px}.hero .eyebrow{color:#9b7837;margin-bottom:13px}.couple-illustration{width:min(178px,44vw);margin:9px auto 20px;color:#35312a}.couple-illustration svg{display:block;width:100%;height:auto;overflow:visible}.couple-illustration path{fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:700;stroke-dashoffset:700;animation:coupleDraw 2.5s .35s ease-out forwards}.couple-illustration .illustration-ground{stroke:#b38b3e;stroke-width:1}.couple-illustration .illustration-flourish{stroke:#b38b3e;stroke-width:1.15}
.save-date{font-size:9px;letter-spacing:4px;color:#827d73;margin:0 0 19px}.hero h1{display:flex;justify-content:center;align-items:baseline;gap:clamp(13px,4vw,32px);font-size:clamp(62px,10vw,104px);line-height:.9;letter-spacing:-2px;color:#262420}.hero h1 span{display:inline-block}.hero h1 i{font-family:'Cormorant Garamond',serif;color:#b38b3e;font-size:.55em;font-weight:400}.divider{gap:12px;margin:21px 0 17px;color:#b38b3e}.divider b{font-size:11px;font-weight:400}.divider span{width:42px;background:#b38b3e88}.hero-message{font-family:'Cormorant Garamond',serif;font-size:24px;color:#413e38}.verse-reference{max-width:420px;font-size:8px;line-height:1.7;letter-spacing:1.35px;color:#927335}.invite-line{max-width:390px;color:#68635b;font-size:11px;line-height:1.8;margin:16px auto 0}.scroll-cue{margin-top:28px;color:#706958;font-size:8px;letter-spacing:1.6px}.scroll-cue span{color:#b38b3e}
.section{padding:84px 24px}.details{background:#fff}.section h2{color:#302b23;font-size:49px}.eyebrow.dark{color:#98752f}.section-lead{color:#68635b}.details-grid{gap:18px}.detail-card{background:#fff;border:1px solid #e6ddca;min-height:177px;padding:29px 22px;box-shadow:0 8px 26px #5a461509}.detail-card.featured{background:#fbf9f4;border-color:#c9ad70;color:#302b23}.detail-icon,.featured .label{color:#a27d34}.label{color:#98752f}.detail-card p:last-child,.featured p:last-child{color:#69635a}.detail-card h3{font-size:24px}.map-link{color:#66512a;border-color:#b38b3e}.quote-section{background:#fbf9f4;color:#39352e;padding:75px 24px;border-top:1px solid #efe8da;border-bottom:1px solid #efe8da}.quote-mark{color:#b38b3e}.quote-section blockquote{font-size:36px}.quote-section p{color:#817667}.rsvp{background:#fff}.rsvp-copy>p:last-child{color:#68635b}.rsvp-form label{color:#89703c}.rsvp-form input,.rsvp-form select{border-bottom-color:#d8c9a7}.rsvp-form input:focus,.rsvp-form select:focus{border-bottom-color:#a47f38}.rsvp-form button{background:linear-gradient(110deg,#9a7738,#c3a45e 52%,#9a7738);color:#fff}.rsvp-form button:hover{background:#82632f}.form-message{color:#66512a}footer{background:#fff;color:#4b453c;border-top:1px solid #e9dfca}.footer-monogram{color:#a7833b}.footer-monogram~small{color:#797268}
.memory-gallery{background:linear-gradient(180deg,#fff 0%,#fcfaf6 100%);text-align:center;border-top:1px solid #f0eadf}.memory-gallery h2{margin:0 0 10px}.memory-gallery .section-lead{max-width:560px;margin:0 auto 34px}.memory-grid{max-width:1000px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:22px}.memory-card{position:relative;margin:0;overflow:hidden;background:#f4efe4;border:1px solid #d7c397;padding:7px;box-shadow:0 14px 40px #49391a14}.memory-card-tall img{display:block;width:100%;height:clamp(300px,42vw,460px);object-fit:cover;object-position:center 38%}.memory-card-wide{grid-column:1/-1}.memory-card-wide img{display:block;width:100%;height:clamp(250px,43vw,440px);object-fit:cover;object-position:center 43%}.memory-card figcaption{padding:12px 8px 7px;color:#78643c;font:italic 17px 'Cormorant Garamond',serif;letter-spacing:.4px}.memory-card:after{content:"";position:absolute;inset:7px 7px 43px;pointer-events:none;border:1px solid #fff8}
@media(max-width:650px){.hero{min-height:100svh}.hero-content{padding:39px 20px 45px}.couple-illustration{width:145px;margin:4px auto 16px}.hero h1{font-size:clamp(55px,15vw,77px);gap:12px}.hero-message{font-size:22px}.verse-reference{max-width:320px}.ring{width:82px;height:82px}.section{padding:68px 18px}.section h2{font-size:42px}.quote-section blockquote{font-size:31px}.memory-grid{grid-template-columns:1fr;gap:17px}.memory-card-wide{grid-column:auto}.memory-card-tall img{height:clamp(310px,100vw,440px)}.memory-card-wide img{height:clamp(260px,78vw,380px)}.memory-gallery .section-lead{margin-bottom:26px}}
@keyframes coupleDraw{to{stroke-dashoffset:0}}
@media(prefers-reduced-motion:reduce){.couple-illustration path{animation:none;stroke-dashoffset:0}}

/* Dirección editorial inspirada en el demo Minimalism Brown */
:root{--ink:#40382f;--ink-soft:#75695c;--cream:#f6f1e8;--paper:#fbf8f2;--wine:#80674f;--wine-dark:#514334;--gold:#b39467;--line:#ded2be}
html{background:#f3eee5}
body{background-color:#f5f0e7;background-image:radial-gradient(ellipse at 20% 10%,#fffaf2 0,transparent 50%),radial-gradient(ellipse at 85% 45%,#eee4d5 0,transparent 42%),linear-gradient(135deg,#f8f4ed,#eee7dc);color:var(--ink)}
.hero{min-height:100svh;background:transparent;color:var(--ink);border-bottom:0;overflow:hidden}
.hero:before,.hero:after{color:#a98a5f;font-size:19px;opacity:.7}.hero:before{top:10%;left:calc(50% - 250px)}.hero:after{right:calc(50% - 250px);bottom:12%}
.grain,.orb,.ring{display:none}
.hero-content{max-width:650px;padding:48px 28px 58px}
.hero .eyebrow{color:#8d7557;margin-bottom:15px;letter-spacing:4px;font-size:9px}
.cover-photo{width:min(340px,78vw);margin:0 auto 24px;padding:9px 9px 0;background:#fffdf9;position:relative;transform:rotate(-1deg);box-shadow:0 15px 38px #54412b20;border:1px solid #e4d9c8}
.cover-photo img{display:block;width:100%;height:clamp(190px,34vw,270px);object-fit:cover;object-position:center 43%;filter:saturate(.88) sepia(.06)}
.cover-photo figcaption{padding:10px 4px 12px;color:#87745e;font:italic 16px 'Cormorant Garamond',serif;letter-spacing:.5px}
.cover-seal{position:absolute;right:-20px;bottom:28px;width:58px;height:58px;display:grid;place-items:center;border:1px solid #c6a876;border-radius:50%;background:#f5eee1;color:#80674f;font:500 14px 'Cormorant Garamond',serif;box-shadow:0 3px 10px #40302018;transform:rotate(8deg)}
.cover-seal i{font-style:normal;color:#b39467;padding:0 2px}
.save-date{font-size:9px;letter-spacing:4px;color:#8e785f;margin:0 0 17px}
.hero h1{font-size:clamp(58px,9vw,92px);line-height:.91;letter-spacing:-1.5px;color:#514334;gap:16px}
.hero h1 i{color:#ad9063;font-size:.42em}
.divider{margin:20px 0 16px;color:#ad9063}.divider span{background:#b99d76aa;width:50px}
.hero-message{font-size:24px;color:#5d5042;line-height:1.2}
.verse-reference{color:#907756;font-size:8px;letter-spacing:1.5px;margin-top:14px}
.invite-line{max-width:390px;color:#796d60;font-size:11px;line-height:1.8;margin-top:16px}
.scroll-cue{margin-top:25px;color:#80674f}.scroll-cue span{color:#aa8d63}
.section{max-width:1020px;margin:0 auto;padding:92px 28px;text-align:center}
.details{background:#faf7f1;border:1px solid #e5dbc9;box-shadow:0 18px 55px #58462c0c;position:relative;isolation:isolate;overflow:hidden}
.details:before,.details:after{content:"✦";position:absolute;color:#b59a72;font-size:18px;opacity:.55}.details:before{left:28px;top:25px}.details:after{right:28px;bottom:25px}
.details:before{content:"";inset:0 0 auto;height:460px;z-index:0;opacity:1;pointer-events:none;background:linear-gradient(180deg,#fbf8f1a8 0%,#fbf8f1c9 54%,#faf7f1 100%),url("assets/images/wedding-details-bg.png") right 43%/cover no-repeat}
.details:after{display:none}.details>*{position:relative;z-index:1}
.section h2{font-size:clamp(40px,6vw,56px);color:#574a3c}
.eyebrow.dark{color:#8b7356;letter-spacing:2.8px}
.section-lead{max-width:540px;color:#756a5e;font-size:12px;line-height:1.85}
.details-grid{gap:0;border:1px solid #dfd2bd;background:#fffdf9;max-width:660px;margin:auto}
.detail-card{border:0;background:transparent;min-height:170px;padding:30px 20px;box-shadow:none}
.detail-card+.detail-card{border-left:1px solid #e2d8c8}
.detail-card.featured{background:#f1e9dc;border:0;color:#514334}
.detail-card.featured .label,.detail-icon,.label{color:#967850}
.detail-card h3{color:#594b3d}
.detail-card p:last-child,.featured p:last-child{color:#796d5f}
.map-link{color:#755e43;border-color:#bca279}
.memory-gallery{max-width:1050px;background:transparent;border:0;padding-top:82px;padding-bottom:94px;position:relative;isolation:isolate}.memory-gallery:before,.memory-gallery:after{position:absolute;z-index:-1;color:#ae936e;opacity:.18;font:150px/1 'Cormorant Garamond',serif;pointer-events:none}.memory-gallery:before{content:"❧";left:2%;top:26%;transform:rotate(-32deg)}.memory-gallery:after{content:"❧";right:2%;bottom:18%;transform:rotate(148deg)}
.memory-grid{max-width:850px;gap:22px;align-items:start}
.memory-card{padding:14px 14px 0;background:#fffdf9;border:1px solid #e0d4c2;box-shadow:0 14px 36px #4d3b2618;transform:rotate(-1deg);transition:transform .45s ease,box-shadow .45s ease}
.memory-card:nth-child(2){transform:rotate(1deg);margin-top:34px}
.memory-card-wide{transform:rotate(-.4deg);max-width:680px;justify-self:center}
.memory-card:hover{transform:translateY(-5px) rotate(0);box-shadow:0 20px 45px #4d3b2625}
.memory-card-tall img{height:clamp(290px,37vw,400px);object-position:center 38%;filter:saturate(.9) sepia(.04)}
.memory-card-wide img{height:clamp(240px,37vw,350px);object-position:center 43%;filter:saturate(.9) sepia(.04)}
.memory-card figcaption{padding:16px 8px 20px;color:#77644c;font-size:18px;letter-spacing:.2px}
.memory-card:before{content:"♡";position:absolute;z-index:2;right:24px;bottom:59px;width:48px;height:48px;display:grid;place-items:center;border:1px solid #c4a875;border-radius:50%;background:radial-gradient(circle at 35% 28%,#fff9e8,#e8dcc5 65%,#d4c09e);box-shadow:0 3px 8px #42331f2b,inset 0 0 0 3px #fff8;color:#96764b;font:24px 'Cormorant Garamond',serif;transform:rotate(11deg)}
.memory-card:after{inset:14px 14px 55px;border-color:#fff9}
.memory-card-portrait{grid-column:1/-1;justify-self:center;width:min(330px,100%)}
.memory-card-portrait img{display:block;width:100%;height:auto;object-fit:contain;filter:saturate(.9) sepia(.04)}
.quote-section{max-width:none;background:#eee6da;color:#55483a;padding:66px 24px;border:0}
.quote-section{background-image:linear-gradient(90deg,#f6f1e822 0%,#f6f1e855 25%,#f6f1e899 50%,#f6f1e855 78%,#f6f1e822 100%),url("assets/images/quote-section-art.png");background-position:center,left center;background-size:cover,cover;background-repeat:no-repeat;color:#55483a}
.quote-mark{color:#ad9063}.quote-section blockquote{font-size:35px;color:#574a3c}.quote-section p{color:#83735e}
.rsvp{max-width:none;background:transparent;padding-top:86px;padding-bottom:86px}
.rsvp-inner{max-width:870px;padding:44px 48px;background:#faf7f1;border:1px solid #e2d6c3;box-shadow:0 18px 55px #58462c0c;gap:55px}
.rsvp-copy .eyebrow{letter-spacing:2px}.rsvp-copy h2{font-size:48px;color:#574a3c}
.rsvp-copy>p:last-child{color:#756a5e}.rsvp-form label{color:#80694d}
.rsvp-form input,.rsvp-form select{border-bottom-color:#cfc0aa;color:#51483d}
.rsvp-form input:focus,.rsvp-form select:focus{border-bottom-color:#947853}
.rsvp-form button{background:#796349;color:#fffaf2;letter-spacing:1.2px}
.rsvp-form button:hover{background:#5b4936}
.form-message{color:#80674f}
.rsvp-link-card{min-width:0;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:13px;padding:35px 24px;background:#fffdf9;border:1px solid #e2d6c3;text-align:center;box-shadow:0 10px 30px #58462c0a}
.rsvp-link-icon{color:#a7833b;font:34px/1 'Cormorant Garamond',serif}
.rsvp-link-card p{margin:0;color:#756a5e;font:400 15px/1.7 'Cormorant Garamond',serif}
.rsvp-direct-link{display:inline-flex;align-items:center;justify-content:center;gap:13px;min-height:47px;padding:0 23px;border:1px solid #a7833b;background:#796349;color:#fffaf2;font:600 9px/1.5 Montserrat,Arial,sans-serif;letter-spacing:1.15px;text-align:center;text-decoration:none;text-transform:uppercase;transition:transform .2s ease,background .2s ease,box-shadow .2s ease}
.rsvp-direct-link:hover{transform:translateY(-2px);background:#5b4936;box-shadow:0 8px 18px #58462c20}
.rsvp-direct-link:focus-visible{outline:3px solid #b39467;outline-offset:4px}
.rsvp-link-card small{color:#897b68;font:500 8px/1.6 Montserrat,Arial,sans-serif;letter-spacing:.8px}
.detail-card p:last-child{color:#55483a;font-weight:500}
.section-lead,.rsvp-copy>p:last-child{color:#51483f}
.rsvp-link-card p{color:#564a3f}
.rsvp-link-card small{color:#62574b;font-weight:600}
footer{background:#eee6da;color:#443a30;border-top:1px solid #e3d8c7;padding:38px 24px}
.footer-monogram{color:#806443}.footer-monogram+p{color:#443a30}.footer-monogram~small{color:#5e5347;font-weight:600}
@media(max-width:650px){.hero{min-height:100svh}.hero-content{padding:32px 20px 42px}.cover-photo{width:min(300px,78vw);margin-bottom:21px}.cover-photo img{height:clamp(180px,58vw,230px)}.cover-seal{width:50px;height:50px;right:-14px;bottom:26px}.hero h1{font-size:clamp(54px,14vw,73px);gap:11px;letter-spacing:-1px}.hero-message{font-size:22px}.section{padding:65px 18px}.section h2{font-size:42px}.details{width:calc(100% - 24px)}.details:before{inset:0 0 auto;height:380px;background-position:center,78% 35%;background-size:auto,auto 100%}.details-grid{grid-template-columns:1fr}.detail-card+.detail-card{border-left:0;border-top:1px solid #e2d8c8}.memory-gallery:before{left:-24px;top:30%;font-size:104px}.memory-gallery:after{right:-24px;bottom:15%;font-size:104px}.memory-grid{grid-template-columns:1fr;gap:19px}.memory-card,.memory-card:nth-child(2),.memory-card-wide{grid-column:auto;max-width:440px;width:100%;margin:0 auto;transform:rotate(-.5deg)}.memory-card:nth-child(2){transform:rotate(.6deg)}.memory-card-tall img{height:clamp(300px,92vw,420px)}.memory-card-wide img{height:clamp(240px,74vw,330px)}.memory-card-portrait{grid-column:auto;width:min(300px,100%)}.memory-gallery .section-lead{margin-bottom:26px}.quote-section blockquote{font-size:31px}.rsvp{padding:62px 16px}.rsvp-inner{grid-template-columns:1fr;gap:22px;padding:30px 23px}.rsvp-copy h2{font-size:43px}}
@media(prefers-reduced-motion:reduce){.memory-card,.cover-photo{transform:none!important}.memory-card:hover{transform:none!important}}
.memory-gallery{max-width:none;width:100%;padding:72px 18px 46px;overflow:hidden;text-align:center}
.memory-gallery h2{font:600 20px/1.2 'Cormorant Garamond',serif;letter-spacing:1.8px;text-transform:uppercase;color:#766457;margin-bottom:20px}
.memory-gallery:before{left:4%;top:48%;font-size:190px;opacity:.12;transform:rotate(-38deg)}
.memory-gallery:after{right:3%;bottom:12%;font-size:210px;opacity:.12;transform:rotate(145deg)}
.gallery-carousel{position:relative;width:min(100%,1050px);margin:0 auto;outline:none;perspective:1400px}
.gallery-carousel:focus-visible{outline:2px solid #ad9063;outline-offset:5px;border-radius:12px}
.gallery-stage{position:relative;height:clamp(390px,49vw,535px);perspective:1400px;transform-style:preserve-3d;overflow:hidden}
.gallery-slide{position:absolute;top:50%;left:50%;width:clamp(255px,36vw,370px);height:clamp(330px,43vw,465px);margin:0;padding:8px 8px 0;display:flex;flex-direction:column;background:#fffdf9;border:1px solid #e4dacb;border-radius:17px;box-shadow:0 18px 42px #49382128;transform-style:preserve-3d;transition:transform .75s cubic-bezier(.2,.75,.25,1),opacity .65s ease,filter .65s ease;overflow:hidden;will-change:transform}
.gallery-slide img{display:block;width:100%;height:calc(100% - 46px);object-fit:cover;object-position:center 42%;border-radius:11px 11px 3px 3px;filter:saturate(.84) sepia(.07)}
.gallery-slide:nth-child(1) img{object-position:center 40%}.gallery-slide:nth-child(2) img{object-position:center 35%}.gallery-slide:nth-child(3) img{object-position:center 42%}.gallery-slide:nth-child(4) img{object-position:center 43%}.gallery-slide:nth-child(5) img{object-position:center 38%}
.gallery-slide figcaption{height:45px;flex:0 0 45px;display:grid;place-items:center;padding:4px 8px 8px;color:#786753;font:italic 17px 'Cormorant Garamond',serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gallery-slide.is-active{z-index:5;opacity:1;filter:none;transform:translate(-50%,-50%) translateZ(70px) scale(1.02)}
.gallery-slide.is-previous{z-index:4;opacity:.72;filter:brightness(.96);transform:translate(calc(-50% - 205px),-50%) rotateY(24deg) scale(.83)}
.gallery-slide.is-next{z-index:4;opacity:.72;filter:brightness(.96);transform:translate(calc(-50% + 205px),-50%) rotateY(-24deg) scale(.83)}
.gallery-slide.is-far-previous{z-index:2;opacity:.3;filter:brightness(.9);transform:translate(calc(-50% - 355px),-50%) rotateY(32deg) scale(.67)}
.gallery-slide.is-far-next{z-index:2;opacity:.3;filter:brightness(.9);transform:translate(calc(-50% + 355px),-50%) rotateY(-32deg) scale(.67)}
.gallery-arrow{position:absolute;z-index:8;top:clamp(165px,22vw,225px);width:40px;height:40px;display:grid;place-items:center;border:0;border-radius:50%;background:#e8e1d9d9;color:#79695c;font:30px/1 'Cormorant Garamond',serif;cursor:pointer;transition:background .2s ease,transform .2s ease}
.gallery-arrow:hover{background:#d9cabb;transform:scale(1.08)}.gallery-previous{left:calc(50% - 265px)}.gallery-next{right:calc(50% - 265px)}
.gallery-dots{height:35px;display:flex;justify-content:center;align-items:center;gap:7px;margin-top:4px}
.gallery-dot{width:9px;height:9px;padding:0;border:0;border-radius:99px;background:#d4c9bd;cursor:pointer;transition:width .3s ease,background .3s ease}
.gallery-dot.is-active{width:25px;background:#9a8777}.gallery-dot:focus-visible,.gallery-arrow:focus-visible{outline:2px solid #8d7356;outline-offset:3px}
.gallery-live{position:absolute}
@media(max-width:650px){.memory-gallery{padding:58px 8px 36px}.memory-gallery h2{font-size:18px;margin-bottom:14px}.memory-gallery:before{left:-40px;top:50%;font-size:130px}.memory-gallery:after{right:-45px;bottom:10%;font-size:140px}.gallery-stage{height:420px}.gallery-slide{width:min(76vw,310px);height:370px}.gallery-slide.is-previous{transform:translate(calc(-50% - 154px),-50%) rotateY(22deg) scale(.78)}.gallery-slide.is-next{transform:translate(calc(-50% + 154px),-50%) rotateY(-22deg) scale(.78)}.gallery-slide.is-far-previous{transform:translate(calc(-50% - 255px),-50%) rotateY(28deg) scale(.62);opacity:.14}.gallery-slide.is-far-next{transform:translate(calc(-50% + 255px),-50%) rotateY(-28deg) scale(.62);opacity:.14}.gallery-arrow{top:170px;width:36px;height:36px}.gallery-previous{left:5px}.gallery-next{right:5px}.gallery-slide figcaption{font-size:15px}}
@media(prefers-reduced-motion:reduce){.gallery-slide,.gallery-dot,.gallery-arrow{transition:none!important}.gallery-slide{will-change:auto}}
.music-toggle{position:fixed;z-index:20;right:22px;bottom:22px;display:inline-flex;align-items:center;gap:10px;min-height:48px;padding:0 16px;border:1px solid #cdbb9d;border-radius:999px;background:#faf7f1;color:#66533c;box-shadow:0 8px 24px #40302020;font:600 10px Montserrat,Arial,sans-serif;letter-spacing:.5px;cursor:pointer;transition:transform .25s ease,box-shadow .25s ease,background .25s ease}.music-toggle:hover{transform:translateY(-2px);background:#fffdf9;box-shadow:0 12px 28px #40302028}.music-toggle:focus-visible{outline:3px solid #a88b60;outline-offset:3px}.music-icon{font:22px 'Cormorant Garamond',serif;color:#a4875e}.music-bars{height:16px;display:flex;align-items:center;gap:2px}.music-bars i{width:2px;height:5px;background:#a4875e;border-radius:2px;transform:scaleY(.5)}.music-toggle.is-playing .music-bars i{animation:musicWave .7s ease-in-out infinite alternate}.music-toggle.is-playing .music-bars i:nth-child(2){animation-delay:.22s}.music-toggle.is-playing .music-bars i:nth-child(3){animation-delay:.4s}.music-toggle:disabled{opacity:.6;cursor:not-allowed}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes musicWave{to{transform:scaleY(2.2)}}
@media(max-width:650px){.music-toggle{right:13px;bottom:13px;min-height:44px;padding:0 13px}.music-label{font-size:9px}}
@media(max-width:650px){footer{padding:38px 20px calc(38px + env(safe-area-inset-bottom) + 58px)}.music-toggle{right:14px;bottom:calc(14px + env(safe-area-inset-bottom));width:44px;min-width:44px;height:44px;min-height:44px;padding:0;justify-content:center;gap:0}.music-toggle .music-label{display:none}}
@media(prefers-reduced-motion:reduce){.music-toggle,.music-toggle:hover{transition:none;transform:none}.music-toggle.is-playing .music-bars i{animation:none;transform:scaleY(1.3)}}

/* Ajustes fluidos para que cada sección conserve su composición en cualquier pantalla. */
*,*::before,*::after{min-width:0}
img{max-width:100%}
body{overflow-x:hidden}
.hero-content{width:min(100%,650px)}
.hero h1{font-size:clamp(48px,9.4vw,92px);gap:clamp(8px,2.6vw,16px);letter-spacing:clamp(-1.5px,-.2vw,-.5px)}
.cover-photo{max-width:calc(100% - 24px)}
.details{width:min(100% - 32px,1020px);padding-inline:clamp(16px,4vw,40px)}
.details-grid{width:min(100%,660px);grid-template-columns:repeat(2,minmax(0,1fr))}
.detail-card{overflow-wrap:anywhere}
.detail-card h3{font-size:clamp(21px,3vw,26px);line-height:1.15}
.detail-card p:last-child{overflow-wrap:anywhere}
.quote-section{width:min(calc(100% - 56px),1020px);min-height:clamp(220px,28vw,300px);margin:30px auto 42px;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;isolation:isolate;overflow:hidden;padding:clamp(42px,7vw,76px) clamp(20px,7vw,96px);border:1px solid #e5dbc9;background-position:center,left 42%;background-size:cover,auto 100%;box-shadow:0 12px 34px #58462c0b}
.quote-mark{line-height:.65;margin-bottom:8px}
.quote-section blockquote{width:min(100%,620px);margin:12px auto;font-size:clamp(25px,3.3vw,36px);line-height:1.17;text-wrap:pretty}
.quote-section p{margin:8px 0 0;font-size:clamp(9px,1.2vw,11px);letter-spacing:1.4px}
.rsvp-inner{width:min(100%,870px);grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.rsvp-form{min-width:0}
.rsvp-form input,.rsvp-form select{min-width:0;font-size:clamp(13px,1.6vw,14px)}
.rsvp-form{gap:5px}
.rsvp-form label{margin:0 0 2px;font-size:9px;line-height:1.45;letter-spacing:1.35px}
.rsvp-form input,.rsvp-form select{height:44px;padding:10px 2px;border-bottom:1px solid #d8c9a7;border-radius:0;line-height:1.4}
.rsvp-form input+label,.rsvp-form select+label{margin-top:13px}
.rsvp-form button{min-height:49px;margin-top:17px;padding:14px 18px;border-radius:2px;line-height:1.5}
.form-message{line-height:1.6}
.music-toggle{max-width:calc(100vw - 24px)}
@media(max-width:760px){
  .hero{min-height:100svh}
  .hero-content{padding:34px 22px 42px}
  .section{padding:68px 20px}
  .details{padding-inline:20px}
  .details-grid{gap:0}
  .detail-card{padding:26px 15px}
  .rsvp-inner{gap:28px;padding:34px 30px}
  .rsvp-form input+label,.rsvp-form select+label{margin-top:11px}
  .quote-section{background-position:center,left center}
  .gallery-stage{height:clamp(370px,60vw,420px)}
}
@media(max-width:560px){
  .hero-content{padding:30px 18px 36px}
  .hero .eyebrow{letter-spacing:3px}
  .cover-photo{width:min(290px,78vw)}
  .hero h1{font-size:clamp(43px,12vw,64px);gap:8px;letter-spacing:-.8px}
  .save-date{font-size:8px;letter-spacing:2.5px}
  .hero-message{font-size:21px}
  .verse-reference{font-size:7px;letter-spacing:1.3px}
  .section{padding:58px 16px}
  .section h2{font-size:clamp(35px,10vw,44px)}
  .details{width:calc(100% - 20px);padding-inline:16px}
  .details-grid{grid-template-columns:1fr}
  .detail-card{min-height:0;padding:23px 16px}
  .detail-card+.detail-card{border-left:0;border-top:1px solid #e2d8c8}
  .detail-card h3{font-size:24px}
  .map-link{max-width:100%;font-size:10px}
  .quote-section{width:calc(100% - 24px);min-height:230px;margin:24px auto 30px;padding:42px 22px;background-size:cover,auto 100%;background-position:center,left center}
  .quote-section blockquote{font-size:clamp(24px,7vw,31px);max-width:390px}
  .rsvp{padding:54px 14px}
  .rsvp-inner{grid-template-columns:1fr;gap:20px;padding:27px 21px}
  .rsvp-form{gap:4px}
  .rsvp-form input,.rsvp-form select{height:46px}
  .rsvp-form button{margin-top:15px}
  .rsvp-copy h2{font-size:40px}
  .gallery-stage{height:390px}
  .gallery-slide{height:340px}
  .gallery-arrow{top:154px}
  .music-toggle{right:10px;bottom:10px}
}
@media(max-width:360px){
  .hero h1{font-size:41px;gap:5px}
  .cover-photo{width:74vw}
  .details{width:calc(100% - 14px);padding-inline:12px}
  .quote-section{width:calc(100% - 16px);padding-inline:16px}
  .gallery-slide{width:74vw}
  .rsvp-inner{padding-inline:16px}
  .music-label{display:none}
}

/* Portada interactiva: sobre y carta que se abre al iniciar la invitación. */
body.invitation-locked{height:100svh;overflow:hidden}
.letter-gate{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:24px;background:radial-gradient(ellipse at 50% 38%,#fffdf9 0%,#f7f1e7 68%,#eee5d7 100%);transition:opacity .55s ease,visibility .55s ease}
.letter-gate[hidden]{display:none}
.letter-gate-content{width:min(100%,440px);display:flex;flex-direction:column;align-items:center;text-align:center}
.invitation-envelope{position:relative;width:min(340px,78vw);height:220px;perspective:900px;filter:drop-shadow(0 18px 23px #58462c24);transition:transform .6s cubic-bezier(.2,.75,.25,1);cursor:pointer}
.invitation-envelope:focus-visible{outline:2px solid #a98a5f;outline-offset:8px;border-radius:4px}
.envelope-back{position:absolute;inset:0;z-index:1;border:1px solid #d4c1a1;border-radius:4px;background:linear-gradient(145deg,#eee3d1,#e5d6c0)}
.letter-peek{position:absolute;z-index:2;left:8%;right:8%;top:10%;height:82%;display:flex;flex-direction:column;justify-content:center;gap:10px;padding:20px;background:#fffdf9;border:1px solid #e8ddca;color:#766149;transition:transform .85s cubic-bezier(.2,.75,.25,1)}
.letter-peek span,.letter-peek small{font:500 8px Montserrat,Arial,sans-serif;letter-spacing:2.5px}
.letter-peek strong{font:500 clamp(28px,8vw,39px)/1 'Cormorant Garamond',serif;color:#574a3c}
.letter-peek strong i{font-size:.7em;color:#ad9063;font-style:normal}
.envelope-front{position:absolute;inset:0;z-index:3;background:#e9dcc7;clip-path:polygon(0 0,50% 57%,100% 0,100% 100%,0 100%);border-radius:4px}
.envelope-flap{position:absolute;inset:0 0 auto;z-index:4;height:68%;transform-origin:50% 0;transform-style:preserve-3d;background:linear-gradient(145deg,#f2e8d7,#dfceb2);clip-path:polygon(0 0,100% 0,50% 100%);backface-visibility:hidden;transition:transform .75s cubic-bezier(.2,.75,.25,1)}
.wax-seal{position:absolute;z-index:5;left:50%;top:51%;width:51px;height:51px;display:flex;align-items:center;justify-content:center;transform:translate(-50%,-50%);border:1px solid #a5814e;border-radius:50%;background:radial-gradient(circle at 35% 28%,#d9bd87,#a98653 70%);box-shadow:0 3px 8px #4938212b,inset 0 0 0 3px #ffffff44;color:#fff9ee;font:500 13px 'Cormorant Garamond',serif;transition:opacity .3s ease,transform .4s ease}
.wax-seal span{font-size:10px;margin:0 2px}
.letter-gate-title{margin:31px 0 5px;color:#594b3c;font:500 29px/1.1 'Cormorant Garamond',serif}
.letter-gate-subtitle{margin:0;color:#88765c;font:500 9px/1.6 Montserrat,Arial,sans-serif;letter-spacing:1.8px;text-transform:uppercase}
.open-letter-button{display:inline-flex;align-items:center;gap:14px;margin-top:26px;min-height:47px;padding:0 24px;border:1px solid #ae9062;border-radius:2px;background:#806b4e;color:#fffaf2;font:600 9px Montserrat,Arial,sans-serif;letter-spacing:1.5px;text-transform:uppercase;cursor:pointer;transition:transform .2s ease,background .2s ease,box-shadow .2s ease}
.open-letter-button:hover{transform:translateY(-2px);background:#68563f;box-shadow:0 8px 18px #58462c20}
.open-letter-button:focus-visible{outline:3px solid #b39467;outline-offset:4px}
.open-letter-button span{font-size:15px;color:#e9d2a7}
.letter-gate.is-opening{opacity:0;visibility:hidden;pointer-events:none}
.letter-gate.is-opening .envelope-flap{transform:rotateX(180deg)}
.letter-gate.is-opening .letter-peek{transform:translateY(-22px)}
.letter-gate.is-opening .wax-seal{opacity:0;transform:translate(-50%,-50%) scale(.6)}
.letter-gate.is-opening .invitation-envelope{transform:translateY(-14px) scale(1.04)}
.hero:not(.is-open) .hero-content{visibility:hidden}
.hero{box-shadow:inset 0 0 0 14px #b3946712,inset 0 0 0 15px #b394674d,inset 0 0 0 18px #fff7}
.hero-embroidery{position:absolute;inset:0;z-index:2;pointer-events:none}
.embroidered-corner{position:absolute;color:#a98a5f;font:32px/1 'Cormorant Garamond',serif;opacity:.66;text-shadow:0 1px 0 #fff9,0 0 10px #b3946726}
.corner-tl{top:29px;left:31px;transform:rotate(0)}
.corner-tr{top:29px;right:31px;transform:rotate(90deg)}
.corner-bl{bottom:29px;left:31px;transform:rotate(-90deg)}
.corner-br{right:31px;bottom:29px;transform:rotate(180deg)}
.quote-section>.quote-embroidery{position:absolute;z-index:1;top:50%;color:#ad9063;font:44px/1 'Cormorant Garamond',serif;opacity:.48;pointer-events:none;text-shadow:0 1px 0 #fff8}
.quote-embroidery-left{left:clamp(18px,4vw,42px);transform:translateY(-50%) rotate(-25deg)}
.quote-embroidery-right{right:clamp(18px,4vw,42px);transform:translateY(-50%) rotate(155deg)}
.quote-section blockquote,.quote-section .quote-mark,.quote-section p{z-index:2}
.hero.is-open .hero-content>*{animation:invitationReveal .8s cubic-bezier(.2,.75,.25,1) both}
.hero.is-open .hero-content>*:nth-child(1){animation-delay:.08s}
.hero.is-open .hero-content>*:nth-child(2){animation-delay:.18s}
.hero.is-open .hero-content>*:nth-child(3){animation-delay:.28s}
.hero.is-open .hero-content>*:nth-child(4){animation-delay:.38s}
.hero.is-open .hero-content>*:nth-child(5){animation-delay:.48s}
.hero.is-open .hero-content>*:nth-child(6){animation-delay:.58s}
.hero.is-open .hero-content>*:nth-child(7){animation-delay:.68s}
.hero.is-open .hero-content>*:nth-child(8){animation-delay:.78s}
.hero.is-open .hero-content>*:nth-child(9){animation-delay:.88s}
@keyframes invitationReveal{from{opacity:0;transform:translateY(18px);filter:blur(3px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}
@media(max-width:560px){.embroidered-corner{font-size:25px}.corner-tl{top:22px;left:21px}.corner-tr{top:22px;right:21px}.corner-bl{bottom:22px;left:21px}.corner-br{right:21px;bottom:22px}.quote-section>.quote-embroidery{font-size:30px}.quote-embroidery-left{left:7px}.quote-embroidery-right{right:7px}}
@media(max-width:420px){.invitation-envelope{height:190px}.letter-gate-title{font-size:26px}.letter-gate-subtitle{font-size:8px;letter-spacing:1.2px}.hero{box-shadow:inset 0 0 0 8px #b3946710,inset 0 0 0 9px #b3946744,inset 0 0 0 12px #fff7}}
@media(prefers-reduced-motion:reduce){.letter-gate,.invitation-envelope,.letter-peek,.envelope-flap,.wax-seal,.open-letter-button,.hero.is-open .hero-content>*{transition:none!important;animation:none!important}.hero.is-open .hero-content>*{opacity:1;transform:none;filter:none}}

/* Contraste reforzado para textos informativos en toda la invitación. */
.hero .eyebrow,.hero .save-date,.hero .verse-reference{color:#654d24;font-weight:600}
.hero h1 i{color:#795b2c}
.cover-photo figcaption{color:#5c4a35;font-weight:600}
.cover-photo figcaption{box-sizing:border-box;padding-right:58px;line-height:1.25}
.hero .invite-line{color:#4e483e;font-weight:500}
.hero .scroll-cue{color:#544a3a;font-weight:600}
.eyebrow.dark,.details .detail-card .label{color:#725316}
.section-lead,.detail-card p:last-child,.rsvp-copy>p:last-child{color:#4d443b;font-weight:500}
.detail-card.featured .label{color:#725316}
.map-link,.map-link span{color:#59421f}
.map-link:hover{color:#4c371b}
.quote-section blockquote{color:#3f372f}
.quote-section>p{color:#5b5044;font-weight:600}
.memory-gallery h2,.memory-card figcaption,.gallery-slide figcaption{color:#594b3d}
.gallery-arrow{color:#4f4034}
.rsvp-link-card p{color:#4d443b;font-weight:500}
.rsvp-link-card small{color:#51473c;font-weight:600}
footer,footer p,footer small,.footer-monogram~small{color:#37312b;font-weight:600}
.music-toggle{color:#4c3b27}
.letter-gate-title{color:#473a2d}
.letter-gate-subtitle{color:#66523a;font-weight:600}
.letter-peek,.letter-peek span,.letter-peek small{color:#574735}

/* Jerarquía tipográfica ligeramente mayor, conservando legibilidad responsive. */
.hero h1{font-size:clamp(52px,10vw,100px)}
.section h2{font-size:clamp(46px,6.4vw,62px)}
.detail-card h3{font-size:clamp(24px,3.2vw,29px)}
.memory-gallery h2{font-size:22px}
.rsvp-copy h2{font-size:clamp(48px,5.5vw,54px)}
.quote-section blockquote{font-size:clamp(30px,3.7vw,40px);line-height:1.18}
@media(max-width:650px){
  .hero h1{font-size:clamp(46px,13vw,72px)}
  .section h2{font-size:clamp(40px,11vw,48px)}
  .detail-card h3{font-size:clamp(23px,6.4vw,27px)}
  .memory-gallery h2{font-size:20px}
  .rsvp-copy h2{font-size:clamp(43px,11vw,48px)}
  .quote-section blockquote{font-size:clamp(27px,7.4vw,34px)}
}
@media(max-width:420px){.hero h1{font-size:44px}}

/* Caligrafía manuscrita elegante inspirada en la referencia de letras Mr & Mrs. */
.hero h1 span,.section h2,.detail-card h3,.rsvp-copy h2,.letter-gate-title{font-family:'Allura','Cormorant Garamond',cursive}
.hero h1 span{font-size:1.12em;font-weight:400;letter-spacing:0}
.section h2,.rsvp-copy h2{font-size:clamp(58px,7vw,72px);font-weight:400;line-height:1}
.detail-card h3{font-size:clamp(32px,3.6vw,36px);font-weight:400;line-height:1}
.memory-gallery h2{text-transform:none;letter-spacing:.5px}
.letter-gate-title{font-size:36px;font-weight:400;line-height:1}
.quote-section blockquote{font-family:'Allura','Cormorant Garamond',cursive;font-size:clamp(40px,4.8vw,50px);font-weight:400;font-style:normal;line-height:1.12}
@media(max-width:650px){
  .section h2,.rsvp-copy h2{font-size:clamp(50px,13vw,60px)}
  .detail-card h3{font-size:clamp(30px,8vw,34px)}
  .letter-gate-title{font-size:33px}
  .quote-section blockquote{font-size:clamp(34px,8.3vw,42px)}
}

/* En móvil, la ilustración queda como detalle de fondo y no compite con la cita. */
@media(max-width:560px){
  .quote-section{
    min-height:250px;
    padding:46px 18px;
    background-image:linear-gradient(90deg,#f6f1e8ee 0%,#f6f1e8f5 48%,#f6f1e8f2 100%),url("assets/images/quote-section-art.png");
    background-position:center,left bottom;
    background-size:cover,auto 58%;
  }
  .quote-section blockquote{
    width:100%;
    max-width:390px;
    box-sizing:border-box;
    padding:0 8px;
    font-size:clamp(27px,7.1vw,32px);
    line-height:1.17;
    text-wrap:balance;
  }
}
@media(max-width:360px){
  .quote-section{padding-inline:14px}
  .quote-section blockquote{font-size:clamp(25px,7.4vw,27px);padding-inline:4px}
}
