html {
  scroll-behavior: smooth;
}

body {
  position: relative;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background:
    radial-gradient(circle at 14% 8%, rgba(0, 102, 255, 0.16), transparent 30%),
    radial-gradient(circle at 86% 16%, rgba(123, 63, 228, 0.14), transparent 32%),
    radial-gradient(circle at 50% 105%, rgba(0, 212, 255, 0.08), transparent 36%);
}

a,
button,
.btn,
input,
select,
textarea {
  transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease, background-color 180ms ease, opacity 180ms ease;
}

a:hover,
button:hover,
.btn:hover {
  transform: translateY(-1px);
}

.btn,
button,
input,
select,
textarea,
.rounded,
.rounded-lg,
.rounded-xl,
.rounded-2xl,
.card,
[class*="card"],
table {
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.035);
}

.btn-primary,
.bg-blue-600,
.bg-primary,
.gradient-primary {
  background-size: 180% 180% !important;
  animation: premiumGradient 8s ease infinite;
}

.bg-gray-800,
.bg-slate-800,
.bg-slate-900,
.bg-slate-950,
.bg-slate-800\/50,
.bg-gray-900 {
  background-image: linear-gradient(145deg, rgba(255,255,255,0.025), rgba(255,255,255,0)) !important;
}

.shadow,
.shadow-lg,
.shadow-xl,
.shadow-2xl,
.hover-lift,
.trading-card,
.trading-plan-card,
.blog-card,
.testimonial-card,
.service-tile,
.market-widget {
  transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease;
}

.shadow:hover,
.shadow-lg:hover,
.shadow-xl:hover,
.shadow-2xl:hover,
.hover-lift:hover,
.trading-card:hover,
.trading-plan-card:hover,
.blog-card:hover,
.testimonial-card:hover,
.service-tile:hover,
.market-widget:hover {
  transform: translateY(-3px);
  box-shadow: 0 24px 70px -34px rgba(0, 102, 255, 0.58);
}

main,
section,
.login-wrapper,
.signup-container,
.container,
.animate-on-scroll,
.animate-fade-in-up {
  animation: premiumRise 520ms ease both;
}

table {
  border-collapse: separate;
  border-spacing: 0;
}

input:focus,
select:focus,
textarea:focus {
  box-shadow: 0 0 0 3px rgba(0, 102, 255, 0.18) !important;
}

@keyframes premiumRise {
  from {
    opacity: 0;
    transform: translateY(14px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes premiumGradient {
  0%,
  100% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }
}
