body { -webkit-font-smoothing: antialiased; }

.thin-scroll::-webkit-scrollbar { width: 6px; }
.thin-scroll::-webkit-scrollbar-track { background: transparent; }
.thin-scroll::-webkit-scrollbar-thumb { background: #E3E6EB; border-radius: 999px; }
.thin-scroll::-webkit-scrollbar-thumb:hover { background: #CDD2DA; }

@keyframes halo {
  0%, 100% { transform: scale(1);    opacity: .55; }
  50%      { transform: scale(1.14); opacity: .18; }
}
.halo { animation: halo 3.2s ease-in-out infinite; }

@keyframes pop {
  from { opacity: 0; transform: translateY(8px) scale(.985); }
  to   { opacity: 1; transform: translateY(0)   scale(1); }
}
.pop { animation: pop .28s cubic-bezier(.22,1,.36,1) both; }

/* Loading state: ikon bintang AI berputar */
@keyframes spin-star {
  0%   { transform: rotate(0deg)   scale(1); }
  50%  { transform: rotate(180deg) scale(1.15); }
  100% { transform: rotate(360deg) scale(1); }
}
.spin-star { animation: spin-star 1.4s linear infinite; transform-origin: center; }

@keyframes shimmer {
  0%, 100% { opacity: .45; }
  50%      { opacity: 1; }
}
.shimmer { animation: shimmer 1.4s ease-in-out infinite; }

.slide { transition: opacity .5s ease; }
:focus-visible { outline: 2px solid #E1251B; outline-offset: 2px; border-radius: 6px; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
  }
}
