/* Invitación: lectura clara y movimiento suave. */
.demo-section{background:linear-gradient(145deg,#eee7dd,#ded3c4)}
.demo-section:before,.invitation:before{display:none}
.phone{border:6px solid #252729;border-radius:36px;box-shadow:0 2px 0 #a69d8f,0 26px 60px #26344830;transform:none;transition:box-shadow .4s}
.phone:hover{transform:none;box-shadow:0 2px 0 #a69d8f,0 30px 65px #26344840}
.phone-bar{background:#fffaf3;font-size:11px;padding:14px 16px;border-bottom:1px solid #dfd5c6}
.invitation{position:relative;background:#fffdf8;color:#223650;height:620px;scroll-behavior:smooth;scrollbar-color:#ac9570 #f3ede3}
.invitation p{font:16px/1.75 'Hanken Grotesk',Arial,sans-serif;color:#34475e}
.invitation .eyebrow{font:11px/1.7 'Hanken Grotesk',Arial,sans-serif;letter-spacing:.15em;color:#556477;max-width:260px;margin:auto}
.invitation .couple-names{display:flex;flex-direction:column;align-items:center;gap:4px;font:500 46px/1.02 'Cormorant Garamond',Georgia,serif;margin:20px 0;color:#172d49;letter-spacing:-.02em}
.invitation .couple-names em{font:italic 21px/1 'Cormorant Garamond',Georgia,serif;color:#896c3f;letter-spacing:0}
.invitation h4{font:600 28px/1.2 'Cormorant Garamond',Georgia,serif;color:#182f4c;margin-bottom:13px}
#cover{padding:28px 22px;min-height:600px;position:relative;isolation:isolate;overflow:hidden;transition:opacity .35s,transform .45s}
#cover:before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(#fffdf8a0,#fffdf8e6 32%,#fffdf8f2 75%,#fffdf8c0),url('assets/wedding-paper.png') center/cover;opacity:.75}
#cover>p:not(.eyebrow){max-width:260px;margin:auto;font-size:15px}
#cover h4{font:600 24px/1.2 'Cormorant Garamond',Georgia,serif;margin:18px 0 9px}
#cover>p:last-child{font-size:14px;line-height:1.6}
.envelope{height:160px;margin:27px 0 20px;overflow:visible;isolation:isolate;perspective:800px;background:linear-gradient(125deg,#354f70,#192d49);box-shadow:0 1px 1px #ffffff50 inset,0 7px 10px #26344820,0 20px 20px -12px #17283e60;border-radius:3px;transition:transform .4s}
.envelope:hover{transform:translateY(-3px)}
.envelope:after{content:'';position:absolute;inset:0;z-index:6;pointer-events:none;background:linear-gradient(115deg,transparent 28%,#ffffff20 48%,transparent 63%);background-size:300% 100%;background-position:100% 0;transition:background-position 1s}
.envelope:hover:after{background-position:0 0}
.envelope-note{position:absolute;inset:15px 20px;background:#fffbf1;color:#263b53;font:italic 17px/1.5 'Cormorant Garamond',Georgia,serif;padding-top:22px;border:1px solid #d5bf9360;box-shadow:0 3px 8px #0003;z-index:0;transition:transform .65s .2s}
.envelope-note b{font:500 22px 'Cormorant Garamond',Georgia,serif}
.pocket{position:absolute;inset:0;z-index:2;background:linear-gradient(150deg,transparent 49.6%,#0c213966 50%,transparent 50.5%),linear-gradient(30deg,transparent 49.6%,#889bb533 50%,transparent 50.5%),linear-gradient(115deg,#2a4463,#1b304c);clip-path:polygon(0 0,50% 61%,100% 0,100% 100%,0 100%)}
.fold{z-index:3;background:linear-gradient(145deg,#4c6381,#263e60);clip-path:polygon(0 0,100% 0,50% 63%);transform-origin:top;transition:transform .65s ease}
.seal{z-index:4;width:54px;height:54px;top:68px;left:calc(50% - 27px);border-radius:48% 52% 46% 54%;border:0;background:radial-gradient(ellipse at 30% 22%,#f3d79c,#c69850 40%,#a47235 75%,#d4af71);box-shadow:2px 4px 5px #09132166,0 1px 2px #fff7 inset;transition:transform .3s,opacity .3s}
.seal:before{content:'';position:absolute;inset:7px;border:1px solid #936931;border-radius:50%;box-shadow:0 1px 0 #f8d698}
.seal>span{font:italic 16px 'Cormorant Garamond',Georgia,serif;color:#593b1a;text-shadow:0 1px #efd19c}
.open-text{z-index:5;font:11px/1.4 'Hanken Grotesk',Arial,sans-serif;letter-spacing:.1em;bottom:14px;color:#fff5dc}
.envelope.opening .fold{transform:rotateX(175deg);z-index:1}
.envelope.opening .seal{transform:translateY(-10px) scale(.85);opacity:0}
.envelope.opening .envelope-note{transform:translateY(-90px);z-index:2}
.envelope.opening .open-text{opacity:0}
#cover.is-unfolding{opacity:0;transform:translateY(-14px)}
#inside{padding:0 23px 30px;position:relative;animation:welcome .7s ease both}
#inside>.eyebrow{padding-top:32px}
#inside>p:not(.tiny){max-width:270px;margin:auto}
.invite-nav{position:sticky;top:0;z-index:10;display:flex;justify-content:center;gap:6px;margin:0 -23px 27px;padding:10px 7px;background:#fffdf8f2;border-bottom:1px solid #dfd5c6;backdrop-filter:blur(10px)}
.invite-nav button{background:transparent;border:0;padding:8px 12px;font-size:12px;color:#263b53;border-radius:20px}
.invite-nav button:hover{background:#eee7dc}
.date-card{margin:27px 10px;padding:20px 10px;border-top:1px solid #c6b28e;border-bottom:1px solid #c6b28e;background:#f7f2e9;border-radius:3px}
.date-card>span{display:block;font:11px/1.6 'Hanken Grotesk',Arial,sans-serif;letter-spacing:.14em;color:#5f5c52}
.date-card>strong{display:block;font:500 56px/1.2 'Cormorant Garamond',Georgia,serif;color:#213954}
.date-card>p{font-size:15px;margin-top:8px}
#music{background:#fff;border:1px solid #c6b28e;border-radius:26px;padding:12px 16px;font-size:13px;color:#223650;transition:background .25s}
#music[aria-pressed=true]{background:#223650;color:#fff}
#music[aria-pressed=true]:before{content:'♫ ';display:inline-block;animation:music-beat 1.5s ease infinite}
.invitation .tiny{font:12px/1.7 'Hanken Grotesk',Arial,sans-serif!important;color:#596675;margin-top:12px!important}
.count{margin:30px -23px;padding:28px 12px;background:linear-gradient(125deg,#304d71,#182f4c);border:0;box-shadow:none}
.count>p{font:500 28px/1.3 'Cormorant Garamond',Georgia,serif;color:#ffefd2}
#countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:16px}
.countdown-cell{border-right:1px solid #ffffff30}
.countdown-cell:last-child{border:0}
.countdown-cell strong{display:block;font:500 33px/1.3 'Cormorant Garamond',Georgia,serif;color:#fff;margin:0;font-variant-numeric:tabular-nums}
.countdown-cell span{font:11px 'Hanken Grotesk',Arial,sans-serif;color:#f0e3cc}
.journey-button{background:transparent;border:0;border-bottom:1px solid #ba9f70;padding:8px 3px;color:#263b53;font-size:13px;margin:0 0 30px}
.timeline{text-align:left;border-left:1px solid #bda474;margin:22px 14px 30px 20px;padding-left:20px}
.timeline p{font-size:15px;position:relative;padding:5px 0}
.timeline p:before{content:'';position:absolute;left:-25px;top:14px;width:8px;height:8px;border-radius:50%;background:#b3996e;box-shadow:0 0 0 4px #fffdf8}
.timeline strong{font-size:16px}
.invite-section{border-color:#ded3c2;padding:30px 0}
.invite-section p{font-size:15px}
.invite-section:last-child{background:#f4ede1;padding:25px 18px;margin:12px -7px 0;border:1px solid #d8c8ab;border-radius:8px;box-shadow:0 8px 24px #2634480d}
form label{font:13px/1.6 'Hanken Grotesk',Arial,sans-serif;color:#283d56}
form input,form select{border:1px solid #b7b2a6;background:#fff;border-radius:5px;padding:12px;font-size:16px;min-height:46px}
.confirm{background:#223b59;color:#fff;border-radius:5px;font-size:14px;min-height:48px;transition:background .2s,transform .2s}
.confirm:hover{background:#375575;transform:translateY(-1px)}
#status{font:13px/1.6 'Hanken Grotesk',Arial,sans-serif;color:#263b53}
.invitation .arrived{animation:welcome .65s ease both}
.demo-controls{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:26px}
.demo-controls .button,.demo-controls .text-button{margin:0}
.preview-response{background:#fffaf399;border:1px solid #d2c3ad;padding:22px;border-radius:5px}
.preview-dialog{width:min(95vw,550px);max-height:94dvh;padding:0;border:1px solid #a99b83;border-radius:12px;background:#fffdf8;box-shadow:0 25px 80px #0006}
.preview-dialog::backdrop{background:#15120ed9;backdrop-filter:blur(8px)}
.preview-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px;background:#f5f2ec;font-size:12px}
.preview-toolbar button{background:transparent;border:1px solid #9b8c74;padding:7px 12px;border-radius:3px}
.preview-dialog .phone{border:0;border-radius:0;max-width:440px;margin:auto;transform:none;box-shadow:none}
.preview-dialog .phone-bar,.preview-dialog .phone-bottom{display:none}
.preview-dialog .invitation{height:min(82dvh,800px)}
.preview-dialog #cover{min-height:600px;padding:30px}
@keyframes welcome{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes music-beat{50%{transform:scale(1.15)}}
@media(max-width:640px){.demo-grid{gap:35px}.invitation{height:620px}.demo-section h2{font-size:36px}.preview-dialog{width:96vw}.preview-dialog .invitation{height:80dvh}}
@media(prefers-reduced-motion:reduce){.invitation{scroll-behavior:auto}}
@media print{.preview-dialog{display:none!important}}
/* Detalles ilustrados de la experiencia de boda. */
.wedding-sprite{position:absolute;width:0;height:0;overflow:hidden}
.wedding-icon{width:52px;height:52px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;color:#9b7844;flex-shrink:0}
.prototype-notice{display:flex;gap:15px;align-items:flex-start;border:1px solid #bca173;border-left:4px solid #a77c38;padding:21px 24px;background:#fffaf0;border-radius:7px;margin:0 0 35px;max-width:900px;box-shadow:0 5px 20px #6b583110}
.prototype-notice>span{display:grid;place-items:center;width:30px;height:30px;flex-shrink:0;border:1px solid #a77c38;border-radius:50%;font:italic 23px Georgia;color:#815e2b}
.prototype-notice strong{display:block;color:#503e23;margin-bottom:5px;font-size:16px}
.prototype-notice p{font-size:14px;color:#5b5144;line-height:1.65}
.cover-monogram{font:500 25px 'Cormorant Garamond',Georgia,serif;border-top:1px solid #bca575;border-bottom:1px solid #bca575;padding:7px 12px;display:inline-block;margin-bottom:17px;letter-spacing:.1em;color:#8b6a36}
.cover-monogram span{font-size:17px;font-style:italic}
#cover{min-height:660px}
#cover:after{content:'';position:absolute;inset:13px;border:1px solid #c8b18a66;pointer-events:none}
.envelope-note{padding:15px 8px;background:repeating-linear-gradient(0deg,#f7f1e6,#f7f1e6 25px,#eee6d7 26px);border:5px solid #fffbf2;outline:1px solid #ccb790;box-shadow:0 3px 8px #0002}
.envelope-note small{display:block;font:9px/1.4 'Hanken Grotesk',Arial,sans-serif;letter-spacing:.04em;margin-top:8px;color:#6b644f}
.note-ornament{display:block;color:#a77c38;font-size:20px;line-height:1;margin-bottom:5px}
.welcome-ornament{display:flex;justify-content:center;align-items:center;gap:18px;margin:25px 0 15px}
.welcome-ornament:before,.welcome-ornament:after{content:'';width:45px;height:1px;background:linear-gradient(90deg,transparent,#b99a68)}
.welcome-ornament:after{transform:rotate(180deg)}
#inside>.eyebrow{padding-top:0}
#inside .invite-quote{font:italic 23px/1.45 'Cormorant Garamond',Georgia,serif;color:#79603a;margin-top:16px}
.music-stage{padding:8px 0 5px}
.music-wave{display:flex;gap:3px;justify-content:center;align-items:center;height:22px;margin-bottom:10px}
.music-wave i{display:block;width:3px;height:7px;border-radius:3px;background:#b4925d;transition:height .4s}
.music-wave i:nth-child(2),.music-wave i:nth-child(4){height:15px}
.music-wave i:nth-child(3){height:21px}
.music-stage.is-playing .music-wave i{animation:wave-dance .9s ease-in-out infinite alternate}
.music-stage.is-playing .music-wave i:nth-child(2){animation-delay:.25s}
.music-stage.is-playing .music-wave i:nth-child(3){animation-delay:.45s}
.music-stage.is-playing .music-wave i:nth-child(4){animation-delay:.15s}
.music-stage.is-playing .music-wave i:nth-child(5){animation-delay:.35s}
.memory-film{margin:30px -4px 24px;padding:22px 0 0}
.film-heading{display:flex;flex-direction:column;align-items:center;gap:12px}
.film-heading .wedding-icon{width:31px;height:31px}
.film-heading h4{font-size:26px!important}
.film-frame{position:relative;padding:7px;border:1px solid #c8b48b;background:#f7f0e3;box-shadow:0 12px 25px #20385918;border-radius:70px 70px 8px 8px;margin-top:12px}
.film-frame video{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:64px 64px 3px 3px;background:#223650}
.film-tag{position:absolute;top:22px;left:23px;background:#fffdf8e6;color:#263b53;padding:5px 8px;border-radius:3px;font-size:9px;letter-spacing:.1em;pointer-events:none}
.memory-film .tiny{padding:0 8px;font-size:11px!important}
.memory-film a{text-decoration:underline;text-underline-offset:3px}
.count{position:relative;overflow:hidden}
.count:before,.count:after{content:'✦';position:absolute;top:19px;left:13px;font-size:12px;color:#d2ba8b;animation:star-light 4s ease-in-out infinite}
.count:after{left:auto;right:13px;top:auto;bottom:14px;animation-delay:2s}
.count>p{font-size:26px}
.count-foot{display:block;font:10px 'Hanken Grotesk',Arial,sans-serif;text-transform:uppercase;letter-spacing:.14em;color:#dcc89f;margin-top:23px}
.day-program{padding:5px 0 12px}
.day-program>h4{margin:12px 0 25px}
.event-tile{display:flex;align-items:center;text-align:left;gap:17px;background:#f5efe4;border:1px solid #dfd2bb;padding:20px 16px;margin:12px 0;border-radius:6px;position:relative;box-shadow:0 4px 13px #614c2a07;transition:transform .3s,box-shadow .3s}
.event-tile:before{content:'';position:absolute;left:0;top:20px;bottom:20px;width:3px;background:#b39868;border-radius:2px}
.event-tile:nth-of-type(2){background:#edf1ee;border-color:#d6dfd5}
.event-tile:nth-of-type(3){background:#edf0f5;border-color:#d5dce5}
.event-tile:hover{transform:translateY(-3px);box-shadow:0 8px 18px #20385915}
.event-tile .wedding-icon{width:43px;height:43px}
.event-time{display:block;font:10px/1.6 'Hanken Grotesk',Arial,sans-serif;letter-spacing:.1em;color:#71603f;margin-bottom:6px}
.invitation h5{font:600 23px/1.2 'Cormorant Garamond',Georgia,serif;color:#263b53;margin:0 0 8px}
.event-tile p{font-size:13px;line-height:1.6}
.section-emblem{display:grid;place-items:center;margin:0 auto 18px;width:78px;height:78px;background:#f3ebdc;border:1px solid #d8c7a8;border-radius:50%;box-shadow:0 0 0 5px #fffdf8,0 0 0 6px #d8c7a850}
.section-emblem .wedding-icon{width:41px;height:41px}
.invite-section>.eyebrow{margin-bottom:10px}
.venue-art{display:block;width:calc(100% + 12px);height:auto;margin:22px -6px 0;border-radius:65px 65px 0 0;border:1px solid #d7c5a7}
.location-card{padding:22px 15px;background:#f9f4ea;border:1px solid #d7c5a7;border-top:0}
.location-card+ .location-card{background:#fffdf8;border-radius:0 0 7px 7px}
.location-card p{font-size:13px}
.map-button{display:inline-block;padding:10px 13px;border:1px solid #a2a9a4;border-radius:4px;background:#fff;color:#263b53;font-size:12px;margin-top:15px;transition:background .25s}
.map-button:hover{background:#e7eee9}
.dress-badge{display:inline-block;border:1px solid #c5b18a;background:#f4ecdf;padding:7px 15px;border-radius:25px;font-size:12px;margin:6px 0 18px}
.dress-swatches{display:flex;justify-content:center;gap:10px;margin-top:20px}
.dress-swatches i{width:24px;height:24px;border-radius:50%;background:#243b58;border:3px solid #fff;box-shadow:0 0 0 1px #d8cbb4}
.dress-swatches i:nth-child(2){background:#86958a}.dress-swatches i:nth-child(3){background:#beab85}.dress-swatches i:nth-child(4){background:#d6c2b7}
.gift-section{background:radial-gradient(ellipse at 50% 25%,#f5ebda,transparent 70%);margin:0 -5px;padding-left:10px;padding-right:10px}
.gift-details{text-align:left;border:1px solid #c8b48b;border-radius:6px;margin-top:22px;padding:0;background:#fffcf5;overflow:hidden}
.gift-details summary{display:flex;justify-content:space-between;align-items:center;padding:16px;font-size:13px;min-height:48px;list-style:none;color:#34465c}
.gift-details summary::-webkit-details-marker{display:none}
.gift-details summary span{font-size:20px;transition:transform .3s}
.gift-details[open] summary span{transform:rotate(45deg)}
.gift-details>div{padding:0 16px 20px;animation:welcome .35s ease both}
.gift-details p{font-size:13px}
.sample-label{display:block;font-size:9px;letter-spacing:.05em;margin-top:15px;color:#716a5c}
.guest-ticket{border-top:1px dashed #bba67f;border-bottom:1px dashed #bba67f;padding:14px 0;margin:20px 0;background:#fffaf0}
.guest-ticket span{font:600 22px 'Cormorant Garamond',Georgia,serif;display:block}
.guest-ticket strong{font:12px 'Hanken Grotesk',Arial,sans-serif;color:#6d5c3e;display:block;margin-top:6px}
.invite-section.rsvp-section{background:#f4ede1;padding:25px 18px;margin:12px -7px 0;border:1px solid #d8c8ab;border-radius:8px}
.invite-farewell{padding:35px 4px 10px;text-align:center}
.invite-farewell .wedding-icon{width:29px;height:29px;margin-bottom:15px}
.invite-farewell h4{font:italic 30px 'Cormorant Garamond',Georgia,serif;margin:8px 0 14px}
.invite-farewell>span{font:12px/1.6 'Hanken Grotesk',Arial,sans-serif;color:#5b6879}
.invite-nav button{min-height:44px}
@keyframes wave-dance{to{transform:scaleY(.35)}}
@keyframes star-light{50%{opacity:.4;transform:scale(.8)}}
@media(max-width:640px){.prototype-notice{padding:17px;gap:12px}.prototype-notice strong{font-size:15px}}
.materials-list{margin:0;padding-left:20px;color:var(--body)}.materials-list li+li{margin-top:9px}
.access-gate{padding:45px 25px;text-align:center;min-height:590px;background:linear-gradient(#fffdf8,#f6f0e5)}.access-gate h4{margin:20px 0}.access-gate>p{font-size:15px}.access-gate .eyebrow{margin:25px auto 12px}.access-gate form{margin-top:25px}.access-gate input{font-size:16px}.access-gate #access-status{font-size:13px;line-height:1.6;margin-top:12px}
/* Menús compactos: el menú del presupuesto y el de la invitación son independientes. */
.nav-toggle{display:grid;place-items:center;width:44px;height:44px;padding:10px;background:transparent;border:1px solid #c7bba7;border-radius:5px;flex-shrink:0;color:#223650}
.hamburger-lines{display:flex;flex-direction:column;gap:5px;width:20px}
.hamburger-lines i{display:block;height:2px;width:100%;background:currentColor;transition:transform .2s,opacity .2s}
.nav-toggle[aria-expanded=true] .hamburger-lines i:first-child{transform:translateY(7px) rotate(45deg)}
.nav-toggle[aria-expanded=true] .hamburger-lines i:nth-child(2){opacity:0}
.nav-toggle[aria-expanded=true] .hamburger-lines i:last-child{transform:translateY(-7px) rotate(-45deg)}
.site-menu-toggle{display:none}
.invite-menu{position:sticky;top:0;z-index:10;margin:0 -23px 27px;background:#fffdf8f5;border-bottom:1px solid #dfd5c6;backdrop-filter:blur(10px)}
.invite-menu-bar{display:flex;align-items:center;justify-content:space-between;padding:7px 16px;gap:16px}
.invite-menu-bar>span{font:600 20px 'Cormorant Garamond',Georgia,serif;color:#263b53}
.invite-menu .nav-toggle{border:0;padding:10px}
.invite-menu .invite-nav{display:none;position:static;flex-direction:column;align-items:stretch;margin:0;padding:6px 12px 12px;border:0;background:transparent;gap:3px}
.invite-menu.is-open .invite-nav{display:flex}
.invite-menu .invite-nav button{text-align:left;border-radius:4px;padding:11px 14px}
@media(max-width:640px){header{position:relative;align-items:center;flex-wrap:wrap;gap:0;row-gap:12px}.site-menu-toggle{display:grid}header>nav#site-menu{display:none;width:100%;flex-basis:100%;flex-direction:column;align-items:stretch;gap:2px;padding:12px 0 0;border-top:1px solid var(--line)}header>nav#site-menu.is-open{display:flex}header>nav#site-menu>a{display:block;padding:12px 8px;min-height:44px}header>nav#site-menu>a:hover{background:#e8ded2}}
@media print{.nav-toggle{display:none!important}}

footer .footer-tagline{display:inline;white-space:normal}footer .footer-tagline em{font-style:italic}@media(max-width:640px){footer .footer-tagline{display:inline}}
