/* Shared polish: keyboard focus + reduced motion (loaded after page CSS) */

html {
  scroll-behavior: smooth;
}

a:focus:not(:focus-visible),
button:focus:not(:focus-visible) {
  outline: none;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
summary:focus-visible,
[tabindex]:not([tabindex="-1"]):focus-visible {
  outline: 2px solid var(--accent, #b6ff8a);
  outline-offset: 3px;
}

.btn-primary-main:focus-visible,
.cta-button:focus-visible,
.login-link:focus-visible,
.btn-next-primary:focus-visible {
  outline: 2px solid #050a12;
  outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  .btn-primary-main,
  .btn-secondary-main,
  .preview-card,
  .hero-side li,
  .login-link,
  .cta-button,
  .feature-card,
  .new-playlist-btn,
  .playlist-card,
  .profile-card,
  .action-btn,
  .back-btn,
  .btn-next-primary,
  .btn-back-quiet,
  .preset-btn,
  .generate-flow-fill,
  .emoji-btn,
  .suggestion-btn,
  .genre-btn,
  .track-item,
  .play-btn,
  .delete-btn,
  .secondary-btn,
  .cover-image,
  .main-content,
  nav a,
  .menu-toggle,
  .footer-links a,
  .toast,
  .input-field,
  .status-message,
  .lyrics-line {
    transition-duration: 0.01ms !important;
  }

  .lyrics-line--featured {
    background: none !important;
    background-image: none !important;
    -webkit-background-clip: unset !important;
    background-clip: unset !important;
    color: var(--accent-warm-soft, #ffb3d9) !important;
    filter: none !important;
    text-shadow: none !important;
  }

  .btn-primary-main:hover,
  .btn-secondary-main:hover,
  .preview-card:hover,
  .login-link:hover,
  .cta-button:hover,
  .feature-card:hover,
  .new-playlist-btn:hover,
  .playlist-card:hover,
  .profile-card:hover,
  .action-btn:hover:not(:disabled),
  .back-btn:hover:not(:disabled),
  .btn-next-primary:hover:not(:disabled),
  .btn-back-quiet:hover,
  .preset-btn:hover,
  .emoji-btn:hover,
  .suggestion-btn:hover,
  .genre-btn:hover,
  .track-item:hover,
  .play-btn:hover:not(:disabled),
  .delete-btn:hover {
    transform: none !important;
  }

  .preview-card.active-change {
    animation: none !important;
  }

  .spinner {
    animation: none !important;
  }

  .wave-bar {
    animation: none !important;
  }

  .eq-bar,
  .generate-loading-badge::before,
  .generate-loading-track::after {
    animation: none !important;
    opacity: 0 !important;
  }

  .generate-loading-fill {
    transition-duration: 0.01ms !important;
  }

  .lyrics-quote-skeleton .sk-line {
    animation: none !important;
  }
}
