* {
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: -moz-none;
  -o-user-select: none;
  user-select: none;
}

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

*:focus {
  outline: 0;
}

::-webkit-scrollbar-track {
  border-radius: 0px;
  background-color: var(--background);
  margin: 0 25px;
}

::-webkit-scrollbar {
  width: 6px;
  height: 3px;
  border-radius: 10px;
}

::-webkit-scrollbar-thumb:hover {

  border-left: 0px solid var(--background);
  border-right: 0px solid var(--background);
}

::-webkit-scrollbar-thumb {
  border-radius: 10px;
  background-color: var(--color);
  border-left: 1.5px solid var(--background);
  border-right: 1.5px solid var(--background);
}

body {
  font-family: 'Inter', sans-serif;
  background-color: var(--background);
  color: var(--accent);
  margin: 0 auto;
}

/* Ensure consistent font styles in both colors.css and colors-dark.css */
:root {
  --font-family: 'Inter', sans-serif;
  --font-size: 12px;
  --font-weight: 400;
}

html,
body {
  font-family: var(--font-family);
  font-size: var(--font-size);
  font-weight: var(--font-weight);
}
a {
  color: var(--bold);
  text-decoration: none !important;
}


@keyframes fadeSlideUp {
  0% {
    opacity: 0;
    transform: translateY(20px);
  }

  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Base class for animatable elements */
.animate {
  opacity: 0;
  /* Start hidden */
  transform: translateY(20px);
  transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

/* Active state when animation starts */
.animate.active {
  animation: fadeSlideUp 0.8s ease-out forwards;
}

.fa {
  display: inline-block;
  font: normal normal normal 14px / 1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.fa-spin {
  -webkit-animation: fa-spin 2s infinite linear;
  animation: fa-spin 2s infinite linear;
}

@keyframes fa-spin {
  0% {
      -webkit-transform: rotate(0deg);
      transform: rotate(0deg)
  }

  100% {
      -webkit-transform: rotate(359deg);
      transform: rotate(359deg)
  }
}

.ri-loader-4-line {
  -webkit-animation: fa-spin 2s infinite linear;
  animation: fa-spin 2s infinite linear;
}



.ai-glow::before, .ai-glow::after {
  content: '';
  position: absolute;
  left: -5px;
  top: -5px;
  width: calc(100% + 10px);
  height: calc(100% + 10px);
  z-index: -1;
  border-radius: 50px;
  background: conic-gradient(
    from var(--anglez-glow),
    #8E4FFB,
    #8E4FFB,
    #6FC7FB,
    #6FFBAB,
    #6FC7FB,
    #4F83FB,
    #8E4FFB
  );
  animation: rotate-glow 3s linear infinite;
}
.ai-glow::after {
  filter: blur(30px);
  opacity: 65%;
}
@keyframes rotate-glow {
  0% {
    --anglez-glow: 0deg;
  }
  100% {
    --anglez-glow: 360deg;
  }
}


/* Styling for the gradient animation on the main box */
.aibox::before {
  content: "";
  position: absolute;
  inset: 0;
  background: repeating-conic-gradient(from var(--a),
          #0f0,
          #ff0,
          #0ff,
          #f0f,
          #0ff);
  border-radius: 20px;
  animation: rotating 4s linear infinite;
  /* Applying rotation animation */
}

/* Styling for the blurred gradient on the main box */
.aibox::after {
  content: "";
  position: absolute;
  inset: 0;
  background: repeating-conic-gradient(from var(--a),
          #0f0,
          #ff0,
          #0ff,
          #f0f,
          #0ff);
  border-radius: 20px;
  animation: rotating 4s linear infinite;
  /* Applying rotation animation */
  filter: blur(40px);
  opacity: 0.75;
}

/* Custom property for the rotation angle */
@property --a {
  syntax: "<angle>";
  inherits: false;
  initial-value: 0deg;
}

/* Keyframes for the rotating animation */
@keyframes rotating {
  0% {
      --a: 0deg;
  }

  100% {
      --a: 360deg;
  }
}

/* Chord generation animated text styles */
.chord-generation-text {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
  letter-spacing: 0.5px;
}

.chord-generation-text span {
  display: inline-block;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Enhanced gradient animation for chord generation text */
@keyframes gradientShift {
  0% { 
    background-position: 0% 50%; 
  }
  25% { 
    background-position: 100% 50%; 
  }
  50% { 
    background-position: 100% 100%; 
  }
  75% { 
    background-position: 0% 100%; 
  }
  100% { 
    background-position: 0% 50%; 
  }
}

.dotted-pattern {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32' width='25' height='25' fill='none'%3e%3ccircle fill='rgb(0 0 0 / 0.2)' id='pattern-circle' cx='10' cy='10' r='1.6257413380501518'%3e%3c/circle%3e%3c/svg%3e");
  background-repeat: repeat;
  background-size: 20px 20px;
  background-position: 0 0;
  opacity: 0.35;
  pointer-events: none;
  z-index: 0;
}

.radial-gradient-overlay::before {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  --gradient-angle: 360deg;
  --gradient-start: 0%;
  --gradient-end: 60%;
  background: radial-gradient(circle, transparent var(--gradient-start), var(--background) var(--gradient-end));
  pointer-events: none;
  z-index: 1;
}

.cursor-gradient-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  background: radial-gradient(circle at 50% 50%, transparent 15%, var(--background) 75%);
  transition: background-position 3s ease-out;
  z-index: -1;
}

.dotted-pattern,
.cursor-gradient-overlay {
pointer-events: none !important;
}