:root{--paper:#f7f4e9;--wine:#782d36;--muted:#866c64;--line:#b08078}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:80px}body{margin:0;color:var(--wine);background:var(--paper);font-family:'Cormorant Garamond',Georgia,serif;font-size:20px}body:before{content:'';position:fixed;inset:0;pointer-events:none;z-index:10;background-image:url('/assets/paper.svg');background-size:380px 380px;mix-blend-mode:multiply;opacity:.55}a{color:inherit;text-decoration:none}button{font:inherit}header{height:80px;padding:0 5.5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #782d3620}nav{display:flex;gap:35px}nav a,.nav-date,.eyebrow,.button,.date>span,.time,.countdown span,footer>p:not(.script),.coming{font-family:Montserrat,sans-serif;font-size:10px;letter-spacing:2px;font-weight:500}nav a{letter-spacing:1.4px;font-size:11px}nav a:hover{text-decoration:underline;text-underline-offset:5px}.monogram{font-size:28px}.monogram i{font-family:'Great Vibes',cursive;font-size:30px;margin:0 4px}.hero{position:relative;text-align:center;margin:22px 24px 0;padding:58px 20px 32px;min-height:820px}.frame{position:absolute;inset:0;pointer-events:none}.frame svg{display:block;width:100%;height:100%;overflow:visible}.frame path{fill:none;stroke:#974b4f;stroke-width:1.15;stroke-linejoin:round;stroke-linecap:round}.hero-content{position:relative}.eyebrow{margin:0 0 22px}h1{font-weight:400;font-size:clamp(64px,7.6vw,112px);letter-spacing:-3px;line-height:1.1;margin:0}h1 em{font-family:'Great Vibes',cursive;font-weight:400;display:inline-block;margin:0 10px;font-size:.95em}p{line-height:1.6}.hero-sub{font-style:italic;font-size:23px;margin:14px 0 8px}.landscape{width:min(680px,90%);height:310px;object-fit:contain;mix-blend-mode:multiply;display:block;margin:0 auto}.date{display:flex;align-items:center;justify-content:center;gap:28px;margin:7px 0 26px}.date strong{font-weight:500;font-size:30px;letter-spacing:2px}.date i{font-weight:400;opacity:.6;margin:0 8px}.button{display:inline-flex;align-items:center;justify-content:center;gap:30px;min-height:48px;padding:16px 25px;border:1px solid var(--wine);background:transparent;cursor:pointer;letter-spacing:1.5px;text-transform:uppercase;color:var(--wine);transition:background .2s,color .2s}.button:hover{background:var(--wine);color:var(--paper)}.button span{font-size:17px}.scroll{display:block;margin:24px auto 0;font-size:26px;width:40px}.intro{text-align:center;padding:90px 20px 85px}.intro-time{margin:34px 0 0;letter-spacing:1px}.mobile{display:none}.faltan{font-size:20px;font-style:italic;color:var(--muted);margin:26px 0 0}.intro .countdown{margin-top:16px}.ornament{display:block;font-size:33px;margin-bottom:26px}h2{font-size:clamp(37px,4vw,56px);font-weight:400;line-height:1.13;margin:0 0 25px;letter-spacing:-1px}h2 em{font-family:'Great Vibes',cursive} .intro>p:not(.eyebrow){color:var(--muted)}.countdown{display:flex;gap:30px;justify-content:center;margin:45px 0 0;align-items:center}.countdown b{display:block;font-size:50px;font-weight:400;line-height:1.2}.countdown span{font-size:9px}.countdown i{font-size:28px;font-style:normal;opacity:.5}.story{padding:75px 6% 95px;text-align:center;border-bottom:1px solid #782d3625}.story-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:55px;max-width:1160px;margin:40px auto 0}.story-grid img{width:100%;height:245px;object-fit:contain;mix-blend-mode:multiply;margin-bottom:25px}.story h3{font-size:29px;font-weight:500;margin:0 0 12px}.story .eyebrow{margin-bottom:15px}.story article p:not(.eyebrow){font-size:18px;color:var(--muted);margin:0}.story-middle{padding-top:88px}.script{font-family:'Great Vibes',cursive;font-weight:400;font-size:55px}.story-middle .script{display:block;height:182px;transform:rotate(-7deg);padding-top:25px}.little-star{display:block;font-size:32px;margin:30px}.celebration{display:grid;grid-template-columns:1fr 1fr;align-items:center;padding:85px 7%;background:#ebe9dc;border-top:1px solid #782d3625;border-bottom:1px solid #782d3625}.celebration img{width:100%;mix-blend-mode:multiply}.venue-name{font-size:32px;margin:25px 0 0}.venue-name+p{margin:0 0 24px}.time{line-height:1.7}.venue-copy>.button{margin-top:18px}.details-section{display:grid;grid-template-columns:1fr 1fr;padding:85px 7%;text-align:center}.details-section>div{padding:0 40px}.details-section>div+div{border-left:1px solid #782d3630}.details-section h2{font-size:40px}.details-section p:not(.eyebrow){font-size:19px;color:var(--muted)}.swatches{display:flex;gap:12px;justify-content:center;margin:25px 0 14px}.swatches i{width:22px;height:22px;border-radius:50%;background:var(--swatch)}small{font-size:16px;font-style:italic;color:var(--muted)}.coming{display:block;line-height:1.8;letter-spacing:1px;margin-top:28px;opacity:.7}.rsvp{background:var(--wine);color:var(--paper);padding:80px 20px;text-align:center}.rsvp h2{font-size:64px}.rsvp .button{border-color:var(--paper);background:var(--paper);margin-top:20px}.rsvp .button:hover{color:var(--paper);background:transparent}.rsvp-note{font-size:15px;opacity:.7}footer{text-align:center;padding:65px 20px 45px}footer .script{margin:0 0 30px;font-size:46px}footer .monogram{display:block}footer>p:not(.script){font-size:9px;margin-top:25px}footer>span{font-size:16px;font-style:italic;opacity:.65}dialog{position:fixed;inset:0;margin:auto;max-width:480px;width:calc(100% - 40px);padding:45px 35px;text-align:center;background:var(--paper);border:1px solid var(--wine);color:var(--wine)}dialog::before{content:'';position:absolute;inset:0;pointer-events:none;background-image:url('/assets/paper.svg');background-size:380px 380px;mix-blend-mode:multiply;opacity:.55}dialog .button{margin-top:28px}dialog::backdrop{background:#25151988}dialog h2{font-size:37px}dialog p{font-size:20px}.close{position:absolute;right:12px;top:8px;border:0;background:none;font-size:30px;color:var(--wine);cursor:pointer}:focus-visible{outline:2px solid #b06540;outline-offset:5px}@media(max-width:700px){header{height:65px;padding:0 23px}nav{gap:18px}nav a{font-size:9px;letter-spacing:.5px}.nav-date{display:none}.monogram{font-size:23px}.hero{margin:12px 10px 0;padding:52px 17px 24px;min-height:680px}h1{font-size:67px;letter-spacing:-2px;max-width:350px;margin:auto}h1 em{font-size:53px;display:block;margin:-5px 0 -10px}.hero-sub{font-size:19px;margin-top:23px}.landscape{height:210px;width:100%;margin:0}.date{gap:12px;flex-wrap:wrap;margin-top:3px}.date strong{font-size:24px;width:100%;order:-1}.date>span{font-size:8px}.eyebrow{font-size:9px;letter-spacing:2px}.intro{padding:65px 23px}.intro p:not(.eyebrow){font-size:19px}.countdown{gap:22px}.countdown b{font-size:42px}.story{padding:60px 25px}.story-grid{grid-template-columns:1fr;gap:35px;margin-top:25px;max-width:370px}.story-grid img{height:220px;margin-bottom:15px}.story-middle{padding-top:10px}.story-middle .script{height:110px}.little-star{margin-bottom:0}.celebration{grid-template-columns:1fr;text-align:center;padding:60px 25px 30px}.celebration img{margin-top:25px}.details-section{grid-template-columns:1fr;padding:50px 25px}.details-section>div{padding:10px 0 40px}.details-section>div+div{border-left:0;border-top:1px solid #782d3630;padding-top:45px;padding-bottom:5px}.rsvp{padding:65px 25px}.rsvp h2{font-size:47px}footer .script{font-size:37px}.mobile{display:inline}.intro-time .sep{display:none}.desktop{display:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Santiago: conservar la acuarela completa junto a su historia. */
.story-middle{padding-top:0}.story-middle .script{height:auto;padding:0;margin:0 0 24px;font-size:42px;transform:rotate(-5deg)}
@media(max-width:700px){.story-middle{padding-top:0}.story-middle .script{height:auto;margin-bottom:24px}}

/* Recuadro de la portada hecho en CSS (antes venía dentro de la foto). */
.cover-frame{display:block;width:min(340px,85%);height:auto;margin:26px auto 28px;position:relative;z-index:11;padding:14px}
.cover-photo{display:block;width:100%;height:auto;margin:0;border:1.15px solid #974b4f;padding:12px}
@media(max-width:700px){.cover-frame{width:min(280px,90%);margin:24px auto;padding:8px}.cover-photo{padding:7px}}

.cover-date{font-size:30px;letter-spacing:1px;line-height:1.4;margin:24px 0 16px}@media(max-width:700px){.cover-date{font-size:24px;letter-spacing:.3px}}

/* Portada con las proporciones y jerarquía de la invitación impresa. */
.hero{width:calc(100% - 48px);max-width:760px;aspect-ratio:2 / 3;min-height:0;margin:28px auto 0;padding:90px 40px;display:flex;align-items:center;justify-content:center}
.hero-content{width:100%;display:flex;flex-direction:column;align-items:center;text-align:center}
.invitation-title{margin:0 0 28px;line-height:.9;font-weight:400}
.invitation-title span{display:block;font-family:'Great Vibes',cursive;font-size:86px;font-weight:400}
.invitation-title strong{display:block;font-size:43px;font-weight:400;letter-spacing:1px;margin-top:4px}
.hero .cover-frame{width:56%;max-width:380px;margin:0 auto 24px}
.hero h1{font-size:34px;font-weight:500;letter-spacing:2px;line-height:1.3;margin:0;max-width:none}
.hero h1 em{display:inline;font-size:1em;margin:0 3px}
.hero .cover-date{font-size:27px;letter-spacing:1px;line-height:1.4;margin:22px 0 0}
@media(max-width:700px){
.hero{width:calc(100% - 20px);padding:60px 22px;min-height:620px;margin:12px auto 0}
.invitation-title{margin-bottom:22px}.invitation-title span{font-size:61px}.invitation-title strong{font-size:31px}
.hero .cover-frame{width:68%}
.hero h1{font-size:25px;letter-spacing:1px}.hero h1 em{display:inline;margin:0 2px;font-size:1em}
.hero .cover-date{font-size:20px;letter-spacing:.3px;margin-top:19px}
}

/* Story artwork bounds; the venue uses its own transparent watercolor edges. */
.story-art{height:245px;display:flex;align-items:center;justify-content:center;margin-bottom:25px}
.story-grid .story-art img{display:block;width:auto;height:auto;max-width:100%;max-height:100%;margin:0;object-fit:contain}
.story-art img{
-webkit-mask-image:linear-gradient(to right,transparent 0%,#000 13%,#000 87%,transparent 100%),linear-gradient(to bottom,transparent 0%,#000 13%,#000 87%,transparent 100%);
mask-image:linear-gradient(to right,transparent 0%,#000 13%,#000 87%,transparent 100%),linear-gradient(to bottom,transparent 0%,#000 13%,#000 87%,transparent 100%);
-webkit-mask-composite:source-in;mask-composite:intersect;
}
.celebration>img{-webkit-mask-image:none;mask-image:none;mix-blend-mode:normal;filter:none;height:auto}
@media(max-width:700px){.story-art{height:220px;margin-bottom:15px}.story-grid .story-art img{height:auto;margin:0}}
/* Allow room for the calligraphic ampersand's overhanging strokes. */
.celebration h2 em{display:inline-block;margin-inline:.18em .30em}
.hero h1 em{display:inline-block;margin-inline:.14em .18em;font-family:'EB Garamond',Georgia,serif;font-style:normal;font-weight:400}

/* Real alpha in the artwork: no artificial fading or blend mode. */
.story-middle .story-art img{-webkit-mask-image:none;mask-image:none;mix-blend-mode:normal;filter:none}

.detail-icon{display:block;width:62px;height:62px;margin:0 auto 25px;color:var(--wine)}.attire-icon{width:86px}

.story-art img.transparent-art{-webkit-mask-image:none;mask-image:none;mix-blend-mode:normal;filter:none}

/* One shared landscape format for the three moments of the story. */
.story-grid .story-art{width:100%;height:auto;aspect-ratio:3 / 2;margin-bottom:25px}
.story-grid .story-art img{width:100%;height:100%;max-width:none;max-height:none;object-fit:contain;-webkit-mask-image:none;mask-image:none;mix-blend-mode:normal;filter:none}
@media(max-width:700px){.story-grid .story-art{height:auto;aspect-ratio:3 / 2;margin-bottom:20px}.story-grid .story-art img{height:100%}}

.invitation-title{font-family:'Great Vibes',cursive;font-size:76px;font-weight:400;line-height:1.25;white-space:nowrap;margin:0 0 28px}
@media(max-width:700px){.invitation-title{font-size:clamp(38px,11.5vw,60px);margin-bottom:22px}}

.directions-mobile,.directions-note-mobile{display:none}
.venue-copy .directions-note{margin:14px 0 0;font-size:17px;font-style:italic;letter-spacing:.2px}
@media(max-width:700px){.venue-copy>.directions-desktop{display:none}.venue-copy>.directions-note{display:none}.celebration>.directions-mobile{display:inline-flex;justify-self:center;margin:24px 0 0}.celebration>.directions-note-mobile{display:block;margin:14px 0 0;font-size:17px;font-style:italic}}
/* Mobile: place the watercolor above the address line. */
@media(max-width:700px){
  .venue-copy{display:contents}
  .celebration .eyebrow{order:1}
  .celebration h2{order:2}
  .celebration .venue-name{order:3}
  .celebration .venue-name+p{order:4}
  .celebration>img{order:5;margin:25px 0}
  .celebration .venue-name+p+p{order:6}
  .celebration>.directions-mobile{order:7}
}

.cover-next{display:flex;align-items:center;justify-content:center;width:44px;height:44px;margin:20px auto 0;color:var(--wine)}
@media(max-width:700px){
.hero{aspect-ratio:auto;min-height:540px;min-height:max(540px,calc(100svh - 89px));margin:12px auto;padding:28px 22px}
.hero-content{gap:18px}
.hero .invitation-title,.hero .cover-frame,.hero h1,.hero .cover-date,.hero .cover-next{margin:0}
.hero .cover-frame{width:auto;max-width:68%}
.hero .cover-next{height:36px;flex-shrink:0}
}

/* Persistent invitation header on every screen size. */
header{position:sticky;top:0;z-index:20;isolation:isolate;background:var(--paper)}
header::before{content:"";position:absolute;inset:0;pointer-events:none;z-index:-1;background-image:url("/assets/paper.svg");background-size:380px 380px;mix-blend-mode:multiply;opacity:.55}
header .nav-date{display:block;white-space:nowrap;font-size:11px}
@media(max-width:700px){html{scroll-padding-top:65px}header .nav-date{font-size:11px;letter-spacing:2px}}

.button-arrow{display:block;flex:0 0 20px;width:20px;height:20px}

.gift-cols{display:flex;justify-content:center;max-width:560px;margin:26px auto 0}
.gift-col{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:13px;padding:0 12px}
.gift-col+.gift-col{border-left:1px solid #782d3630}
.gift-currency{margin:0;font-family:'Cormorant Garamond',Georgia,serif;font-size:24px;letter-spacing:1px;font-weight:500}
.gift-alias{font-size:18px;line-height:1.4;white-space:nowrap}
@media(max-width:900px){.gift-alias{font-size:15px}}
@media(max-width:480px){.gift-alias{font-size:13px}}

/* "El gran día" con la misma tipografía que "Un día, toda una vida". */
.venue-copy{text-align:center}
.venue-copy p:not(.eyebrow):not(.venue-name){color:var(--muted)}
@media(max-width:700px){.celebration p:not(.eyebrow):not(.time){font-size:19px}}

/* Botón para copiar cada alias. */
.copy-alias{display:inline-flex;align-items:center;justify-content:center;padding:14px 24px;font-family:Montserrat,sans-serif;font-size:10px;letter-spacing:1.5px;font-weight:500;text-transform:uppercase;color:var(--wine);background:transparent;border:1px solid var(--wine);cursor:pointer;transition:background .2s,color .2s}
.copy-alias:hover{background:var(--wine);color:var(--paper)}
footer .brindis{display:block;width:190px;height:auto;margin:0 auto 26px;mix-blend-mode:multiply}
@media(max-width:700px){footer .brindis{width:135px;margin-bottom:20px}}
.monogram .logo-pa{display:block;height:44px;width:auto}footer .monogram .logo-pa{margin:0 auto}@media(max-width:700px){.monogram .logo-pa{height:34px}}
footer>p.quote{font-style:italic;font-size:12px;color:var(--muted);margin:0 auto 30px;max-width:500px;line-height:1.5}

/* Colores a evitar en el dress code. */
.avoid-title{font-size:16px;font-style:italic;color:var(--muted);margin:0}
.swatches-avoid{margin:14px 0 0}
