:root{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;line-height:1.6;font-weight:400;color-scheme:dark;color:#fffffff2;background-color:#0a0a0f;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;padding:0;min-width:320px;min-height:100vh;overflow:hidden}body::-webkit-scrollbar{width:0;height:0}body{scrollbar-width:none}html{overflow:hidden}#root{width:100%;min-height:100vh}button{font-family:inherit;cursor:pointer;border:none;outline:none}.galaxy-background{position:fixed;top:0;left:0;width:100%;height:100%;background:#0a0a0f;z-index:-1;overflow:hidden;--star-color: #ffffff;--star-glow: rgba(255, 255, 255, .5)}.star{position:absolute;background:var(--star-color);border-radius:50%;box-shadow:0 0 6px var(--star-glow);transition:background-color 3s ease,box-shadow 3s ease}.shooting-star{position:absolute;width:60px;height:1px;background:linear-gradient(to right,transparent 0%,rgba(255,255,255,.5) 40%,rgba(255,255,255,.95) 90%,rgba(255,140,0,1) 100%);border-radius:2px;filter:none}.shooting-star:before{content:"";position:absolute;right:-1px;width:3px;height:3px;background:#ff8c00;border-radius:50%;box-shadow:0 0 4px 1px #ff8c00b3}.story-timeline-container{height:100vh;padding:40px 20px;overflow-y:auto;overflow-x:hidden;scrollbar-width:none;scrollbar-gutter:stable both-edges}.story-timeline-container::-webkit-scrollbar{width:0;height:0}.timeline-content{max-width:800px;margin:0 auto}.timeline-title{text-align:center;font-size:3rem;color:#fff;margin-bottom:60px;text-shadow:0 0 20px rgba(255,255,255,.5)}.timeline-track{position:relative;margin:0 auto 40px;max-width:820px;padding:20px 0 40px}.timeline-track:before{content:"";position:absolute;left:50%;top:0;bottom:0;width:2px;background:linear-gradient(180deg,#ffffff1a,#fff6,#ffffff1a);transform:translate(-50%)}.timeline-item{position:relative;width:100%;background:none;border:none;display:flex;justify-content:flex-start;margin-bottom:28px;cursor:pointer}.timeline-item.right{justify-content:flex-end}.timeline-dot{position:absolute;left:50%;top:24px;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 0 12px #ffffffb3;transform:translate(-50%);z-index:2}.timeline-card{width:320px;display:flex;align-items:center;gap:16px;padding:18px 22px;background:#ffffff0f;border:1px solid rgba(255,255,255,.15);border-radius:18px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 12px 30px #0000004d;transition:transform .3s ease,box-shadow .3s ease}.timeline-item:hover .timeline-card{transform:translateY(-4px);box-shadow:0 16px 36px #00000059}.memory-emoji{font-size:3rem;flex-shrink:0}.memory-content h2{color:#fff;font-size:1.5rem;margin-bottom:10px}.memory-content p{color:#ffffffb3;font-size:.95rem;line-height:1.4}.unlock-section{text-align:center;padding:60px 20px}.memory-modal-backdrop{position:fixed;inset:0;background:#030610b3;display:flex;align-items:flex-start;justify-content:center;z-index:200;padding:60px 20px 40px}.memory-modal{width:min(900px,90vw);max-height:calc(100vh - 120px);overflow-y:auto;background:#0a0a0ff2;border:1px solid rgba(255,255,255,.15);border-radius:20px;padding:28px;box-shadow:0 20px 60px #00000080;position:relative;text-align:center}.memory-modal::-webkit-scrollbar{width:0;height:0}.memory-modal{scrollbar-width:none}.memory-modal h2{color:#fff;margin-bottom:12px}.modal-description{color:#fffc;line-height:1.6;margin-bottom:20px;display:grid;gap:12px;text-align:left}.modal-description p{margin:0}.modal-scroll-hint{display:flex;align-items:center;justify-content:center;gap:8px;color:#fff9;font-size:.85rem;letter-spacing:.6px;text-transform:uppercase;margin-bottom:16px}.scroll-chevron{display:inline-block;color:#fff;text-shadow:0 0 12px rgba(255,255,255,.9)}.modal-frame{display:inline-block;padding:12px;border-radius:18px;background:#ffffff0f;border:1px solid rgba(255,255,255,.15);margin-bottom:10px;max-width:100%}.modal-frame img,.photo-placeholder{width:auto;height:auto;max-width:100%;max-height:70vh;border-radius:14px;object-fit:contain;background:#00000059;border:1px dashed rgba(255,255,255,.3);display:flex;align-items:center;justify-content:center;color:#fffc;font-size:1.05rem;letter-spacing:.5px}.photo-caption{color:#ffffffb3;font-size:.9rem;font-style:italic}.modal-close{position:absolute;top:14px;right:14px;width:32px;height:32px;border-radius:50%;background:#ffffff1a;color:#fff;font-size:1rem}.unlock-text{color:#fff;font-size:1.5rem;margin-bottom:30px;text-shadow:0 0 10px rgba(255,255,255,.5)}.unlock-button{padding:18px 46px;font-size:1.2rem;font-weight:600;background:#ffffff14;color:#f8fafc;border:1px solid rgba(255,255,255,.18);border-radius:18px;cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 12px 30px #00000059;transition:all .3s ease}.unlock-button:hover{box-shadow:0 18px 40px #00000073;border-color:#ffffff59;transform:translateY(-2px)}.catch-hearts-container{min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:40px 20px;position:relative}.hearts-header{text-align:center;margin-bottom:40px;z-index:10}.hearts-header h1{color:#fff;font-size:2.5rem;margin-bottom:20px;text-shadow:0 0 20px rgba(255,255,255,.5)}.hearts-counter{color:#fff;font-size:1.5rem;background:#ffffff14;padding:10px 30px;border-radius:50px;display:inline-block;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.15)}.hearts-area{position:relative;width:100%;max-width:1000px;height:500px;flex:1}.hearts-frames{position:absolute;inset:0;pointer-events:auto;z-index:1}.hearts-frame{position:absolute;overflow:hidden;border-radius:16px;padding:8px;background:#ffffff0d;border:1px solid rgba(255,255,255,.18);box-shadow:0 12px 30px #00000059;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.hearts-frame img{display:block;width:100%;height:auto;border-radius:12px;object-fit:contain}.frame-date{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#0009;color:#fff;font-size:.95rem;font-weight:600;letter-spacing:.5px;opacity:0;transition:opacity .2s ease}.hearts-frame:hover .frame-date{opacity:1}.heart-explosion{position:absolute;pointer-events:none;z-index:5}.heart-splash{position:absolute;left:-18px;top:-18px;width:36px;height:36px;border-radius:45% 55% 60% 40%/55% 45%;background:radial-gradient(circle at 30% 30%,#fff9,#ff69b4e6);box-shadow:0 0 20px #ff69b4cc}.heart-droplet{position:absolute;border-radius:40% 60% 50% 50%/60% 40%;background:radial-gradient(circle at 30% 30%,#ffffffb3,#ff69b4f2);box-shadow:0 0 16px #ff69b4bf;filter:blur(.1px)}.floating-heart{position:absolute;font-size:3rem;cursor:pointer;-webkit-user-select:none;user-select:none;color:#ffffffe6;text-shadow:0 0 12px rgba(255,255,255,.5);transition:transform .3s ease;z-index:5}.floating-heart:hover{transform:scale(1.1)}.heart-message{position:absolute;transform:translate(-50%,-120%);background:#0a0a0fd9;color:#f1f5f9;padding:22px 36px;border-radius:16px;font-size:1.2rem;font-weight:600;box-shadow:0 18px 50px #00000073;z-index:100;text-align:center;max-width:80%;border:1px solid rgba(255,255,255,.12)}.completion-message{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;color:#fff;font-size:2.5rem;font-weight:700;text-shadow:0 0 30px rgba(255,255,255,.8);z-index:100;text-align:center}.choose-future-container{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;position:relative;overflow:hidden}.future-frames{position:absolute;inset:0;pointer-events:auto;z-index:1}.future-frame{position:absolute;overflow:hidden;border-radius:18px;padding:10px;background:#ffffff0d;border:1px solid rgba(255,255,255,.18);box-shadow:0 16px 40px #00000059;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.future-frame img{display:block;width:100%;height:auto;border-radius:12px;object-fit:contain}.future-frame-date{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#0009;color:#fff;font-size:.95rem;font-weight:600;letter-spacing:.5px;opacity:0;transition:opacity .2s ease}.future-frame:hover .future-frame-date{opacity:1}.choice-content{max-width:800px;width:100%;text-align:center;position:relative;z-index:2}.choice-title{color:#fff;font-size:2.5rem;margin-bottom:60px;text-shadow:0 0 20px rgba(255,255,255,.5);line-height:1.4}.typewriter-cursor{opacity:0;font-weight:300;margin-left:2px;transition:opacity .2s ease}.choice-buttons{display:flex;flex-direction:column;gap:30px;align-items:center}.choice-button{padding:18px 46px;font-size:1.2rem;font-weight:600;border:1px solid rgba(255,255,255,.18);border-radius:18px;cursor:pointer;min-width:360px;transition:all .3s ease;position:relative;overflow:hidden;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.choice-button.good{background:#ffffff14;color:#f8fafc;box-shadow:0 12px 30px #00000059}.choice-button.good:hover{box-shadow:0 18px 40px #00000073;border-color:#ffffff59}.choice-button.bad{background:#ffffff0a;color:#ffffffb3;box-shadow:0 10px 26px #0006}.choice-button.bad:hover{background:#ffffff14;border-color:#ffffff40}.result-content{max-width:700px;width:100%;padding:40px;background:#ffffff14;border:1px solid rgba(255,255,255,.2);border-radius:20px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:relative;z-index:2}.result-text{color:#fff;font-size:1.8rem;line-height:1.6;text-align:center;text-shadow:0 0 10px rgba(255,255,255,.3)}.final-hint{position:absolute;bottom:40px;color:#ffffffb3;font-size:1.2rem;font-style:italic;text-shadow:0 0 10px rgba(255,255,255,.3)}@media(max-width:768px){.choice-title{font-size:1.8rem}.choice-button{min-width:300px;font-size:1.1rem}.result-text{font-size:1.4rem}}.valentine-question-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:40px 20px;position:relative;overflow:hidden;background:transparent}.pink-stars-container{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0}.pink-star{position:absolute;border-radius:50%}.subtle-pink-glow{position:fixed;top:0;left:0;width:100%;height:100%;background:radial-gradient(ellipse at center,rgba(255,105,180,.2) 0%,transparent 70%);pointer-events:none;z-index:0}.question-content{text-align:center;max-width:600px;position:relative;z-index:10}.valentine-title{color:#fff;font-size:3.5rem;margin-bottom:60px;text-shadow:0 0 30px rgba(255,255,255,.8),0 0 60px rgba(255,255,255,.5);line-height:1.3}.buttons-container{position:relative;min-height:200px;display:flex;justify-content:center;align-items:center}.yes-button{padding:25px 60px;font-size:2rem;font-weight:700;background:linear-gradient(135deg,#ff1493,#ff69b4);color:#fff;border:3px solid #fff;border-radius:50px;cursor:pointer;box-shadow:0 10px 40px #ff69b466;transition:all .3s ease;position:relative;z-index:10}.yes-button:hover{transform:scale(1.1);box-shadow:0 15px 60px #ff69b4cc}.no-button{padding:12px 30px;font-size:1rem;background:#ffffff4d;color:#fffc;border:1px solid rgba(255,255,255,.5);border-radius:25px;cursor:pointer;transition:all .2s ease;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.hint-text{color:#ffffffe6;font-size:1rem;margin-top:40px;font-style:italic;text-shadow:0 0 10px rgba(255,255,255,.3)}.success-celebration{text-align:center;position:relative;z-index:10}.outro-message,.outro-goodbye{max-width:720px;text-align:center;color:#fff;font-size:1.5rem;line-height:1.6;text-shadow:0 0 20px rgba(255,255,255,.45);z-index:10;position:relative;padding:20px 28px;background:#0a0a0f80;border:1px solid rgba(255,255,255,.12);border-radius:18px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.outro-goodbye p{margin-bottom:20px}.outro-close{padding:12px 34px;font-size:1rem;font-weight:600;color:#f8fafc;background:#ffffff14;border:1px solid rgba(255,255,255,.2);border-radius:999px;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.outro-close:hover{transform:translateY(-2px);box-shadow:0 12px 30px #00000059}.hearts-explosion{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none}.flying-heart{position:absolute;font-size:2rem;pointer-events:none}.celebration-title{color:#fff;font-size:4rem;margin-bottom:30px;text-shadow:0 0 30px rgba(255,255,255,1),0 0 60px rgba(255,255,255,.8)}.celebration-message{color:#fff;font-size:2rem;margin-bottom:30px;text-shadow:0 0 20px rgba(255,255,255,.6)}.final-hearts{font-size:3rem;animation:float 3s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-20px)}}@media(max-width:768px){.valentine-title{font-size:2.5rem}.yes-button{padding:20px 50px;font-size:1.5rem}.celebration-title{font-size:2.5rem}.celebration-message{font-size:1.5rem}}.verification-gate{height:100vh;width:100vw;padding:20px;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;background:#fff;color:#111827}.verification-darken{position:fixed;inset:0;background:#0a0a0f;z-index:1;pointer-events:none}.verification-gate>*:not(.verification-darken){position:relative;z-index:2}.verification-title{color:#0f172a;font-size:2rem;text-align:center;margin-bottom:8px;text-shadow:none}.verification-subtitle{color:#475569;font-size:1.1rem;margin-bottom:20px}.floating-questions{position:relative;width:100%;max-width:1000px;height:380px}.question-card{position:absolute;width:210px;padding:16px;background:#fff;border:1px solid #e2e8f0;border-radius:16px;box-shadow:0 10px 25px #0f172a1a}.question-label{color:#0f172a;font-size:.95rem;margin-bottom:10px}.question-input{width:100%;padding:8px 10px;border-radius:10px;border:1px solid #cbd5e1;background:#f8fafc;color:#0f172a;font-size:.95rem}.question-input:focus{outline:none;border-color:#7c3aed;box-shadow:0 0 0 3px #7c3aed33}.verification-form{display:flex;flex-direction:column;align-items:center;gap:12px;margin-top:10px}.verification-button{padding:12px 32px;border-radius:999px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-size:1rem;font-weight:600;box-shadow:0 8px 25px #667eea66}.verification-dev-button{background:#0f172a;box-shadow:0 8px 20px #0f172a40;font-size:.9rem;padding:10px 26px}.verification-error{color:#e11d48;font-size:.95rem;text-shadow:none}@media(max-width:900px){.floating-questions{height:450px}.question-card{width:180px}}@media(max-width:600px){.verification-title{font-size:1.6rem}.floating-questions{height:500px}.question-card{width:160px;padding:12px}}.transition-sequence{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;z-index:100;overflow:hidden}.transition-content{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:40px;width:100%;height:100%}.transition-content.stars-phase{position:relative}.transition-text{font-size:3rem;font-weight:600;letter-spacing:-.5px}.transition-text.dark-text{color:#fff;text-shadow:0 0 30px rgba(255,255,255,.3)}.transition-text.light-text{color:#0f172a;text-shadow:none}.transition-text.too-much-text{min-width:12ch;display:inline-block;text-align:center}.typewriter-text{display:inline}.typewriter-cursor{opacity:0;font-weight:300;margin-left:2px}.typewriter-cursor.visible{opacity:1}.typewriter-cursor.invisible{opacity:0}.transition-subtitle{color:#64748b;font-size:1.3rem;margin-top:20px;font-style:italic}.intro-star{position:absolute;background:#fff;border-radius:50%;box-shadow:0 0 6px #fff9}.intro-shooting-star{position:absolute;width:60px;height:1px;background:linear-gradient(to right,transparent 0%,rgba(255,255,255,.5) 40%,rgba(255,255,255,.95) 90%,rgba(255,140,0,1) 100%);border-radius:2px;pointer-events:none}.intro-shooting-star:after{content:"";position:absolute;right:-1px;top:50%;transform:translateY(-50%);width:3px;height:3px;background:#ff8c00;border-radius:50%;box-shadow:0 0 4px 1px #ff8c00b3}@media(max-width:768px){.transition-text{font-size:2rem}.transition-subtitle{font-size:1.1rem}}.app-container{width:100vw;min-height:100vh;position:relative;overflow:hidden}.app-container.pink-stars .galaxy-background{--star-color: #ff69b4;--star-glow: rgba(255, 105, 180, .9)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;overflow-x:hidden}
