:root{--pink:#ff8fb7;--pink-soft:#ffe3ee;--pink-deep:#e0558a;--green:#3ddc97;--green-deep:#1f9d6b;--ink:#3a2a33}*{box-sizing:border-box}body{margin:0;font-family:system-ui,sans-serif;color:var(--ink);background:linear-gradient(135deg,var(--pink-soft),#dcf8ea)}.page,body{min-height:100vh}.page{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:20px;overflow:hidden}.card,.page{position:relative}.card{width:min(560px,100%);background:#fff;border-radius:28px;padding:24px;text-align:center;border:4px solid var(--pink);box-shadow:0 12px 0 var(--green);z-index:1}.bubble{background:var(--pink-soft);border:3px solid var(--green);border-radius:18px;padding:10px 14px;font-weight:700;min-height:56px;display:flex;align-items:center;justify-content:center;animation:pop .35s ease}.avatar{width:200px;height:220px;margin-top:8px}.float{animation:float 3s ease-in-out infinite}.shake{animation:shake .4s ease-in-out infinite}.tear{animation:tear 1.1s ease-in infinite;transform-box:fill-box}.tear.t2{animation-delay:.5s}.arena{position:relative;height:150px;margin-top:8px}.btn{border:0;border-radius:999px;padding:14px 28px;font-size:18px;font-weight:800;cursor:pointer;text-decoration:none;display:inline-block;transition:transform .15s}.btn:hover{transform:scale(1.06)}.btn:disabled{opacity:.5;cursor:not-allowed}.yes{background:var(--green);color:#fff;box-shadow:0 5px 0 var(--green-deep)}.ghost{background:var(--pink-soft);color:var(--pink-deep)}.arena .yes{left:12%;animation:pulse 1.4s ease-in-out infinite}.arena .yes,.no{position:absolute;top:50%;transform:translateY(-50%)}.no{left:62%;background:var(--pink);color:#fff;box-shadow:0 5px 0 var(--pink-deep);width:110px;transition:left .35s cubic-bezier(.34,1.56,.64,1),top .35s cubic-bezier(.34,1.56,.64,1),transform .15s}.no.near{background:#ffb3cd}.panel{margin-top:14px;animation:pop .35s ease}.drop{display:flex;align-items:center;justify-content:center;min-height:150px;border:3px dashed var(--pink);border-radius:18px;background:var(--pink-soft);cursor:pointer;font-weight:700;color:var(--pink-deep);overflow:hidden}.drop img{max-width:100%;max-height:220px}.row{display:flex;gap:10px;justify-content:center;margin-top:12px}.err{color:#c0264f;font-weight:700}.link{color:var(--green-deep);font-weight:800;z-index:1}.hearts span{position:absolute;bottom:-40px;font-size:28px;opacity:.6;animation:rise 7s linear infinite}.gallery{justify-content:flex-start}.grid{columns:220px 3;column-gap:12px;width:min(1000px,100%)}.grid img{width:100%;margin-bottom:12px;border-radius:16px;border:3px solid var(--pink);display:block}@keyframes float{50%{transform:translateY(-8px)}}@keyframes shake{25%{transform:translateX(-3px) rotate(-1deg)}75%{transform:translateX(3px) rotate(1deg)}}@keyframes tear{0%{transform:translateY(0);opacity:0}20%{opacity:1}to{transform:translateY(46px);opacity:0}}@keyframes pop{0%{transform:scale(.85);opacity:0}}@keyframes pulse{50%{transform:translateY(-50%) scale(1.08)}}@keyframes rise{to{transform:translateY(-110vh) rotate(25deg)}}