@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800;900&family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500;700&display=swap');

body {
  background-color: var(--bg-main);
  color: var(--text-primary);
  font-family: var(--font-body);
  background-image: 
    radial-gradient(ellipse 90% 60% at 50% -20%, rgba(27, 42, 66, 0.45), transparent 70%),
    radial-gradient(ellipse 60% 40% at 100% 40%, rgba(67, 199, 215, 0.03), transparent 60%),
    radial-gradient(rgba(177, 195, 224, 0.04) 1px, transparent 1px);
  background-size: 100% 100%, 100% 100%, 32px 32px;
  background-attachment: fixed;
  overflow-x: hidden;
  padding-bottom: env(safe-area-inset-bottom, 0);
}

/* Custom Scrollbar */
::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}

::-webkit-scrollbar-track {
  background: var(--bg-main);
}

::-webkit-scrollbar-thumb {
  background: var(--surface-elevated);
  border-radius: var(--radius-full);
  border: 2px solid var(--bg-main);
}

::-webkit-scrollbar-thumb:hover {
  background: var(--input-focus);
}

/* Base Typographic Hierarchy */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-heading);
  color: var(--text-primary);
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: -0.02em;
}

p {
  color: var(--text-secondary);
  line-height: 1.6;
}

.text-gradient {
  background: linear-gradient(135deg, #FFFFFF 0%, #EDF2FA 45%, #B8C7DF 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.text-gradient-cyan {
  background: linear-gradient(135deg, #B8C7DF 0%, var(--accent-cyan) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.text-gradient-gold {
  background: linear-gradient(135deg, #FDE68A 0%, #F59E0B 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.container {
  width: 100%;
  max-width: var(--max-width);
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}

/* Accessibility Focus Ring */
:focus-visible {
  outline: 2px solid var(--input-focus);
  outline-offset: 2px;
}

/* Lucide Icon Standard Size Helper */
.icon {
  width: 20px;
  height: 20px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  vertical-align: middle;
}

.icon-sm { width: 16px; height: 16px; }
.icon-lg { width: 24px; height: 24px; }
.icon-xl { width: 32px; height: 32px; }
