.cs-loader{position:fixed;inset:0;z-index:9999;background:#fff;display:flex;align-items:center;justify-content:center}
.cs-loader.exit{animation:csExit .8s cubic-bezier(.4,0,.2,1) forwards}
@keyframes csExit{to{opacity:0;visibility:hidden}}
.cs-loader .bg{position:absolute;inset:0;overflow:hidden;pointer-events:none;transition:transform .4s ease,filter .4s ease}
.cs-loader .bg.react{transform:scale(1.06);filter:brightness(1.4) saturate(1.3)}
.cs-loader .bg-orb{position:absolute;border-radius:50%;will-change:transform}
.cs-loader .bg-orb:nth-child(1){width:105vmax;height:80vmax;background:radial-gradient(ellipse,rgba(139,92,246,.1) 0%,rgba(139,92,246,.04) 30%,transparent 60%);top:-28%;left:-18%;filter:blur(50px);animation:csD1 24s ease-in-out infinite}
.cs-loader .bg-orb:nth-child(2){width:95vmax;height:85vmax;background:radial-gradient(ellipse,rgba(124,58,237,.08) 0%,rgba(124,58,237,.03) 30%,transparent 60%);bottom:-22%;right:-15%;filter:blur(55px);animation:csD2 28s ease-in-out infinite}
.cs-loader .bg-orb:nth-child(3){width:75vmax;height:90vmax;background:radial-gradient(ellipse,rgba(167,139,250,.06) 0%,rgba(167,139,250,.02) 30%,transparent 60%);top:-8%;right:-22%;filter:blur(60px);animation:csD3 21s ease-in-out infinite}
@keyframes csD1{0%,100%{transform:translate(0,0) scale(1)}40%{transform:translate(4vw,5vh) scale(1.05)}70%{transform:translate(-3vw,-3vh) scale(.97)}}
@keyframes csD2{0%,100%{transform:translate(0,0) scale(1)}35%{transform:translate(-5vw,-4vh) scale(1.04)}65%{transform:translate(3vw,2vh) scale(.96)}}
@keyframes csD3{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-3vw,4vh) scale(1.06)}}
.cs-loader .l-grain{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:100}
.cs-loader .ring{position:absolute;left:50%;top:50%;width:190px;height:190px;margin:-95px 0 0 -95px;border-radius:50%;border:1.5px solid rgba(139,92,246,.5);box-shadow:0 0 40px rgba(139,92,246,.06),inset 0 0 30px rgba(139,92,246,.03);transform:scale(0);opacity:0;transition:transform .7s cubic-bezier(.22,1,.36,1),opacity .3s ease,border-color .3s,box-shadow .3s}
.cs-loader .ring.expand{transform:scale(1);opacity:1}
.cs-loader .ring.glow{border-color:rgba(139,92,246,.85);box-shadow:0 0 70px rgba(139,92,246,.18),inset 0 0 50px rgba(139,92,246,.07)}
.cs-loader .ring.fade{opacity:0;transform:scale(1.5);transition:transform .5s cubic-bezier(.4,0,.2,1),opacity .35s ease}
.cs-loader .flash{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:350px;height:350px;border-radius:50%;background:radial-gradient(circle,rgba(139,92,246,.2) 0%,rgba(139,92,246,.06) 40%,transparent 70%);opacity:0;pointer-events:none;transition:opacity .1s ease}
.cs-loader .flash.on{opacity:1}
.cs-loader .cookie-wrap{position:absolute;left:50%;top:50%;width:220px;height:220px;transform:translate(-50%,-50%);transition:transform .85s cubic-bezier(.4,0,.2,1);will-change:transform;perspective:800px}
.cs-loader .cookie-svg{width:100%;height:100%;transition:opacity .3s ease,transform .3s ease}
.cs-loader .cookie-ring{stroke-dasharray:277;stroke-dashoffset:277;transition:stroke-dashoffset .75s cubic-bezier(.4,0,.2,1)}
.cs-loader .cookie-ring.draw{stroke-dashoffset:0}
.cs-loader .cookie-fill{opacity:0;transition:opacity .4s ease}
.cs-loader .cookie-fill.show{opacity:1}
.cs-loader .cookie-svg.flip{animation:csFlip .5s cubic-bezier(.4,0,.2,1)}
@keyframes csFlip{0%{transform:rotateY(0) scale(1)}35%{transform:rotateY(160deg) scale(1.06)}65%{transform:rotateY(200deg) scale(1.06)}100%{transform:rotateY(360deg) scale(1)}}
.cs-loader .cookie-wrap.dissolve .cookie-svg{opacity:0;transform:scale(.45)}
.cs-loader .cookie-wrap::after{content:'';position:absolute;inset:-28%;border-radius:50%;background:radial-gradient(circle,rgba(139,92,246,.12) 0%,transparent 60%);opacity:0;transition:opacity .5s ease;z-index:-1}
.cs-loader .cookie-wrap.glow::after{opacity:1}
.cs-loader .brand-row{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:0;white-space:nowrap;opacity:0;pointer-events:none}
.cs-loader .brand-row.show{opacity:1;transition:opacity .01s}
.cs-loader .brand-mark{width:68px;height:68px;flex-shrink:0;margin-right:-2px;opacity:0}
.cs-loader .brand-mark.reveal{animation:csMark .45s cubic-bezier(.22,1,.36,1) forwards}
@keyframes csMark{from{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}
.cs-loader .brand-label{font-size:62px;font-variation-settings:'wght' 300;color:#1a1a2e;letter-spacing:-.025em;line-height:1;clip-path:inset(0 100% 0 0);transition:clip-path .65s cubic-bezier(.62,0,.32,1),font-variation-settings .75s cubic-bezier(.22,1,.36,1)}
.cs-loader .brand-label.unveil{clip-path:inset(0 0% 0 0);font-variation-settings:'wght' 500}
.cs-loader .brand-caret{position:absolute;width:2px;top:12%;bottom:18%;background:linear-gradient(180deg,transparent,#8B5CF6 20%,#8B5CF6 80%,transparent);border-radius:1px;opacity:0;z-index:5;box-shadow:0 0 10px rgba(139,92,246,.35);transition:transform .65s cubic-bezier(.62,0,.32,1),opacity .12s}
.cs-loader .brand-rule{position:absolute;bottom:-11px;left:0;right:0;height:1.5px;border-radius:1px;background:linear-gradient(90deg,#A78BFA 0%,#7C3AED 50%,#A78BFA 100%);transform:scaleX(0);transition:transform .6s cubic-bezier(.22,1,.36,1)}
.cs-loader .brand-rule.extend{transform:scaleX(1)}
.cs-loader .shimmer{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.cs-loader .shimmer::after{content:'';position:absolute;inset:0;background:linear-gradient(105deg,transparent 40%,rgba(255,255,255,.35) 50%,transparent 60%);transform:translateX(-120%)}
.cs-loader .shimmer.sweep::after{animation:csShim .7s cubic-bezier(.4,0,.2,1) forwards}
@keyframes csShim{to{transform:translateX(120%)}}
.cs-loader .brand-row.settle{animation:csSettle .4s cubic-bezier(.4,0,.2,1) forwards}
@keyframes csSettle{to{transform:translate(-50%,-50%) translateY(-6px)}}
.cs-loader .l-fx{position:absolute;inset:0;pointer-events:none;z-index:50}
.cs-loader .mote{position:absolute;border-radius:50%;animation:csMote var(--dur) cubic-bezier(.4,0,.2,1) forwards}
@keyframes csMote{0%{opacity:.7;transform:translate(0,0) scale(1)}100%{opacity:0;transform:translate(var(--mx),var(--my)) scale(0)}}
.cs-loader .ring-burst{position:absolute;width:0;height:0;border:1px solid rgba(139,92,246,.3);border-radius:50%;transform:translate(-50%,-50%);animation:csRBurst var(--rd) cubic-bezier(.22,1,.36,1) forwards}
@keyframes csRBurst{to{width:140px;height:140px;opacity:0;border-width:.5px}}
.cs-loader .prog-bar{position:absolute;bottom:0;left:0;right:0;height:2px;z-index:200}
.cs-loader .prog-fill{height:100%;width:0;background:linear-gradient(90deg,var(--accent,#8B5CF6),var(--accent-l,#A78BFA));transition:width .3s ease-out;border-radius:0 1px 1px 0}
@media(max-width:640px){
.cs-loader .brand-label{font-size:36px}
.cs-loader .brand-mark{width:44px;height:44px}
.cs-loader .cookie-wrap{width:160px;height:160px}
.cs-loader .ring{width:140px;height:140px;margin:-70px 0 0 -70px}
}
html.dark .cs-loader{background:#0f0d1a}
html.dark .cs-loader .brand-label{color:#e8e4f0}
html.dark .cs-loader .bg-orb:nth-child(1){background:radial-gradient(ellipse,rgba(139,92,246,.06) 0%,rgba(139,92,246,.02) 30%,transparent 60%)}
html.dark .cs-loader .bg-orb:nth-child(2){background:radial-gradient(ellipse,rgba(124,58,237,.05) 0%,rgba(124,58,237,.015) 30%,transparent 60%)}
html.dark .cs-loader .bg-orb:nth-child(3){background:radial-gradient(ellipse,rgba(167,139,250,.04) 0%,rgba(167,139,250,.01) 30%,transparent 60%)}
