[hidden]{display:none!important}
.new-plant{transform-box:fill-box;transform-origin:50% 100%;animation:plant-sway 5.8s ease-in-out calc(var(--grow-delay) + 5s) infinite alternate}.growing-stem{stroke-dasharray:1;stroke-dashoffset:1;animation:stem-rise 2.5s ease-out var(--grow-delay) forwards}.unfurl-leaf{transform:scale(0);transform-origin:0 0;animation:leaf-open 1.8s ease-out calc(var(--grow-delay) + 1.2s) forwards,leaf-breathe 5.8s ease-in-out calc(var(--grow-delay) + 5s) infinite alternate}.emerging-head{transform:scale(0);transform-origin:50% 100%;animation:head-rise 1.8s cubic-bezier(.2,.7,.2,1) calc(var(--grow-delay) + 1.5s) forwards}.opening-flower{opacity:0;transform-origin:50% 100%;animation:flower-reveal 1.3s ease calc(var(--grow-delay) + 3.1s) forwards,flower-breathe 5s ease-in-out calc(var(--grow-delay) + 5s) infinite alternate}.unfold-petal{transform:scale(.12,.3);transform-origin:50% 100%;animation:petal-open 3s cubic-bezier(.22,.65,.3,1) calc(var(--grow-delay) + var(--petal-delay) + 3s) forwards}.closed-bud{opacity:1;animation:bud-open 2.3s ease calc(var(--grow-delay) + 3s) forwards}.flower-center{opacity:0;animation:flower-reveal 2s ease calc(var(--grow-delay) + 3.5s) forwards,center-glow 4s ease-in-out calc(var(--grow-delay) + 5s) infinite alternate}.magic-bouquet{position:absolute;inset:2% 0 0;display:flex;justify-content:center;align-items:center;pointer-events:none;transition:opacity 2s,filter 2s;filter:drop-shadow(0 0 28px #e6c45a35)}.magic-bouquet svg{height:90%;width:min(90%,650px);overflow:visible}.magic.revealed .magic-bouquet{opacity:.25;filter:blur(3px)}.magic-copy{z-index:1}.magic:not(.revealed)::after{content:'Un nuevo pétalo. Otra razón para quererte.';position:absolute;bottom:25px;left:0;width:100%;text-align:center;color:#e8dca5;font:italic 17px Georgia,serif;pointer-events:none}
@keyframes stem-rise{to{stroke-dashoffset:0}}@keyframes leaf-open{to{transform:scale(1)}}@keyframes head-rise{0%{transform:translateY(24px) scale(0)}70%{transform:translateY(0) scale(.9)}100%{transform:scale(1)}}@keyframes flower-reveal{to{opacity:1}}@keyframes petal-open{0%{transform:scale(.12,.3)}55%{transform:scale(.7,.82)}100%{transform:scale(1)}}@keyframes bud-open{45%{opacity:.85;transform:scale(1.15,.9)}100%{opacity:0;transform:translateY(10px) scale(1.5,.3)}}@keyframes plant-sway{0%{transform:rotate(-1.7deg) translateX(-1px)}38%{transform:rotate(.7deg) translateX(1px)}72%{transform:rotate(1.9deg) translateX(2px)}100%{transform:rotate(-.6deg) translateX(-1px)}}@keyframes leaf-breathe{0%{transform:scale(1) rotate(-1deg)}100%{transform:scale(1.025) rotate(3deg)}}@keyframes flower-breathe{0%{transform:rotate(-1.3deg) translateY(0)}48%{transform:rotate(1.1deg) translateY(-1px)}100%{transform:rotate(-.8deg) translateY(1px)}}@keyframes center-glow{0%{filter:brightness(.96)}100%{filter:brightness(1.16)}}
@media(prefers-reduced-motion:reduce){.new-plant,.growing-stem,.unfurl-leaf,.emerging-head,.unfold-petal,.opening-flower,.flower-center,.closed-bud{animation:none}.growing-stem{stroke-dashoffset:0}.unfurl-leaf,.emerging-head,.unfold-petal{transform:none}.opening-flower,.flower-center{opacity:1}.closed-bud{opacity:0}}
.memory-dock{position:fixed;right:20px;bottom:18px;z-index:5;width:164px;filter:drop-shadow(0 10px 22px #0005)}
.dock-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;gap:6px;border:1px solid #e5cb7740;background:#142b24ed;backdrop-filter:blur(12px);color:#e0d8af;padding:10px 12px;border-radius:12px;font-size:10px;letter-spacing:.3px}
#dock-content{padding:12px 5px 0;display:flex;flex-direction:column;gap:12px}.photo-stack{display:block;width:100%;height:143px;position:relative;border:0;background:transparent;color:#e8e3cc;padding:0}.photo-stack img{position:absolute;top:10px;left:calc(50% - 47px);width:94px;height:109px;object-fit:cover;border:5px solid #faf0d7;border-bottom-width:15px;box-shadow:0 5px 12px #0005;border-radius:2px;transform:rotate(var(--photo-angle));transition:transform .6s}.photo-stack:hover img:first-child{transform:translateX(-13px) rotate(-16deg)}.photo-stack:hover img:last-child{transform:translateX(12px) rotate(12deg)}.stack-label{position:absolute;bottom:0;left:0;width:100%;font-size:9px;color:#d3d5b9;letter-spacing:.2px}.floating-video{position:relative;width:100%;border:1px solid #eed78666;border-radius:14px;overflow:hidden;background:#15281f;box-shadow:0 0 20px #e8c35a0d}.floating-video video{display:block;width:100%;height:182px;object-fit:cover}.video-close{position:absolute;right:5px;top:5px;border:0;color:white;background:#10251f90;width:25px;height:25px;border-radius:50%;font-size:19px;z-index:1}.video-caption{display:flex;justify-content:space-between;align-items:center;padding:9px;background:#142b24}.video-caption span{font-size:7px;letter-spacing:1px;color:#d5d3b9}.video-caption button{border:0;background:transparent;color:#f5cc65;width:25px;height:25px}.photo-viewer{max-width:850px;width:calc(100% - 32px);padding:40px 20px 18px;background:#11281f}.photo-viewer>img{display:block;margin:auto;max-width:100%;max-height:65dvh;object-fit:contain;border-radius:7px}.photo-viewer>p{text-align:center;color:#d4d9be;font-family:'Playfair Display',Georgia,serif;overflow-wrap:anywhere}.photo-navigation{display:flex;align-items:center;justify-content:center;gap:25px;font-size:12px;color:#c2cbaa}.magic{position:fixed;inset:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;border:0;border-radius:0;background:radial-gradient(ellipse at 50% 45%,#44472b 0,#14291f 42%,#06140f 90%);padding:30px;overflow:auto}.magic::backdrop{background:#07170f}.magic canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.magic .close{position:fixed;right:24px;top:20px;z-index:2;border:1px solid #ffffff30;border-radius:50%;width:42px;height:42px;background:#10251f}.magic-copy{position:relative;max-width:620px;min-height:calc(100dvh - 60px);margin:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;pointer-events:none;opacity:0;transform:translateY(20px);transition:opacity 2s,transform 2s}.magic.revealed .magic-copy{opacity:1;transform:translateY(0)}.magic-copy h2{font-size:clamp(38px,6vw,78px);color:#fff1bd;line-height:1.15;max-width:100%;overflow-wrap:anywhere;text-shadow:0 2px 35px #000b;margin:20px 0}.magic-copy>p:not(.eyebrow){max-width:420px;font:italic 21px/1.7 'Playfair Display',Georgia,serif;color:#f0e6c4;text-shadow:0 2px 12px #000;white-space:pre-wrap;overflow-wrap:anywhere}.magic-copy button{margin-top:30px;pointer-events:none;visibility:hidden}.magic.revealed .magic-copy button{pointer-events:auto;visibility:visible}.magic .eyebrow{font-size:10px;color:#f5d57f}.hero-copy>.primary-button{margin-bottom:15px}
@media(min-width:1500px){.memory-dock{right:30px;width:185px}.floating-video video{height:215px}}
@media(max-width:760px){.memory-dock{right:10px;bottom:10px;width:114px}.dock-toggle{font-size:8px;padding:9px 7px;gap:3px}#dock-content{padding:5px 2px 0;gap:8px}.photo-stack{height:99px}.photo-stack img{width:63px;height:74px;left:calc(50% - 31px);border-width:3px;border-bottom-width:10px;top:8px}.stack-label{font-size:7px}.floating-video video{height:113px}.video-caption{padding:3px 5px}.video-caption span{font-size:6px;letter-spacing:.3px}.video-caption button{height:22px}.magic{padding:22px}.magic-copy{min-height:calc(100dvh - 44px)}.magic-copy>p:not(.eyebrow){font-size:18px}.magic-copy .primary-button{font-size:11px;gap:10px;padding:15px}.photo-viewer>img{max-height:60dvh}footer{padding-bottom:70px}}
@media(prefers-reduced-motion:reduce){.magic-copy{transition:none;transform:none}}
.memory-dock{width:190px;animation:memory-float 7s ease-in-out infinite}.dock-toggle{border-color:#e5cb7770;background:linear-gradient(145deg,#1c392ceF,#11251fee);box-shadow:0 10px 28px #0006}.photo-stack{height:154px;border:1px solid #e5cb7755;border-radius:17px;background:linear-gradient(145deg,#274633eF,#152c22f5);box-shadow:0 12px 25px #0007;overflow:hidden}.photo-stack:before{content:'✳';position:absolute;top:5px;left:9px;color:#f5cc65b0;font-size:15px;z-index:2;pointer-events:none}.photo-stack img{transition:transform .6s,opacity .6s,filter .6s}.photo-stack.is-rotating img{animation:photo-turn .8s ease both}.photo-stack.is-rotating img:nth-child(2){animation-delay:.08s}.photo-stack.is-rotating img:nth-child(3){animation-delay:.16s}.stack-label{bottom:0;padding:7px 8px;background:linear-gradient(transparent,#10251feF);font-size:8px;text-align:center}.floating-video{border-color:#e5cb7766;border-radius:17px;box-shadow:0 12px 28px #0008;transform:rotate(1deg)}.floating-video:before{content:'✳';position:absolute;left:9px;top:7px;color:#f5cc65b5;font-size:13px;z-index:1;pointer-events:none}.floating-video video{filter:saturate(.82) contrast(1.04)}@keyframes memory-float{0%,100%{transform:translateY(0) rotate(-.4deg)}50%{transform:translateY(-5px) rotate(.4deg)}}@keyframes photo-turn{0%{opacity:.35;transform:translateY(7px) rotate(calc(var(--photo-angle) - 5deg)) scale(.96)}100%{opacity:1;transform:translateY(0) rotate(var(--photo-angle)) scale(1)}}
@media(max-width:760px){.memory-dock{width:124px}.photo-stack{height:108px}.floating-video{border-radius:13px}.memory-dock{animation:none}}
@media(prefers-reduced-motion:reduce){.memory-dock,.photo-stack.is-rotating img{animation:none}}
.letter-memories{display:grid;grid-template-columns:minmax(120px,.78fr) minmax(170px,1.22fr);gap:15px;max-width:590px;margin:25px auto 0;align-items:stretch}.letter-memory-card{position:relative;min-height:142px;overflow:hidden;border:1px solid #e5cb7770;border-radius:14px;background:#152d22;box-shadow:0 13px 28px #0007}.letter-photo-card{transform:rotate(-2deg);overflow:visible;background:linear-gradient(145deg,#274633,#13291f)}.letter-photo-card:before{content:'✳';position:absolute;left:10px;top:7px;color:#f5cc65b5;font-size:14px;z-index:3}.letter-photo-card img{position:absolute;top:17px;left:50%;width:76%;height:102px;object-fit:cover;border:4px solid #fff4dc;border-bottom-width:12px;box-shadow:0 7px 14px #0007;transform:translateX(-50%) rotate(var(--photo-angle));transition:transform .5s,opacity .5s}.letter-photo-card img:nth-child(2){top:12px}.letter-photo-card img:nth-child(3){top:22px}.letter-memory-caption{position:absolute;right:0;bottom:0;left:0;padding:7px 6px;background:linear-gradient(transparent,#10251ff2);color:#e8dca5;font-size:7px;letter-spacing:1.2px;text-align:center;z-index:4}.letter-video-card{transform:rotate(1.5deg)}.letter-video-card video{display:block;width:100%;height:100%;min-height:142px;object-fit:cover;filter:saturate(.84) contrast(1.04)}
@media(max-width:760px){.letter-memories{grid-template-columns:minmax(94px,.8fr) minmax(130px,1.2fr);gap:9px;margin-top:19px}.letter-memory-card{min-height:112px;border-radius:11px}.letter-photo-card img{top:13px;height:78px;border-width:3px;border-bottom-width:9px}.letter-photo-card img:nth-child(2){top:9px}.letter-photo-card img:nth-child(3){top:17px}.letter-video-card video{min-height:112px}.letter-memory-caption{padding:5px 3px;font-size:5px;letter-spacing:.7px}.letter-photo-card:before{font-size:11px;top:5px;left:7px}}
@media(prefers-reduced-motion:reduce){.letter-photo-card,.letter-video-card{transform:none}.letter-photo-card img{transition:none}}
.letter-memories{height:170px}.letter-memory-card{height:170px;min-height:0}.letter-video-card video{height:170px;min-height:0}
@media(max-width:760px){.letter-memories{height:116px}.letter-memory-card{height:116px;min-height:0}.letter-video-card video{height:116px;min-height:0}}
@media(max-width:760px){.memory-dock{position:relative;right:auto;bottom:auto;width:min(calc(100% - 32px),320px);margin:24px auto 28px;filter:drop-shadow(0 10px 22px #0005)}}
