body {
  font-family: 'Inter', sans-serif;
  overflow-x: hidden;
}

.doily-border {
  position: relative;
}

.doily-border::before {
  content: '';
  position: absolute;
  top: -2px;
  left: -2px;
  right: -2px;
  bottom: -2px;
  background: repeating-linear-gradient(
    45deg,
    #E6D5F5,
    #E6D5F5 10px,
    #FFDAB9 10px,
    #FFDAB9 20px
  );
  border-radius: inherit;
  z-index: -1;
  opacity: 0.3;
}

.recipe-card {
  background: linear-gradient(135deg, #FFF8DC 0%, #FFDAB9 100%);
  box-shadow: 0 10px 30px rgba(147, 51, 234, 0.15);
}

.magic-button {
  background: linear-gradient(135deg, #9333EA 0%, #EC4899 100%);
  box-shadow: 0 8px 20px rgba(147, 51, 234, 0.3);
}

.magic-button:hover:not(:disabled) {
  box-shadow: 0 12px 30px rgba(147, 51, 234, 0.4);
}

.confetti {
  animation: confetti-fall 2s ease-in-out;
}

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

.animate-fade-in {
  animation: fade-in 0.5s ease-in;
}

@keyframes fade-in {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Increase click target sizes for accessibility */
button, a {
  min-height: 44px;
  min-width: 44px;
}

/* High contrast mode support */
@media (prefers-contrast: high) {
  .border-purple-200 {
    border-color: #7C3AED;
  }
  .text-gray-700 {
    color: #1F2937;
  }
}

/* Print styles */
@media print {
  .fixed {
    position: relative;
  }
  .shadow-2xl, .shadow-xl, .shadow-lg {
    box-shadow: none;
  }
  button {
    border: 2px solid #9333EA;
  }
}