:root{color-scheme:light;--salmon:#a5544b;--gold:#bb9758;--ink:#49322e;--paper:#fffaf6;--script:'Parisienne','Brush Script MT',cursive}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#eddfd9;color:var(--ink);font-family:'EB Garamond',Georgia,serif}a,button{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}a:focus-visible,button:focus-visible{outline:3px solid var(--gold);outline-offset:5px}section[id]{scroll-margin-top:28px}section[tabindex='-1']:focus{outline:none}.page{max-width:800px;margin:0 auto;box-shadow:0 10px 70px #65413e15}.invitation{position:relative;isolation:isolate;container-type:inline-size;overflow:hidden;text-align:center;padding-top:9%;background:radial-gradient(ellipse at 50% 45%,#fff 22%,#fff9f5 58%,#f5d5cd 100%)}.invitation::after{content:'';position:absolute;inset:auto 0 0;height:clamp(60px,12cqw,96px);background:linear-gradient(transparent,var(--paper));z-index:6;pointer-events:none}.flowers{position:absolute;pointer-events:none;z-index:-1;width:41%}.top-left{top:-1%;left:-2%}.top-right{top:-1%;right:-2%;width:39%}.title-block{position:relative;animation:enter 1.2s ease both}.crown{width:37%;height:auto;display:block;margin:0 auto 2.5%}.intro{font-size:clamp(22px,4.7cqw,38px);line-height:1.12;margin:0}h1{font-family:var(--script);font-weight:400;color:var(--salmon);font-size:clamp(47px,10.5cqw,84px);line-height:1.28;margin:3% 4%}.message{font-size:clamp(20px,4.1cqw,33px);line-height:1.23;margin:1% auto 3%;width:82%;text-wrap:pretty;animation:enter 1.3s .15s ease both}.event{margin:auto;width:82%;animation:enter 1.3s .3s ease both}.weekday{font-size:clamp(23px,4.9cqw,39px);margin:0 0 1%}.date{display:flex;align-items:center;justify-content:center;gap:3%;margin:0 auto 2%;width:82%}.date span{border-block:1px solid #b8786480;padding:7px 0;font-size:clamp(18px,4.4cqw,35px);flex:1;white-space:nowrap}.date strong{font-size:clamp(52px,12cqw,96px);line-height:1;color:var(--salmon);font-weight:500}.cover-venue{font-size:clamp(24px,4.8cqw,38px);line-height:1.15;margin:3% 0}.details{position:relative;display:flex;justify-content:space-between;padding:0 10%;z-index:3;margin-top:3%;animation:enter 1.3s .45s ease both}.detail{width:37%;display:flex;align-items:center;flex-direction:column}.detail-icon{height:clamp(40px,7cqw,56px);width:60px;color:var(--salmon);stroke-width:1.3;margin-bottom:10px}.detail h2{font-size:clamp(19px,3.6cqw,29px);line-height:1.08;font-weight:400;margin:0}.detail p{font-size:clamp(16px,2.9cqw,23px);line-height:1.1;margin:5px 0 14px;min-height:2.2em}.icon{width:20px;height:20px;flex-shrink:0;stroke-width:1.5}.button{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:50px;padding:10px 8px;border:0;border-radius:16px;background:linear-gradient(120deg,#b96b5c,#964c46);box-shadow:0 4px 12px #8e433822;color:#fffaf3;text-decoration:none;font-size:clamp(17px,3.2cqw,26px);line-height:1.05;transition:transform .2s,box-shadow .2s}.button:hover{transform:translateY(-2px);box-shadow:0 7px 20px #8e433833}.cover-art{position:relative;height:51cqw;margin-top:-15cqw;z-index:-1}.princess{position:absolute;width:57%;bottom:-1%;left:21.5%;z-index:1}.bottom-left{bottom:-2%;left:-5%;width:39%;z-index:2}.bottom-right{bottom:-2%;right:-4%;width:35%;z-index:2}.farewell{position:absolute;right:8%;top:17cqw;font-family:var(--script);font-size:clamp(28px,6cqw,48px);color:var(--salmon);margin:0;z-index:3}
.page-body{container-type:inline-size;background:var(--paper);text-align:center;padding:44px 6% 28px}.page-body section{padding:30px 0 45px}.eyebrow{font-size:14px;letter-spacing:.15em;text-transform:uppercase;color:#8c6758;margin:0 0 16px}.section-title{font-family:var(--script);font-size:clamp(34px,6.8cqw,50px);line-height:1.18;font-weight:400;color:var(--salmon);margin:0 0 18px;text-wrap:balance}.section-intro{font-size:21px;line-height:1.45;margin:0 auto 28px;max-width:460px}.ornament{display:flex;align-items:center;gap:18px;justify-content:center;color:var(--gold);margin:26px 0}.ornament::before,.ornament::after{content:'';width:50px;height:1px;background:linear-gradient(90deg,transparent,#c4a16e)}.ornament::after{transform:rotate(180deg)}.family{display:grid;grid-template-columns:1fr 1fr;gap:28px}.family h3{font-size:27px;color:var(--salmon);font-weight:400;margin:0 0 13px}.family p{font-size:21px;line-height:1.55;margin:0}.locations{display:grid;grid-template-columns:1fr 1fr;gap:20px}.location-card{background:linear-gradient(145deg,#f9ece5,#fffdf9);padding:30px 15px 24px;border-radius:110px 110px 20px 20px;box-shadow:0 8px 24px #9f695c08}.icon-medallion{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:#f2ded1;color:#a46c50;margin:0 auto 22px}.icon-medallion .icon{width:29px;height:29px;stroke-width:1.3}.location-card .eyebrow{font-size:13px;margin-bottom:10px}.location-card h3{font-size:34px;font-weight:400;color:var(--salmon);margin:0}.event-hour{font-size:25px;margin:5px 0 20px}.place-name{font-size:21px;line-height:1.25;min-height:2.6em;margin:0 0 22px}.location-link{display:flex;align-items:center;justify-content:center;gap:5px;padding:12px 0;font-size:17px;color:#874b40;text-decoration-thickness:1px;text-underline-offset:5px}.location-link .icon{width:16px;height:16px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px;margin-top:30px}.section-icon{width:38px;height:38px;color:var(--salmon);stroke-width:1.3;margin-bottom:14px}.detail-grid h3{font-size:23px;font-weight:500;color:var(--salmon);margin:0 0 12px}.detail-grid p{font-size:21px;margin:8px 0}.secondary,.detail-grid .secondary{font-size:18px;line-height:1.45;color:#79635c}.color-swatch{display:inline-block;width:23px;height:23px;border-radius:50%;background:#ed9a8a;margin-top:10px;box-shadow:0 0 0 4px #f8e9df}.confirmation{background:radial-gradient(ellipse,#faeae1,transparent 70%);border-radius:24px}.guest-pass{max-width:430px;margin:24px auto;padding:25px 20px;background:#fffdf9;box-shadow:0 8px 32px #965e5010;border-radius:4px}.guest-pass>span{font-size:14px;letter-spacing:.1em;color:#9b735a}.guest-pass p{font-size:26px;color:var(--salmon);margin:14px 0}.guest-pass strong{font-weight:500}.guest-pass small{font-size:16px;color:#80635a}.confirmation-button{max-width:310px;margin:26px auto 14px;font-size:21px;min-height:54px}.button[aria-disabled='true']{opacity:.65;cursor:default;transform:none}.confirmation>.secondary{max-width:390px;margin:12px auto}.page-footer{padding:15px 0 10px}.page-footer>img{width:60px;height:54px}.page-footer>p{font-family:var(--script);font-size:48px;color:var(--salmon);margin:6px 0}.page-footer>span{display:block;font-size:16px;color:#876b60}.motion-toggle{display:block;margin:26px auto 0;background:none;border:0;color:#806b62;font-size:14px;padding:10px;text-decoration:underline;text-underline-offset:4px}.butterfly-flight{position:absolute;left:8%;top:16%;width:clamp(42px,9cqw,70px);height:auto;z-index:4;pointer-events:none;animation:flight 19s 1s ease-in-out 2 both}.butterfly{width:100%;filter:drop-shadow(0 3px 4px #7d433126);animation:flutter .55s ease-in-out infinite alternate;transform-origin:50% 50%}.reveal.is-waiting{opacity:0;transform:translateY(22px)}.reveal{transition:opacity .9s ease,transform .9s ease}.motion-paused *{animation-play-state:paused!important}.motion-paused .reveal{opacity:1;transform:none}
@keyframes enter{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@keyframes flutter{from{transform:perspective(180px) rotateY(-48deg) rotate(-9deg)}to{transform:perspective(180px) rotateY(48deg) rotate(9deg)}}@keyframes flight{0%{left:5%;top:17%;transform:rotate(22deg)}20%{left:72%;top:25%;transform:rotate(-18deg)}40%{left:24%;top:42%;transform:rotate(25deg)}60%{left:76%;top:57%;transform:rotate(-22deg)}80%{left:14%;top:73%;transform:rotate(18deg)}100%{left:78%;top:20%;transform:rotate(-15deg)}}
@media(min-width:801px){.page{margin:24px auto}.invitation{padding-top:66px}}
@media(max-width:480px){.invitation{padding-top:12%}.details{padding-inline:7%}.detail{width:39%}.button{gap:5px}.button .icon{width:16px}.message{width:85%}.cover-art{height:57cqw;margin-top:-12cqw}.farewell{right:5%;top:19cqw}.page-body{padding:28px 6% 22px}.family{grid-template-columns:1fr;gap:28px}.locations{grid-template-columns:1fr;gap:22px}.location-card{max-width:350px;width:100%;margin:auto;padding:30px 20px;border-radius:100px 100px 16px 16px}.detail-grid{grid-template-columns:1fr;gap:34px}.page-body section{padding:24px 0 34px}.eyebrow{font-size:13px;letter-spacing:.1em}.section-title{font-size:37px}.section-intro{font-size:20px}.guest-pass p{font-size:24px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.reveal.is-waiting{opacity:1;transform:none}.motion-toggle{display:none}}
/* Ubicaciones con acciones alineadas y confirmación según el pase. */
.location-card{display:flex;flex-direction:column;align-items:center}
.location-card .location-link{margin-top:auto;width:100%;min-height:52px;padding:12px 9px;border-radius:12px;background:linear-gradient(120deg,#b96b5c,#964c46);color:#fffaf3;text-decoration:none;font-size:17px;box-shadow:0 4px 12px #8e433218}
.location-card .location-link:hover{background:#964c46}
.rsvp-form{max-width:430px;margin:28px auto 0;text-align:left}
.rsvp-form label{display:block;font-size:19px;margin:18px 0 8px}
.rsvp-form input,.rsvp-form select{width:100%;min-height:50px;padding:12px 14px;border:1px solid #d7b9a9;border-radius:10px;background:#fffdf9;color:var(--ink);font:18px 'EB Garamond',Georgia,serif}
.rsvp-form input:focus,.rsvp-form select:focus{outline:2px solid var(--gold);outline-offset:2px}
.form-help{font-size:16px;color:#79635c;line-height:1.4;margin:9px 0}
.rsvp-form [hidden]{display:none}
.rsvp-form .confirmation-button{max-width:none}
.butterfly-flight{width:clamp(56px,11cqw,88px);animation:flight 22s 0s ease-in-out infinite}
.butterfly{animation:none;overflow:visible}
.wing{transform-box:view-box;transform-origin:50px 45px}
.wing-left{animation:wing-left .65s ease-in-out infinite alternate}
.wing-right{animation:wing-right .65s ease-in-out infinite alternate}
@keyframes wing-left{from{transform:scaleX(1) rotate(-3deg)}to{transform:scaleX(.25) rotate(5deg)}}
@keyframes wing-right{from{transform:scaleX(1) rotate(3deg)}to{transform:scaleX(.25) rotate(-5deg)}}
@media(prefers-reduced-motion:reduce){.butterfly-flight,.wing{animation:none!important}}
/* Recorrido cerrado: el último fotograma coincide con el primero. */
@keyframes flight{0%,100%{left:5%;top:17%;transform:rotate(22deg)}20%{left:72%;top:25%;transform:rotate(-18deg)}40%{left:24%;top:42%;transform:rotate(25deg)}60%{left:76%;top:57%;transform:rotate(-22deg)}80%{left:14%;top:73%;transform:rotate(18deg)}}
.footer-butterfly{display:inline-block;width:60px;height:54px}
.countdown{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;max-width:510px;margin:30px auto 22px}
.countdown>div{padding:20px 5px 17px;border-radius:40px 40px 12px 12px;background:linear-gradient(145deg,#f6e1d7,#fffdf9);box-shadow:0 5px 20px #9f695c08}
.countdown strong{display:block;font-size:clamp(30px,7cqw,52px);font-weight:400;line-height:1.2;color:var(--salmon);font-variant-numeric:tabular-nums}
.countdown span{display:block;font-size:16px;color:#80635a;margin-top:8px}
.reveal{transition:opacity .9s ease,transform .9s cubic-bezier(.2,.7,.3,1)}
.reveal.is-waiting{opacity:0;transform:translateY(32px)}
.location-card:nth-child(2),.detail-grid article:nth-child(2),.family>div:nth-child(2){transition-delay:.12s}
@media(max-width:420px){.countdown{gap:8px}.countdown>div{padding:18px 3px 14px}.countdown span{font-size:14px}}
@media(prefers-reduced-motion:reduce){.reveal.is-waiting{opacity:1;transform:none}}
