body{margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}#root{min-height:100vh}.app-root{background:radial-gradient(circle at top,#ffe4f2 0,#ffcddc 30%,#f8bbd0 45%,#f06292 100%);justify-content:center;align-items:center;min-height:100vh;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;display:flex;position:relative;overflow:hidden}.floating-love{pointer-events:none;z-index:0;opacity:.3;position:absolute;inset:0;overflow:hidden}.floating-love span{color:#fff;text-shadow:0 0 10px #e91e6399;white-space:nowrap;font-size:1rem;font-weight:600;animation:16s linear infinite floatUp;position:absolute}.floating-love span:first-child{font-size:1rem;animation-duration:18s;bottom:-10%;left:5%}.floating-love span:nth-child(2){font-size:1.2rem;animation-duration:20s;bottom:-15%;left:25%}.floating-love span:nth-child(3){font-size:.95rem;animation-duration:17s;bottom:-20%;left:45%}.floating-love span:nth-child(4){font-size:1.1rem;animation-duration:22s;bottom:-18%;left:65%}.floating-love span:nth-child(5){font-size:.9rem;animation-duration:19s;bottom:-12%;left:80%}.floating-love span:nth-child(6){font-size:1.05rem;animation-duration:23s;bottom:-25%;left:15%}.floating-love span:nth-child(7){font-size:.9rem;animation-duration:21s;bottom:-22%;left:55%}.floating-love span:nth-child(8){font-size:1.15rem;animation-duration:24s;bottom:-30%;left:35%}.floating-hearts{pointer-events:none;z-index:0;position:absolute;inset:0;overflow:hidden}.floating-hearts span{color:#ffebf5;text-shadow:0 0 8px #ffffffb3,0 0 14px #e91e63cc;opacity:.7;font-size:1.4rem;animation:14s ease-in-out infinite heartFloat;position:absolute}.floating-hearts span:first-child{animation-duration:12s;top:10%;left:8%}.floating-hearts span:nth-child(2){animation-duration:16s;top:70%;left:20%}.floating-hearts span:nth-child(3){animation-duration:18s;top:25%;left:32%}.floating-hearts span:nth-child(4){animation-duration:15s;top:80%;left:48%}.floating-hearts span:nth-child(5){animation-duration:19s;top:18%;left:60%}.floating-hearts span:nth-child(6){animation-duration:17s;top:65%;left:72%}.floating-hearts span:nth-child(7){animation-duration:20s;top:30%;left:85%}.floating-hearts span:nth-child(8){animation-duration:22s;top:45%;left:12%}.floating-hearts span:nth-child(9){animation-duration:21s;top:5%;left:42%}.floating-hearts span:nth-child(10){animation-duration:23s;top:50%;left:78%}@keyframes heartFloat{0%{opacity:0;transform:translateY(0)scale(1)}20%{opacity:.8}50%{opacity:1;transform:translateY(-40px)scale(1.15)}80%{opacity:.7}to{opacity:0;transform:translateY(-80px)scale(1)}}@keyframes floatUp{0%{opacity:0;transform:translateY(0)translate(0)}10%{opacity:1}50%{opacity:1}to{opacity:0;transform:translateY(-120vh)translate(-10px)}}.love-card{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);text-align:center;z-index:1;background:#ffffffe6;border-radius:24px;width:min(420px,90vw);padding:28px 26px 24px;position:relative;overflow:hidden;box-shadow:0 20px 45px #00000026,inset 0 0 0 1px #ffffffb3}.card-glow{border-radius:inherit;opacity:.9;z-index:-2;background:linear-gradient(135deg,#ff9a9e,#fecfef,#fbc2eb,#a18cd1);padding:2px;position:absolute;inset:-2px}.card-glow:before{content:"";border-radius:inherit;background:radial-gradient(circle at top,#fffffff2,#fffc);position:absolute;inset:4px}.love-card:before,.love-card:after{content:"";opacity:.18;z-index:-1;background:radial-gradient(circle at 30% 30%,#ff80ab,#0000 60%);border-radius:999px;width:220px;height:220px;position:absolute}.love-card:before{top:-80px;left:-60px}.love-card:after{bottom:-90px;right:-40px}.heart-decoration{color:#e91e63;margin-bottom:4px;font-size:40px;animation:1.4s ease-in-out infinite pulse}.to-tag{letter-spacing:.12em;text-transform:uppercase;color:#c2185b;opacity:.8;margin:4px 0;font-size:.8rem}@keyframes pulse{0%,to{text-shadow:0 0 10px #e91e6366;transform:scale(1)}50%{text-shadow:0 0 18px #e91e63b3;transform:scale(1.16)}}.love-card h1{color:#ad1457;margin:0;font-size:1.8rem}.subtitle{color:#7b1fa2;opacity:.9;margin:6px 0 16px;font-size:.95rem}.message{color:#4a148c;white-space:pre-line;margin:8px 0 18px;font-size:.98rem;line-height:1.6}.audio-section{background:#ffc0cb33;border:1px solid #e91e6338;border-radius:16px;margin:12px 0 18px;padding:12px 14px}.audio-label{letter-spacing:.03em;text-transform:uppercase;color:#c2185b;margin:0 0 8px;font-size:.9rem;font-weight:600}.audio-section audio{width:100%}.signature{color:#6a1b9a;margin-top:10px;font-size:.95rem}.signature .name{color:#d81b60;margin-left:4px;font-weight:600;display:inline-block}
