.ipo-fx{position:fixed;right:18px;bottom:84px;z-index:5000;pointer-events:none;display:flex;align-items:center;gap:12px;box-sizing:border-box;width:min(310px,calc(100vw - 28px));min-height:88px;padding:12px 16px;border:1px solid #d6ae4e;border-radius:16px;background:linear-gradient(135deg,#244b4ff5,#102b30f5);box-shadow:0 12px 38px #0006;opacity:0;transform:translateY(10px);transition:opacity .2s,transform .2s}
.ipo-fx img{display:block;flex:none;width:60px;height:60px;filter:drop-shadow(0 4px 7px #0006)}
.ipo-fx strong,.ipo-fx span{display:block;line-height:1.35}
.ipo-fx strong{font:400 20px "Paytone One","Be Vietnam Pro",sans-serif;color:#f2c14e}
.ipo-fx span{margin-top:3px;font:500 12px "Be Vietnam Pro",sans-serif;color:#ecf1e8}
.ipo-fx.ipo-fx--active{opacity:1;transform:translateY(0)}
.ipo-fx.ipo-fx--active img{animation:ipo-fx-symbol .8s ease-out both}
.ipo-fx[data-kind="ipo"]{top:12%;bottom:auto;right:auto;left:50%;width:min(410px,calc(100vw - 28px));padding:18px 22px;transform:translate(-50%,10px);border-color:#ffe09a;box-shadow:0 0 0 5px #f2c14e15,0 18px 60px #0008}
.ipo-fx[data-kind="ipo"].ipo-fx--active{transform:translate(-50%,0)}
.ipo-fx[data-kind="ipo"] img{width:80px;height:80px}
.ipo-fx[data-kind="ipo"] strong{font-size:24px}
.ipo-fx-particles{position:fixed;inset:0;z-index:4999;pointer-events:none;overflow:hidden;contain:strict}
.ipo-fx-particles[hidden]{display:none}
.ipo-fx-particles i{position:absolute;left:var(--x);top:-18px;width:7px;height:12px;opacity:0;border-radius:1px;animation:ipo-paper var(--fall) ease-in var(--delay) both}
@keyframes ipo-paper{0%{opacity:0;transform:translate3d(0,0,0) rotate(0)}8%{opacity:1}85%{opacity:.9}100%{opacity:0;transform:translate3d(var(--drift),82vh,0) rotate(var(--turn))}}
@keyframes ipo-fx-symbol{0%{transform:scale(.7) rotate(-9deg)}35%{transform:scale(1.12) rotate(5deg)}65%,100%{transform:scale(1) rotate(0)}}
@media(max-width:600px){.ipo-fx{right:12px;bottom:88px;gap:10px;min-height:76px;padding:10px 12px}.ipo-fx img{width:50px;height:50px}.ipo-fx strong{font-size:18px}.ipo-fx[data-kind="ipo"]{top:11%;padding:14px}.ipo-fx[data-kind="ipo"] img{width:64px;height:64px}.ipo-fx[data-kind="ipo"] strong{font-size:21px}}
@media(prefers-reduced-motion:reduce){.ipo-fx{transition:none}.ipo-fx.ipo-fx--active img{animation:none}.ipo-fx-particles{display:none}}
