.gift-scene{--box-light:#ffa060;--box-base:#ff8a3d;--box-dark:#e86f22;--box-ribbon:#c9b8ff;--box-ribbon-light:#e6ddff;cursor:pointer;-webkit-tap-highlight-color:transparent;width:260px;height:250px;position:relative}.gift-idle{animation:2.6s ease-in-out infinite gift-wobble}.gift-box{background:linear-gradient(160deg, var(--box-light) 0%, var(--box-base) 45%, var(--box-dark) 100%);border-radius:22px;width:220px;height:160px;position:absolute;bottom:0;left:20px;box-shadow:inset 0 -14px #2a1b3d1f,0 30px 60px -20px #0000008c}.gift-ribbon-v{background:linear-gradient(90deg, var(--box-ribbon), var(--box-ribbon) 40%, var(--box-ribbon-light));width:38px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.gift-lid{background:linear-gradient(170deg, var(--box-light) 0%, var(--box-base) 60%, var(--box-dark) 100%);transform-origin:30% 100%;border-radius:18px;width:244px;height:58px;position:absolute;bottom:148px;left:8px;box-shadow:inset 0 -8px #2a1b3d24}.gift-lid .gift-ribbon-v{border-radius:4px}.gift-bow{width:150px;height:70px;position:absolute;bottom:48px;left:50%;transform:translate(-50%)}.gift-loop{border:15px solid var(--box-ribbon);border-radius:50%/60% 60% 40% 40%;width:70px;height:52px;position:absolute;bottom:6px}.gift-loop-left{left:2px;transform:rotate(-22deg)}.gift-loop-right{right:2px;transform:rotate(22deg)}.gift-knot{background:var(--box-ribbon);filter:brightness(.92);border-radius:10px;width:30px;height:30px;position:absolute;bottom:4px;left:50%;transform:translate(-50%)}.gift-shadow{filter:blur(8px);background:#00000059;border-radius:50%;width:200px;height:26px;position:absolute;bottom:-22px;left:50%;transform:translate(-50%)}.gift-opening .gift-box{animation:.45s ease-in-out gift-shake,.6s ease-in .75s forwards gift-sink}.gift-opening .gift-lid{animation:.85s cubic-bezier(.3,.7,.4,1) .4s forwards gift-lidOff}.gift-opening .gift-shadow{animation:.5s .8s forwards gift-fade}.gift-burst{opacity:0;pointer-events:none;background:radial-gradient(circle,#fff6eff2 0%,#ffbf8c99 35%,#c9b8ff00 70%);border-radius:50%;width:240px;height:240px;margin:-120px 0 0 -120px;animation:1.1s ease-out .55s forwards gift-burst;position:absolute;top:50%;left:50%}.gift-rays{opacity:0;pointer-events:none;background:repeating-conic-gradient(#fff6ef1a 0deg 8deg,#0000 8deg 24deg);width:720px;height:720px;margin:-360px 0 0 -360px;animation:.8s ease-out .6s forwards gift-raysIn,30s linear infinite gift-spin;position:absolute;top:50%;left:50%;-webkit-mask-image:radial-gradient(circle,#000 0%,#0000 65%);mask-image:radial-gradient(circle,#000 0%,#0000 65%)}.gift-confetti{pointer-events:none;position:absolute;top:45%;left:50%}.gift-piece{width:var(--w);height:var(--h);background:var(--c);opacity:0;animation:gift-confetti var(--t) var(--d) cubic-bezier(.15, .6, .35, 1) forwards;border-radius:3px;position:absolute}.gift-certificate{animation:1s cubic-bezier(.2,.9,.3,1.15) both gift-certIn}.gift-details{animation:.7s ease-out .7s both gift-rise}.gift-sparkle{animation:5s ease-in-out infinite gift-float}@keyframes gift-wobble{0%,to{transform:rotate(0)translateY(0)}20%{transform:rotate(-3deg)translateY(-6px)}40%{transform:rotate(3deg)translateY(0)}55%{transform:rotate(-1.5deg)translateY(-3px)}70%{transform:rotate(0)translateY(0)}}@keyframes gift-shake{0%,to{transform:translate(0)rotate(0)}20%{transform:translate(-8px)rotate(-3deg)}40%{transform:translate(8px)rotate(3deg)}60%{transform:translate(-6px)rotate(-2deg)}80%{transform:translate(5px)rotate(1deg)}}@keyframes gift-lidOff{0%{transform:translate(0)rotate(0)}35%{opacity:1;transform:translate(-10px,-60px)rotate(-12deg)}to{opacity:0;transform:translate(-140px,-320px)rotate(-60deg)}}@keyframes gift-sink{to{opacity:0;transform:translateY(90px)scale(.85)}}@keyframes gift-fade{to{opacity:0}}@keyframes gift-burst{0%{opacity:0;transform:scale(.2)}30%{opacity:1}to{opacity:0;transform:scale(4)}}@keyframes gift-raysIn{0%{opacity:0}to{opacity:1}}@keyframes gift-spin{to{rotate:360deg}}@keyframes gift-confetti{0%{opacity:1;transform:translate(0)rotate(0)}70%{opacity:1}to{opacity:0;transform:translate(var(--x), var(--y)) rotate(var(--r))}}@keyframes gift-certIn{0%{opacity:0;transform:translateY(160px)scale(.3)rotate(-8deg)}60%{opacity:1}to{opacity:1;transform:none}}@keyframes gift-rise{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}@keyframes gift-float{0%,to{transform:translateY(0) rotate(var(--rot,0deg))}50%{transform:translateY(-12px) rotate(var(--rot,0deg))}}@media (prefers-reduced-motion:reduce){.gift-idle,.gift-rays,.gift-sparkle,.gift-certificate,.gift-details{animation:none}}
