:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}#root{width:100%}.love-container{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(135deg,#ffeef8,#ffe5f1,#fff0f5,#ffe5ec,#ffd6e8);position:relative;overflow:hidden;padding:1rem;cursor:none}.love-title{font-size:clamp(2rem,8vw,5rem);color:#ff1493;text-shadow:0 0 20px rgba(255,20,147,.4);margin:2rem;animation:pulse 2s ease-in-out infinite;z-index:10;text-align:center;font-weight:700;width:100%}.hearts-text{font-size:clamp(1.5rem,6vw,3rem);animation:heartbeat 1.5s ease-in-out infinite;z-index:10;margin-top:2rem}.hearts{position:absolute;width:100%;height:100%;overflow:hidden;pointer-events:none}.heart{position:absolute;font-size:clamp(1.5rem,4vw,2.5rem);opacity:0;filter:drop-shadow(0 0 8px rgba(255,255,255,.6))}.heart:nth-child(1){left:10%;animation:floatDiagonal1 12s ease-in-out infinite;animation-delay:.5s}.heart:nth-child(2){left:25%;animation:floatSpiral 14s ease-in-out infinite;animation-delay:1.2s}.heart:nth-child(3){left:40%;animation:floatWave 11s ease-in-out infinite;animation-delay:2.5s}.heart:nth-child(4){left:55%;animation:floatZigzag 13s ease-in-out infinite;animation-delay:.8s}.heart:nth-child(5){left:70%;animation:floatDiagonal2 15s ease-in-out infinite;animation-delay:3s}.heart:nth-child(6){left:85%;animation:floatCircle 16s ease-in-out infinite;animation-delay:1.8s}.heart:nth-child(7){left:15%;animation:floatWave 13s ease-in-out infinite;animation-delay:4s}.heart:nth-child(8){left:65%;animation:floatSpiral 12s ease-in-out infinite;animation-delay:2s}@keyframes floatDiagonal1{0%{top:-10%;left:10%;opacity:0;transform:rotate(0) scale(.8)}10%{opacity:1}25%{transform:rotate(90deg) scale(1.2)}50%{left:35%;transform:rotate(180deg) scale(1)}75%{transform:rotate(270deg) scale(1.1)}90%{opacity:1}to{top:110%;left:60%;opacity:0;transform:rotate(360deg) scale(.8)}}@keyframes floatDiagonal2{0%{top:-10%;right:10%;opacity:0;transform:rotate(0) scale(.9)}15%{opacity:1}30%{transform:rotate(-90deg) scale(1.1)}50%{right:45%;transform:rotate(-180deg) scale(1.3)}70%{transform:rotate(-270deg) scale(1)}85%{opacity:1}to{top:110%;right:70%;opacity:0;transform:rotate(-360deg) scale(.9)}}@keyframes floatSpiral{0%{top:110%;opacity:0;transform:rotate(0) translate(0) scale(.7)}10%{opacity:1}25%{transform:rotate(180deg) translate(80px) scale(1.2)}50%{transform:rotate(360deg) translate(-80px) scale(1)}75%{transform:rotate(540deg) translate(60px) scale(1.1)}90%{opacity:1}to{top:-10%;opacity:0;transform:rotate(720deg) translate(-40px) scale(.7)}}@keyframes floatWave{0%{left:-10%;top:20%;opacity:0;transform:rotate(0) translateY(0)}10%{opacity:1}25%{transform:rotate(120deg) translateY(-50px)}50%{left:50%;transform:rotate(240deg) translateY(50px)}75%{transform:rotate(360deg) translateY(-30px)}90%{opacity:1}to{left:110%;top:70%;opacity:0;transform:rotate(480deg) translateY(0)}}@keyframes floatZigzag{0%{top:-10%;opacity:0;transform:translate(0) rotate(0)}10%{opacity:1}20%{transform:translate(100px) rotate(72deg)}40%{transform:translate(-100px) rotate(144deg)}60%{transform:translate(120px) rotate(216deg)}80%{transform:translate(-80px) rotate(288deg)}90%{opacity:1}to{top:110%;opacity:0;transform:translate(0) rotate(360deg)}}@keyframes floatCircle{0%{opacity:0;transform:rotate(0) translate(150px) rotate(0) scale(.8)}10%{opacity:1}25%{transform:rotate(90deg) translate(150px) rotate(-90deg) scale(1.2)}50%{transform:rotate(180deg) translate(150px) rotate(-180deg) scale(1)}75%{transform:rotate(270deg) translate(150px) rotate(-270deg) scale(1.1)}90%{opacity:1}to{opacity:0;transform:rotate(360deg) translate(150px) rotate(-360deg) scale(.8)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes heartbeat{0%,to{transform:scale(1)}25%{transform:scale(1.1)}50%{transform:scale(1)}75%{transform:scale(1.1)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.explosion-heart{position:fixed;font-size:clamp(1.5rem,3vw,2rem);pointer-events:none;z-index:1000;animation:explode 2s ease-out forwards;filter:drop-shadow(0 0 8px rgba(255,100,150,.8))}@keyframes explode{0%{opacity:1;transform:translate(-50%,-50%) rotate(0) scale(0)}20%{opacity:1;transform:translate(calc(-50% + var(--offset-x) * .5),calc(-50% + var(--offset-y) * .5)) rotate(180deg) scale(1.2)}to{opacity:0;transform:translate(calc(-50% + var(--offset-x)),calc(-50% + var(--offset-y))) rotate(360deg) scale(.5)}}.cursor-heart{position:fixed;font-size:clamp(1rem,2vw,1.5rem);pointer-events:none;z-index:999;animation:cursorFade 1.5s ease-out forwards;filter:drop-shadow(0 0 5px rgba(255,150,200,.8))}@keyframes cursorFade{0%{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(0)}to{opacity:0;transform:translate(-50%,-150%) scale(.3) rotate(180deg)}}.start-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:linear-gradient(135deg,#ffeef8,#ffe5f1,#fff0f5);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:10000;cursor:none}.bubble{position:absolute;width:clamp(200px,30vw,400px);height:clamp(200px,30vw,400px);background:radial-gradient(circle at 30% 30%,#ffffffe6,#ffb6c199 40%,#ff69b466);border-radius:50%;box-shadow:inset -25px -25px 40px #ffffff80,inset 25px 25px 40px #ff69b44d,0 0 50px #ff69b466;animation:bubbleFloat 3s ease-in-out infinite;pointer-events:none;transition:transform .3s ease}.bubble:before{content:"";position:absolute;top:15%;left:15%;width:40%;height:40%;background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.8),transparent 50%);border-radius:50%}.bubble:after{content:"";position:absolute;top:50%;left:50%;width:20%;height:20%;background:radial-gradient(circle,rgba(255,255,255,.4),transparent 70%);border-radius:50%;transform:translate(-50%,-50%)}@keyframes bubbleFloat{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-30px) scale(1.02)}}.bubble.popping{animation:bubblePop .6s ease-out forwards}@keyframes bubblePop{0%{transform:scale(1);opacity:1}50%{transform:scale(1.3);opacity:.7}to{transform:scale(2);opacity:0}}.bubble-heart{position:fixed;font-size:clamp(2rem,4vw,3rem);pointer-events:none;z-index:10001;animation:heartFall 2s ease-in forwards}@keyframes heartFall{0%{opacity:1;transform:translate(-50%,-50%) scale(0) rotate(0)}20%{opacity:1;transform:translate(-50%,-50%) scale(1.2) rotate(180deg)}to{opacity:0;transform:translate(calc(-50% + var(--fall-x, 0px)),calc(-50% + var(--fall-y, 800px))) scale(.5) rotate(720deg)}}
