:root{--burgundy:#620110;--red:#a7031d;--sand:#d0a67a;--green:#374b34;--deep:#14251f;--paper:#f7f2e8;--gold:#c6a45d;--ink:#28231f;--serif:"Cormorant Garamond",Georgia,serif;--sans:"Montserrat",Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-weight:400;overflow-x:hidden}.locked{overflow:hidden}.hidden{position:absolute;left:-9999px}img{display:block;max-width:100%}a{color:inherit}.section-inner{width:min(1120px,calc(100% - 40px));margin:auto;padding:110px 0}.narrow{width:min(760px,calc(100% - 40px));text-align:center}.eyebrow{text-transform:uppercase;letter-spacing:.25em;font-size:.72rem;font-weight:600;margin:0 0 15px}.eyebrow.dark{color:var(--red)}h1,h2,h3{font-family:var(--serif);margin-top:0}h2{font-size:clamp(2.6rem,7vw,5.2rem);line-height:.95;font-weight:500;margin-bottom:30px}.paper-section{background-color:var(--paper);background-image:linear-gradient(rgba(247,242,232,.93),rgba(247,242,232,.93)),url('assets/acebo.jpg');background-size:cover;background-position:center}.section-green{background:var(--deep);color:#fff}.section-red{background:var(--burgundy);color:#fff}.button{display:inline-flex;align-items:center;justify-content:center;padding:15px 27px;border:1px solid transparent;text-decoration:none;text-transform:uppercase;letter-spacing:.15em;font-size:.7rem;font-weight:600;cursor:pointer;transition:.3s;border-radius:2px}.button-gold{background:var(--gold);color:var(--deep)}.button-light{background:#fff;color:var(--deep)}.button-outline{border-color:rgba(255,255,255,.6);color:#fff}.button-red{background:var(--red);color:#fff;width:100%;font-family:inherit}.button:hover,.gift-toggle:hover,.copy-button:hover{transform:translateY(-2px);filter:brightness(1.05)}
/* envelope */.envelope-screen{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;background:radial-gradient(circle at 50% 30%,#f4ead9,#d8c4a4);transition:opacity .8s,visibility .8s}.envelope-screen.hidden-screen{opacity:0;visibility:hidden}.envelope-scene{text-align:center;perspective:1200px}.envelope{position:relative;width:min(82vw,480px);aspect-ratio:1.55/1;background:#7f0617;box-shadow:0 30px 70px rgba(45,14,8,.38);transform-style:preserve-3d}.envelope-back{position:absolute;inset:0;background:linear-gradient(135deg,#9f0b22,#690313);border:1px solid rgba(255,255,255,.12)}.letter{position:absolute;left:6%;right:6%;bottom:7%;height:83%;background:#fbf4e8;padding-top:10%;font-family:var(--serif);display:flex;flex-direction:column;align-items:center;gap:7px;transition:transform 1.1s .45s;z-index:2;box-shadow:0 4px 20px rgba(0,0,0,.15)}.letter:before{content:"";position:absolute;inset:12px;border:1px solid #c6a45d}.letter span{font-family:var(--sans);font-size:.6rem;letter-spacing:.22em;text-transform:uppercase}.letter strong{font-size:clamp(1.8rem,7vw,3.2rem);font-weight:500;color:var(--burgundy)}.letter small{letter-spacing:.16em}.envelope-left,.envelope-right,.envelope-bottom,.envelope-flap{position:absolute;z-index:4}.envelope-left{inset:0;clip-path:polygon(0 0,55% 50%,0 100%);background:linear-gradient(90deg,#97091f,#7a0517)}.envelope-right{inset:0;clip-path:polygon(100% 0,45% 50%,100% 100%);background:linear-gradient(270deg,#8f071c,#690313)}.envelope-bottom{inset:0;clip-path:polygon(0 100%,50% 42%,100% 100%);background:linear-gradient(#9c0b22,#680313)}.envelope-flap{inset:0;clip-path:polygon(0 0,50% 60%,100% 0);background:linear-gradient(#b31029,#760417);transform-origin:top;transition:transform .9s;z-index:6;backface-visibility:hidden}.wax-seal{position:absolute;left:50%;top:51%;z-index:8;width:82px;height:82px;border-radius:50%;transform:translate(-50%,-50%);border:0;color:#5d430b;background:radial-gradient(circle at 35% 30%,#f7dc8a 0 8%,#d2aa4e 30%,#a77a22 68%,#6f4b0e);box-shadow:0 5px 14px rgba(0,0,0,.35),inset 0 0 0 5px rgba(255,232,159,.18);font-family:var(--serif);font-size:1.25rem;cursor:pointer;transition:.4s}.wax-seal:before{content:"";position:absolute;inset:9px;border:1px solid rgba(79,51,5,.55);border-radius:50%}.envelope.open .envelope-flap{transform:rotateX(180deg);z-index:1}.envelope.open .wax-seal{opacity:0;transform:translate(-50%,-50%) scale(.4)}.envelope.open .letter{transform:translateY(-74%)}.open-hint{margin:30px 0 8px;text-transform:uppercase;letter-spacing:.18em;font-size:.7rem;color:#5a4538}.skip-envelope{border:0;background:none;text-decoration:underline;color:#735d50;cursor:pointer}
/* hero */.hero{position:relative;min-height:100svh;background:url('assets/flor-navidad.jpg') center/cover no-repeat;color:#fff;display:grid;place-items:center;text-align:center}.hero-overlay{position:absolute;inset:0;background:linear-gradient(rgba(20,37,31,.45),rgba(20,37,31,.78))}.nav{position:absolute;top:0;left:0;right:0;z-index:2;display:flex;justify-content:center;gap:32px;padding:24px}.nav a{text-decoration:none;text-transform:uppercase;letter-spacing:.15em;font-size:.65rem}.hero-content{position:relative;z-index:1;padding:100px 20px}.hero h1{font-size:clamp(4.4rem,14vw,9rem);font-weight:500;line-height:.72;margin:25px 0 35px;text-shadow:0 4px 30px rgba(0,0,0,.28)}.hero h1 span{display:block;color:var(--gold);font-size:.6em;font-style:italic;margin:15px 0}.hero-date{font-family:var(--serif);font-size:1.6rem;letter-spacing:.22em;margin:0}.hero-place{letter-spacing:.16em;text-transform:uppercase;font-size:.75rem;margin:10px 0 36px}.scroll-mark{position:absolute;z-index:2;bottom:25px;font-size:2rem;animation:bounce 1.8s infinite}@keyframes bounce{50%{transform:translateY(8px)}}
.intro{position:relative;overflow:hidden}.intro p:not(.eyebrow){font-family:var(--serif);font-size:1.35rem;line-height:1.65}.date-card{margin:45px auto 0;border:1px solid var(--sand);width:230px;padding:24px 20px;display:flex;flex-direction:column;align-items:center;gap:10px;overflow:visible}.date-card strong{display:block;font-family:var(--serif);font-size:4.7rem;color:var(--red);line-height:1;margin:0;padding:0}.date-card span{display:block;letter-spacing:.15em;font-size:.65rem;line-height:1;white-space:nowrap}.couple-photo{height:min(82vh,900px);position:relative;overflow:hidden;background:#222}.couple-photo img{width:100%;height:100%;object-fit:cover;object-position:center 45%}.couple-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 60%,rgba(20,37,31,.68))}.venue{text-align:center}.venue p:not(.eyebrow){max-width:650px;margin:0 auto 35px;line-height:1.8}.venue-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.timeline-section h2{text-align:center}.timeline-section>.section-inner>.eyebrow{text-align:center}.timeline{max-width:760px;margin:55px auto 0;position:relative}.timeline:before{content:"";position:absolute;left:106px;top:8px;bottom:8px;width:1px;background:var(--sand)}.timeline-item{display:grid;grid-template-columns:85px 1fr;gap:42px;padding:0 0 42px}.timeline-item time{font-family:var(--serif);font-size:1.8rem;color:var(--red);text-align:right}.timeline-item div{position:relative}.timeline-item div:before{display:none}.timeline-icon{position:absolute;left:-37px;top:-3px;z-index:1;display:grid;place-items:center;width:32px;height:32px;border:1px solid var(--sand);border-radius:50%;background:var(--paper);font-size:1rem;line-height:1}.timeline-item h3{font-size:1.65rem;margin-bottom:4px}.timeline-item p{margin:0;line-height:1.6;color:#655d55}.train-break{height:72vh;min-height:520px;background:url('assets/tren.jpg') center/cover fixed;display:grid;place-items:center;position:relative}.train-break:before{content:"";position:absolute;inset:0;background:rgba(20,37,31,.2)}.quote{position:relative;color:#fff;font-family:var(--serif);font-size:clamp(2.5rem,8vw,5.4rem);font-style:italic;text-align:center;padding:20px;text-shadow:0 3px 25px #122}.bus-section{text-align:center}.bus-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;max-width:830px;margin:50px auto 25px}.bus-card{border:1px solid rgba(255,255,255,.3);padding:35px 25px;background:rgba(255,255,255,.05)}.bus-card.full{grid-column:1/-1}.bus-card time{display:block;font-family:var(--serif);font-size:3.5rem;color:var(--gold)}.bus-card h3{font-size:2rem;margin:3px 0}.bus-direction{letter-spacing:.2em;font-size:.65rem}.bus-card p,.fine-print{opacity:.82;line-height:1.6}.rsvp-form{text-align:left;margin-top:45px;display:grid;gap:22px}.rsvp-form label,.rsvp-form legend{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;font-weight:600}.rsvp-form input,.rsvp-form select,.rsvp-form textarea{width:100%;margin-top:8px;border:1px solid #cdbfae;background:rgba(255,255,255,.62);padding:14px;font:inherit;color:var(--ink);border-radius:0}.rsvp-form input:focus,.rsvp-form select:focus,.rsvp-form textarea:focus{outline:2px solid var(--sand);outline-offset:2px}.rsvp-form fieldset{border:1px solid #cdbfae;padding:16px}.rsvp-form .radio{display:inline-flex;align-items:center;margin-right:25px;text-transform:none;font-weight:400;font-size:.9rem}.rsvp-form .radio input{width:auto;margin:0 8px 0 0}#nombresAsistentes,#opcionesAutobus{display:grid;gap:22px}.form-intro{line-height:1.7}.privacy{text-align:center;font-size:.7rem;color:#7b7065}.gift-section{position:relative;text-align:center;overflow:hidden}.ornament-bg{position:absolute;inset:0;background:linear-gradient(rgba(20,37,31,.87),rgba(20,37,31,.92)),url('assets/bolas.jpg') center/cover}.gift-section .section-inner{position:relative}.gift-section p:not(.eyebrow){line-height:1.8}.gift-toggle,.copy-button{border:1px solid var(--gold);background:transparent;color:#fff;padding:14px 22px;text-transform:uppercase;letter-spacing:.12em;font:600 .7rem var(--sans);cursor:pointer;transition:.25s}.bank-details{margin:30px auto 0;padding:28px;border:1px solid rgba(255,255,255,.25);max-width:540px}.bank-details span,.bank-details small{display:block;opacity:.72}.bank-details strong{display:block;font-family:var(--serif);font-size:clamp(1.25rem,4vw,2rem);margin:10px 0 20px;letter-spacing:.05em}.copy-button{padding:10px 16px}.bank-details small{margin-top:14px;font-size:.65rem}footer{height:70vh;min-height:540px;position:relative;display:grid;place-items:center;overflow:hidden;color:#fff;text-align:center}footer img{position:absolute;width:100%;height:100%;object-fit:cover;object-position:center}.footer-overlay{position:absolute;inset:0;background:rgba(20,37,31,.58)}.footer-content{position:relative}.footer-content p{font-family:var(--serif);font-size:1.6rem;font-style:italic}.footer-content h2{font-size:clamp(4rem,12vw,8rem);margin-bottom:18px}.footer-content span{text-transform:uppercase;letter-spacing:.18em;font-size:.7rem}.reveal{opacity:0;transform:translateY(25px);transition:opacity .8s,transform .8s}.reveal.visible{opacity:1;transform:none}.snow{pointer-events:none;position:fixed;inset:0;z-index:999;background-image:radial-gradient(circle,rgba(255,255,255,.8) 0 1px,transparent 1.5px);background-size:90px 90px;animation:snow 12s linear infinite;opacity:.45}@keyframes snow{to{background-position:30px 180px}}
.attendee-field[hidden],#opcionesAutobus[hidden]{display:none!important}.form-status{min-height:1.4em;margin:0;text-align:center;font-size:.78rem;line-height:1.5;color:var(--deep)}.form-status.is-error{color:var(--red);font-weight:600}.rsvp-form button:disabled{cursor:wait;opacity:.72;transform:none}.date-card{position:relative;height:165px;padding:0 20px;display:block}.date-card strong{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}.date-card span{position:absolute;left:50%;transform:translateX(-50%)}.date-card span:first-child{top:23px}.date-card span:last-child{bottom:23px}.date-save-card{position:relative;width:min(340px,100%);margin:45px auto 0;padding:31px 30px 28px;border:1px solid var(--sand);background:rgba(255,255,255,.46);box-shadow:0 18px 48px rgba(71,50,35,.1);overflow:hidden}.date-save-card:before{content:"";position:absolute;inset:7px;border:1px solid rgba(198,164,93,.34);pointer-events:none}.date-save-label,.date-save-weekday,.date-save-month{position:relative;z-index:1;display:block;text-transform:uppercase}.date-save-label{margin-bottom:20px;color:var(--red);font-size:.6rem;font-weight:600;letter-spacing:.28em}.date-save-weekday{font-size:.69rem;letter-spacing:.22em}.date-save-number-row{position:relative;z-index:1;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:17px;margin:8px 0}.date-save-number-row strong{font-family:var(--serif);font-size:5.25rem;font-weight:500;line-height:1;color:var(--red)}.date-save-line{height:1px;background:linear-gradient(90deg,transparent,var(--sand))}.date-save-line:last-child{background:linear-gradient(90deg,var(--sand),transparent)}.date-save-month{font-size:.68rem;letter-spacing:.19em}.calendar-button{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;gap:9px;width:100%;margin-top:25px;padding:13px 15px;border:1px solid var(--deep);background:var(--deep);color:#fff;text-decoration:none;text-transform:uppercase;letter-spacing:.11em;font-size:.65rem;font-weight:600;transition:transform .25s,background .25s,color .25s}.calendar-button:hover{transform:translateY(-2px);background:transparent;color:var(--deep)}.calendar-mark{display:grid;place-items:center;width:18px;height:18px;border:1px solid currentColor;border-radius:50%;font-size:.9rem;font-weight:400;line-height:1}
@media(max-width:720px){.nav{gap:15px;padding:18px 10px}.nav a:nth-child(1){display:none}.section-inner{padding:82px 0}.hero h1{font-size:4.2rem}.couple-photo{height:75svh}.couple-photo img{object-position:center}.timeline:before{left:76px}.timeline-item{grid-template-columns:58px 1fr;gap:35px}.timeline-item time{font-size:1.35rem}.timeline-icon{left:-33px}.bus-grid{grid-template-columns:1fr}.bus-card.full{grid-column:auto}.train-break{background-attachment:scroll}.envelope{width:88vw}.wax-seal{width:70px;height:70px}.photo-caption{font-size:2.6rem}.rsvp-form{gap:18px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}
