.fx{--fx-a:var(--th-accent);--fx-s:var(--th-soft);--fx-k:var(--th-ink);pointer-events:none}body:not(.theme) .fx{--fx-a:var(--piece-i);--fx-s:color-mix(in srgb, var(--piece-i) 22%, var(--sheet));--fx-k:color-mix(in srgb, var(--piece-i) 60%, var(--ink))}.fx--freeze i,.fx--hail::after{position:absolute;width:9px;height:9px;margin:-4.5px;background:linear-gradient(135deg, var(--fx-s) 0 22%, var(--fx-a) 0 55%, var(--fx-k) 0);transform:rotate(45deg) scale(var(--z, 1))}[data-fx="freeze"],.pl-pipe[data-fx],.co-check-block[data-fx],.clear-line:has(> .fx){position:relative}.fx--freeze{position:absolute;z-index:1;left:0;right:0;bottom:-8px;height:8px}.co-table .fx--freeze{bottom:-4px}.fx--freeze::before{content:"";position:absolute;left:0;right:0;top:3px;height:2px;background:var(--fx-a);box-shadow:0 1px 0 var(--fx-s);transform-origin:0 50%}.fx--freeze i{top:4px;left:calc(var(--k, 0) * 20% + 10%)}.fx--freeze i:nth-child(2){--k:1;--z:.7}.fx--freeze i:nth-child(3){--k:2}.fx--freeze i:nth-child(4){--k:3;--z:.7}.fx--freeze i:nth-child(5){--k:4}.fx--ice-shard{position:absolute;left:34px;bottom:12px;width:8px;height:8px;margin:-4px;background:var(--fx-s);transform:rotate(45deg);opacity:0}@media (min-width: 900px){.fx--ice-shard{left:auto;right:16px;bottom:auto;top:50%}}.fx--hail{position:absolute;inset:0;opacity:0}.is-cleared > .fx--hail{opacity:1}.fx--hail::before{content:"";position:absolute;inset:0;background:linear-gradient(var(--fx-s) 0 34%, var(--fx-a) 0);transform-origin:50% 100%;transform:scaleY(.25)}.fx--hail::after{content:"";left:calc((100% - 27px) * .65 + 18px);top:calc(100% - 2px)}.co-check-block > .fx--hail{opacity:1;bottom:auto;height:7px;background:var(--fx-s);clip-path:polygon(0 0, 100% 0, 100% 55%, 84% 100%, 67% 55%, 50% 100%, 33% 55%, 16% 100%, 0 55%)}.co-check-block > .fx--hail::before,.co-check-block > .fx--hail::after{content:none}@media (prefers-reduced-motion: no-preference){.fx-go .fx--freeze::before{animation:fx-frost var(--m-clear) steps(8, end) calc(var(--fx-i) * var(--m-lock)) both}.fx-go .fx--freeze i{animation:fx-gem var(--m-lock) steps(3, end) calc(var(--fx-i) * var(--m-lock) + var(--k, 0) * var(--m-clear) / 5 + var(--m-tap)) both}@keyframes fx-frost{from{transform:scaleX(0)}}@keyframes fx-gem{0%{opacity:0;transform:rotate(45deg) scale(0)}34%{opacity:1;transform:rotate(45deg) scale(1.6)}}.pl-pipe.fx-go i{animation:fx-shard var(--m-lock) steps(4, end) calc(var(--n, 0) * 60ms) both}.pl-pipe i:nth-child(2){--n:1}.pl-pipe i:nth-child(3){--n:2}.fx-go .fx--ice-shard{animation:fx-glint var(--m-flash) steps(2, end) calc(120ms + var(--m-lock))}@keyframes fx-shard{0%{opacity:0;transform:translateY(calc(var(--drop) * -1)) rotate(45deg) scale(.6)}25%{opacity:1}75%{transform:translateY(2px) rotate(45deg) scale(.6)}}@keyframes fx-glint{0%{opacity:1;transform:rotate(45deg) scale(2)}100%{opacity:0;transform:rotate(45deg) scale(.5)}}.is-cleared > .fx--hail::before{animation:fx-band calc(var(--m-flash) + var(--m-clear)) steps(4, end) var(--m-lock) both}.is-cleared > .fx--hail::after{animation:fx-hail var(--m-lock) steps(3, end) both}@keyframes fx-band{0%,34%{transform:none}0%{opacity:0}34%{opacity:1}}@keyframes fx-hail{0%{opacity:0;transform:translateY(calc(var(--drop) * -1)) rotate(45deg) scale(1.5)}34%{opacity:1}}.fx-go.co-check-block > .fx--hail{animation:fx-cap var(--m-lock) steps(4, end) calc(var(--fx-i) * 60ms) both}@keyframes fx-cap{0%{opacity:0;transform:translateY(calc(var(--drop) * -1))}25%{opacity:1}75%{transform:translateY(1px)}}}