/* Custom utilities/extensions for Tailwind (kept minimal) */

/* Improve focus visibility across the site */
:focus-visible {
  outline-offset: 2px;
}

/* Basic typography smoothing */
html { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }

/* Hero animated background blobs */
.hero-blob {
  position: absolute;
  filter: blur(60px);
  opacity: 0.35;
  border-radius: 9999px;
  transform: translateZ(0);
}
.hero-blob-1 { width: 38rem; height: 38rem; background: #5B6CFF; top: -10%; left: -10%; animation: float1 18s ease-in-out infinite; }
.hero-blob-2 { width: 32rem; height: 32rem; background: #22D3A7; bottom: -15%; right: -5%; animation: float2 22s ease-in-out infinite; }
.hero-blob-3 { width: 28rem; height: 28rem; background: #7C3AED; top: 20%; right: 20%; animation: float3 20s ease-in-out infinite; opacity: 0.25; }

@keyframes float1 {
  0%, 100% { transform: translate(-10%, -5%) scale(1); }
  50% { transform: translate(10%, 5%) scale(1.1); }
}
@keyframes float2 {
  0%, 100% { transform: translate(5%, -5%) scale(1); }
  50% { transform: translate(-10%, 10%) scale(1.05); }
}
@keyframes float3 {
  0%, 100% { transform: translate(0%, 0%) scale(1); }
  50% { transform: translate(-5%, -10%) scale(1.12); }
}

/* Respect reduced motion preferences */
@media (prefers-reduced-motion: reduce) {
  .hero-blob-1, .hero-blob-2, .hero-blob-3 {
    animation: none !important;
  }
}

/* Theme toggle icon visibility */
.theme-icon-sun { display: none; }
.dark .theme-icon-moon { display: none; }
.dark .theme-icon-sun { display: inline; }


