@keyframes ffp-lidbump{0%,58%,to{transform:translateY(0) rotate(0deg)}64%{transform:translateY(-9px) rotate(-3deg)}72%{transform:translateY(-3px) rotate(2deg)}80%{transform:translateY(-7px) rotate(-2deg)}90%{transform:translateY(-1px) rotate(0deg)}}@keyframes ffp-wiggle{0%,58%,to{transform:translateY(0) rotate(0deg)}62%{transform:translateY(-3px) rotate(-5deg)}68%{transform:translateY(-1px) rotate(4.5deg)}74%{transform:translateY(-4px) rotate(-4deg)}80%{transform:translateY(0) rotate(3deg)}86%{transform:translateY(-2px) rotate(-2deg)}92%{transform:translateY(0) rotate(1deg)}}@keyframes ffp-hint{0%,55%,to{opacity:0;transform:translate(-50%,4px) scale(.94)}66%,82%{opacity:1;transform:translate(-50%) scale(1)}}@keyframes ffp-tick{0%,to{opacity:.55}50%{opacity:1}}@keyframes ffp-rise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes ffp-sheet-in{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes ffp-sheet-out{0%{transform:translateY(0)}to{transform:translateY(100%)}}@keyframes ffp-card-out{to{opacity:0;transform:translateY(12px)}}.ffp-sheet-enter{animation:ffp-sheet-in .32s cubic-bezier(.2,.8,.3,1) both}.ffp-sheet-exit{animation:ffp-sheet-out .26s ease-in both}@media (min-width:640px){.ffp-sheet-enter{animation:ffp-rise .28s ease-out both}.ffp-sheet-exit{animation:ffp-card-out .2s ease-in both}}.ffp-gift-wrap{flex:0 0 auto;animation:ffp-wiggle 2.8s ease-in-out infinite}.ffp-gift,.ffp-gift-wrap{position:relative;transform-origin:50% 100%}.ffp-gift__hint{position:absolute;left:50%;top:-16px;transform:translate(-50%);z-index:6;padding:5px 9px;border-radius:999px;background:#181a1b;color:#fff;font-size:11px;font-weight:700;letter-spacing:-.03em;white-space:nowrap;animation:ffp-hint 2.8s ease-in-out infinite}.ffp-gift__body{position:absolute;left:50%;bottom:0;z-index:3;width:126px;height:88px;margin-left:-63px;border-radius:18px;background:#e2f4ff;box-shadow:inset 0 -8px 14px rgba(75,130,239,.14),0 10px 20px rgba(45,58,80,.14);overflow:hidden}.ffp-gift__lid{position:absolute;left:50%;bottom:84px;z-index:4;width:148px;height:30px;margin-left:-74px;border-radius:15px;background:#cbe7fb;box-shadow:0 6px 14px rgba(45,58,80,.16);transform-origin:50% 100%;animation:ffp-lidbump 2.8s ease-in-out infinite}.ffp-gift__ribbon{position:absolute;left:50%;top:0;bottom:0;width:22px;margin-left:-11px;background:#f7504f}.ffp-gift__bow-ring{position:absolute;top:-26px;width:38px;height:30px;border-radius:50%;border:6px solid #f7504f;box-sizing:border-box;background:transparent}.ffp-gift__bow-ring--left{left:50%;margin-left:-38px;transform:rotate(-4deg)}.ffp-gift__bow-ring--right{left:50%;margin-left:0;transform:rotate(4deg)}.ffp-gift__knot{position:absolute;left:50%;top:-10px;width:14px;height:14px;margin-left:-7px;border-radius:50%;background:#f7504f;z-index:1}.ffp-gift__spark{position:absolute;left:50%;bottom:118px;margin-left:46px;width:22px;height:22px;z-index:5;background:#ffb941;clip-path:polygon(50% 0,60% 40%,100% 50%,60% 60%,50% 100%,40% 60%,0 50%,40% 40%);animation:ffp-tick 1.6s ease-in-out infinite}@media (prefers-reduced-motion:reduce){.ffp-card,.ffp-countdown__dot,.ffp-gift-wrap,.ffp-gift__hint,.ffp-gift__lid,.ffp-sheet-enter,.ffp-sheet-exit{animation:none!important}}@keyframes ffp-ticket-sway{0%,to{transform:rotate(5deg) translateY(-2px)}50%{transform:rotate(-5deg) translateY(2px)}}.ffp-ticket-sway{width:148px;flex:0 0 auto;transform-origin:50% 0;animation:ffp-ticket-sway 2.8s ease-in-out infinite}.ffp-ticket{position:relative;width:148px;height:64px;display:flex;overflow:hidden;border-radius:12px;background:#fff1f0;border:1px solid #ffdad8;box-sizing:border-box}.ffp-ticket__stub{width:32px;flex:0 0 auto;background:#f7504f;display:flex;align-items:center;justify-content:center}.ffp-ticket__stub span{writing-mode:vertical-rl;font-size:9px;font-weight:700;color:#fff;letter-spacing:.08em;line-height:1}.ffp-ticket__main{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:2px}.ffp-ticket__amount{font-size:19px;font-weight:800;color:#181a1b;line-height:1.05;letter-spacing:-.04em}.ffp-ticket__amount i{font-style:normal;font-size:12px;font-weight:700}.ffp-ticket__dday{font-size:10.5px;font-weight:700;color:#f7504f}.ffp-ticket__notch{position:absolute;left:26px;width:12px;height:12px;border-radius:50%;background:#fff;border:1px solid #ffdad8;box-sizing:border-box}.ffp-ticket__notch--top{top:-6px}.ffp-ticket__notch--bottom{bottom:-6px}.ffp-float__ticket{display:flex;align-items:center;justify-content:center;padding:0}@media (prefers-reduced-motion:reduce){.ffp-ticket-sway{animation:none!important}}.ffp-card{background:#fff7ee;border:1px solid #ffe0c4;border-radius:18px;box-shadow:0 6px 20px rgba(12,12,13,.1);animation:ffp-rise .28s ease-out both}.ffp-x{position:absolute;top:10px;right:10px;z-index:3;width:28px;height:28px;border-radius:50%;background:#f7f7f7;border:none;justify-content:center;padding:0;cursor:pointer}.ffp-countdown,.ffp-x{display:flex;align-items:center}.ffp-countdown{gap:6px;font-size:12px;font-weight:700;color:#f7504f}.ffp-countdown__dot{width:5px;height:5px;border-radius:50%;background:#f7504f;animation:ffp-tick 1.2s ease-in-out infinite;flex:0 0 auto}.ffp-title{font-size:14.5px;font-weight:800;line-height:1.38;color:#181a1b}.ffp-body,.ffp-title{margin:0;word-break:keep-all;white-space:pre-line}.ffp-body{font-size:12px;line-height:1.55;color:#56606b}.ffp-cta{width:100%;height:46px;border-radius:999px;color:#fff;font-size:14.5px;font-weight:700;border:none;cursor:pointer;letter-spacing:-.03em}.ffp-cta--grad{background:linear-gradient(135deg,#349bea,#6c00ff)}.ffp-cta--coral{background:#f7504f}.ffp-cta:hover{filter:brightness(1.08)}.ffp-sub{width:100%;background:none;border:none;color:#8996a3;font-size:13px;font-weight:500;cursor:pointer;padding:2px 0;letter-spacing:-.03em}.ffp-float{position:fixed;z-index:60;left:0;right:0;bottom:0;margin:0 auto;width:100%;max-width:430px;background:#fff;border-radius:20px 20px 0 0;padding:8px 16px 16px;box-shadow:0 -8px 28px rgba(12,12,13,.18);display:flex;flex-direction:column}.ffp-float-backdrop{position:fixed;inset:0;z-index:59;background:transparent;border:none;padding:0;cursor:default}.ffp-float__grabber{display:block;width:88px;height:18px;margin:-6px auto 2px;border:none;background:none;padding:0;cursor:pointer;position:relative}.ffp-float__grabber:after{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:40px;height:4px;border-radius:999px;background:#d5dde5}.ffp-float__row{display:flex;align-items:center;gap:12px}.ffp-float__row--ticket{gap:14px}.ffp-float__row--ticket .ffp-float__text{padding-right:16px}.ffp-float__text{flex:1;padding-right:20px}.ffp-float__actions,.ffp-float__text{display:flex;flex-direction:column;gap:4px}.ffp-float__actions{margin-top:12px}.ffp-float .ffp-title{font-size:15.5px}.ffp-float .ffp-body{font-size:12.5px}.ffp-float .ffp-cta{height:46px;font-size:14.5px}.ffp-float__chip{width:80px;height:74px;flex:0 0 auto;display:flex;align-items:flex-end;justify-content:center}.ffp-float .ffp-x{display:none}@media (min-width:640px){.ffp-float .ffp-x{display:flex}.ffp-float-backdrop{display:none}.ffp-float{left:0;right:0;bottom:16px;width:calc(100vw - 24px);max-width:360px;border-radius:18px;border:1px solid #e9eff5;padding:14px;box-shadow:0 6px 20px rgba(12,12,13,.1)}.ffp-float__grabber{display:none}.ffp-float .ffp-title{font-size:14.5px}.ffp-float .ffp-body{font-size:12px}}.ffp-modal-card{width:300px;max-width:calc(100vw - 40px);background:#fff;border-radius:22px;overflow:hidden;box-shadow:0 10px 30px rgba(12,12,13,.18);position:relative}.ffp-modal-title{font-size:20px;font-weight:800;line-height:1.38;color:#181a1b}.ffp-modal-body,.ffp-modal-title{margin:0;text-align:center;white-space:pre-line;word-break:keep-all}.ffp-modal-body{font-size:13.5px;line-height:1.6;color:#56606b}.ffp-modal-cta{width:100%;height:52px;border-radius:999px;background:linear-gradient(135deg,#349bea,#6c00ff);color:#fff;font-size:16px;font-weight:700;border:none;cursor:pointer;letter-spacing:-.03em}.ffp-modal-cta:hover{filter:brightness(1.08)}.ffp-modal-gift{width:100%;height:188px;display:flex;align-items:flex-end;justify-content:center;margin:4px 0;padding:0;border:none;background:none;cursor:pointer;overflow:visible}