/* کنترل پنل ادمین دیدبان وب — لودینگ تمام‌صفحه‌ی بلور + نشان برند
   در پنل، در صفحه‌های پیشخوان وردپرس و در بخش کاربری سایت (وقتی «لودینگ در کل سایت» روشن است) بارگذاری می‌شود. */

/* ===================================================== نشان برند (لوگو کنار نام) */
.dw-brand-mark {
  position: relative; display: inline-flex; align-items: center; justify-content: center; flex: none;
  width: 3.25rem; height: 3.25rem; overflow: hidden; border-radius: 50%;
  background: rgb(var(--dw-primary-600)); color: #fff;
  box-shadow: 0 8px 18px -6px rgb(var(--dw-primary-600) / .55);
}
/* لوگوی واقعی: همیشه دایره، بدون پس‌زمینه، حاشیه و سایه */
.dw-brand-mark.has-img { background: none; border: 0; box-shadow: none; }
.dw-brand-mark img { display: block; width: 100%; height: 100%; max-width: none; box-sizing: border-box; object-fit: contain; border-radius: 50%; padding: 14.6%; background: none; }
/* padding ۱۴٫۶٪ = بزرگ‌ترین مربعی که کامل داخل دایره جا می‌شود؛ پس لوگو هیچ‌وقت از گوشه‌ها بریده نمی‌شود */
.dw-brand-mark.has-img .dw-brand-ico { display: none; }

/* ===================================================== لودینگ تمام‌صفحه‌ی بلور */
.dw-loader {
  position: fixed; inset: 0; z-index: 2147483000; display: flex; align-items: center; justify-content: center;
  margin: 0; padding: 0; font-family: inherit; font-size: 16px; line-height: 1.5; direction: rtl; text-align: center;
  background: rgb(var(--dw-surface-50) / .58);
  -webkit-backdrop-filter: blur(14px) saturate(1.15); backdrop-filter: blur(14px) saturate(1.15);
  opacity: 1; transition: opacity .35s ease, visibility .35s ease, background-color .22s ease;
}
html.dark .dw-loader { background: rgb(var(--dw-surface-950) / .62); }
.dw-loader[hidden] { display: none; }
.dw-loader.is-out { opacity: 0; visibility: hidden; pointer-events: none; }
html.dw-loading { cursor: progress; }

/* ---- جابه‌جایی بین صفحه‌ها بدون فلیک ----
   صفحه‌ی مبدأ: لودینگ کم‌کم یک‌رنگ می‌شود (is-solid). صفحه‌ی مقصد (dw-handoff): محتوا تا پایان بارگذاری پنهان است و
   لودینگ یک‌رنگ از اولین رسم دیده می‌شود، پس هیچ‌وقت صفحه‌ی نیمه‌ساخته یا سفید دیده نمی‌شود. */
.dw-loader.is-solid { background: rgb(var(--dw-surface-50)); -webkit-backdrop-filter: none; backdrop-filter: none; }
html.dark .dw-loader.is-solid { background: rgb(var(--dw-surface-950)); }
html.dw-handoff { background: rgb(var(--dw-surface-50)); }
html.dark.dw-handoff { background: rgb(var(--dw-surface-950)); }
html.dw-handoff body { visibility: hidden; }
html.dw-handoff .dw-loader, html.dw-handoff .dw-loader * { visibility: visible; }
html.dw-handoff .dw-loader { transition: none; }
html.dw-handoff .dw-loader-card { animation: none; }
@media (prefers-reduced-motion: no-preference) {
  @view-transition { navigation: auto; }
  ::view-transition-old(root), ::view-transition-new(root) { animation-duration: .18s; }
  /* پنل: بدون محو بین دو عکس ثابت (چرخش لودینگ نباید دوبل دیده شود)؛ خود لودینگ بلور ادامه پیدا می‌کند */
  :root.dw-panel::view-transition-old(root), :root.dw-panel::view-transition-new(root) { animation-duration: 0s; }
}

/* ---- جابه‌جایی نرم بین صفحه‌های پنل ----
   صفحه‌ی مبدأ: لودینگ بلور می‌ماند و می‌چرخد (یک‌رنگ نمی‌شود). صفحه‌ی مقصد: از اولین رسم یک پوشش بلور هم‌شکل داریم
   (تا لودینگ واقعی ساخته شود)، بعد لودینگ واقعی با همان فاز چرخش ادامه پیدا می‌کند و در پایان محو می‌شود؛
   یعنی صفحه‌ی زیر بلور عوض می‌شود، نه خود لودینگ. */
html.dw-soft-cover::after {
  content: ""; position: fixed; inset: 0; z-index: 2147482999; pointer-events: none;
  background: rgb(var(--dw-surface-50) / .58);
  -webkit-backdrop-filter: blur(14px) saturate(1.15); backdrop-filter: blur(14px) saturate(1.15);
}
html.dark.dw-soft-cover::after { background: rgb(var(--dw-surface-950) / .62); }
html.dw-soft .dw-loader { transition: none; }
html.dw-soft .dw-loader-card { animation: none; }
/* اگر جاوااسکریپت اجرا نشد (کش/به‌تعویق‌اندازی اسکریپت، خطا و …) لودینگ بعد از چند ثانیه خودش محو می‌شود */
.dw-loader[data-dw-boot="short"] { animation: dwLdSafe .4s ease 12s forwards; }
.dw-loader[data-dw-boot="long"] { animation: dwLdSafe .4s ease 20s forwards; }
@keyframes dwLdSafe { to { opacity: 0; visibility: hidden; pointer-events: none; } }
/* داخل قاب پنل، خود پنل لودینگ را نشان می‌دهد؛ چاپ هم بدون لودینگ */
html.dwap-embedded .dw-loader { display: none !important; }
@media print { .dw-loader { display: none !important; } }
.dw-loader-card { display: flex; flex-direction: column; align-items: center; gap: 1.5rem; animation: dwLoaderIn .45s cubic-bezier(.2, .8, .2, 1) both; }
.dw-loader *, .dw-loader *::before, .dw-loader *::after { box-sizing: border-box; }
.dw-loader-text { margin: 0; padding: 0; display: inline-flex; align-items: baseline; gap: .15rem; font-size: 1.05rem; font-weight: 700; color: rgb(51 65 85); letter-spacing: .01em; }
html.dark .dw-loader-text { color: rgb(226 232 240); }
.dw-loader-dots { display: inline-flex; gap: .2rem; margin-inline-start: .35rem; }
.dw-loader-dots i { width: .38rem; height: .38rem; border-radius: 50%; background: rgb(var(--dw-primary-600)); animation: dwLdDot 1.2s ease-in-out infinite; }
.dw-loader-dots i:nth-child(2) { animation-delay: .15s; background: rgb(var(--dw-gold)); }
.dw-loader-dots i:nth-child(3) { animation-delay: .3s; }
@keyframes dwLoaderIn { from { opacity: 0; transform: translateY(10px) scale(.96); } to { opacity: 1; transform: none; } }

/* همه‌ی اندازه‌ها بر پایه‌ی em هستند تا همین سبک‌ها در پیش‌نمایش کوچک تنظیمات هم استفاده شوند */
.dw-ld { display: flex; align-items: center; justify-content: center; font-size: 16px; }
.dw-ld-v, .dw-ld-v i, .dw-ld-v b { box-sizing: border-box; }
.dw-ld-v i { display: block; font-style: normal; }
.dw-loader .dw-ld-v { display: none; }
html[data-dw-loader="orbit"] .dw-loader .dw-ld-orbit,
html[data-dw-loader="pulse"] .dw-loader .dw-ld-pulse,
html[data-dw-loader="ring"] .dw-loader .dw-ld-ring,
html[data-dw-loader="dots"] .dw-loader .dw-ld-dots,
html[data-dw-loader="bars"] .dw-loader .dw-ld-bars,
html[data-dw-loader="grid"] .dw-loader .dw-ld-grid,
html[data-dw-loader="bar"] .dw-loader .dw-ld-bar,
html[data-dw-loader="radar"] .dw-loader .dw-ld-radar,
html[data-dw-loader="halo"] .dw-loader .dw-ld-halo,
html[data-dw-loader="comet"] .dw-loader .dw-ld-comet,
html[data-dw-loader="satellites"] .dw-loader .dw-ld-satellites,
html[data-dw-loader="dashring"] .dw-loader .dw-ld-dashring,
html[data-dw-loader="segments"] .dw-loader .dw-ld-segments,
html[data-dw-loader="heartbeat"] .dw-loader .dw-ld-heartbeat,
html[data-dw-loader="flip"] .dw-loader .dw-ld-flip,
html[data-dw-loader="bounce"] .dw-loader .dw-ld-bounce,
html[data-dw-loader="material"] .dw-loader .dw-ld-material,
html[data-dw-loader="triple"] .dw-loader .dw-ld-triple,
html[data-dw-loader="hexa"] .dw-loader .dw-ld-hexa,
html[data-dw-loader="scan"] .dw-loader .dw-ld-scan,
html[data-dw-loader="shine"] .dw-loader .dw-ld-shine,
html[data-dw-loader="spark"] .dw-loader .dw-ld-spark,
html[data-dw-loader="atom"] .dw-loader .dw-ld-atom,
html[data-dw-loader="morph"] .dw-loader .dw-ld-morph { display: inline-flex; }
html:not([data-dw-loader]) .dw-loader .dw-ld-orbit { display: inline-flex; }

.dw-ld-v .dw-brand-mark { width: 4em; height: 4em; border-radius: 50%; }
.dw-ld-v .dw-brand-mark, .dw-ld-v .dw-ld-dotmark { position: relative; z-index: 1; }
.dw-ld-dotmark { flex: none; width: 1.2em; height: 1.2em; border-radius: 50%; background: rgb(var(--dw-primary-600)); box-shadow: 0 0 1.2em rgb(var(--dw-primary-600) / .6); animation: dwLdPulse 1.8s ease-in-out infinite; }

/* مدار */
.dw-ld-orbit { position: relative; width: 6.5em; height: 6.5em; align-items: center; justify-content: center; display: inline-flex; }
.dw-ld-orbit::before { content: ""; position: absolute; inset: .6em; border-radius: 50%; background: radial-gradient(circle, rgb(var(--dw-primary-500) / .35), transparent 70%); animation: dwLdGlow 2.2s ease-in-out infinite; }
.dw-ld-r { position: absolute; inset: 0; border-radius: 50%; border: .2em solid transparent; border-top-color: rgb(var(--dw-primary-600)); border-right-color: rgb(var(--dw-primary-600) / .35); animation: dwLdSpin 1.1s linear infinite; }
.dw-ld-r2 { inset: .55em; border-top-color: rgb(var(--dw-gold)); border-right-color: rgb(var(--dw-gold) / .3); animation-duration: 1.6s; animation-direction: reverse; }
.dw-ld-orbit .dw-brand-mark { animation: dwLdPulse 1.8s ease-in-out infinite; }

/* موج */
.dw-ld-pulse { position: relative; width: 6.5em; height: 6.5em; align-items: center; justify-content: center; display: inline-flex; }
.dw-ld-pulse > i { position: absolute; inset: 0; border-radius: 50%; border: .13em solid rgb(var(--dw-primary-600)); opacity: 0; animation: dwLdRipple 2.4s cubic-bezier(.2, .6, .3, 1) infinite; }
.dw-ld-pulse > i:nth-child(2) { animation-delay: .8s; border-color: rgb(var(--dw-gold)); }
.dw-ld-pulse > i:nth-child(3) { animation-delay: 1.6s; }
.dw-ld-pulse .dw-brand-mark { animation: dwLdPulse 2.4s ease-in-out infinite; }

/* حلقه‌ی گرادیان — لوگو وسط حلقه */
.dw-ld-ring { position: relative; width: 6.5em; height: 6.5em; align-items: center; justify-content: center; display: inline-flex; }
.dw-ld-ring > i { position: absolute; inset: 0; border-radius: 50%; background: conic-gradient(from 0deg, transparent 0 8%, rgb(var(--dw-gold)) 45%, rgb(var(--dw-primary-600)) 100%);
  -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - .65em), #000 calc(100% - .6em)); mask: radial-gradient(farthest-side, transparent calc(100% - .65em), #000 calc(100% - .6em));
  animation: dwLdSpin .95s linear infinite; }
.dw-ld-ring .dw-brand-mark { width: 4.5em; height: 4.5em; border-radius: 50%; animation: dwLdPulse 1.8s ease-in-out infinite; }

/* نقطه‌ها — لوگو بالای نقطه‌ها */
.dw-ld-dots { flex-direction: column; gap: 1.1em; align-items: center; display: inline-flex; }
.dw-ld-dots > b { display: inline-flex; gap: .8em; height: 3em; align-items: center; }
.dw-ld-dots > b > i { width: 1.35em; height: 1.35em; border-radius: 50%; background: rgb(var(--dw-primary-600)); animation: dwLdBounce 1.1s ease-in-out infinite; }
.dw-ld-dots > b > i:nth-child(2) { background: rgb(var(--dw-gold)); animation-delay: .15s; }
.dw-ld-dots > b > i:nth-child(3) { animation-delay: .3s; }
.dw-ld-dots .dw-brand-mark { animation: dwLdPulse 1.8s ease-in-out infinite; }

/* میله‌ها — لوگو بالای میله‌ها */
.dw-ld-bars { flex-direction: column; gap: 1.1em; align-items: center; display: inline-flex; }
.dw-ld-bars > b { display: inline-flex; gap: .45em; height: 3.6em; align-items: center; }
.dw-ld-bars > b > i { width: .8em; height: 100%; border-radius: .4em; background: linear-gradient(180deg, rgb(var(--dw-gold)), rgb(var(--dw-primary-600))); transform: scaleY(.3); animation: dwLdBars 1s ease-in-out infinite; }
.dw-ld-bars > b > i:nth-child(2) { animation-delay: .1s; } .dw-ld-bars > b > i:nth-child(3) { animation-delay: .2s; }
.dw-ld-bars > b > i:nth-child(4) { animation-delay: .3s; } .dw-ld-bars > b > i:nth-child(5) { animation-delay: .4s; }
.dw-ld-bars .dw-brand-mark { animation: dwLdPulse 1.8s ease-in-out infinite; }

/* شبکه — لوگو بالای شبکه */
.dw-ld-grid { flex-direction: column; gap: 1.1em; align-items: center; display: inline-flex; }
.dw-ld-grid > b { display: inline-grid; grid-template-columns: repeat(3, 1.4em); gap: .4em; }
.dw-ld-grid > b > i { width: 1.4em; height: 1.4em; border-radius: .35em; background: rgb(var(--dw-primary-600)); animation: dwLdGrid 1.2s ease-in-out infinite; }
.dw-ld-grid > b > i:nth-child(even) { background: rgb(var(--dw-gold)); }
.dw-ld-grid > b > i:nth-child(2), .dw-ld-grid > b > i:nth-child(4) { animation-delay: .1s; }
.dw-ld-grid > b > i:nth-child(3), .dw-ld-grid > b > i:nth-child(5), .dw-ld-grid > b > i:nth-child(7) { animation-delay: .2s; }
.dw-ld-grid > b > i:nth-child(6), .dw-ld-grid > b > i:nth-child(8) { animation-delay: .3s; }
.dw-ld-grid > b > i:nth-child(9) { animation-delay: .4s; }
.dw-ld-grid .dw-brand-mark { animation: dwLdPulse 1.8s ease-in-out infinite; }

/* نوار پیشرفت */
.dw-ld-bar { flex-direction: column; align-items: center; gap: 1.2em; display: inline-flex; }
.dw-ld-bar > b { position: relative; display: block; width: 13em; height: .5em; overflow: hidden; border-radius: .25em; background: rgb(var(--dw-primary-600) / .18); }
.dw-ld-bar > b > i { position: absolute; top: 0; bottom: 0; right: 0; width: 42%; border-radius: .25em; background: linear-gradient(270deg, rgb(var(--dw-primary-600)), rgb(var(--dw-gold))); animation: dwLdSlide 1.4s cubic-bezier(.5, 0, .4, 1) infinite; }
.dw-ld-bar .dw-brand-mark { animation: dwLdPulse 1.8s ease-in-out infinite; }

/* مربع متحرک — لوگو داخل مربع (ثابت؛ فقط مربع زیرش می‌چرخد) */
.dw-ld-morph { position: relative; width: 6em; height: 6em; align-items: center; justify-content: center; display: inline-flex; }
.dw-ld-morph > i { position: absolute; inset: .5em; border-radius: 22%; background: linear-gradient(135deg, rgb(var(--dw-primary-600)), rgb(var(--dw-gold))); box-shadow: 0 .6em 1.6em -.4em rgb(var(--dw-primary-600) / .55); animation: dwLdMorph 1.8s ease-in-out infinite; }
.dw-ld-morph .dw-brand-mark { position: relative; width: 3.8em; height: 3.8em; border-radius: 50%; animation: dwLdPulse 1.8s ease-in-out infinite; }
.dw-ld-morph .dw-ld-dotmark { position: relative; }


/* ===================================================== ۱۶ سبک تازه (همه با لوگوی دایره‌ای) ===================================================== */
.dw-ld-radar, .dw-ld-halo, .dw-ld-comet, .dw-ld-satellites, .dw-ld-dashring, .dw-ld-segments, .dw-ld-heartbeat, .dw-ld-flip, .dw-ld-bounce,
.dw-ld-material, .dw-ld-triple, .dw-ld-hexa, .dw-ld-scan, .dw-ld-shine, .dw-ld-spark, .dw-ld-atom {
  position: relative; width: 7em; height: 7em; align-items: center; justify-content: center; display: inline-flex;
}
.dw-ld-v .dw-brand-mark { --lg: 3.25em; }

/* رادار */
.dw-ld-radar > i { position: absolute; border-radius: 50%; border: .1em solid rgb(var(--dw-primary-600) / .22); }
.dw-ld-radar > i:nth-child(1) { inset: 0; }
.dw-ld-radar > i:nth-child(2) { inset: 1em; }
.dw-ld-radar > i:nth-child(3) { inset: 0; border: 0; background: conic-gradient(from 0deg, transparent 0 62%, rgb(var(--dw-primary-600) / .5) 100%); animation: dwLdSpin 1.9s linear infinite; }
.dw-ld-radar > i:nth-child(3)::after { content: ""; position: absolute; top: 0; left: 50%; width: .14em; height: 50%; margin-left: -.07em; border-radius: .1em; background: rgb(var(--dw-gold)); }

/* هاله */
.dw-ld-halo > i { position: absolute; inset: 0; border-radius: 50%; background: radial-gradient(circle, rgb(var(--dw-primary-500) / .55), rgb(var(--dw-primary-500) / 0) 68%); animation: dwLdHalo 2.4s ease-out infinite; opacity: 0; }
.dw-ld-halo > i:nth-child(2) { animation-delay: .8s; background: radial-gradient(circle, rgb(var(--dw-gold) / .55), rgb(var(--dw-gold) / 0) 68%); }
.dw-ld-halo > i:nth-child(3) { animation-delay: 1.6s; }
.dw-ld-halo .dw-brand-mark { animation: dwLdPulse 2.4s ease-in-out infinite; }

/* ستاره‌ی دنباله‌دار */
.dw-ld-comet > i { position: absolute; inset: 0; border-radius: 50%; border: .08em solid rgb(var(--dw-primary-600) / .16); }
.dw-ld-comet > b { position: absolute; inset: 0; border-radius: 50%; background: conic-gradient(from 0deg, transparent 0 55%, rgb(var(--dw-primary-600)) 100%);
  -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - .34em), #000 calc(100% - .32em)); mask: radial-gradient(farthest-side, transparent calc(100% - .34em), #000 calc(100% - .32em));
  animation: dwLdSpin 1.3s linear infinite; }
.dw-ld-comet > b::after { content: ""; position: absolute; top: 0; left: 50%; width: .34em; height: .34em; margin-left: -.17em; border-radius: 50%; background: rgb(var(--dw-gold)); box-shadow: 0 0 .7em .15em rgb(var(--dw-gold) / .8); }
.dw-ld-comet .dw-brand-mark { animation: dwLdPulse 2s ease-in-out infinite; }

/* ماهواره‌ها */
.dw-ld-satellites > i { position: absolute; border-radius: 50%; border: .06em dashed rgb(var(--dw-primary-600) / .2); animation: dwLdSpin 2.6s linear infinite; }
.dw-ld-satellites > i::before { content: ""; position: absolute; top: -.32em; left: 50%; width: .64em; height: .64em; margin-left: -.32em; border-radius: 50%; background: rgb(var(--dw-primary-600)); box-shadow: 0 0 .6em rgb(var(--dw-primary-600) / .6); }
.dw-ld-satellites > i:nth-child(1) { inset: 0; animation-duration: 3.2s; }
.dw-ld-satellites > i:nth-child(2) { inset: .6em; animation-duration: 2.2s; animation-direction: reverse; }
.dw-ld-satellites > i:nth-child(2)::before { background: rgb(var(--dw-gold)); box-shadow: 0 0 .6em rgb(var(--dw-gold) / .7); }
.dw-ld-satellites > i:nth-child(3) { inset: 1.2em; animation-duration: 1.6s; }
.dw-ld-satellites > i:nth-child(3)::before { width: .5em; height: .5em; margin-left: -.25em; top: -.25em; background: rgb(var(--dw-primary-400)); }

/* حلقه‌ی خط‌چین */
.dw-ld-dashring > i { position: absolute; border-radius: 50%; }
.dw-ld-dashring > i:nth-child(1) { inset: 0; border: .2em dashed rgb(var(--dw-primary-600)); animation: dwLdSpin 6s linear infinite; }
.dw-ld-dashring > i:nth-child(2) { inset: .7em; border: .2em dotted rgb(var(--dw-gold)); animation: dwLdSpin 4s linear infinite reverse; }

/* پره‌ها */
.dw-ld-segments > i { position: absolute; top: 0; left: 50%; width: .3em; height: 1em; margin-left: -.15em; border-radius: .2em; background: rgb(var(--dw-primary-600)); opacity: .15;
  transform-origin: 50% 3.5em; transform: rotate(calc(var(--i) * 30deg)); animation: dwLdTick 1.2s linear infinite; animation-delay: calc(var(--i) * -.1s); }
.dw-ld-segments > i:nth-child(even) { background: rgb(var(--dw-gold)); }

/* ضربان */
.dw-ld-heartbeat > i { position: absolute; inset: .6em; border-radius: 50%; border: .14em solid rgb(var(--dw-primary-600)); opacity: 0; animation: dwLdBeatRing 1.4s ease-out infinite; }
.dw-ld-heartbeat > i:nth-child(2) { border-color: rgb(var(--dw-gold)); animation-delay: .18s; }
.dw-ld-heartbeat .dw-brand-mark { animation: dwLdBeat 1.4s ease-in-out infinite; }

/* چرخش سه‌بعدی */
.dw-ld-flip { perspective: 40em; }
.dw-ld-flip > i { position: absolute; bottom: .3em; left: 50%; width: 3em; height: .55em; margin-left: -1.5em; border-radius: 50%; background: rgb(0 0 0 / .22); filter: blur(.25em); animation: dwLdShadow 2s ease-in-out infinite; }
.dw-ld-flip .dw-brand-mark { margin-bottom: .6em; animation: dwLdFlip 2s ease-in-out infinite; }

/* پرش */
.dw-ld-bounce > i { position: absolute; bottom: .55em; left: 50%; width: 3em; height: .55em; margin-left: -1.5em; border-radius: 50%; background: rgb(0 0 0 / .25); filter: blur(.22em); animation: dwLdShadow 1s cubic-bezier(.5, 0, .5, 1) infinite; }
.dw-ld-bounce .dw-brand-mark { margin-bottom: 1em; animation: dwLdHop 1s cubic-bezier(.5, 0, .5, 1) infinite; }

/* حلقه‌ی روان (متریال) */
.dw-ld-material > svg { position: absolute; inset: 0; width: 100%; height: 100%; animation: dwLdSpin 2s linear infinite; }
.dw-ld-material > svg circle { stroke: rgb(var(--dw-primary-600)); stroke-dasharray: 1 300; stroke-dashoffset: 0; animation: dwLdDash 1.5s ease-in-out infinite, dwLdHue 3s ease-in-out infinite; }
.dw-ld-material .dw-brand-mark { animation: dwLdPulse 2s ease-in-out infinite; }

/* سه کمان */
.dw-ld-triple > i { position: absolute; border-radius: 50%; border: .2em solid transparent; animation: dwLdSpin 1.2s linear infinite; }
.dw-ld-triple > i:nth-child(1) { inset: 0; border-top-color: rgb(var(--dw-primary-600)); }
.dw-ld-triple > i:nth-child(2) { inset: .55em; border-right-color: rgb(var(--dw-gold)); animation-duration: 1.7s; animation-direction: reverse; }
.dw-ld-triple > i:nth-child(3) { inset: 1.1em; border-bottom-color: rgb(var(--dw-primary-400)); animation-duration: 2.2s; }

/* شش‌ضلعی */
.dw-ld-hexa > i { position: absolute; inset: 0; background: conic-gradient(rgb(var(--dw-primary-600)), rgb(var(--dw-gold)), rgb(var(--dw-primary-600)));
  clip-path: polygon(50% 0, 93% 25%, 93% 75%, 50% 100%, 7% 75%, 7% 25%); animation: dwLdSpin 3.2s linear infinite; }
.dw-ld-hexa > i::after { content: ""; position: absolute; inset: .28em; background: rgb(var(--dw-surface-50)); clip-path: polygon(50% 0, 93% 25%, 93% 75%, 50% 100%, 7% 75%, 7% 25%); }
html.dark .dw-ld-hexa > i::after { background: rgb(var(--dw-surface-950)); }
.dw-ld-hexa .dw-brand-mark { animation: dwLdPulse 2s ease-in-out infinite; }

/* اسکن: دایره‌ی نورانی با خط اسکن روی لوگو */
.dw-ld-scan > u { position: absolute; inset: .55em; border-radius: 50%; border: .12em solid rgb(var(--dw-primary-600) / .35); animation: dwLdPulse 2s ease-in-out infinite; }
.dw-ld-scan > i { position: absolute; width: 4em; height: 4em; z-index: 2; border-radius: 50%; overflow: hidden; pointer-events: none; }
.dw-ld-scan > i::after { content: ""; position: absolute; left: 0; right: 0; top: 0; height: .9em; background: linear-gradient(180deg, transparent, rgb(var(--dw-primary-500) / .75), transparent); border-bottom: .12em solid rgb(var(--dw-gold)); animation: dwLdScan 1.6s ease-in-out infinite alternate; }

/* درخشش */
.dw-ld-shine > u { position: absolute; inset: .6em; border-radius: 50%; border: .1em solid rgb(var(--dw-gold) / .5); animation: dwLdPulse 2.4s ease-in-out infinite; }
.dw-ld-shine > i { position: absolute; width: 4em; height: 4em; z-index: 2; border-radius: 50%; overflow: hidden; pointer-events: none; }
.dw-ld-shine > i::after { content: ""; position: absolute; top: -20%; bottom: -20%; width: 40%; left: -60%; transform: skewX(-20deg); background: linear-gradient(90deg, transparent, rgb(255 255 255 / .85), transparent); animation: dwLdShine 1.8s ease-in-out infinite; }

/* جرقه‌ها */
.dw-ld-spark > i { position: absolute; top: 50%; left: 50%; width: .5em; height: .5em; margin: -.25em 0 0 -.25em; border-radius: 50%; background: rgb(var(--dw-primary-600));
  transform: rotate(calc(var(--i) * 45deg)) translateY(-2.2em); opacity: 0; animation: dwLdSpark 1.6s ease-out infinite; animation-delay: calc(var(--i) * .2s); }
.dw-ld-spark > i:nth-child(even) { background: rgb(var(--dw-gold)); }

/* اتم */
.dw-ld-atom > i { position: absolute; inset: 0; border-radius: 50%; border: .09em solid rgb(var(--dw-primary-600) / .5); transform: rotate(var(--r)) scaleY(.36); animation: dwLdAtom 2.4s linear infinite; }
.dw-ld-atom > i::before { content: ""; position: absolute; top: 50%; left: -.28em; width: .56em; height: 1.5em; margin-top: -.75em; border-radius: 50%; background: rgb(var(--dw-gold)); box-shadow: 0 0 .5em rgb(var(--dw-gold) / .8); }
.dw-ld-atom > i:nth-child(2) { animation-duration: 3s; }
.dw-ld-atom > i:nth-child(3) { animation-duration: 3.6s; animation-direction: reverse; }
.dw-ld-atom .dw-brand-mark { animation: dwLdPulse 2s ease-in-out infinite; }

@keyframes dwLdHalo { 0% { transform: scale(.45); opacity: .9; } 100% { transform: scale(1.1); opacity: 0; } }
@keyframes dwLdTick { 0% { opacity: 1; } 100% { opacity: .15; } }
@keyframes dwLdBeat { 0%, 100% { transform: scale(1); } 14% { transform: scale(1.16); } 28% { transform: scale(1); } 42% { transform: scale(1.1); } 70% { transform: scale(1); } }
@keyframes dwLdBeatRing { 0% { transform: scale(.7); opacity: .8; } 60%, 100% { transform: scale(1.45); opacity: 0; } }
@keyframes dwLdFlip { 0% { transform: rotateY(0); } 50% { transform: rotateY(180deg); } 100% { transform: rotateY(360deg); } }
@keyframes dwLdShadow { 0%, 100% { transform: scaleX(1); opacity: 1; } 50% { transform: scaleX(.55); opacity: .5; } }
@keyframes dwLdHop { 0%, 100% { transform: translateY(0) scale(1.06, .94); } 50% { transform: translateY(-1.6em) scale(1, 1); } }
@keyframes dwLdDash { 0% { stroke-dasharray: 1 300; stroke-dashoffset: 0; } 50% { stroke-dasharray: 160 300; stroke-dashoffset: -50; } 100% { stroke-dasharray: 160 300; stroke-dashoffset: -290; } }
@keyframes dwLdHue { 0%, 100% { stroke: rgb(var(--dw-primary-600)); } 50% { stroke: rgb(var(--dw-gold)); } }
@keyframes dwLdScan { from { top: -10%; } to { top: 75%; } }
@keyframes dwLdShine { 0% { left: -60%; } 55%, 100% { left: 120%; } }
@keyframes dwLdSpark { 0% { transform: rotate(calc(var(--i) * 45deg)) translateY(-2.1em) scale(1); opacity: 1; } 100% { transform: rotate(calc(var(--i) * 45deg)) translateY(-3.5em) scale(.2); opacity: 0; } }
@keyframes dwLdAtom { to { transform: rotate(calc(var(--r) + 360deg)) scaleY(.36); } }

@keyframes dwLdSpin { to { transform: rotate(360deg); } }
@keyframes dwLdPulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.09); } }
@keyframes dwLdGlow { 0%, 100% { opacity: .55; transform: scale(.95); } 50% { opacity: 1; transform: scale(1.12); } }
@keyframes dwLdRipple { 0% { transform: scale(.35); opacity: .9; } 100% { transform: scale(1); opacity: 0; } }
@keyframes dwLdBounce { 0%, 80%, 100% { transform: translateY(0) scale(.85); opacity: .6; } 40% { transform: translateY(-1.2em) scale(1.05); opacity: 1; } }
@keyframes dwLdBars { 0%, 100% { transform: scaleY(.3); } 50% { transform: scaleY(1); } }
@keyframes dwLdGrid { 0%, 70%, 100% { transform: scale(1); opacity: 1; } 35% { transform: scale(.3); opacity: .35; } }
@keyframes dwLdSlide { 0% { transform: translateX(100%); } 100% { transform: translateX(-260%); } }
@keyframes dwLdMorph { 0% { transform: rotate(0) scale(1); border-radius: 22%; } 40% { transform: rotate(180deg) scale(.8); border-radius: 50%; } 80%, 100% { transform: rotate(360deg) scale(1); border-radius: 22%; } }
@keyframes dwLdDot { 0%, 80%, 100% { transform: translateY(0); opacity: .35; } 40% { transform: translateY(-.4rem); opacity: 1; } }
@media (prefers-reduced-motion: reduce) {
  .dw-ld-v, .dw-ld-v *, .dw-loader-dots i, .dw-loader-card { animation-duration: 3s !important; }
}

