html,body,#root{touch-action:none;overscroll-behavior:none;background:#9fd6ff;width:100%;height:100%;margin:0;font-family:system-ui,Segoe UI,Roboto,sans-serif;overflow:hidden}@keyframes intro-fade-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes intro-fade-out{to{opacity:0;transform:scale(1.04)}}@keyframes intro-heart{0%{opacity:0;transform:translateY(0)rotate(-8deg)}15%{opacity:.8}to{opacity:0;transform:translateY(-110vh)rotate(8deg)}}@keyframes intro-shake{0%,to{transform:none}20%,60%{transform:translate(-8px)}40%,80%{transform:translate(8px)}}.intro-appear{opacity:0;animation:.9s ease-out forwards intro-fade-up}.intro-leave{animation:.8s ease-in forwards intro-fade-out}.intro-shake{animation:.4s ease-in-out intro-shake}.intro-heart{pointer-events:none;animation:linear infinite intro-heart;position:absolute;bottom:-40px}.intro-option:hover{filter:brightness(.97)}@media (prefers-reduced-motion:reduce){.intro-appear,.intro-heart,.intro-shake{opacity:1;animation:none}.intro-heart{display:none}}@keyframes love-appear{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.love-item{opacity:0;animation:.5s ease-out forwards love-appear}@media (prefers-reduced-motion:reduce){.love-item{opacity:1;animation:none}}@keyframes voice-descend{0%{opacity:0;transform:translateY(-110vh)rotate(-4deg)}60%{opacity:1;transform:translateY(12px)rotate(1.5deg)}80%{transform:translateY(-6px)rotate(-.5deg)}to{opacity:1;transform:none}}@keyframes voice-glow{0%,to{box-shadow:0 0 24px #ffd6788c,0 0 70px #ffbedc59}50%{box-shadow:0 0 36px #ffe096d9,0 0 110px #ffbedc8c}}@keyframes voice-sky{0%{opacity:0}}@keyframes voice-twinkle{0%,to{opacity:.2;transform:scale(.7)}50%{opacity:1;transform:scale(1)}}.voice-sky{animation:1.2s ease-out voice-sky}.voice-card{animation:2.4s cubic-bezier(.2,.7,.3,1) both voice-descend,3s ease-in-out 2.4s infinite voice-glow}.voice-twinkle{pointer-events:none;animation:ease-in-out infinite voice-twinkle;position:absolute}.voice-line{transition:opacity .6s ease-out,transform .6s ease-out,color .6s}@media (prefers-reduced-motion:reduce){.voice-sky,.voice-card,.voice-twinkle,.voice-line{transition:none;animation:none}}
