.fxlab-wrap{width:100%;max-width:820px;color:var(--cream);flex-direction:column;gap:18px;display:flex}.fx-head{text-align:center;flex-direction:column;gap:6px;display:flex}.fx-head h1{font-family:var(--font-pixel), monospace;color:var(--gold);text-shadow:2px 2px #00000059;margin:0;font-size:clamp(20px,5vw,28px)}.fx-head p{color:var(--parch);margin:0;font-size:14px}.fx-head a{color:var(--gold);font-size:14px;text-decoration:underline}.fx-toggles{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.fx-toggle{font-family:var(--font-pixel), monospace;letter-spacing:.5px;border:2px solid var(--mortar,#0e3f22);color:var(--parch);cursor:pointer;background-color:#00000040;border-radius:4px;padding:8px 12px;font-size:11px}.fx-toggle[data-on=true]{background-color:var(--gold);color:#1a1a1a}.fxlab{grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:22px 14px;display:grid}[data-size=actual] .fxlab{grid-template-columns:repeat(auto-fill,minmax(78px,1fr));gap:16px 10px}[data-size=actual] .fx-stage{perspective:160px;width:26px;height:26px}.fx-card{flex-direction:column;align-items:center;gap:7px;display:flex}.fx-fire{cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;padding:0}.fx-fire:active{transform:translateY(1px)}.fx-reject{font-family:var(--font-pixel), monospace;letter-spacing:.5px;border:2px solid var(--mortar,#0e3f22);color:var(--parch);cursor:pointer;opacity:.7;background-color:#00000047;border-radius:3px;padding:3px 8px;font-size:9px}.fx-reject:hover{opacity:1}.fx-card.nope{opacity:.5;filter:grayscale(.3)}.fx-card.nope .fx-reject{opacity:1;border-color:var(--gold);color:var(--gold)}.fx-tier{flex-direction:column;gap:12px;display:flex}.fx-tier-head{border-bottom:2px solid var(--mortar,#0e3f22);align-items:baseline;gap:10px;padding-bottom:6px;display:flex}.fx-tier-title{font-family:var(--font-pixel), monospace;letter-spacing:1px;color:var(--gold);font-size:15px}.fx-tier-fx{font-family:var(--font-hand), cursive;color:var(--parch);font-size:14px}.fx-divider{color:var(--parch);font-family:var(--font-pixel), monospace;letter-spacing:1px;align-items:center;gap:12px;margin-top:8px;font-size:12px;display:flex}.fx-divider:before,.fx-divider:after{content:"";background:var(--mortar,#0e3f22);flex:1;height:2px}.fxlab-nope{margin-top:4px}.fx-stage{perspective:560px;width:90px;height:90px;position:relative;overflow:visible}.fx-name{font-family:var(--font-pixel), monospace;letter-spacing:.5px;color:var(--cream);text-align:center;font-size:10px}.fx-plate{background-image:linear-gradient(150deg,#fff3,#fff0 42%),linear-gradient(330deg,#0000004d,#0000 42%)}.fx-tile{width:100%;height:100%;box-shadow:var(--shadow-pix);position:relative;overflow:hidden}.fx-tile.d3{transform-style:preserve-3d;overflow:visible}.fx-ov{box-shadow:var(--shadow-pix);position:absolute;inset:0}.fx-flip3d{transform-style:preserve-3d;position:absolute;inset:0}.fx-flip3d.y{animation:.55s cubic-bezier(.5,0,.3,1) forwards ofcoin}.fx-flip3d.x{animation:.55s cubic-bezier(.5,0,.3,1) forwards ofcard}@keyframes ofcoin{0%{transform:rotateY(0)}to{transform:rotateY(180deg)}}@keyframes ofcard{0%{transform:rotateX(0)}to{transform:rotateX(180deg)}}.fx-face{backface-visibility:hidden;box-shadow:var(--shadow-pix);position:absolute;inset:0}.fx-face.by{transform:rotateY(180deg)}.fx-face.bx{transform:rotateX(180deg)}.of-spin{animation:.55s cubic-bezier(.4,0,.3,1) forwards ofspin}@keyframes ofspin{0%{opacity:0;transform:rotate(0)scale(0)}60%{opacity:1}to{opacity:1;transform:rotate(360deg)scale(1)}}.of-pop{transform-origin:50%;animation:.5s cubic-bezier(.3,1.6,.5,1) forwards ofpop}@keyframes ofpop{0%{opacity:0;transform:scale(0)}55%{opacity:1;transform:scale(1.3)}to{opacity:1;transform:scale(1)}}.of-glitch{animation:.5s step-end forwards ofglitch}@keyframes ofglitch{0%{opacity:0;transform:translate(0)}12%{opacity:1;clip-path:inset(20% 0 40%);transform:translate(-4px,3px)}28%{clip-path:inset(55% 0 10%);transform:translate(4px,-3px)}44%{clip-path:inset(10% 0 60%);transform:translate(-3px,-4px)}60%{clip-path:inset(40% 0 30%);transform:translate(3px,4px)}to{opacity:1;clip-path:inset(0);transform:translate(0)}}.of-roll{animation:.55s cubic-bezier(.4,0,.4,1) forwards ofroll}@keyframes ofroll{0%{transform:translate(-120%)rotate(-200deg)}to{transform:translate(0)rotate(0)}}.of-stamp{transform-origin:50%;animation:.5s cubic-bezier(.5,0,.4,1) forwards ofstamp}@keyframes ofstamp{0%{opacity:0;transform:scale(2.6)}55%{opacity:1}70%{transform:scale(.9)}85%{transform:scale(1.06)}to{opacity:1;transform:scale(1)}}.of-shock{animation:.55s ease-out forwards ofshock}@keyframes ofshock{0%{clip-path:circle(0%)}to{clip-path:circle(80%)}}.of-splat{transform-origin:50%;animation:.5s ease-out forwards ofsplat}@keyframes ofsplat{0%{border-radius:50%;transform:scale(0)}60%{border-radius:42% 58% 55% 45%}to{border-radius:8%;transform:scale(1.6)}}.of-iris{animation:.55s ease-out forwards ofiris}@keyframes ofiris{0%{clip-path:circle(0% at 0 0)}to{clip-path:circle(150% at 0 0)}}.of-wipe{animation:.45s ease-in-out forwards ofwipe}@keyframes ofwipe{0%{clip-path:polygon(0 0,0 0,-45% 100%,-45% 100%)}to{clip-path:polygon(0 0,145% 0,100% 100%,0 100%)}}.of-slam{animation:.5s cubic-bezier(.6,0,.2,1) forwards ofslam}@keyframes ofslam{0%{transform:translateY(-130%)}55%{transform:translateY(0)}66%{transform:translateY(0)scaleY(.82)}82%{transform:translateY(0)scaleY(1.05)}to{transform:translateY(0)scaleY(1)}}.of-flash{animation:.5s ease-out forwards offlash}@keyframes offlash{0%{opacity:0;filter:brightness(6)}18%{opacity:1;filter:brightness(8)}40%{filter:brightness(1.4)}to{opacity:1;filter:brightness()}}.of-dissolve{animation:.55s steps(8,end) forwards ofdissolve}@keyframes ofdissolve{0%{opacity:0}to{opacity:1}}.of-curtain{transform-origin:top;animation:.45s ease-in-out forwards ofcurtain}@keyframes ofcurtain{0%{transform:scaleY(0)}to{transform:scaleY(1)}}.fx-burst{pointer-events:none;z-index:3;width:0;height:0;position:absolute;top:50%;left:50%;overflow:visible}.fx-bit{width:var(--sz);height:var(--sz);background:var(--c);will-change:transform, opacity;animation:.6s cubic-bezier(.2,.7,.3,1) forwards fxbit;position:absolute;top:50%;left:50%}@keyframes fxbit{0%{opacity:1;transform:translate(-50%,-50%)rotate(0)}to{transform:translate(calc(-50% + var(--tx)), calc(-50% + var(--ty))) rotate(var(--rot));opacity:0}}.fx-styles{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;display:flex}.fx-styles-label{font-family:var(--font-pixel), monospace;letter-spacing:.5px;color:var(--parch);font-size:10px}.screenfx{pointer-events:none;z-index:9999;position:fixed;inset:0;overflow:hidden}.fw-shell{width:0;height:0;position:absolute}.fw-bit{width:var(--sz);height:var(--sz);background:var(--c);border-radius:1px;animation:1.1s ease-out forwards fwbit;position:absolute;top:0;left:0}@keyframes fwbit{0%{opacity:1;transform:translate(-50%,-50%)scale(1)}70%{opacity:1}to{transform:translate(calc(-50% + var(--tx)), calc(-50% + var(--ty) + 34px)) scale(.5);opacity:0}}.cf-piece{border-radius:1px;animation-name:cffall;animation-timing-function:linear;animation-fill-mode:forwards;position:absolute;top:-8vh}@keyframes cffall{0%{opacity:1;transform:translateY(-8vh)translate(0)rotate(0)}85%{opacity:1}to{transform:translateY(110vh) translateX(var(--drift)) rotate(var(--rot));opacity:0}}.sfx-wave{background:radial-gradient(circle, var(--c) 0%, var(--c) 34%, transparent 66%);border-radius:50%;width:60px;height:60px;animation:.75s cubic-bezier(.2,.7,.3,1) forwards sfxwave;position:fixed}@keyframes sfxwave{0%{opacity:.9;transform:translate(-50%,-50%)scale(.15)}20%{opacity:.8}to{opacity:0;transform:translate(-50%,-50%)scale(26)}}.fx-proj{pointer-events:none;z-index:4;filter:drop-shadow(0 2px 3px #00000080);font-size:30px;line-height:1;position:absolute;top:50%;left:50%}.fx-proj.rocket{animation:.4s ease-in forwards projrocket}@keyframes projrocket{0%{opacity:0;transform:translate(calc(-50% - 135px),calc(135px - 50%))scale(.6)}20%{opacity:1}to{opacity:1;transform:translate(-50%,-50%)scale(1.15)}}.fx-proj.bomb{animation:.4s cubic-bezier(.5,0,.7,1) forwards projbomb}@keyframes projbomb{0%{opacity:0;transform:translate(-50%,calc(-50% - 155px))rotate(-8deg)scale(.7)}20%{opacity:1}to{opacity:1;transform:translate(-50%,-50%)rotate(14deg)scale(1.1)}}.fx-proj.meteor{animation:.4s ease-in forwards projmeteor}@keyframes projmeteor{0%{opacity:0;transform:translate(calc(150px - 50%),calc(-50% - 150px))scale(.6)}20%{opacity:1}to{opacity:1;transform:translate(-50%,-50%)scale(1.2)}}.fx-proj.mortar{animation:.48s ease-in-out forwards projmortar}@keyframes projmortar{0%{opacity:0;transform:translate(calc(-50% - 150px),calc(120px - 50%))rotate(-40deg)scale(.6)}20%{opacity:1}55%{transform:translate(calc(-50% - 40px),calc(-50% - 95px))rotate(0)scale(1)}to{opacity:1;transform:translate(-50%,-50%)rotate(38deg)scale(1.1)}}.fx-proj.lightning{font-size:40px;animation:.24s ease-in forwards projlightning}@keyframes projlightning{0%{opacity:0;transform:translate(-50%,calc(-50% - 190px))scale(.5)}45%{opacity:1}to{opacity:1;transform:translate(-50%,-50%)scale(1.5)}}.fx-tracer{pointer-events:none;z-index:4;background:linear-gradient(90deg,#0000,#ffd23b 60%,#fff);border-radius:3px;width:44px;height:5px;animation:.26s linear forwards projtank;position:absolute;top:50%;left:50%;box-shadow:0 0 10px 2px #ffb01a}@keyframes projtank{0%{opacity:0;transform:translate(calc(-50% - 240px),-50%)scaleX(2.2)}25%{opacity:1}to{opacity:1;transform:translate(-50%,-50%)scaleX(.8)}}.fx-barrage{position:absolute;inset:0}.fx-proj.barrage{font-size:22px}.fx-proj.barrage.b1{animation:.44s ease-in forwards projb1}.fx-proj.barrage.b2{animation:.44s ease-in 50ms forwards projb2}.fx-proj.barrage.b3{animation:.44s ease-in .1s forwards projb3}@keyframes projb1{0%{opacity:0;transform:translate(calc(-50% - 150px),calc(-50% - 150px))scale(.6)}25%{opacity:1}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}@keyframes projb2{0%{opacity:0;transform:translate(-50%,calc(-50% - 190px))scale(.6)}25%{opacity:1}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}@keyframes projb3{0%{opacity:0;transform:translate(calc(150px - 50%),calc(-50% - 150px))scale(.6)}25%{opacity:1}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}.fx-laser{pointer-events:none;z-index:4;position:absolute;inset:0}.fx-laser-ring{border:3px solid #7ad0ff;border-radius:50%;width:60px;height:60px;animation:.56s ease-in forwards laserring;position:absolute;top:50%;left:50%;box-shadow:0 0 10px #7ad0ff}@keyframes laserring{0%{opacity:0;transform:translate(-50%,-50%)scale(2.6)}50%{opacity:1;transform:translate(-50%,-50%)scale(1)}80%{opacity:1}to{opacity:0;transform:translate(-50%,-50%)scale(.9)}}.fx-laser-beam{transform-origin:bottom;opacity:0;background:linear-gradient(#2a7fff00,#7ad0ff 60%,#fff);width:16px;height:460px;animation:.28s ease-out .3s forwards laserbeam;position:absolute;bottom:50%;left:50%;transform:translate(-50%);box-shadow:0 0 18px 3px #7ad0ff}@keyframes laserbeam{0%{opacity:0;transform:translate(-50%)scaleY(0)}40%{opacity:1;transform:translate(-50%)scaleY(1)}to{opacity:.85;transform:translate(-50%)scaleY(1)}}.fx-boom.mega{width:240%;height:240%}.fx-nukeflash{pointer-events:none;z-index:9998;background:#fff;animation:.6s ease-out forwards nukeflash;position:fixed;inset:0}@keyframes nukeflash{0%{opacity:0}12%{opacity:.95}to{opacity:0}}.fx-stage.shake-mega{animation:.6s ease-in-out fxshakemega}@keyframes fxshakemega{0%,to{transform:translate(0)}10%{transform:translate(-7px,4px)}25%{transform:translate(7px,-5px)}40%{transform:translate(-6px,-5px)}55%{transform:translate(6px,5px)}70%{transform:translate(-5px,3px)}85%{transform:translate(4px,-2px)}}.fx-proj.fly{animation:.4s ease-in forwards projfly}@keyframes projfly{0%{transform:translate(calc(-50% + var(--fx)), calc(-50% + var(--fy))) rotate(var(--rot)) scale(.55);opacity:0}22%{opacity:1}to{transform:translate(calc(-50% + var(--ex,0px)), calc(-50% + var(--ey,0px))) rotate(var(--rot)) scale(1.1);opacity:1}}.fx-proj.drop{font-size:18px;animation-name:projdrop;animation-duration:.56s;animation-timing-function:ease-in;animation-fill-mode:forwards}@keyframes projdrop{0%{transform:translate(calc(-50% + var(--ex)), calc(-50% - 165px)) scale(.6);opacity:0}30%{opacity:1}to{transform:translate(calc(-50% + var(--ex)), calc(-50% + var(--ey))) scale(1);opacity:1}}.fx-proj.arcshell{font-size:18px;animation-name:projarcshell;animation-duration:.62s;animation-timing-function:ease-in-out;animation-fill-mode:forwards}@keyframes projarcshell{0%{opacity:0;transform:translate(calc(-50% - 185px),calc(40px - 50%))rotate(-30deg)scale(.6)}25%{opacity:1}55%{transform:translate(calc(-50% + var(--ex) - 45px), calc(-50% - 100px)) rotate(10deg) scale(1)}to{transform:translate(calc(-50% + var(--ex)), calc(-50% + var(--ey))) rotate(45deg) scale(1);opacity:1}}.fx-laser-unit{width:0;height:0;position:absolute}.fx-laser-unit.side .fx-laser-ring{border-width:2px;width:38px;height:38px}.fx-laser-unit.side .fx-laser-beam{width:9px;height:320px}.fx-proj.napalm{animation:.36s ease-in forwards projnapalm}@keyframes projnapalm{0%{opacity:0;transform:translate(-50%,calc(-50% - 150px))scale(.6)}25%{opacity:1}to{opacity:1;transform:translate(-50%,-50%)scale(1.2)}}.fx-napalm-fire{pointer-events:none;z-index:3;background:radial-gradient(circle at 50% 62%,#fff 0%,#ffd23b 22%,#ff7a1a 46%,#d23b0a 63%,#0000 75%);border-radius:50% 50% 46% 54%;width:155%;height:155%;animation:.9s ease-out forwards fxfire;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes fxfire{0%{opacity:0;transform:translate(-50%,-50%)scale(.3)}20%{opacity:1;transform:translate(-50%,-50%)scale(1.05)}60%{opacity:.85;transform:translate(-50%,-52%)scale(1)}to{opacity:0;transform:translate(-50%,-58%)scale(.85)}}.fx-carpet{position:absolute;inset:0}.fx-proj.carpet{font-size:20px}.fx-proj.carpet.c0{animation:.5s ease-in forwards projcarpet}.fx-proj.carpet.c1{animation:.5s ease-in 80ms forwards projcarpet}.fx-proj.carpet.c2{animation:.5s ease-in .16s forwards projcarpet}.fx-proj.carpet.c3{animation:.5s ease-in .24s forwards projcarpet}@keyframes projcarpet{0%{transform:translate(calc(-50% + var(--cx)), calc(-50% - 165px)) scale(.6);opacity:0}30%{opacity:1}to{transform:translate(calc(-50% + var(--cx)), -50%) scale(1);opacity:1}}.fx-proj.arty{font-size:20px;animation-name:projarty;animation-duration:.5s;animation-timing-function:ease-in-out;animation-fill-mode:forwards}@keyframes projarty{0%{opacity:0;transform:translate(calc(-50% - 175px),calc(40px - 50%))rotate(-30deg)scale(.6)}25%{opacity:1}55%{transform:translate(calc(-50% - 30px),calc(-50% - 95px))rotate(10deg)scale(1)}to{opacity:1;transform:translate(-50%,-50%)rotate(45deg)scale(1)}}.fx-proj.flag{font-size:30px;animation:.62s ease-out forwards projflag}@keyframes projflag{0%{opacity:0;transform:translate(-50%,calc(-50% - 175px))rotate(-8deg)scale(.7)}20%{opacity:1}70%{transform:translate(-50%,calc(-50% - 22px))rotate(6deg)scale(1)}to{opacity:1;transform:translate(-50%,-50%)rotate(0)scale(1)}}.fx-boom{pointer-events:none;z-index:3;background:radial-gradient(circle,#fff 0%,#ffd23b 30%,#ff7a1a 55%,#0000 72%);border-radius:50%;width:130%;height:130%;animation:.4s ease-out forwards fxboom;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes fxboom{0%{opacity:0;transform:translate(-50%,-50%)scale(.2)}20%{opacity:1}to{opacity:0;transform:translate(-50%,-50%)scale(1.8)}}.fx-stage.shake{animation:.4s ease-in-out fxshake}@keyframes fxshake{0%,to{transform:translate(0)}15%{transform:translate(-4px,2px)}30%{transform:translate(4px,-3px)}45%{transform:translate(-3px,-3px)}60%{transform:translate(3px,3px)}80%{transform:translate(-2px,1px)}}.fx-speed{min-width:120px;max-width:260px;accent-color:var(--gold);flex:1}.fx-stage .fx-proj{animation-duration:calc(.4s / var(--fxspeed,1))}.fx-stage .fx-proj.mortar{animation-duration:calc(.48s / var(--fxspeed,1))}.fx-stage .fx-proj.arcshell{animation-duration:calc(.62s / var(--fxspeed,1))}.fx-stage .fx-proj.drop{animation-duration:calc(.5s / var(--fxspeed,1))}.fx-stage .fx-proj.barrage.b1,.fx-stage .fx-proj.barrage.b2,.fx-stage .fx-proj.barrage.b3{animation-duration:calc(.44s / var(--fxspeed,1))}.fx-stage .fx-boom{animation-duration:calc(.4s / var(--fxspeed,1))}.fx-stage .fx-boom.mega{animation-duration:calc(.6s / var(--fxspeed,1))}.fx-stage .fx-bit{animation-duration:calc(.62s / var(--fxspeed,1))}.fx-stage .fx-napalm-fire{animation-duration:calc(.9s / var(--fxspeed,1))}@media (prefers-reduced-motion:reduce){.fxlab *{animation-duration:.01ms!important}}
