.perspective-container {
  perspective: 1200px;
}

.map-tilt-card {
  transform-style: preserve-3d;
  transform: rotateX(7deg) rotateY(-9deg) rotateZ(1.5deg);
  transition: transform 0.8s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.8s ease;
  box-shadow: -15px 20px 40px -10px rgba(10, 31, 92, 0.08), 0px 8px 16px -4px rgba(243, 111, 33, 0.05);
}

.map-tilt-card:hover {
  transform: rotateX(0deg) rotateY(0deg) rotateZ(0deg) scale(1.015);
  box-shadow: 0px 25px 50px -12px rgba(10, 31, 92, 0.15), 0px 10px 20px -8px rgba(243, 111, 33, 0.1);
}

.glass-badge {
  transform: translateZ(25px);
  box-shadow: 0 8px 25px -5px rgba(0, 0, 0, 0.06);
}

.input-field-container {
  position: relative;
}

.floating-label {
  position: absolute;
  left: 1rem;
  top: 0.85rem;
  transition: all 0.2s ease-out;
  pointer-events: none;
  color: #94a3b8;
}

.input-field:focus ~ .floating-label,
.input-field:not(:placeholder-shown) ~ .floating-label {
  top: -0.5rem;
  left: 0.75rem;
  font-size: 0.7rem;
  padding: 0 0.4rem;
  background-color: white;
  color: #F36F21;
  font-weight: 800;
}

.input-field:focus {
  border-color: #F36F21;
  box-shadow: 0 0 0 4px rgba(243, 111, 33, 0.08);
}

@keyframes phone-pulse {
  0%, 100% { transform: scale(1) rotate(0deg); }
  25% { transform: scale(1.1) rotate(-8deg); }
  50% { transform: scale(1.1) rotate(8deg); }
  75% { transform: scale(1.1) rotate(-4deg); }
}

.hover-phone-animate:hover svg {
  animation: phone-pulse 0.6s ease-in-out;
}

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

.hover-envelope-animate:hover svg {
  animation: envelope-bounce 0.6s ease-in-out;
}

@keyframes clock-spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

.hover-clock-animate:hover svg .clock-hand {
  transform-origin: 12px 12px;
  animation: clock-spin 1.2s linear infinite;
}

@keyframes marker-jump {
  0%, 100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-6px) scale(1.05); }
}

.marker-animate {
  animation: marker-jump 2s ease-in-out infinite;
}

@keyframes orbit-slow {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

.animate-orbit-slow {
  animation: orbit-slow 25s linear infinite;
}

@keyframes shake {
  0%, 100% { transform: translateX(0); }
  20%, 60% { transform: translateX(-6px); }
  40%, 80% { transform: translateX(6px); }
}

.shake-error {
  animation: shake 0.4s ease-in-out;
}

