.floating-hearts[data-v-f61c4552]{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;overflow:hidden}.heart[data-v-f61c4552]{position:absolute;bottom:-40px;color:var(--color-primary);animation:floatUp linear infinite;will-change:transform,opacity}@media(prefers-reduced-motion:reduce){.heart[data-v-f61c4552]{animation:none;opacity:.15!important}}.login-screen[data-v-f2fb1101]{background:linear-gradient(160deg,var(--bg-primary),var(--bg-tertiary))}.login-card[data-v-f2fb1101]{text-align:center}.login-form[data-v-f2fb1101]{margin-top:1.75rem;text-align:left}.login-btn[data-v-f2fb1101]{width:100%;margin-top:.5rem}.typing-text[data-v-e727df53]{display:inline}.challenge-card[data-v-2443e0ba]{text-align:center}.challenge-text[data-v-2443e0ba]{min-height:180px}.challenge-line[data-v-2443e0ba]{display:block;font-size:clamp(1rem,2.8vw,1.15rem);margin-bottom:1.25rem;color:var(--color-text);line-height:1.7}.challenge-question[data-v-2443e0ba]{font-weight:500;color:var(--color-accent)}.response-line[data-v-2443e0ba]{margin-top:1.5rem;font-family:var(--font-heading);font-size:clamp(1.3rem,3.5vw,1.6rem);color:var(--color-primary)}.apology-screen[data-v-e4f12410]{align-items:flex-start;padding-top:2rem;padding-bottom:2rem}.apology-card[data-v-e4f12410]{max-width:100%}.apology-title[data-v-e4f12410]{text-align:center;color:var(--color-accent);margin-bottom:1.5rem;min-height:2.5rem}.apology-body[data-v-e4f12410]{margin-top:.5rem}.paragraph-block[data-v-e4f12410]{margin-bottom:.25rem}.apology-paragraph[data-v-e4f12410]{display:block;font-size:clamp(.95rem,2.5vw,1.05rem);line-height:1.8;color:var(--color-text);margin-bottom:.5rem}.memory-screen[data-v-98ccec08]{align-items:flex-start;padding-top:2rem;padding-bottom:2rem}.memory-header[data-v-98ccec08]{text-align:center;margin-bottom:1.5rem}.memory-header h2[data-v-98ccec08]{color:var(--color-accent)}.memory-counter[data-v-98ccec08]{margin-top:.5rem;font-size:.9rem;color:var(--color-text-muted);font-weight:300}.memory-stage[data-v-98ccec08]{width:100%;max-width:520px;margin:0 auto;min-height:340px}.memory-card[data-v-98ccec08]{background:var(--color-card);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-soft),var(--shadow-glow);border:1px solid rgba(255,255,255,.5)}.memory-media[data-v-98ccec08]{aspect-ratio:4 / 3;overflow:hidden;background:linear-gradient(135deg,var(--bg-secondary),var(--bg-tertiary))}.memory-image[data-v-98ccec08],.memory-video[data-v-98ccec08]{width:100%;height:100%;object-fit:cover;display:block}.memory-caption[data-v-98ccec08]{padding:1rem 1.25rem;text-align:center;font-size:.95rem;color:var(--color-text-muted);font-style:italic}.memory-dots[data-v-98ccec08]{display:flex;justify-content:center;gap:.5rem;margin-top:1.25rem}.dot[data-v-98ccec08]{width:8px;height:8px;border-radius:50%;background:#ff8fab59;transition:background var(--transition),transform var(--transition)}.dot.active[data-v-98ccec08]{background:var(--color-primary);transform:scale(1.3)}.dot.done[data-v-98ccec08]{background:var(--color-secondary)}.memory-slide-enter-active[data-v-98ccec08],.memory-slide-leave-active[data-v-98ccec08]{transition:opacity .55s ease,transform .55s cubic-bezier(.4,0,.2,1)}.memory-slide-enter-from[data-v-98ccec08]{opacity:0;transform:translate(40px) scale(.96)}.memory-slide-leave-to[data-v-98ccec08]{opacity:0;transform:translate(-40px) scale(.96)}@media(max-width:480px){.memory-stage[data-v-98ccec08]{min-height:280px}.memory-slide-enter-from[data-v-98ccec08]{transform:translateY(24px) scale(.96)}.memory-slide-leave-to[data-v-98ccec08]{transform:translateY(-24px) scale(.96)}}@media(prefers-reduced-motion:reduce){.memory-slide-enter-active[data-v-98ccec08],.memory-slide-leave-active[data-v-98ccec08]{transition:opacity .3s ease}.memory-slide-enter-from[data-v-98ccec08],.memory-slide-leave-to[data-v-98ccec08]{transform:none}}.forgiveness-card[data-v-e31ebdf2]{text-align:center;position:relative;overflow:visible}.big-heart[data-v-e31ebdf2]{font-size:3rem;margin-bottom:1rem}.forgiveness-question[data-v-e31ebdf2]{color:var(--color-accent);margin-bottom:1.5rem;font-size:clamp(1.5rem,4vw,2rem)}.forgiveness-buttons[data-v-e31ebdf2]{position:relative;display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center;min-height:120px;margin-top:1rem;padding:1rem}.forgiveness-buttons.mobile-mode[data-v-e31ebdf2]{flex-direction:column;align-items:center;min-height:auto}.no-btn[data-v-e31ebdf2]{position:relative}.runaway-message[data-v-e31ebdf2],.mobile-message[data-v-e31ebdf2]{animation:fadeInUp .3s ease}.yes-btn[data-v-e31ebdf2],.definitely-btn[data-v-e31ebdf2]{min-width:160px}@media(max-width:768px){.forgiveness-buttons[data-v-e31ebdf2]{flex-direction:column;align-items:center;min-height:auto}}.heart-confetti[data-v-05ea4b5d]{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:10;overflow:hidden}.confetti-piece[data-v-05ea4b5d]{position:absolute;top:-30px;animation:confettiFall linear forwards;will-change:transform,opacity}@media(prefers-reduced-motion:reduce){.confetti-piece[data-v-05ea4b5d]{animation-duration:4s!important}}.celebration-screen[data-v-f7ab0124]{background:linear-gradient(160deg,var(--bg-tertiary),var(--bg-primary))}.celebration-card[data-v-f7ab0124]{text-align:center;position:relative;overflow:hidden}.celebration-glow[data-v-f7ab0124]{position:absolute;top:50%;left:50%;width:300px;height:300px;transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(255,92,138,.2),transparent 70%);pointer-events:none;z-index:0}.bouncing-heart[data-v-f7ab0124]{font-size:3.5rem;margin-bottom:1rem;position:relative;z-index:1}.celebration-title[data-v-f7ab0124]{color:var(--color-accent);margin-bottom:1.25rem;position:relative;z-index:1;min-height:3rem}.celebration-line[data-v-f7ab0124]{font-size:clamp(1rem,2.8vw,1.2rem);color:var(--color-text);margin-bottom:1rem;position:relative;z-index:1;min-height:1.8rem}.celebration-sub[data-v-f7ab0124]{font-style:italic;color:var(--color-text-muted)}.celebration-actions[data-v-f7ab0124]{margin-top:2rem;position:relative;z-index:1}.app[data-v-858d3ecb]{min-height:100vh;position:relative}:root{--bg-primary: #fff5f7;--bg-secondary: #fff0f3;--bg-tertiary: #ffe4ec;--color-primary: #ff5c8a;--color-secondary: #ff8fab;--color-accent: #c9184a;--color-text: #3d1f2f;--color-text-muted: #6b3d52;--color-card: rgba(255, 255, 255, .75);--color-card-solid: rgba(255, 240, 245, .9);--shadow-soft: 0 8px 32px rgba(201, 24, 74, .12);--shadow-glow: 0 0 40px rgba(255, 92, 138, .25);--radius-sm: 12px;--radius-md: 20px;--radius-lg: 28px;--font-heading: "Dancing Script", cursive;--font-body: "Poppins", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--transition: .35s cubic-bezier(.4, 0, .2, 1)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth}body{font-family:var(--font-body);color:var(--color-text);background:linear-gradient(160deg,var(--bg-primary) 0%,var(--bg-secondary) 50%,var(--bg-tertiary) 100%);min-height:100vh;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}#app{min-height:100vh;position:relative}h1,h2,h3{font-family:var(--font-heading);font-weight:700;line-height:1.3}h1{font-size:clamp(2rem,5vw,3rem)}h2{font-size:clamp(1.6rem,4vw,2.4rem)}h3{font-size:clamp(1.2rem,3vw,1.6rem)}p{font-size:clamp(.95rem,2.5vw,1.05rem)}a{color:var(--color-accent);text-decoration:none}.screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem;position:relative;z-index:1}.screen-inner{width:100%;max-width:680px;margin:0 auto}.screen-wide .screen-inner{max-width:960px}.card{background:var(--color-card);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.6);border-radius:var(--radius-lg);padding:clamp(1.5rem,4vw,2.5rem);box-shadow:var(--shadow-soft)}.card-glow{box-shadow:var(--shadow-soft),var(--shadow-glow)}.card-romantic{background:linear-gradient(145deg,#ffffffd9,#ffe4ecb3)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.85rem 1.8rem;font-family:var(--font-body);font-size:clamp(.9rem,2.5vw,1rem);font-weight:500;border:none;border-radius:50px;cursor:pointer;transition:transform var(--transition),box-shadow var(--transition),opacity var(--transition);text-align:center;min-height:48px;line-height:1.2}.btn:focus-visible{outline:3px solid var(--color-secondary);outline-offset:3px}.btn-primary{background:linear-gradient(135deg,var(--color-primary),var(--color-accent));color:#fff;box-shadow:0 4px 20px #ff5c8a59}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 28px #ff5c8a73}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-secondary{background:#fffc;color:var(--color-accent);border:2px solid var(--color-secondary)}.btn-secondary:hover:not(:disabled){background:#fff0f5f2;transform:translateY(-1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-group{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center;margin-top:1.5rem}.form-group{margin-bottom:1.25rem}.form-label{display:block;font-size:.9rem;font-weight:500;color:var(--color-text-muted);margin-bottom:.4rem}.form-input{width:100%;padding:.85rem 1.1rem;font-family:var(--font-body);font-size:1rem;color:var(--color-text);background:#ffffffd9;border:2px solid rgba(255,143,171,.4);border-radius:var(--radius-sm);transition:border-color var(--transition),box-shadow var(--transition)}.form-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #ff5c8a33}.form-input::placeholder{color:#6b3d5273}.message{padding:.85rem 1.1rem;border-radius:var(--radius-sm);font-size:.95rem;margin-top:1rem;text-align:center;animation:fadeInUp .4s ease}.message-error{background:#c9184a14;color:var(--color-accent);border:1px solid rgba(201,24,74,.2)}.message-success{background:#ff5c8a1a;color:var(--color-accent);border:1px solid rgba(255,92,138,.25)}.message-info{background:#ff8fab1f;color:var(--color-text-muted);border:1px solid rgba(255,143,171,.3)}.heart-divider{text-align:center;color:var(--color-secondary);font-size:1.2rem;margin:1.25rem 0;opacity:.7}.typing-cursor{display:inline-block;width:2px;height:1em;background:var(--color-primary);margin-left:2px;vertical-align:text-bottom;animation:blink .8s step-end infinite}.subtitle{font-size:clamp(.95rem,2.5vw,1.1rem);color:var(--color-text-muted);font-weight:300;margin-top:.5rem}.lock-icon{font-size:2.5rem;margin-bottom:.75rem;display:block;text-align:center}.fade-enter-active,.fade-leave-active{transition:opacity .5s ease,transform .5s ease}.fade-enter-from{opacity:0;transform:translateY(16px)}.fade-leave-to{opacity:0;transform:translateY(-12px)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}html{scroll-behavior:auto}}@media(max-width:480px){.screen{padding:1rem}.card{padding:1.25rem}.btn{width:100%}.btn-group .btn{flex:1 1 100%}}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes floatUp{0%{transform:translateY(100vh) rotate(0);opacity:0}10%{opacity:.7}90%{opacity:.5}to{transform:translateY(-10vh) rotate(360deg);opacity:0}}@keyframes gentleFloat{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-12px) scale(1.05)}}@keyframes pulseGlow{0%,to{box-shadow:0 0 20px #ff5c8a33}50%{box-shadow:0 0 40px #ff5c8a66}}@keyframes bounceHeart{0%,to{transform:scale(1)}25%{transform:scale(1.15)}50%{transform:scale(.95)}75%{transform:scale(1.1)}}@keyframes confettiFall{0%{transform:translateY(-20px) rotate(0) scale(1);opacity:1}to{transform:translateY(100vh) rotate(720deg) scale(.5);opacity:0}}@keyframes shimmer{0%{background-position:-200% center}to{background-position:200% center}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.animate-fade-in{animation:fadeIn .6s ease forwards}.animate-fade-in-up{animation:fadeInUp .6s ease forwards}.animate-bounce-heart{animation:bounceHeart 1.2s ease-in-out infinite}.animate-gentle-float{animation:gentleFloat 3s ease-in-out infinite}.animate-pulse-glow{animation:pulseGlow 2.5s ease-in-out infinite}.animate-scale-in{animation:scaleIn .5s ease forwards}.delay-1{animation-delay:.2s}.delay-2{animation-delay:.4s}.delay-3{animation-delay:.6s}.delay-4{animation-delay:.8s}.delay-5{animation-delay:1s}@media(prefers-reduced-motion:reduce){.animate-bounce-heart,.animate-gentle-float,.animate-pulse-glow{animation:none}}
