/* ==========================================================================
   Base Styles and Global Resets
   ========================================================================== */

html {
  scroll-behavior: smooth;
}

body {
  background: var(--bg-primary);
  color: var(--text-primary);
  background-attachment: fixed;
  position: relative;
  overflow-x: hidden;
  font-family: "Roboto Slab", "Noto Sans", sans-serif;
}

/* Sophisticated background pattern */
body::before {
  content: '';
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: 
    radial-gradient(circle at 20% 50%, rgba(217, 119, 6, 0.03) 0%, transparent 50%),
    radial-gradient(circle at 80% 20%, rgba(217, 119, 6, 0.03) 0%, transparent 50%),
    radial-gradient(circle at 40% 80%, rgba(217, 119, 6, 0.02) 0%, transparent 50%);
  pointer-events: none;
  z-index: -1;
}

:root.dark body::before {
  background: 
    radial-gradient(circle at 20% 50%, rgba(245, 158, 11, 0.05) 0%, transparent 50%),
    radial-gradient(circle at 80% 20%, rgba(245, 158, 11, 0.05) 0%, transparent 50%),
    radial-gradient(circle at 40% 80%, rgba(245, 158, 11, 0.03) 0%, transparent 50%);
}

/* Enhanced Material Icons - only inherit font-size when no explicit size is set */
.material-icons:not([class*="text-"]),
.material-icons-outlined:not([class*="text-"]) {
  font-size: inherit;
  line-height: inherit;
  transition: transform var(--transition-fast);
}

.material-icons[class*="text-"],
.material-icons-outlined[class*="text-"] {
  line-height: inherit;
  transition: transform var(--transition-fast);
}

/* Enhanced typography with better readability */
.enhanced-readability {
  line-height: 1.6;
  letter-spacing: 0.01em;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Selection styling */
::selection {
  background: rgba(217, 119, 6, 0.2);
  color: var(--text-primary);
}

:root.dark ::selection {
  background: rgba(245, 158, 11, 0.3);
}

/* Enhanced focus states for accessibility */
.focus-visible {
  outline: 2px solid var(--accent-color);
  outline-offset: 2px;
}

/* Global enhanced focus indicators */
a:focus-visible,
button:focus-visible,
[role="button"]:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
.carousel-dot:focus-visible,
.card:focus-visible,
.project-card:focus-visible,
.logo-slide:focus-visible {
  outline: 3px solid rgba(217, 119, 6, 0.8);
  outline-offset: 3px;
  box-shadow: 0 0 0 4px rgba(217, 119, 6, 0.2);
  transition: outline 0.2s ease, box-shadow 0.2s ease;
}

/* Dark theme focus indicators */
:root.dark a:focus-visible,
:root.dark button:focus-visible,
:root.dark [role="button"]:focus-visible,
:root.dark input:focus-visible,
:root.dark textarea:focus-visible,
:root.dark select:focus-visible,
:root.dark .carousel-dot:focus-visible,
:root.dark .card:focus-visible,
:root.dark .project-card:focus-visible,
:root.dark .logo-slide:focus-visible {
  outline: 3px solid rgba(245, 158, 11, 0.9);
  box-shadow: 0 0 0 4px rgba(245, 158, 11, 0.3);
}

/* Accessibility helpers */
.visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  border: 0 !important;
}

.skip-link {
  position: absolute;
  top: -40px;
  left: 6px;
  background: var(--accent-color);
  color: white;
  padding: 8px;
  text-decoration: none;
  border-radius: 4px;
  transition: top 0.3s;
}

.skip-link:focus {
  top: 6px;
}

/* Enhanced print styles */
@media print {
  .scroll-indicator,
  .mobile-bottom-nav,
  .custom-cursor,
  .floating-element {
    display: none !important;
  }
  
  .hero-background {
    background: none !important;
  }
  
  * {
    background: white !important;
    color: black !important;
    animation: none !important;
    transition: none !important;
  }
}

/* High contrast mode support */
@media (prefers-contrast: high) {
  .card,
  .project-card {
    border: 2px solid;
  }
  
  .btn-primary {
    border: 2px solid;
  }
}
