[data-anm-magnetic-button] {
  /* Enable GPU acceleration for smooth performance */
  transform: translateZ(0);
  backface-visibility: hidden;
  perspective: 1000px;

  /* Cursor indicates interactivity */
  cursor: pointer;

  /* Pointer events for child elements */
  pointer-events: auto;
}

[data-anm-magnetic-text] {
  /* Enable GPU acceleration for text element */
  transform: translateZ(0);
  backface-visibility: hidden;

  /* Prevent text selection during animation */
  user-select: none;
  -webkit-user-select: none;
}

/* VISUAL STYLING */

.magnetic_button_wrap {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 1.2rem 2.5rem;
  border-radius: 9999px;
  background-color: #ff5722;
  color: #0a0a0a;
  text-decoration: none;
  font-weight: 500;
  font-size: 1rem;
  transition: background-color 400ms cubic-bezier(0.16, 1, 0.3, 1);

  /* Improve font rendering */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;

  /* Prevent layout shift during animation */
  will-change: transform;
}

.magnetic_button_wrap:hover {
  background-color: #e64a19;
}

.magnetic_button_text {
  display: block;
  line-height: 1em;
  white-space: nowrap;
}

/* Responsive adjustments */
@media (max-width: 768px) {
  .magnetic_button_wrap {
    padding: 1rem 2rem;
    font-size: 0.9rem;
  }
}

@media (max-width: 480px) {
  .magnetic_button_wrap {
    padding: 0.875rem 1.75rem;
    font-size: 0.875rem;
  }
}

/* Focus states for accessibility */
.magnetic_button_wrap:focus {
  outline: 2px solid #ff5722;
  outline-offset: 2px;
}

.magnetic_button_wrap:focus:not(:focus-visible) {
  outline: none;
}

/* Reduced motion support */
@media (prefers-reduced-motion: reduce) {
  [data-anm-magnetic-button] {
    transform: none !important;
  }

  [data-anm-magnetic-text] {
    transform: none !important;
  }

  .magnetic_button_wrap {
    transition: none;
  }
}