.fx{pointer-events:none;z-index:55;position:fixed;inset:0;overflow:hidden}.fx-p{will-change:transform;font-style:normal;display:block;position:absolute}.fx-p svg,.fx-p>span{width:100%;display:block}.fx-p svg{height:auto;overflow:visible}.fx-glow{background:radial-gradient(ellipse 90% 45% at 50% 105%,var(--glow),transparent 70%);position:absolute;inset:0}.m-fall{animation:linear infinite fx-fall;top:-60px}.m-fall>span{animation:3.6s ease-in-out infinite alternate fx-sway}@keyframes fx-fall{0%{opacity:0;transform:translateY(-6vh)}8%{opacity:.95}90%{opacity:.9}to{opacity:0;transform:translateY(110vh)}}@keyframes fx-sway{0%{transform:translateX(calc(var(--sway,30px) * -.5)) rotate(calc(-25deg * var(--spin,1)))}to{transform:translateX(calc(var(--sway,30px) * .5)) rotate(calc(25deg * var(--spin,1)))}}.m-rise{animation:linear infinite fx-rise;bottom:-90px}.m-rise>span{animation:5s ease-in-out infinite alternate fx-sway}@keyframes fx-rise{0%{opacity:0;transform:translateZ(0)}10%{opacity:.95}75%{opacity:.85}to{opacity:0;transform:translateY(-118vh)}}.m-float{animation:linear infinite fx-drift;left:0}.m-float>span{animation:3.2s ease-in-out infinite alternate fx-bob}@keyframes fx-drift{0%{transform:translate(-12vw)}to{transform:translate(112vw)}}@keyframes fx-bob{0%{transform:translateY(0)rotate(-3deg)}to{transform:translateY(-6px)rotate(3deg)}}.m-burst{opacity:0;animation:ease-out infinite fx-burst}@keyframes fx-burst{0%{opacity:0;transform:scale(.1)}12%{opacity:1}55%{opacity:.85;transform:scale(1)}to{opacity:0;transform:scale(1.12)}}.m-twinkle{animation:ease-in-out infinite fx-twinkle}@keyframes fx-twinkle{0%,to{opacity:.1;transform:scale(.6)}50%{opacity:.95;transform:scale(1)}}.m-hang{top:calc(-6px + var(--drop,0px));transform-origin:50% 0;animation:4s ease-in-out infinite alternate fx-swing}@keyframes fx-swing{0%{transform:rotate(-5deg)}to{transform:rotate(5deg)}}.fx-mother .fx-p,.fx-snow .fx-p,.fx-songkran .fx-p{filter:drop-shadow(0 1px 2px #14326e59)}.fx-flicker{animation:1.4s ease-in-out infinite alternate fx-flick}@keyframes fx-flick{0%{opacity:.55}to{opacity:1}}.fx-moon{opacity:.92;background:radial-gradient(circle at 38% 36%,#fffdf0,#fcefc2 55%,#f2d88a);border-radius:50%;width:64px;height:64px;top:96px;right:3.5%;box-shadow:0 0 40px 14px #ffecaa73,0 0 120px 40px #ffdc8c2e}.fx-moon,.fx-water,.fx-water:after{position:absolute}.fx-water{background:linear-gradient(#0000,#1e5aaa24 40%,#143c823d);height:9vh;min-height:56px;bottom:0;left:0;right:0;-webkit-mask:linear-gradient(#0000,#000 35%);mask:linear-gradient(#0000,#000 35%)}.fx-water:after{content:"";background:repeating-linear-gradient(90deg,#0000 0 38px,#ffffff38 0 60px,#0000 0 120px);height:2px;animation:9s linear infinite fx-shimmer;inset:55% 0 0}@keyframes fx-shimmer{0%{background-position:0 0}to{background-position:240px 0}}
