@font-face{font-family:Hortensia;src:url("../fonts/Hortensia.woff") format("woff");font-display:swap}
@font-face{font-family:Diphylleia;src:url("../fonts/Diphylleia.woff") format("woff");font-display:swap}
@font-face{font-family:Calgary;src:url("../fonts/Calgary.woff") format("woff");font-display:swap}
@font-face{font-family:Amoresa;src:url("../fonts/Amoresa.woff") format("woff");font-display:swap}
:root{--paper:#fdf9e6;--ink:#090806;--wine:#6e1823;--gold:#bf9c35;--red:#a6292d;--max:671px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Diphylleia,Calgary,"Helvetica Neue",sans-serif}main{position:relative;max-width:var(--max);margin:auto;background:var(--paper);overflow:visible}.section-paper,.section-rose{position:relative;padding:clamp(3rem,8vw,5rem) clamp(1.5rem,7vw,5rem);text-align:center}.section-rose{background:var(--wine);color:var(--paper)}main>section{z-index:1}
.hero{min-height:900px;position:relative;isolation:isolate;overflow:hidden;background:var(--paper)}.hero img{position:absolute;pointer-events:none}.hero__castle{inset:0;width:100%;height:100%;object-fit:cover;object-position:center}.hero__petals{inset:0;width:100%;height:100%;object-fit:cover;mix-blend-mode:multiply;opacity:.64}.hero__silhouette{width:70%;left:15%;bottom:-4%;z-index:2}.hero__rose{z-index:3}.hero__rose--left{width:43%;left:-11%;top:-2%}.hero__rose--right{width:37%;right:-7%;bottom:-3%}.hero__veil{position:absolute;inset:0;background:rgba(253,249,230,.08);z-index:1}.hero__content{position:relative;z-index:4;text-align:center;padding:5rem 1rem 10rem}.eyebrow{font-family:Calgary,Diphylleia,sans-serif;text-transform:uppercase;letter-spacing:.22em;font-size:.75rem;margin:0 0 1.2rem}.hero h1{font-family:Hortensia,cursive;font-weight:400;font-size:clamp(4rem,15vw,7.5rem);letter-spacing:.04em;line-height:.75;margin:1rem 0 0;text-align:right;white-space:nowrap}.hero h1 span{display:inline-block}.hero h1 span+span{margin-left:.28em}.script,h2{font-family:Hortensia,cursive;font-weight:400}.hero__name{width:100%;max-width:100%;font-family:Amoresa,Hortensia,cursive;font-size:clamp(5rem,19vw,7rem);line-height:.67;margin:5rem 0 0;white-space:nowrap}.sound-button,.button{border:1px solid currentColor;background:transparent;color:inherit;border-radius:999px;padding:.9rem 1.5rem;font:inherit;letter-spacing:.08em;cursor:pointer}.sound-button{margin-top:10rem}.sound-button span{font-size:.7em;margin-right:.4rem}.scroll-cue{position:absolute;bottom:1.4rem;z-index:5;left:0;right:0;width:100%;border:0;background:transparent;color:inherit;text-align:center;letter-spacing:.12em;text-transform:uppercase;font:.65rem Calgary,Diphylleia,sans-serif;cursor:pointer}.scroll-cue span{display:block;font-size:1.4rem;margin-top:.35rem}
.invite-flow::after{content:"";display:block;height:260px;background:var(--paper)}.player{position:sticky;top:calc(100vh - 260px);z-index:10;min-height:260px;margin-top:-260px;padding:1.3rem clamp(2rem,8vw,4rem) 1.5rem;background:var(--paper);color:#090806}.player__heading{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:.8rem;font-family:Calgary,sans-serif;font-size:clamp(1.7rem,6vw,3.5rem);letter-spacing:.34em;white-space:nowrap}.player__dots{justify-self:start;letter-spacing:.05em;font-family:Arial,sans-serif;font-size:1.2rem}.player__heart{justify-self:end;font-family:Arial,sans-serif;font-size:3.4rem;letter-spacing:0}.player__track{position:relative;height:4px;margin:1rem 0 2.2rem;background:#090806;border-radius:3px}.player__track span{position:absolute;left:50%;top:50%;width:16px;height:16px;margin:-8px 0 0 -8px;background:#090806;border-radius:50%}.player__controls{display:grid;grid-template-columns:repeat(5,1fr);align-items:center;gap:1.5rem}.player__controls button{border:0;padding:0;background:none;color:#000;font:2rem Arial,sans-serif;cursor:pointer}.player__controls .player__play{width:5rem;height:5rem;margin:auto;border-radius:50%;background:#000;color:var(--paper);font-size:2.2rem}.player__controls button:last-child{font-size:2.8rem}
.countdown{min-height:440px;background:var(--paper);overflow:hidden}.countdown__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem;max-width:560px;margin:auto;position:relative;z-index:2}.countdown__message{position:relative;z-index:2;margin:1.5rem 0 2.5rem;font-family:Hortensia,cursive;font-size:clamp(2.8rem,9vw,5.5rem);line-height:.92}.countdown strong{display:block;font-size:clamp(1.6rem,6vw,3rem);font-weight:400}.countdown__grid div{border-right:1px solid rgba(23,19,15,.3)}.countdown__grid div:last-child{border:0}.countdown span{font-size:.62rem;letter-spacing:.11em;text-transform:uppercase}.countdown__date{letter-spacing:.22em;margin:2.5rem 0 0;position:relative;z-index:2}.section-rose-art{position:absolute;width:32%;opacity:.86;pointer-events:none}.section-rose-art--left{left:-7%;top:27%;z-index:1}.section-rose-art--right{right:-7%;top:27%;bottom:auto;z-index:1;transform:scaleX(-1)}
.details{min-height:540px;overflow:hidden;padding-top:3rem}.details__texture,.message:before,.message:after{position:absolute;inset:0;background:url("../images/textura-papel.jpg") center/cover;opacity:.28;pointer-events:none}.details__texture{z-index:0}.event-date,.event-time,.event-place{position:relative;z-index:1}.event-date{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:clamp(.6rem,2vw,1.4rem);color:#9e863b;font-family:Calgary,sans-serif;letter-spacing:.06em}.event-date__item{display:flex;flex-direction:column;gap:.7rem;min-width:0}.event-date__item:before,.event-date__item:after{content:"";display:block;width:100%;height:1px;background:#090806}.event-date__item span{font-size:clamp(1.45rem,4.2vw,2.9rem);white-space:nowrap}.event-date__number{font:400 clamp(4.5rem,13vw,7.5rem)/.8 Calgary,sans-serif}.event-time,.event-place{font-family:Calgary,sans-serif;letter-spacing:.08em;font-size:clamp(2rem,6vw,3.4rem);margin:5rem 0 0}.event-place{margin-top:2rem}
.message{min-height:600px;padding:2rem clamp(2rem,4vw,3rem) 3rem;background:var(--paper);color:var(--ink);overflow:hidden}.message:before{content:"";inset:0;opacity:.28}.message__copy,.parents{position:relative;z-index:1}.message__copy{max-width:620px;margin:0 auto;line-height:1.65;font-family:Hortensia,cursive;font-size:clamp(1.6rem,4.4vw,2.3rem);font-style:italic}.parents{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);justify-content:center;align-items:center;gap:clamp(.5rem,3vw,2rem);margin:2.5rem auto 0;padding:1.2rem .8rem;border-radius:2.5rem;background:rgba(198,168,74,.47);font-family:Hortensia,cursive;font-size:clamp(1.35rem,4vw,2.3rem);font-style:italic;text-align:center}.parents div{display:flex;flex-direction:column;min-width:0}.parents span,.parents small{overflow-wrap:anywhere}.parents small{font-size:.9em}.parents b{font-family:Hortensia;font-size:clamp(2.8rem,7vw,4rem);font-weight:400}
.dress-code{min-height:510px;display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:center;text-align:left;background:var(--paper);position:relative;overflow:hidden}.dress-shine{position:absolute;z-index:0;top:0;width:25%;height:100%;object-fit:cover;opacity:.24;pointer-events:none;mix-blend-mode:multiply}.dress-shine--left{left:0;object-position:left top}.dress-shine--right{right:0;transform:scaleX(-1);object-position:left top}.dress-code h2,.dress-code__options{position:relative;z-index:1}.dress-code__image{min-height:360px;background:url("../images/textura-papel.jpg") center/cover;filter:saturate(.8)}.dress-code__content{padding:1rem}.dress-code h2{color:var(--red);font-size:clamp(3.8rem,12vw,6rem)}.dress-code p:last-child{line-height:1.6}.location{min-height:510px;background:var(--paper)}.location h2{color:var(--red);font-size:clamp(3rem,11vw,5.5rem)}.map-card{max-width:480px;margin:auto;padding:2.5rem 1rem;border:1px solid var(--gold);background:rgba(255,255,255,.25)}.map-card>span{font-size:2rem;color:var(--red)}.map-card p{font-size:1.3rem;margin:.6rem 0}.map-card small{display:block;margin-bottom:1.5rem}.map-card a{color:var(--wine);font-size:.8rem;letter-spacing:.08em;text-transform:uppercase}.rsvp{min-height:470px}.rsvp h2{font-size:clamp(5rem,18vw,9rem);margin-bottom:1.2rem}.rsvp p{line-height:1.8}.rsvp strong{color:var(--gold);font-weight:400}.button{display:inline-block;margin-top:1.5rem;text-decoration:none;background:var(--paper);color:var(--wine);border-color:var(--paper)}.footer{max-width:var(--max);margin:auto;text-align:center;background:#211719;color:var(--paper);padding:1.4rem;font-size:.75rem;letter-spacing:.1em}.footer span{color:#bd4a4e;margin-left:.4rem}
@media(max-width:600px){.hero{min-height:760px}.hero__silhouette{width:115%;left:-7.5%;bottom:-2%}.hero__name{margin-top:4rem}.sound-button{margin-top:7rem}.invite-flow::after{height:205px}.player{top:calc(100vh - 205px);min-height:205px;margin-top:-205px;padding-left:1.2rem;padding-right:1.2rem}.player__heading{font-size:1.8rem;letter-spacing:.2em}.player__heart{font-size:2.7rem}.player__controls{gap:.35rem}.player__controls button{font-size:1.35rem}.player__controls .player__play{width:4rem;height:4rem;font-size:1.7rem}.player__controls button:last-child{font-size:2.1rem}.details__cards{grid-template-columns:1fr;gap:1.5rem}.detail-card{display:grid;grid-template-columns:2rem 1fr 1fr;align-items:center;text-align:left;padding:1rem}.detail-card__icon{grid-row:span 2}.detail-card h3{margin:0}.detail-card p{grid-column:2/4}.dress-code{grid-template-columns:1fr;padding-top:2.1rem}.dress-code__image{min-height:270px;margin:0 -1.5rem}.dress-shine{width:32%;opacity:.18}.rsvp::before{background-size:55% auto}.rsvp{min-height:390px}.rsvp__break{display:none}.rsvp__message{font-size:clamp(1.3rem,6vw,2rem);line-height:1.45}.rsvp__confirm{font-size:clamp(1.25rem,5vw,1.8rem)}.rsvp .button{min-width:12rem;font-size:1.5rem}.parents{gap:.8rem}.parents div{font-size:.9rem}}
.rsvp{position:relative;z-index:1}
@media(max-width:600px){.page-shine{width:28%;opacity:.18}.section-paper{padding-top:2.5rem;padding-bottom:2.5rem}.dress-code{min-height:350px}.dress-icon{width:5.8rem;height:6.8rem}.dress-code__options{gap:.35rem}.dress-code__options p{font-size:1.1rem}.countdown__message{max-width:100%}.rsvp-modal__card{padding-left:1.15rem;padding-right:1.15rem}}

.message{min-height:370px;padding-top:1.5rem;padding-bottom:1.4rem}
.details{min-height:430px;padding-top:2.1rem;padding-bottom:2.5rem}
.location-pill{position:relative;z-index:1;display:inline-block;margin-top:1rem;padding:.25rem 1.4rem;border-radius:2rem;background:#d9c68d;color:#090806;font:700 1.4rem Calgary,sans-serif;text-decoration:none}
.calendar-button{position:relative;z-index:1;display:block;margin:1rem auto 0;padding:.55rem 1rem;border:1px solid #090806;border-radius:2rem;background:transparent;color:#090806;font:700 .95rem Calgary,sans-serif;letter-spacing:.04em;cursor:pointer}
.dress-code{display:block;min-height:330px;padding-top:2.1rem;padding-bottom:1.5rem;text-align:center;background:var(--paper)}
.dress-code h2{position:relative;z-index:1;margin:0 0 1.1rem;color:#090806;font:2.1rem Calgary,sans-serif;letter-spacing:.04em}
.dress-code__icons{position:relative;z-index:1;display:flex;justify-content:center;align-items:end;gap:1.3rem}
.dress-code__label{position:relative;z-index:1;margin:.65rem 0 0;font:1.45rem Calgary,sans-serif;line-height:1.2;text-align:center}
.dress-icon{display:block;width:min(100%,8.5rem);height:8.5rem;margin:auto;object-fit:contain}
.countdown{min-height:320px;padding-top:2.1rem;padding-bottom:.5rem;background:var(--paper) url("../images/textura-papel.jpg") center/cover}
.countdown__message{margin:.3rem 0 1.1rem;font-size:clamp(2.7rem,8vw,4.4rem);line-height:1.05}
.countdown__embed{position:relative;z-index:2;width:min(100%,560px);height:92px;margin:0 auto;overflow:hidden}
.countdown__embed iframe{position:absolute;inset:0;display:block;width:100%;height:160px;border:0;background:transparent;color-scheme:light;opacity:0;pointer-events:none}
.countdown__display{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:.2rem;max-width:500px;margin:0 auto;padding-top:.4rem}
.countdown__display div{border-right:1px solid rgba(23,19,15,.3)}
.countdown__message{max-width:90%;margin-left:auto;margin-right:auto;text-align:center}
.countdown__embed{margin-top:.2rem}
.rsvp-modal{width:min(92vw,31rem);padding:0;border:0;border-radius:1.2rem;background:transparent;color:var(--ink)}
.rsvp-modal::backdrop{background:rgba(33,23,25,.72);backdrop-filter:blur(3px)}
.rsvp-modal__card{position:relative;isolation:isolate;overflow:hidden;padding:2.2rem 1.5rem 1.6rem;background:#fdf9e6;border:1px solid #c9ad61;border-radius:1.2rem;box-shadow:0 1rem 3rem rgba(0,0,0,.28);text-align:center}
.rsvp-modal__card::before{content:"";position:absolute;z-index:0;inset:0;background-image:linear-gradient(90deg,rgba(253,249,230,.18),rgba(253,249,230,.48)),url("../images/shine.png");background-position:center;background-size:100% 100%,cover;background-repeat:no-repeat;opacity:.72;pointer-events:none}
.rsvp-modal__card>*{position:relative;z-index:1}
.rsvp-modal__close{position:absolute;top:.55rem;right:.75rem;border:0;background:transparent;color:var(--wine);font:2rem/1 Calgary,sans-serif;cursor:pointer}
.rsvp-modal__eyebrow{margin:0;color:var(--wine);font:1rem Calgary,sans-serif;letter-spacing:.12em;text-transform:uppercase}
.rsvp-modal h2{margin:.45rem 0;font:2.4rem Hortensia,cursive;font-weight:400}
.rsvp-modal__intro{margin:0 auto 1.2rem;max-width:22rem;font:1.2rem/1.3 Hortensia,cursive}
.rsvp-modal form{display:grid;gap:.75rem;text-align:left}
.rsvp-modal label,.rsvp-modal legend{font:1rem Calgary,sans-serif}
.rsvp-modal input[type="text"],.rsvp-modal input[type="tel"]{width:100%;padding:.7rem .8rem;border:1px solid #bda464;border-radius:.45rem;background:rgba(255,255,255,.6);font:1rem Diphylleia,sans-serif}
.rsvp-modal fieldset{display:flex;flex-wrap:wrap;gap:.7rem 1rem;margin:0;padding:0;border:0}
.rsvp-modal legend{width:100%;margin-bottom:.05rem}
.rsvp-modal fieldset label{display:flex;align-items:center;gap:.35rem}
.rsvp-modal input[type="radio"]{accent-color:var(--wine)}
.rsvp-modal__submit{justify-self:center;margin-top:.45rem;background:#d9c68d;color:var(--ink);border-color:#d9c68d}
.countdown__display div:last-child{border:0}
.countdown__display strong{display:block;font:700 clamp(2rem,6vw,3.4rem)/1 Calgary,sans-serif;font-weight:700}
.countdown__display span{font:1rem Calgary,sans-serif;letter-spacing:.04em}
.section-rose-art{width:31%;opacity:1}
.section-rose-art--left{left:-4%;top:28%;transform:rotate(-5deg)}
.section-rose-art--right{right:-8%;bottom:12%;width:25%;transform:none}
.rsvp{min-height:clamp(330px,48vw,575px);display:flex;flex-direction:column;align-items:center;padding:clamp(2.5rem,7vw,5rem) clamp(1.25rem,4vw,3rem) 2.5rem;background:var(--paper);position:relative;isolation:isolate;overflow:hidden}
.rsvp::before{content:"";position:absolute;z-index:0;inset:0;background:url("../images/flores-confirmacion.png") left bottom/min(75%, 31rem) auto no-repeat;pointer-events:none}
.rsvp__message{position:relative;z-index:1;max-width:100%;margin:0;text-align:center;font:clamp(1.35rem,4.2vw,3.2rem)/1.35 Calgary,sans-serif;letter-spacing:.045em}
.rsvp__confirm{position:relative;z-index:1;margin:clamp(1.5rem,4vw,3rem) 0 .5rem;text-align:center;font:italic clamp(1.35rem,3.8vw,3rem) Hortensia,cursive}
.rsvp__confirm strong{font-weight:400}
.rsvp .button{position:relative;z-index:1;margin-top:.3rem;min-width:clamp(10rem,32vw,22rem);padding:.55rem 2.2rem;background:#d9c68d;color:#090806;border:0;font:clamp(1.35rem,3.2vw,2.5rem) Diphylleia,sans-serif}
.countdown__embed,.countdown__embed iframe{background:transparent}
@media(max-width:600px){
  .event-date{gap:.3rem}
  .event-date__item{gap:.45rem}
  .event-date__item span{font-size:clamp(1.05rem,4vw,1.55rem);letter-spacing:.02em}
  .event-date__number{font-size:clamp(3.7rem,17vw,5.3rem)}
  .event-time,.event-place{font-size:clamp(1.65rem,7vw,2.4rem);margin-top:3.8rem}
  .event-place{margin-top:1.8rem}
  .parents{gap:.35rem;padding:.95rem .5rem;font-size:clamp(1rem,4.4vw,1.5rem)}
  .parents b{font-size:clamp(2.2rem,10vw,3rem)}
  .dress-code{min-height:320px;padding-bottom:1.25rem}
  .dress-code__icons{gap:.35rem}
  .dress-icon{width:5.8rem;height:6.8rem}
  .dress-code__label{font-size:1.1rem}
}
