* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  -webkit-tap-highlight-color: transparent;
}

:root {
  --berry-dark: #1A0A24;
  --berry-purple: #4A1A6B;
  --berry-pink: #E91E8C;
  --berry-light: #F8C8E0;
  --mint-green: #00D9A5;
  --deep-purple: #2D1142;
  --card-shadow: 0 8px 32px rgba(233, 30, 140, 0.2);
}

body {
  font-family: 'DM Sans', sans-serif;
  background: var(--berry-dark);
  min-height: 100vh;
  overflow-x: hidden;
}

.font-mono {
  font-family: 'Space Mono', monospace;
}

@keyframes pulse-glow {
  0%, 100% { box-shadow: 0 0 20px rgba(233, 30, 140, 0.3); }
  50% { box-shadow: 0 0 40px rgba(233, 30, 140, 0.6); }
}

@keyframes bounce-subtle {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}

@keyframes slide-up {
  from { transform: translateY(100%); opacity: 0; }
  to { transform: translateY(0); opacity: 1; }
}

@keyframes confetti-fall {
  0% { transform: translateY(-100vh) rotate(0deg); opacity: 1; }
  100% { transform: translateY(100vh) rotate(720deg); opacity: 0; }
}

@keyframes count-up {
  from { opacity: 0.5; transform: scale(0.95); }
  to { opacity: 1; transform: scale(1); }
}

@keyframes shimmer {
  0% { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}

.animate-pulse-glow {
  animation: pulse-glow 2s ease-in-out infinite;
}

.animate-bounce-subtle {
  animation: bounce-subtle 1s ease-in-out infinite;
}

.animate-slide-up {
  animation: slide-up 0.3s ease-out forwards;
}

.animate-count {
  animation: count-up 0.3s ease-out;
}

.card-gradient-checking {
  background: linear-gradient(135deg, #E91E8C 0%, #FF6B9D 100%);
}

.card-gradient-savings {
  background: linear-gradient(135deg, #00D9A5 0%, #00F5B8 100%);
}

.card-gradient-credit {
  background: linear-gradient(135deg, #4A1A6B 0%, #7B3FA0 100%);
}

.header-gradient {
  background: linear-gradient(135deg, #4A1A6B 0%, #E91E8C 100%);
}

.shimmer-effect {
  background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.1) 50%, transparent 100%);
  background-size: 200% 100%;
  animation: shimmer 2s infinite;
}

.scrollbar-hide::-webkit-scrollbar {
  display: none;
}

.scrollbar-hide {
  -ms-overflow-style: none;
  scrollbar-width: none;
}

.confetti {
  position: fixed;
  width: 10px;
  height: 10px;
  pointer-events: none;
  animation: confetti-fall 3s linear forwards;
  z-index: 9999;
}

.active-tab {
  color: #E91E8C;
  position: relative;
}

.active-tab::after {
  content: '';
  position: absolute;
  bottom: -4px;
  left: 50%;
  transform: translateX(-50%);
  width: 4px;
  height: 4px;
  background: #E91E8C;
  border-radius: 50%;
}

.btn-press:active {
  transform: scale(0.95);
  transition: transform 0.1s;
}

.pull-indicator {
  transition: transform 0.2s ease-out;
}