/*
 * Alo Imeni — Animations
 * keyframeها، scroll-reveal، transitionهای تعاملی. بدون لوپِ پرتکرار.
 * برای prefers-reduced-motion همه‌چیز آرام/خاموش می‌شود.
 */
@keyframes aloReveal{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}

.alo-reveal{animation:aloReveal both;animation-timeline:view();animation-range:entry 0% cover 22%}

/*
 * وقتی مودال/دراور باز می‌شود اسکرول قفل می‌شود (overflow:hidden روی html/body).
 * در این حالت اسکرولرِ صفحه غیرقابل‌اسکرول شده و تایم‌لاینِ view() غیرفعال می‌شود؛
 * در نتیجه المان‌های alo-reveal به کیفریمِ اولیه (opacity:0) برمی‌گردند و کاربر
 * حس می‌کند کلی المانِ صفحه ناگهان محو و صفحه خراب شده. با خاموش‌کردن انیمیشن
 * هنگام قفلِ اسکرول، محتوا کاملاً پیدا و ثابت می‌ماند.
 */
html.alo-drawer-open .alo-reveal,
body.alo-drawer-open .alo-reveal,
html.alo-modal-open .alo-reveal,
body.alo-modal-open .alo-reveal{animation:none}

/*
 * پایداری رندر (رفع کرش SIGILL کروم): باز/بستنِ مکررِ مودال، تایم‌لاین‌های
 * scroll-drivenِ view() را با هر toggle تخریب/بازسازی می‌کند و در Chromium
 * می‌تواند renderer را crash کند. core.js پس از اولین باز شدن مودال/دراور
 * این کلاس را «برای همیشه» روی <html> می‌گذارد تا دیگر هیچ چرخهٔ ساخت/تخریبی
 * رخ ندهد؛ محتوا کاملاً پیدا می‌ماند و فقط افکتِ reveal ادامهٔ جلسه حذف می‌شود.
 */
html.alo-reveal-off .alo-reveal{animation:none}

/* transition پایهٔ تعامل */
.alo-tap{transition:transform var(--alo-transition-normal),box-shadow var(--alo-transition-normal),background var(--alo-transition-fast),border-color var(--alo-transition-fast)}

/* hoverهای استاندارد */
.alo-card{transition:transform var(--alo-transition-normal),box-shadow var(--alo-transition-normal)}
.alo-card:hover{transform:translateY(-4px);box-shadow:var(--alo-shadow-premium)}
.alo-prod:hover{transform:translateY(-4px);box-shadow:var(--alo-shadow-premium)}
.alo-prod:hover .alo-prod-img{transform:scale(1.04)}
.alo-prod-img{transition:transform var(--alo-transition-normal)}

/* اسکرول‌بارِ مخفی برای اسلایدرها */
.alo-noscroll{scrollbar-width:none;-ms-overflow-style:none}
.alo-noscroll::-webkit-scrollbar{display:none;width:0;height:0}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.001ms!important;
    animation-iteration-count:1!important;
    transition-duration:.001ms!important;
    scroll-behavior:auto!important;
  }
  .alo-reveal{animation:none}
}

body.alo-no-animations *,
body.alo-no-animations *::before,
body.alo-no-animations *::after,
body.alo-reduced-motion *,
body.alo-reduced-motion *::before,
body.alo-reduced-motion *::after{
  animation-duration:.001ms!important;
  animation-iteration-count:1!important;
  transition-duration:.001ms!important;
  scroll-behavior:auto!important;
}
body.alo-no-animations .alo-reveal,
body.alo-reduced-motion .alo-reveal{animation:none}
