body{margin:0;font-family:system-ui,sans-serif;background:linear-gradient(135deg,#0ea5e9,#22c55e,#6366f1);background-size:300% 300%;animation:bgMove 12s ease infinite}@keyframes bgMove{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.card{background:#ffffffeb;border-radius:24px;padding:28px;max-width:900px;width:100%;box-shadow:0 20px 60px #0003}.title{text-align:center;font-size:32px;font-weight:700}.subtitle{text-align:center;opacity:.8;margin-bottom:16px}.grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}@media(max-width:768px){.grid{grid-template-columns:1fr}}.badges{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.badge{background:#eef2ff;padding:6px 10px;border-radius:999px;font-size:12px}.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.action-card{background:linear-gradient(135deg,#eef2ff,#e0f2fe);padding:18px;border-radius:16px;cursor:pointer;text-align:center;font-weight:600;transition:.2s}.action-card:hover{transform:translateY(-4px) scale(1.03);box-shadow:0 10px 24px #00000026}.popup-backdrop{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center}.popup{position:relative;z-index:2;background:#fff;border-radius:20px;padding:28px;max-width:420px;text-align:center}.btn{margin-top:12px;padding:10px 16px;border:none;border-radius:999px;background:#6366f1;color:#fff;cursor:pointer}.confetti-wrap{position:fixed;inset:0;pointer-events:none}.confetti{position:absolute;width:10px;height:16px;border-radius:3px;top:-20px;animation:fall linear forwards}.confetti:nth-child(odd){background:#22c55e;left:20%}.confetti:nth-child(2n){background:#0ea5e9;left:70%}@keyframes fall{0%{transform:translateY(0) rotate(0) scale(1);opacity:1}to{transform:translateY(110vh) rotate(720deg) scale(.7);opacity:0}}.confetti{position:absolute;width:10px;height:16px;border-radius:3px;animation:fall 2.2s linear forwards}.cake{position:relative;width:160px;height:120px;margin:12px auto}.cake-layer{position:absolute;bottom:0;width:160px;height:80px;background:linear-gradient(#fda4af,#fb7185);border-radius:12px}.cake-cut{position:absolute;bottom:0;left:0;width:80px;height:80px;background:linear-gradient(#fecdd3,#fda4af);border-radius:12px 0 0 12px}.candle{position:absolute;bottom:80px;left:72px;width:16px;height:30px;background:#60a5fa;border-radius:4px}.flame{position:absolute;bottom:110px;left:76px;width:8px;height:12px;background:#facc15;border-radius:50%;animation:flicker .6s infinite alternate}@keyframes flicker{0%{transform:scale(1);opacity:.9}to{transform:scale(1.3);opacity:1}}.cake-name{position:absolute;bottom:28px;width:100%;text-align:center;font-weight:700;color:#fff;letter-spacing:1px}.fireworks{position:fixed;inset:0;pointer-events:none}.spark{position:absolute;width:6px;height:6px;border-radius:50%;background:#facc15;left:50%;top:50%;animation:boom .9s ease-out forwards}.spark:nth-child(odd){background:#fb7185}.spark:nth-child(3n){background:#38bdf8}.spark:nth-child(4n){background:#4ade80}@keyframes boom{to{transform:translate(calc((rand() - .5)*400px),calc((rand() - .5)*400px));opacity:0}}.cake-cover{position:absolute;bottom:0;left:0;width:160px;height:80px;background:linear-gradient(#fb7185,#e11d48);border-radius:12px;z-index:3}.ask-row{display:flex;gap:16px;justify-content:center;margin:16px 0}.btn.yes{background:#16a34a}.btn.no{background:#ef4444;position:relative}img{box-shadow:0 20px 60px #0000002e}.popup video{max-height:65vh;object-fit:contain;border-radius:14px}.sparkle-bg{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:1}.sparkle-dot{position:absolute;bottom:-10px;width:6px;height:6px;border-radius:50%;opacity:0;animation:sparkleFloat linear infinite}.sparkle-dot:nth-child(odd){background:#facc15}.sparkle-dot:nth-child(3n){background:#38bdf8}.sparkle-dot:nth-child(4n){background:#fb7185}.sparkle-dot:nth-child(5n){background:#4ade80}@keyframes sparkleFloat{0%{transform:translateY(0) scale(.6);opacity:0}20%{opacity:1}to{transform:translateY(-110vh) scale(1.5);opacity:0}}
