.message-card[data-v-d5bbb135]{opacity:0;transform:translateY(12px);transition:opacity .4s ease-out,transform .4s ease-out}.message-card.is-visible[data-v-d5bbb135]{opacity:1;transform:translateY(0)}.image-loader[data-v-5da40eec]{overflow:hidden;position:relative}.image-loader img[data-v-5da40eec]{opacity:0;transition:opacity .4s ease}.image-loader.is-loaded img[data-v-5da40eec]{opacity:1}.image-loader__shimmer[data-v-5da40eec]{animation:shimmer-5da40eec 1.5s ease-in-out infinite;background:linear-gradient(110deg,var(--bg-card) 30%,color-mix(in srgb,var(--accent) 8%,var(--bg-card)) 50%,var(--bg-card) 70%);background-size:200% 100%;inset:0;position:absolute}@keyframes shimmer-5da40eec{0%{background-position:200% 0}to{background-position:-200% 0}}.photo-card[data-v-140a54f8]{opacity:0;transform:translateY(10px) scale(.98);transition:opacity .4s ease-out,transform .4s ease-out}.photo-card.is-visible[data-v-140a54f8]{opacity:1;transform:translateY(0) scale(1)}.polaroid-card[data-v-add213bf]{opacity:0;transform:translateY(-20px) rotate(var(--start-rotation,3deg));transition:opacity .4s ease-out,transform .4s ease-out}.polaroid-card.is-visible[data-v-add213bf]{opacity:1;transform:translateY(0) rotate(var(--rotation,0deg))}.slider-card[data-v-f4c6c2a3]{opacity:0;transform:translateY(12px);transition:opacity .4s ease-out,transform .4s ease-out}.slider-card.is-visible[data-v-f4c6c2a3]{opacity:1;transform:translateY(0)}.gallery-card[data-v-9ba14d5b]{opacity:0;transition:opacity .4s ease-out,transform .4s ease-out}.gallery-card.from-left[data-v-9ba14d5b]{transform:translate(-10px) scale(.97)}.gallery-card.from-right[data-v-9ba14d5b]{transform:translate(10px) scale(.97)}.gallery-card.is-visible[data-v-9ba14d5b]{opacity:1;transform:translate(0) scale(1)}.story-container[data-v-275ac0e7]{aspect-ratio:9/16;background:#000;border-radius:16px;cursor:pointer;margin:0 auto;max-width:400px;overflow:hidden;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%}.story-progress[data-v-275ac0e7]{display:flex;gap:6px;left:12px;position:absolute;right:12px;top:12px;z-index:20}.story-progress-bar[data-v-275ac0e7]{background:#ffffff40;border-radius:3px;flex:1;height:3px;overflow:hidden}.story-progress-fill[data-v-275ac0e7]{background:linear-gradient(90deg,var(--accent),var(--accent-light,var(--accent)));border-radius:3px;height:100%;transition:width .05s linear}.story-progress-fill--active[data-v-275ac0e7]{box-shadow:0 0 8px var(--accent),0 0 16px color-mix(in srgb,var(--accent) 50%,transparent)}.story-counter[data-v-275ac0e7]{color:#ffffffb3;font-family:var(--font-cursive,"Caveat",cursive);font-size:1rem;position:absolute;right:12px;text-shadow:0 1px 3px rgba(0,0,0,.5);top:24px;z-index:20}.story-slide[data-v-275ac0e7]{align-items:center;display:flex;inset:0;justify-content:center;position:absolute;transition:opacity .15s ease-out}.story-slide--transitioning[data-v-275ac0e7]{opacity:0}.story-media[data-v-275ac0e7]{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.story-media--photo[data-v-275ac0e7]{will-change:transform}.story-ken-burns--in[data-v-275ac0e7]{animation:kenBurnsIn-275ac0e7 8s ease-out forwards}.story-ken-burns--out[data-v-275ac0e7]{animation:kenBurnsOut-275ac0e7 8s ease-out forwards}@keyframes kenBurnsIn-275ac0e7{0%{transform:scale(1) translate(0)}to{transform:scale(1.08) translate(-1%,-1%)}}@keyframes kenBurnsOut-275ac0e7{0%{transform:scale(1.08) translate(-1%,-1%)}to{transform:scale(1) translate(0)}}.story-text[data-v-275ac0e7]{animation:textFadeIn-275ac0e7 .4s ease-out .2s both;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(135deg,#000000a6,#00000080);border:1px solid hsla(0,0%,100%,.1);border-radius:12px;color:#fff;font-size:1.1rem;left:16px;padding:12px 16px;position:absolute;right:16px;text-align:center;z-index:10}@keyframes textFadeIn-275ac0e7{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.story-text--top[data-v-275ac0e7]{top:48px}.story-text--center[data-v-275ac0e7]{animation:textFadeInCenter-275ac0e7 .4s ease-out .2s both;top:50%}@keyframes textFadeInCenter-275ac0e7{0%{opacity:0;transform:translateY(-50%) scale(.95)}to{opacity:1;transform:translateY(-50%) scale(1)}}.story-text--bottom[data-v-275ac0e7]{bottom:48px}.story-mute-btn[data-v-275ac0e7]{align-items:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#00000080;border:1px solid hsla(0,0%,100%,.1);border-radius:50%;bottom:16px;display:flex;font-size:1.2rem;height:40px;justify-content:center;position:absolute;right:16px;transition:transform .2s,background .2s;width:40px;z-index:15}.story-mute-btn[data-v-275ac0e7]:hover{background:#000000b3}.story-mute-btn[data-v-275ac0e7]:active{transform:scale(.9)}.story-hint[data-v-275ac0e7]{bottom:8px;color:#fff6;font-size:.7rem;left:50%;letter-spacing:.5px;transform:translate(-50%);z-index:10}.story-hint[data-v-275ac0e7],.story-paused[data-v-275ac0e7]{pointer-events:none;position:absolute}.story-paused[data-v-275ac0e7]{align-items:center;animation:pauseFadeIn-275ac0e7 .15s ease-out;background:#0000004d;display:flex;inset:0;justify-content:center;z-index:25}@keyframes pauseFadeIn-275ac0e7{0%{opacity:0}to{opacity:1}}.story-media--loading[data-v-275ac0e7]{opacity:0}.story-media--loaded[data-v-275ac0e7]{opacity:1;transition:opacity .3s ease}.story-shimmer[data-v-275ac0e7]{animation:storyShimmer-275ac0e7 1.5s ease-in-out infinite;background:linear-gradient(110deg,#ffffff08 30%,#ffffff1a,#ffffff08 70%);background-size:200% 100%;inset:0;position:absolute;z-index:1}@keyframes storyShimmer-275ac0e7{0%{background-position:200% 0}to{background-position:-200% 0}}.voice-player[data-v-e3b0bd1a]{margin:0 auto;max-width:380px;opacity:0;transform:translateY(15px) scale(.95);transition:opacity .4s ease-out,transform .4s ease-out;width:100%}.voice-player.is-visible[data-v-e3b0bd1a]{opacity:1;transform:translateY(0) scale(1)}.voice-container[data-v-e3b0bd1a]{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(135deg,#0000004d,#00000026);border:1px solid hsla(0,0%,100%,.1);border-radius:60px;display:flex;gap:.5rem;padding:.625rem 1.25rem .625rem .625rem}.voice-play-btn[data-v-e3b0bd1a]{align-items:center;background:var(--accent);border-radius:50%;box-shadow:0 4px 15px #0000004d;color:var(--bg-primary);display:flex;flex-shrink:0;height:3.25rem;justify-content:center;transition:all .2s ease;width:3.25rem}.voice-play-btn[data-v-e3b0bd1a]:hover{transform:scale(1.08)}.voice-play-btn[data-v-e3b0bd1a]:active{transform:scale(.95)}.voice-play-btn.is-playing[data-v-e3b0bd1a]{animation:glow-e3b0bd1a 2s ease-in-out infinite;background:var(--accent)}@keyframes glow-e3b0bd1a{0%,to{box-shadow:0 4px 15px #0000004d,0 0 20px var(--accent)}50%{box-shadow:0 4px 15px #0000004d,0 0 30px var(--accent)}}.voice-waveform[data-v-e3b0bd1a]{cursor:pointer;flex:1;height:2.5rem;padding:0 4px}.voice-loading[data-v-e3b0bd1a]{align-items:center;display:flex;height:100%;justify-content:center}.voice-loading-bar[data-v-e3b0bd1a]{animation:loading-pulse-e3b0bd1a 1.5s ease-in-out infinite;background:linear-gradient(90deg,transparent,var(--accent),transparent);border-radius:1px;height:2px;width:60%}@keyframes loading-pulse-e3b0bd1a{0%,to{opacity:.3;transform:scaleX(.8)}50%{opacity:.7;transform:scaleX(1)}}.voice-bars[data-v-e3b0bd1a]{align-items:center;display:flex;gap:2px;height:2.5rem}.voice-bar[data-v-e3b0bd1a]{background:#ffffff4d;border-radius:1.5px;flex:1;max-height:100%;min-height:4px;transition:background .15s ease,box-shadow .15s ease}.voice-bar.is-active[data-v-e3b0bd1a]{background:var(--accent);box-shadow:0 0 8px color-mix(in srgb,var(--accent) 60%,transparent)}.voice-waveform:hover .voice-bar[data-v-e3b0bd1a]{background:#ffffff59}.voice-waveform:hover .voice-bar.is-active[data-v-e3b0bd1a]{background:var(--accent)}.voice-time[data-v-e3b0bd1a]{font-family:var(--font-cursive,"Caveat",cursive);font-size:1.1rem;min-width:60px;text-align:right;white-space:nowrap}.voice-time-current[data-v-e3b0bd1a]{color:var(--accent);font-weight:500}.voice-time-sep[data-v-e3b0bd1a]{color:#fff6;margin:0 2px}.voice-time-total[data-v-e3b0bd1a]{color:#fff9}.video-card[data-v-6245f388]{opacity:0;transition:opacity .4s ease-out}.video-card.is-visible[data-v-6245f388]{opacity:1}.skeleton-loader[data-v-6245f388]{align-items:center;background:var(--bg-secondary,#1a1a1a);display:flex;justify-content:center;transition:opacity .3s ease-out;z-index:1}.skeleton-loader.is-hidden[data-v-6245f388]{opacity:0;pointer-events:none}.skeleton-play[data-v-6245f388]{align-items:center;animation:shimmer-6245f388 1.5s infinite;background:linear-gradient(135deg,var(--bg-card,#2a2a2a) 25%,var(--bg-primary,#1f1f1f) 50%,var(--bg-card,#2a2a2a) 75%);background-size:200% 100%;border-radius:50%;color:var(--text-secondary);display:flex;height:5rem;justify-content:center;opacity:.5;width:5rem}@keyframes shimmer-6245f388{0%{background-position:200% 0}to{background-position:-200% 0}}iframe[data-v-6245f388]{opacity:0;transition:opacity .3s ease-out}iframe.is-loaded[data-v-6245f388]{opacity:1}.playlist-card[data-v-4b911e5d]{opacity:0;transition:opacity .4s ease-out}.playlist-card.is-visible[data-v-4b911e5d]{opacity:1}.skeleton-loader[data-v-4b911e5d]{background:var(--bg-secondary,#1a1a1a);display:flex;flex-direction:column;gap:.75rem;padding:.75rem;transition:opacity .3s ease-out}.skeleton-loader.is-hidden[data-v-4b911e5d]{opacity:0;pointer-events:none}.skeleton-cover[data-v-4b911e5d]{height:5rem}.skeleton-body[data-v-4b911e5d],.skeleton-cover[data-v-4b911e5d]{animation:shimmer-4b911e5d 1.5s infinite;background:linear-gradient(90deg,var(--bg-card,#2a2a2a) 25%,var(--bg-primary,#1f1f1f) 50%,var(--bg-card,#2a2a2a) 75%);background-size:200% 100%;border-radius:.5rem}.skeleton-body[data-v-4b911e5d]{animation-delay:.2s;flex:1}@keyframes shimmer-4b911e5d{0%{background-position:200% 0}to{background-position:-200% 0}}iframe[data-v-4b911e5d]{opacity:0;transition:opacity .3s ease-out}iframe.is-loaded[data-v-4b911e5d]{opacity:1}.interaction-card[data-v-9ddd884e]{opacity:0;transform:translateY(12px);transition:opacity .4s ease-out,transform .4s ease-out}.interaction-card.is-visible[data-v-9ddd884e]{opacity:1;transform:translateY(0)}.letter-container[data-v-89f5c7f9],.letter-paper[data-v-89f5c7f9]{position:relative}.letter-paper[data-v-89f5c7f9]{background:#faf8f5;background-image:linear-gradient(90deg,transparent,rgba(0,0,0,.02) 50%,transparent),repeating-linear-gradient(0deg,transparent,transparent 31px,#e8e4df 0,#e8e4df 32px);background-position:0 2rem;border-radius:2px;box-shadow:0 2px 4px #0000001a,0 8px 16px #0000001a,0 16px 32px #00000026;opacity:0;padding:2.5rem 2rem;transform:translateY(-15px) rotate(2deg);transition:opacity .4s ease-out,transform .4s ease-out}.letter-paper.is-visible[data-v-89f5c7f9]{opacity:1;transform:translateY(0) rotate(-.6deg)}.letter-margin[data-v-89f5c7f9]{background:#b4646440;bottom:0;left:1.5rem;position:absolute;top:0;width:1px}.letter-content[data-v-89f5c7f9]{min-height:300px;position:relative;z-index:1}.letter-salutation[data-v-89f5c7f9]{color:#1a1a2e;font-family:Caveat,cursive;font-size:1.75rem;margin-bottom:1.5rem;opacity:0;transform:translateY(10px);transition:all .8s cubic-bezier(.4,0,.2,1)}.letter-salutation.is-visible[data-v-89f5c7f9]{opacity:1;transform:translateY(0)}.letter-body[data-v-89f5c7f9]{color:#1a1a2e;font-family:Caveat,cursive;font-size:1.45rem;-webkit-hyphens:none;hyphens:none;line-height:1.8;margin-bottom:2rem;overflow-wrap:break-word;word-break:normal}.paragraph-break[data-v-89f5c7f9]{display:block;height:1.2em}.letter-body .word[data-v-89f5c7f9]{display:inline;white-space:nowrap}.letter-body .char[data-v-89f5c7f9]{animation:charWrite-89f5c7f9 .1s ease forwards;display:inline-block}@keyframes charWrite-89f5c7f9{0%{opacity:0;transform:translateY(10px) rotate(-5deg)}to{opacity:1;transform:translateY(0) rotate(0)}}.letter-body .dropcap[data-v-89f5c7f9]{animation:dropcapReveal-89f5c7f9 1.2s cubic-bezier(.22,1,.36,1) forwards;color:var(--accent);float:left;font-family:Cormorant Garamond,Georgia,serif;font-size:4rem;font-style:italic;font-weight:600;line-height:.8;margin-right:.1em;margin-top:.1em}@keyframes dropcapReveal-89f5c7f9{0%{opacity:0;transform:scale(.3) rotate(-15deg)}60%{opacity:1;transform:scale(1.05) rotate(0)}to{opacity:1;transform:scale(1) rotate(-2deg)}}.letter-cursor[data-v-89f5c7f9]{animation:cursorBlink-89f5c7f9 .6s ease infinite;background:var(--accent);display:inline-block;height:1.2em;margin-left:2px;vertical-align:text-bottom;width:2px}@keyframes cursorBlink-89f5c7f9{0%,to{opacity:1}50%{opacity:0}}.letter-signature-block[data-v-89f5c7f9]{margin-top:2rem;text-align:right}.letter-closing[data-v-89f5c7f9]{color:#4a4a6a;font-family:Caveat,cursive;font-size:1.3rem;font-weight:500;opacity:0;transform:translateY(10px);transition:all .8s cubic-bezier(.4,0,.2,1)}.letter-closing.is-visible[data-v-89f5c7f9]{opacity:1;transform:translateY(0)}.letter-signature[data-v-89f5c7f9]{color:#1a1a2e;font-family:Caveat,cursive;font-size:2.1rem;font-weight:700;margin-top:.5rem;opacity:0;transform:translate(20px) rotate(-3deg);transition:all 1s cubic-bezier(.34,1.56,.64,1)}.letter-signature.is-visible[data-v-89f5c7f9]{opacity:1;transform:translate(0) rotate(-2deg)}.letter-heart[data-v-89f5c7f9]{color:var(--accent);display:inline-block;margin-left:.5rem;opacity:0;transform:scale(0);transition:all .5s cubic-bezier(.34,1.56,.64,1)}.letter-heart.is-visible[data-v-89f5c7f9]{opacity:1;transform:scale(1)}.letter-seal[data-v-89f5c7f9]{align-items:center;background:linear-gradient(135deg,var(--accent) 0,color-mix(in srgb,var(--accent) 70%,#000) 100%);border-radius:50%;bottom:-24px;box-shadow:0 4px 8px #0003,inset 0 2px 4px #fff3;display:flex;height:52px;justify-content:center;left:50%;opacity:0;position:absolute;transform:translate(-50%) scale(0) rotate(-180deg);transition:all .8s cubic-bezier(.34,1.56,.64,1);width:52px}.letter-seal.is-visible[data-v-89f5c7f9]{opacity:1;transform:translate(-50%) scale(1) rotate(0)}.letter-seal svg[data-v-89f5c7f9]{color:#faf8f5;height:24px;opacity:.9;width:24px}.letter-controls[data-v-89f5c7f9]{display:flex;justify-content:center;margin-top:2.5rem}.letter-control-btn[data-v-89f5c7f9]{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border:1px solid hsla(0,0%,100%,.2);border-radius:2rem;color:var(--text-secondary);cursor:pointer;font-family:Cormorant Garamond,serif;font-size:.875rem;padding:.5rem 1.25rem;transition:all .3s ease}.letter-control-btn[data-v-89f5c7f9]:hover{background:#ffffff26;color:var(--text-primary);transform:translateY(-1px)}@media(max-width:640px){.letter-paper[data-v-89f5c7f9]{padding:1.75rem 1.25rem}.letter-body[data-v-89f5c7f9]{font-size:1.25rem}.letter-body .dropcap[data-v-89f5c7f9]{font-size:3rem}.letter-salutation[data-v-89f5c7f9]{font-size:1.5rem}.letter-margin[data-v-89f5c7f9]{left:1rem}.letter-signature[data-v-89f5c7f9]{font-size:1.75rem}}.particles{inset:0;overflow:hidden;pointer-events:none;position:absolute;z-index:10}.particle{background:linear-gradient(135deg,var(--accent) 0,var(--accent-light) 100%);border-radius:50%;box-shadow:0 0 4px var(--accent);opacity:0;position:absolute}@keyframes particleFloat{0%{opacity:0;transform:translateY(0) translate(0) scale(0)}15%{opacity:.9;transform:translateY(-15px) translate(calc(var(--drift)*.3)) scale(1)}85%{opacity:.6}to{opacity:0;transform:translateY(-80px) translate(var(--drift)) scale(.3)}}.nav-arrow[data-v-98b23908]{align-items:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0003;border-radius:50%;color:#fffc;display:flex;height:2rem;justify-content:center;transition:all .2s ease;width:2rem}.nav-arrow[data-v-98b23908]:hover:not(:disabled){background:#0006;color:#fff}.nav-arrow--disabled[data-v-98b23908]{cursor:not-allowed;opacity:.3}.reaction-emoji[data-v-98b23908]{animation:reaction-appear-98b23908 .4s cubic-bezier(.34,1.56,.64,1) forwards;cursor:pointer;opacity:0;transform:scale(0);-moz-user-select:none;user-select:none;-webkit-user-select:none}.reaction-emoji.is-ready[data-v-98b23908]{animation:none;opacity:1;transform:scale(1);transition:transform .3s ease-out}.reaction-emoji.is-ready[data-v-98b23908]:hover{transform:scale(1.15)}.reaction-emoji.is-ready[data-v-98b23908]:active{transform:scale(1.25)}.reaction-display[data-v-98b23908]{animation:reaction-pop-98b23908 .4s cubic-bezier(.34,1.56,.64,1) forwards}@keyframes reaction-appear-98b23908{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}@keyframes reaction-pop-98b23908{0%{transform:scale(.8)}50%{transform:scale(1.4)}to{transform:scale(1)}}
