/* CSS Reset & Base Variables */
:root {
    /* Color System */
    --void-black: #020204;
    --void-black-rgb: 2, 2, 4;
    --cyan-neon: #00F3FF;
    --cyan-neon-rgb: 0, 243, 255;
    --purple-neon: #8B5CF6;
    --purple-neon-rgb: 139, 92, 246;
    --success-neon: #00FF9D;
    --success-neon-rgb: 0, 255, 157;
    
    /* Typography */
    --font-heading: 'Outfit', -apple-system, BlinkMacSystemFont, sans-serif;
    --font-body: 'Space Grotesk', sans-serif;
    --font-mono: 'JetBrains Mono', monospace;
    --font-rtl: 'Vazirmatn', system-ui, -apple-system, sans-serif;
    
    /* Spacing */
    --space-xs: 0.25rem;
    --space-sm: 0.5rem;
    --space-md: 1rem;
    --space-lg: 2rem;
    --space-xl: 4rem;
    
    /* Breakpoints */
    --breakpoint-mobile: 768px;
    --breakpoint-tablet: 1024px;
    --breakpoint-desktop: 1280px;
    
    /* Glass Effects */
    --glass-blur: blur(20px);
    --glass-border: rgba(255, 255, 255, 0.08);
    --glass-bg: rgba(255, 255, 255, 0.03);
    
    /* Z-index Layers */
    --z-globe: 0;
    --z-content: 10;
    --z-nav: 100;
    --z-overlay: 1000;
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    font-size: 16px;
    scroll-behavior: smooth;
}

body {
    background-color: var(--void-black);
    color: rgba(255, 255, 255, 0.9);
    font-family: var(--font-body);
    font-weight: 400;
    line-height: 1.6;
    overflow-x: hidden;
    min-height: 100vh;
    position: relative;
}

/* Typography Scale */
h1, h2, h3, h4 {
    font-family: var(--font-heading);
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: -0.02em;
}

h1 {
    font-size: clamp(2.5rem, 5vw, 4rem);
}

h2 {
    font-size: clamp(1.75rem, 3vw, 2.5rem);
}

p {
    font-size: clamp(1rem, 1.25vw, 1.125rem);
    max-width: 65ch;
}

/* Utility Classes */
.text-gradient {
    background: linear-gradient(135deg, var(--cyan-neon), var(--purple-neon));
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.glow {
    filter: drop-shadow(0 0 10px currentColor);
}

/* Focus States */
:focus-visible {
    outline: 2px solid var(--cyan-neon);
    outline-offset: 4px;
}

/* Canvas - Must be behind content, transparent so body bg shows through */
#globeCanvas {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    z-index: 1 !important;
    pointer-events: none;
    display: block !important;
    border: none;
    outline: none;
    background: transparent;
}

/* Selection */
::selection {
    background-color: rgba(var(--cyan-neon-rgb), 0.3);
    color: white;
}

/* Fade-in animation for RTL text */
@keyframes fadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

.fade-in {
    animation: fadeIn 0.6s ease-out forwards;
}