@import"https://fonts.googleapis.com/css2?family=Dancing+Script:wght@400;700&family=Quicksand:wght@300;400;600;700&display=swap";*{margin:0;padding:0;box-sizing:border-box}body{font-family:Quicksand,sans-serif;background:#1a0a1e;color:#fff;min-height:100vh;overflow-x:hidden}#root{width:100%;min-height:100vh}::selection{background:#ff6b9d4d;color:#fff}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:#1a0a1e}::-webkit-scrollbar-thumb{background:#ff6b9d4d;border-radius:3px}.fh-container{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0;overflow:hidden}.fh-heart{position:absolute;bottom:-60px;opacity:.12;animation:fhFloat linear infinite}@keyframes fhFloat{0%{transform:translateY(0) rotate(0) scale(1);opacity:0}10%{opacity:.2}50%{opacity:.3}90%{opacity:.1}to{transform:translateY(-110vh) rotate(360deg) scale(.5);opacity:0}}.intro{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;text-align:center;padding:20px;transition:opacity .8s ease,transform .8s ease}.intro.fade-out{opacity:0;transform:scale(1.05)}.intro-envelope{width:160px;height:120px;position:relative;margin-bottom:35px;cursor:pointer;animation:envelopeBob 2.5s ease-in-out infinite}@keyframes envelopeBob{0%,to{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-12px) rotate(2deg)}}.envelope-body{width:160px;height:120px;background:linear-gradient(135deg,#ff6b9d,#c44569);border-radius:12px;position:relative;box-shadow:0 12px 40px #ff6b9d59}.envelope-flap{width:0;height:0;border-left:80px solid transparent;border-right:80px solid transparent;border-top:70px solid #e84393;position:absolute;top:0;border-radius:6px 6px 0 0;transition:transform .6s ease;transform-origin:top center}.intro-envelope:hover .envelope-flap,.envelope-flap.open{transform:rotateX(180deg)}.envelope-heart{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:38px;z-index:2;animation:heartBeat 1.4s ease-in-out infinite}@keyframes heartBeat{0%,to{transform:translate(-50%,-50%) scale(1)}14%{transform:translate(-50%,-50%) scale(1.15)}28%{transform:translate(-50%,-50%) scale(1)}42%{transform:translate(-50%,-50%) scale(1.1)}}.intro-small{font-size:14px;color:#ffffff80;letter-spacing:3px;text-transform:uppercase;margin-bottom:12px;animation:fadeInUp 1s ease .3s both}.intro-name{font-family:Dancing Script,cursive;font-size:56px;color:#ff6b9d;margin-bottom:8px;text-shadow:0 0 40px rgba(255,107,157,.4);animation:fadeInUp 1s ease .5s both}.intro-from{font-size:15px;color:#fff6;font-style:italic;margin-bottom:35px;animation:fadeInUp 1s ease .7s both}.intro-btn{background:linear-gradient(135deg,#ff6b9d,#ee5a6f);border:none;color:#fff;padding:16px 50px;font-family:Quicksand,sans-serif;font-size:17px;font-weight:600;border-radius:50px;cursor:pointer;letter-spacing:2px;transition:all .3s ease;box-shadow:0 6px 30px #ff6b9d73;position:relative;overflow:hidden;animation:fadeInUp 1s ease .9s both}.intro-btn:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.25),transparent);transition:left .5s ease}.intro-btn:hover{transform:translateY(-3px) scale(1.02);box-shadow:0 10px 40px #ff6b9d99}.intro-btn:hover:before{left:100%}.intro-footer{position:fixed;bottom:30px;display:flex;align-items:center;gap:12px;font-size:14px;color:#ffffff4d;letter-spacing:2px;animation:fadeInUp 1s ease 1.2s both}.intro-heart-divider{font-size:18px;animation:heartBeat 1.4s ease-in-out infinite}@media(max-width:600px){.intro-name{font-size:42px}.intro-small{font-size:12px;letter-spacing:2px}.intro-btn{padding:14px 40px;font-size:15px}.intro-footer{font-size:12px;bottom:20px}}.message-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:20px;animation:screenFadeIn .8s ease}.message-box{text-align:center;max-width:550px}.message-typed{font-family:Dancing Script,cursive;font-size:44px;color:#ff6b9d;margin-bottom:35px;text-shadow:0 0 30px rgba(255,107,157,.3);min-height:55px}.message-cursor{animation:cursorBlink .7s step-end infinite;color:#ff6b9d;font-weight:100}@keyframes cursorBlink{0%,to{opacity:1}50%{opacity:0}}.message-poem{margin-bottom:35px}.poem-spacer{height:0;transition:height .5s ease}.poem-spacer.visible{height:18px}.poem-line{font-size:17px;line-height:2;color:#ffffffbf;margin:0;opacity:0;will-change:transform,opacity,filter}.poem-line.line-drift-right{transform:translate(60px);filter:blur(6px);transition:all .9s cubic-bezier(.25,.46,.45,.94)}.poem-line.line-drift-right.visible{opacity:1;transform:translate(0);filter:blur(0)}.poem-line.line-drift-left{transform:translate(-60px);filter:blur(6px);transition:all .9s cubic-bezier(.25,.46,.45,.94)}.poem-line.line-drift-left.visible{opacity:1;transform:translate(0);filter:blur(0)}.poem-line.line-blur-in{filter:blur(12px);transform:scale(1.08);transition:all 1s ease}.poem-line.line-blur-in.visible{opacity:1;filter:blur(0);transform:scale(1)}.poem-line.line-scale-in{transform:scale(.3);filter:blur(4px);transition:all .8s cubic-bezier(.34,1.56,.64,1)}.poem-line.line-scale-in.visible{opacity:1;transform:scale(1);filter:blur(0)}.poem-line.line-glow-in{transform:translateY(15px);text-shadow:none;transition:all 1.2s ease}.poem-line.line-glow-in.visible{opacity:1;transform:translateY(0);text-shadow:0 0 20px rgba(255,107,157,.5),0 0 40px rgba(255,107,157,.2)}.message-signature{color:#ff6b9d;font-family:Dancing Script,cursive;font-size:24px;margin-top:8px}.message-btn{background:transparent;border:2px solid #ff6b9d;color:#ff6b9d;padding:14px 40px;font-family:Quicksand,sans-serif;font-size:16px;font-weight:600;border-radius:50px;cursor:pointer;letter-spacing:2px;transition:all .3s ease;opacity:0;transform:translateY(15px)}.message-btn.visible{opacity:1;transform:translateY(0);transition:opacity .6s ease,transform .6s ease,background .3s ease,color .3s ease}.message-btn:hover{background:#ff6b9d;color:#fff;box-shadow:0 5px 25px #ff6b9d66;transform:translateY(-2px)}@media(max-width:600px){.message-typed{font-size:32px}}.gallery-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:20px;animation:screenFadeIn .8s ease}.gallery-title{font-family:Dancing Script,cursive;font-size:42px;color:#ff6b9d;margin-bottom:8px;text-shadow:0 0 30px rgba(255,107,157,.3)}.gallery-sub{font-size:12px;color:#fff6;letter-spacing:3px;margin-bottom:35px}.gallery-coverflow{width:100%;max-width:700px;height:440px;position:relative;perspective:1000px;margin-bottom:25px;overflow:hidden}.gallery-card{width:280px;height:400px;position:absolute;top:20px;left:50%;border-radius:18px;overflow:hidden;border:3px solid rgba(255,107,157,.15);cursor:pointer;transition:all .6s cubic-bezier(.23,1,.32,1);transform-origin:center center}.gallery-card.active{border-color:#ff6b9d73;box-shadow:0 0 40px #ff6b9d33,0 20px 60px #0006}.gallery-img{width:100%;height:100%;object-fit:cover}.gallery-overlay{position:absolute;inset:0;background:linear-gradient(135deg,#ff6b9d80,#a050c866,#1a0a1e8c);pointer-events:none}.gallery-dots{display:flex;gap:10px;margin-bottom:15px}.gallery-dot{width:10px;height:10px;border-radius:50%;background:#ff6b9d40;border:none;cursor:pointer;transition:all .3s ease;padding:0}.gallery-dot.active{background:#ff6b9d;transform:scale(1.4);box-shadow:0 0 12px #ff6b9d80}.gallery-caption{font-family:Dancing Script,cursive;font-size:22px;color:#fff9;margin-bottom:25px;min-height:30px;transition:opacity .3s ease}.gallery-btn{background:linear-gradient(135deg,#ff6b9d,#ee5a6f);border:none;color:#fff;padding:14px 45px;font-family:Quicksand,sans-serif;font-size:16px;font-weight:600;border-radius:50px;cursor:pointer;letter-spacing:2px;transition:all .3s ease;box-shadow:0 5px 25px #ff6b9d66}.gallery-btn:hover{transform:translateY(-3px);box-shadow:0 8px 35px #ff6b9d99}@media(max-width:600px){.gallery-title{font-size:32px}.gallery-sub{margin-bottom:20px}.gallery-coverflow{height:320px}.gallery-card{width:200px;height:280px}.gallery-caption{font-size:18px}.gallery-btn{padding:12px 35px;font-size:14px}}.valentine-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:20px;animation:screenFadeIn .8s ease}.valentine-box{text-align:center}.valentine-big-heart{font-size:90px;animation:heartPump 1.2s ease-in-out infinite;margin-bottom:25px}.valentine-question{font-family:Dancing Script,cursive;font-size:52px;color:#ff6b9d;margin-bottom:15px;text-shadow:0 0 40px rgba(255,107,157,.4);line-height:1.3}.valentine-names{font-size:16px;color:#fff6;letter-spacing:4px;text-transform:uppercase;margin-bottom:40px}.valentine-btns{display:flex;gap:25px;justify-content:center;align-items:center;flex-wrap:wrap}.valentine-yes{background:linear-gradient(135deg,#ff6b9d,#ee5a6f);border:none;color:#fff;padding:18px 55px;font-family:Quicksand,sans-serif;font-weight:700;border-radius:50px;cursor:pointer;letter-spacing:2px;transition:all .3s ease;box-shadow:0 5px 25px #ff6b9d73;animation:yesGlow 2s ease-in-out infinite}@keyframes yesGlow{0%,to{box-shadow:0 5px 25px #ff6b9d73}50%{box-shadow:0 5px 45px #ff6b9dbf}}.valentine-yes:hover{transform:scale(1.08);box-shadow:0 8px 50px #ff6b9dcc}.valentine-no{background:transparent;border:2px solid rgba(255,255,255,.15);color:#ffffff59;padding:18px 55px;font-family:Quicksand,sans-serif;font-weight:600;border-radius:50px;cursor:pointer;letter-spacing:2px;transition:left .2s ease,top .2s ease,font-size .3s ease;z-index:100}@media(max-width:600px){.valentine-big-heart{font-size:65px}.valentine-question{font-size:34px}.valentine-btns{flex-direction:column;gap:15px}.valentine-yes,.valentine-no{padding:14px 40px}}.celebration-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:20px;position:relative;animation:screenFadeIn .8s ease}.confetti-layer{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:100;overflow:hidden}.confetti-piece{position:absolute;top:-30px;opacity:.9;animation:confettiFall linear forwards}@keyframes confettiFall{0%{transform:translateY(0) rotate(0) translate(0);opacity:1}25%{transform:translateY(25vh) rotate(180deg) translate(30px)}50%{transform:translateY(50vh) rotate(360deg) translate(-20px)}75%{transform:translateY(75vh) rotate(540deg) translate(15px);opacity:.7}to{transform:translateY(110vh) rotate(720deg) translate(-10px);opacity:0}}.celebration-content{text-align:center;z-index:10}.celebration-emoji{font-size:80px;margin-bottom:15px;animation:celebBounce .5s ease-in-out infinite alternate}@keyframes celebBounce{0%{transform:translateY(0) rotate(-5deg)}to{transform:translateY(-15px) rotate(5deg)}}.celebration-title{font-family:Dancing Script,cursive;font-size:64px;background:linear-gradient(135deg,#ff6b9d,#ff9a9e,#fad0c4,#ff6b9d);background-size:300% 300%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:gradientMove 3s ease infinite;margin-bottom:20px}@keyframes gradientMove{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.celebration-text{font-size:20px;color:#ffffffb3;margin-bottom:10px;animation:fadeInUp .8s ease .3s both}.celebration-love{font-family:Dancing Script,cursive;font-size:36px;color:#ff6b9d;margin-bottom:20px;text-shadow:0 0 30px rgba(255,107,157,.4);animation:fadeInUp .8s ease .6s both}.celebration-heart-row{font-size:28px;margin-bottom:20px;letter-spacing:8px;animation:fadeInUp .8s ease .9s both}.celebration-footer{font-size:18px;color:#fff9;line-height:1.8;margin-bottom:30px;animation:fadeInUp .8s ease 1.2s both}.celebration-names{display:flex;align-items:center;justify-content:center;gap:15px;font-family:Dancing Script,cursive;font-size:32px;color:#ff6b9d;margin-bottom:10px;animation:fadeInUp .8s ease 1.5s both}.celebration-amp{font-size:28px;animation:heartPump 1.2s ease-in-out infinite}.celebration-forever{font-size:14px;color:#ffffff59;letter-spacing:4px;text-transform:uppercase;margin-bottom:30px;animation:fadeInUp .8s ease 1.8s both}.celebration-btn{background:linear-gradient(135deg,#ff6b9d,#ee5a6f);border:none;color:#fff;padding:14px 45px;font-family:Quicksand,sans-serif;font-size:16px;font-weight:600;border-radius:50px;cursor:pointer;letter-spacing:2px;transition:all .3s ease;box-shadow:0 5px 25px #ff6b9d66;animation:fadeInUp .8s ease 2.2s both}.celebration-btn:hover{transform:translateY(-3px);box-shadow:0 8px 35px #ff6b9d99}@media(max-width:600px){.celebration-emoji{font-size:60px}.celebration-title{font-size:40px}.celebration-text{font-size:16px}.celebration-love{font-size:24px}.celebration-names{font-size:26px;gap:10px}.celebration-heart-row{font-size:22px;letter-spacing:5px}.celebration-footer{font-size:15px}.celebration-btn{padding:12px 35px;font-size:14px}}.pw-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:20px;cursor:pointer;-webkit-user-select:none;user-select:none;animation:screenFadeIn .8s ease}.pw-progress-bar{position:fixed;top:16px;left:16px;right:16px;display:flex;gap:4px;z-index:20}.pw-bar-segment{flex:1;height:3px;background:#ffffff1a;border-radius:3px;overflow:hidden}.pw-bar-fill{height:100%;width:0%;background:#ff6b9d;border-radius:3px;transition:width .4s ease}.pw-bar-fill.done{width:100%}.pw-bar-fill.active{width:100%;animation:barGlow .6s ease forwards}@keyframes barGlow{0%{width:0%}to{width:100%}}.pw-header{font-family:Dancing Script,cursive;font-size:22px;color:#ff6b9d80;margin-bottom:20px;letter-spacing:1px}.pw-card{position:relative;border:1px solid rgba(255,107,157,.2);border-radius:32px;padding:50px 40px 40px;text-align:center;max-width:440px;width:100%;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.pw-emoji-wrap{position:relative;display:inline-block;margin-bottom:25px}.pw-emoji{font-size:80px;display:block;position:relative;z-index:2}.pw-emoji-ring{position:absolute;top:50%;left:50%;width:110px;height:110px;border:2px solid rgba(255,107,157,.2);border-radius:50%;transform:translate(-50%,-50%);animation:ringExpand 2s ease-in-out infinite}.pw-ring-2{width:140px;height:140px;border-color:#ff6b9d1a;animation-delay:.5s}@keyframes ringExpand{0%,to{transform:translate(-50%,-50%) scale(.9);opacity:.6}50%{transform:translate(-50%,-50%) scale(1.15);opacity:.2}}.pw-promise-text{font-size:22px;color:#ffffffd9;line-height:1.7;margin:0 0 20px;font-family:Quicksand,sans-serif;font-weight:500}.pw-promise-num{font-size:12px;color:#ff6b9d4d;letter-spacing:2px;text-transform:uppercase}.pw-tap{font-size:13px;color:#fff3;margin-top:25px;letter-spacing:2px;animation:tapPulse 2s ease-in-out infinite}@keyframes tapPulse{0%,to{opacity:.2}50%{opacity:.5}}.pw-card.reveal-zoom.show{animation:zoomBurst .6s cubic-bezier(.34,1.56,.64,1) forwards}@keyframes zoomBurst{0%{opacity:0;transform:scale(0) rotate(-10deg)}60%{opacity:1;transform:scale(1.08) rotate(2deg)}to{opacity:1;transform:scale(1) rotate(0)}}.pw-card.reveal-flip.show{animation:flipIn .7s ease forwards}@keyframes flipIn{0%{opacity:0;transform:perspective(1000px) rotateY(-90deg) scale(.8)}60%{transform:perspective(1000px) rotateY(10deg) scale(1.02)}to{opacity:1;transform:perspective(1000px) rotateY(0) scale(1)}}.pw-card.reveal-slide-up.show{animation:slideUpBounce .7s cubic-bezier(.34,1.56,.64,1) forwards}@keyframes slideUpBounce{0%{opacity:0;transform:translateY(120px) scale(.8);filter:blur(10px)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}.pw-card.reveal-rotate.show{animation:rotateIn .7s cubic-bezier(.34,1.56,.64,1) forwards}@keyframes rotateIn{0%{opacity:0;transform:rotate(-180deg) scale(0)}to{opacity:1;transform:rotate(0) scale(1)}}.pw-card.reveal-final.show{animation:finalReveal 1s ease forwards}@keyframes finalReveal{0%{opacity:0;transform:scale(.5);box-shadow:none}50%{opacity:1;transform:scale(1.05);box-shadow:0 0 60px #ff6b9d66}to{opacity:1;transform:scale(1);box-shadow:0 0 40px #ff6b9d33}}.pw-card.exit.next{animation:cardExitLeft .35s ease forwards}@keyframes cardExitLeft{0%{opacity:1;transform:scale(1) translate(0)}to{opacity:0;transform:scale(.8) translate(-80px);filter:blur(6px)}}.pw-card.exit.prev{animation:cardExitRight .35s ease forwards}@keyframes cardExitRight{0%{opacity:1;transform:scale(1) translate(0)}to{opacity:0;transform:scale(.8) translate(80px);filter:blur(6px)}}.pw-arrow{position:fixed;top:50%;transform:translateY(-50%);background:#ff6b9d1a;border:1px solid rgba(255,107,157,.2);color:#ff6b9d99;width:44px;height:44px;border-radius:50%;font-size:24px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease;z-index:20;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.pw-arrow:hover{background:#ff6b9d40;border-color:#ff6b9d80;color:#ff6b9d;transform:translateY(-50%) scale(1.1)}.pw-arrow-left{left:20px}.pw-arrow-right{right:20px}@media(max-width:600px){.pw-card{padding:40px 25px 30px;border-radius:24px}.pw-emoji{font-size:60px}.pw-promise-text{font-size:18px}.pw-arrow{width:36px;height:36px;font-size:20px}.pw-arrow-left{left:10px}.pw-arrow-right{right:10px}}.lyrics-toggle{position:fixed;bottom:25px;right:25px;z-index:1000;background:#ff6b9d26;border:1px solid rgba(255,107,157,.3);width:48px;height:48px;border-radius:50%;cursor:pointer;font-size:20px;display:flex;align-items:center;justify-content:center;transition:all .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.lyrics-toggle:hover{background:#ff6b9d59;transform:scale(1.1);box-shadow:0 0 20px #ff6b9d4d}.lyrics-backdrop{position:fixed;inset:0;background:#000000b3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:2000;display:flex;align-items:center;justify-content:center;animation:backdropIn .3s ease}@keyframes backdropIn{0%{opacity:0}to{opacity:1}}.lyrics-modal{background:linear-gradient(145deg,#1e0f24,#2a1535);border:1px solid rgba(255,107,157,.2);border-radius:24px;padding:35px 30px;max-width:480px;width:90%;max-height:80vh;overflow-y:auto;position:relative;animation:modalIn .4s cubic-bezier(.34,1.56,.64,1)}@keyframes modalIn{0%{opacity:0;transform:scale(.8) translateY(30px)}to{opacity:1;transform:scale(1) translateY(0)}}.lyrics-close{position:absolute;top:15px;right:18px;background:none;border:none;color:#fff6;font-size:28px;cursor:pointer;transition:color .2s ease;line-height:1}.lyrics-close:hover{color:#ff6b9d}.lyrics-title{font-family:Dancing Script,cursive;font-size:32px;color:#ff6b9d;text-align:center;margin-bottom:4px}.lyrics-subtitle{text-align:center;font-size:13px;color:#ffffff4d;letter-spacing:3px;margin-bottom:25px}.lyrics-body{text-align:center}.lyrics-line{font-size:15px;color:#ffffffa6;line-height:1.9;margin:0}.lyrics-gap{height:12px;margin:0}.lyrics-name{color:#ff6b9d;font-weight:600}.lyrics-modal::-webkit-scrollbar{width:4px}.lyrics-modal::-webkit-scrollbar-thumb{background:#ff6b9d33;border-radius:2px}@media(max-width:600px){.lyrics-toggle{bottom:16px;right:16px;width:42px;height:42px;font-size:18px}.lyrics-modal{padding:25px 20px;border-radius:20px}.lyrics-title{font-size:26px}.lyrics-line{font-size:13px}}.app{width:100%;min-height:100vh;position:relative}.screen-wrapper{position:relative;z-index:5;transition:opacity .5s ease,transform .5s ease}.screen-wrapper.fade-in{opacity:1;transform:scale(1)}.screen-wrapper.fade-out{opacity:0;transform:scale(.97)}@keyframes sparkFade{0%{transform:scale(0) rotate(0);opacity:1}50%{transform:scale(1.2) rotate(180deg);opacity:.8}to{transform:scale(0) rotate(360deg) translateY(-25px);opacity:0}}@keyframes screenFadeIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes heartPump{0%,to{transform:scale(1)}15%{transform:scale(1.25)}30%{transform:scale(1)}45%{transform:scale(1.15)}}
