@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600&family=Great+Vibes&display=swap');
:root{--olive:#56613c;--ink:#292a25;--paper:#f7f4ec;--light:#fcfbf7;--line:#d4d6c5}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#e9e8df;color:var(--ink);font:19px/1.65 'Cormorant Garamond',Georgia,serif}main{max-width:900px;margin:auto;background:var(--paper);overflow:hidden}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}a{color:inherit}h1,h2,h3,p{margin:0}h2{font-size:clamp(34px,5vw,48px);font-weight:400;line-height:1.17;color:var(--olive)}h3{font-weight:400;line-height:1.3}p{margin-top:20px}.eyebrow{font:12px/1.7 Georgia,serif;letter-spacing:.2em;text-transform:uppercase}.symbols{position:absolute;width:0;height:0}.photo{position:relative;background-color:#6c7454;background-position:center;background-size:cover;color:var(--light)}.photo.has-photo:before{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#1c261d80,#1c261d15 65%,#1c261d30)}.hero{min-height:790px;height:100svh;max-height:1000px;display:flex;align-items:center;justify-content:center;text-align:center;padding:65px 38px 110px;background-color:var(--olive)}.hero-frame{position:relative;z-index:1;width:100%;border:1px solid #e9e8db66;border-radius:240px 240px 0 0;padding:90px 15px 50px}.hero h1{font:clamp(68px,10vw,105px)/1.12 'Great Vibes',cursive;margin:35px 0}.hero h1 span{display:block;font:italic 42px/1.4 'Cormorant Garamond',Georgia,serif}.hero-date{font-size:23px;letter-spacing:.17em}.hero-date i{font-style:normal;font-size:15px}.hero p{font-size:17px;margin:10px 0}.sprig{position:absolute;width:125px;height:230px;opacity:.32;bottom:15px}.sprig.left{left:-13px;transform:rotate(18deg)}.sprig.right{right:-13px;transform:scaleX(-1) rotate(18deg)}.scroll{position:absolute;bottom:30px;z-index:2;font-size:14px;text-decoration:none;letter-spacing:.12em}.scroll span{display:block;font-size:24px;animation:float 2s ease-in-out infinite}.paper,.venue,.gifts,.rsvp{padding:85px 30px;text-align:center}.intro{padding-top:65px}.song{display:flex;gap:12px;align-items:center;margin:22px auto;background:none;color:var(--olive);border:0;font-size:18px}.play-icon{border:1px solid var(--olive);border-radius:50%;width:40px;height:40px;display:grid;place-items:center}.monogram{font-size:72px;line-height:1.2;color:var(--olive);margin:35px 0 25px;letter-spacing:-.05em}.monogram span{font-family:'Great Vibes',cursive;font-size:60px;font-weight:400}blockquote{font-size:25px;line-height:1.5;max-width:510px;margin:20px auto 28px;font-style:italic}.date{padding:95px 25px;background-color:#747d58;min-height:450px;display:grid;align-content:center;text-align:center}.date-content{position:relative}.date h2{color:inherit;font-size:55px;margin:20px 0}.date p{font-size:21px}.countdown{display:flex;justify-content:center;gap:24px;margin:35px 0 0}.countdown strong{display:block;font-size:38px;font-weight:400;line-height:1.2;font-variant-numeric:tabular-nums}.countdown span{font-size:14px}.small-branch{display:block;color:var(--olive);width:50px;height:85px;margin:0 auto 28px;transform:rotate(25deg);opacity:.7}.parents-grid{display:grid;gap:32px;margin-top:42px}.parents-grid p{font-size:23px;margin-top:12px}.venue{background:#e8e9df}.venue h2{margin:15px 0 30px}.venue-card{border:1px solid #9da589;border-radius:170px 170px 0 0;padding:55px 24px 38px;max-width:450px;margin:auto}.pin{width:30px;height:38px;fill:none;stroke:var(--olive);stroke-width:1.4;margin-bottom:18px}.venue h3{font-size:35px;color:var(--olive)}.time{font-size:23px;letter-spacing:.1em}.button{display:inline-block;background:var(--olive);border:1px solid var(--olive);color:var(--light);text-decoration:none;text-transform:uppercase;font:13px/1.5 Georgia,serif;letter-spacing:.13em;padding:17px 25px;margin-top:27px;min-height:48px;border-radius:0}.button:hover{background:#424d2c}.button:disabled{opacity:.5;cursor:wait}.note{font-size:15px;letter-spacing:0;line-height:1.5;color:#62684f}.note:empty{display:none}#map-note{margin-top:10px}.itinerary h2{margin:14px 0 45px}#timeline{padding:0;margin:0 auto;list-style:none;max-width:440px;text-align:left}#timeline li{display:grid;grid-template-columns:92px 26px 1fr;gap:14px;align-items:baseline;position:relative;padding-bottom:30px;font-size:20px}#timeline li:before{content:'';position:absolute;left:118px;top:13px;bottom:-12px;border-left:1px solid #b2b89f}#timeline li:last-child:before{display:none}#timeline time{font-size:17px;color:var(--olive);white-space:nowrap}#timeline .dot{position:relative;background:var(--paper);text-align:center;color:var(--olive);font-size:20px;z-index:1}.dress-photo,.pass-photo{min-height:410px;display:grid;align-content:center;text-align:center;background-color:#929a7b}.photo-caption{position:relative;padding:50px 30px}.photo-caption p{font-size:34px;font-style:italic}.photo-caption .monogram{color:inherit}.formal{display:block;font-size:28px;font-style:italic;color:var(--olive);margin:20px 0}.dress-art{width:195px;height:160px;color:var(--olive);margin:10px auto}.swatches{display:flex;justify-content:center;gap:35px;margin-top:25px;font-size:16px}.swatches i{display:block;position:relative;background:var(--swatch);border:1px solid #babaaa;width:32px;height:32px;border-radius:50%;margin:0 auto 10px}.swatches i:after{content:'';position:absolute;top:14px;left:-2px;width:34px;height:1px;background:#6b715b;transform:rotate(-45deg)}.gifts{background:#e8e9df}.envelope{display:block;width:75px;height:65px;fill:none;stroke:var(--olive);stroke-width:1.3;margin:0 auto 32px}.gifts h3{font:40px/1.5 'Great Vibes',cursive;color:var(--olive);margin-top:20px}.pass h2{margin:15px auto 30px;overflow-wrap:anywhere}.ticket{border:1px solid #a6ad90;max-width:430px;margin:auto;padding:30px 18px;position:relative;background:var(--light)}.ticket h3{font-size:37px;color:var(--olive);margin:12px 0 25px}.ticket-date{display:block;border-top:1px dashed #b2b89f;padding-top:20px;font:12px/1.8 Georgia,serif;letter-spacing:.1em}.pass>p{max-width:430px;margin:25px auto}.restrictions{display:flex;justify-content:center;gap:25px;font-size:17px;color:var(--olive)}.restrictions span{padding:8px 15px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.rsvp{background:#e8e9df}.rsvp h2{margin:15px 0 25px}form{max-width:430px;margin:25px auto 0;text-align:left}fieldset{border:0;padding:0;margin:0 0 24px}legend{margin-bottom:12px}.radio{display:inline-flex;align-items:center;margin-right:16px;gap:8px;font-size:17px}input[type=radio]{width:18px;height:18px;accent-color:var(--olive)}form>label{display:block;margin:21px 0 6px}input:not([type=radio]),select,textarea{display:block;width:100%;border:1px solid #abb299;background:var(--light);border-radius:0;color:var(--ink);padding:13px;font-size:18px;min-height:49px}textarea{resize:vertical}form .button{width:100%}#form-status{font-size:17px;line-height:1.5}footer{padding:65px 30px 80px;text-align:center}footer p{font-size:30px;font-style:italic;line-height:1.25}footer .signature{font:45px/1.4 'Great Vibes',cursive;color:var(--olive);margin:25px 0}#floating-music{position:fixed;z-index:5;bottom:20px;right:20px;background:var(--paper);border:1px solid var(--olive);box-shadow:0 3px 16px #0002;color:var(--olive);border-radius:50%;width:48px;height:48px;font-size:21px}:focus-visible{outline:3px solid #a38a49;outline-offset:4px}.motion .reveal{opacity:0;transform:translateY(15px);transition:opacity .8s,transform .8s}.motion .reveal.visible{opacity:1;transform:none}@keyframes float{50%{transform:translateY(5px)}}@media(min-width:700px){.hero-frame{max-width:580px}.paper,.venue,.gifts,.rsvp{padding:95px 75px}.parents-grid{grid-template-columns:1fr 1fr;gap:25px}.hero{min-height:850px}.date{min-height:540px}.dress-photo,.pass-photo{min-height:520px}}@media(max-width:380px){.hero{min-height:740px;padding-inline:20px}.hero h1{font-size:63px}.countdown{gap:17px}#timeline li{grid-template-columns:77px 22px 1fr;gap:9px;font-size:18px}#timeline li:before{left:96px}#timeline time{font-size:15px}.paper,.venue,.gifts,.rsvp{padding-inline:22px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.motion .reveal{opacity:1;transform:none;transition:none}.scroll span{animation:none}}
/* Encuadres específicos de las fotografías proporcionadas. */
.hero.has-photo{background-position:center 24%;align-items:flex-end}.hero.has-photo:before{background:linear-gradient(0deg,#182415ba,transparent 77%)}.hero.has-photo .hero-frame{border:0;border-radius:0;padding:0 0 14px}.hero.has-photo h1{font-size:clamp(61px,9vw,90px);margin:16px 0}.hero.has-photo h1 span{font-size:32px;line-height:1.1}.hero.has-photo .sprig{display:none}.date.has-photo{padding:0;min-height:0;background-size:100% auto;background-position:top;background-repeat:no-repeat;background-color:var(--paper);color:var(--olive)}.date.has-photo:before{display:none}.date.has-photo .date-content{margin-top:min(58.21vw,524px);padding:60px 20px 70px}.dress-photo.has-photo,.pass-photo.has-photo{min-height:580px;background-position:center 32%;align-content:end}.dress-photo.has-photo:before,.pass-photo.has-photo:before{background:linear-gradient(0deg,#1c261db0,transparent 60%)}.dress-photo .photo-caption,.pass-photo .photo-caption{padding:30px}.pass-photo .monogram{margin:0 0 15px}

/* Dirección visual de la referencia: papel, sobres y ornamentos de olivo. */
[hidden]{display:none!important}
.opening{max-width:900px;min-height:100svh;margin:auto;padding:65px 24px;display:grid;place-items:center;text-align:center;background:var(--paper);color:var(--olive);transition:opacity .35s}
.opening-inner{width:100%;max-width:470px}.opening .eyebrow{font-size:17px;font-weight:bold;letter-spacing:.13em}.opening h2{font:clamp(53px,9vw,76px)/1.3 'Great Vibes',cursive;margin:25px 0 12px}.opening h2 span{display:block;font:italic 28px/1 'Cormorant Garamond',Georgia,serif;margin:6px}.opening-date{font-size:22px;letter-spacing:.22em;margin:15px 0 40px}.opening-envelope{display:block;width:100%;max-width:400px;margin:auto;padding:0;border:0;background:none;filter:drop-shadow(0 10px 14px #29391e26);perspective:1000px;transition:transform .4s}.opening-envelope svg{display:block;width:100%;height:auto;overflow:visible}.opening-envelope:hover{transform:translateY(-3px)}.envelope-flap{transform-origin:200px 5px;transition:transform .65s ease,opacity .65s}.opening.is-open .envelope-flap{transform:scaleY(-.85);opacity:.55}.opening.is-open{opacity:0;transition-delay:.5s}.opening-instruction{font-size:15px;line-height:1.5;letter-spacing:.11em;text-transform:uppercase;margin:30px 0 0}.botanical{position:relative}.corner-branch{position:absolute;width:105px;height:195px;top:0;right:-5px;color:#7d8760;opacity:.6;transform:scaleX(-1) rotate(50deg);pointer-events:none}.intro.botanical .corner-branch{left:-3px;right:auto;transform:rotate(65deg);top:8px}.intro{padding-top:110px!important}.editorial-monogram{display:flex;align-items:center;justify-content:center;gap:25px;margin:35px 0;font-size:83px;letter-spacing:0}.editorial-monogram span{font:inherit}.editorial-monogram i{height:85px;width:1px;background:var(--olive);transform:rotate(3deg)}
.venue,.gifts,.rsvp{background:var(--paper)}.venue-card{border:0;border-radius:0;padding:15px 10px 10px}.venue h2{font:50px/1.3 'Great Vibes',cursive}.venue h3{font-size:31px}.button{padding:15px 22px;letter-spacing:.07em;font-size:13px}.parents-grid p{font-size:25px}.parents:after{content:'♡';display:block;margin:40px auto 0;font-size:18px;color:var(--olive)}.gifts h3{font-family:'Cormorant Garamond',Georgia,serif;font-size:32px}.rsvp{padding-top:65px}.rsvp-envelope{position:relative;max-width:470px;margin:0 auto 35px;padding:75px 22px 90px;isolation:isolate}.rsvp-envelope:before{content:'';position:absolute;z-index:-2;inset:0;background:#69754b;clip-path:polygon(0 35%,50% 0,100% 35%,100% 100%,0 100%)}.rsvp-envelope:after{content:'';position:absolute;z-index:-1;inset:35% 0 0;background:linear-gradient(145deg,#56613c,#748052);clip-path:polygon(0 0,50% 55%,100% 0,100% 100%,0 100%)}.rsvp-card{background:var(--light);padding:35px 15px 40px;box-shadow:0 0 10px #25311614;position:relative}.rsvp-card h2{font-size:30px;margin:15px 0 0}.rsvp-card .eyebrow{font-size:12px}.rsvp-card .button{margin-top:22px}#confirmation{scroll-margin-top:25px}.rsvp>form{background:var(--light);padding:24px;border:1px solid var(--line)}
@media(min-width:700px){.opening{padding:90px 40px}.opening-inner{max-width:560px}.opening-envelope{max-width:430px}.opening h2 span{display:inline;margin:0 10px}.corner-branch{width:125px;height:220px}.rsvp-card h2{font-size:36px}}
@media(prefers-reduced-motion:reduce){.opening,.opening-envelope,.envelope-flap{transition:none}.opening.is-open{opacity:1}.opening.is-open .envelope-flap{transform:none}}

/* Reproductor desde el primer momento; un único audio para toda la invitación. */
.music-start{padding:25px 26px 22px;background:var(--paper);color:var(--olive);text-align:center;position:relative;z-index:2}.music-controls{max-width:370px;margin:13px auto 0;display:flex;gap:17px;align-items:center}.music-start .song{margin:0;flex-shrink:0;width:48px;height:48px;min-width:48px;display:grid;place-items:center;border:1px solid #89916c;border-radius:50%;background:var(--light);color:var(--olive);font:25px/1 Georgia,serif;padding:0}.music-start.is-playing .song{background:var(--olive);color:var(--paper)}.music-track{flex:1;min-width:0;text-align:left}.music-track label{font:16px/1.3 'Cormorant Garamond',Georgia,serif;letter-spacing:.025em;display:block;margin-bottom:5px}.music-track input{display:block;width:100%;height:20px;margin:0;accent-color:var(--olive);cursor:pointer}.music-times{display:flex;justify-content:space-between;font:12px/1.4 Georgia,serif;font-variant-numeric:tabular-nums;color:#687050}.music-note{font-size:24px;opacity:.5}.music-start #music-status{margin-top:10px}.music-start~.hero{height:calc(100svh - 155px);min-height:670px}.music-start :focus-visible{outline-offset:3px}
/* Las fotos se integran con papel de bordes irregulares, cada una con un corte distinto. */
.photo{isolation:isolate}.photo-visual{position:absolute;inset:0;z-index:-1;overflow:hidden}.photo-visual img{width:100%;height:100%;display:block;object-fit:cover;object-position:center 32%}.photo-visual:after{content:'';position:absolute;inset:0;pointer-events:none}.photo.has-photo:before{display:none}.hero.has-photo{background:var(--paper)}.hero.has-photo .photo-visual{-webkit-mask:url('assets/paper-portrait.svg') center/100% 100% no-repeat;mask:url('assets/paper-portrait.svg') center/100% 100% no-repeat;inset:0 -6px 0;filter:none}.hero .photo-visual img{object-position:center 24%}.hero .photo-visual:after{background:linear-gradient(0deg,#172413d1,transparent 75%)}.hero.has-photo .hero-frame{padding-bottom:5px}.hero .scroll{bottom:27px}.hero.has-photo .hero-frame .eyebrow{color:#fff}
.date-editorial{display:block;padding:40px 0 0;background:var(--paper);color:var(--olive);text-align:center;min-height:0;overflow:visible}.date-editorial h2{color:var(--olive)}.date-editorial .date-content{padding:40px 25px 65px}.date-editorial .date-content>p{font-size:20px}.scrap-photo{position:relative;margin:0 auto;filter:drop-shadow(0 10px 9px #29362020);isolation:isolate}.scrap-photo:before{content:'';position:absolute;inset:-9px;background:#e8e4d7;z-index:-1;-webkit-mask:url('assets/paper-landscape.svg') center/100% 100% no-repeat;mask:url('assets/paper-landscape.svg') center/100% 100% no-repeat;transform:rotate(1.8deg)}.landscape-photo{width:calc(100% - 48px);transform:rotate(-1deg)}.landscape-photo .photo-surface{aspect-ratio:1280/745;min-height:0;background:transparent}.landscape-photo .photo-visual{-webkit-mask:url('assets/paper-landscape.svg') center/100% 100% no-repeat;mask:url('assets/paper-landscape.svg') center/100% 100% no-repeat}.landscape-photo .photo-visual img{object-fit:cover;object-position:center}.portrait-wrap,.sunlight-wrap{padding:45px 22px 30px;background:var(--paper)}.portrait-photo{width:100%;max-width:530px;transform:rotate(1deg)}.portrait-photo:before{inset:-8px;transform:rotate(-2.2deg);background:#dce0ce}.portrait-photo .dress-photo.has-photo{min-height:0;aspect-ratio:2/3;display:flex;align-items:end;justify-content:center;background:transparent}.portrait-photo .photo-visual{-webkit-mask:url('assets/paper-portrait.svg') center/100% 100% no-repeat;mask:url('assets/paper-portrait.svg') center/100% 100% no-repeat}.portrait-photo .photo-visual:after{background:linear-gradient(0deg,#1b2917b3,transparent 43%)}.portrait-photo .photo-caption{padding:22px 20px 27px}.portrait-photo .photo-caption p{font-size:28px;margin-top:7px}.sunlight-wrap{padding:35px 20px 30px}.sunlight-photo{max-width:600px;transform:rotate(-.7deg)}.sunlight-photo:before{background:#e9e3d6;transform:rotate(1.4deg);inset:-8px}.sunlight-photo .pass-photo.has-photo{min-height:0;aspect-ratio:2/3;display:flex;align-items:end;justify-content:center;background:transparent}.sunlight-photo .photo-visual{-webkit-mask:url('assets/paper-sunlight.svg') center/100% 100% no-repeat;mask:url('assets/paper-sunlight.svg') center/100% 100% no-repeat}.sunlight-photo .photo-visual img{object-position:center 35%}.sunlight-photo .photo-visual:after{background:linear-gradient(0deg,#2830218c,transparent 50%)}.sunlight-photo .photo-caption{padding:24px}.sunlight-photo .monogram{font-size:54px}.sunlight-photo .monogram span{font-size:47px}.pass.paper{padding-top:60px}.dress.paper{padding-top:65px}
@media(min-width:700px){.music-start{padding-top:30px;padding-bottom:25px}.music-controls{max-width:410px}.music-start~.hero{min-height:780px}.date-editorial{padding-top:65px}.landscape-photo{width:calc(100% - 90px)}.date-editorial .date-content{padding-top:60px}.portrait-wrap,.sunlight-wrap{padding:60px 55px 40px}.portrait-photo .photo-caption p{font-size:35px}}
@media(max-width:380px){.music-start{padding:22px 18px}.music-start~.hero{min-height:630px}.music-track label{font-size:16px}.landscape-photo{width:calc(100% - 32px)}.portrait-wrap,.sunlight-wrap{padding-inline:16px}.portrait-photo .photo-caption p{font-size:25px}}
