@keyframes gradientShift {
  0%, 100% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
}
.hero-gradient {
  background: linear-gradient(135deg, #1A1A1A, #404040, #808080, #1A1A1A);
  background-size: 400% 400%;
  animation: gradientShift 15s ease infinite;
}
@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(30px); }
  to { opacity: 1; transform: translateY(0); }
}
.reveal { opacity: 0; }
.reveal.visible { animation: fadeInUp 0.8s ease forwards; }
.faq-content { max-height: 0; overflow: hidden; transition: max-height 0.4s ease; }
.faq-content.open { max-height: 500px; }
.float-label { position: relative; }
.float-label input, .float-label textarea {
  width: 100%; padding: 1.25rem 0.75rem 0.5rem; background: transparent;
  border: 1px solid #404040; color: #0A0A0A; outline: none; transition: border 0.2s;
}
.float-label input:focus, .float-label textarea:focus { border-color: #1A1A1A; }
.float-label label {
  position: absolute; left: 0.75rem; top: 1rem; color: #808080;
  pointer-events: none; transition: all 0.2s; font-size: 0.95rem;
}
.float-label input:focus + label,
.float-label input:not(:placeholder-shown) + label,
.float-label textarea:focus + label,
.float-label textarea:not(:placeholder-shown) + label {
  top: 0.25rem; font-size: 0.7rem; color: #1A1A1A;
}
.drawer { transform: translateX(100%); transition: transform 0.4s ease; }
.drawer.open { transform: translateX(0); }
.card-hover { transition: transform 0.3s ease, box-shadow 0.3s ease; }
.card-hover:hover { transform: scale(1.02); box-shadow: 0 20px 40px rgba(0,0,0,0.15); }
.btn-hover { transition: transform 0.2s ease, background 0.2s ease; }
.btn-hover:hover { transform: translateY(-2px) scale(1.02); }
