@import "https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400;1,500;1,600&family=DM+Sans:wght@300;400;500&display=swap";:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ink:#fff4f1;--muted:#d8b9bd;--rose:#e9a0b2;--rose-deep:#a83d60;--wine:#321321;--wine-dark:#160910;--gold:#e8c58e;--serif:"Cormorant Garamond", Georgia, serif;--sans:"DM Sans", Arial, sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--wine-dark)}body{background:var(--wine-dark);color:var(--ink);font-family:var(--sans);margin:0;font-weight:300}button{font:inherit}a,button{-webkit-tap-highlight-color:transparent}.experience{overflow:clip}.scene{isolation:isolate;min-height:100svh;position:relative}.eyebrow{color:var(--gold);letter-spacing:.28em;text-transform:uppercase;margin:0;font-size:.62rem;line-height:1.7}h1,h2,p{margin-top:0}h1,h2{font-family:var(--serif);font-weight:400}h1 em,h2 em{color:var(--rose);font-weight:400}.is-loading .experience{opacity:0}.experience{transition:opacity .35s}::selection{color:#fff;background:#a83d60}.scene-opening{background:radial-gradient(at 50% 42%,#60263b 0%,#2b1020 52%,#160910 100%);place-items:center;min-height:100svh;padding:42px 6vw 28px;display:grid}.opening-backdrop{z-index:-2;opacity:.72;background:linear-gradient(90deg,#14070d3d,#14070d94),url(/assets/images/escena-01.png) 50%/cover no-repeat;position:absolute;inset:0}.scene-opening:after{content:"";z-index:-1;background:linear-gradient(#12070d29,#190811c2);position:absolute;inset:0}.ambient-glow{aspect-ratio:1;filter:blur(120px);opacity:.12;pointer-events:none;background:#e88ba4;border-radius:50%;width:min(70vw,700px);position:absolute;top:12%;left:15%}.opening-content{grid-template-columns:minmax(340px,.96fr) minmax(360px,1.04fr);align-items:center;gap:28px clamp(56px,8vw,138px);width:min(100%,1180px);display:grid}.opening-content>.eyebrow{text-align:center;grid-column:1/-1}.envelope-stage{justify-self:center;width:100%;max-width:520px;padding:36px 0 48px;position:relative}.envelope-halo{aspect-ratio:1;border:1px solid #eec1ae47;border-radius:50%;width:82%;position:absolute;top:50%;left:50%;transform:translate(-50%,-52%);box-shadow:0 0 75px #e2779326,inset 0 0 45px #e2779314}.envelope{aspect-ratio:1.55;filter:drop-shadow(0 24px 34px #00000057);perspective:1100px;width:100%;transform-style:preserve-3d;border-radius:18px;position:relative;overflow:visible}.envelope-back{background:linear-gradient(135deg,#e9b7bd,#b76c83);border-radius:2px;position:absolute;inset:0;box-shadow:inset 0 1px #fff2ea47,inset 0 -16px 24px #5d1f361f}.letter{z-index:1;color:#71354a;text-align:center;isolation:isolate;background:radial-gradient(circle at 18% 12%,#ffffff94,#0000 28%),linear-gradient(#ffffff2e,#0000 20%),linear-gradient(145deg,#fff3ed 0%,#f8dedd 54%,#e8c2c6 100%);border:1px solid #fff8f09e;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;width:84%;min-height:120%;padding:8% 7% 7%;transition:transform 1s cubic-bezier(.2,.75,.2,1);display:flex;position:absolute;bottom:1%;left:8%;overflow:hidden;box-shadow:0 12px 34px #0000002e,inset 0 0 0 1px #fff8f080,inset 0 -16px 24px #70354a0a}.letter-kicker{letter-spacing:.16em;text-transform:uppercase;font-size:.58rem}.letter-title{font:italic 2rem/1.05 var(--serif);margin:10px 0}.letter-message{max-width:330px;font:.77rem/1.55 var(--sans);color:#744154;margin:5px 0 10px}.letter-signature{font:italic .9rem var(--serif)}.letter:before{content:"";pointer-events:none;border:1px solid #924c6029;border-radius:10px;position:absolute;inset:10px}.letter:after{content:"";pointer-events:none;opacity:.9;background:linear-gradient(#ffffff1f,#0000 22% 76%,#60243a0d);position:absolute;inset:0}.letter-continue{color:#71354a;letter-spacing:.04em;cursor:pointer;opacity:0;pointer-events:none;background:#ffffff47;border:1px solid #7b374d73;border-radius:30px;margin-top:13px;padding:10px 14px;font-size:.65rem;transition:opacity .45s,transform .45s,background .2s;transform:translateY(8px)}.letter-continue:hover{background:#ffffff8c}.envelope.is-open .letter-continue{opacity:1;pointer-events:auto;transition-delay:.65s;transform:translateY(0)}.envelope-front{z-index:3;clip-path:polygon(0 0,50% 55%,100% 0,100% 100%,0 100%);background:linear-gradient(145deg,#d98e9d,#b85d79);position:absolute;inset:0;box-shadow:inset 0 1px #fff0e533,inset 0 -18px 28px #521a3024}.envelope-flap{z-index:4;clip-path:polygon(0 0,100% 0,50% 57%);transform-origin:top;backface-visibility:hidden;background:linear-gradient(160deg,#f0c3c5,#cf8495);transition:transform .85s cubic-bezier(.2,.7,.2,1);position:absolute;inset:0;box-shadow:inset 0 1px #fff4ec3d,inset 0 -12px 18px #581d321a}.seal{z-index:5;aspect-ratio:1;color:#fff6e9;cursor:pointer;background:radial-gradient(circle at 35% 28%,#e99db1,#a93e65 75%);border:1px solid #ffefe1cc;border-radius:50%;place-items:center;width:58px;animation:2.3s ease-in-out infinite seal-pulse;display:grid;position:absolute;top:53%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 5px #ffddde1f,0 0 25px #ffa7be8c}.seal-star{text-shadow:0 0 12px #fff;font-size:1.35rem}.seal:after{content:"";border:1px solid #ffddde8c;border-radius:50%;animation:2.3s ease-out infinite seal-ring;position:absolute;inset:-12px}.envelope-hint{text-align:center;color:#f3d7d7;font:italic 1.06rem var(--serif);letter-spacing:.04em;margin:24px 0 0;position:relative}.opening-copy{text-align:left;max-width:590px}.opening-copy h1{letter-spacing:-.035em;margin:18px 0 16px;font-size:clamp(2.8rem,4.85vw,4.45rem);line-height:.96}.tiny-heart{color:var(--rose);padding:0 5px}.opening-description{color:#e4c8ca;max-width:420px;margin:18px 0;font-size:.98rem;line-height:1.9}.time-together{color:var(--gold);font:italic 1.48rem var(--serif);letter-spacing:.06em}.time-together span{color:var(--rose);font-size:.9em}.signature-line{color:#f0d4d5;font:italic 1.24rem var(--serif);margin:18px 0 0}.scroll-note{text-align:center;color:#d9b7bd;letter-spacing:.2em;text-transform:uppercase;grid-column:1/-1;font-size:.62rem}.scroll-note span{color:var(--gold);padding:0 8px}.opening-guide{left:0;right:0;bottom:max(18px, calc(env(safe-area-inset-bottom) + 12px));z-index:2;place-items:center;padding-inline:22px;transition:opacity .35s,transform .35s;display:grid;position:absolute}.opening-guide.is-hidden{opacity:0;pointer-events:none;transform:translateY(10px)}.opening-story-button{color:#f2dcc8;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:auto;background:linear-gradient(#2c101c99,#17080f75);border:1px solid #e8c58e47;border-radius:999px;justify-content:center;align-items:center;padding:12px 18px 12px 20px;display:inline-flex;box-shadow:0 14px 28px #00000038,inset 0 1px #fff4e714}.opening-story-button:hover{color:#fff0de}.opening-story-button span{margin-left:8px}.scene-story{background:radial-gradient(at 50% 0,#552338 0%,#2a1020 48%,#1a0b13 100%);padding:clamp(66px,6.3vw,88px) 6vw 64px}.scene-story:before,.scene-ending:before{content:"";pointer-events:none;opacity:.18;background-image:radial-gradient(#f3d0c4 .7px,#0000 .7px);background-size:32px 32px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000,#0000 85%);mask-image:linear-gradient(#000,#0000 85%)}.section-shell{width:min(100%,1180px);margin:auto;position:relative}.section-heading{text-align:center;max-width:840px;margin:0 auto clamp(40px,4.1vw,58px)}.section-heading h2{letter-spacing:-.018em;margin:19px 0 22px;font-size:clamp(3rem,5.25vw,4.8rem);line-height:1.07}.section-heading h2 span,.section-heading h2 em{font-weight:400;display:block}.section-heading h2 em{color:var(--rose)}.section-intro{color:#e6cdd0;max-width:600px;margin:0 auto;font-size:clamp(.93rem,1.25vw,1.02rem);line-height:1.85}.memory-layout{perspective:1200px;grid-template-columns:minmax(0,.85fr) minmax(0,1.42fr) minmax(0,.85fr);grid-template-areas:"left main right";align-items:start;column-gap:clamp(22px,3vw,40px);width:100%;max-width:1030px;margin-inline:auto;display:grid}.memory-slot{min-width:0;transform-style:preserve-3d}.memory-slot--main{grid-area:main}.memory-slot--left{grid-area:left;padding-top:clamp(55px,8vw,110px)}.memory-slot--right{grid-area:right;padding-top:clamp(95px,11vw,150px)}.memory-card{color:#51283a;isolation:isolate;background:linear-gradient(155deg,#fff4edfb,#e2bdc0f7);border-radius:3px;padding:clamp(9px,1.15vw,14px) clamp(9px,1.15vw,14px) clamp(17px,1.6vw,23px);transition:transform .7s cubic-bezier(.16,1,.3,1),box-shadow .7s cubic-bezier(.16,1,.3,1);position:relative;transform:rotate(-1.1deg);box-shadow:0 25px 50px #05000454,0 2px 8px #05000421,inset 0 1px #ffffffbd}.scene-story .memory-card{transition:transform .7s cubic-bezier(.16,1,.3,1),box-shadow .7s cubic-bezier(.16,1,.3,1)}.memory-card--left{transform:rotate(-5deg)}.memory-card--right{transform:rotate(4deg)}.memory-main{transform:rotate(-.6deg)}.memory-photo-wrap{aspect-ratio:3/4;background:#7d4b5e;width:100%;display:block;position:relative;overflow:hidden}.memory-photo-wrap--collage{aspect-ratio:853/1280}.memory-photo{object-fit:cover;object-position:center;filter:saturate(.99)contrast(1.015);width:100%;height:100%;transition:transform 1s cubic-bezier(.16,1,.3,1),filter 1s;display:block;position:absolute;inset:0}.memory-photo--collage{filter:sepia(.075)saturate(.86)contrast(1.055)brightness(.995)}.memory-photo-wrap:after{content:"";pointer-events:none;background:linear-gradient(145deg,#ffedd026,#0000 38%,#2b0c1b0e);position:absolute;inset:0}.photo-mark{z-index:2;color:#fff6eae6;font:italic 1.2rem var(--serif);text-shadow:0 1px 9px #220d1880;position:absolute;top:12px;left:13px}.memory-caption{padding:clamp(14px,1.4vw,20px) 6px 0}.caption-date{color:#955569;letter-spacing:.16em;text-transform:uppercase;font-size:.68rem;line-height:1.4}.memory-caption p{font:italic clamp(1.12rem, 1.55vw, 1.3rem)/1.27 var(--serif);margin:10px 0 0}.memory-main .memory-caption p{font-size:clamp(1.2rem,1.65vw,1.4rem)}.memory-card:after{content:"";z-index:3;border-radius:inherit;pointer-events:none;opacity:0;background:linear-gradient(110deg,#0000 29%,#fff4d63d 47%,#0000 63%);position:absolute;inset:0;transform:translate(-145%)}.memory-card.is-arrived:after{animation:1.22s ease-out both album-sheen}@keyframes album-sheen{0%{opacity:0;transform:translate(-145%)}17%{opacity:.55}80%{opacity:.4}to{opacity:0;transform:translate(145%)}}@media (hover:hover) and (pointer:fine){.scene-story .memory-card:hover{transform:translateY(-13px)rotate(0)scale(1.023);box-shadow:0 38px 68px #0400046b,0 4px 12px #08000826}.scene-story .memory-card:hover .memory-photo{transform:scale(1.05)}.scene-story .memory-card:hover .memory-photo--collage{filter:sepia(.045)saturate(.95)contrast(1.055)}}.story-footer{border-top:1px solid #e7beb538;justify-content:space-between;align-items:center;gap:20px;margin-top:65px;padding-top:24px;display:flex}.story-footer p{color:#d9bec2;font:italic 1.2rem var(--serif);margin:0}.text-button{color:var(--gold);cursor:pointer;letter-spacing:.12em;text-transform:uppercase;background:0 0;border:0;padding:12px 0 12px 14px;font-size:.72rem}.text-button span{margin-left:12px;transition:transform .2s;display:inline-block}.text-button:hover span{transform:translate(3px,-3px)}.scene-ending{background:radial-gradient(at 50% 40%,#653149 0%,#301322 48%,#160910 100%);place-items:center;padding:80px 6vw 32px;display:grid}.ending-light{aspect-ratio:1;filter:blur(130px);opacity:.12;background:#e4a67f;border-radius:50%;width:70vw;max-width:700px;position:absolute;top:8%;left:15%}.ending-shell{grid-template-columns:1fr .9fr;align-items:center;gap:clamp(30px,6vw,75px);width:min(100%,900px);display:grid;position:relative}.ending-shell>.eyebrow{text-align:center;grid-column:1/-1}.ending-photo-frame{background:linear-gradient(145deg,#fff0e4,#d8b5b5);padding:13px 13px 36px;position:relative;transform:rotate(-2deg);box-shadow:0 24px 65px #00000059}.ending-photo{aspect-ratio:4/5;background:linear-gradient(145deg,#d5a38d 0%,#875267 46%,#2b1525 100%);place-items:center;min-height:340px;display:grid;position:relative;overflow:hidden}.ending-photo:before{content:"";background:radial-gradient(at 50% 20%,#ffe4b36b,#0000 48%),linear-gradient(#0000 40%,#1808114d);position:absolute;inset:0}.sparkle-heart{color:#f7d99c;text-shadow:0 0 20px #e8bd83,0 0 45px #e8bd83;font-size:4rem;position:absolute;top:10%;right:8%}.ending-message h2{margin:18px 0;font-size:clamp(2.8rem,5vw,4.5rem);line-height:.95}.ending-signature{color:#e6c7c9;font:italic 1.15rem/1.5 var(--serif);margin:30px 0 0}.ending-signature span{color:var(--gold);font-size:1.5rem}.ending-bottom{text-align:center;color:#d8b9bd;letter-spacing:.2em;text-transform:uppercase;grid-column:1/-1;margin-top:35px;font-size:.6rem}.ending-back{grid-column:1/-1;justify-self:center;margin-top:-20px}.ending-bottom span{color:var(--rose);padding:0 8px}@media (width<=700px){.scene-opening{min-height:100svh;padding:30px 22px 24px}.opening-content{flex-direction:column;gap:16px;width:100%;display:flex}.opening-content>.eyebrow{order:0}.envelope-stage{order:1;width:min(84vw,390px);padding:22px 0 28px}.envelope-halo{width:88%}.envelope-hint{margin-top:18px;font-size:1rem}.seal{width:52px}.opening-copy{text-align:center;order:2;max-width:440px}.opening-copy>.eyebrow{letter-spacing:.21em;font-size:.66rem}.opening-copy h1{margin:16px 0 18px;font-size:clamp(2.82rem,11.8vw,3.85rem);line-height:.98}.opening-description{max-width:30ch;margin:13px auto 14px;font-size:.9rem;line-height:1.85}.time-together{font-size:1.36rem}.signature-line{margin-top:14px;font-size:1.12rem}.scroll-note{letter-spacing:.19em;order:3;margin-top:16px;font-size:.61rem}.opening-guide{bottom:max(14px, calc(env(safe-area-inset-bottom) + 8px));padding-inline:16px}.opening-story-button{min-width:178px;padding:12px 16px 12px 17px;font-size:.66rem}.letter-title{font-size:1.55rem}.letter{min-height:132%;padding:7% 6%}.letter-message{margin:3px 0 6px;font-size:.66rem;line-height:1.4}.letter-continue{margin-top:8px;padding:8px 11px;font-size:.58rem}.letter-kicker{font-size:.48rem}.letter-signature{font-size:.78rem}.section-heading{margin-bottom:36px}.section-heading h2{font-size:clamp(2.6rem,11vw,3.5rem)}.section-intro{font-size:.8rem}.scene-story{padding:clamp(40px,7vh,68px) 21px 56px}.section-heading{max-width:100%;margin-bottom:38px}.section-heading .eyebrow{font-size:.65rem}.section-heading h2{letter-spacing:-.015em;margin:17px 0 18px;font-size:clamp(2.55rem,10.4vw,3.55rem);line-height:1.1}.section-intro{max-width:33ch;font-size:.91rem;line-height:1.8}.memory-layout{perspective:900px;flex-direction:column;align-items:center;gap:31px;display:flex}.memory-slot--main{order:0;width:min(94%,420px)}.memory-slot--left{order:1;align-self:flex-start;width:min(80%,340px);margin-left:3%;padding-top:0}.memory-slot--right{order:2;align-self:flex-end;width:min(80%,340px);margin-right:3%;padding-top:0}.memory-card{padding:10px 10px 18px}.memory-caption{padding:14px 6px 0}.memory-caption p,.memory-main .memory-caption p{font-size:1.16rem;line-height:1.3}.caption-date{font-size:.66rem}.story-footer{align-items:flex-start;margin-top:42px}.story-footer p{max-width:260px;font-size:1.13rem;line-height:1.3}.text-button{white-space:nowrap;font-size:.62rem}.scene-ending{padding:70px 24px 25px}.ending-shell{flex-direction:column;gap:27px;width:min(100%,480px);display:flex}.ending-photo-frame{width:min(78vw,330px);padding:9px 9px 28px}.ending-photo{min-height:270px}.ending-message{text-align:center}.ending-message h2{font-size:clamp(2.7rem,11vw,3.7rem)}.ending-message>p:not(.eyebrow):not(.ending-signature){margin-inline:auto;font-size:.8rem}.ending-signature{margin-top:22px}.ending-bottom{margin-top:8px}.ending-back{margin-top:-18px}}@media (width<=360px){.scene-opening{padding-inline:17px}.opening-copy h1{font-size:2.35rem}.envelope-stage{width:88vw}.scene-story{padding-inline:16px}.section-heading h2{font-size:clamp(2.28rem,10vw,2.65rem)}.memory-slot--main{width:96%}.memory-slot--left,.memory-slot--right{width:84%}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.scene-opening:before{content:"";z-index:-1;pointer-events:none;opacity:.5;background:radial-gradient(circle at 18% 22%,#ffdcbe2e 0 1px,#0000 2px) 0 0/170px 190px,radial-gradient(circle at 78% 34%,#ffdcbe33 0 1px,#0000 2px) 0 0/230px 210px,radial-gradient(circle at 62% 76%,#ffdcbe29 0 1px,#0000 2px) 0 0/190px 240px;animation:18s linear infinite ambient-drift;position:absolute;inset:0}.story-footer{flex-wrap:wrap}.story-footer p{text-align:center;flex:1}.back-button{padding-left:0}.ending-back{color:var(--gold)}@media (width<=700px){.story-footer{grid-template-columns:1fr 1fr;gap:8px;display:grid}.story-footer p{text-align:center;grid-area:1/1/auto/-1;margin-bottom:8px}.story-footer .back-button{grid-area:2/1;justify-self:start;padding-left:0}.story-footer #toEnding{grid-area:2/2;justify-self:end}}.petal-field{pointer-events:none;z-index:0;position:absolute;inset:0;overflow:hidden}.petal-field i{top:-8%;left:var(--x,15%);opacity:0;filter:drop-shadow(0 0 7px #ffd3be40);width:10px;height:15px;animation:petal-fall var(--duration,13s) linear var(--delay,0s) infinite;background:linear-gradient(135deg,#ffded8d1,#be527059);border-radius:85% 10%;position:absolute;transform:rotate(35deg)}.petal-field i:first-child{--x:8%;--duration:15s;--delay:-4s}.petal-field i:nth-child(2){--x:23%;--duration:18s;--delay:-11s;width:7px;height:11px}.petal-field i:nth-child(3){--x:42%;--duration:14s;--delay:-7s}.petal-field i:nth-child(4){--x:66%;--duration:17s;--delay:-2s;width:8px;height:12px}.petal-field i:nth-child(5){--x:81%;--duration:16s;--delay:-9s}.petal-field i:nth-child(6){--x:93%;--duration:19s;--delay:-14s;width:7px;height:10px}.petal-field i:nth-child(7){--x:53%;--duration:20s;--delay:-16s;width:6px;height:9px}@keyframes petal-fall{0%{opacity:0;transform:translateY(-5vh)rotate(0)}12%{opacity:.65}80%{opacity:.5}to{opacity:0;transform:translate(55px,115vh)rotate(290deg)}}.opening-content,.section-shell,.ending-shell{z-index:1;position:relative}html,body{scroll-behavior:auto;height:100%;overflow:hidden}.experience{position:fixed;inset:0;overflow:hidden}.scene{overscroll-behavior:contain;visibility:hidden;pointer-events:none;opacity:0;width:100%;height:100dvh;min-height:0;position:absolute;inset:0;overflow:hidden auto}.scene.is-active{visibility:visible;pointer-events:auto;opacity:1}.scene:not(.is-active) .petal-field i{animation-play-state:paused}@media (width<=700px){.scene-opening,.scene-ending{align-content:safe center}}.opening-copy>.eyebrow{letter-spacing:.23em;margin-bottom:4px;font-size:.68rem}.opening-copy .time-together{align-items:center;gap:8px;margin-top:2px;display:inline-flex}.opening-copy .time-together span{display:inline-block;transform:translateY(-1px)}@media (width>=701px){.scene-opening{padding:48px 7vw 34px}.opening-copy{align-self:center}}@media (width<=700px){.opening-copy .time-together{justify-content:center}}.scene-story .story-footer .text-button{min-height:44px;line-height:1.35}@media (width<=700px){.scene-story .story-footer{margin-top:48px;padding-top:24px}.scene-story .story-footer .text-button{letter-spacing:.075em;white-space:normal;font-size:.69rem}}@media (prefers-reduced-motion:reduce){.memory-card.is-arrived:after{animation:none}.scene-story .memory-card,.scene-story .memory-photo{transition:none}}.ending-photo-frame.ending-video-frame{justify-self:center;width:min(100%,344px)}.ending-video-container{aspect-ratio:478/850;isolation:isolate;background:#27121f;min-height:0;position:relative;overflow:hidden}.ending-video-container:before{z-index:1;pointer-events:none;background:linear-gradient(#14080f29,#0000 24% 76%,#14080f3d)}.ending-video{object-fit:contain;background:#21101a;width:100%;height:100%;display:block;position:absolute;inset:0}.ending-video-start{z-index:2;color:#fff3ed;cursor:pointer;text-shadow:0 2px 14px #000000e6;background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:13px;width:100%;min-height:125px;padding:16px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.ending-video-play-icon{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#3b162894;border:1px solid #fff1e0b3;border-radius:50%;place-items:center;width:70px;height:70px;padding-left:5px;font-size:1.45rem;transition:transform .25s,background .25s,box-shadow .25s;display:grid;box-shadow:0 0 0 9px #e8c58e17,0 14px 34px #0e040a59}.ending-video-start-copy{letter-spacing:.09em;font-size:.73rem;font-weight:500}.ending-video-start:hover .ending-video-play-icon,.ending-video-start:focus-visible .ending-video-play-icon{background:#7e3254b8;transform:scale(1.07);box-shadow:0 0 0 11px #e8c58e21,0 14px 34px #0e040a66}.ending-video-start:focus-visible{outline:2px solid var(--gold);outline-offset:3px}.ending-video-container.is-playing .ending-video-start{display:none}.ending-video-frame .sparkle-heart{pointer-events:none;animation:4.4s ease-in-out infinite ending-heart-breathe}@keyframes ending-heart-breathe{0%,to{opacity:.78;filter:brightness(.92)}50%{opacity:1;filter:brightness(1.13)}}@media (width<=700px){.ending-photo-frame.ending-video-frame{width:min(69vw,272px)}.ending-video-start-copy{font-size:.68rem}.ending-video-play-icon{width:60px;height:60px}}@media (prefers-reduced-motion:reduce){.ending-video-frame .sparkle-heart{animation:none}.ending-video-start .ending-video-play-icon{transition:none}}.scene-ending{background:radial-gradient(at 24% 42%,#b44a7242,#0000 44%),radial-gradient(at 78% 32%,#e8a58b29,#0000 45%),radial-gradient(at 50% 45%,#60283f 0%,#301322 63%,#170912 100%);align-content:center;justify-items:center;padding:clamp(16px,2.5vh,24px) 5vw clamp(12px,2vh,20px);position:absolute}.scene-ending:before{opacity:.3;background-size:28px 28px}.scene-ending .ending-light{aspect-ratio:auto;filter:blur(72px);opacity:.54;background:radial-gradient(circle,#ffce9954 0%,#e15c8f3d 40%,#0000 70%);width:min(78vw,950px);max-width:none;height:min(76vh,630px);animation:7s ease-in-out infinite alternate ending-ambient-pulse;top:3%;left:8%}.scene-ending .ending-shell{z-index:2;grid-template:"opening opening""video message""bottom bottom""back back"/minmax(300px,1fr) minmax(330px,1fr);align-items:center;gap:clamp(8px,1.25vh,15px) clamp(42px,5vw,100px);width:min(100%,1100px);position:relative}.ending-shell>.eyebrow{letter-spacing:.34em;color:#f4d6a7;text-shadow:0 0 16px #f7cc9166;grid-area:opening;font-size:.72rem}.scene-ending .ending-photo-frame.ending-video-frame{isolation:isolate;background:linear-gradient(145deg,#fff4e8 0%,#f5d8d2 49%,#d9adb7 100%);grid-area:video;justify-self:center;width:min(100%,clamp(315px,26vw,360px));margin:0;padding:12px 12px 29px;transform:rotate(-2deg);box-shadow:0 28px 70px #0e040b8c,0 0 90px #e89eb029}.ending-video-frame:before{content:"";z-index:-1;filter:blur(20px);pointer-events:none;background:radial-gradient(#f7c39157,#e3658e1f 54%,#0000 75%);border-radius:14px;animation:5.5s ease-in-out infinite alternate ending-frame-glow;position:absolute;inset:-18px}.ending-video-frame:after{content:"";z-index:2;pointer-events:none;background:linear-gradient(107deg,#0000 31%,#fff6e538 46%,#ffffff0f 53%,#0000 65%) 170% 0/270% 100%;animation:9s ease-in-out 2.2s infinite ending-light-sweep;position:absolute;inset:9px}.scene-ending .ending-video-container{aspect-ratio:478/850;min-height:0;box-shadow:inset 0 0 0 1px #ffecd83d}.scene-ending .ending-video{object-fit:contain}.scene-ending .ending-video-start{display:flex}.scene-ending .ending-video-container.is-playing .ending-video-start{display:none}.scene-ending .sparkle-heart{z-index:3;text-shadow:0 0 18px #ffe9adf2,0 0 45px #ffbc7e8f;font-size:clamp(3rem,5vw,4.4rem);top:5%;right:5%}.ending-sound{z-index:4;color:#66374b;min-height:32px;font:500 .66rem/1.3 var(--sans);letter-spacing:.04em;cursor:pointer;white-space:nowrap;background:#fff6ea9e;border:0;border-radius:999px;justify-content:center;align-items:center;gap:6px;padding:5px 9px;display:inline-flex;position:absolute;bottom:6px;left:50%;transform:translate(-50%)}.ending-sound:hover,.ending-sound:focus-visible{background:#fff1e1}.ending-sound.is-audible{color:#6e2c50;background:#fff2e2e0}.ending-sound-icon{color:#ad3e6a;font-size:.96rem}.ending-message{text-align:left;grid-area:message;max-width:475px;margin:0;padding:22px 0 22px clamp(10px,1.6vw,25px);position:relative}.ending-message:before{content:"";background:linear-gradient(#0000,#f5cf95a6 25%,#eda0b980 76%,#0000);width:1px;position:absolute;top:16px;bottom:16px;left:0;box-shadow:0 0 16px #f4c58945}.ending-message .eyebrow{color:#f4d2a3;letter-spacing:.27em;text-shadow:0 0 13px #f0b77933;font-size:.72rem}.ending-message h2{color:#fff4f1;letter-spacing:-.018em;text-shadow:0 0 30px #f5b3c717;margin:20px 0 23px;font-size:clamp(3.65rem,5vw,5.25rem);line-height:.96}.ending-message h2 em{color:#f0aec5;text-shadow:0 0 32px #f699ba21}.ending-message>p:not(.eyebrow):not(.ending-signature){color:#f1d6db;max-width:38ch;font-size:1.02rem;line-height:1.9}.ending-message .ending-signature{margin:24px 0 0;font-size:1.24rem}.ending-message .ending-signature span{text-shadow:0 0 20px #ffcc8933;font-size:1.68rem}.scene-ending .ending-bottom{letter-spacing:.24em;color:#f0ced3;grid-area:bottom;margin:0;font-size:.65rem}.scene-ending .ending-back{letter-spacing:.11em;color:#f5d2a0;border-radius:999px;grid-area:back;justify-self:center;min-height:42px;margin:0;padding:8px 14px;font-size:.68rem}.scene-ending .ending-back:hover{text-shadow:0 0 15px #ffd18c61}.ending-sparkles{z-index:1;pointer-events:none;position:absolute;inset:0;overflow:hidden}.ending-sparkles i{--x:50%;--y:50%;--s:3px;--duration:3.8s;--delay:0s;left:var(--x);top:var(--y);width:var(--s);height:var(--s);opacity:.07;animation:ending-sparkle var(--duration) ease-in-out var(--delay) infinite;background:#ffe2a7e6;border-radius:50%;position:absolute;transform:scale(.65);box-shadow:0 0 10px 2px #ffd59f6e,0 0 22px #f59dc34d}.ending-sparkles i:first-child{--x:8%;--y:18%;--s:3px;--duration:3.5s;--delay:-.9s}.ending-sparkles i:nth-child(2){--x:19%;--y:46%;--s:4px;--duration:5s;--delay:-2.2s}.ending-sparkles i:nth-child(3){--x:34%;--y:10%;--s:2px;--duration:3s;--delay:-.4s}.ending-sparkles i:nth-child(4){--x:46%;--y:27%;--s:3px;--duration:4.5s;--delay:-1.1s}.ending-sparkles i:nth-child(5){--x:58%;--y:14%;--s:4px;--duration:3.7s;--delay:-2.6s}.ending-sparkles i:nth-child(6){--x:81%;--y:20%;--s:3px;--duration:4.6s;--delay:-1.9s}.ending-sparkles i:nth-child(7){--x:91%;--y:44%;--s:4px;--duration:5.2s;--delay:-.6s}.ending-sparkles i:nth-child(8){--x:76%;--y:70%;--s:3px;--duration:3.4s;--delay:-1.8s}.ending-sparkles i:nth-child(9){--x:12%;--y:77%;--s:3px;--duration:4.8s;--delay:-3.1s}.ending-sparkles i:nth-child(10){--x:29%;--y:82%;--s:3px;--duration:4.4s;--delay:-1.3s}.ending-sparkles i:nth-child(11){--x:68%;--y:85%;--s:4px;--duration:3.5s;--delay:-2s}.ending-sparkles i:nth-child(12){--x:96%;--y:86%;--s:3px;--duration:4.1s;--delay:-1.7s}.ending-sparkles i:nth-child(13){--x:6%;--y:55%;--s:3px;--duration:3.9s;--delay:-3.7s}.ending-sparkles i:nth-child(14){--x:49%;--y:88%;--s:2px;--duration:3.7s;--delay:-1.2s}.ending-sparkles i:nth-child(15){--x:87%;--y:9%;--s:3px;--duration:4.3s;--delay:-.8s}.ending-sparkles i:nth-child(16){--x:51%;--y:58%;--s:3px;--duration:4.6s;--delay:-2.9s}.ending-sparkles i:nth-child(2),.ending-sparkles i:nth-child(5),.ending-sparkles i:nth-child(7),.ending-sparkles i:nth-child(11){background:linear-gradient(#0000,#ffe5b1 48%,#0000);border-radius:3px;width:2px;height:13px;box-shadow:0 0 12px #ffd39da6}.ending-sparkles i:nth-child(2):after,.ending-sparkles i:nth-child(5):after,.ending-sparkles i:nth-child(7):after,.ending-sparkles i:nth-child(11):after{content:"";background:linear-gradient(90deg,#0000,#ffe5b1 50%,#0000);border-radius:3px;width:13px;height:2px;position:absolute;top:5px;left:-5.5px}.scene-ending:not(.is-active) .ending-sparkles i,.scene-ending:not(.is-active) .ending-light,.scene-ending:not(.is-active) .ending-video-frame:before,.scene-ending:not(.is-active) .ending-video-frame:after{animation-play-state:paused}@keyframes ending-sparkle{0%,to{opacity:.12;transform:translate(0,0)scale(.55)}45%{opacity:.96;transform:translateY(-6px)scale(1.55)}68%{opacity:.46;transform:translate(2px,-9px)scale(.85)}}@keyframes ending-frame-glow{0%{opacity:.45;transform:scale(.97)}to{opacity:.88;transform:scale(1.04)}}@keyframes ending-ambient-pulse{0%{opacity:.4;transform:scale(.94)}to{opacity:.7;transform:scale(1.08)}}@keyframes ending-light-sweep{0%,16%,to{background-position:170% 0}45%,65%{background-position:-130% 0}}@media (width<=700px){.scene-ending{padding:clamp(16px, 2.5vh, 24px) 18px max(22px, env(safe-area-inset-bottom));align-content:start}.scene-ending .ending-shell{flex-direction:column;gap:15px;width:min(100%,480px);display:flex}.ending-shell>.eyebrow{text-align:center;font-size:.68rem}.scene-ending .ending-photo-frame.ending-video-frame{width:min(72vw,285px);padding:9px 9px 27px}.ending-message{text-align:center;width:100%;max-width:420px;padding:0}.ending-message:before{display:none}.ending-message .eyebrow{font-size:.68rem}.ending-message h2{margin:10px 0 14px;font-size:clamp(3.05rem,11.3vw,4rem);line-height:1.02}.ending-message>p:not(.eyebrow):not(.ending-signature){max-width:34ch;margin:0 auto;font-size:.92rem;line-height:1.75}.ending-message .ending-signature{margin-top:13px;font-size:1.14rem}.ending-message .ending-signature span{font-size:1.55rem}.scene-ending .ending-bottom{margin-top:1px;font-size:.6rem}.scene-ending .ending-back{margin-top:-4px;font-size:.67rem}.ending-sparkles i:nth-child(n+13){display:none}}@media (width<=360px){.scene-ending .ending-photo-frame.ending-video-frame{width:min(70vw,240px)}.ending-message h2{font-size:clamp(2.85rem,10.8vw,3.5rem)}.ending-message>p:not(.eyebrow):not(.ending-signature){font-size:.89rem}}@media (prefers-reduced-motion:reduce){.scene-ending .ending-light,.scene-ending .ending-video-frame:before,.scene-ending .ending-video-frame:after,.scene-ending .ending-sparkles i{animation:none!important}.scene-ending .ending-sparkles i{opacity:.35}}.scene-ending .ending-video-container:not(.is-playing):after{content:"";z-index:1;pointer-events:none;background:#21101a url(/assets/images/vid-04-portada.jpg) 50%/cover no-repeat;position:absolute;inset:0}.scene-ending .ending-video-container.is-playing:after{content:none}.scene-ending .ending-video-start{z-index:3;min-height:44px}.scene-ending .ending-video-start[disabled]{cursor:progress;opacity:.9}.opening-copy h1{text-wrap:balance;font-size:clamp(2.65rem,4.25vw,4.1rem);line-height:1.025}.opening-copy .anniversary-date{color:#f4d5a2;text-shadow:0 0 17px #f9ca815c,0 1px 14px #16080e6b;flex-wrap:wrap;justify-content:center;align-items:baseline;gap:.23em;margin-top:7px;font-size:clamp(2rem,2.65vw,2.75rem);font-weight:500;line-height:1.14;display:inline-flex}.envelope .letter-body{opacity:0}.letter-body{min-width:0;max-width:100%}.letter-presented{gap:clamp(8px,1.4vh,13px);padding:clamp(24px,4vw,36px) clamp(20px,4.2vw,38px);overflow:hidden}.letter-presented .letter-body{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#90435e75 transparent;-webkit-overflow-scrolling:touch;flex:auto;width:100%;min-height:0;padding:4px 9px 8px;overflow:hidden auto}.letter-presented .letter-message{text-align:left;text-wrap:pretty;max-width:47ch;margin:0 auto 1.05em;font-size:clamp(.91rem,1.28vw,.99rem);line-height:1.68}.letter-presented .letter-message:last-child{margin-bottom:0}.letter-presented .letter-actions{flex-shrink:0;margin-top:0;padding-top:3px}.letter-presented .letter-continue{min-height:44px;margin-top:3px;font-size:.81rem}.ending-message .ending-anniversary-date{letter-spacing:.135em;color:#ffe1ac;text-shadow:0 0 18px #f4c58259,0 0 30px #f4a67f26;font-size:clamp(1.1rem,1.6vw,1.38rem);font-weight:500;line-height:1.35}.ending-message .ending-dedication{gap:clamp(10px,1.1vw,15px);max-width:39ch;display:grid}.ending-message .ending-dedication p{color:#f1d6db;margin:0;font-size:clamp(.96rem,1.12vw,1.02rem);line-height:1.77}@media (width<=700px){.opening-copy h1{margin:12px 0 14px;font-size:clamp(2rem,8.15vw,2.8rem);line-height:1.045}.opening-copy .anniversary-date{margin-top:8px;font-size:clamp(1.85rem,7vw,2.3rem)}.letter-presented{gap:9px;padding:24px 17px 19px}.letter-presented .letter-title{font-size:clamp(1.85rem,7.2vw,2.45rem)}.letter-presented .letter-body{padding:5px 9px}.letter-presented .letter-message{max-width:33ch;margin-bottom:1em;font-size:.91rem;line-height:1.67}.letter-presented .letter-signature{font-size:1.03rem}.letter-presented .letter-actions{padding-top:2px}.letter-presented .letter-continue{min-height:42px;margin-top:3px;padding:9px 11px;font-size:.76rem}.ending-message .ending-anniversary-date{letter-spacing:.13em;font-size:1.13rem}.ending-message .ending-dedication{gap:11px;max-width:36ch;margin:0 auto}.ending-message .ending-dedication p{font-size:.96rem;line-height:1.72}}@media (width<=360px){.opening-copy h1{font-size:2rem}.letter-presented .letter-message{font-size:.89rem}.letter-presented .letter-continue{font-size:.73rem}}.envelope .letter{height:120%;min-height:0}@media (width<=700px){.envelope .letter{height:132%;min-height:0}}@media (width<=360px) and (height<=700px){.scene-opening .scroll-note{visibility:hidden}}.envelope .letter-title{visibility:hidden}.opening-content>.eyebrow{z-index:2;font:italic 500 clamp(2rem, 2.65vw, 2.75rem)/1.13 var(--serif);letter-spacing:.045em;text-transform:none;color:#f4d5a2;text-shadow:0 0 18px #f9ca8147;position:relative}.ending-shell>.eyebrow{letter-spacing:.25em;font-size:.86rem}.ending-message .ending-anniversary-date{font-size:clamp(1.3rem,1.8vw,1.55rem)}.ending-message .ending-dedication p{font-size:clamp(1.06rem,1.22vw,1.14rem);line-height:1.72}.scene-ending .ending-bottom{letter-spacing:.18em;font-size:.78rem}.scene-ending .ending-back{letter-spacing:.095em;font-size:.78rem}@media (width<=700px){.opening-content>.eyebrow{color:#793f54;text-shadow:0 1px #ffffff8c;font-size:clamp(1.85rem,7vw,2.3rem);top:10px}.scene-opening .opening-story-button{min-height:40px;font-size:.88rem}.scene-opening .scroll-note{letter-spacing:.16em;font-size:.7rem}.ending-shell>.eyebrow{font-size:.78rem}.ending-message .ending-anniversary-date{font-size:1.29rem}.ending-message .ending-dedication p{font-size:1.05rem;line-height:1.72}.scene-ending .ending-bottom{font-size:.75rem}.scene-ending .ending-back{font-size:.76rem}}@media (width<=360px){.ending-message .ending-dedication p{font-size:1rem}.scene-ending .ending-bottom{font-size:.7rem}}@keyframes seal-pulse{0%,to{box-shadow:0 0 0 5px #ffddde1a,0 0 18px #ffa7be6b}50%{box-shadow:0 0 0 10px #ffddde0d,0 0 34px #ffa7bec7}}.envelope.is-open .seal{opacity:0;pointer-events:none;transition:opacity .25s}.reveal{animation:.9s both soft-appear}@keyframes soft-appear{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.memory-card{transition:transform .45s,box-shadow .45s}.memory-card:hover{transform:translateY(-7px)rotate(0);box-shadow:0 28px 55px #00000052}@media (prefers-reduced-motion:reduce){.seal{animation:none}}@keyframes seal-ring{0%{opacity:.8;transform:scale(.82)}to{opacity:0;transform:scale(1.5)}}@keyframes scene-arrive{0%{opacity:0;filter:blur(5px);transform:translateY(12px)}to{opacity:1;filter:blur();transform:translateY(0)}}@keyframes ambient-drift{0%{background-position:0 0,0 0,0 0}to{background-position:170px -190px,-230px 210px,190px 240px}}.letter-presented{overscroll-behavior:contain;pointer-events:auto;background:linear-gradient(155deg,#fff2eb 0%,#f8dfde 53%,#e8c2c6 100%);border-radius:2px;flex-direction:column;justify-content:center;align-items:center;padding:clamp(20px,5vw,46px);display:flex;overflow-y:auto;box-shadow:0 28px 100px #0009,0 0 65px #e8a5b926}.letter-presented .letter-title{font-size:clamp(2rem,5vw,3.1rem)}.letter-presented .letter-message{font-size:clamp(.82rem,2.6vw,.99rem);line-height:1.7}.letter-presented .letter-signature{font-size:1.15rem}.letter-actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.letter-presented .letter-continue{opacity:1;pointer-events:auto;background:linear-gradient(#ffffff85,#fff3);margin-top:18px;padding:12px 15px;font-size:.73rem;transition-delay:0s;transform:none;box-shadow:0 8px 18px #561b3214}.letter-presented .letter-save{background:#ffffff1f}.letter-away .letter-presented{visibility:hidden;pointer-events:none}body.letter-is-open:after{content:"";z-index:20;pointer-events:none;background:#10060d94;position:fixed;inset:0}@media (width<=700px){.letter-presented .letter-title{font-size:clamp(1.95rem,8vw,2.65rem)}.letter-presented .letter-message{font-size:clamp(.8rem,3.7vw,.94rem)}.letter-presented .letter-continue{margin-top:10px}}.envelope .letter{transition:none}.envelope.is-open .letter{transform:none}.envelope-flap{transition:none}.envelope.is-open .envelope-flap{transform:none}.envelope.is-opening .seal,.envelope.is-open .seal{opacity:0;pointer-events:none}.letter-presented{background:linear-gradient(155deg,#fff0e8 0%,#f8dedd 53%,#e8c2c6 100%);border:1px solid #fffcf2b8;box-shadow:0 32px 95px #0d040a8f,0 0 65px #e8a5b921,inset 0 0 0 7px #fffcf51a,inset 0 0 28px #7f3f560f}.letter-presented:before{content:"";pointer-events:none;z-index:0;border:1px solid #924c6030;position:absolute;inset:13px}.letter-presented:after{content:"";pointer-events:none;z-index:0;opacity:.9;background:linear-gradient(#ffffff1f,#0000 22% 78%,#5d22370d),repeating-linear-gradient(0deg,#ffffff08 0 2px,#0000 2px 4px);position:absolute;inset:0}.letter-presented>*{z-index:1;position:relative}.scene-opening{overflow-y:hidden}@media (height<=620px){.scene-opening{overflow-y:auto}}.letter-presented{border-radius:18px;justify-content:flex-start;gap:clamp(10px,2vh,18px);padding:clamp(28px,5.5vw,52px) clamp(18px,4.5vw,40px) clamp(24px,5vw,38px)}.letter-presented:before{border-radius:14px}.letter-presented .letter-kicker{margin:0}.letter-presented .letter-title{margin:0;line-height:1.04}.letter-presented .letter-message{max-width:34ch;margin:0}.letter-presented .letter-signature{margin:0}.letter-presented .letter-actions{width:100%;margin-top:auto;padding-top:10px}.letter-presented .letter-continue{border-radius:999px;min-height:42px}@media (width<=700px){.letter-presented{gap:12px;padding:26px 18px 24px}.letter-presented .letter-title{font-size:clamp(2.1rem,8vw,2.75rem)}.letter-presented .letter-message{max-width:26ch;line-height:1.78}.letter-presented .letter-actions{justify-content:center;gap:10px;padding-top:8px}}
