/* Acabado editorial: salmón, papel claro y acentos dorados. */
:root{--salmon:#a4554d;--ink:#49332f;--paper:#fffaf7;--ease:cubic-bezier(.22,1,.36,1)}
body{background:radial-gradient(ellipse at 15% 10%,#f9eee7,transparent 48%),#e9d7d0}
.page{box-shadow:0 24px 100px #6b3d2a14}
.invitation{background:radial-gradient(ellipse at 50% 38%,#fffdfa 25%,#fff5ef 62%,#f2c9bc 100%)}
h1{color:#a25850;text-shadow:0 3px 24px #cda08622;margin-block:4%;line-height:1.3}
.intro{font-weight:400;color:#5e423a}
.message{max-width:650px;line-height:1.32;color:#644c43;margin-bottom:4%}
.date{width:85%;gap:6%}.date span{font-size:clamp(18px,3.7cqw,30px);padding:10px 0}.date strong{font-size:clamp(62px,13cqw,104px)}
.cover-venue{font-size:clamp(24px,4.2cqw,34px);margin:4% 0}
.crown{filter:drop-shadow(0 4px 9px #b8873220)}
.page-body{padding:36px 7% 24px;background:linear-gradient(var(--paper),#fffdf9 40%,#fff6f0 100%)}
.page-body section{padding:48px 0 62px}
.eyebrow{font-size:13px;letter-spacing:.19em;color:#987561;margin-bottom:20px}
.section-title{font-size:clamp(37px,7.8cqw,56px);line-height:1.2;max-width:590px;margin:0 auto 22px}
.section-intro{color:#7c6156;line-height:1.5;max-width:380px}
/* Un bloque de color distingue el tiempo restante. */
.page-body .countdown-section{position:relative;padding:38px 20px 28px;margin:12px -2% 24px;border-radius:90px 90px 22px 22px;background:radial-gradient(ellipse at 20% 0%,#c58b75,transparent 65%),linear-gradient(140deg,#af6c5b,#894b44);box-shadow:0 16px 36px #985a3e18;color:#fff5e8}
.countdown-section .eyebrow{color:#f9dfc8}.countdown-section .section-title{color:#fff5e8;font-size:clamp(35px,7cqw,49px)}
.countdown{gap:0;margin:28px auto 24px;max-width:500px}
.countdown>div{background:none;box-shadow:none;border-radius:0;padding:4px 3px;position:relative}
.countdown>div+div::before{content:'';position:absolute;left:0;top:18%;height:52%;width:1px;background:linear-gradient(transparent,#e7b89870,transparent)}
.countdown strong{color:#fff4df;font-weight:400;line-height:1.15;font-size:clamp(35px,8cqw,58px)}
.countdown span{color:#f4dbca;letter-spacing:.04em;margin-top:7px}
.countdown-section .secondary{color:#f8e1d3;font-size:16px;margin:14px 0 0}
.countdown strong{will-change:transform,opacity,filter}.countdown strong.digit-change{animation:number-in .68s var(--ease)}
.family{gap:30px;margin-top:36px}.family h3{font-family:var(--script);font-size:34px;margin-bottom:16px}.family p{font-size:22px;line-height:1.65;color:#674f45}
.ornament{margin:28px 0}.ornament::before,.ornament::after{width:75px}.ornament .icon{width:17px;height:17px}
.locations{gap:24px;margin-top:36px;align-items:stretch}
.location-card{position:relative;background:linear-gradient(155deg,#f3ddd0,#fffaf4 70%);border-radius:130px 130px 20px 20px;padding:40px 20px 22px;box-shadow:0 12px 32px #7954440c}
.location-card .icon-medallion{width:70px;height:70px;background:#fff9f080;box-shadow:0 5px 20px #c3927420;margin-bottom:24px}
.location-card h3{font-family:var(--script);font-size:43px;line-height:1.2}
.event-hour{font-size:28px;margin:12px 0 24px}.place-name{font-size:21px;line-height:1.45;margin-bottom:28px;min-height:2.9em}
.button,.location-card .location-link{position:relative;overflow:hidden;border-radius:12px;background:linear-gradient(120deg,#b77562,#97534b);box-shadow:0 6px 16px #8f4b3920;transition:transform .3s var(--ease),box-shadow .3s ease,background .3s ease}
.button::after,.location-link::after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(110deg,transparent 20%,#fff8e526 48%,transparent 75%);transform:translateX(-130%);transition:transform .7s ease}
.button:active,.location-link:active{transform:translateY(1px)}
.detail-grid{gap:24px;margin-top:38px}.detail-grid article{padding:28px 16px;border-radius:20px;background:#f5e5dc60}.detail-grid h3{font-weight:400;font-size:25px}.section-icon{color:#ae7860;margin-bottom:18px}.detail-grid .secondary{font-size:18px;line-height:1.6}
.page-body .confirmation{margin:12px -2% 0;padding:42px 6% 38px;background:linear-gradient(155deg,#f1d9cb80,#fff9f3);border-radius:32px}
.confirmation .icon-medallion{background:#fff9ee;color:#b38358;box-shadow:0 6px 24px #a4784b12}
.guest-pass{position:relative;isolation:isolate;overflow:hidden;background:#fffdf8;border-radius:18px;padding:30px 24px;box-shadow:0 10px 30px #875a4220}
.guest-pass::before,.guest-pass::after{content:'';position:absolute;top:45%;width:22px;height:22px;background:#f6e7dd;border-radius:50%;z-index:-1}.guest-pass::before{left:-11px}.guest-pass::after{right:-11px}
.guest-pass>span{font-size:13px;letter-spacing:.12em}.guest-pass p{font-size:28px;margin:18px 0}.guest-pass small{letter-spacing:.03em}
.rsvp-form{margin-top:30px}.rsvp-form label{font-size:18px;color:#6e5145}.rsvp-form input,.rsvp-form select{padding:14px 16px;min-height:54px;background:#fffcf8;border-color:#d7bca95c;box-shadow:0 3px 12px #8b634807;transition:box-shadow .25s,border-color .25s}.rsvp-form input:focus,.rsvp-form select:focus{border-color:#bc8b6d;box-shadow:0 0 0 4px #e3c3aa30;outline:2px solid #bc8b6d;outline-offset:2px}
.confirmation>.secondary{font-size:16px;line-height:1.6}.rsvp-form .confirmation-button{margin-top:30px;min-height:56px}
.page-footer{padding:56px 0 20px}.page-footer>p{font-size:56px;margin:12px 0}.page-footer>span{letter-spacing:.06em;font-size:14px}
/* Apariciones en secuencia, sin ocultar controles enfocados. */
.reveal{transition:opacity 1s var(--ease),transform 1s var(--ease)}
.reveal.is-waiting{transform:translateY(24px);opacity:0}
.family>div:nth-child(2),.detail-grid article:nth-child(2),.location-card:nth-child(2){transition-delay:.16s}
@keyframes number-in{0%{transform:translateY(-12px) scale(.9);opacity:0;filter:blur(3px)}55%{transform:translateY(3px) scale(1.04);opacity:1;filter:blur(0)}100%{transform:none;opacity:1;filter:blur(0)}}
/* El vuelo usa transformaciones; no recalcula el diseño en cada fotograma. */
.butterfly-flight{left:5%;top:16%;animation:flight-refined 28s ease-in-out infinite;will-change:transform}
@keyframes flight-refined{0%,100%{transform:translate(0,0) rotate(18deg)}16%{transform:translate(62cqw,10cqw) rotate(-15deg)}33%{transform:translate(30cqw,34cqw) rotate(12deg)}50%{transform:translate(63cqw,58cqw) rotate(-12deg)}67%{transform:translate(8cqw,78cqw) rotate(15deg)}84%{transform:translate(2cqw,35cqw) rotate(-10deg)}}
.wing-left,.wing-right{animation-duration:.48s}
.cover-glimmer{position:absolute;left:21.5%;bottom:-1%;width:57%;height:72%;z-index:3;pointer-events:none;clip-path:polygon(42% 0,58% 0,72% 18%,100% 100%,0 100%,28% 18%)}
.cover-glimmer i{position:absolute;width:5px;height:5px;background:#fff8cb;border-radius:50%;opacity:0;box-shadow:0 0 7px #fff,0 0 14px #f5cc70,0 0 22px #dca44e;animation:dress-glimmer 5.8s ease-in-out infinite}
.cover-glimmer i::before,.cover-glimmer i::after{content:'';position:absolute;left:50%;top:50%;background:#fff8dc;border-radius:50%;transform:translate(-50%,-50%)}.cover-glimmer i::before{width:15px;height:1px}.cover-glimmer i::after{width:1px;height:15px}
.cover-glimmer i:nth-child(1){left:47%;top:8%}.cover-glimmer i:nth-child(2){left:34%;top:25%;animation-delay:.5s}.cover-glimmer i:nth-child(3){left:61%;top:29%;animation-delay:1s}.cover-glimmer i:nth-child(4){left:20%;top:43%;animation-delay:1.5s}.cover-glimmer i:nth-child(5){left:47%;top:47%;animation-delay:2s}.cover-glimmer i:nth-child(6){left:76%;top:45%;animation-delay:2.5s}.cover-glimmer i:nth-child(7){left:10%;top:66%;animation-delay:3s}.cover-glimmer i:nth-child(8){left:35%;top:70%;animation-delay:3.5s}.cover-glimmer i:nth-child(9){left:62%;top:64%;animation-delay:4s}.cover-glimmer i:nth-child(10){left:88%;top:70%;animation-delay:4.5s}.cover-glimmer i:nth-child(11){left:25%;top:88%;animation-delay:5s}.cover-glimmer i:nth-child(12){left:70%;top:87%;animation-delay:5.4s}
@keyframes dress-glimmer{0%,72%,100%{opacity:0;transform:scale(.35) rotate(0)}82%{opacity:.95;transform:scale(1.15) rotate(45deg)}90%{opacity:.25;transform:scale(.75) rotate(80deg)}}
@media(hover:hover){.button:hover,.location-card .location-link:hover{transform:translateY(-3px);box-shadow:0 10px 20px #8f4b3928}.button:hover::after,.location-link:hover::after{transform:translateX(130%)}.location-card:hover .icon-medallion{transform:translateY(-4px)}.icon-medallion{transition:transform .5s var(--ease)}}
@media(max-width:480px){.page-body{padding-inline:7%}.page-body section{padding:38px 0 46px}.page-body .countdown-section{padding:32px 12px 24px;border-radius:65px 65px 18px 18px}.countdown-section .eyebrow{font-size:12px}.section-title{font-size:38px}.locations{gap:26px}.location-card{max-width:100%;padding:38px 24px 24px}.family p{font-size:21px}.detail-grid{gap:18px}.detail-grid article{padding:26px 16px}.page-body .confirmation{padding-inline:5%;border-radius:24px}.guest-pass{padding-inline:16px}.guest-pass p{font-size:25px}.eyebrow{letter-spacing:.13em}.page-footer{padding-top:42px}}
@media(prefers-reduced-motion:reduce){.butterfly-flight,.wing,.cover-glimmer i,.countdown strong.digit-change{animation:none!important}.cover-glimmer{display:none}.reveal.is-waiting{opacity:1;transform:none}.button::after,.location-link::after{display:none}}
