* { font-family: 'Vazirmatn', sans-serif; box-sizing: border-box; }
body { margin: 0; background: #000; }

.no-scrollbar::-webkit-scrollbar { display: none; }
.no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }

::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background: #0a0a0a; }
::-webkit-scrollbar-thumb { background: #333; border-radius: 4px; }

@keyframes toastIn {
  from { opacity: 0; transform: translate(-50%, 20px); }
  to { opacity: 1; transform: translate(-50%, 0); }
}
.toast-in { animation: toastIn 0.3s ease-out; }

@keyframes blink {
  0%, 92%, 100% { opacity: 1; }
  94%, 98% { opacity: 0.15; }
}
.blink { animation: blink 4s infinite; }

.spinner {
  width: 44px; height: 44px;
  border: 4px solid #262626;
  border-top-color: #8b5cf6;
  border-radius: 50%;
  animation: spin 0.8s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }

.scanlines {
  background: repeating-linear-gradient(
    to bottom,
    transparent 0px,
    transparent 2px,
    rgba(139, 92, 246, 0.06) 3px,
    rgba(139, 92, 246, 0.06) 4px
  );
  animation: scanmove 6s linear infinite;
}
@keyframes scanmove {
  from { background-position-y: 0; }
  to { background-position-y: 100px; }
}

img { -webkit-user-drag: none; }