#fxProg{position:fixed;top:0;right:0;height:3px;width:100%;transform-origin:right;transform:scaleX(0);background:linear-gradient(90deg,var(--pri),var(--mag),var(--cyan));z-index:200;pointer-events:none}#fxBg{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden}#fxBg i{position:absolute;border-radius:50%;filter:blur(80px);opacity:.24;will-change:transform}#fxBg i:nth-child(1){width:46vmax;height:46vmax;background:#7c3aed;top:-14vmax;right:-10vmax;animation:fxO1 24s ease-in-out infinite alternate}#fxBg i:nth-child(2){width:38vmax;height:38vmax;background:#c026d3;bottom:-14vmax;left:-10vmax;animation:fxO2 28s ease-in-out infinite alternate}#fxBg i:nth-child(3){width:26vmax;height:26vmax;background:#22d3ee;top:40%;left:30%;opacity:.07;animation:fxO3 32s ease-in-out infinite alternate}#fxBg b{position:absolute;width:3px;height:3px;border-radius:50%;background:#fff;opacity:0;animation:fxSp var(--d) linear infinite;animation-delay:var(--w)}@keyframes fxO1{to{transform:translate(-14vmax,18vmax) scale(1.2)}}@keyframes fxO2{to{transform:translate(16vmax,-14vmax) scale(1.15)}}@keyframes fxO3{to{transform:translate(-18vmax,-10vmax) scale(1.4)}}@keyframes fxSp{0%{transform:translateY(0);opacity:0}15%{opacity:.7}85%{opacity:.5}to{transform:translateY(-110vh);opacity:0}}.fx-pre{opacity:0;transform:translateY(26px) scale(.97)}.fx-in{opacity:1;transform:none;transition:opacity .6s cubic-bezier(.2,.7,.2,1),transform .6s cubic-bezier(.2,.7,.2,1);transition-delay:var(--fd,0s)}.hero>*{animation:fxUp .8s cubic-bezier(.2,.7,.2,1) both}.hero>:nth-child(1){animation-delay:.05s}.hero>:nth-child(2){animation-delay:.15s}.hero>:nth-child(3){animation-delay:.28s}.hero>:nth-child(4){animation-delay:.4s}.hero>:nth-child(5){animation-delay:.52s}.hero>:nth-child(6){animation-delay:.64s}@keyframes fxUp{0%{opacity:0;transform:translateY(34px)}to{opacity:1;transform:none}}.hero h1 .grad{background-size:220% auto;background-image:linear-gradient(110deg,var(--pri2),var(--mag),var(--cyan),var(--pri2));animation:fxGrad 6s linear infinite}@keyframes fxGrad{to{background-position:220% center}}.hero-art:after{content:"";position:absolute;inset:-18px;border-radius:50%;border:2px solid color-mix(in srgb,var(--pri) 55%,transparent);animation:fxRing 3s ease-out infinite;pointer-events:none}@keyframes fxRing{0%{transform:scale(.8);opacity:.9}to{transform:scale(1.5);opacity:0}}.btn{position:relative;overflow:hidden}.chip.btn-pri{position:relative;overflow:hidden;isolation:isolate}.btn.btn-pri:before,.chip.btn-pri:before{content:"";position:absolute;top:0;bottom:0;width:60%;left:-80%;background:linear-gradient(100deg,transparent,#ffffff55,transparent);transform:skew(-20deg);animation:fxShine 4.2s ease-in-out infinite;pointer-events:none}@keyframes fxShine{0%,55%{left:-80%}to{left:140%}}.hero-cta .btn-pri{animation:fxPulse 2.6s ease-in-out infinite}@keyframes fxPulse{0%,to{box-shadow:var(--glow)}50%{box-shadow:0 0 42px color-mix(in srgb,var(--pri) 80%,transparent)}}.btn:active{transform:scale(.96)}.fx-rip{position:absolute;border-radius:50%;background:#fff5;transform:scale(0);animation:fxRp .6s ease-out forwards;pointer-events:none}@keyframes fxRp{to{transform:scale(3.2);opacity:0}}.card{transform-style:preserve-3d;will-change:transform}.card.fx-tilt{transition:transform .12s,border-color .25s,box-shadow .25s}.card:after{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(260px circle at var(--mx,50%) var(--my,0%),#ffffff1c,transparent 60%);opacity:0;transition:opacity .25s;pointer-events:none}.card{position:relative}.card:hover:after{opacity:1}.stat,.cat{transition:transform .25s,border-color .25s,box-shadow .25s}.stat:hover,.cat:hover{transform:translateY(-4px);border-color:var(--pri);box-shadow:0 10px 30px color-mix(in srgb,var(--pri3) 28%,transparent)}.toast{transition:transform .45s cubic-bezier(.2,1.5,.4,1),opacity .3s}#app.fx-page{animation:fxPg .45s cubic-bezier(.2,.7,.2,1)}@keyframes fxPg{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.fx-bump{animation:fxBump .5s cubic-bezier(.2,1.6,.4,1)}@keyframes fxBump{0%{transform:scale(1)}40%{transform:scale(1.5)}to{transform:scale(1)}}@media(max-width:700px){#fxBg i{filter:blur(50px);opacity:.3}#fxBg b{display:none}.card.fx-tilt{transform:none!important}}@media(prefers-reduced-motion:reduce){#fxBg,#fxProg{display:none}.fx-pre{opacity:1;transform:none}.hero>*{animation:none}}
