@keyframes gradientShift {
  0%,100% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
}
.hero-animated-bg {
  background: linear-gradient(135deg, #590D22, #C9184A, #FF4D6D, #FF758F, #590D22);
  background-size: 400% 400%;
  animation: gradientShift 15s ease infinite;
}
@keyframes gridMove {
  0% { transform: perspective(500px) rotateX(60deg) translateY(0); }
  100% { transform: perspective(500px) rotateX(60deg) translateY(40px); }
}
.retro-grid {
  background-image:
    linear-gradient(rgba(255,179,193,.25) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,179,193,.25) 1px, transparent 1px);
  background-size: 40px 40px;
  animation: gridMove 4s linear infinite;
}
.chrome-text {
  background: linear-gradient(180deg, #FFB3C1 0%, #FF758F 50%, #C9184A 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.fade-in-up { opacity:0; transform: translateY(30px); transition: all .8s ease; }
.fade-in-up.visible { opacity:1; transform: translateY(0); }
.faq-content { max-height:0; overflow:hidden; transition: max-height .4s ease; }
.faq-content.open { max-height: 500px; }
.floating-label { position: relative; }
.floating-label input:focus + label,
.floating-label input:not(:placeholder-shown) + label,
.floating-label textarea:focus + label,
.floating-label textarea:not(:placeholder-shown) + label {
  transform: translateY(-1.5rem) scale(.85);
  color: #FF758F;
}
.floating-label label {
  position: absolute; left: .75rem; top: .75rem;
  pointer-events: none; transition: all .2s ease;
  color: #FFB3C1;
}
