@import url('https://fonts.googleapis.com/css2?family=Great+Vibes&family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Montserrat:wght@300;400;600&display=swap');

body {
  font-family: 'Montserrat', sans-serif;
  background-color: #f8f5f2;
  overflow-x: hidden;
}
.font-serif { font-family: 'Playfair Display', serif; }
.font-script { font-family: 'Great Vibes', cursive; }

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

@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(30px); filter: blur(4px); }
  to { opacity: 1; transform: translateY(0); filter: blur(0); }
}
.animate-reveal { animation: fadeInUp 1s cubic-bezier(0.22, 1, 0.36, 1) forwards; opacity: 0; }

@keyframes soft-pulse {
  0% { transform: scale(1); opacity: 0.3; }
  50% { transform: scale(1.1); opacity: 0.5; }
  100% { transform: scale(1); opacity: 0.3; }
}
.animate-soft-pulse { animation: soft-pulse 4s ease-in-out infinite; }

@keyframes line-expand {
  from { width: 0; }
  to { width: 100%; }
}
.animate-line-expand { animation: line-expand 1.5s ease-out forwards; }

@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}
.animate-fade { animation: fadeIn 1.2s ease-out forwards; }

@keyframes bounceIn {
  0% { transform: scale(0.3); opacity: 0; }
  50% { transform: scale(1.05); opacity: 1; }
  70% { transform: scale(0.9); }
  100% { transform: scale(1); }
}
.animate-bounce-in { animation: bounceIn 0.8s ease-out; }

/* Envelope specific */
.perspective-1000 { perspective: 1000px; }
.rotate-x-15 { transform: rotateX(15deg); }
.clip-path-bottom { clip-path: polygon(0 100%, 100% 100%, 50% 0); }
.clip-path-left { clip-path: polygon(0 0, 0 100%, 100% 50%); }
.clip-path-right { clip-path: polygon(100% 0, 100% 100%, 0 50%); }
.clip-path-top { clip-path: polygon(0 0, 100% 0, 50% 100%); }

/* Hide scrollbar for gallery */
.hide-scrollbar::-webkit-scrollbar {
  display: none;
}
.hide-scrollbar {
  -ms-overflow-style: none;
  scrollbar-width: none;
}
