/* ==========================================================
   Exon AI – Page Transition Loader (CSS)
   همه‌ی کلاس‌ها با پیشوند .exb هستند تا با استایل سایت تداخل نکنند
   ========================================================== */
html.exb-boot{overflow:hidden}
html.exb-boot body{visibility:hidden}

.exb{
  --s:clamp(130px,26vmin,210px);
  --exb-ice:#9ddcff;--exb-red:#cb1321;--exb-ember:#ff6a3d;--exb-txt:#e8eefb;
  position:fixed;inset:0;z-index:2147483647;display:grid;place-items:center;overflow:hidden;
  direction:ltr;color:var(--exb-txt);cursor:progress;
  font-family:BrolinkFont,Vazirmatn,system-ui,sans-serif;
  opacity:0;-webkit-backdrop-filter:blur(0);backdrop-filter:blur(0);
  transition:opacity .7s ease,backdrop-filter .7s ease,-webkit-backdrop-filter .7s ease;
}
.exb *,.exb *::before,.exb *::after{box-sizing:border-box;margin:0;padding:0}
.exb.exb-on{opacity:1;-webkit-backdrop-filter:blur(24px) saturate(1.25);backdrop-filter:blur(24px) saturate(1.25)}
.exb.exb-out{pointer-events:none}
.exb-nofx,.exb-nofx *{transition:none!important}

/* پس‌زمینه: نقطه‌چین + لکه‌های قرمز/آبی هم‌سبک با پیش‌لودر index */
.exb-bg{
  position:absolute;inset:0;opacity:0;transition:opacity .6s ease;
  background:
    radial-gradient(rgba(157,220,255,.09) 1px,transparent 1.5px) 0 0/22px 22px,
    radial-gradient(ellipse at 50% 42%,rgba(20,34,70,.78),rgba(3,5,12,.96) 70%),
    #04060c;
}
.exb-on .exb-bg{opacity:1}
.exb-bg::before,.exb-bg::after{content:"";position:absolute;width:46vmax;height:46vmax;border-radius:50%;filter:blur(40px);opacity:.55}
.exb-bg::before{left:-12vmax;top:-10vmax;background:radial-gradient(circle,rgba(203,19,33,.38),transparent 65%)}
.exb-bg::after{right:-12vmax;bottom:-14vmax;background:radial-gradient(circle,rgba(90,160,255,.34),transparent 65%)}
.exb-glint{position:absolute;inset:0;background:linear-gradient(105deg,transparent 40%,rgba(255,255,255,.06) 50%,transparent 60%);transform:translateX(-100%);animation:exb-glint 3.4s ease-in-out infinite}
@keyframes exb-glint{to{transform:translateX(100%)}}
.exb-aura{position:absolute;left:50%;top:50%;width:calc(var(--s)*2.1);height:calc(var(--s)*2.1);translate:-50% -56%;border-radius:50%;
  background:radial-gradient(circle,rgba(90,160,255,.30),rgba(203,19,33,.12) 48%,transparent 70%);filter:blur(30px);animation:exb-aura 4s ease-in-out infinite}
@keyframes exb-aura{50%{transform:scale(1.14);opacity:.75}}

/* محتوا */
.exb-main{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center}
.exb-core{position:relative;width:var(--s);height:var(--s);display:grid;place-items:center;
  transition:transform .7s cubic-bezier(.2,.7,.2,1),filter .6s ease,opacity .5s ease}
.exb-out .exb-core,.exb-out .exb-brand,.exb-out .exb-bar{transform:scale(1.1);filter:blur(6px);opacity:0}
.exb-brand,.exb-bar{transition:transform .7s ease,filter .6s ease,opacity .5s ease}

.exb-ring{position:absolute;border-radius:50%;pointer-events:none}
.exb-ring.r1{inset:-20%;border:1px solid rgba(157,220,255,.10);border-top-color:#9ddcff;border-left-color:rgba(255,106,61,.45);animation:exb-spin 2.6s linear infinite}
.exb-ring.r2{inset:-34%;border:1px dashed rgba(157,220,255,.16);animation:exb-spin 16s linear infinite reverse}
@keyframes exb-spin{to{transform:rotate(360deg)}}

/* مغز */
.exb-brain{width:122%;max-width:none;height:auto;overflow:visible;
  filter:drop-shadow(0 0 12px rgba(90,160,255,.5));
  animation:exb-float 4.6s ease-in-out infinite,exb-glow 3.2s ease-in-out infinite}
@keyframes exb-float{50%{transform:translateY(-5px)}}
@keyframes exb-glow{50%{filter:drop-shadow(0 0 20px rgba(255,106,61,.5))}}

.exb-o{stroke-width:2.2;stroke-linejoin:round}
.exb-L .exb-o{fill:rgba(203,19,33,.16);stroke:#ff7a70}
.exb-R .exb-o{fill:rgba(59,107,255,.09);stroke:#9ddcff;stroke-dasharray:7 4}
.exb-l{fill:none;stroke-width:1.4;stroke-linecap:round}
.exb-L .exb-l{stroke:rgba(255,140,130,.38)}
.exb-R .exb-l{stroke:rgba(157,220,255,.32)}
.exb-t{fill:none;stroke:rgba(157,220,255,.5);stroke-width:1.2;stroke-linejoin:round;stroke-linecap:round}

/* پالس‌های فکر (جریان عصبی) */
.exb-p{fill:none;stroke-width:2.2;stroke-linecap:round;stroke-dasharray:14 86;stroke-dashoffset:100;
  animation:exb-flow 2.4s linear infinite;animation-delay:var(--d,0s)}
.exb-L .exb-p{stroke:#ffd0c8}
.exb-R .exb-p{stroke:#e6f7ff}
@keyframes exb-flow{to{stroke-dashoffset:0}}
.exb-R .exb-p,.exb-R .exb-n{animation-delay:calc(var(--d,0s) + .8s)}

.exb-n{transform-box:fill-box;transform-origin:center;animation:exb-blink 2.4s ease-in-out infinite;animation-delay:var(--d,0s)}
.exb-L .exb-n{fill:#ff8a7e}
.exb-R .exb-n{fill:#9ddcff}
.exb-n.hot{fill:var(--exb-ember)}
@keyframes exb-blink{0%,100%{opacity:.35;transform:scale(.8)}50%{opacity:1;transform:scale(1.6)}}

.exb-scan{animation:exb-scan 2.8s ease-in-out infinite}
@keyframes exb-scan{0%{transform:translateY(0)}100%{transform:translateY(190px)}}

/* حباب‌های فکر */
.exb-b{fill:rgba(157,220,255,.9);transform-box:fill-box;transform-origin:center;opacity:0;animation:exb-bubble 2.4s ease-in-out infinite;animation-delay:var(--d,0s)}
@keyframes exb-bubble{0%{opacity:0;transform:scale(.4)}25%{opacity:1;transform:scale(1)}70%{opacity:1}100%{opacity:0;transform:scale(1.15)}}

/* متن برند (هم‌ریخت با پیش‌لودر index) */
.exb-brand{direction:ltr;margin-top:calc(var(--s)*.38);line-height:1;white-space:nowrap;color:#e8eefb;
  text-shadow:0 0 18px rgba(157,220,255,.4);animation:exb-txt 3.2s ease-in-out infinite}
.exb-brand b{font-weight:400;font-size:clamp(28px,7.5vw,42px);letter-spacing:.06em}
.exb-brand .text-danger{font-size:.64em;margin:0 8px;color:#cb1321}
@keyframes exb-txt{50%{text-shadow:0 0 26px rgba(255,106,61,.45)}}

.exb-bar{direction:ltr;width:150px;height:2px;margin-top:20px;border-radius:2px;background:rgba(157,220,255,.18);overflow:hidden;position:relative}
.exb-bar::after{content:"";position:absolute;inset:0;width:42%;background:linear-gradient(90deg,#ff6a3d,#9ddcff);box-shadow:0 0 12px #9ddcff;animation:exb-bar 1.5s ease-in-out infinite}
@keyframes exb-bar{from{transform:translateX(-100%)}to{transform:translateX(250%)}}

@media (prefers-reduced-motion:reduce){
  .exb-brain,.exb-ring,.exb-scan,.exb-aura,.exb-glint,.exb-brand{animation:none!important}
}
