.envelope-screen{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);background:radial-gradient(circle at 50% 30%,var(--color-navy) 0%,var(--color-navy-deep) 100%);z-index:10;padding:var(--space-sm);overflow-x:hidden;justify-content:center}.envelope-screen__names{font-family:var(--font-display);font-size:clamp(1.4rem,5vw,2rem);letter-spacing:.04em;color:var(--color-cream)}.envelope-screen__title{font-family:Cormorant Garamond,serif;font-size:22px;font-weight:500;text-transform:uppercase;letter-spacing:4px;color:var(--color-gold);margin-bottom:2px}.envelope-screen__date{margin-top:12px;font-family:Montserrat,sans-serif;font-size:12px;letter-spacing:3px;color:var(--color-gold-soft)}.envelope-screen__names span{color:var(--color-gold);padding:0 .4rem}.envelope-screen__hint{font-size:.75rem;letter-spacing:.14em;color:var(--color-ink-soft);text-transform:uppercase;animation:hint-pulse 2.4s ease-in-out infinite}.envelope-screen__image{width:100%;height:100%;object-fit:contain;margin-bottom:10px}.envelope__letter-title{font-family:Cormorant Garamond,serif;font-size:22px;font-weight:500;text-transform:uppercase;letter-spacing:4px;color:var(--color-gold);margin-bottom:12px}.envelope-card{position:absolute;top:74%;left:50%;transform:translate(-50%,-50%);width:80%;aspect-ratio:1 / 1}@keyframes hint-pulse{0%{opacity:0;margin-top:30px}to{opacity:1;margin-top:0}}.envelope{position:relative;width:min(78vw,450px);height:min(58vw,270px);padding:0}.envelope__shadow{position:absolute;bottom:-18px;left:8%;width:84%;height:22px;background:#333f2c2e;filter:blur(10px);border-radius:50%}.envelope__back{position:absolute;top:0;right:0;bottom:0;left:0;background-color:var(--color-navy-deep);border-radius:4px}.envelope__letter{position:absolute;left:8%;right:8%;top:10%;height:78%;background-color:var(--color-white-warm);border-radius:3px;box-shadow:0 6px 18px #2a2a2226;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;transition:transform 1s cubic-bezier(.22,1,.36,1)}.envelope__letter-line{width:60%;height:2px;background-color:var(--color-gold-soft)}.envelope__letter-heart{margin-top:.4rem;color:var(--color-gold);font-size:1.1rem}.envelope__front-left,.envelope__front-right{position:absolute;bottom:0;width:90%;height:100%;background-color:var(--color-navy);z-index:3}.envelope__front-left{left:0;clip-path:polygon(0 0,100% 100%,0 100%);border-bottom-left-radius:4px}.envelope__front-right{right:0;clip-path:polygon(100% 0,100% 100%,0 100%);border-bottom-right-radius:4px}.envelope__flap{position:absolute;top:0;left:0;width:100%;height:68%;background-color:var(--color-blue-soft);clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:top center;transform:rotateX(0);z-index:4;transition:transform .7s cubic-bezier(.45,0,.55,1)}.envelope__seal{position:absolute;top:65%;left:50%;transform:translate(-50%,-50%);width:80px;height:80px;border-radius:50%;background-color:var(--color-gold);display:flex;align-items:center;justify-content:center;z-index:5;box-shadow:0 3px 10px 12px #2a2a2240;transition:transform .5s ease,opacity .5s ease}.envelope__seal-initial{font-family:var(--font-display);font-size:.95rem;color:var(--color-white-warm);letter-spacing:.02em}.envelope--opening .envelope__seal{transform:translate(-50%,-50%) scale(0);opacity:0}.envelope--opening .envelope__flap{transform:rotateX(180deg) translateY(-2px)}.envelope--opening .envelope__letter{transform:translateY(-92%) scale(1.08);transition-delay:.35s}@media (prefers-reduced-motion: reduce){.envelope__flap,.envelope__letter,.envelope__seal{transition-duration:.15s}}.invitation-screen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 50% 30%,var(--color-navy) 0%,var(--color-navy-deep) 100%);padding:var(--space-sm)}.invitation-card{width:min(90vw,400px);padding:var(--space-lg) var(--space-md);background-color:var(--color-white-warm);border:1px solid var(--color-gold-soft);border-radius:4px;text-align:center;box-shadow:0 20px 50px #2a2a221f;position:relative;overflow:hidden;background-image:radial-gradient(circle at 20% 20%,rgba(201,165,92,.045) 0,transparent 35%),radial-gradient(circle at 80% 70%,rgba(96,112,138,.035) 0,transparent 40%),repeating-linear-gradient(0deg,rgba(32,38,51,.02) 0px,rgba(32,38,51,.02) 1px,transparent 1px,transparent 4px)}.invitation-card__pretitle{font-size:.78rem;letter-spacing:.16em;color:var(--color-blue-soft);text-transform:uppercase;margin-bottom:var(--space-sm)}.invitation-card__title{font-size:clamp(1.7rem,6vw,2.2rem);color:var(--color-navy-deep);margin-bottom:var(--space-md)}.invitation-card__names{font-family:var(--font-display);font-size:clamp(1.5rem,5vw,1.9rem);color:var(--color-ink);display:flex;align-items:center;justify-content:center;gap:.6rem;margin-bottom:var(--space-sm)}.invitation-card__amp{color:var(--color-gold);font-style:italic}.invitation-card__date{font-size:.85rem;letter-spacing:.08em;color:var(--color-ink-soft);margin-bottom:var(--space-lg)}.invitation-card__guest{display:grid;gap:.2rem;margin:calc(var(--space-sm) * -.25) 0 var(--space-lg);color:var(--color-ink-soft);font-size:.9rem}.invitation-card__guest strong{font-family:var(--font-display);font-size:clamp(1.5rem,5vw,1.9rem);color:var(--color-ink);display:flex;align-items:center;justify-content:center;gap:.6rem;margin-bottom:var(--space-sm);font-weight:500}.invitation-card__button{width:100%;justify-content:center}.invitation-card__not-found{margin:0;padding:var(--space-sm) var(--space-xs);border-top:1px solid rgba(201,165,92,.45);border-bottom:1px solid rgba(201,165,92,.45);color:var(--color-ink-soft);font-size:.9rem;line-height:1.7}.hero{position:relative;width:100%;height:100svh;min-height:560px;display:flex;align-items:center;justify-content:center;overflow:hidden}.hero__photo{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(160deg,#4a5940,#333f2c),url(/assets/Portada1-O3Kn82g0.jpeg);background-blend-mode:multiply;background-size:cover;background-position:center;animation:hero-kenburns 18s ease-in-out infinite alternate;width:100%;height:100%;object-fit:cover;object-position:center;border-radius:20px;display:block}@keyframes hero-kenburns{0%{transform:scale(1)}to{transform:scale(1.12)}}.hero__overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#2a2a2259,#2a2a2226 45%,#2a2a228c)}.hero__content{position:relative;z-index:1;text-align:center;color:var(--color-white-warm);padding:0 var(--space-sm)}.hero__kicker{font-size:.8rem;letter-spacing:.2em;text-transform:uppercase;opacity:.85;margin-bottom:var(--space-sm)}.hero__names{font-size:clamp(2.6rem,11vw,4.5rem);display:flex;align-items:center;justify-content:center;gap:.5rem;flex-wrap:wrap}.hero__amp{font-style:italic;color:var(--color-gold-soft);font-size:.75em}.hero__date{margin-top:var(--space-sm);font-size:.95rem;letter-spacing:.1em}.hero__message{margin-top:var(--space-md);font-family:var(--font-display);font-style:italic;font-size:1.15rem;opacity:.92}.hero__scroll-indicator{position:absolute;bottom:var(--space-md);left:50%;transform:translate(-50%);z-index:1;color:var(--color-white-warm);opacity:.75}@media (prefers-reduced-motion: reduce){.hero__photo{animation:none}}.family{background-color:var(--color-white-warm);position:relative;overflow:hidden}.family:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.75;background-image:radial-gradient(rgba(32,38,51,.035) 1px,transparent 1px);background-size:5px 5px}.family__blessing{font-family:var(--font-display);font-size:1.3rem;font-style:italic;color:var(--color-navy-deep);line-height:1.5;margin-bottom:var(--space-lg)}.family__grid{display:grid;grid-template-columns:1fr;gap:var(--space-md);margin-top:var(--space-sm)}@media (min-width: 560px){.family__grid{grid-template-columns:1fr 1fr}}.family__extra{margin-top:var(--space-lg);padding-top:var(--space-lg);border-top:1px solid var(--color-gold-soft)}.family__group-title{font-family:var(--font-body);font-size:.9rem;letter-spacing:.14em;color:var(--color-blue-soft);text-transform:uppercase;margin-bottom:var(--space-xs)}.family__names{font-family:var(--font-display);font-size:1.2rem;color:var(--color-ink)}.calendar{background-color:var(--color-cream);position:relative;overflow:hidden}.calendar:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.75;background-image:radial-gradient(rgba(32,38,51,.035) 1px,transparent 1px);background-size:5px 5px}.calendar__grid{max-width:320px;margin:0 auto;border:1px solid var(--color-gold-soft);border-radius:4px;padding:var(--space-sm);background-color:var(--color-white-warm)}.calendar__row{display:grid;grid-template-columns:repeat(7,1fr)}.calendar__row--head span{font-size:.7rem;letter-spacing:.05em;color:var(--color-blue-soft);padding-bottom:var(--space-xs)}.calendar__day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:.85rem;color:var(--color-ink);border-radius:50%}.calendar__day--active{background-color:var(--color-navy-deep);color:var(--color-white-warm);font-weight:600}.calendar__highlight{margin-top:var(--space-lg);font-family:var(--font-display);font-size:1.2rem;letter-spacing:.03em;color:var(--color-navy-deep);margin-bottom:var(--space-md);text-transform:uppercase}.countdown{position:relative;width:100%;padding:var(--space-xl) var(--space-sm);display:flex;align-items:center;justify-content:center;background-image:url(/assets/Portada2-CrZ2NAFE.jpeg);background-size:cover;background-position:center;background-attachment:fixed}.countdown__overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#2c343fb8}.countdown__content{position:relative;z-index:1;text-align:center;color:var(--color-white-warm);width:100%;max-width:var(--max-content-width)}.countdown__eyebrow{color:var(--color-gold-soft)}.countdown__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-xs);margin-top:var(--space-sm)}.countdown__unit{display:flex;flex-direction:column;align-items:center;padding:var(--space-sm) .25rem;border:1px solid rgba(246,242,233,.25);border-radius:4px}.countdown__value{font-family:var(--font-display);font-size:clamp(1.8rem,8vw,2.8rem);line-height:1}.countdown__label{margin-top:.4rem;font-size:.65rem;letter-spacing:.12em;text-transform:uppercase;color:var(--color-gold-soft)}.countdown__arrived{font-size:clamp(1.8rem,6vw,2.4rem)}@media (max-width: 420px){.countdown__grid{gap:.4rem}}@media (max-width: 768px){.countdown{background-attachment:scroll}}.location{background-color:var(--color-white-warm);position:relative;overflow:hidden}.location:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.75;background-image:radial-gradient(rgba(32,38,51,.035) 1px,transparent 1px);background-size:5px 5px}.location__grid{display:grid;grid-template-columns:1fr;gap:var(--space-md);margin-top:var(--space-md)}@media (min-width: 560px){.location__grid{grid-template-columns:1fr 1fr}}.location-card{background-color:var(--color-cream);border:1px solid var(--color-gold-soft);border-radius:4px;padding:var(--space-lg) var(--space-md);display:flex;flex-direction:column;align-items:center;text-align:center}.location-card__icon{color:var(--color-navy);margin-bottom:var(--space-sm)}.location-card__label{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--color-blue-soft);margin-bottom:.3rem}.location-card__place{font-size:1.4rem;color:var(--color-navy-deep);margin-bottom:var(--space-sm)}.location-card__detail{display:flex;align-items:center;gap:.4rem;font-size:.85rem;color:var(--color-ink-soft);margin-bottom:.4rem}.location-card__button{margin-top:var(--space-sm)}.dresscode{background-color:var(--color-cream);position:relative;overflow:hidden}.dresscode:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.75;background-image:radial-gradient(rgba(32,38,51,.035) 1px,transparent 1px);background-size:5px 5px}.dresscode__grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md);margin-top:var(--space-md)}.section-eyebrow__palette{font-family:var(--font-body);font-size:.72rem;letter-spacing:.18em;color:var(--color-blue-soft);margin-top:var(--space-lg)}.dresscode__item{display:flex;flex-direction:column;align-items:center;gap:.5rem;color:var(--color-navy)}.dresscode__item h3{font-size:1.15rem;color:var(--color-navy-deep)}.dresscode__item p{font-size:.85rem;color:var(--color-ink-soft);line-height:1.5}.dresscode__palette{display:flex;justify-content:center;gap:.6rem;margin-top:var(--space-sm)}.dresscode__swatch{width:28px;height:28px;border-radius:50%;border:1px solid rgba(42,42,34,.15)}.timeline{background-color:var(--color-white-warm);position:relative;overflow:hidden}.timeline:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.75;background-image:radial-gradient(rgba(32,38,51,.035) 1px,transparent 1px);background-size:5px 5px}.timeline__list{list-style:none;margin-top:var(--space-lg);position:relative;text-align:left}.timeline__list:before{content:"";position:absolute;top:6px;bottom:6px;left:15px;width:1px;background-color:var(--color-gold-soft)}.timeline__item{position:relative;display:flex;gap:var(--space-sm);padding-bottom:var(--space-lg)}.timeline__item:last-child{padding-bottom:0}.timeline__marker{position:relative;z-index:1;flex-shrink:0;width:32px;height:32px;border-radius:50%;background-color:var(--color-navy-deep);color:var(--color-white-warm);display:flex;align-items:center;justify-content:center}.timeline__time{display:block;font-size:.72rem;letter-spacing:.1em;color:var(--color-gold);margin-bottom:.2rem}.timeline__title{font-size:1.25rem;color:var(--color-navy-deep);margin-bottom:.2rem}.timeline__description{font-size:.85rem;color:var(--color-ink-soft);line-height:1.5}.gallery{background-color:var(--color-cream)}.gallery__frame{width:100%;max-width:560px;margin:var(--space-lg) auto 0;padding:0 var(--space-sm)}.gallery__viewport{position:relative;width:100%;aspect-ratio:4 / 5;overflow:hidden;border-radius:4px;background-color:var(--color-blue-soft);touch-action:pan-y}.gallery__slide{position:absolute;top:0;right:0;bottom:0;left:0}.gallery__slide img{width:100%;height:100%;object-fit:cover}.gallery__caption{position:absolute;left:0;right:0;bottom:0;padding:var(--space-sm);background:linear-gradient(0deg,rgba(42,42,34,.65),transparent);color:var(--color-white-warm);font-family:var(--font-display);font-style:italic;font-size:1rem;text-align:left}.gallery__nav{position:absolute;top:50%;transform:translateY(-50%);width:38px;height:38px;border-radius:50%;background-color:#fffdf8d9;color:var(--color-navy-deep);display:flex;align-items:center;justify-content:center;transition:background-color .3s ease}.gallery__nav:hover{background-color:var(--color-white-warm)}.gallery__nav--prev{left:10px}.gallery__nav--next{right:10px}.gallery__dots{display:flex;justify-content:center;gap:.5rem;margin-top:var(--space-sm)}.gallery__dot{width:8px;height:8px;border-radius:50%;background-color:var(--color-gold-soft);transition:background-color .3s ease,transform .3s ease}.gallery__dot--active{background-color:var(--color-navy-deep);transform:scale(1.2)}.gifts{background-color:var(--color-white-warm);position:relative;overflow:hidden}.gifts:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.75;background-image:radial-gradient(rgba(32,38,51,.035) 1px,transparent 1px);background-size:5px 5px}.gifts__subtitle{font-size:.9rem;color:var(--color-ink-soft);max-width:380px;margin:0 auto}.gifts__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-sm);margin-top:var(--space-lg)}@media (min-width: 480px){.gifts__grid{grid-template-columns:repeat(2,1fr)}}.gifts__card{width:100%;display:flex;flex-direction:column;align-items:center;gap:.6rem;padding:var(--space-md) var(--space-xs);background-color:var(--color-cream);border:1px solid var(--color-gold-soft);border-radius:4px;color:var(--color-navy-deep);font-size:.8rem;transition:transform .3s ease,box-shadow .3s ease}.gifts__card:hover{transform:translateY(-3px);box-shadow:0 10px 20px #2a2a2214}.gifts__modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#2a2a228c;display:flex;align-items:center;justify-content:center;padding:var(--space-sm);z-index:50}.gifts__modal{position:relative;width:min(92vw,380px);background-color:var(--color-white-warm);border-radius:6px;padding:var(--space-lg) var(--space-md)}.gifts__modal h3{font-size:1.4rem;color:var(--color-navy-deep);margin-bottom:var(--space-md);text-align:center}.gifts__modal-close{position:absolute;top:var(--space-sm);right:var(--space-sm);color:var(--color-ink-soft)}.gifts__modal-row{display:flex;justify-content:space-between;gap:var(--space-sm);padding:.6rem 0;border-bottom:1px solid var(--color-cream);font-size:.85rem}.gifts__modal-row dt{color:var(--color-blue-soft)}.gifts__modal-row dd{color:var(--color-ink);text-align:right;word-break:break-word}.gifts__copy-value{display:inline-flex;align-items:center;justify-content:flex-end;gap:.45rem}.gifts__copy-button{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;padding:.25rem;color:var(--color-blue-soft);border-radius:3px;transition:color .2s ease,background-color .2s ease}.gifts__copy-button:hover,.gifts__copy-button:focus-visible{color:var(--color-navy-deep);background-color:var(--color-cream)}.gifts__copy-button:focus-visible{outline:2px solid var(--color-gold-soft);outline-offset:2px}.couple-message{background-color:var(--color-navy-deep);color:var(--color-white-warm)}.couple-message__intro{font-family:var(--font-display);font-size:1.3rem;font-style:italic;line-height:1.5;color:var(--color-white-warm);margin-bottom:var(--space-lg)}.couple-message__grid{display:grid;grid-template-columns:1fr;gap:var(--space-lg);text-align:center}@media (min-width: 560px){.couple-message__grid{grid-template-columns:1fr 1fr}}.couple-message__mark{font-family:var(--font-display);font-size:2.5rem;color:var(--color-gold);line-height:1}.couple-message__quote p{font-family:var(--font-display);font-size:1.2rem;line-height:1.5;margin:var(--space-xs) 0 var(--space-sm)}.couple-message__author{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--color-gold-soft)}.footer{width:100%;padding:var(--space-xl) var(--space-sm);background-color:var(--color-cream);display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--space-xs);position:relative;overflow:hidden}.footer:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.75;background-image:radial-gradient(rgba(32,38,51,.035) 1px,transparent 1px);background-size:5px 5px}.footer__title{font-size:clamp(2.2rem,8vw,3rem);color:var(--color-navy-deep)}.footer__message{font-size:.95rem;color:var(--color-ink-soft);margin-bottom:var(--space-md)}.footer__names{font-family:var(--font-display);font-size:1.5rem;color:var(--color-navy-deep)}.footer__date{font-size:.8rem;letter-spacing:.08em;color:var(--color-blue-soft);margin-bottom:var(--space-sm)}.footer__heart{color:var(--color-gold);margin:var(--space-sm) 0}.footer__rsvp{margin-top:var(--space-sm)}.music-player{position:fixed;bottom:var(--space-sm);left:var(--space-sm);z-index:40;width:44px;height:44px;border-radius:50%;background-color:var(--color-navy-deep);color:var(--color-white-warm);display:flex;align-items:center;justify-content:center;box-shadow:0 6px 16px #2a2a2240}.scroll-top{position:fixed;bottom:var(--space-sm);right:var(--space-sm);z-index:40;width:44px;height:44px;border-radius:50%;background-color:var(--color-white-warm);color:var(--color-navy-deep);border:1px solid var(--color-gold-soft);display:flex;align-items:center;justify-content:center;box-shadow:0 6px 16px #2a2a2226}.app-shell{position:relative;width:100%;min-height:100vh;background-color:var(--color-cream)}.landing{width:100%;overflow-x:hidden}:root{--color-navy-deep: #17253D;--color-navy: #243653;--color-blue-soft: #60708A;--color-cream: #F7F3EA;--color-white-warm: #FFFDF9;--color-gold: #C9A45C;--color-gold-soft: #E5D3A3;--color-ink: #202633;--color-ink-soft: #596273;--font-display: "Cormorant Garamond", serif;--font-body: "Montserrat", sans-serif;--space-xs: .5rem;--space-sm: 1rem;--space-md: 2rem;--space-lg: 3.5rem;--space-xl: 6rem;--radius-soft: 2px;--transition-elegant: .7s cubic-bezier(.22, 1, .36, 1);--max-content-width: 620px}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-body);background-color:var(--color-cream);color:var(--color-ink);overflow-x:hidden;-webkit-font-smoothing:antialiased}#root{overflow-x:hidden}img{max-width:100%;display:block}button{font-family:inherit;cursor:pointer;border:none;background:none}a{color:inherit;text-decoration:none}h1,h2,h3,h4{font-family:var(--font-display);font-weight:500;line-height:1.15}.section{width:100%;padding:var(--space-xl) var(--space-sm);display:flex;flex-direction:column;align-items:center}.section-inner{width:100%;max-width:var(--max-content-width);text-align:center}.section-eyebrow{font-family:var(--font-body);font-size:.72rem;letter-spacing:.18em;color:var(--color-blue-soft);margin-bottom:var(--space-xs)}.section-title{font-size:clamp(2rem,6vw,2.75rem);color:var(--color-navy-deep);margin-bottom:var(--space-sm)}.section-divider{width:40px;height:1px;background-color:var(--color-gold);margin:var(--space-sm) auto}.btn-elegant{display:inline-flex;align-items:center;gap:.5rem;padding:.9rem 2.2rem;border:1px solid var(--color-navy-deep);color:var(--color-navy-deep);font-size:.85rem;letter-spacing:.08em;background:transparent;transition:background-color .4s ease,color .4s ease}.btn-elegant:hover{background-color:var(--color-navy-deep);color:var(--color-white-warm)}.btn-elegant:focus-visible,button:focus-visible,a:focus-visible{outline:2px solid var(--color-gold);outline-offset:3px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}
