#loader{position:fixed;inset:0;z-index:999;background:#171a35;display:grid;place-items:center;transition:opacity .7s,visibility .7s}
#loader.gone{opacity:0;visibility:hidden}
#loader div{text-align:center;color:#fff;font:700 34px/1 "Bricolage Grotesque",system-ui,sans-serif}
#loader img{width:72px;height:72px;margin:0 auto 16px;animation:lpulse 1.1s ease-in-out infinite alternate}
#loader i{display:block;height:3px;width:160px;margin:18px auto 0;background:linear-gradient(100deg,#074bae,#675ec4,#c46ae5);border-radius:3px;transform-origin:0 50%;animation:lbar 1.2s ease-out forwards}
@keyframes lpulse{to{transform:scale(1.15);filter:drop-shadow(0 0 22px #c46ae5)}}
@keyframes lbar{from{transform:scaleX(0)}}
#glow{position:fixed;left:0;top:0;width:420px;height:420px;margin:-210px 0 0 -210px;border-radius:50%;pointer-events:none;z-index:1;background:radial-gradient(circle,rgba(196,106,229,.16),transparent 65%);transition:transform .12s linear;mix-blend-mode:multiply}
.pcanvas{position:absolute;inset:0;z-index:-1;width:100%;height:100%;pointer-events:none}
body .h2 .grad{background-size:200% 100%;animation:shim 5s ease-in-out infinite alternate}
@keyframes shim{to{background-position:100% 0}}
.h2.rh{opacity:0;filter:blur(10px);transform:translateY(34px) scale(.98);transition:opacity .9s,filter .9s,transform .9s cubic-bezier(.2,.8,.2,1)}
.h2.rh.in{opacity:1;filter:none;transform:none}
.btn{position:relative;overflow:hidden}
.ripple{position:absolute;border-radius:50%;background:rgba(255,255,255,.45);transform:scale(0);animation:rip .7s ease-out forwards;pointer-events:none}
@keyframes rip{to{transform:scale(4);opacity:0}}
.win,.mod,.plan,.sm{will-change:transform}
.tilt3d{transition:transform .2s ease-out}
.mod::before,.plan::after{content:"";position:absolute;inset:0;border-radius:inherit;padding:1.5px;background:linear-gradient(120deg,transparent 30%,#c46ae5,#074bae,transparent 70%) 0 0/300% 100%;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:0;transition:opacity .4s;animation:edge 4s linear infinite;pointer-events:none}
.mod:hover::before,.plan:hover::after{opacity:1}
@keyframes edge{to{background-position:300% 0}}
.hero .h-hero{background:linear-gradient(110deg,#fff 40%,#cdbdff 50%,#fff 60%) 0 0/250% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:sheen 6s ease-in-out 1.5s infinite}
@keyframes sheen{to{background-position:-150% 0}}
.hero .h-hero .swap .grad{-webkit-text-fill-color:transparent}
@media(prefers-reduced-motion:reduce){#loader,#glow,.pcanvas{display:none}.h2.rh{opacity:1;filter:none;transform:none}}
