/* Base & Typography Settings */
:root {
  --color-dusty: #E8B4B8;
  --color-deep: #BE6B7B;
  --color-gold: #D4AF37;
}

body {
  font-feature-settings: "cv02", "cv03", "cv04", "cv11";
  user-select: none;
  -webkit-user-select: none;
}

/* Custom badge styling */
.badge-tag {
  @apply inline-block mx-auto px-3.5 py-1 rounded-full text-xs font-semibold text-deepRose bg-rosePastel border border-dustyRose/30 mb-2 shadow-sm;
}

/* Button Stylings */
.primary-action-btn {
  @apply py-3.5 px-6 rounded-2xl bg-gradient-to-r from-deepRose via-[#C97B8B] to-deepRose text-white font-bold text-base shadow-md shadow-deepRose/20 hover:shadow-deepRose/35 transform transition duration-200 hover:-translate-y-0.5 active:translate-y-0 flex items-center justify-center gap-2;
}

.secondary-action-btn {
  @apply py-3.5 px-5 rounded-2xl bg-white text-warmBrown border border-dustyRose/40 font-semibold text-sm hover:bg-rosePastel/40 transition active:scale-95;
}

/* Dots navigation indicators */
.dot-step {
  width: 8px;
  height: 8px;
  border-radius: 9999px;
  background-color: #E2D7D9;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  cursor: pointer;
}

.dot-step.active {
  width: 22px;
  background-color: #BE6B7B;
}

/* Polaroid Photo Frame Styling */
.polaroid-frame {
  box-shadow: 0 10px 25px -5px rgba(190, 107, 123, 0.15), 0 8px 10px -6px rgba(0, 0, 0, 0.05);
  transform: rotate(-1.5deg);
}

.polaroid-frame:hover {
  transform: rotate(0deg) scale(1.02);
}

/* Heart pulsing animation */
@keyframes heartBeat {
  0% { transform: scale(1); }
  14% { transform: scale(1.2); }
  28% { transform: scale(1); }
  42% { transform: scale(1.2); }
  70% { transform: scale(1); }
}

.heart-pulse {
  animation: heartBeat 1.8s infinite ease-in-out;
}

@keyframes spinSlow {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

.animate-spin-slow {
  animation: spinSlow 16s linear infinite;
}

/* Smooth fade in */
@keyframes fadeIn {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: translateY(0); }
}

.animate-fade-in {
  animation: fadeIn 0.6s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

/* Parchment subtle texture */
.parchment-texture {
  background-image: radial-gradient(#F5EAE4 1px, transparent 1px);
  background-size: 20px 20px;
}