@font-face{font-family:Display;src:url('assets/display.ttf');font-display:swap}@font-face{font-family:Hand;src:url('assets/script.ttf');font-display:swap}
:root{--forest:#2c1730;--green:#97396f;--sage:#e6bad6;--paper:#f9eff6;--gold:#d789b5;--ink:#351e39;--ease:cubic-bezier(.22,.7,.25,1)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);font:16px/1.7 Arial,sans-serif;overflow-x:clip}body.locked,body:has(dialog[open]){overflow:hidden}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--gold);outline-offset:5px}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:Display,Georgia,serif;font-weight:400}h2{font-size:clamp(38px,4.7vw,66px);line-height:1.09;letter-spacing:-.025em}h3{font-size:clamp(29px,3vw,40px);line-height:1.2}em{font-family:Hand,cursive;font-weight:400}p{font-size:16px}.eyebrow{font:12px/1.5 Arial,sans-serif;letter-spacing:.22em;font-weight:500}.script-label{display:block;font:44px/1.2 Hand,cursive;color:var(--green);margin-bottom:13px}.signature{display:block;font:42px/1.4 Hand,cursive}.fine-rule{display:block;width:68px;height:1px;background:var(--gold);margin:28px auto}.surface{position:relative;isolation:isolate}.surface:before{content:'';position:absolute;inset:0;background:url('assets/silk.webp') center/620px;opacity:.21;mix-blend-mode:multiply;pointer-events:none;z-index:-1}.paper{background:var(--paper)}.sage{background:var(--sage)}.dark{background:var(--forest);color:var(--paper)}.dark:before{opacity:.08;mix-blend-mode:screen}.button{display:inline-flex;align-items:center;justify-content:center;gap:24px;min-height:54px;padding:14px 29px;border:1px solid var(--forest);border-radius:99px;background:var(--forest);color:var(--paper);font-size:14px;letter-spacing:.025em;line-height:1.4;transition:background .25s,transform .25s}.button:hover{transform:translateY(-2px);background:#61305f}.button-light{background:var(--paper);color:var(--forest);border-color:var(--paper)}.button-light:hover{background:#f0d7e9}.button-outline{background:transparent;color:var(--forest)}.button-outline:hover{color:var(--paper)}.text-button{display:inline-flex;align-items:center;gap:12px;background:none;border:0;border-bottom:1px solid #97396f65;padding:10px 0;color:var(--forest);font-size:14px;line-height:1.5}.text-button.light{color:var(--paper);border-color:#f9eff660}.text-button span{font-size:20px}.entry{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;min-height:100svh;padding:40px 24px;text-align:center;overflow:auto;transition:opacity 1s ease,visibility 1s ease}.entry.leaving{opacity:0;visibility:hidden;pointer-events:none}.entry-foliage{position:absolute;inset:0;opacity:.09;background:url('assets/leaves-header.webp') left top/min(70vw,600px) auto no-repeat;pointer-events:none}.entry-content{width:min(100%,660px);position:relative;animation:entryAppear 1.4s var(--ease) both}.entry h1{font-size:clamp(54px,8.5vw,105px);line-height:1.12;letter-spacing:-.025em;margin:24px 0 15px}.entry h1 em{color:var(--gold);font-size:.9em}.entry-date{font-size:15px;letter-spacing:.27em}.entry-message{font:25px/1.35 Display,Georgia,serif}.entry-actions{display:flex;align-items:center;flex-direction:column;gap:13px;margin-top:32px}.entry .button{min-width:230px}.music-button{position:fixed;z-index:40;right:24px;bottom:24px;width:50px;height:50px;display:grid;place-items:center;border:1px solid #eed3e460;border-radius:50%;background:#2c1730ed;color:var(--paper);font:25px Georgia,serif;box-shadow:0 8px 24px #2c173026}.music-button[aria-pressed=false]:after{content:'';position:absolute;width:23px;height:1px;background:currentColor;transform:rotate(-48deg)}
.hero{height:100svh;min-height:710px;max-height:1250px;position:relative;isolation:isolate;overflow:hidden;background:#4c254e;color:white;text-align:center}.hero-photo{position:absolute;width:100%;height:100%;object-fit:cover;object-position:center 62%;inset:0;z-index:-3;animation:heroZoom 22s ease-in-out infinite alternate;animation-play-state:paused}.entered .hero-photo{animation-play-state:running}.hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,#2c17307d 0%,#2c173061 45%,#2c173024 64%,#2b153099 100%);z-index:-2}.hero-copy{position:absolute;top:22%;left:20px;right:20px;z-index:3}.hero-copy h1{font-size:clamp(75px,10vw,142px);line-height:1.1;margin:14px 0 19px;letter-spacing:-.025em}.hero-copy h1 em{font-size:.8em;color:#f4c6e2;margin:0 .05em}.hero-date{display:flex;align-items:center;justify-content:center;gap:22px}.hero-date p{font-size:22px;letter-spacing:.21em}.hero-date span{height:1px;width:56px;background:#f9eff677}.hero-message{font:32px/1.3 Hand,cursive;margin-top:27px}.hero .eyebrow{font-size:13px}.scroll-cue{position:absolute;left:0;right:0;bottom:105px;z-index:5;display:flex;align-items:center;flex-direction:column;gap:9px}.scroll-cue span{font-size:10px;letter-spacing:.18em}.scroll-cue i{font:28px Georgia,serif}.foliage{position:absolute;pointer-events:none;z-index:4}.leaf-piece{position:absolute;inset:0;background:url('assets/leaves-header.webp') left top/100% 100% no-repeat;opacity:0;transform:translate(-12px,-15px)}.leaf-piece:nth-child(1){mask-image:linear-gradient(#000 0 28%,transparent 38%)}.leaf-piece:nth-child(2){mask-image:linear-gradient(transparent 28%,#000 38% 60%,transparent 71%)}.leaf-piece:nth-child(3){mask-image:linear-gradient(transparent 60%,#000 71%)}.entered .hero .leaf-piece,.foliage.visible .leaf-piece{animation:leafArrival 2.8s var(--ease) both}.leaf-piece:nth-child(2){animation-delay:.5s!important}.leaf-piece:nth-child(3){animation-delay:1s!important}.hero-leaves{width:min(34vw,410px);height:min(51vw,615px);left:-12px;top:-15px}.hero-leaves-opposite{width:min(24vw,295px);height:min(36vw,443px);right:-15px;bottom:100px;transform:rotate(180deg)}.hero-leaves-opposite .leaf-piece{animation-delay:.6s!important}.hero-leaves-opposite .leaf-piece:nth-child(2){animation-delay:1.1s!important}.hero-leaves-opposite .leaf-piece:nth-child(3){animation-delay:1.6s!important}
.divider{position:absolute;width:100%;left:0;height:130px;pointer-events:none;z-index:5;line-height:0}.divider svg{display:block;width:100%;height:100%}.hero-divider{bottom:-1px}.section-top{top:-109px;height:110px}.divider-foliage{position:absolute;pointer-events:none;width:310px;aspect-ratio:2/1;background:url('assets/leaves-divider.webp') center/contain no-repeat;z-index:6;opacity:.82}.story{padding:8px 24px 190px}.countdown{width:min(600px,100%);margin:0 auto 115px;text-align:center;position:relative;z-index:6}.countdown .eyebrow{color:var(--green)}.count-grid{display:flex;align-items:flex-start;justify-content:center;gap:22px;margin-top:24px}.count-grid div{min-width:83px}.count-grid strong{display:block;font:64px/1.1 Display,Georgia,serif}.count-grid span{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.12em;margin-top:10px;color:var(--green)}.count-grid i{font:26px Georgia,serif;margin-top:17px;color:#9a7094}.tiny-heart{display:block;font:30px Georgia,serif;color:var(--green);margin-top:25px}.story-copy{max-width:680px;margin:auto;text-align:center;position:relative;z-index:7}.story-copy h2{margin-bottom:32px}.story-copy p{max-width:515px;margin:0 auto 18px;line-height:1.9;color:#5b455c}.story-copy .signature{margin-top:30px}.story-leaf{right:0;bottom:35px;width:330px}.event{padding:75px 24px 190px}.event-intro{max-width:950px;margin:auto;display:grid;grid-template-columns:1.4fr 1fr;gap:70px;align-items:center}.event-intro h2{margin:16px 0 25px}.date-seal{width:280px;min-height:310px;justify-self:center;text-align:center;border:1px solid #97396f65;border-radius:50% 50% 46% 46%;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:35px 15px;color:var(--forest)}.date-seal>span{font-size:12px;letter-spacing:.19em;line-height:1.3}.date-seal strong{font:138px/.96 Display,Georgia,serif;letter-spacing:-.035em;margin:10px 0}.date-seal .month{font-size:17px;margin:0 0 10px}.event-details{display:grid;grid-template-columns:1fr 1fr;gap:70px;max-width:950px;margin:80px auto 0}.event-details article{position:relative;border-top:1px solid #97396f5c;padding-top:35px}.event-details h3{margin:17px 0 20px}.event-time{font:44px/1 Display,Georgia,serif;margin-bottom:17px}.event-time small{font:17px Arial,sans-serif}.event-details article>p:not(.eyebrow):not(.event-time){color:#563b59}.event-details .button{margin-top:25px}.event-leaf{left:0;bottom:28px;width:250px;transform:scaleX(-1)}
.album{padding:100px 24px 190px}.album-layout{max-width:1030px;margin:auto;display:grid;grid-template-columns:.9fr 1.1fr;gap:85px;align-items:center}.album-copy .script-label{color:#f1c5e1}.album-copy h2{font-size:clamp(45px,5.8vw,78px);margin:20px 0 30px}.album-copy>p{color:#e9d7e7}.album-copy .fine-rule{margin:34px 0}.album-stage{position:relative;width:100%;aspect-ratio:4/5;background:#000;overflow:hidden;border-radius:44% 44% 4px 4px}.slide{position:absolute;width:100%;height:100%;object-fit:cover;inset:0;opacity:0;transition:opacity .85s ease;transform:none}.slide.active{opacity:1}.album-controls{display:flex;justify-content:center;gap:23px;margin-top:24px}.album-controls button{border:1px solid #f9eff636;background:transparent;color:var(--paper);height:42px;width:42px;border-radius:50%;font-size:18px}.album-leaf{right:0;bottom:37px;width:280px}.agenda{padding:80px 24px 200px}.section-heading{text-align:center;max-width:720px;margin:auto}.section-heading h2{margin-top:18px}.timeline{list-style:none;padding:0;max-width:640px;margin:65px auto 0;position:relative}.timeline:before{content:'';position:absolute;top:22px;bottom:55px;width:1px;background:#b476a166;left:111px}.timeline li{display:grid;grid-template-columns:85px 1fr;column-gap:67px;padding:0 0 40px;position:relative}.timeline li:before{content:'';position:absolute;left:106px;top:12px;width:9px;height:9px;border:1px solid var(--green);background:var(--paper);border-radius:50%}.timeline time{font-size:17px;line-height:1.5;padding-top:6px;letter-spacing:.03em;color:var(--green)}.timeline h3{font-size:31px}.timeline p{color:#735b72;margin-top:8px}.details{padding:75px 24px 175px}.details .script-label{color:var(--forest)}.detail-grid{max-width:1050px;margin:70px auto 0;display:grid;grid-template-columns:repeat(3,1fr);gap:48px}.detail-grid article{border-top:1px solid #97396f66;padding-top:24px}.detail-index{font:13px Arial,sans-serif;color:#97396f}.detail-grid h3{font-size:31px;margin:21px 0 16px}.detail-grid .text-button{margin-top:23px}.notes-row{max-width:1050px;margin:55px auto 0;border-top:1px solid #97396f66;padding-top:24px;display:flex;justify-content:space-between;gap:20px;align-items:center}.details-leaf{right:0;bottom:5px;width:245px}.rsvp{padding:110px 24px 170px;text-align:center}.rsvp-content{position:relative;z-index:8}.rsvp h2{font-size:clamp(45px,6vw,85px);margin:22px 0 28px}.rsvp p:not(.eyebrow){color:#e9d7e7}.rsvp .button{margin-top:34px}.rsvp .signature{color:var(--gold);margin-top:30px}.rsvp-leaf{left:0;bottom:20px;transform:scaleX(-1);width:270px}.closing{position:relative;height:85svh;min-height:620px;max-height:920px;color:var(--paper);overflow:hidden;background:var(--forest);text-align:center}.closing>img{width:100%;height:100%;object-fit:cover;object-position:center 58%;position:absolute;inset:0}.closing-shade{position:absolute;inset:0;background:#2c173091}.closing-top{top:-1px;transform:rotate(180deg)}.closing-bottom{bottom:-1px}.closing-copy{position:absolute;inset:25% 24px auto;z-index:8}.closing h2{font-size:clamp(46px,7vw,90px);margin-top:25px}.closing .signature{margin:20px 0 14px}.closing-copy>span{font-size:14px;letter-spacing:.2em}footer{padding:35px 24px 45px;text-align:center}footer>a{font:42px Display,Georgia,serif}footer>a em{color:var(--green)}footer p{font-size:13px;color:#80667d;margin:14px 0 20px}footer>span{font:21px Display,Georgia,serif;letter-spacing:-.02em}
dialog{border:0;border-radius:8px;padding:48px;width:min(520px,calc(100% - 32px));max-height:90svh;background:var(--paper);color:var(--forest);box-shadow:0 20px 80px #0004}dialog::backdrop{background:#1b0c20b8;backdrop-filter:blur(8px)}dialog h2{font-size:43px;line-height:1.12;margin:15px 0 25px}dialog>p:not(.eyebrow){margin-bottom:20px}dialog .button{margin:16px 0 0}.modal-close{position:absolute;right:15px;top:12px;width:36px;height:36px;background:transparent;border:0;font:30px Arial,sans-serif;color:var(--green)}form{display:flex;flex-direction:column}form label{font-size:14px;margin:15px 0 7px}input,select{width:100%;min-height:52px;padding:12px 14px;background:#ffffff66;border:1px solid #97396f70;border-radius:3px;color:var(--forest);font-size:16px}form .button{width:100%}.form-note{font-size:12px!important;line-height:1.5;color:#826a80;margin-top:15px!important}.form-result{font-size:14px;background:#f1dce9;padding:12px;margin-top:15px}#notice{position:fixed;bottom:85px;left:50%;transform:translateX(-50%);z-index:1100;width:max-content;max-width:calc(100% - 36px);padding:12px 18px;background:var(--paper);box-shadow:0 4px 35px #0003;border-radius:5px;font-size:14px}.reveal{opacity:0;translate:0 24px;transition:opacity 1s var(--ease),translate 1.2s var(--ease)}.reveal.visible{opacity:1;translate:0 0}.divider-foliage.reveal{translate:32px 9px;transition-duration:2.5s}.divider-foliage.reveal.visible{translate:0 0}
@keyframes heroZoom{from{transform:scale(1)}to{transform:scale(1.09)}}@keyframes leafArrival{from{opacity:0;transform:translate(-12px,-15px)}to{opacity:1;transform:translate(0,0)}}@keyframes entryAppear{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:761px){.hero-photo{object-position:center 15%}.hero-copy{top:19%}.hero{max-height:1050px}.hero-shade{background:linear-gradient(180deg,#2c17308c,#2c173038 66%,#2c173099)}}
@media(max-width:760px){.hero{min-height:730px;max-height:none;height:100svh}.hero-copy{top:23%;left:18px;right:18px}.hero-copy h1{font-size:clamp(64px,13.5vw,99px);max-width:540px;margin:19px auto 25px}.hero-copy h1 em{font-size:.85em}.hero-date{gap:13px}.hero-date p{font-size:19px;letter-spacing:.15em}.hero-date span{width:25px}.hero-message{font-size:31px;margin-top:20px}.hero-leaves{width:55vw;height:82.5vw;left:-10px;top:-8px;max-width:280px;max-height:420px}.hero-leaves-opposite{width:35vw;height:52.5vw;bottom:135px;right:-10px}.hero-photo{object-position:center center}.hero-shade{background:linear-gradient(180deg,#2c17308c 0%,#2c173072 45%,#2c173026 65%,#2c173099 100%)}.scroll-cue{bottom:105px}.hero-divider{height:85px}.story{padding:20px 24px 155px}.countdown{margin-bottom:75px}.count-grid{gap:15px}.count-grid div{min-width:70px}.count-grid strong{font-size:53px}.count-grid span{font-size:10px}.count-grid i{margin-top:12px}.story-copy h2{font-size:39px}.story-copy p{font-size:16px;line-height:1.8}.story-leaf{width:215px;bottom:23px}.section-top{height:81px;top:-80px}.event{padding:55px 25px 155px}.event-intro{grid-template-columns:1fr;gap:42px;text-align:center}.event-intro h2{font-size:40px}.date-seal{width:250px;min-height:290px}.date-seal strong{font-size:124px}.event-details{grid-template-columns:1fr;gap:45px;margin-top:55px;text-align:center}.event-details article{padding-top:32px}.event-details h3{font-size:36px}.event-time{font-size:42px}.event-leaf{width:205px;bottom:15px}.album{padding:55px 24px 150px}.album-layout{grid-template-columns:1fr;gap:38px}.album-copy{text-align:center}.album-copy h2{font-size:45px;line-height:1.08;margin:12px 0 23px}.album-copy h2 br:nth-child(2){display:none}.album-copy .fine-rule{margin:27px auto 0}.album-stage{max-width:500px;margin:auto;border-radius:42% 42% 3px 3px}.album-controls{margin-top:21px}.album-leaf{width:190px;bottom:15px}.agenda{padding:60px 25px 145px}.section-heading h2{font-size:40px}.timeline{margin-top:45px}.timeline li{grid-template-columns:64px 1fr;gap:40px;padding-bottom:33px}.timeline:before{left:80px}.timeline li:before{left:75px}.timeline time{font-size:15px}.timeline h3{font-size:28px}.timeline p{font-size:15px}.details{padding:55px 25px 150px}.detail-grid{grid-template-columns:1fr;gap:36px;max-width:420px;text-align:center;margin-top:45px}.detail-grid h3{font-size:32px;margin-top:12px}.detail-grid .text-button{margin-top:16px}.notes-row{flex-direction:column;text-align:center;gap:7px;margin-top:45px}.details-leaf{width:175px;bottom:12px}.rsvp{padding:65px 24px 150px}.rsvp h2{font-size:clamp(38px,10.5vw,55px);letter-spacing:-.035em}.rsvp p:not(.eyebrow){font-size:15px}.rsvp-leaf{width:185px;bottom:18px}.closing{height:78svh;min-height:570px}.closing-copy{inset:25% 20px auto}.closing h2{font-size:53px}.closing-top,.closing-bottom{height:90px}.music-button{width:46px;height:46px;right:16px;bottom:18px}.entry{padding:35px 20px}.entry h1{font-size:clamp(50px,12.5vw,80px);line-height:1.2}.entry-message{font-size:24px}.entry-content>.eyebrow{font-size:11px}.entry-foliage{background-size:90vw auto;opacity:.1}dialog{padding:42px 25px 28px}dialog h2{font-size:37px}.signature{font-size:37px}.eyebrow{font-size:11px}}
#invitation{overflow-x:clip}
.album-stage{border-radius:24px 24px 4px 4px}
.hero-copy{z-index:6}
@media(max-width:760px){.hero-leaves{left:-26px;top:-20px;transform:rotate(13deg);transform-origin:top left}}
@media(max-width:760px){.hero-copy{top:9%}.hero-copy h1{font-size:clamp(52px,14vw,76px);line-height:1.06;max-width:330px;margin:15px auto 21px}.hero-message{display:none}.hero-leaves{width:47vw;height:70.5vw}.hero-date p{font-size:18px}.album-copy h2 br:nth-child(2){display:initial}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.reveal{opacity:1;translate:0 0}.leaf-piece{opacity:1;transform:none}.hero-photo{transform:none!important}}

/* Amaranto: follaje de Acacia teñido de ciruela; composición y entrada conservadas. */
.entry-foliage,.leaf-piece,.divider-foliage{filter:grayscale(1) sepia(1) saturate(2.2) hue-rotate(255deg)}
.hero-photo{object-position:center 28%}
@media(max-width:760px){.hero-photo{object-position:center 23%}.hero-copy{top:8%}.hero-copy h1{font-size:clamp(49px,13vw,71px)}}
@media(min-width:761px){.hero-photo{object-position:center 35%}.closing>img{object-position:center 34%}}
@media(max-width:760px){.closing>img{height:120%;object-position:center top}.closing-copy{inset:12% 20px auto}}
