:root{--pink:#ff71ce;--purple:#b967ff;--yellow:#ffd93d;--blue:#6bcf7f;--peach:#ffb5e8;--bg:#fff5f7;--white:#fff;--text:#5d3a5a;--text-light:#8b6b88;--bounce:cubic-bezier(.68, -.55, .265, 1.55);--elastic:cubic-bezier(.34, 1.56, .64, 1);--smooth:cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box;margin:0;padding:0}body{color:var(--text);background:linear-gradient(135deg,#fff5f7 0%,#ffe8f0 50%,#fff0f5 100%);min-height:100vh;font-family:Nunito,sans-serif;position:relative;overflow-x:hidden}#root{min-height:100vh}.bg-decoration{pointer-events:none;z-index:0;width:100%;height:100%;position:fixed;top:0;left:0;overflow:hidden}.heart{opacity:.2;filter:drop-shadow(0 0 10px #ff71ce4d);font-size:2.5rem;animation:15s ease-in-out infinite float;position:absolute}.heart:first-child{font-size:3rem;animation-delay:0s;top:5%;left:5%}.heart:nth-child(2){font-size:2rem;animation-delay:2s;top:15%;right:10%}.heart:nth-child(3){font-size:2.5rem;animation-delay:4s;bottom:20%;left:15%}.heart:nth-child(4){font-size:3.5rem;animation-delay:6s;top:50%;right:5%}.heart:nth-child(5){font-size:2rem;animation-delay:8s;bottom:10%;right:20%}@keyframes float{0%,to{opacity:.2;transform:translateY(0)rotate(0)scale(1)}25%{opacity:.3;transform:translateY(-40px)rotate(10deg)scale(1.1)}50%{opacity:.25;transform:translateY(-80px)rotate(-10deg)scale(.9)}75%{opacity:.3;transform:translateY(-40px)rotate(5deg)scale(1.05)}}.container{z-index:1;justify-content:center;align-items:center;max-width:650px;min-height:100vh;margin:0 auto;padding:2rem 1.5rem;display:flex;position:relative}.logo{text-align:center;animation:slideDown .8s var(--bounce);margin-bottom:1.5rem}@keyframes slideDown{0%{opacity:0;transform:translateY(-50px)scale(.8)}to{opacity:1;transform:translateY(0)scale(1)}}.logo-icon{filter:drop-shadow(0 8px 20px #ff71ce66);font-size:6rem;animation:1.5s infinite heartbeat;display:inline-block}@keyframes heartbeat{0%,to{transform:scale(1)}10%{transform:scale(1.15)}20%{transform:scale(1)}30%{transform:scale(1.15)}40%{transform:scale(1)}}.logo-text{background:linear-gradient(135deg, var(--pink) 0%, var(--purple) 50%, var(--yellow) 100%);-webkit-text-fill-color:transparent;filter:drop-shadow(2px 2px 4px #ff71ce4d);background-size:200% 200%;-webkit-background-clip:text;background-clip:text;margin-top:.5rem;font-family:Fredoka,sans-serif;font-size:3rem;font-weight:700;animation:3s infinite gradientShift}@keyframes gradientShift{0%,to{background-position:0%}50%{background-position:100%}}.subtitle{text-align:center;color:var(--text-light);margin-bottom:3rem;font-size:1.2rem;font-weight:600;animation:1s .3s both fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.card{background:var(--white);border:4px solid var(--pink);text-align:center;width:100%;animation:cardAppear .6s var(--elastic);border-radius:32px;padding:3rem 2.5rem;position:relative;overflow:hidden;box-shadow:0 10px 40px #ff71ce4d,inset 0 -4px 12px #ff71ce1a}@keyframes cardAppear{0%{opacity:0;transform:scale(.8)translateY(30px)}to{opacity:1;transform:scale(1)translateY(0)}}.card:before{content:"✨";font-size:2rem;animation:2s infinite sparkle;position:absolute;top:20px;right:20px}.card:after{content:"💫";font-size:2rem;animation:2s 1s infinite sparkle;position:absolute;bottom:20px;left:20px}@keyframes sparkle{0%,to{opacity:.3;transform:rotate(0)scale(1)}50%{opacity:1;transform:rotate(180deg)scale(1.2)}}.card-emoji{filter:drop-shadow(0 5px 15px #ff71ce66);margin-bottom:1.5rem;font-size:5rem;animation:1.5s infinite bounce;display:inline-block}@keyframes bounce{0%,to{transform:translateY(0)rotate(0)}25%{transform:translateY(-15px)rotate(-5deg)}50%{transform:translateY(-25px)rotate(0)}75%{transform:translateY(-15px)rotate(5deg)}}.card h2{background:linear-gradient(135deg, var(--pink) 0%, var(--purple) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:1rem;font-family:Fredoka,sans-serif;font-size:2.2rem}.card p{color:var(--text-light);margin-bottom:2.5rem;font-size:1.15rem;font-weight:600}.btn{cursor:pointer;transition:all .3s var(--elastic);border:none;border-radius:50px;align-items:center;gap:.8rem;padding:1.2rem 3rem;font-family:Fredoka,sans-serif;font-size:1.3rem;font-weight:700;display:inline-flex;position:relative;overflow:hidden;box-shadow:0 8px 25px #ff71ce66}.btn:before{content:"";background:linear-gradient(90deg,#0000,#fff6,#0000);width:100%;height:100%;transition:left .5s;position:absolute;top:0;left:-100%}.btn:hover:before{left:100%}.btn:active{transform:scale(.92)}.btn-primary{background:linear-gradient(135deg, var(--pink) 0%, var(--purple) 100%);color:var(--white);border:4px solid var(--pink);animation:2s infinite buttonPulse}@keyframes buttonPulse{0%,to{box-shadow:0 8px 25px #ff71ce66}50%{box-shadow:0 12px 35px #ff71ce99}}.btn-primary:hover{transform:translateY(-5px)scale(1.05);box-shadow:0 15px 40px #ff71ce99}.btn-secondary{background:linear-gradient(135deg, var(--yellow) 0%, var(--peach) 100%);color:var(--text);border:4px solid var(--yellow)}.btn-secondary:hover:not(:disabled){transform:translateY(-3px);box-shadow:0 12px 30px #ffd93d80}.btn:disabled{opacity:.5;cursor:not-allowed;animation:none;transform:none!important}.btn-icon{transition:transform .3s var(--elastic);font-size:1.8rem;display:inline-block}.btn:hover .btn-icon{transform:translate(8px)rotate(10deg)}.progress-bar{background:var(--white);border:4px solid var(--pink);border-radius:50px;height:60px;margin-bottom:2.5rem;position:relative;overflow:hidden;box-shadow:inset 0 4px 12px #ff71ce33,0 4px 15px #ff71ce4d}.progress-fill{background:linear-gradient(90deg, var(--pink) 0%, var(--purple) 25%, var(--blue) 50%, var(--yellow) 75%, var(--peach) 100%);height:100%;transition:width .6s var(--elastic);background-size:200% 100%;border-radius:46px;animation:3s linear infinite rainbowFlow;position:relative}@keyframes rainbowFlow{0%{background-position:0%}to{background-position:200%}}.progress-fill:after{content:"";background:linear-gradient(90deg,#0000,#ffffff4d,#0000);animation:2s infinite shimmer;position:absolute;inset:0}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.progress-text{color:var(--text);z-index:1;text-shadow:0 2px 4px #fffc;font-family:Fredoka,sans-serif;font-size:1.3rem;font-weight:700;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.question-number{color:var(--purple);text-transform:uppercase;letter-spacing:2px;margin-bottom:1.5rem;font-family:Fredoka,sans-serif;font-size:1rem;font-weight:700;animation:.5s slideIn}@keyframes slideIn{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}.question-text{background:linear-gradient(135deg, var(--pink) 0%, var(--purple) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:2.5rem;font-family:Fredoka,sans-serif;font-size:1.8rem;line-height:1.5;animation:.6s fadeInUp}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.options{flex-direction:column;gap:1.2rem;margin-bottom:2.5rem;display:flex}.option{border:3px solid var(--peach);color:var(--text);cursor:pointer;transition:all .3s var(--elastic);text-align:left;background:linear-gradient(135deg,#fff 0%,#fff5f7 100%);border-radius:24px;padding:1.5rem 2rem;font-size:1.15rem;font-weight:700;animation:.5s both optionAppear;position:relative;overflow:hidden;box-shadow:0 4px 15px #ffb5e833}.option:first-child{animation-delay:.1s}.option:nth-child(2){animation-delay:.2s}.option:nth-child(3){animation-delay:.3s}.option:nth-child(4){animation-delay:.4s}@keyframes optionAppear{0%{opacity:0;transform:translate(-30px)scale(.9)}to{opacity:1;transform:translate(0)scale(1)}}.option:before{content:"💖";transition:transform .3s var(--elastic);font-size:1.5rem;position:absolute;top:50%;right:20px;transform:translateY(-50%)scale(0)}.option:hover{border-color:var(--pink);transform:translate(10px)scale(1.02);box-shadow:0 8px 25px #ff71ce4d}.option.selected{background:linear-gradient(135deg, var(--pink) 0%, var(--purple) 100%);color:var(--white);border-color:var(--purple);animation:selectedPulse .6s var(--elastic);transform:scale(1.05);box-shadow:0 10px 30px #ff71ce80}@keyframes selectedPulse{0%{transform:scale(1)}50%{transform:scale(1.08)}to{transform:scale(1.05)}}.option.selected:before{transform:translateY(-50%)scale(1)rotate(360deg)}.option:active{transform:scale(.98)}.btn-next{justify-content:center;width:100%;font-size:1.4rem}.result-emoji{animation:resultAppear .8s var(--elastic);filter:drop-shadow(0 10px 30px #ff71ce80);margin-bottom:1.5rem;font-size:8rem;display:inline-block}@keyframes resultAppear{0%{opacity:0;transform:scale(0)rotate(-180deg)}60%{transform:scale(1.2)rotate(10deg)}to{opacity:1;transform:scale(1)rotate(0)}}.result-title{background:linear-gradient(135deg, var(--pink) 0%, var(--purple) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:2rem;font-family:Fredoka,sans-serif;font-size:2.5rem;animation:.6s .2s both fadeInUp}.result-score{justify-content:center;align-items:center;gap:1rem;margin-bottom:2rem;animation:.6s .4s both fadeInUp;display:flex}.score-label{color:var(--text-light);font-family:Fredoka,sans-serif;font-size:1.1rem;font-weight:700}.score-value{background:linear-gradient(135deg, var(--pink) 0%, var(--purple) 50%, var(--yellow) 100%);-webkit-text-fill-color:transparent;filter:drop-shadow(0 4px 8px #ff71ce4d);-webkit-background-clip:text;background-clip:text;font-family:Fredoka,sans-serif;font-size:5rem;font-weight:800;animation:1s .6s both numberCount}@keyframes numberCount{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}.score-max{color:var(--text-light);font-family:Fredoka,sans-serif;font-size:2rem;font-weight:700}.result-badge{background:linear-gradient(135deg, var(--pink) 0%, var(--purple) 100%);color:var(--white);border:4px solid var(--purple);animation:badgeBounce .8s var(--elastic) .8s both;border-radius:50px;margin-bottom:2.5rem;padding:1rem 3rem;font-family:Fredoka,sans-serif;font-size:1.6rem;font-weight:700;display:inline-block;box-shadow:0 8px 25px #ff71ce66}@keyframes badgeBounce{0%{opacity:0;transform:translateY(50px)scale(.5)}60%{transform:translateY(-10px)scale(1.1)}to{opacity:1;transform:translateY(0)scale(1)}}.result-badge.normal{background:linear-gradient(135deg, var(--blue) 0%, #4caf50 100%);border-color:var(--blue)}.result-analysis{text-align:left;color:var(--text);border:3px solid var(--peach);white-space:pre-wrap;background:linear-gradient(135deg,#fff5f7 0%,#ffe8f0 100%);border-radius:24px;margin-bottom:2.5rem;padding:2rem;font-size:1.05rem;line-height:2;animation:.6s 1s both fadeInUp;box-shadow:inset 0 2px 8px #ff71ce1a}.loading-animation{text-align:center;padding:5rem 2rem}.loading-heart{filter:drop-shadow(0 10px 30px #ff71ce80);font-size:8rem;animation:1.2s infinite loadingPulse;display:inline-block}@keyframes loadingPulse{0%,to{opacity:1;transform:scale(1)rotate(0)}25%{opacity:.8;transform:scale(1.2)rotate(-10deg)}50%{opacity:1;transform:scale(.9)rotate(10deg)}75%{opacity:.9;transform:scale(1.1)rotate(-5deg)}}.loading-text{background:linear-gradient(135deg, var(--pink) 0%, var(--purple) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-top:2rem;font-family:Fredoka,sans-serif;font-size:1.6rem;font-weight:700;animation:1.5s infinite textPulse}@keyframes textPulse{0%,to{opacity:1}50%{opacity:.5}}@media (width<=640px){.container{padding:1rem .8rem}.logo{margin-bottom:1rem}.logo-text{font-size:2.2rem}.logo-icon{font-size:4.5rem}.subtitle{margin-bottom:2rem;font-size:1rem}.card{border-width:3px;border-radius:28px;padding:2rem 1.5rem}.card:before,.card:after{font-size:1.5rem}.card-emoji{margin-bottom:1rem;font-size:4rem}.card h2{font-size:1.8rem}.card p{margin-bottom:2rem;font-size:1rem}.question-text{margin-bottom:2rem;font-size:1.4rem}.question-number{margin-bottom:1rem;font-size:.9rem}.option{border-width:3px;border-radius:20px;padding:1.2rem 1.5rem;font-size:1rem}.option:before{font-size:1.2rem;right:15px}.options{gap:1rem;margin-bottom:2rem}.progress-bar{border-width:3px;height:50px;margin-bottom:2rem}.progress-text{font-size:1.1rem}.btn{border-radius:40px;gap:.5rem;padding:1rem 2rem;font-size:1.1rem}.btn-icon{font-size:1.5rem}.btn-next{font-size:1.2rem}.result-emoji{margin-bottom:1rem;font-size:6rem}.result-title{margin-bottom:1.5rem;font-size:2rem}.result-score{gap:.5rem;margin-bottom:1.5rem}.score-label{font-size:.9rem}.score-value{font-size:3.5rem}.score-max{font-size:1.5rem}.result-badge{border-width:3px;margin-bottom:2rem;padding:.8rem 2rem;font-size:1.3rem}.result-analysis{border-width:3px;margin-bottom:2rem;padding:1.5rem;font-size:.95rem;line-height:1.8}.loading-animation{padding:4rem 1.5rem}.loading-heart{font-size:6rem}.loading-text{margin-top:1.5rem;font-size:1.3rem}.heart{font-size:2rem}.heart:first-child{font-size:2.5rem}.heart:nth-child(4){font-size:3rem}}@media (width<=375px){.container{padding:.8rem .5rem}.logo-text{font-size:1.8rem}.logo-icon{font-size:4rem}.card{padding:1.5rem 1.2rem}.card h2{font-size:1.6rem}.question-text{font-size:1.2rem}.option{padding:1rem 1.2rem;font-size:.95rem}.btn{padding:.9rem 1.8rem;font-size:1rem}.score-value{font-size:3rem}.result-badge{padding:.7rem 1.5rem;font-size:1.1rem}}@media (width>=641px) and (width<=1024px){.container{max-width:700px;padding:2.5rem 2rem}.card{padding:3.5rem 3rem}.logo-icon{font-size:7rem}.logo-text{font-size:3.5rem}.question-text{font-size:2rem}.option{padding:1.8rem 2.5rem;font-size:1.2rem}.btn{padding:1.3rem 3.5rem;font-size:1.4rem}}@media (height<=600px) and (orientation:landscape){.container{align-items:flex-start;padding:1rem}.logo{margin-bottom:.5rem}.logo-icon{font-size:3rem}.logo-text{font-size:1.8rem}.subtitle{margin-bottom:1rem;font-size:.9rem}.card{padding:1.5rem}.card-emoji{margin-bottom:.5rem;font-size:3rem}.card h2{margin-bottom:.5rem;font-size:1.5rem}.card p{margin-bottom:1rem}.progress-bar{height:40px;margin-bottom:1rem}.options{gap:.8rem;margin-bottom:1rem}.option{padding:.8rem 1.2rem}.result-emoji{font-size:4rem}.result-score{margin-bottom:1rem}.score-value{font-size:3rem}}@media (hover:none) and (pointer:coarse){.btn,.option{min-height:48px}.option:active{transform:scale(.95)}.btn:active{transform:scale(.92)}.option:hover,.btn:hover{transform:none}}@keyframes twinkle{0%,to{opacity:.3;transform:scale(1)}50%{opacity:1;transform:scale(1.3)}}
