.karagsha-loader{--kl-speed:3.2s;position:relative;width:clamp(96px,20vw,280px);aspect-ratio:1;display:inline-block}.karagsha-loader img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.karagsha-loader[data-animation=float] img{animation:kl-float var(--kl-speed) ease-in-out infinite}.karagsha-loader[data-animation=prism] img{animation:kl-prism calc(var(--kl-speed)*1.7) linear infinite}.karagsha-loader[data-animation=pulse] img{animation:kl-pulse var(--kl-speed) ease-in-out infinite}.karagsha-loader[data-animation=hologram] img{animation:kl-hologram var(--kl-speed) steps(2,end) infinite}@keyframes kl-float{0%,100%{transform:translateY(5px) rotate(-1deg)}50%{transform:translateY(-12px) rotate(1deg)}}@keyframes kl-prism{to{filter:hue-rotate(360deg) brightness(1.12) saturate(1.15)}}@keyframes kl-pulse{0%,100%{filter:brightness(.9);transform:scale(.985)}50%{filter:brightness(1.2) drop-shadow(0 0 18px #8d4cff);transform:scale(1.015)}}@keyframes kl-hologram{0%,100%{filter:hue-rotate(0);transform:translateX(0)}50%{filter:hue-rotate(60deg) drop-shadow(4px 0 #ff44ca) drop-shadow(-4px 0 #46efff);transform:translateX(2px)}}@media(prefers-reduced-motion:reduce){.karagsha-loader *{animation-duration:.01ms!important;animation-iteration-count:1!important}}


/* ---- حالت‌های کامل (پورت effects.css روی ساختار kfx) ---- */
.kfx{position:relative;display:inline-grid;place-items:center;isolation:isolate;vertical-align:middle}
.kfx .kfx-rig{position:relative;width:100%;aspect-ratio:1}
.kfx .kfx-base{position:absolute;inset:0;display:grid;place-items:center}
.kfx .kfx-base>.kfx-img{width:100%;height:100%;object-fit:contain}
.kfx .kfx-halo{position:absolute;left:50%;bottom:6%;width:74%;height:26%;transform:translateX(-50%);border-radius:50%;background:#7932f766;filter:blur(26px);z-index:0;transition:background .4s}
.kfx[data-motion=pulse] .kfx-halo{animation:kfx-halo calc(2.7s/var(--kl-speed)) ease-in-out infinite}
.kfx[data-motion=aurora] .kfx-halo{background:#39dfd066;animation:kfx-halo calc(4s/var(--kl-speed)) ease-in-out infinite}
.kfx[data-motion=christmas] .kfx-halo{background:#ffcf5250;animation:kfx-halo calc(4s/var(--kl-speed)) ease-in-out infinite}
.kfx[data-motion=snow] .kfx-halo{background:#5bd9ff55}
.kfx[data-motion=storm] .kfx-halo{background:#63e8ff44}
.kfx[data-motion=prism] .kfx-img{animation:kl-prism calc(var(--kl-speed)*1.9) linear infinite}
.kfx[data-motion=aurora] .kfx-img{animation:kfx-aurora calc(4.6s/var(--kl-speed)) ease-in-out infinite}
.kfx[data-motion=orbit] .kfx-img{animation:kl-float calc(5.6s/var(--kl-speed)) ease-in-out infinite}
.kfx[data-motion=tilt] .kfx-img{animation:kl-tilt calc(5s/var(--kl-speed)) ease-in-out infinite}
.kfx[data-motion=focus] .kfx-img{animation:kl-focus calc(3.6s/var(--kl-speed)) ease-in-out infinite}
.kfx[data-motion=hologram] .kfx-img{animation:kl-hologram calc(3s/var(--kl-speed)) steps(2,end) infinite}
.kfx[data-motion=hologram] .kfx-scan{position:absolute;inset:8% 5%;opacity:.75;background:repeating-linear-gradient(180deg,transparent 0 8px,#75efff22 9px 10px);mix-blend-mode:screen;animation:kfx-scanline calc(2.2s/var(--kl-speed)) linear infinite;z-index:3}
.kfx[data-motion=rain] .kfx-weather span,.kfx[data-motion=storm] .kfx-weather span{position:absolute;display:block;width:1.5px;height:var(--len);left:var(--x);top:-14%;opacity:var(--o);background:linear-gradient(transparent,#65dfff);animation:kfx-rain calc(var(--d)/var(--brand-speed)) linear infinite;animation-delay:var(--delay);transform:rotate(8deg);z-index:2}
.kfx[data-motion=snow] .kfx-weather span{position:absolute;display:block;width:var(--size);height:var(--size);left:var(--x);top:-8%;border-radius:50%;background:#fff;opacity:var(--o);filter:blur(var(--blur));box-shadow:0 0 8px #b8edff;animation:kfx-snow calc(var(--d)/var(--brand-speed)) linear infinite;animation-delay:var(--delay);z-index:2}
.kfx[data-motion=storm] .kfx-flash{position:absolute;inset:0;z-index:3;background:linear-gradient(115deg,transparent 45%,#c8f8ff1f 49%,transparent 53%);animation:kfx-lightning calc(6s/var(--brand-speed)) steps(1) infinite;pointer-events:none}
@keyframes kl-tilt{0%,100%{transform:perspective(600px) rotateX(0) rotateY(-4deg)}50%{transform:perspective(600px) rotateX(4deg) rotateY(5deg) translateY(-6%)}}
@keyframes kl-focus{0%,100%{transform:scale(.94);filter:blur(1.5px) brightness(.85)}45%,70%{transform:scale(1);filter:blur(0) brightness(1.18) drop-shadow(0 0 18px #7d3fff88)}}
@keyframes kfx-aurora{0%,100%{filter:hue-rotate(0) brightness(.95)}50%{filter:hue-rotate(34deg) brightness(1.2) saturate(1.25)}}
@keyframes kfx-halo{0%,100%{opacity:.3;transform:translateX(-50%) scale(.8)}50%{opacity:.75;transform:translateX(-50%) scale(1.18)}}
@keyframes kfx-rain{to{transform:translate(70px,640px) rotate(8deg)}}
@keyframes kfx-snow{0%{transform:translate(0,-16px) rotate(0)}50%{transform:translate(var(--drift),320px) rotate(180deg)}100%{transform:translate(calc(var(--drift)*-.5),680px) rotate(360deg)}}
@keyframes kfx-lightning{0%,91%,94%,100%{opacity:0}92%,93%{opacity:1}}
@keyframes kfx-scanline{from{background-position:0 -26px}to{background-position:0 26px}}
.kfx[data-motion=christmas] .kfx-weather.bulbs span{width:9px;height:9px;border-radius:50%;background:var(--c);box-shadow:0 0 7px var(--c),0 0 16px var(--c);animation:kfx-bulb calc(var(--d)/var(--brand-speed)) ease-in-out infinite alternate;animation-delay:var(--delay)}
@keyframes kfx-bulb{from{opacity:.25;transform:scale(.7)}to{opacity:1;transform:scale(1.25)}}
@media(prefers-reduced-motion:reduce){.kfx[data-reduce=true] *{animation:none!important}.kfx[data-reduce=true] .kfx-weather{display:none}}
