:root{--pink-50: #fff0f5;--pink-100: #ffe0ec;--pink-200: #ffc2d8;--pink-300: #ffa1c0;--pink-500: #ff6b9d;--red-500: #ff3b6b;--red-600: #e11d48;--text: #4a1c2f}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{margin:0;padding:0;min-height:100dvh;width:100%;overflow-x:hidden;font-family:Segoe UI,system-ui,-apple-system,sans-serif;color:var(--text)}body{background:linear-gradient(160deg,#ffe0ec,#ffd1e0 45%,#ffb6c9);background-attachment:fixed}.hearts-bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='60' height='60' viewBox='0 0 60 60'><g fill='%23ff8ab0' fill-opacity='0.18'><path d='M30 46s-13-8.35-13-19a8 8 0 0 1 13-6.24A8 8 0 0 1 43 27c0 10.65-13 19-13 19z'/></g></svg>");background-size:60px 60px;opacity:.85}.app{position:relative;z-index:1;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px 20px 40px;text-align:center}.card{width:100%;max-width:420px;background:#ffffffb8;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-radius:28px;padding:28px 22px 32px;box-shadow:0 12px 40px #ff5a8240,0 2px 8px #0000000d;border:1px solid rgba(255,255,255,.6)}.greeting{font-family:Georgia,serif;font-size:1.05rem;color:var(--red-600);margin:0 0 6px;letter-spacing:.5px}.title{font-family:Georgia,serif;font-size:2rem;font-weight:700;margin:8px 0 14px;color:var(--red-600);line-height:1.15}.subtitle{font-size:1.05rem;line-height:1.55;margin:0 0 8px;color:var(--text)}.date-tag{display:inline-block;background:var(--pink-100);color:var(--red-600);border-radius:999px;padding:4px 12px;font-size:.85rem;font-weight:600;margin:6px 0 16px}.doloris-link{color:var(--red-500);font-weight:700;text-decoration:none;border-bottom:2px dotted var(--pink-300)}.doloris-link:hover{color:var(--red-600)}.signature{margin-top:18px;font-family:Georgia,serif;font-style:italic;color:var(--red-600);opacity:.9}.buttons{display:flex;gap:14px;justify-content:center;margin-top:22px;flex-wrap:wrap}.btn{font:inherit;font-weight:700;font-size:1.1rem;padding:14px 30px;border-radius:999px;border:none;cursor:pointer;transition:transform .15s ease,box-shadow .2s ease;min-width:120px;touch-action:manipulation}.btn:active{transform:scale(.96)}.btn-yes{background:linear-gradient(135deg,#ff5c8a,#e11d48);color:#fff;box-shadow:0 6px 18px #e11d4866}.btn-yes:hover{box-shadow:0 8px 22px #e11d488c}.btn-no{background:#fff;color:var(--red-600);border:2px solid var(--pink-300);position:fixed;z-index:20;transition:left .35s cubic-bezier(.34,1.56,.64,1),top .35s cubic-bezier(.34,1.56,.64,1)}.no-toast{position:fixed;top:24px;left:50%;transform:translate(-50%);background:#e11d48f2;color:#fff;padding:12px 22px;border-radius:999px;font-weight:700;box-shadow:0 8px 24px #e11d4866;z-index:100;animation:toastIn .3s ease}@keyframes toastIn{0%{opacity:0;transform:translate(-50%,-12px)}to{opacity:1;transform:translate(-50%)}}.woohoo{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:flex;align-items:center;justify-content:center;padding:20px;text-align:center;background:radial-gradient(circle at center,#fff0f5e6,#ffb6c5d9);animation:fadeIn .4s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.woohoo-inner{max-width:420px}.woohoo-title{font-family:Georgia,serif;font-size:4rem;color:var(--red-600);margin:0;text-shadow:0 4px 20px rgba(255,92,138,.5);animation:pop .6s cubic-bezier(.34,1.56,.64,1)}@keyframes pop{0%{transform:scale(.3);opacity:0}to{transform:scale(1);opacity:1}}.woohoo-sub{font-size:1.2rem;margin-top:12px;color:var(--red-600);font-weight:600}.woohoo-details{margin-top:22px;font-size:1rem;color:var(--text);line-height:1.6;background:#ffffffb3;padding:16px 18px;border-radius:20px;box-shadow:0 6px 20px #ff5c8a33}.float-heart{position:fixed;bottom:-40px;font-size:28px;z-index:25;pointer-events:none;animation:floatUp linear forwards}@keyframes floatUp{0%{transform:translateY(0) rotate(0);opacity:1}to{transform:translateY(-110vh) rotate(360deg);opacity:0}}.balloon{position:fixed;bottom:-80px;width:44px;height:56px;border-radius:50%;z-index:24;pointer-events:none;animation:rise linear forwards;box-shadow:inset -6px -8px #00000014}.balloon:after{content:"";position:absolute;top:100%;left:50%;width:1px;height:60px;background:#00000040}@keyframes rise{0%{transform:translateY(0) translate(0);opacity:1}to{transform:translateY(-120vh) translate(var(--drift, 20px));opacity:.7}}@media (max-width: 380px){.title{font-size:1.7rem}.woohoo-title{font-size:3rem}.btn{font-size:1rem;padding:12px 24px}}
