:root {
  --brand-blue: #3B82F6;
  --brand-pink: #EC4899;
  --brand-yellow: #FACC15;
  --brand-green: #22C55E;
}

* { font-family: 'Vazirmatn', system-ui, sans-serif; }

body {
  margin: 0;
  background:
    radial-gradient(circle at 15% 10%, rgba(236,72,153,0.12), transparent 40%),
    radial-gradient(circle at 85% 20%, rgba(59,130,246,0.12), transparent 40%),
    radial-gradient(circle at 50% 100%, rgba(250,204,21,0.10), transparent 45%),
    #f8fafc;
  min-height: 100vh;
}

/* Persian numbers render nicely */
input { font-family: 'Vazirmatn', sans-serif; }

/* logo spin */
.spin-slow { animation: spin 6s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }

/* cart badge pop */
.badge-pop { animation: badgePop 0.4s ease; }
@keyframes badgePop {
  0% { transform: scale(0.4); }
  60% { transform: scale(1.3); }
  100% { transform: scale(1); }
}

/* add-to-cart bounce */
.bounce-pop { animation: bouncePop 0.5s ease; }
@keyframes bouncePop {
  0% { transform: scale(1); }
  40% { transform: scale(1.08); }
  100% { transform: scale(1); }
}

/* toast */
.toast-in { animation: toastIn 0.35s cubic-bezier(.18,.89,.32,1.28); }
@keyframes toastIn {
  from { transform: translate(-50%, 30px); opacity: 0; }
  to { transform: translate(-50%, 0); opacity: 1; }
}

/* decorative dotted texture on slides */
.slide-dots {
  background-image: radial-gradient(rgba(255,255,255,0.6) 1.5px, transparent 1.5px);
  background-size: 22px 22px;
}

/* scrollbar */
::-webkit-scrollbar { width: 10px; }
::-webkit-scrollbar-thumb { background: linear-gradient(var(--brand-blue), var(--brand-pink)); border-radius: 10px; }
::-webkit-scrollbar-track { background: transparent; }