.firecracker-overlay{z-index:9999;pointer-events:none;background:#000000d9;position:fixed;inset:0;overflow:hidden}.firework-burst{transform-origin:50%;width:100px;height:100px;position:absolute}.particle{background:hsl(var(--hue),100%,60%);opacity:.9;--dx:calc((50% - 100%)*(1 + (var(--rand-x,0)*4)));--dy:calc((50% - 100%)*(1 + (var(--rand-y,0)*4)));width:10px;height:10px;animation:1.6s ease-out forwards fireworkBurst;animation-delay:calc(var(--j)*1s);border-radius:50%;position:absolute}.firework-burst span{--dx:0px;--dy:0px;animation-delay:0s}@keyframes fireworkBurst{0%{opacity:1;transform:translate(0)scale(1)}50%{transform:translate(var(--dx),var(--dy))scale(3);opacity:1}to{transform:translate(var(--dx),var(--dy))scale(0);opacity:0}}.blast-message{color:#fff;z-index:10;text-align:center;font-size:2.5rem;font-weight:700;animation:.6s ease-in-out forwards fadeText;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes fadeText{0%{opacity:0;transform:translate(-50%,-60%)}to{opacity:1;transform:translate(-50%,-50%)}}.animate-from-bottom{will-change:transform,opacity;backface-visibility:hidden;transition:transform .3s,opacity .3s;display:block}.animate-from-bottom img{object-fit:cover;will-change:transform,opacity;width:100%;height:auto;display:block}@keyframes waveBounce{0%{transform:translateY(0)rotate(0)}25%{transform:translateY(-8px)rotate(-2deg)}50%{transform:translateY(0)rotate(2deg)}75%{transform:translateY(-5px)rotate(-1deg)}to{transform:translateY(0)rotate(0)}}.wave-bounce{transform-origin:50%;animation:2.5s ease-in-out infinite waveBounce}@keyframes pulsePop{0%{opacity:1;transform:scale(1)rotate(0)}30%{opacity:.9;transform:scale(1.2)rotate(3deg)}60%{opacity:1;transform:scale(.95)rotate(-3deg)}to{opacity:1;transform:scale(1)rotate(0)}}.pulse-pop{transform-origin:50%;animation:1.8s ease-in-out infinite pulsePop}@keyframes swirlPointOut{0%{opacity:1;transform:rotate(0)scale(1)}30%{transform:rotate(10deg)scale(1.05)translate(-2px)}60%{transform:rotate(-10deg)scale(.98)translate(2px)}to{transform:rotate(0)scale(1)translate(0)}}.swirl-point-out{transform-origin:50%;animation:2.5s ease-in-out infinite swirlPointOut}@media (max-width:576px){.contact_underline{width:150px!important}}@media (max-width:1024px){.contact_underline{width:200px}}@media (max-width:1200px){.contact_underline{width:250px}}#smooth-wrapper{height:100%;overflow:hidden}#smooth-content{will-change:transform}
