:root {
    --color-bg-dark: #020617;
    --color-bg-surface: #0F172A;
    --color-tech-blue: #1E3A8A; 
    --color-tech-dark: #172554; 
    --color-energy-orange: #E65100; 
    --color-energy-red: #B71C1C;
    
    --gradient-blue: linear-gradient(135deg, var(--color-tech-blue), var(--color-tech-dark));
    --gradient-orange: linear-gradient(135deg, var(--color-energy-orange), var(--color-energy-red));
    
    --font-primary: 'Inter', sans-serif;
    --text-sm: clamp(0.875rem, 0.8vw + 0.5rem, 1rem);
    --text-base: clamp(1rem, 1vw + 0.5rem, 1.125rem);
    --text-lg: clamp(1.125rem, 1.5vw + 0.8rem, 1.5rem);
    --heading-2: clamp(2rem, 3vw + 1rem, 3rem);
    --heading-1: clamp(2.5rem, 5vw + 1rem, 4.5rem);

    --glass-bg: rgba(15, 23, 42, 0.6);
    --glass-border: rgba(255, 255, 255, 0.08);
    --radius-md: 8px;
    --radius-lg: 16px;
    --transition-fast: 0.2s ease;
    --transition-smooth: 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
body.theme-dark { background-color: var(--color-bg-dark); color: #e2e8f0; font-family: var(--font-primary); font-size: var(--text-base); line-height: 1.6; overflow-x: hidden; }
.container { width: 90%; max-width: 1400px; margin: 0 auto; }
.section-padding { padding: 120px 0; }
a { color: inherit; text-decoration: none; transition: color var(--transition-fast); }
h1, h2, h3, h4 { color: #ffffff; line-height: 1.2; margin-bottom: 1rem; font-weight: 700; }

.text-gradient-blue { background: var(--gradient-blue); -webkit-background-clip: text; -webkit-text-fill-color: transparent; }
.text-gradient-orange { background: var(--gradient-orange); -webkit-background-clip: text; -webkit-text-fill-color: transparent; }
.text-orange { color: var(--color-energy-orange); }

.overline { display: block; font-size: var(--text-sm); text-transform: uppercase; letter-spacing: 2px; font-weight: 600; margin-bottom: 0.5rem; }

.btn { display: inline-flex; align-items: center; justify-content: center; padding: 0.8rem 1.8rem; border-radius: var(--radius-md); font-weight: 600; cursor: pointer; transition: all var(--transition-smooth); border: none; }
.btn-primary { background: var(--gradient-orange); color: #fff; box-shadow: 0 4px 15px rgba(230, 81, 0, 0.3); }
.btn-primary:hover { box-shadow: 0 6px 20px rgba(230, 81, 0, 0.5); transform: translateY(-2px); }
.btn-outline { background: rgba(30, 58, 138, 0.2); border: 1px solid var(--color-tech-blue); color: #fff; backdrop-filter: blur(5px); }
.btn-outline:hover { background: var(--gradient-blue); transform: translateY(-2px); }

.text-center { text-align: center; }
.mt-2 { margin-top: 1rem; } .mt-3 { margin-top: 2rem; } .mt-4 { margin-top: 3rem; }
.max-w-800 { max-width: 800px; } .mx-auto { margin-left: auto; margin-right: auto; }
.dark-bg { background-color: var(--color-bg-surface); }
.z-10 { z-index: 10; } .relative { position: relative; }

.reveal-up { opacity: 0; transform: translateY(40px); transition: opacity 0.8s ease-out, transform 0.8s ease-out; will-change: transform, opacity; }
.reveal-up.is-visible { opacity: 1; transform: translateY(0); }