/* ============================================================
   Learneo FX v3 — لودر نرم، موج انتقال بین صفحات، نوار پایینی موبایل
   ============================================================ */

/* ---------- لودر ورود صفحه ---------- */
#ln-loader{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;
  background:radial-gradient(900px 500px at 50% -10%,var(--ln-hero-a),transparent 60%),var(--ln-bg);
  transition:opacity .5s ease,visibility .5s ease}
#ln-loader.is-done{opacity:0;visibility:hidden;pointer-events:none}
.ln-loader-in{display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center}
.ln-loader-art{position:relative;width:132px;height:132px;display:grid;place-items:center}
.ln-loader-ring{position:absolute;inset:0;border-radius:50%;border:4px solid var(--ln-accent-soft);border-top-color:var(--ln-accent);animation:lnRingSpin 1.2s cubic-bezier(.6,.2,.4,.8) infinite}
.ln-loader-ring::after{content:"";position:absolute;inset:10px;border-radius:50%;border:3px dotted color-mix(in srgb,var(--ln-purple) 55%,transparent);animation:lnRingSpin 5s linear infinite reverse}
.ln-loader-plane{display:grid;place-items:center;width:78px;height:78px;font-size:36px;background:var(--ln-surface);border-radius:50%;box-shadow:var(--ln-shadow);animation:lnPlaneBob 1.7s ease-in-out infinite}
@keyframes lnRingSpin{to{transform:rotate(360deg)}}
@keyframes lnPlaneBob{0%,100%{transform:translateY(0) rotate(-8deg)}50%{transform:translateY(-9px) rotate(6deg)}}
.ln-loader-word{font-weight:900;font-size:24px;color:var(--ln-text);letter-spacing:.5px;direction:ltr}
.ln-loader-word i{font-style:normal;color:var(--ln-accent);font-size:.72em}
.ln-loader-bar{width:150px;height:16px;background:none;border:0;display:flex;justify-content:center;gap:10px;overflow:visible}
.ln-loader-bar i{display:block;width:14px;height:14px;border-radius:50%;background:var(--ln-accent);
  animation:lnDot 1s ease-in-out infinite;
  box-shadow:26px 0 0 var(--ln-gold),52px 0 0 var(--ln-pink)}
@keyframes lnDot{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
.ln-loader-txt{font-size:13.5px;font-weight:700;color:var(--ln-muted)}

/* ---------- انتقال بین صفحات: موج آسمانی نرم ---------- */
#ln-pt{position:fixed;inset:0;z-index:9990;visibility:hidden;pointer-events:none;overflow:hidden}
#ln-pt.is-out{visibility:visible;pointer-events:auto}
.ln-pt-p{position:absolute;left:-10%;right:-10%;top:-8%;bottom:-8%;transform:translateY(-112%);border-radius:0 0 46% 46%}
.ln-pt-p:nth-child(1){background:color-mix(in srgb,var(--ln-accent) 35%,var(--ln-bg))}
.ln-pt-p:nth-child(2){background:color-mix(in srgb,var(--ln-accent) 70%,var(--ln-bg))}
.ln-pt-p:nth-child(3){background:linear-gradient(160deg,var(--ln-accent),var(--ln-purple))}
#ln-pt.is-out .ln-pt-p{transition:transform .45s cubic-bezier(.65,0,.35,1);transform:none}
#ln-pt.is-out .ln-pt-p:nth-child(2){transition-delay:.07s}
#ln-pt.is-out .ln-pt-p:nth-child(3){transition-delay:.14s}
.ln-pt-plane{position:absolute;top:50%;left:50%;display:grid;place-items:center;width:92px;height:92px;font-size:42px;background:rgba(255,255,255,.92);border-radius:50%;box-shadow:0 14px 30px rgba(0,0,40,.25);opacity:0;transform:translate(-50%,-50%) scale(.3)}
#ln-pt.is-out .ln-pt-plane{animation:lnPtPlane .5s .22s cubic-bezier(.3,1.6,.5,1) forwards}
@keyframes lnPtPlane{to{opacity:1;transform:translate(-50%,-50%) scale(1)}}

/* ---------- نوار پیشرفت اسکرول ---------- */
#ln-scrollbar{position:fixed;top:0;right:0;height:5px;width:0;z-index:9980;border-radius:0 0 0 6px;
  background:linear-gradient(270deg,var(--ln-accent),var(--ln-purple),var(--ln-pink))}

/* ---------- تایپوگرافی متحرک تیتر ---------- */
.ln-hero h1 .ln-w{display:inline-block;white-space:pre-wrap}
.ln-hero h1.is-split .ln-w{animation:lnWordUp .75s calc(var(--i,0)*.09s + .15s) cubic-bezier(.3,1.5,.5,1) both}
@keyframes lnWordUp{from{opacity:0;transform:translateY(24px) scale(.9)}to{opacity:1;transform:none}}

/* ---------- ریپل دکمه‌ها ---------- */
.ln-btn,.ln-opt,.ln-check,.ln-chip,.ln-tab{overflow:hidden;position:relative}
.ln-ripple{position:absolute;border-radius:50%;pointer-events:none;background:currentColor;opacity:.25;transform:scale(0);animation:lnRipple .6s ease-out forwards}
@keyframes lnRipple{to{transform:scale(1);opacity:0}}

/* ---------- هاله نور کارت‌ها زیر موس ---------- */
.ln-card{position:relative}
.ln-card::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .3s;
  background:radial-gradient(300px circle at var(--mx,50%) var(--my,50%),color-mix(in srgb,var(--ln-accent) 14%,transparent),transparent 70%)}
.ln-card:hover::after{opacity:1}
.ln-card.is-tilt{transition:transform .12s ease-out;will-change:transform}

/* ---------- ستاره دنباله‌دار (تم تاریک) ---------- */
.ln-shoot{position:fixed;width:120px;height:2px;z-index:-1;pointer-events:none;border-radius:99px;
  background:linear-gradient(270deg,rgba(255,255,255,.9),transparent);
  animation:lnShoot 1.5s ease-out forwards}
@keyframes lnShoot{from{opacity:0;transform:translate(0,0) rotate(200deg)}15%{opacity:1}to{opacity:0;transform:translate(-340px,180px) rotate(200deg)}}
[data-theme="light"] .ln-shoot{display:none}

/* ---------- ورود نرم محتوای صفحه ---------- */
.ln-main{animation:lnPageIn .55s cubic-bezier(.25,1.2,.4,1) both}
@keyframes lnPageIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}

/* ---------- نوار پایینی اپ‌مانند (موبایل) ---------- */
#ln-tabbar{position:fixed;bottom:12px;left:14px;right:14px;z-index:9970;display:none;
  background:color-mix(in srgb,var(--ln-bg2) 94%,transparent);backdrop-filter:blur(12px);
  border-radius:26px;box-shadow:var(--ln-shadow);padding:8px 6px calc(8px + env(safe-area-inset-bottom))}
#ln-tabbar a{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;
  color:var(--ln-muted);font-size:11px;font-weight:700;padding:6px 2px;border-radius:18px;transition:all .2s cubic-bezier(.3,1.4,.5,1)}
#ln-tabbar a .tico{font-size:21px;line-height:1.2;transition:transform .2s cubic-bezier(.3,1.6,.5,1)}
#ln-tabbar a.is-active{color:var(--ln-accent);background:var(--ln-accent-soft)}
#ln-tabbar a.is-active .tico{transform:translateY(-2px) scale(1.15)}
@media (max-width:860px){
  #ln-tabbar{display:flex}
  .ln-main{padding-bottom:92px}
  .ln-footer{padding-bottom:84px}
  .ln-toasts{bottom:96px}
}
body:has(.ln-player.is-open) #ln-tabbar{display:none}

/* ---------- کاهش حرکت ---------- */
@media (prefers-reduced-motion:reduce){
  #ln-loader{display:none}
  #ln-pt{display:none}
  .ln-hero h1.is-split .ln-w{animation:none}
  .ln-ripple{display:none}
  .ln-shoot{display:none}
  .ln-main{animation:none}
  .ln-loader-ring,.ln-loader-ring::after,.ln-loader-plane,.ln-loader-bar i{animation:none}
}
