/* Ana & Carol · diseño minimalista floral. */
:root{--terracotta:#594833;--apricot:#8fa27a;--sage:#8fa27a;--accent:#594833;--wine:#3f5d3c;--ink:#3f5d3c;--ivory:#f5f8f2;--soft:#deefea;--muted:#594833;--line:#aab9a0;--serif:'Playfair Display',serif;--body:'Lora',serif;--sans:var(--body);--script:var(--serif);--gutter:clamp(28px,8vw,120px);--space:clamp(75px,8vw,120px)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scrollbar-gutter:stable}body{margin:0;color:var(--wine);background:var(--ivory);font:400 15px/1.9 var(--sans);-webkit-font-smoothing:antialiased}body.envelope-closed{overflow:hidden}body.envelope-closed .invitation{height:100dvh;overflow:hidden}button,input,textarea{font:inherit}button,a,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}svg{display:block}p,h1,h2,h3,figure{margin:0}p+p{margin-top:14px}h1,h2,h3{font:400 38px/1.25 var(--serif)}h3{font-size:29px}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--wine);outline-offset:5px}section[id]{scroll-margin-top:88px}.eyebrow{font:400 9px/1.7 var(--sans);letter-spacing:.25em;text-transform:uppercase}.section-heading{text-align:center;margin-bottom:50px}.section-heading .eyebrow{margin-bottom:15px}.section-heading h2{font:400 clamp(30px,3vw,43px)/1.3 var(--serif);letter-spacing:.045em}.heading-illustration{width:28px;height:34px;object-fit:contain;margin:0 auto 18px;opacity:.75}.paper-grain{position:relative;isolation:isolate}.skip-link{position:fixed;top:-100px;left:20px;z-index:1100;background:var(--ivory);padding:12px}.skip-link:focus{top:12px}.floral-accent{position:absolute;width:135px;height:230px;object-fit:contain;pointer-events:none;z-index:-1;opacity:.42}.section-flower{right:25px;top:18px;rotate:12deg}.history-section .section-flower{left:10px;right:auto;top:auto;bottom:10px;rotate:-20deg}.dress-section .section-flower{right:4%;top:25px}.rsvp-section .section-flower{top:auto;bottom:10px;right:0;rotate:25deg}.paper-button,.mw-btn,.text-link{display:inline-flex;align-items:center;justify-content:center;gap:20px;min-height:45px;padding:11px 20px;border:1px solid var(--line);color:var(--wine);background:transparent;font:500 9px/1.6 var(--sans);letter-spacing:.12em;text-transform:uppercase;transition:border-color .2s,background .2s}.paper-button svg,button svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.1}.paper-button:hover,.mw-btn:hover{border-color:var(--wine);background:#3f5d3c05}.text-link{border:0;border-bottom:1px solid var(--line);padding:5px 0;min-height:36px;text-transform:none;letter-spacing:.06em;font-size:11px}.bold-text{font-weight:600}
/* Entrada: una fotografía y una invitación ligera sobre fondo claro. */
.pre-page{position:fixed;inset:0;z-index:1000;overflow-y:auto;overscroll-behavior:contain;background:var(--ivory);transition:opacity .4s}.pre-page[hidden]{display:none}.minimal-entry{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:1fr auto auto 1fr;grid-template-areas:'photo intro' 'photo date' 'photo message' 'photo enter';column-gap:clamp(55px,8vw,130px);min-height:100svh;width:100%;max-width:1250px;margin:auto;padding:60px var(--gutter);text-align:center;align-items:center}.welcome-intro{grid-area:intro;align-self:end;min-width:0}.welcome-intro .eyebrow{font-size:9px;letter-spacing:.3em}.welcome-names{font:400 clamp(77px,8vw,112px)/1.08 var(--script);letter-spacing:-.025em;white-space:nowrap;margin:17px 0 28px}.welcome-names>span{font:italic 400 .52em var(--serif)}.welcome-cover-photo{grid-area:photo;position:relative;display:block;width:100%;height:min(72svh,720px);min-height:480px}.welcome-cover-photo img{width:100%;height:100%;object-fit:cover;object-position:55% center}.welcome-meta{grid-area:date}.welcome-date{font:400 11px/1.7 var(--sans);letter-spacing:.18em}.welcome-date>span{color:#8fa27a;margin:0 8px}.welcome-message{grid-area:message;max-width:270px;justify-self:center;font:italic 17px/1.8 var(--serif);margin:25px 0 30px}.welcome-enter{grid-area:enter;align-self:start;justify-self:center;display:flex;align-items:center;justify-content:space-between;gap:40px;min-width:215px;min-height:48px;padding:12px 0;border:0;border-bottom:1px solid var(--wine);background:transparent;color:var(--wine);font:500 9px/1.6 var(--sans);letter-spacing:.18em;text-transform:uppercase}.welcome-enter svg{transition:translate .2s}.welcome-enter:hover svg{translate:4px 0}.entry-flower{top:6%;right:2%;width:130px;height:230px;opacity:.5}.is-opening{opacity:0;pointer-events:none}#rotuloapi:empty{display:none}#rotuloapi{font:400 16px/1.6 var(--serif);margin:15px 0 0;overflow-wrap:anywhere}#my_audio{display:none}
/* Navegación. */
.site-header{position:sticky;top:0;z-index:40;background:#f5f8f2f5;border-bottom:1px solid #3f5d3c12}.navigation{min-height:76px;max-width:1500px;margin:auto;padding:0 var(--gutter);display:flex;align-items:center;justify-content:space-between;gap:30px}.brand{width:30px;flex-shrink:0;fill:var(--wine)}.brand svg{width:100%;height:38px}.nav-links{display:flex;align-items:center;gap:clamp(12px,1.5vw,25px)}.nav-links a{font-size:9px;letter-spacing:.1em;text-transform:uppercase;padding:12px 0}.nav-links a:hover{color:#594833}.nav-rsvp{border-bottom:1px solid var(--wine)}.nav-toggle{display:none}
/* Portada interior: fotografía a sección completa. */
.hero{position:relative;isolation:isolate;min-height:650px;height:calc(100svh - 76px);max-height:1000px;color:var(--ivory);display:flex;flex-direction:column;align-items:center;justify-content:flex-end;text-align:center;padding:80px 25px 65px;overflow:hidden}.hero-collage{position:absolute;inset:0;z-index:-2}.hero-main,.hero-main img{width:100%;height:100%}.hero-main img{object-fit:cover;object-position:55% center}.hero-collage:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#36161bb8,#36161b05 85%)}.hero-side{display:none}.hero-heading .eyebrow{margin-bottom:14px}.hero h1{font:400 clamp(85px,9vw,145px)/1.1 var(--script)}.hero h1 span{font:italic 400 .5em var(--serif)}.hero h1:focus{outline:none}.hero-welcome-copy{font:italic 17px/1.8 var(--serif);margin:20px 0 25px;max-width:330px}.hero-date{display:flex;gap:18px;align-items:center;justify-content:center}.hero-date>span{font:400 44px/1 var(--serif)}.hero-date>div{display:flex;flex-direction:column;gap:2px;font-size:9px;letter-spacing:.2em;text-transform:uppercase}.hero-scroll{margin-top:25px;padding:8px;rotate:180deg}.hero-scroll svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1}
/* Historia, fecha y lugares. */
.history-section{padding:var(--space) var(--gutter);max-width:1320px;margin:auto;display:grid;grid-template-columns:1fr .8fr;align-items:center;gap:clamp(60px,9vw,140px)}.history-photo{order:2;min-width:0}.history-photo>img{width:100%;height:490px;object-fit:cover;object-position:50% center}.photo-caption{display:none}.history-note{order:1}.history-note .eyebrow{margin-bottom:23px}.history-note h2{font-size:45px;margin-bottom:30px}.history-note h2 br{display:none}.history-note h2 em{font:400 1.35em var(--script);margin-left:8px}.history-note>p:last-child{font-size:14px;line-height:2.05}.countdown-section{padding:65px 28px;border-top:1px solid #3f5d3c1a;border-bottom:1px solid #3f5d3c1a;background:var(--soft);text-align:center}.countdown-section .section-heading{margin-bottom:35px}.countdown-section h2{font:400 65px/1.2 var(--script)}.countdown{display:flex;justify-content:center;gap:clamp(30px,6vw,90px);margin:auto}.countdown-item{text-align:center}.countdown-number{display:block;font:400 48px/1.2 var(--serif)}.countdown-label{display:block;font-size:8px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-top:12px}.calendar-row{margin-top:35px}.calendar-row>p{font:italic 14px var(--serif);margin-bottom:12px}.calendar-actions{display:flex;justify-content:center;gap:30px}.events-section{padding:var(--space) var(--gutter);max-width:1400px;margin:auto}.events-stack{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:70px}.event-photo img{width:100%;height:320px;object-fit:cover}.event-details{text-align:center;padding:30px 5px 0}.folio{display:none}.event-details h3{font-size:32px;margin-bottom:15px}.event-details .event-date{font:italic 16px/1.6 var(--serif)}.event-details>p{font-size:13px;margin-top:10px}.event-actions{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;margin-top:25px}
/* Itinerario y vestimenta. */
.timeline-section{padding:var(--space) var(--gutter);background:var(--soft)}.timeline-memory{max-width:1120px;margin:0 auto 50px;height:240px;overflow:hidden}.timeline-memory img{width:100%;height:100%;object-fit:cover;object-position:50% 40%}.paper-timeline{list-style:none;padding:0;margin:0 auto;max-width:1150px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:35px}.timeline-item{position:relative;text-align:center;display:flex;flex-direction:column;align-items:center;gap:18px}.step-number{font-size:8px;letter-spacing:.2em;color:var(--muted)}.timeline-illustration{width:65px;height:80px}.timeline-illustration svg{width:100%;height:100%;fill:var(--wine)}.timeline-copy h3{font-size:25px}.timeline-copy .time{font:italic 15px/1.7 var(--serif);margin:15px 0 10px}.timeline-copy>p:last-child{font-size:12px;color:var(--muted)}.dress-section{padding:var(--space) var(--gutter);text-align:center}.dress-heading{margin-bottom:40px}.dress-heading .eyebrow{margin-bottom:12px}.dress-heading h2{font:400 78px/1.1 var(--script)}.dress-script{display:none}.dress-options{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;max-width:750px;margin:auto}.dress-examples{min-width:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.dress-examples summary{display:flex;align-items:center;gap:22px;cursor:pointer;padding:24px 0;list-style:none;text-align:left}.dress-examples summary::-webkit-details-marker{display:none}.dress-examples summary img{width:40px;height:68px;object-fit:contain;opacity:.8}.dress-examples summary>span{font:400 25px var(--serif);flex:1}.dress-examples summary small{display:block;font:400 8px var(--sans);letter-spacing:.12em;margin-top:10px;text-transform:uppercase}.dress-examples summary>svg{width:20px;height:20px;fill:none;stroke:var(--wine);stroke-width:1}.dress-examples[open] summary>svg{rotate:45deg}.pinterest-board{padding-bottom:22px;max-width:100%;overflow:hidden}
/* Hospedaje, álbum y regalos. */
.hotels-section{padding:var(--space) var(--gutter);background:var(--soft)}.hotels-section .section-heading .eyebrow{display:none}.hotel-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px;max-width:1200px;margin:auto}.hotel-paper>img{width:100%;height:235px;object-fit:cover}.hotel-details{padding-top:25px}.hotel-details h3{font-size:27px}.hotel-details p{font-size:12px;line-height:1.9;margin:19px 0}.hotel-details .paper-button{font-size:8px}.gallery-section{padding:var(--space) var(--gutter)}.photo-collection{max-width:1200px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin:auto}.photo-print{position:relative;display:block}.photo-print>img{width:100%;aspect-ratio:.73;object-fit:cover}.photo-open{position:absolute;inset:0;display:grid;place-items:center;opacity:0;transition:opacity .2s;background:#3f5d3c20}.photo-open svg{box-sizing:content-box;width:20px;height:20px;padding:10px;fill:none;stroke:var(--wine);stroke-width:1;background:#f5f8f2e8;border-radius:50%}.photo-print:hover .photo-open,.photo-print:focus-visible .photo-open{opacity:1}.registry-section{padding:65px var(--gutter) var(--space);border-top:1px solid #3f5d3c15}.registry-grid{display:flex;justify-content:center;flex-wrap:wrap;gap:35px;max-width:1100px;margin:auto}.registry-slip{width:155px;padding:20px 10px;text-align:center}.registry-slip img{height:42px;width:100%;object-fit:contain}.registry-slip p{font-size:11px;margin-top:18px;color:var(--muted)}
/* Confirmación: superficie despejada y altura natural del formulario. */
.rsvp-section{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:85px;align-items:start;padding:var(--space) var(--gutter);background:var(--soft)}.rsvp-photo{position:sticky;top:105px}.rsvp-photo img{width:100%;height:560px;object-fit:cover;object-position:45% center}.rsvp-paper{min-width:0;padding:30px 0 0;max-width:520px;width:100%;justify-self:center}#rsvp-frame{display:block;width:100%;height:390px;margin:0;border:0;overflow:hidden;background:transparent}.app-section{padding:50px var(--gutter);border-bottom:1px solid #3f5d3c15}.app-content{max-width:1120px;margin:auto;display:grid;grid-template-columns:230px 1fr;gap:0 45px}.app-heading{display:flex;gap:15px;align-items:center}.app-heading img{width:24px;height:36px;object-fit:contain}.app-heading h2{font-size:25px}.app-copy{font-size:12px;color:var(--muted);line-height:1.9}.app-copy a{text-decoration:underline}.app-content .buttons{grid-column:2;display:flex;gap:30px;flex-wrap:wrap;margin-top:20px}.app-content .mw-btn{padding:5px 0;min-height:35px;border:0;border-bottom:1px solid var(--line);font-size:9px}
.site-footer{padding:60px 25px 90px;text-align:center}.back-to-top{display:flex;align-items:center;gap:10px;margin:0 auto 35px;padding:10px;border:0;background:transparent;font-size:8px;letter-spacing:.15em;text-transform:uppercase}.site-footer>p:first-of-type{font-size:11px;color:var(--muted)}.wedding-hashtag{font:400 52px/1.3 var(--serif);margin-top:20px;letter-spacing:-.03em;overflow-wrap:anywhere}.footer-signature{font:400 55px/1.2 var(--script);margin:25px 0 30px}.mw-brand{display:block;width:36px;margin:auto}.mw-brand img{width:100%;filter:brightness(0);opacity:.55}

/* Controles nativos de música y galería. */
.music-button{position:fixed;bottom:20px;right:20px;z-index:45;display:flex;align-items:center;gap:10px;min-height:44px;padding:11px 16px;border:1px solid #f5f8f28c;border-radius:40px;background:var(--accent);color:var(--ivory);box-shadow:0 4px 16px #3f5d3c22;font-size:9px;letter-spacing:.09em}.music-bars{display:flex;gap:3px;align-items:center;width:21px;height:18px}.music-bars i{display:block;width:2px;height:8px;background:currentColor;animation:music-wave .8s ease-in-out infinite alternate;animation-play-state:paused}.music-bars i:nth-child(2){height:17px;animation-delay:-.2s}.music-bars i:nth-child(3){height:12px;animation-delay:-.4s}.music-bars i:nth-child(4){height:15px;animation-delay:-.6s}.music-button[aria-pressed=true] .music-bars i{animation-play-state:running}@keyframes music-wave{to{transform:scaleY(.3)}}
.photo-dialog{position:fixed;inset:0;margin:0;padding:0;width:100%;height:100%;height:100dvh;max-width:none;max-height:none;border:0;color:var(--ivory);background:#30251cf5;overflow:hidden;overscroll-behavior:none;touch-action:none}.photo-dialog::backdrop{background:#30251cef}.photo-dialog[open]{display:grid;grid-template-rows:1fr 72px}.lightbox-stage{min-height:0;width:100%;display:grid;place-items:center;padding:72px 80px 12px;touch-action:none;user-select:none}.lightbox-image{max-width:100%;max-height:calc(100dvh - 166px);width:auto;height:auto;object-fit:contain;user-select:none;-webkit-user-drag:none}.lightbox-button{width:48px;height:48px;min-width:48px;padding:0;display:grid;place-items:center;background:transparent;border:1px solid #f5f8f24d;color:var(--ivory);border-radius:50%;touch-action:manipulation}.lightbox-button:hover{background:#f5f8f21c}.lightbox-button svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.5;pointer-events:none;margin:0;padding:0}.lightbox-close{position:absolute;z-index:2;top:18px;right:24px}.lightbox-controls{display:flex;align-items:center;justify-content:center;gap:28px;padding-bottom:12px}.lightbox-count{font-size:12px;letter-spacing:.15em;min-width:55px;text-align:center}.gallery-locked,.gallery-locked body{overflow:hidden!important;overscroll-behavior:none!important}.gallery-locked{scroll-behavior:auto}.reveal{opacity:1}.js-reveal .reveal{opacity:0;translate:0 20px;transition:opacity .7s,translate .7s}.js-reveal .reveal.is-visible{opacity:1;translate:0 0}
.music-button{background:var(--wine);color:var(--ivory);box-shadow:none;border-color:#f5f8f266;font-size:8px}.photo-dialog{background:#30251c}.photo-dialog::backdrop{background:#30251c}.lightbox-button{border-color:#f5f8f255}
@media(max-width:1100px){.navigation{padding:0 30px}.nav-links{gap:13px}.nav-links a{font-size:8px}.events-stack{gap:40px}.hotel-grid{gap:28px}.rsvp-section{gap:45px}.minimal-entry{padding-left:6vw;padding-right:6vw;column-gap:55px}.welcome-names{font-size:90px}.history-section{gap:65px}.history-note h2{font-size:38px}.event-photo img{height:260px}}
@media(max-width:800px){:root{--gutter:32px;--space:75px}.navigation{min-height:66px}.brand{width:28px}.nav-toggle{display:flex;flex-direction:column;justify-content:center;gap:7px;width:44px;height:44px;padding:10px;border:0;background:none}.nav-toggle span{width:22px;height:1px;background:var(--wine);transition:transform .2s}.nav-toggle[aria-expanded=true] span:first-child{transform:translateY(4px) rotate(45deg)}.nav-toggle[aria-expanded=true] span:last-child{transform:translateY(-4px) rotate(-45deg)}.nav-links{display:none;position:absolute;top:100%;left:0;right:0;padding:15px 30px 25px;background:var(--ivory);border-bottom:1px solid var(--line)}.nav-links.is-open{display:grid;gap:0}.nav-links a{font-size:10px;padding:13px 0}.nav-rsvp{border:0}.minimal-entry{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto auto auto auto;grid-template-areas:'intro' 'photo' 'date' 'message' 'enter';max-width:500px;min-height:100svh;align-content:center;padding:40px 45px 45px;gap:0}.welcome-intro{align-self:auto}.welcome-intro .eyebrow{font-size:8px}.welcome-names{font-size:80px;margin:9px 0 25px}.welcome-cover-photo{height:clamp(230px,35svh,360px);min-height:0;margin-bottom:25px}.welcome-cover-photo img{object-position:55% 35%}.welcome-date{font-size:9px;letter-spacing:.13em}.welcome-date>span{margin:0 5px}.welcome-message{font-size:15px;max-width:260px;margin:20px 0 23px}.welcome-enter{align-self:auto;min-height:46px;min-width:210px}.entry-flower{right:-19px;top:15px;width:100px;height:190px;opacity:.45}.hero{height:calc(100svh - 66px);max-height:900px;min-height:610px}.hero h1{font-size:110px}.history-section{grid-template-columns:1fr 1fr;gap:40px}.history-photo>img{height:460px}.history-note>p:last-child{font-size:13px}.history-note h2{font-size:32px}.history-note h2 br{display:block}.history-note h2 em{margin-left:0}.paper-timeline{grid-template-columns:repeat(2,minmax(0,1fr));gap:45px}.hotel-grid{grid-template-columns:1fr;max-width:600px;gap:40px}.hotel-paper{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:30px}.hotel-paper>img{height:100%;min-height:270px}.hotel-details{padding:0}.photo-collection{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.photo-open{opacity:1;background:transparent}.photo-open svg{width:17px;height:17px;padding:9px}.rsvp-section{grid-template-columns:1fr;gap:40px}.rsvp-photo{position:static;max-width:520px;width:100%;margin:auto}.rsvp-photo img{height:340px;object-position:45% 38%}.rsvp-paper{padding:0;max-width:520px}.app-content{grid-template-columns:1fr;gap:20px}.app-content .buttons{grid-column:1;margin-top:0}.section-flower{width:95px;height:180px;right:3px;top:5px;opacity:.33}.history-section .section-flower{width:80px;left:0;bottom:5px}.lightbox-stage{padding:76px 24px 12px}}
@media(max-width:540px){:root{--gutter:28px;--space:65px}.minimal-entry{padding:35px 38px 40px}.welcome-names{font-size:clamp(62px,19vw,80px)}.welcome-intro .eyebrow{letter-spacing:.25em}.welcome-message{font-size:14px}.hero{padding:70px 25px 45px}.hero h1{font-size:89px}.hero-welcome-copy{font-size:15px;max-width:270px;margin:17px 0 22px}.hero-date>span{font-size:38px}.hero-date>div{font-size:8px}.hero-scroll{margin-top:20px}.hero-main img{object-position:57% center}.history-section{display:flex;flex-direction:column;gap:35px;padding-top:65px}.history-photo{order:1;width:100%}.history-photo>img{height:285px;object-position:50% 40%}.history-note{order:2;text-align:center}.history-note .eyebrow{font-size:8px;margin-bottom:15px}.history-note h2{font-size:34px;margin-bottom:25px}.history-note h2 br{display:none}.history-note h2 em{margin-left:8px}.history-note>p:last-child{font-size:13px;line-height:2}.section-heading{margin-bottom:35px}.section-heading h2{font-size:29px;letter-spacing:.035em}.section-heading .eyebrow{font-size:8px}.heading-illustration{width:25px;height:30px;margin-bottom:15px}.countdown-section{padding:45px 25px}.countdown-section h2{font-size:58px}.countdown{gap:26px}.countdown-number{font-size:36px}.countdown-label{font-size:7px;letter-spacing:.12em}.calendar-row{margin-top:28px}.calendar-actions{gap:25px}.text-link{font-size:9px}.events-stack{grid-template-columns:1fr;gap:50px}.event-photo img{height:230px}.event-details{padding:25px 0 0}.event-details h3{font-size:30px}.event-details .event-date{font-size:15px}.event-details>p{font-size:12px}.event-actions{gap:10px;margin-top:22px}.event-actions .paper-button{font-size:8px;padding:11px 12px;gap:9px}.event-actions svg{width:15px;height:15px}.timeline-memory{height:155px;margin-bottom:35px}.paper-timeline{display:block}.timeline-item{display:grid;grid-template-columns:52px minmax(0,1fr);gap:25px;align-items:center;text-align:left;min-height:145px;padding:22px 0;border-bottom:1px solid #3f5d3c1a}.timeline-item:last-child{border:0}.step-number{display:none}.timeline-illustration{width:52px;height:72px}.timeline-copy h3{font-size:24px}.timeline-copy .time{font-size:14px;margin:9px 0}.timeline-copy>p:last-child{font-size:11px}.dress-heading h2{font-size:72px}.dress-options{grid-template-columns:1fr;gap:24px}.dress-examples summary{padding:19px 0}.dress-examples summary img{height:60px;width:35px}.dress-examples summary>span{font-size:25px}.hotel-grid{gap:42px}.hotel-paper{display:block}.hotel-paper>img{height:215px;min-height:0}.hotel-details{padding-top:22px}.hotel-details h3{font-size:27px}.hotel-details p{font-size:12px}.photo-collection{gap:13px}.photo-print>img{aspect-ratio:.75}.registry-section{padding-top:55px}.registry-grid{gap:15px 22px}.registry-slip{width:calc(50% - 11px);padding:15px 10px}.registry-slip img{height:36px}.registry-slip p{font-size:10px;margin-top:14px}.rsvp-section{gap:35px}.rsvp-photo img{height:260px;object-position:45% 38%}.app-section{padding:38px var(--gutter)}.app-heading h2{font-size:24px}.app-copy{font-size:11px}.site-footer{padding:45px 25px 90px}.wedding-hashtag{font-size:42px}.footer-signature{font-size:49px}.site-footer>p:first-of-type{font-size:10px}.music-button{right:13px;bottom:14px;padding:10px 13px;gap:9px;min-height:42px}.lightbox-stage{padding:76px 16px 10px}.lightbox-close{top:14px;right:16px}.lightbox-controls{gap:30px}}
@media(max-width:360px){.minimal-entry{padding-left:28px;padding-right:28px}.welcome-date{font-size:8px}.welcome-message{font-size:13px}.countdown{gap:22px}.countdown-number{font-size:32px}.hero h1{font-size:76px}}
@media(max-height:650px) and (max-width:800px){.minimal-entry{padding-top:25px;padding-bottom:28px}.welcome-names{font-size:60px;margin:8px 0 18px}.welcome-cover-photo{height:30svh;min-height:160px;margin-bottom:20px}.welcome-message{font-size:13px;margin:15px 0 17px}.entry-flower{height:145px;width:80px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.js-reveal .reveal{opacity:1;translate:none}}
/* Las flores pueden asomarse a los bordes sin ensanchar la página. */
.paper-grain,.minimal-entry{overflow:clip}

.timeline-memory img{object-position:50% 25%}
.floral-accent{opacity:.55}.entry-flower{opacity:.6}
@media(max-width:800px){.section-flower{opacity:.42}.entry-flower{opacity:.55}}

/* Paleta cálida: vino para lectura, marfil para fondos y acentos terracota. */
.eyebrow,.welcome-intro .eyebrow{color:#a34c31}.hero .eyebrow{color:var(--ivory)}
.welcome-enter{border-bottom-color:var(--terracotta)}.welcome-enter svg,.hero-date>span{color:var(--apricot)}.welcome-enter svg{color:var(--terracotta)}
.paper-button:hover,.mw-btn:hover{background:#8fa27a1a;border-color:var(--terracotta)}
.countdown-label{color:#65674f}.countdown-section{background:#f6e3cd}.music-button{background:var(--terracotta);color:var(--ivory)}
.floral-accent,.heading-illustration,.dress-examples summary img,.app-heading img{filter:sepia(1) saturate(.85) hue-rotate(322deg)}
.site-footer{background:var(--wine);color:var(--ivory)}.site-footer>p:first-of-type{color:#e1cbb4}.site-footer .back-to-top{color:var(--ivory)}.site-footer .mw-brand img{filter:none;opacity:.8}

/* Entrada dividida: fotografía y sobre a sangre con plecas curvas. */
.pre-page{background:var(--ivory)}.split-entry{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);width:100%;max-width:none;min-height:100svh;margin:0;padding:0;gap:0;overflow:clip}.split-entry-photo{display:block;min-width:0;height:100svh;min-height:600px}.split-entry-photo img{width:100%;height:100%;object-fit:cover;object-position:55% center}.envelope-panel{display:block;position:relative;isolation:isolate;min-width:0;width:100%;height:100svh;min-height:600px;margin:0;padding:0;border:0;border-radius:0;text-align:center;color:var(--wine);background:#f6ecda;overflow:hidden}.curved-envelope{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.envelope-panel .welcome-intro{display:block;position:absolute;top:17%;left:7%;right:7%;margin:0;min-width:0;pointer-events:none}.envelope-panel .eyebrow{display:block;font-size:10px;letter-spacing:.3em;color:#8c4c38}.envelope-panel .welcome-names{display:block;white-space:nowrap;font:400 clamp(72px,7.6vw,125px)/1.12 var(--script);letter-spacing:-.025em;margin:20px 0 0}.envelope-panel .welcome-names>span{font:italic 400 .52em var(--serif)}.envelope-panel .welcome-meta{display:block;position:absolute;top:35%;left:8%;right:8%;margin:0;pointer-events:none}.envelope-panel .welcome-date{display:block;font:400 10px/1.8 var(--sans);letter-spacing:.19em}.envelope-panel .welcome-date>span{margin:0 7px;color:#9b8a72}.envelope-panel #rotuloapi{display:block;font-size:16px;line-height:1.5;margin-top:12px;overflow-wrap:anywhere}.envelope-panel #rotuloapi:empty{display:none}.curved-seal{display:block;position:absolute;top:54.5%;left:50%;translate:-50% -50%;width:100px;height:100px;pointer-events:none;transition:opacity .25s,scale .25s}.curved-seal img{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 4px 5px #65422d26)}.envelope-panel .welcome-message{display:block;position:absolute;top:69%;left:18%;right:18%;max-width:none;margin:0;font:italic 19px/1.8 var(--serif);pointer-events:none}.envelope-panel .welcome-enter{display:flex;position:absolute;top:82%;left:50%;translate:-50% 0;min-width:220px;width:max-content;margin:0;padding:12px 0;min-height:46px;color:var(--wine);font-size:9px;border-bottom-color:#aa7057;pointer-events:none}.envelope-panel .welcome-enter svg{color:var(--terracotta)}.envelope-panel:hover .curved-seal{scale:1.035}.envelope-panel:focus-visible{outline:2px solid var(--wine);outline-offset:-12px}.curved-lid,.curved-bottom{transition:transform .55s,opacity .45s}.is-opening .curved-lid{transform:translateY(-55px);opacity:.45}.is-opening .curved-bottom{transform:translateY(30px)}.is-opening .curved-seal{opacity:0;scale:.85}
@media(max-width:1100px) and (min-width:801px){.envelope-panel .welcome-names{font-size:85px}.envelope-panel .welcome-message{font-size:16px;left:12%;right:12%}.curved-seal{width:85px;height:85px}}
@media(max-width:800px){.split-entry{grid-template-columns:minmax(0,1fr);grid-template-rows:34svh minmax(420px,66svh);min-height:100svh}.split-entry-photo{height:100%;min-height:0}.split-entry-photo img{object-position:55% 35%}.envelope-panel{height:100%;min-height:420px}.envelope-panel .welcome-intro{top:13%;left:8%;right:8%}.envelope-panel .eyebrow{font-size:8px;letter-spacing:.25em}.envelope-panel .welcome-names{font-size:clamp(60px,15vw,85px);margin-top:12px}.envelope-panel .welcome-meta{top:35%;left:6%;right:6%}.envelope-panel .welcome-date{font-size:8px;letter-spacing:.13em}.envelope-panel .welcome-date>span{margin:0 5px}.envelope-panel #rotuloapi{font-size:13px;margin-top:7px}.curved-seal{width:74px;height:74px}.envelope-panel .welcome-message{top:70%;font-size:14px;line-height:1.7;left:17%;right:17%;margin:0}.envelope-panel .welcome-enter{top:83%;font-size:8px;min-width:190px;padding:8px 0;min-height:42px;gap:35px}.envelope-panel .welcome-enter svg{width:17px;height:17px}}
@media(max-width:360px){.envelope-panel .welcome-names{font-size:57px}.curved-seal{width:66px;height:66px}.envelope-panel .welcome-message{font-size:13px}}

/* Recorte de presentación: excluye el margen blanco incluido en la foto original. */
.split-entry-photo{overflow:hidden}.split-entry-photo>svg{display:block;width:100%;height:100%;overflow:hidden}

/* Variante de entrada: hoja marfil enmarcada en vino, con sello superior. */
.stationery-panel{background:#ebdac2 url('../images/paper-materials/warm-mottled.jpg') center/cover;background-blend-mode:normal;--paper-inset:40px}.letter-sheet{display:block;position:absolute;inset:var(--paper-inset);background:#f5f8f2;box-shadow:0 7px 25px #210b1333;pointer-events:none}.letter-sheet::after{content:'';position:absolute;inset:0;background:url('../images/mw-env-middle-layer.png') center/cover;opacity:.25}.stationery-panel .curved-seal{top:var(--paper-inset);width:91px;height:91px}.stationery-panel .welcome-intro{top:24%;left:10%;right:10%}.stationery-panel .welcome-names{font-size:clamp(72px,7.2vw,116px)}.stationery-panel .welcome-meta{top:43%;left:12%;right:12%}.stationery-panel .welcome-message{top:59%;left:19%;right:19%;font-size:18px}.stationery-panel .welcome-enter{top:77%;min-width:210px}.stationery-panel:focus-visible{outline:0}.is-opening .stationery-panel .letter-sheet{transition:translate .45s;translate:0 -12px}
@media(max-width:1100px) and (min-width:801px){.stationery-panel{--paper-inset:30px}.stationery-panel .welcome-names{font-size:80px}.stationery-panel .welcome-message{font-size:16px;left:17%;right:17%}}
@media(max-width:800px){.stationery-panel{--paper-inset:23px}.stationery-panel .curved-seal{width:69px;height:69px}.stationery-panel .welcome-intro{top:23%;left:10%;right:10%}.stationery-panel .welcome-names{font-size:clamp(56px,15vw,78px);margin-top:14px}.stationery-panel .welcome-meta{top:44%;left:11%;right:11%}.stationery-panel .welcome-message{top:59%;font-size:14px;left:18%;right:18%}.stationery-panel .welcome-enter{top:79%;min-width:180px}.stationery-panel:focus-visible{outline-offset:-7px}}
@media(max-width:360px){.stationery-panel{--paper-inset:19px}.stationery-panel .welcome-names{font-size:54px}.stationery-panel .welcome-date{font-size:7px}.stationery-panel .welcome-message{font-size:13px}.stationery-panel .curved-seal{width:63px;height:63px}}
.stationery-panel .curved-seal{top:calc(var(--paper-inset) + 14px)}

/* Foco indicado en la acción, sin contorno blanco alrededor de la hoja. */
.stationery-panel:focus-visible{outline:none}.stationery-panel:focus-visible .welcome-enter{border-bottom-width:2px}

/* Entrada solo de papelería; asignación tipográfica original. */
.paper-only-entry{display:block;min-height:100svh;background:#ebdac2 url('../images/paper-materials/warm-mottled.jpg') center/cover}.paper-only-entry .stationery-panel{display:block;width:100%;max-width:760px;min-height:650px;height:100svh;margin:0 auto;background:transparent;--paper-inset:40px}.paper-only-entry .letter-sheet{box-shadow:0 5px 24px #3f5d3c12}.stationery-panel .welcome-names{font:400 clamp(34px,4vw,52px)/1.35 var(--serif);text-transform:uppercase;letter-spacing:.015em;white-space:normal;margin-top:25px}.stationery-panel .welcome-names>span{font:inherit;color:inherit}.stationery-panel .welcome-message{font:400 16px/2 var(--sans)}
.hero h1{font:400 clamp(42px,5.2vw,76px)/1.25 var(--serif);text-transform:uppercase;letter-spacing:.025em;max-width:95%}.hero h1 span{font:inherit}.hero-welcome-copy{font:400 16px/2 var(--sans)}.history-note h2 em{font:inherit;font-style:normal;margin-left:8px}.countdown-section h2{font:400 34px/1.3 var(--serif)}.dress-heading h2{font:400 38px/1.3 var(--serif)}.footer-signature{font:400 29px/1.5 var(--serif);text-transform:uppercase;letter-spacing:.03em}
@media(max-width:800px){.paper-only-entry{display:block}.paper-only-entry .stationery-panel{min-height:600px;height:100svh;--paper-inset:30px}.stationery-panel .welcome-names{font-size:36px;margin-top:22px}.stationery-panel .welcome-intro{top:24%}.stationery-panel .welcome-meta{top:43%}.stationery-panel .welcome-message{font-size:14px;top:58%}.stationery-panel .welcome-enter{top:77%}.hero h1{font-size:48px}.hero-welcome-copy{font-size:15px}.countdown-section h2{font-size:31px}.dress-heading h2{font-size:35px}.footer-signature{font-size:27px}}
@media(max-width:540px){.paper-only-entry .stationery-panel{--paper-inset:23px;min-height:570px}.stationery-panel .welcome-names{font-size:30px;letter-spacing:0}.stationery-panel .welcome-message{left:16%;right:16%;font-size:14px}.hero h1{font-size:40px}.hero-welcome-copy{font-size:14px}.countdown-section h2{font-size:29px}.dress-heading h2{font-size:33px}.footer-signature{font-size:25px}}
@media(max-width:360px){.stationery-panel .welcome-names{font-size:26px}.paper-only-entry .stationery-panel{--paper-inset:19px}.stationery-panel .welcome-message{font-size:13px}.hero h1{font-size:34px}}
/* Reparto de color: marfil luminoso, vino y terracota; salvia en las acciones. */
:root{--ivory:#f5f8f2;--soft:#f2f3ed;--muted:#74665e;--line:#c8cbbd;--sage-ink:#3f5d3c}
body,.pre-page{background-color:var(--ivory)}.site-header,.nav-links{background:#f5f8f2f7}
.paper-only-entry{background-image:linear-gradient(#f5f8f24d,#f5f8f24d),url('../images/paper-materials/warm-mottled.jpg')}.paper-only-entry .letter-sheet{background:var(--ivory)}.paper-only-entry .letter-sheet::after{opacity:.12}.stationery-panel .welcome-names>span{color:var(--terracotta)}.stationery-panel .welcome-date{color:#a34c31}
.stationery-panel .welcome-enter{background:var(--sage-ink);border:1px solid var(--sage-ink);color:var(--ivory);padding:13px 20px;min-height:48px;min-width:220px;transition:background .2s}.stationery-panel .welcome-enter svg{color:var(--ivory)}.stationery-panel:hover .welcome-enter{background:#324b30}.stationery-panel:focus-visible .welcome-enter{outline:2px solid var(--sage-ink);outline-offset:5px;border-bottom-width:1px}
.paper-button,.mw-btn{border-color:#8fa27a;color:#586449;background:transparent}.paper-button:hover,.mw-btn:hover{background:var(--sage-ink);border-color:var(--sage-ink);color:var(--ivory)}.text-link{color:#586449;border-color:#8fa27a}.nav-rsvp{border-bottom-color:var(--sage-ink)}
.timeline-section{background:#fbf4eb}.hotels-section,.rsvp-section{background:#f2f3ed}.countdown-section{background:var(--wine);color:var(--ivory);border-color:transparent}.countdown-section .eyebrow{color:var(--apricot)}.countdown-section .countdown-label{color:#dedcc9}.countdown-section .text-link{color:var(--ivory);border-color:#b9bea7}.countdown-section .calendar-row>p{color:#ede2d3}.music-button{background:var(--sage-ink);color:var(--ivory)}.app-content .mw-btn{color:#586449}.app-content .mw-btn:hover{color:var(--wine);background:none}.dress-examples{border-color:#aeb5a0}
@media(max-width:800px){.stationery-panel .welcome-enter{min-width:205px;padding:12px 18px}}

/* Sobre completo: plecas curvas y grabado vino tono sobre tono. */
.full-envelope-entry{display:block;width:100%;max-width:none;min-height:100svh;margin:0;padding:0;background:var(--wine)}.default-envelope{display:block;position:relative;width:100%;height:100svh;min-height:600px;max-width:none;margin:0;padding:0;border:0;background:var(--wine);color:var(--ivory);overflow:hidden}.full-envelope-art{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.default-envelope .welcome-intro{display:block;position:absolute;top:21%;left:14%;right:14%;margin:0;pointer-events:none}.default-envelope .eyebrow{display:block;color:#efc6aa;font-size:10px;letter-spacing:.3em}.default-envelope .welcome-names{display:block;font:400 clamp(34px,4.2vw,62px)/1.35 var(--serif);text-transform:uppercase;letter-spacing:.035em;white-space:normal;margin:24px 0 0;color:var(--ivory)}.default-envelope .welcome-names>span{font:inherit;color:#eabf9d}.default-envelope .welcome-meta{position:absolute;top:36%;left:14%;right:14%;margin:0;color:var(--ivory);pointer-events:none}.default-envelope .welcome-date{font-size:10px;letter-spacing:.2em;color:#deefea}.default-envelope .welcome-date>span{color:#c6ab92}.default-envelope #rotuloapi{font:400 17px/1.6 var(--serif);color:var(--ivory);margin-top:15px}.default-envelope .curved-seal{top:51%;left:50%;width:108px;height:108px}.default-envelope .welcome-message{position:absolute;top:67%;left:25%;right:25%;max-width:none;margin:0;font:400 16px/2 var(--sans);color:var(--ivory);pointer-events:none}.default-envelope .welcome-enter{position:absolute;top:80%;left:50%;translate:-50% 0;display:flex;justify-content:space-between;align-items:center;gap:35px;min-width:225px;min-height:48px;padding:13px 20px;margin:0;background:var(--sage-ink);color:var(--ivory);border:1px solid #b7bea680;font:500 9px/1.6 var(--sans);letter-spacing:.18em;text-transform:uppercase;pointer-events:none}.default-envelope .welcome-enter svg{color:var(--ivory)}.default-envelope:hover .welcome-enter{background:#324b30}.default-envelope:focus-visible{outline:0}.default-envelope:focus-visible .welcome-enter{outline:2px solid var(--ivory);outline-offset:5px}.full-flap-top,.full-flap-bottom{transition:transform .55s,opacity .45s}.is-opening .full-flap-top{transform:translateY(-80px);opacity:.5}.is-opening .full-flap-bottom{transform:translateY(60px)}
@media(max-width:800px){.default-envelope{min-height:570px}.default-envelope .welcome-intro{top:22%;left:11%;right:11%}.default-envelope .eyebrow{font-size:8px;letter-spacing:.26em}.default-envelope .welcome-names{font-size:clamp(28px,7.8vw,43px);letter-spacing:.01em;margin-top:20px}.default-envelope .welcome-meta{top:37%;left:13%;right:13%}.default-envelope .welcome-date{font-size:8px;letter-spacing:.13em}.default-envelope .curved-seal{width:83px;height:83px}.default-envelope .welcome-message{top:67%;left:18%;right:18%;font-size:14px}.default-envelope .welcome-enter{top:81%;min-width:210px;font-size:8px;padding:12px 18px}.default-envelope #rotuloapi{font-size:14px;margin-top:10px}}
@media(max-width:360px){.default-envelope .welcome-names{font-size:26px}.default-envelope .welcome-date{font-size:7px}.default-envelope .welcome-message{font-size:13px}.default-envelope .curved-seal{width:73px;height:73px}}

/* Propuesta B: fotografía velada, nombres y sobre salvia sobre papel claro. */
.pre-page:has(.sage-cover){background:#f5f8f2}.sage-cover{position:relative;isolation:isolate;display:flex;flex-direction:column;align-items:center;width:100%;max-width:520px;min-height:100svh;margin:auto;padding:0 40px 40px;text-align:center;background:transparent;overflow:clip}.sage-cover::before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(#f5f8f2e8,#f5f8f2e8),url('../images/mw-env-middle-layer.png') center/cover;pointer-events:none}.sage-photo{width:calc(100% + 80px);height:clamp(235px,33svh,360px);flex-shrink:0;margin:0 -40px -30px;mask-image:linear-gradient(#000 15%,#0009 55%,transparent 100%);opacity:.82;filter:saturate(.6)}.sage-photo svg{display:block;width:100%;height:100%;overflow:hidden}.sage-heading{position:relative;z-index:1;width:100%;margin:0}.sage-heading .eyebrow{color:#8c7664;font-size:9px;letter-spacing:.23em}.sage-names{font:400 clamp(28px,3.4vw,39px)/1.3 var(--serif);text-transform:uppercase;letter-spacing:.015em;margin:12px 0 15px;white-space:nowrap;color:var(--wine)}.sage-names>span{font:inherit;color:var(--wine)}.sage-date{font:400 9px/1.7 var(--sans);letter-spacing:.18em;color:#7e6b5c;margin:0}.sage-date>span{margin:0 7px}.sage-heading #rotuloapi{font:400 15px/1.5 var(--serif);margin:12px 0 0}.sage-open{display:block;width:100%;max-width:400px;margin:30px 0 0;padding:0;background:transparent;border:0;color:var(--wine);text-align:center}.sage-envelope-stage{display:block;position:relative;width:100%;aspect-ratio:600/380;box-shadow:0 11px 18px -10px #424c3566}.sage-envelope-art{display:block;width:100%;height:100%}.sage-seal{position:absolute;top:61%;left:50%;translate:-50% -50%;width:75px;height:75px;pointer-events:none;transition:opacity .2s,scale .2s}.sage-seal img{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 2px 3px #26331b33)}.sage-enter-label{display:flex;flex-direction:column;align-items:center;gap:12px;padding:28px 10px 10px;min-height:70px;font:400 9px/1.5 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--wine)}.sage-enter-label svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1}.sage-open:focus-visible{outline:0}.sage-open:focus-visible .sage-enter-label{font-weight:700;text-decoration:underline;text-underline-offset:5px}.sage-open:hover .sage-enter-label svg{translate:0 3px}.sage-welcome-message{max-width:280px;font:400 12px/1.8 var(--sans);color:#796f61;margin:17px 0 0}.sage-flap{transition:transform .5s,opacity .45s;transform-origin:50% 0}.is-opening .sage-flap{transform:translateY(-25px);opacity:.65}.is-opening .sage-seal{opacity:0;scale:.85}
@media(min-width:801px){.sage-cover{padding-top:15px;justify-content:center}.sage-photo{margin-top:-15px}.sage-names{font-size:39px}}
@media(max-width:540px){.sage-cover{padding:0 28px 30px}.sage-photo{width:calc(100% + 56px);height:31svh;min-height:220px;max-height:290px;margin:0 -28px -20px}.sage-heading .eyebrow{font-size:8px}.sage-names{font-size:clamp(26px,8.1vw,34px);margin:11px 0 13px}.sage-date{font-size:8px;letter-spacing:.14em}.sage-date>span{margin:0 5px}.sage-open{margin-top:27px;max-width:360px}.sage-seal{width:65px;height:65px}.sage-enter-label{font-size:8px;gap:10px;padding-top:25px}.sage-welcome-message{font-size:11px;max-width:250px;margin-top:12px}}
@media(max-height:650px) and (max-width:800px){.sage-cover{padding-bottom:22px}.sage-photo{height:29svh;min-height:155px;margin-bottom:-20px}.sage-names{font-size:27px;margin:8px 0 10px}.sage-open{max-width:290px;margin-top:21px}.sage-seal{width:56px;height:56px}.sage-enter-label{padding-top:18px;min-height:60px}.sage-welcome-message{font-size:10px;margin-top:8px}}

/* Textos en flujo: fecha y nombres nunca dependen de posiciones superpuestas. */
.default-envelope .welcome-header{display:flex;flex-direction:column;align-items:center;gap:24px;position:absolute;top:17%;left:12%;right:12%;pointer-events:none}.default-envelope .welcome-intro,.default-envelope .welcome-meta{position:static;display:block;width:100%;margin:0;inset:auto}.default-envelope .welcome-names{font-size:clamp(34px,4vw,58px);line-height:1.2;margin:18px 0 0;letter-spacing:.025em}.default-envelope .welcome-date{display:block;line-height:1.8}.default-envelope .welcome-footer{display:flex;flex-direction:column;align-items:center;gap:27px;position:absolute;top:66%;left:15%;right:15%;pointer-events:none}.default-envelope .welcome-message{position:static;display:block;inset:auto;width:100%;max-width:540px;margin:0;line-height:1.85}.default-envelope .welcome-enter{position:static;translate:none;display:flex;min-width:220px;margin:0;padding:13px 21px;background:#f5f8f20d;color:#f5f8f2;border:1px solid #deefea99;min-height:48px}.default-envelope .welcome-enter svg{color:#deefea}.default-envelope:hover .welcome-enter{background:#f5f8f21a;border-color:#f5f8f2}.default-envelope:focus-visible .welcome-enter{outline:none;border-color:#f5f8f2;text-decoration:underline;text-underline-offset:5px}
@media(max-width:800px){.default-envelope .welcome-header{top:21%;left:10%;right:10%;gap:22px}.default-envelope .welcome-names{font-size:clamp(28px,7.8vw,43px);margin-top:18px;line-height:1.25}.default-envelope .welcome-footer{left:17%;right:17%;top:67%;gap:25px}.default-envelope .welcome-message{font-size:14px}.default-envelope .welcome-enter{min-width:205px;min-height:46px;padding:12px 18px}}
@media(max-width:360px){.default-envelope .welcome-names{font-size:26px}.default-envelope .welcome-header{gap:19px}.default-envelope .welcome-footer{gap:21px}.default-envelope .welcome-message{font-size:13px}}

.default-envelope .welcome-footer .welcome-enter{align-self:center;justify-self:center}

/* Dos familias: Playfair para títulos y Lora para lectura y controles. */
body{font-family:var(--body);font-size:16px;line-height:1.95}.history-note>p:last-child{font-size:15px;line-height:2}.event-details>p{font-size:14px;line-height:1.9}.hotel-details p{font-size:13px;line-height:1.95}.app-copy{font-size:13px;line-height:1.95}.nav-links a{font-size:10px}.default-envelope .welcome-message{font-family:var(--body);font-size:16px;line-height:1.9}
.default-envelope .welcome-footer .welcome-enter{width:280px;min-width:0;max-width:calc(100vw - 64px);min-height:56px;gap:30px;padding:16px 24px;background:#deefea;border:1px solid #8fa27a;color:#3f5d3c;font:500 12px/1.5 var(--body);letter-spacing:.11em;box-shadow:0 5px 18px #230d1026;transition:background .2s,box-shadow .2s}.default-envelope .welcome-enter svg{width:21px;height:21px;color:#3f5d3c}.default-envelope:hover .welcome-footer .welcome-enter{background:#fff6e6;border-color:#e5cba5;box-shadow:0 7px 22px #230d1033}.default-envelope:focus-visible .welcome-footer .welcome-enter{outline:none;text-decoration:underline;text-underline-offset:5px;border-color:#fff7ec}
@media(max-width:800px){.nav-links a{font-size:11px}.default-envelope .welcome-message{font-size:14px}.default-envelope .welcome-footer .welcome-enter{width:260px;min-height:53px;padding:15px 22px;font-size:11px}.history-note>p:last-child{font-size:14px;line-height:1.95}.event-details>p{font-size:13px}.hotel-details p{font-size:13px}.app-copy{font-size:12px}}
@media(max-width:360px){.default-envelope .welcome-message{font-size:13px}.default-envelope .welcome-footer .welcome-enter{font-size:10px;min-height:52px;padding:14px 20px}}

/* Acción centrada de forma independiente de la flecha, sin subrayados. */
.default-envelope .welcome-footer .welcome-enter{display:grid;grid-template-columns:21px minmax(0,1fr) 21px;column-gap:10px;align-items:center;justify-content:center;text-align:center;text-decoration:none}.default-envelope .welcome-enter>span{grid-column:2;grid-row:1;display:block;text-align:center;text-decoration:none}.default-envelope .welcome-enter>svg{grid-column:3;grid-row:1;justify-self:end;align-self:center}.default-envelope:hover .welcome-footer .welcome-enter,.default-envelope:focus-visible .welcome-footer .welcome-enter,.default-envelope:focus-visible .welcome-enter>span{text-decoration:none}.default-envelope:focus-visible .welcome-footer .welcome-enter{outline:none;border-color:#8fa27a;box-shadow:0 0 0 2px #deefea40,0 5px 18px #230d1026}

/* Sello de cera marfil: mayor presencia, con el relieve original. */
.default-envelope .curved-seal{width:128px;height:128px}
@media(max-width:800px){.default-envelope .curved-seal{width:98px;height:98px}}
@media(max-width:360px){.default-envelope .curved-seal{width:86px;height:86px}}

/* Navegación uniforme y más legible; cierre con el papel de las solapas. */
.site-header,.nav-links{background:#f5f8f2}
.nav-links a{font-size:12px;letter-spacing:.08em;background:transparent}
.navigation{min-height:82px}
.site-footer{background:#3f5d3c url('../images/paper-materials/wine-embossed.jpg') center/480px 480px repeat;color:#f5f8f2}
@media(min-width:801px) and (max-width:1100px){.navigation{gap:20px;padding-inline:24px}.nav-links{gap:12px}.nav-links a{font-size:10px}}
@media(max-width:800px){.navigation{min-height:72px}.nav-links a{font-size:14px;padding-block:14px}}

/* Orillas de papel onduladas: altura constante para que no se estiren. */
main>section{--wave-height:40px;mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201000%2040%22%20preserveAspectRatio%3D%22none%22%3E%3Cpath%20fill%3D%22white%22%20d%3D%22M0%2020C160%20-4%20320%200%20500%2020S840%2044%201000%2020V40H0Z%22%2F%3E%3C%2Fsvg%3E"),linear-gradient(#000,#000),url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201000%2040%22%20preserveAspectRatio%3D%22none%22%3E%3Cpath%20fill%3D%22white%22%20d%3D%22M0%200H1000V20C840%2044%20680%2040%20500%2020S160%20-4%200%2020Z%22%2F%3E%3C%2Fsvg%3E");mask-size:100% var(--wave-height),100% calc(100% - var(--wave-height)*2 + 2px),100% var(--wave-height);mask-position:center top,center center,center bottom;mask-repeat:no-repeat}
main>.hero{mask-image:linear-gradient(#000,#000),url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201000%2040%22%20preserveAspectRatio%3D%22none%22%3E%3Cpath%20fill%3D%22white%22%20d%3D%22M0%200H1000V20C840%2044%20680%2040%20500%2020S160%20-4%200%2020Z%22%2F%3E%3C%2Fsvg%3E");mask-size:100% calc(100% - var(--wave-height) + 1px),100% var(--wave-height);mask-position:center top,center bottom}
main>.history-section,main>.events-section{max-width:none;padding-inline:max(var(--gutter),calc((100% - 1200px)/2));background:#fffdf9}
main>.dress-section,main>.gallery-section,main>.app-section{background:#fffdf9}
main>.registry-section{background:#fbf4eb;border-top:0}
.countdown-section{background:linear-gradient(#3f5d3c26,#3f5d3c26),url('../images/paper-materials/wine-mottled.jpg') center/cover;border:0;padding-block:85px}
@media(max-width:800px){main>section{--wave-height:26px}.countdown-section{padding-block:65px}}

/* Acciones redondeadas, con superficie visible y tacto coherente. */
.paper-button,.mw-btn,.text-link,.app-content .mw-btn,.back-to-top{border:1px solid #899176;border-radius:999px;background:var(--sage-ink);color:#f5f8f2;padding:12px 22px;min-height:46px;text-decoration:none;box-shadow:0 3px 10px #28321d12}
.paper-button:hover,.mw-btn:hover,.text-link:hover,.app-content .mw-btn:hover{background:#324b30;color:#fff;border-color:#324b30}
.countdown-section .text-link,.site-footer .back-to-top{border:1px solid #8fa27a;background:#deefea;color:#3f5d3c;border-radius:999px;padding:12px 22px}
.default-envelope .welcome-footer .welcome-enter{border-radius:999px}
.site-footer{mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1000 40' preserveAspectRatio='none'%3E%3Cpath fill='white' d='M0 20C160 -4 320 0 500 20S840 44 1000 20V40H0Z'/%3E%3C/svg%3E"),linear-gradient(#000,#000);mask-size:100% 40px,100% calc(100% - 39px);mask-position:top,bottom;mask-repeat:no-repeat;padding-top:85px}
@media(max-width:800px){
.nav-links a{text-align:center}.nav-links.is-open{justify-items:stretch}
.hero{height:auto;min-height:0;max-height:none;padding:calc(clamp(280px,48svh,390px) + 35px) 24px 45px;background:#3f5d3c}
.hero-collage{inset:0 0 auto;height:clamp(280px,48svh,390px)}
.hero-main img{object-position:50% 45%}
.hero-collage:after{background:linear-gradient(0deg,#292018,#29201800 26%)}
.hero:before{content:'';position:absolute;z-index:2;top:-1px;left:0;width:100%;height:62px;background:#f5f8f2;clip-path:polygon(0 0,100% 0,100% 8%,95% 32%,87% 49%,72% 61%,61% 70%,55% 85%,50% 100%,45% 85%,39% 70%,28% 61%,13% 49%,5% 32%,0 8%);filter:drop-shadow(0 3px 3px #230d1033);pointer-events:none}
.hero-heading .eyebrow{margin-bottom:12px}.hero h1{font-size:36px;max-width:none}.hero-date{margin-top:20px}.hero-scroll{margin-top:18px}
.site-footer{mask-size:100% 26px,100% calc(100% - 25px);padding-top:65px}
.calendar-actions{gap:12px;flex-wrap:wrap}.countdown-section .text-link{font-size:10px;padding:10px 17px}
}

@media(max-width:800px){.hero:before{clip-path:none;mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201000%20100%22%20preserveAspectRatio%3D%22none%22%3E%3Cpath%20fill%3D%22white%22%20d%3D%22M0%200H1000C960%2050%20700%2045%20600%2065Q540%2075%20500%20100Q460%2075%20400%2065C300%2045%2040%2050%200%200Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat}}

/* Portada móvil original sobre fotografía, con menor altura. */
@media(max-width:800px){
.hero{height:76svh;min-height:480px;max-height:650px;padding:70px 25px 45px;background:var(--wine)}
.hero:before{content:none;display:none}
.hero-collage{inset:0;height:100%}
.hero-main img{object-position:55% center}
.hero-collage:after{background:linear-gradient(0deg,#36161bb8,#36161b05 85%)}
.hero-heading .eyebrow{margin-bottom:14px}
.hero h1{font-size:48px;max-width:95%}
.hero-date{margin-top:0}.hero-scroll{margin-top:25px}
}
@media(max-width:540px){.hero h1{font-size:40px}.hero-main img{object-position:57% center}.hero-scroll{margin-top:20px}}
@media(max-width:360px){.hero h1{font-size:34px}}

/* Orilla curva de la cabecera, sin recortar el menú desplegable. */
.site-header{border-bottom:0}
.site-header:after{content:'';position:absolute;top:calc(100% - 1px);left:0;width:100%;height:22px;background:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201000%2030%22%20preserveAspectRatio%3D%22none%22%3E%3Cpath%20fill%3D%22%23fcf9f3%22%20d%3D%22M0%200H1000V12C820%2035%20680%2028%20500%2015S180%200%200%2012Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;pointer-events:none}
@media(max-width:800px){
.hero-main img{object-position:64% center}
.nav-links{border-bottom:0;padding-bottom:32px;border-radius:0 0 48% 18% / 0 0 20px 12px;box-shadow:0 8px 16px #3f5d3c0a}
.site-header:has(.nav-links.is-open):after{display:none}
}

/* Sin flores ornamentales ni flechas en las acciones de texto. */
.default-envelope .welcome-footer .welcome-enter{display:flex;justify-content:center;gap:0}
.default-envelope .welcome-enter>span{text-align:center}
.site-footer .back-to-top{border:0;background:transparent;border-radius:0;box-shadow:none;padding:10px;min-height:0;color:var(--ivory);font-size:10px}

/* Galería sin anillos ni marca de selección al regresar a la foto. */
.lightbox-close,.lightbox-close:focus,.lightbox-close:focus-visible{border:0;outline:none;box-shadow:none}
.lightbox-close:focus-visible{background:#f5f8f21c}
.photo-print:focus,.photo-print:focus-visible{outline:none;box-shadow:none}
.photo-print:focus-visible .photo-open svg{background:#deefea}

/* Itinerario con el mismo papel claro del fondo del sobre. */
.timeline-section{background:#f5f8f2 url('../images/paper-materials/ivory-soft-grain.jpg') center/600px 600px repeat}

/* Hospedaje: información centrada y fotografías de esquinas suaves. */
.hotel-details{text-align:center}
.hotel-paper>img{border-radius:18px}
@media(max-width:540px){.hotel-paper>img{border-radius:14px}}

/* Fotografías interiores con el mismo acabado suave que hospedaje. */
.history-photo>img,.event-photo img,.timeline-memory,.timeline-memory img,.photo-print,.photo-print>img,.rsvp-photo img,.lightbox-image{border-radius:18px}
.photo-open{border-radius:inherit}
@media(max-width:540px){.history-photo>img,.event-photo img,.timeline-memory,.timeline-memory img,.photo-print,.photo-print>img,.rsvp-photo img,.lightbox-image{border-radius:14px}}

/* Menú móvil de curva suave y simétrica, textos centrados. */
.hotel-details .paper-button{justify-content:center;text-align:center}
@media(max-width:800px){
.nav-links{border-radius:0;box-shadow:none;padding-bottom:24px}
.nav-links:after{content:'';position:absolute;top:calc(100% - 1px);left:0;width:100%;height:18px;background:#f5f8f2;border-radius:0 0 50% 50% / 0 0 100% 100%;pointer-events:none}
main>section,.site-footer,.history-note,.hotel-details,.event-details,.timeline-copy,.app-copy,.dress-examples summary,.rsvp-paper{text-align:center}
.timeline-item{text-align:center;justify-items:center}
.app-heading,.app-content .buttons{justify-content:center}
.paper-timeline .timeline-item{align-items:center}
.hotel-details .paper-button{gap:0}
}
@media(max-width:540px){.timeline-item{display:flex;flex-direction:column;gap:18px;padding-block:28px}.timeline-illustration{margin-inline:auto}}

/* Itinerario en lino claro cálido, con trama fina y discreta. */
.timeline-section{background-color:#f3dfc8;background-image:linear-gradient(#f7dfc477,#f7dfc477),url('../images/paper-materials/beige-linen.jpg');background-position:center;background-size:auto,600px 600px;background-repeat:repeat}

/* Las curvas contiguas comparten el mismo borde, sin franjas entre secciones. */
main>section.paper-grain+section.paper-grain{margin-top:-40px}
.site-footer{margin-top:-40px}
@media(max-width:800px){main>section.paper-grain+section.paper-grain,.site-footer{margin-top:-26px}}

/* Menú móvil: onda asimétrica siguiendo la referencia dibujada. */
@media(max-width:800px){
.nav-links{border-radius:0;padding-bottom:18px}
.nav-links:after{height:34px;border-radius:0;background:transparent url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201000%2060%22%20preserveAspectRatio%3D%22none%22%3E%3Cpath%20fill%3D%22%23fcf9f3%22%20d%3D%22M0%200H1000V5C980%2015%20985%2032%20940%2034C835%2037%20792%2019%20700%2021C490%2021%20386%2059%20235%2059C128%2059%2068%2039%200%208Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat}
}

/* Confirmación: papel botánico salvia y formulario sobre marfil legible. */
.rsvp-section{background-color:#a2a18a;background-image:linear-gradient(#a2a18a9c,#a2a18a9c),url('../images/paper-materials/ivory-floral.jpg');background-blend-mode:normal,multiply;background-size:auto,760px 760px;background-position:center;background-repeat:repeat}
.rsvp-paper{padding:32px;background:#f5f8f2;border-radius:20px;box-shadow:0 8px 28px #37402c12}
@media(max-width:800px){.rsvp-paper{padding:26px 22px;border-radius:18px}.rsvp-section{background-size:auto,600px 600px}}
@media(max-width:360px){.rsvp-paper{padding:22px 16px}}

/* Más aire entre el contenido de la app y sus orillas curvas. */
.app-section{padding-top:90px;padding-bottom:100px}
@media(max-width:800px){.app-section{padding-top:70px;padding-bottom:80px}}

/* Confirmación como una sola pieza: fotografía y formulario sobre marfil. */
.rsvp-section{display:block;padding-block:100px}
.rsvp-composition{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);align-items:center;gap:clamp(32px,4vw,64px);max-width:1160px;margin:auto;padding:40px;background:#f5f8f2;border-radius:24px;box-shadow:0 10px 35px #37402c18}
.rsvp-composition .rsvp-photo{position:static;width:100%;max-width:none;margin:0}
.rsvp-composition .rsvp-photo img{height:440px;width:100%;object-fit:cover;object-position:46% center;border-radius:16px}
.rsvp-composition .rsvp-paper{padding:12px 0;background:transparent;border-radius:0;box-shadow:none;max-width:none}
@media(max-width:800px){.rsvp-section{padding-block:75px}.rsvp-composition{grid-template-columns:1fr;gap:28px;max-width:560px;padding:24px;border-radius:20px}.rsvp-composition .rsvp-photo img{height:280px;object-position:50% 36%;border-radius:14px}.rsvp-composition .rsvp-paper{padding:0}}
@media(max-width:360px){.rsvp-composition{padding:18px;gap:24px}.rsvp-composition .rsvp-photo img{height:240px}}

/* Confirmación abierta: el fondo salvia integra foto y formulario. */
.rsvp-composition{background:transparent;box-shadow:none;border-radius:0;padding:0;gap:clamp(36px,5vw,72px)}
@media(max-width:800px){.rsvp-composition{padding:0;gap:32px;border-radius:0}}

/* Confirmación centrada, sin fotografía, con lectura clara sobre salvia. */
.rsvp-composition{display:block;max-width:640px}
.rsvp-composition .rsvp-paper{width:100%}
.rsvp-section{background-color:#686e58;background-image:linear-gradient(#525b4799,#525b4799),url('../images/paper-materials/ivory-floral.jpg')}

/* Superficies blancas: papel de algodón con grano delicado. */
main>.history-section,main>.events-section,main>.dress-section,main>.gallery-section,main>.app-section{background-color:#fff;background-image:url('../images/papel-blanco.jpg');background-position:center;background-size:960px 540px;background-repeat:repeat}

/* Mesa de regalos al ancho del contenido, con marcas más legibles. */
.registry-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));max-width:1200px;width:100%;gap:36px;margin-inline:auto;align-items:start}
.registry-slip{width:100%;min-width:0;padding:20px 12px}
.registry-slip img{height:64px;width:100%;max-width:240px;margin-inline:auto;object-fit:contain}
.registry-slip p{font-size:15px;margin-top:24px}
@media(max-width:800px){.registry-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 24px}.registry-slip{width:100%;padding:16px 0}.registry-slip img{height:54px;max-width:210px}.registry-slip p{font-size:14px;margin-top:18px}}
@media(max-width:360px){.registry-grid{gap:20px 16px}.registry-slip img{height:44px}.registry-slip p{font-size:13px}}

/* Hospedaje: textura salvia original proporcionada por la usuaria. */
.hotels-section{background:#a2a38a url('../images/papel-salvia.jpg') center/cover no-repeat}

/* Papel crema original en regalos y navegación, incluidas sus curvas. */
main>.registry-section,.site-header,.nav-links{background:#f3dfc8 url('../images/papel-crema.jpg') center/960px 540px repeat}
@media(min-width:801px){.nav-links{background:transparent}}
.site-header:after{background:#f3dfc8 url('../images/papel-crema.jpg') center/960px 540px repeat;mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201000%2030%22%20preserveAspectRatio%3D%22none%22%3E%3Cpath%20fill%3D%22white%22%20d%3D%22M0%200H1000V12C820%2035%20680%2028%20500%2015S180%200%200%2012Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat}
@media(max-width:800px){.nav-links:after{background:#f3dfc8 url('../images/papel-crema.jpg') center/960px 540px repeat;mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201000%2060%22%20preserveAspectRatio%3D%22none%22%3E%3Cpath%20fill%3D%22white%22%20d%3D%22M0%200H1000V5C980%2015%20985%2032%20940%2034C835%2037%20792%2019%20700%2021C490%2021%20386%2059%20235%2059C128%2059%2068%2039%200%208Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat}}

/* Lectura de hospedaje y navegación sin subrayado en Confirmación. */
.hotels-section,.hotels-section .hotel-details p,.hotels-section .section-heading,.hotels-section .hotel-details h3{color:#f5f8f2}
.nav-links .nav-rsvp{border-bottom:0;text-decoration:none}

/* Álbum de filas completas: cada fila reparte el ancho entre sus fotos. */
.photo-collection{display:flex;flex-wrap:wrap;gap:22px;align-items:stretch}
.photo-collection .photo-print{flex:1 1 calc((100% - 44px)/3);min-width:0;overflow:hidden}
.photo-collection .photo-print>img{width:100%;height:clamp(260px,28vw,360px);aspect-ratio:auto;object-fit:cover;transition:transform .3s}
.photo-print:hover>img{transform:scale(1.025)}
@media(max-width:800px){.photo-collection{gap:16px}.photo-collection .photo-print{flex-basis:calc((100% - 16px)/2)}.photo-collection .photo-print>img{height:270px}}
@media(max-width:540px){.photo-collection{gap:13px}.photo-collection .photo-print{flex-basis:calc((100% - 13px)/2)}.photo-collection .photo-print>img{height:220px}}
@media(prefers-reduced-motion:reduce){.photo-collection .photo-print>img{transition:none}.photo-print:hover>img{transform:none}}

/* Remate continuo del menú: sin pico ni corte en el extremo derecho. */
@media(max-width:800px){
.nav-links:after{top:calc(100% - 2px);height:34px;mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201000%2060%22%20preserveAspectRatio%3D%22none%22%3E%3Cpath%20fill%3D%22white%22%20d%3D%22M0%200H1000V30C900%2048%20820%2020%20690%2020C500%2020%20360%2060%20220%2058C120%2058%2055%2035%200%2015Z%22%2F%3E%3C%2Fsvg%3E")}
.site-header:after{top:calc(100% - 2px)}
}

/* Mosaico continuo, con redondeado únicamente en el perímetro. */
.photo-collection{gap:0;border-radius:18px;overflow:hidden}
.photo-collection .photo-print{flex-basis:33.333333%;border-radius:0}
.photo-collection .photo-print>img{border-radius:0}
@media(max-width:800px){.photo-collection .photo-print{flex-basis:50%}}
@media(max-width:540px){.photo-collection{border-radius:14px}}

.hotel-details .paper-button{display:inline-flex;align-items:center;justify-content:center;gap:0;padding-inline:24px;text-align:center}

/* Texto secundario en vino para unificar la paleta. */
:root{--muted:var(--wine)}
.history-note p,.event-details p,.timeline-copy p,.step-number,.app-copy,.registry-slip p,.dress-examples summary small{color:var(--wine)}
.nav-links a:hover{color:var(--wine)}

/* Vestimenta: solo los dos tableros originales de Pinterest. */
.dress-options>.pinterest-board{min-width:0;text-align:center;display:flex;justify-content:center}

/* Ritmo vertical común: reserva para curvas y aire simétrico alrededor del contenido. */
:root{--section-air:88px;--section-curve:40px}
main>section.paper-grain:not(.hero){padding-top:calc(var(--section-air) + var(--section-curve)/2);padding-bottom:calc(var(--section-air) + var(--section-curve)/2)}
.registry-slip{padding-block:0}
.dress-options>.pinterest-board{padding-bottom:0}
.site-footer{padding-top:calc(var(--section-air) + var(--section-curve)/2);padding-bottom:var(--section-air)}
@media(max-width:800px){:root{--section-air:64px;--section-curve:26px}.registry-slip{padding-block:0}}
@media(max-width:360px){:root{--section-air:56px}}

/* Separación de las acciones respecto al texto anterior. */
.calendar-row>p{margin-bottom:26px}
.event-actions{margin-top:32px}
.hotel-details .paper-button{margin-top:12px}
.app-content .buttons{margin-top:32px}
/* Nombres en una línea y foto más despejada. */
.hero-heading{width:100%;min-width:0}
.hero h1{white-space:nowrap;max-width:none;font-size:clamp(36px,5.2vw,76px);line-height:1.2}
.hero-date{margin-top:22px}
@media(max-width:800px){.hero h1{font-size:clamp(26px,7.7vw,48px)}.hero-date{margin-top:22px}.calendar-row>p{margin-bottom:24px}.event-actions{margin-top:28px}.app-content .buttons{margin-top:28px}}

/* Cabecera y secciones comparten exactamente la misma curva y escala. */
.site-header:after{top:calc(100% - 1px);height:40px;mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201000%2040%22%20preserveAspectRatio%3D%22none%22%3E%3Cpath%20fill%3D%22white%22%20d%3D%22M0%200H1000V20C840%2044%20680%2040%20500%2020S160%20-4%200%2020Z%22%2F%3E%3C%2Fsvg%3E");mask-size:100% 100%;mask-position:center;mask-repeat:no-repeat}
@media(max-width:800px){.site-header:after,.nav-links:after{height:26px;top:calc(100% - 1px);mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201000%2040%22%20preserveAspectRatio%3D%22none%22%3E%3Cpath%20fill%3D%22white%22%20d%3D%22M0%200H1000V20C840%2044%20680%2040%20500%2020S160%20-4%200%2020Z%22%2F%3E%3C%2Fsvg%3E");mask-size:100% 100%;mask-position:center;mask-repeat:no-repeat}}

/* Calendario y contador comparten los mismos extremos. */
.countdown-section .countdown,.countdown-section .calendar-row{width:100%;max-width:600px;margin-inline:auto}
.countdown-section .countdown{justify-content:space-between;gap:12px}
.countdown-section .calendar-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;width:100%}
.countdown-section .calendar-actions .text-link{width:100%;min-width:0;justify-content:center;text-align:center}
@media(max-width:540px){.countdown-section .calendar-actions{gap:14px}.countdown-section .calendar-actions .text-link{padding-inline:10px}}

/* Cabecera de escritorio más compacta: misma curva, situada 16 px más arriba. */
@media(min-width:801px){.navigation{min-height:66px}}

/* Aire adicional bajo los nombres de portada, antes de la curva. */
.hero{padding-bottom:90px}
@media(max-width:800px){.hero{padding-bottom:72px}}

/* Separación entre el hashtag y la firma de marca del footer. */
.site-footer .mw-brand{margin-top:38px}
@media(max-width:540px){.site-footer .mw-brand{margin-top:30px}}

.registry-grid .registry-slip{display:block;color:var(--wine)}
.wedding-hashtag a{color:inherit;text-decoration:none}
.wedding-hashtag a:focus-visible{outline:2px solid #deefea;outline-offset:8px}

/* Destinatario en la zona ancha de la solapa, separado del sello. */
.default-envelope #rotuloapi{position:absolute;top:7%;left:50%;translate:-50% 0;width:76%;max-width:620px;margin:0;font:400 18px/1.45 var(--serif);color:var(--ivory);overflow-wrap:anywhere;pointer-events:none}
/* Papel salvia de tono constante, independiente de la altura del formulario. */
.rsvp-section{background:#626c53 url('../images/paper-materials/ivory-floral.jpg') center top/760px 760px repeat;background-blend-mode:multiply}
@media(max-width:800px){.default-envelope #rotuloapi{top:10%;width:78%;font-size:16px;line-height:1.4}.timeline-illustration{width:68px;height:88px}.rsvp-section{background-size:600px 600px}}
@media(max-width:360px){.default-envelope #rotuloapi{top:9%;font-size:14px}}

/* Apertura rápida con respuesta inmediata al toque del sello. */
.pre-page{transition:opacity .24s ease-out}
.full-flap-top,.full-flap-bottom{transition:transform .24s ease-out,opacity .2s ease-out}
.default-envelope{touch-action:manipulation}
@media(prefers-reduced-motion:reduce){.pre-page,.full-flap-top,.full-flap-bottom{transition:none}}

/* Salvia uniforme sin modos de mezcla: estable al cambiar la altura del iframe en Safari. */
.rsvp-section{background:#4b553b;background-image:none;background-blend-mode:normal}
.rsvp-section::before{content:'';position:absolute;inset:0;z-index:-1;background:url('../images/paper-materials/ivory-floral.jpg') center top/760px 760px repeat;opacity:.13;pointer-events:none}
@media(max-width:800px){.rsvp-section::before{background-size:600px 600px}}

/* Un único acceso HTTPS a Google Calendar para todos los dispositivos. */
.countdown-section .calendar-actions{grid-template-columns:minmax(0,1fr)}

/* Indicaciones de vestimenta y espacio para fotografía. */
#dress-code-items p{margin:0;font-size:16px} .dress-image-placeholder{width:min(100%,520px);aspect-ratio:4/3;margin:36px auto 0;border:1px solid var(--line);background:rgba(255,255,255,.25)}

.hotel-grid.hotel-grid-single{grid-template-columns:minmax(0,520px);justify-content:center}

/* Paleta de Alejandra y Jesús: bosque, salvia, menta y café. */
:root{--forest:#3f5d3c;--sage:#8fa27a;--mint:#deefea;--coffee:#594833;--wine:var(--forest);--ink:var(--forest);--sage-ink:var(--forest);--ivory:#f5f8f2;--soft:var(--mint);--muted:var(--coffee);--line:#aab9a0;--accent:var(--coffee);--terracotta:var(--coffee);--apricot:var(--mint)}
body{background:var(--ivory);color:var(--forest)}
main>.history-section,main>.events-section,main>.dress-section,main>.gallery-section,main>.app-section{background-color:var(--ivory);background-image:url('../images/papel-blanco.jpg');background-blend-mode:normal}
main>.timeline-section{background:var(--button-sage)}
main>.registry-section{background:var(--mint) url('../images/papel-crema.jpg') center/960px 540px repeat}
.site-header,.nav-links,.site-header:after,.nav-links:after{background:var(--mint) url('../images/papel-crema.jpg') center/960px 540px repeat}
@media(min-width:801px){.nav-links{background:transparent}}
.hero{background-color:var(--forest)}
.hero-collage:after{background:linear-gradient(0deg,#292018,#29201800 45%)}
main>.countdown-section{background:linear-gradient(#3f5d3c26,#3f5d3c26),url('../images/paper-materials/wine-mottled.jpg') center/cover;color:var(--ivory)}
.countdown-section .eyebrow,.countdown-section .countdown-label,.countdown-section .calendar-row>p{color:var(--mint)}
main>.hotels-section{background:var(--sage) url('../images/papel-salvia.jpg') center/cover no-repeat}
.hotels-section,.hotels-section .hotel-details p,.hotels-section .section-heading,.hotels-section .hotel-details h3{color:#263d26}
main>.rsvp-section{background:var(--forest);background-image:none}
.rsvp-section:before{filter:none;opacity:.13}
.site-footer{background:var(--coffee) url('../images/paper-materials/wine-embossed.jpg') center/480px 480px repeat;color:var(--ivory)}
.paper-button,.mw-btn,.text-link,.app-content .mw-btn,.music-button{background:var(--forest);border-color:var(--forest);color:var(--ivory)}
.paper-button:hover,.mw-btn:hover,.text-link:hover,.app-content .mw-btn:hover{background:var(--coffee);border-color:var(--coffee);color:var(--ivory)}
.countdown-section .text-link{background:var(--mint);border-color:var(--mint);color:var(--forest)}
.countdown-section .text-link:hover{background:var(--ivory);border-color:var(--ivory);color:var(--forest)}
.site-footer .back-to-top{color:var(--ivory);background:transparent}
.history-note p,.event-details p,.timeline-copy p,.app-copy,.registry-slip p{color:var(--coffee)}
.timeline-illustration svg{fill:var(--forest)}
.step-number,.event-details .folio{color:var(--coffee)}
.dress-image-placeholder{border-color:var(--sage);background:#deefea66}
#full-envelope-wine image{filter:none;opacity:1}
#full-envelope-ivory image{filter:none;opacity:.7}
.default-envelope .welcome-header,.default-envelope .welcome-footer,.default-envelope #rotuloapi{color:var(--ivory)}
.default-envelope .welcome-enter{border-color:var(--mint);color:var(--ivory);background:#deefea15}
.default-envelope:hover .welcome-enter{background:#deefea30}
.default-envelope .curved-seal img{filter:none}
.floral-accent,.heading-illustration{filter:grayscale(1) sepia(.25) hue-rotate(45deg)}
.wedding-hashtag a:focus-visible{outline-color:var(--mint)}
@media(max-width:800px){.hero:before{background:var(--mint)}}
/* Fotografías de la pareja: fuentes móviles y encuadres propios. */
.hero-main picture{display:block;width:100%;height:100%}
.hero-main img{object-position:50% 40%}
.history-photo>img{height:auto;aspect-ratio:914/1280;object-fit:contain}
.photo-collection .photo-print>img{height:auto;aspect-ratio:914/1280;object-fit:contain}
.rsvp-composition{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);max-width:1160px;gap:clamp(32px,5vw,72px)}
.rsvp-composition .rsvp-photo{width:100%;margin:0}
.rsvp-photo picture{display:block}
.rsvp-composition .rsvp-photo img{width:100%;height:auto;object-fit:contain;border-radius:16px}
@media(max-width:800px){.rsvp-composition{grid-template-columns:minmax(0,1fr);max-width:640px;gap:36px}.hero-main img{object-position:50% 40%}.rsvp-composition .rsvp-photo img{height:auto;object-position:center}}
/* Menú en café, conservando el papel original. */
.site-header,.site-header .brand,.site-header .nav-links,.site-header .nav-links a,.site-header .nav-toggle{color:var(--coffee)}
.site-header .brand svg{fill:currentColor}
.site-header .nav-toggle span{background:var(--coffee)}
.site-header .nav-links a:hover,.site-header .nav-links a:focus-visible{color:var(--coffee)}
.site-header a:focus-visible,.site-header button:focus-visible{outline-color:var(--coffee)}
/* Portada completa: fotografía en su proporción original, sin recorte. */
main>.hero{display:flex;flex-direction:column;height:auto;min-height:0;max-height:none;padding:0 0 70px;overflow:visible}
.hero .hero-collage{position:relative;inset:auto;order:0;width:100%;height:auto;z-index:auto}
.hero .hero-main,.hero .hero-main picture{display:block;width:100%;height:auto}
.hero .hero-main img{display:block;width:100%;height:auto;max-height:none;object-fit:contain;object-position:center}
.hero .hero-collage:after,.hero:before{display:none}
.hero .hero-heading{position:relative;order:1;padding:38px 24px 0}
@media(max-width:800px){main>.hero{padding:0 0 55px}.hero .hero-heading{padding:30px 20px 0}.hero .hero-collage{height:auto}.hero .hero-main img{height:auto;object-fit:contain}}
/* Reserva el espacio de la curva del menú para no cubrir la fotografía. */
main>.hero{padding-top:40px}@media(max-width:800px){main>.hero{padding-top:26px}}

/* Remate de portada en café oscuro, coordinado con la sombra. */
main>.hero{background-color:#292018}

/* Fondo café del menú con su misma textura de papel. */
.site-header,.site-header:after,.site-header .nav-links,.site-header .nav-links:after{background-color:#594833;background-image:url('../images/papel-crema.jpg');background-size:960px 540px;background-position:center;background-repeat:repeat;background-blend-mode:multiply}
.site-header,.site-header .brand,.site-header .nav-links,.site-header .nav-links a,.site-header .nav-toggle{color:#f5f8f2}
.site-header .brand svg{fill:currentColor}
.site-header .nav-toggle span{background:#f5f8f2}
.site-header .nav-links a:hover,.site-header .nav-links a:focus-visible{color:#deefea}
.site-header a:focus-visible,.site-header button:focus-visible{outline-color:#deefea}
@media(min-width:801px){.site-header .nav-links{background:transparent}}
/* Foto completa, sin franja superior, con nombres sobre sombra café. */
main>.hero{display:grid;grid-template-columns:minmax(0,1fr);height:auto;min-height:0;max-height:none;padding:0;overflow:hidden;background:#292018}
.hero .hero-collage{grid-area:1/1;position:relative;inset:auto;width:100%;height:auto;z-index:0}
.hero .hero-main,.hero .hero-main picture{display:block;width:100%;height:auto}
.hero .hero-main img{display:block;width:100%;height:auto;object-fit:contain}
.hero .hero-collage:after{display:block;content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(to top,rgba(25,18,13,.88) 0%,rgba(25,18,13,.58) 18%,rgba(25,18,13,0) 52%)}
.hero .hero-heading{grid-area:1/1;position:relative;align-self:end;z-index:1;width:100%;padding:50px 24px 80px;color:#f5f8f2;text-shadow:0 2px 12px #0008}
.hero:before{display:none}
@media(max-width:800px){main>.hero{padding:0}.hero .hero-collage{height:auto}.hero .hero-heading{padding:35px 16px 55px}.hero .hero-collage:after{background:linear-gradient(to top,rgba(25,18,13,.88),rgba(25,18,13,.45) 24%,rgba(25,18,13,0) 55%)}}
/* Nombres de portada ligeramente más arriba. */
.hero .hero-heading{transform:translateY(-75px)}
@media(max-width:800px){.hero .hero-heading{transform:translateY(-45px)}}

/* Títulos verdes sobre papel claro. */
.history-note h2,.section-heading h2,.event-details h3,.timeline-copy h3,.dress-heading h2,.hotel-details h3,.hotels-section .hotel-details h3,.hotels-section .section-heading h2,.app-heading h2{color:var(--forest)}
.countdown-section .section-heading h2,.hero h1,.site-footer h2{color:var(--ivory)}
/* Texto de lectura en café oscuro sobre superficies claras. */
:root{--body-ink:#30251c}
body{color:var(--body-ink)}
.history-note p,.event-details p,.timeline-copy p,.app-copy,.registry-slip p,.registry-grid .registry-slip,.dress-options p,.dress-heading .eyebrow,.history-note .eyebrow,.section-heading .eyebrow,.step-number,.event-details .folio,.hotels-section,.hotels-section .hotel-details p,.hotels-section .section-heading{color:var(--body-ink)}
.countdown-section,.countdown-section .eyebrow,.countdown-section .countdown-label,.countdown-section .calendar-row>p,.hero .hero-heading,.hero .hero-heading .eyebrow,.site-footer,.site-footer>p,.rsvp-section{color:var(--ivory)}
/* Save the date verde con la misma textura original. */
main>.countdown-section{background-color:#3f5d3c;background-image:url('../images/paper-materials/wine-mottled.jpg');background-position:center;background-size:cover;background-repeat:no-repeat;background-blend-mode:luminosity}
/* Aviso al cierre de Cuándo y dónde. */
.adults-only-note{max-width:700px;margin:55px auto 0;text-align:center}.adults-only-note h3{color:var(--forest);font-size:clamp(19px,2vw,22px);margin-bottom:18px}.adults-only-note p{color:var(--body-ink);line-height:1.9}

/* Títulos verdes sobre superficies claras. */
.history-note h2,.section-heading h2,.event-details h3,.timeline-copy h3,.dress-heading h2,.hotel-details h3,.hotels-section .hotel-details h3,.hotels-section .section-heading h2,.app-heading h2,.adults-only-note h3{color:var(--forest)}
.countdown-section .section-heading h2,.hero h1,.site-footer h2{color:var(--ivory)}
/* Las tres actividades ocupan todo el ancho del itinerario. */
.paper-timeline{width:100%;max-width:none;grid-template-columns:repeat(3,minmax(0,1fr))}
/* Botones en el verde salvia de la muestra. */
:root{--button-sage:#8fa27a;--button-sage-hover:#a2b28f}
.paper-button,.mw-btn,.text-link,.app-content .mw-btn,.music-button,.countdown-section .text-link,.default-envelope .welcome-footer .welcome-enter{background:var(--button-sage);border-color:var(--button-sage);color:#253320}
.paper-button:hover,.mw-btn:hover,.text-link:hover,.app-content .mw-btn:hover,.music-button:hover,.countdown-section .text-link:hover,.default-envelope:hover .welcome-footer .welcome-enter{background:var(--button-sage-hover);border-color:var(--button-sage-hover);color:#253320}
/* Imagen de vestimenta completa, centrada y sin marco. */
.dress-code-image{width:min(100%,340px);margin:36px auto 0}.dress-code-image img{display:block;width:100%;height:auto;object-fit:contain}@media(max-width:540px){.dress-code-image{max-width:270px}}

.dress-introduction{max-width:700px;margin:0 auto 30px;color:var(--body-ink);line-height:1.9}

/* Vestimenta: imagen a la izquierda e información a la derecha. */
.dress-layout{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);align-items:center;gap:clamp(35px,6vw,90px);max-width:1100px;margin:auto}
.dress-layout .dress-code-image{width:min(100%,340px);margin:0 auto}
.dress-information{min-width:0}
.dress-information .dress-heading{margin-bottom:25px}
.dress-information .dress-options{gap:24px}
@media(max-width:800px){.dress-layout{grid-template-columns:minmax(0,1fr);gap:35px}.dress-layout .dress-code-image{max-width:270px}}
/* Verde claro de referencia en todas las acciones. */
:root{--button-sage:#8fa27a;--button-sage-hover:#a2b28f}
.paper-button,.mw-btn,.text-link,.app-content .mw-btn,.music-button,.countdown-section .text-link,.default-envelope .welcome-footer .welcome-enter{background-color:#8fa27a;background-image:none;border-color:#8fa27a;color:#253320}
/* Letras blancas en los botones. */
.paper-button,.mw-btn,.text-link,.app-content .mw-btn,.music-button,.countdown-section .text-link,.default-envelope .welcome-footer .welcome-enter,
.paper-button:hover,.mw-btn:hover,.text-link:hover,.app-content .mw-btn:hover,.music-button:hover,.countdown-section .text-link:hover,.default-envelope:hover .welcome-footer .welcome-enter{color:#fff}
/* Indicaciones de vestimenta en una sola columna. */
.dress-information #dress-code-items{grid-template-columns:minmax(0,1fr);gap:14px}

/* Hospedaje café con su misma textura y texto blanco. */
main>.hotels-section{background-color:#594833;background-image:url('../images/papel-salvia.jpg');background-position:center;background-size:cover;background-repeat:no-repeat;background-blend-mode:luminosity}
.hotels-section,.hotels-section .section-heading,.hotels-section .section-heading h2,.hotels-section .section-heading .eyebrow,.hotels-section .hotel-details h3,.hotels-section .hotel-details p,.hotels-section .hotel-details a{color:#fff}
/* Fotografía completa del Hotel Mirra sobre sus datos. */
.hotel-grid-single .hotel-paper{display:block}.hotel-grid-single .hotel-paper>img{width:100%;max-width:427px;height:auto;min-height:0;object-fit:contain;margin:0 auto 28px;border-radius:12px}

/* Letras blancas en el itinerario. */
.timeline-section,.timeline-section .section-heading h2,.timeline-section .timeline-copy h3,.timeline-section .timeline-copy p,.timeline-section .step-number{color:#fff}
/* Iconos blancos del itinerario. */
.timeline-section .timeline-illustration svg{fill:#fff;color:#fff}

/* Aumento ligero de iconos y horas del itinerario. */
.timeline-section .timeline-illustration{width:70px;height:86px}
.timeline-section .timeline-copy .time{font-size:16px}
@media(max-width:800px){.timeline-section .timeline-illustration{width:73px;height:94px}}
@media(max-width:540px){.timeline-section .timeline-copy .time{font-size:15px}}
/* Mesa de regalos beige con el logo centrado y la textura original. */
main>.registry-section{background-color:#e8dcc5;background-image:url('../images/papel-crema.jpg');background-position:center;background-size:960px 540px;background-repeat:repeat;background-blend-mode:luminosity}
.registry-section .registry-grid{grid-template-columns:minmax(0,320px);justify-content:center;margin-inline:auto}
.registry-section .registry-slip{width:100%;text-align:center}
.registry-section .registry-slip img{margin-inline:auto}
/* Mesa de regalos horizontal: título a la izquierda e información a la derecha. */
main>.registry-section{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:50px}
.registry-section .section-heading{margin:0;text-align:center}
.registry-section .registry-grid{width:100%;margin:0;justify-content:center}
@media(max-width:800px){main>.registry-section{grid-template-columns:minmax(0,1fr);gap:35px}}
/* Confirmación en el mismo verde oscuro de los títulos, conservando la textura. */
main>.rsvp-section{background-color:var(--forest)}

/* Mensaje sobre un logo de Amazon más pequeño. */
.registry-section .registry-grid{grid-template-columns:minmax(0,500px)}
.registry-section .registry-slip .registry-message{margin:0 auto 28px;line-height:1.9}
.registry-section .registry-slip img{width:150px;max-width:100%;height:auto;margin-inline:auto}
/* Logo de Amazon en el café oscuro de los textos. */
.registry-section .registry-slip img{filter:brightness(0) saturate(100%) invert(12%) sepia(18%) saturate(1020%) hue-rotate(346deg) brightness(94%) contrast(91%)}
/* Pie de página café como el menú, con su textura floral original. */
.site-footer{background-color:#594833;background-image:url('../images/paper-materials/wine-embossed.jpg');background-position:center;background-size:480px 480px;background-repeat:repeat;background-blend-mode:luminosity}
/* Alternativa centrada para regalos, sobre papel menta suave. */
main>.registry-section{display:flex;flex-direction:column;align-items:center;gap:30px;background-color:#deefea;background-image:url('../images/papel-crema.jpg');background-blend-mode:luminosity}
.registry-section .section-heading{width:100%;margin:0;text-align:center}
.registry-section .registry-grid{display:grid;grid-template-columns:minmax(0,620px);justify-content:center;width:100%;margin:0 auto}
.registry-section .registry-slip{padding:0 20px;text-align:center}
.registry-section .registry-slip .registry-message{max-width:580px;margin:0 auto 30px}
.registry-section .registry-slip img{width:140px;margin:0 auto}
.registry-section .registry-slip p:last-child{display:inline-block;margin-top:24px;padding-bottom:5px;border-bottom:1px solid #59483370}
/* Regalos sin fondo de color, sobre el papel blanco de la invitación. */
main>.registry-section{background-color:#fff;background-image:url('../images/papel-blanco.jpg');background-position:center;background-size:960px 540px;background-repeat:repeat;background-blend-mode:normal}

/* Separación entre regalos y galería, conservando el papel blanco. */
main>.registry-section+.gallery-section{margin-top:0}
.registry-section+.gallery-section:before{content:'';display:block;position:relative;width:min(65%,640px);height:1px;margin:0 auto 65px;background:linear-gradient(to right,transparent,#59483380 25%,#59483380 75%,transparent)}
@media(max-width:800px){.registry-section+.gallery-section:before{width:75%;margin-bottom:45px}}
/* Separador curvo café entre regalos y galería. */
.registry-section+.gallery-section:before{width:min(80%,900px);height:34px;background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 900 34' preserveAspectRatio='none'%3E%3Cpath d='M1 17C150 -3 300 -3 450 17S750 37 899 17' fill='none' stroke='%23594833' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E") center/100% 100% no-repeat}
@media(max-width:800px){.registry-section+.gallery-section:before{width:85%;height:26px}}
/* Sin línea entre regalos y galería. */
.registry-section+.gallery-section:before{content:none;display:none}

/* Regalos con un velo verde suave sobre la misma textura blanca. */
main>.registry-section{background-color:#fff;background-image:linear-gradient(rgba(143,162,122,.18),rgba(143,162,122,.18)),url('../images/papel-blanco.jpg');background-size:auto,960px 540px;background-position:center;background-repeat:repeat;background-blend-mode:normal;padding-bottom:55px}
main>.registry-section+.gallery-section{margin-top:-40px;padding-top:65px}
@media(max-width:800px){main>.registry-section{padding-bottom:42px}main>.registry-section+.gallery-section{margin-top:-26px;padding-top:45px}}
.site-footer>p:first-of-type{color:#fff}

.rsvp-deadline{color:#fff;text-align:center;margin:0 0 28px;line-height:1.7}

/* Párrafos negros y títulos café sobre fondos claros. */
:root{--body-ink:#000}
main p,.history-note p,.event-details p,.timeline-copy p,.app-copy,.registry-slip p,.registry-grid .registry-slip,.dress-options p,.dress-introduction,.adults-only-note p{color:#000}
.history-note h2,.section-heading h2,.event-details h3,.timeline-copy h3,.dress-heading h2,.hotel-details h3,.app-heading h2,.adults-only-note h3{color:var(--coffee)}
/* Letras claras sobre las secciones oscuras y el itinerario. */
.hero h1,.hero .hero-heading p,.countdown-section .section-heading h2,.countdown-section p,.hotels-section .section-heading h2,.hotels-section .hotel-details h3,.hotels-section .hotel-details p,.rsvp-section p,.timeline-section .section-heading h2,.timeline-section .timeline-copy h3,.timeline-section .timeline-copy p,.site-footer h2,.site-footer p{color:#fff}
/* Vestimenta en móvil: primero información y después imagen. */
@media(max-width:800px){.dress-layout .dress-information{order:0}.dress-layout .dress-code-image{order:1}}

@media(max-width:800px){main>.rsvp-section.paper-grain{padding-bottom:42px}}

/* Hashtag completo en una línea en celular. */
@media(max-width:800px){.site-footer .wedding-hashtag{font-size:clamp(18px,6vw,38px);white-space:nowrap;letter-spacing:-.025em}.site-footer .wedding-hashtag a{white-space:nowrap}}

/* Monograma propio en el menú. */
.site-header .brand img{display:block;width:52px;height:52px;object-fit:contain}@media(max-width:800px){.site-header .brand img{width:46px;height:46px}}

/* Botón de apertura coordinado con el sello verde. */
.default-envelope .welcome-footer .welcome-enter{background-color:#526f43;border-color:#526f43;color:#fff}
.default-envelope:hover .welcome-footer .welcome-enter{background-color:#435c37;border-color:#435c37;color:#fff}
/* Todos los textos del sobre en blanco. */
.default-envelope .welcome-header,.default-envelope .welcome-header .eyebrow,.default-envelope .welcome-names,.default-envelope .welcome-names>span,.default-envelope .welcome-date,.default-envelope .welcome-date>span,.default-envelope .welcome-message,.default-envelope #rotuloapi{color:#fff}
/* Sobre café: se conserva el relieve floral de la imagen original. */
#full-envelope-wine image{filter:url(#envelope-coffee-tone);opacity:1}
