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

::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-thumb { background: #f472b6; border-radius: 10px; }

/* Slide animations */
@keyframes slideEnter {
  from { opacity: 0; transform: translateY(18px) scale(0.97); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}
.slide-enter { animation: slideEnter 0.7s ease both; }

@keyframes floatEmoji {
  0%,100% { transform: translateY(0); }
  50%     { transform: translateY(-10px); }
}
.float-emoji { animation: floatEmoji 3s ease-in-out infinite; }

.slide-shine {
  background: linear-gradient(120deg, transparent 30%, rgba(255,255,255,0.25) 50%, transparent 70%);
  background-size: 200% 100%;
  animation: shine 4s linear infinite;
}
@keyframes shine { from { background-position: 200% 0; } to { background-position: -200% 0; } }

/* Card entrance */
@keyframes cardEnter {
  from { opacity: 0; transform: translateY(24px); }
  to   { opacity: 1; transform: translateY(0); }
}
.card-enter { animation: cardEnter 0.5s ease both; }

/* Logo spin on hover */
.logo-spin { transition: transform 0.6s ease; }
.logo-spin:hover { transform: rotate(360deg) scale(1.1); }

/* Confetti */
.confetti-container {
  position: fixed; inset: 0; pointer-events: none; z-index: 9999; overflow: hidden;
}
.confetti-piece {
  position: absolute; top: -20px; border-radius: 2px;
  animation-name: confettiFall; animation-timing-function: ease-in; animation-fill-mode: forwards;
}
@keyframes confettiFall {
  to { transform: translateY(110vh) rotate(720deg); opacity: 0; }
}
</parameter>