/* Base Styles - Global reset and typography */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Space+Grotesk:wght@400;500;600;700&display=swap');

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    font-family: var(--font-family-body);
    font-size: var(--font-size-base);
    line-height: 1.6;
    color: var(--color-text-primary);
    background: var(--gradient-bg);
    background-attachment: fixed;
    min-height: 100vh;
    position: relative;
}

/* Animated background elements */
body::before {
    content: '';
    position: fixed;
    top: -50%;
    right: -10%;
    width: 600px;
    height: 600px;
    background: radial-gradient(circle, rgba(26, 168, 90, 0.15) 0%, transparent 70%);
    border-radius: 50%;
    pointer-events: none;
    z-index: 0;
    animation: float 20s ease-in-out infinite;
}

body::after {
    content: '';
    position: fixed;
    bottom: -20%;
    left: -5%;
    width: 500px;
    height: 500px;
    background: radial-gradient(circle, rgba(0, 212, 255, 0.15) 0%, transparent 70%);
    border-radius: 50%;
    pointer-events: none;
    z-index: 0;
    animation: float 25s ease-in-out infinite reverse;
}

@keyframes float {
    0%, 100% { transform: translateY(0px); }
    50% { transform: translateY(30px); }
}

/* Typography */

h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-family-heading);
    font-weight: var(--font-weight-bold);
    line-height: 1.3;
}

h1 {
    font-size: var(--font-size-4xl);
    color: var(--color-text-white);
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3);
}

h2 {
    font-size: var(--font-size-2xl);
    color: var(--color-primary-dark);
}

h3 {
    font-size: var(--font-size-xl);
    color: var(--color-primary-dark);
}

p {
    margin-bottom: var(--space-3);
    text-align: justify;
}

a {
    color: inherit;
    text-decoration: none;
    transition: color var(--transition-base), text-decoration var(--transition-base);
}

a:focus-visible {
    outline: 2px solid var(--color-primary-dark);
    outline-offset: 2px;
}

/* Utility Classes */

.container {
    max-width: var(--size-container-max);
    margin: 0 auto;
    padding: var(--space-4);
    position: relative;
    z-index: 1;
}

.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border-width: 0;
}

/* Responsive */

@media (max-width: 768px) {
    h1 {
        font-size: var(--font-size-3xl);
    }

    h2 {
        font-size: var(--font-size-xl);
    }

    .container {
        padding: var(--space-2);
    }
}
