/* Custom styles for TopTrendingHashtags.com */

/* Core Web Vitals Optimizations */
* {
    box-sizing: border-box;
  }
  
  html {
    scroll-behavior: smooth;
  }
  
  body {
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
  }
  
  /* Prevent layout shift */
  img {
    max-width: 100%;
    height: auto;
    display: block;
  }
  
  /* Loading states */
  .loading {
    opacity: 0.6;
    pointer-events: none;
  }
  
  /* Hashtag animations */
  @keyframes fadeIn {
    from {
      opacity: 0;
      transform: translateY(10px);
    }
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }
  
  .hashtag-enter {
    animation: fadeIn 0.3s ease-in-out;
  }
  
  /* Copy button effects */
  button:active {
    transform: scale(0.98);
  }
  
  /* Smooth transitions */
  a, button, .transition {
    transition: all 0.2s ease-in-out;
  }
  
  /* Focus styles for accessibility */
  a:focus,
  button:focus,
  textarea:focus,
  input:focus {
    outline: 2px solid #4F46E5;
    outline-offset: 2px;
  }
  
  /* Responsive typography */
  @media (max-width: 640px) {
    h1 {
      font-size: 2rem;
    }
    
    h2 {
      font-size: 1.5rem;
    }
  }
  
  /* Print styles */
  @media print {
    header, footer, button {
      display: none;
    }
  }
  
  /* Dark mode support */
  @media (prefers-color-scheme: dark) {
    body {
      background-color: #1a1a1a;
      color: #e5e5e5;
    }
  }
  
  /* Reduce motion for accessibility */
  @media (prefers-reduced-motion: reduce) {
    * {
      animation-duration: 0.01ms !important;
      animation-iteration-count: 1 !important;
      transition-duration: 0.01ms !important;
      scroll-behavior: auto !important;
    }
  }
  
  /* Hashtag hover effects */
  .hashtag-tag {
    cursor: pointer;
    user-select: none;
  }
  
  .hashtag-tag:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
  }
  
  /* Copy feedback animation */
  @keyframes slideIn {
    from {
      transform: translateX(100%);
      opacity: 0;
    }
    to {
      transform: translateX(0);
      opacity: 1;
    }
  }
  
  #copy-feedback {
    animation: slideIn 0.3s ease-out;
  }
  
  /* Lazy loading placeholder */
  .lazy-placeholder {
    background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
    background-size: 200% 100%;
    animation: loading 1.5s ease-in-out infinite;
  }
  
  @keyframes loading {
    0% {
      background-position: 200% 0;
    }
    100% {
      background-position: -200% 0;
    }
  }
  
  /* Performance optimizations */
  .will-change-transform {
    will-change: transform;
  }
  
  .gpu-accelerated {
    transform: translateZ(0);
    backface-visibility: hidden;
    perspective: 1000px;
  }
  
  /* Utility classes */
  .text-balance {
    text-wrap: balance;
  }
  
  .text-pretty {
    text-wrap: pretty;
  }