/* Aurora Background Animation */
.aurora-background {
    animation: aurora-flow 15s ease-in-out infinite;
}

@keyframes aurora-flow {
    0%, 100% { 
        transform: translateX(-30px) translateY(-20px);
        background: 
            radial-gradient(ellipse 800px 400px at 20% 50%, rgba(0,150,255,0.15) 0%, transparent 50%),
            radial-gradient(ellipse 600px 300px at 80% 20%, rgba(0,200,255,0.1) 0%, transparent 50%),
            radial-gradient(ellipse 400px 200px at 50% 80%, rgba(0,170,255,0.12) 0%, transparent 50%);
    }
    33% { 
        transform: translateX(20px) translateY(10px);
        background: 
            radial-gradient(ellipse 800px 400px at 80% 30%, rgba(0,200,255,0.18) 0%, transparent 50%),
            radial-gradient(ellipse 600px 300px at 20% 70%, rgba(0,150,255,0.12) 0%, transparent 50%),
            radial-gradient(ellipse 400px 200px at 60% 20%, rgba(0,170,255,0.15) 0%, transparent 50%);
    }
    66% { 
        transform: translateX(-15px) translateY(15px);
        background: 
            radial-gradient(ellipse 800px 400px at 50% 80%, rgba(0,170,255,0.16) 0%, transparent 50%),
            radial-gradient(ellipse 600px 300px at 70% 30%, rgba(0,200,255,0.14) 0%, transparent 50%),
            radial-gradient(ellipse 400px 200px at 30% 60%, rgba(0,150,255,0.11) 0%, transparent 50%);
    }
}

/* Hero Section Animations */
.hero-title {
    animation: fadeInUp 1s ease-out;
}

.hero-subtitle {
    animation: fadeInUp 1s ease-out 0.2s both;
}

.hero-button {
    animation: fadeInUp 1s ease-out 0.4s both;
}

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(50px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Step Icons Animations */
.step-1 {
    animation: pulse-glow 2s infinite;
}

.step-2 {
    animation: rotate 4s linear infinite;
}

.step-3 {
    animation: pulse-glow 2s infinite;
}

.step-4 {
    animation: spin 2s linear infinite;
}

@keyframes pulse-glow {
    0%, 100% {
        transform: scale(1);
        box-shadow: 0 0 15px rgba(0,170,255,0.4);
    }
    50% {
        transform: scale(1.05);
        box-shadow: 0 0 25px rgba(0,170,255,0.7);
    }
}

@keyframes rotate {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

@keyframes spin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

/* Connection Lines Animation */
.connection-lines {
    position: relative;
    overflow: hidden;
}

.connection-lines::after {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(0,170,255,0.8), transparent);
    animation: energy-flow 3s infinite;
}

@keyframes energy-flow {
    0% { left: -100%; }
    100% { left: 400%; }
}

/* Center Element Pulse */
.center-element {
    animation: center-pulse 3s infinite;
}

@keyframes center-pulse {
    0%, 100% { 
        box-shadow: 0 0 20px rgba(0,170,255,0.5);
        border-color: #00aaff;
    }
    50% { 
        box-shadow: 0 0 40px rgba(0,170,255,0.8);
        border-color: #00ccff;
    }
}

/* Hex Icons Pulse */
.hex-icon, .center-icon {
    animation: pulse-glow 2s infinite;
}

/* Connection Lines Glow */
.connection-line {
    animation: line-glow 3s infinite;
}

@keyframes line-glow {
    0%, 100% { opacity: 0.4; }
    50% { opacity: 1; }
}

/* Hover Effects */
.step-card {
    position: relative;
    overflow: hidden;
}

.step-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(0,170,255,0.1), transparent);
    animation: shimmer 3s infinite;
}

@keyframes shimmer {
    0% { left: -100%; }
    100% { left: 100%; }
}

/* Scroll-based Animations */
.step-card,
.hex-element {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.8s ease, transform 0.8s ease;
}

.step-card.visible,
.hex-element.visible {
    opacity: 1;
    transform: translateY(0);
}

/* Enhanced hover effects */
.step-card:hover .step-icon {
    transform: scale(1.1);
    box-shadow: 0 0 30px rgba(0,170,255,0.6);
}

.hex-element:hover .hex-icon {
    transform: scale(1.1) rotate(10deg);
    box-shadow: 0 0 25px rgba(0,170,255,0.6);
}

/* Aurora lines para hero background */
.hero::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-image: 
        linear-gradient(45deg, transparent 30%, rgba(0,170,255,0.03) 50%, transparent 70%),
        linear-gradient(-45deg, transparent 30%, rgba(0,200,255,0.02) 50%, transparent 70%);
    animation: aurora-lines 8s ease-in-out infinite;
    z-index: 1;
}

@keyframes aurora-lines {
    0%, 100% { 
        opacity: 0.5; 
        transform: translateX(0); 
    }
    50% { 
        opacity: 1; 
        transform: translateX(20px); 
    }
}

/* Floating particles effect */
.floating-particle {
    position: fixed;
    width: 2px;
    height: 2px;
    background: #00aaff;
    border-radius: 50%;
    pointer-events: none;
    z-index: -1;
    opacity: 0.6;
    animation: float-particle 15s infinite linear;
}

@keyframes float-particle {
    0% { 
        transform: translateY(100vh) translateX(0);
        opacity: 0;
    }
    10% { opacity: 1; }
    90% { opacity: 1; }
    100% { 
        transform: translateY(-10vh) translateX(50px);
        opacity: 0;
    }
}

/* Navigation hover effect */
.nav-links a::after {
    content: '';
    position: absolute;
    bottom: -5px;
    left: 0;
    width: 0;
    height: 2px;
    background: #00aaff;
    transition: width 0.3s ease;
}

.nav-links a:hover::after {
    width: 100%;
}

/* Button hover glow */
.hero-button:hover {
    box-shadow: 
        0 10px 25px rgba(0,170,255,0.3),
        0 0 20px rgba(0,170,255,0.4),
        inset 0 1px 0 rgba(255,255,255,0.1);
}

/* Responsive animations */
@media (max-width: 768px) {
    .aurora-lines {
        animation-duration: 12s;
    }
    
    .energy-flow {
        animation-duration: 4s;
    }
    
    .step-card:hover {
        transform: translateY(-3px);
    }
}

/* ========================================
   PRODUCTS PAGE ANIMATIONS - CORRECTED 
======================================== */

/* SEÇÃO 1 - Our Products Animations - CORRIGIDAS */

/* Connector animations */
@keyframes connectorPulse {
    0%, 100% { 
        box-shadow: 
            0 0 20px rgba(0,170,255,0.3),
            inset 0 0 15px rgba(0,170,255,0.1);
    }
    50% { 
        box-shadow: 
            0 0 30px rgba(0,170,255,0.5),
            inset 0 0 20px rgba(0,170,255,0.2);
    }
}

@keyframes coreGlow {
    0% { 
        box-shadow: 
            0 0 15px rgba(0,170,255,0.8),
            0 0 25px rgba(0,170,255,0.5);
    }
    100% { 
        box-shadow: 
            0 0 25px rgba(0,170,255,1),
            0 0 35px rgba(0,170,255,0.7);
    }
}

@keyframes dataFlow {
    0% { opacity: 0.3; }
    50% { opacity: 1; }
    100% { opacity: 0.3; }
}

@keyframes flowLeft {
    0% { left: 80px; opacity: 0; }
    20% { opacity: 1; }
    80% { opacity: 1; }
    100% { left: 20px; opacity: 0; }
}

@keyframes flowRight {
    0% { right: 80px; opacity: 0; }
    20% { opacity: 1; }
    80% { opacity: 1; }
    100% { right: 20px; opacity: 0; }
}

@keyframes statusBlink {
    0%, 100% { opacity: 0.4; }
    50% { opacity: 1; }
}

/* ✅ CUBO - ROTAÇÃO MAIS RÁPIDA (15s em vez de 30s) */
.advanced-cube {
    animation: cube-gentle-rotate 15s linear infinite;
}

@keyframes cube-gentle-rotate {
    0% { transform: rotateY(0deg); }
    100% { transform: rotateY(360deg); }
}

.node {
    animation: node-pulse 3s ease-in-out infinite;
}

.n1 { animation-delay: 0s; }
.n2 { animation-delay: 0.5s; }
.n3 { animation-delay: 1s; }
.n4 { animation-delay: 1.5s; }
.n5 { animation-delay: 2s; }
.n6 { animation-delay: 2.5s; }

@keyframes node-pulse {
    0%, 100% { 
        transform: scale(1);
        box-shadow: 0 0 8px rgba(0,170,255,0.6);
    }
    50% { 
        transform: scale(1.3);
        box-shadow: 0 0 15px rgba(0,170,255,1);
    }
}

/* ✅ GLOBO - REMOÇÃO DE FOCUS E OUTLINE */
.globe-core {
    animation: core-glow 4s ease-in-out infinite;
    outline: none !important;
    border: 2px solid #00aaff;
}

.globe-core:focus,
.globe-core:focus-visible,
.particle-globe:focus,
.particle-globe:focus-visible,
.product-visual:focus,
.product-item:focus,
.particle-globe *:focus {
    outline: none !important;
    box-shadow: none !important;
}

/* ✅ REMOÇÃO COMPLETA DE TODOS OS OUTLINES DA SEÇÃO */
.our-products-hero *,
.our-products-hero *:focus,
.our-products-hero *:focus-visible,
.our-products-hero *:hover,
.our-products-hero *:active {
    outline: none !important;
}

@keyframes core-glow {
    0%, 100% { 
        box-shadow: 0 0 20px rgba(0,170,255,0.5);
        border-color: #00aaff;
    }
    50% { 
        box-shadow: 0 0 35px rgba(0,170,255,0.8);
        border-color: #00ccff;
    }
}

/* ✅ PARTÍCULAS ORBITANDO - ATIVAS E VISÍVEIS */
.particle {
    position: absolute;
    width: 4px;
    height: 4px;
    background: #ffffff;
    border-radius: 50%;
    box-shadow: 0 0 6px rgba(255,255,255,0.9);
    opacity: 1;
}

.p1 { animation: particle-orbit-1 8s linear infinite; }
.p2 { animation: particle-orbit-2 9s linear infinite; }
.p3 { animation: particle-orbit-3 10s linear infinite; }
.p4 { animation: particle-orbit-4 7s linear infinite; }
.p5 { animation: particle-orbit-5 8.5s linear infinite; }
.p6 { animation: particle-orbit-6 9.5s linear infinite; }
.p7 { animation: particle-orbit-7 7.5s linear infinite; }
.p8 { animation: particle-orbit-8 8.8s linear infinite; }

@keyframes particle-orbit-1 {
    0% { transform: rotate(0deg) translateX(80px) rotate(0deg); opacity: 1; }
    100% { transform: rotate(360deg) translateX(80px) rotate(-360deg); opacity: 1; }
}

@keyframes particle-orbit-2 {
    0% { transform: rotate(45deg) translateX(85px) rotate(-45deg); opacity: 1; }
    100% { transform: rotate(405deg) translateX(85px) rotate(-405deg); opacity: 1; }
}

@keyframes particle-orbit-3 {
    0% { transform: rotate(90deg) translateX(90px) rotate(-90deg); opacity: 1; }
    100% { transform: rotate(450deg) translateX(90px) rotate(-450deg); opacity: 1; }
}

@keyframes particle-orbit-4 {
    0% { transform: rotate(135deg) translateX(75px) rotate(-135deg); opacity: 1; }
    100% { transform: rotate(495deg) translateX(75px) rotate(-495deg); opacity: 1; }
}

@keyframes particle-orbit-5 {
    0% { transform: rotate(180deg) translateX(80px) rotate(-180deg); opacity: 1; }
    100% { transform: rotate(540deg) translateX(80px) rotate(-540deg); opacity: 1; }
}

@keyframes particle-orbit-6 {
    0% { transform: rotate(225deg) translateX(85px) rotate(-225deg); opacity: 1; }
    100% { transform: rotate(585deg) translateX(85px) rotate(-585deg); opacity: 1; }
}

@keyframes particle-orbit-7 {
    0% { transform: rotate(270deg) translateX(90px) rotate(-270deg); opacity: 1; }
    100% { transform: rotate(630deg) translateX(90px) rotate(-630deg); opacity: 1; }
}

@keyframes particle-orbit-8 {
    0% { transform: rotate(315deg) translateX(75px) rotate(-315deg); opacity: 1; }
    100% { transform: rotate(675deg) translateX(75px) rotate(-675deg); opacity: 1; }
}

/* Orbital rings */
.ring1 {
    animation: ring-rotate 20s linear infinite;
}

.ring2 {
    animation: ring-rotate 25s linear infinite reverse;
}

@keyframes ring-rotate {
    0% { transform: translate(-50%, -50%) rotate(0deg); }
    100% { transform: translate(-50%, -50%) rotate(360deg); }
}

/* SEÇÃO 2 - Internal AI Team Animations - CORRIGIDO */

/* Company center pulse */
.company-center {
    animation: company-pulse 3s infinite;
}

@keyframes company-pulse {
    0%, 100% { 
        transform: translate(-50%, -50%) scale(1);
        box-shadow: 0 0 20px rgba(0,170,255,0.5);
        border-color: #00aaff;
    }
    50% { 
        transform: translate(-50%, -50%) scale(1.02);
        box-shadow: 0 0 35px rgba(0,170,255,0.8);
        border-color: #00ccff;
    }
}

.center-glow {
    animation: glow-ring 3s infinite;
}

@keyframes glow-ring {
    0%, 100% { 
        transform: scale(1);
        opacity: 0.6;
    }
    50% { 
        transform: scale(1.05);
        opacity: 1;
    }
}

/* ✅ ORBIT ELEMENTS - PRESERVAR POSIÇÕES ESPECÍFICAS */
/* Remover animação geral que conflita */
/* .orbit-element {
    animation: element-float 4s ease-in-out infinite;
} */

/* ✅ ANIMAÇÕES ESPECÍFICAS - preservando posições diagonais */
.top-element { 
    /* Posição: top: 80px; left: 80px; - PRESERVADA */
    animation: element-float-top 4s ease-in-out infinite;
    animation-delay: 0s; 
}

.right-element { 
    /* Posição: top: 80px; right: 80px; - PRESERVADA */
    animation: element-float-right 4s ease-in-out infinite;
    animation-delay: 1s; 
}

.bottom-element { 
    /* Posição: bottom: 80px; right: 80px; - PRESERVADA */
    animation: element-float-bottom 4s ease-in-out infinite;
    animation-delay: 2s; 
}

.left-element { 
    /* Posição: bottom: 80px; left: 80px; - PRESERVADA */
    animation: element-float-left 4s ease-in-out infinite;
    animation-delay: 3s; 
}

/* ✅ ANIMAÇÕES QUE PRESERVAM AS POSIÇÕES ORIGINAIS */
@keyframes element-float-top {
    0%, 100% { 
        top: 80px;
        left: 80px;
        transform: translateY(0);
    }
    50% { 
        top: 80px;
        left: 80px;
        transform: translateY(-8px);
    }
}

@keyframes element-float-right {
    0%, 100% { 
        top: 80px;
        right: 80px;
        transform: translateY(0);
    }
    50% { 
        top: 80px;
        right: 80px;
        transform: translateY(-8px);
    }
}

@keyframes element-float-bottom {
    0%, 100% { 
        bottom: 80px;
        right: 80px;
        transform: translateY(0);
    }
    50% { 
        bottom: 80px;
        right: 80px;
        transform: translateY(-8px);
    }
}

@keyframes element-float-left {
    0%, 100% { 
        bottom: 80px;
        left: 80px;
        transform: translateY(0);
    }
    50% { 
        bottom: 80px;
        left: 80px;
        transform: translateY(-8px);
    }
}

/* Hexagonal icons pulse */
.hex-icon {
    animation: hex-pulse 2s infinite;
}

@keyframes hex-pulse {
    0%, 100% { 
        transform: scale(1);
        box-shadow: 0 0 10px rgba(0,170,255,0.4);
    }
    50% { 
        transform: scale(1.1);
        box-shadow: 0 0 20px rgba(0,170,255,0.7);
    }
}

/* Connection lines energy flow */
.connection-line {
    position: relative;
    overflow: hidden;
}

.connection-line::after {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(0,170,255,0.8), transparent);
    animation: energy-flow 3s infinite;
}

@keyframes energy-flow {
    0% { left: -100%; }
    100% { left: 100%; }
}

.line-to-top::after { animation-delay: 0s; }
.line-to-right::after { animation-delay: 0.5s; }
.line-to-bottom::after { animation-delay: 1s; }
.line-to-left::after { animation-delay: 1.5s; }

/* Team icons pulse */
.team-icon {
    animation: pulse-glow 2s infinite;
}

@keyframes pulse-glow {
    0%, 100% { 
        transform: scale(1);
        opacity: 0.8;
    }
    50% { 
        transform: scale(1.1);
        opacity: 1;
    }
}

/* SEÇÃO 3 - Data AI Power Animations */

/* Detailed brain pulse */
.detailed-brain {
    animation: brain-activity 3s infinite;
}

@keyframes brain-activity {
    0%, 100% {
        transform: scale(1);
        filter: drop-shadow(0 0 20px rgba(0,170,255,0.5));
    }
    50% {
        transform: scale(1.01);
        filter: drop-shadow(0 0 30px rgba(0,170,255,0.8));
    }
}

/* Brain segments glow */
.brain-segment {
    animation: segment-glow 4s infinite;
}

.segment1 { animation-delay: 0s; }
.segment2 { animation-delay: 1s; }
.segment3 { animation-delay: 2s; }
.segment4 { animation-delay: 3s; }

@keyframes segment-glow {
    0%, 100% { 
        border-color: #00aaff;
        box-shadow: 0 0 10px rgba(0,170,255,0.3);
    }
    50% { 
        border-color: #00ccff;
        box-shadow: 0 0 20px rgba(0,170,255,0.6);
    }
}

/* Neural points activity */
.neural-point {
    animation: neural-fire 2s infinite;
}

.point1 { animation-delay: 0s; }
.point2 { animation-delay: 0.4s; }
.point3 { animation-delay: 0.8s; }
.point4 { animation-delay: 1.2s; }
.point5 { animation-delay: 1.6s; }

@keyframes neural-fire {
    0%, 100% { 
        opacity: 0.4; 
        transform: scale(1);
        box-shadow: 0 0 10px rgba(0,170,255,0.8);
    }
    50% { 
        opacity: 1; 
        transform: scale(1.5);
        box-shadow: 0 0 20px rgba(0,170,255,1);
    }
}

/* Wave animation */
.wave-animation {
    position: relative;
    overflow: hidden;
}

.wave-animation::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.8), transparent);
    animation: wave-flow 2.5s infinite;
}

@keyframes wave-flow {
    0% { left: -100%; }
    100% { left: 100%; }
}

/* Data icons pulse */
.data-icon {
    animation: data-pulse 2s infinite;
}

@keyframes data-pulse {
    0%, 100% { 
        transform: scale(1);
        box-shadow: 0 0 15px rgba(0,170,255,0.4);
    }
    50% { 
        transform: scale(1.05);
        box-shadow: 0 0 25px rgba(0,170,255,0.7);
    }
}

/* Enhanced hover effects */
.product-item:hover .advanced-cube {
    transform: scale(1.05);
    box-shadow: 0 0 40px rgba(0,170,255,0.4);
}

.product-item:hover .particle-globe {
    transform: scale(1.05) translateY(-5px);
    box-shadow: 0 0 40px rgba(0,170,255,0.4);
}

.orbit-element:hover {
    transform: translateY(-10px);
    border-color: #00aaff;
    box-shadow: 0 15px 30px rgba(0,170,255,0.3);
}

.orbit-element:hover .hex-icon {
    transform: scale(1.2);
    box-shadow: 0 0 25px rgba(0,170,255,0.8);
}

.data-benefit-card:hover .data-icon {
    transform: scale(1.1) rotate(5deg);
    box-shadow: 0 0 30px rgba(0,170,255,0.6);
}

.team-benefit-card:hover .team-icon {
    transform: scale(1.1);
    box-shadow: 0 0 20px rgba(0,170,255,0.5);
}

/* Responsive animation adjustments */
@media (max-width: 768px) {
    .cube-3d-rotate {
        animation-duration: 25s;
    }
    
    .particle-orbit {
        animation-duration: 10s;
    }
    
    .element-float {
        animation-duration: 5s;
    }
}

/* ========================================
   NICHE DATASETS PAGE ANIMATIONS 
======================================== */

/* SEÇÃO 1 - Ready Datasets Animations */

/* Health Cross pulsing */
.health-cross {
    animation: health-pulse 2s infinite;
}

@keyframes health-pulse {
    0%, 100% { 
        transform: scale(1);
        filter: drop-shadow(0 0 10px rgba(0,170,255,0.6));
    }
    50% { 
        transform: scale(1.1);
        filter: drop-shadow(0 0 20px rgba(0,170,255,1));
    }
}

.cross-horizontal, .cross-vertical {
    animation: cross-glow 3s infinite alternate;
}

@keyframes cross-glow {
    0% { box-shadow: 0 0 5px rgba(0,170,255,0.5); }
    100% { box-shadow: 0 0 15px rgba(0,170,255,0.9); }
}

/* Finance Chart animations */
.finance-chart {
    animation: chart-float 3s ease-in-out infinite;
}

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

.chart-line {
    animation: line-growth 4s infinite;
}

@keyframes line-growth {
    0% { 
        width: 0%;
        opacity: 0.5;
    }
    50% { 
        width: 100%;
        opacity: 1;
    }
    100% { 
        width: 100%;
        opacity: 0.8;
    }
}

.point {
    animation: point-pulse 2s infinite;
}

.p1 { animation-delay: 0s; }
.p2 { animation-delay: 0.5s; }
.p3 { animation-delay: 1s; }
.p4 { animation-delay: 1.5s; }

@keyframes point-pulse {
    0%, 100% { 
        transform: scale(1);
        box-shadow: 0 0 10px rgba(0,170,255,0.6);
    }
    50% { 
        transform: scale(1.3);
        box-shadow: 0 0 20px rgba(0,170,255,1);
    }
}

/* E-commerce Cart animations */
.shopping-cart {
    animation: cart-shake 4s infinite;
}

@keyframes cart-shake {
    0%, 100% { transform: translateX(0); }
    25% { transform: translateX(-2px); }
    75% { transform: translateX(2px); }
}

.wheel {
    animation: wheel-spin 3s linear infinite;
}

.w1 { animation-delay: 0s; }
.w2 { animation-delay: 0.5s; }

@keyframes wheel-spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

.cart-body {
    animation: cart-glow 3s infinite;
}

@keyframes cart-glow {
    0%, 100% { 
        border-color: #00aaff;
        box-shadow: 0 0 5px rgba(0,170,255,0.3);
    }
    50% { 
        border-color: #00ccff;
        box-shadow: 0 0 15px rgba(0,170,255,0.7);
    }
}

/* Legal Scale animations */
.justice-scale {
    animation: scale-balance 4s ease-in-out infinite;
}

@keyframes scale-balance {
    0%, 100% { transform: rotate(0deg); }
    25% { transform: rotate(-2deg); }
    75% { transform: rotate(2deg); }
}

.scale-left, .scale-right {
    animation: scale-plates 3s ease-in-out infinite;
}

.scale-left { animation-delay: 0s; }
.scale-right { animation-delay: 1.5s; }

@keyframes scale-plates {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-3px); }
}

.scale-beam {
    animation: beam-glow 2s infinite;
}

@keyframes beam-glow {
    0%, 100% { 
        background: #00aaff;
        box-shadow: 0 0 5px rgba(0,170,255,0.5);
    }
    50% { 
        background: #00ccff;
        box-shadow: 0 0 15px rgba(0,170,255,0.8);
    }
}

/* Category cards hover effects */
.dataset-category {
    transition: all 0.4s ease;
}

.dataset-category:hover .health-cross {
    animation-duration: 1s;
}

.dataset-category:hover .finance-chart {
    transform: translateY(-8px);
}

.dataset-category:hover .shopping-cart {
    animation-duration: 2s;
}

.dataset-category:hover .justice-scale {
    animation-duration: 2s;
}

/* SEÇÃO 2 - Custom Datasets Animations */

/* Brain main outline pulsing */
.brain-main-outline {
    animation: brain-pulse 4s infinite;
}

@keyframes brain-pulse {
    0%, 100% { 
        border-color: #00aaff;
        box-shadow: 0 0 30px rgba(0,170,255,0.3);
        background: rgba(0,170,255,0.05);
    }
    50% { 
        border-color: #00ccff;
        box-shadow: 0 0 50px rgba(0,170,255,0.5);
        background: rgba(0,170,255,0.1);
    }
}

/* Neural nodes firing */
.neural-node {
    animation: neural-fire 3s infinite;
}

.node1 { animation-delay: 0s; }
.node2 { animation-delay: 0.5s; }
.node3 { animation-delay: 1s; }
.node4 { animation-delay: 1.5s; }
.node5 { animation-delay: 2s; }
.node6 { animation-delay: 2.5s; }

@keyframes neural-fire {
    0%, 100% { 
        transform: scale(1);
        box-shadow: 0 0 15px rgba(0,170,255,0.8);
        opacity: 0.7;
    }
    50% { 
        transform: scale(1.5);
        box-shadow: 0 0 25px rgba(0,170,255,1);
        opacity: 1;
    }
}

/* Data flow elements movement */
.flow-element {
    animation: flow-movement 4s infinite;
}

.elem1 { animation-delay: 0s; }
.elem2 { animation-delay: 1s; }
.elem3 { animation-delay: 2s; }
.elem4 { animation-delay: 3s; }

@keyframes flow-movement {
    0% { 
        transform: translateX(0) scale(1);
        opacity: 0.3;
    }
    25% { 
        transform: translateX(20px) scale(1.1);
        opacity: 0.7;
    }
    50% { 
        transform: translateX(40px) scale(1);
        opacity: 1;
    }
    75% { 
        transform: translateX(60px) scale(0.9);
        opacity: 0.7;
    }
    100% { 
        transform: translateX(80px) scale(0.8);
        opacity: 0.3;
    }
}

/* Brain connections energy flow */
.connection-line {
    position: relative;
    overflow: hidden;
}

.connection-line::after {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(0,170,255,0.8), transparent);
    animation: energy-pulse 3s infinite;
}

.c1::after { animation-delay: 0s; }
.c2::after { animation-delay: 0.7s; }
.c3::after { animation-delay: 1.4s; }
.c4::after { animation-delay: 2.1s; }

@keyframes energy-pulse {
    0% { left: -100%; }
    100% { left: 100%; }
}

/* Technological brain floating */
.technological-brain {
    animation: tech-brain-float 5s ease-in-out infinite;
}

@keyframes tech-brain-float {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-10px); }
}

/* Custom benefits check animation */
.benefit-check {
    animation: check-pulse 2s infinite;
}

@keyframes check-pulse {
    0%, 100% { 
        transform: scale(1);
        color: #00aaff;
    }
    50% { 
        transform: scale(1.2);
        color: #00ccff;
        text-shadow: 0 0 10px rgba(0,170,255,0.6);
    }
}

/* Button pulse effect */
.custom-dataset-button {
    position: relative;
    overflow: hidden;
}

.custom-dataset-button::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent);
    transition: all 0.6s ease;
}

.custom-dataset-button:hover::before {
    left: 100%;
}

/* Page entrance animations */
.ready-datasets {
    animation: section-fade-in 1s ease-out;
}

.custom-datasets-section {
    animation: section-slide-up 1s ease-out 0.3s both;
}

@keyframes section-fade-in {
    0% { 
        opacity: 0;
        transform: translateY(30px);
    }
    100% { 
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes section-slide-up {
    0% { 
        opacity: 0;
        transform: translateY(50px);
    }
    100% { 
        opacity: 1;
        transform: translateY(0);
    }
}

/* Dataset categories staggered entrance */
.dataset-category {
    animation: card-entrance 0.8s ease-out;
}

.dataset-category:nth-child(1) { animation-delay: 0.1s; }
.dataset-category:nth-child(2) { animation-delay: 0.2s; }
.dataset-category:nth-child(3) { animation-delay: 0.3s; }
.dataset-category:nth-child(4) { animation-delay: 0.4s; }

@keyframes card-entrance {
    0% { 
        opacity: 0;
        transform: translateY(30px) scale(0.95);
    }
    100% { 
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

/* Responsive animation adjustments */
@media (max-width: 768px) {
    .tech-brain-float {
        animation-duration: 6s;
    }
    
    .neural-fire {
        animation-duration: 4s;
    }
    
    .flow-movement {
        animation-duration: 5s;
    }
    
    .brain-pulse {
        animation-duration: 5s;
    }
}

/* Reduce motion for accessibility */
@media (prefers-reduced-motion: reduce) {
    .neural-node,
    .flow-element,
    .technological-brain,
    .health-cross,
    .finance-chart,
    .shopping-cart,
    .justice-scale {
        animation: none;
    }
    
    .connection-line::after {
        animation: none;
    }
}


/* ========================================
   WHY TRAINSTACK PAGE ANIMATIONS 
======================================== */

/* SEÇÃO 1 - Built for Section Animations */

/* 3D Cube rotation */
.tech-cube {
    animation: cube-3d-rotation 20s linear infinite;
}

@keyframes cube-3d-rotation {
    0% { transform: rotateX(-15deg) rotateY(25deg) rotateZ(0deg); }
    100% { transform: rotateX(-15deg) rotateY(25deg) rotateZ(360deg); }
}

/* Cube faces glowing */
.cube-face {
    animation: face-glow 4s infinite;
}

.cube-face.front { animation-delay: 0s; }
.cube-face.back { animation-delay: 0.5s; }
.cube-face.right { animation-delay: 1s; }
.cube-face.left { animation-delay: 1.5s; }
.cube-face.top { animation-delay: 2s; }
.cube-face.bottom { animation-delay: 2.5s; }

@keyframes face-glow {
    0%, 100% { 
        border-color: #00aaff;
        background: rgba(0,170,255,0.1);
        box-shadow: inset 0 0 20px rgba(0,170,255,0.2);
    }
    50% { 
        border-color: #00ccff;
        background: rgba(0,170,255,0.2);
        box-shadow: inset 0 0 30px rgba(0,170,255,0.4);
    }
}

/* SEÇÃO 2 - Future Section Animations */

/* 1. DNA HELIX ANIMATIONS */
.dna-strand::before {
    animation: dnaRotate1 4s ease-in-out infinite;
}

.dna-strand::after {
    animation: dnaRotate2 4s ease-in-out infinite;
}

.dna-dot {
    animation: dnaPulse 2s infinite;
}

.dna-dot:nth-child(1) { animation-delay: 0s; }
.dna-dot:nth-child(2) { animation-delay: 0.3s; }
.dna-dot:nth-child(3) { animation-delay: 0.6s; }
.dna-dot:nth-child(4) { animation-delay: 0.9s; }
.dna-dot:nth-child(5) { animation-delay: 1.2s; }

@keyframes dnaRotate1 {
    0%, 100% { transform: translateX(-50%) rotateY(0deg) rotateZ(0deg); }
    50% { transform: translateX(-50%) rotateY(180deg) rotateZ(180deg); }
}

@keyframes dnaRotate2 {
    0%, 100% { transform: translateX(-50%) rotateY(90deg) rotateZ(0deg); }
    50% { transform: translateX(-50%) rotateY(270deg) rotateZ(180deg); }
}

@keyframes dnaPulse {
    0%, 100% { transform: translateX(-50%) scale(1); opacity: 0.8; }
    50% { transform: translateX(-50%) scale(1.5); opacity: 1; }
}

/* 2. ORBITAL SPHERES ANIMATIONS */
.orbital-center {
    animation: centerGlow 2s ease-in-out infinite;
}

.ring-inner {
    animation: ringRotate1 4s linear infinite;
}

.ring-outer {
    animation: ringRotate2 6s linear infinite reverse;
}

.orbital-sphere {
    animation: spherePulse 2s ease-in-out infinite;
}

.sphere-1 { animation-delay: 0s; }
.sphere-2 { animation-delay: 0.5s; }
.sphere-3 { animation-delay: 1s; }
.sphere-4 { animation-delay: 0.3s; }
.sphere-5 { animation-delay: 0.8s; }
.sphere-6 { animation-delay: 1.3s; }

@keyframes centerGlow {
    0%, 100% { 
        transform: scale(1);
        box-shadow: 0 0 25px #00f5ff;
    }
    50% { 
        transform: scale(1.2);
        box-shadow: 0 0 35px #00f5ff;
    }
}

@keyframes ringRotate1 {
    0% { transform: translate(-50%, -50%) rotate(0deg); }
    100% { transform: translate(-50%, -50%) rotate(360deg); }
}

@keyframes ringRotate2 {
    0% { transform: translate(-50%, -50%) rotate(0deg); }
    100% { transform: translate(-50%, -50%) rotate(360deg); }
}

@keyframes spherePulse {
    0%, 100% { 
        transform: scale(1);
        opacity: 0.8;
    }
    50% { 
        transform: scale(1.3);
        opacity: 1;
    }
}

/* 3. EXPANSION WAVES ANIMATIONS */
.wave-center {
    animation: centerPulse 2s ease-in-out infinite;
}

.wave-1 {
    animation: waveExpand1 3s ease-out infinite;
}

.wave-2 {
    animation: waveExpand2 3s ease-out infinite 0.5s;
}

.wave-3 {
    animation: waveExpand3 3s ease-out infinite 1s;
}

.wave-4 {
    animation: waveExpand4 3s ease-out infinite 1.5s;
}

@keyframes centerPulse {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.3); }
}

@keyframes waveExpand1 {
    0% { 
        transform: scale(0.3);
        opacity: 0;
        border-width: 3px;
    }
    20% {
        opacity: 1;
        border-width: 3px;
    }
    100% { 
        transform: scale(1);
        opacity: 0;
        border-width: 1px;
    }
}

@keyframes waveExpand2 {
    0% { 
        transform: scale(0.3);
        opacity: 0;
        border-width: 3px;
    }
    20% {
        opacity: 0.8;
        border-width: 2px;
    }
    100% { 
        transform: scale(1);
        opacity: 0;
        border-width: 1px;
    }
}

@keyframes waveExpand3 {
    0% { 
        transform: scale(0.3);
        opacity: 0;
        border-width: 3px;
    }
    20% {
        opacity: 0.6;
        border-width: 2px;
    }
    100% { 
        transform: scale(1);
        opacity: 0;
        border-width: 1px;
    }
}

@keyframes waveExpand4 {
    0% { 
        transform: scale(0.3);
        opacity: 0;
        border-width: 3px;
    }
    20% {
        opacity: 0.4;
        border-width: 2px;
    }
    100% { 
        transform: scale(1);
        opacity: 0;
        border-width: 1px;
    }
}

/* Future pillars floating */
.future-pillar {
    animation: pillar-float 4s ease-in-out infinite;
}

.future-pillar:nth-child(1) { animation-delay: 0s; }
.future-pillar:nth-child(2) { animation-delay: 1s; }
.future-pillar:nth-child(3) { animation-delay: 2s; }

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

/* SEÇÃO 3 - Core Beliefs Animations */

/* NOVO - Controle gamepad animações */
.dpad-horizontal, .dpad-vertical {
    animation: dpad-pulse 2s infinite;
}

.btn {
    animation: btn-pulse 2.5s infinite;
}

.btn-top { animation-delay: 0s; }
.btn-right { animation-delay: 0.3s; }
.btn-bottom { animation-delay: 0.6s; }
.btn-left { animation-delay: 0.9s; }

@keyframes dpad-pulse {
    0%, 100% {
        background: #00aaff;
        box-shadow: 0 0 4px rgba(0,170,255,0.6);
    }
    50% {
        background: #00ccff;
        box-shadow: 0 0 8px rgba(0,170,255,1);
    }
}

@keyframes btn-pulse {
    0%, 100% {
        background: #00aaff;
        box-shadow: 0 0 4px rgba(0,170,255,0.6);
    }
    50% {
        background: #00ccff;
        box-shadow: 0 0 8px rgba(0,170,255,1);
    }
}

.gamepad-body {
    animation: gamepad-glow 3s infinite;
}

@keyframes gamepad-glow {
    0%, 100% {
        border-color: #00aaff;
        box-shadow: 0 0 8px rgba(0,170,255,0.3);
    }
    50% {
        border-color: #00ccff;
        box-shadow: 0 0 15px rgba(0,170,255,0.6);
    }
}

/* NOVO - Mira de foco animações */
.crosshair-center {
    animation: center-pulse 2s infinite;
}

.crosshair-vertical, .crosshair-horizontal {
    animation: crosshair-glow 3s infinite;
}

@keyframes center-pulse {
    0%, 100% {
        transform: scale(1);
        box-shadow: 0 0 8px rgba(0,170,255,0.8);
    }
    50% {
        transform: scale(1.3);
        box-shadow: 0 0 15px rgba(0,170,255,1);
    }
}

@keyframes crosshair-glow {
    0%, 100% {
        background: #00aaff;
        box-shadow: 0 0 4px rgba(0,170,255,0.4);
    }
    50% {
        background: #00ccff;
        box-shadow: 0 0 8px rgba(0,170,255,0.8);
    }
}

/* Scalable bars growing (MANTÉM IGUAL) */
.scale-bar {
    animation: scalable-growth 3s ease-in-out infinite;
}

.sb1 { animation-delay: 0s; }
.sb2 { animation-delay: 0.3s; }
.sb3 { animation-delay: 0.6s; }
.sb4 { animation-delay: 0.9s; }

@keyframes scalable-growth {
    0%, 100% {
        transform: scaleY(1);
        background: #00aaff;
    }
    50% {
        transform: scaleY(1.2);
        background: #00ccff;
        box-shadow: 0 0 15px rgba(0,170,255,0.6);
    }
}

/* MODIFICADO - Transparency eye blinking (SEM RAIOS) */
.eye-pupil {
    animation: pupil-blink 4s infinite;
}

@keyframes pupil-blink {
    0%, 90%, 100% {
        transform: translate(-50%, -50%) scale(1);
        box-shadow: 0 0 10px rgba(0,170,255,0.8);
    }
    95% {
        transform: translate(-50%, -50%) scale(0.1);
        box-shadow: 0 0 20px rgba(0,170,255,1);
    }
}

.eye-outer, .eye-inner {
    animation: eye-glow 4s infinite;
}

@keyframes eye-glow {
    0%, 100% {
        border-color: #00aaff;
        box-shadow: 0 0 10px rgba(0,170,255,0.3);
    }
    50% {
        border-color: #00ccff;
        box-shadow: 0 0 20px rgba(0,170,255,0.6);
    }
}

/* Belief cards entrance animation */
.belief-card {
    animation: card-entrance 1s ease-out;
}

.belief-card:nth-child(1) { animation-delay: 0.1s; }
.belief-card:nth-child(2) { animation-delay: 0.2s; }
.belief-card:nth-child(3) { animation-delay: 0.3s; }
.belief-card:nth-child(4) { animation-delay: 0.4s; }

@keyframes card-entrance {
    0% {
        opacity: 0;
        transform: translateY(30px) scale(0.95);
    }
    100% {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

/* Enhanced hover effects */
.belief-card:hover .gamepad {
    transform: scale(1.1);
}

.belief-card:hover .crosshair {
    transform: scale(1.1);
}

.belief-card:hover .scalable-bars {
    transform: scale(1.1);
}

.belief-card:hover .transparency-eye {
    transform: scale(1.1);
}

.future-pillar:hover .pillar-icon {
    transform: scale(1.1);
}

.future-pillar:hover .refresh-circle {
    animation-duration: 1.5s;
}

.future-pillar:hover .gear-main {
    animation-duration: 2s;
}

.future-pillar:hover .scale-chart {
    transform: scale(1.1);
}

/* Page sections entrance */
.built-for-section {
    animation: section-fade-in 1s ease-out;
}

.future-section {
    animation: section-slide-up 1s ease-out 0.3s both;
}

.core-beliefs-section {
    animation: section-fade-in 1s ease-out 0.6s both;
}

@keyframes section-slide-up {
    0% {
        opacity: 0;
        transform: translateY(50px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes section-fade-in {
    0% {
        opacity: 0;
    }
    100% {
        opacity: 1;
    }
}

/* Responsive animation adjustments */
@media (max-width: 768px) {
    .cube-3d-rotation {
        animation-duration: 25s;
    }
    
    .particle-float {
        animation-duration: 8s;
    }
    
    .pillar-float {
        animation-duration: 5s;
    }
    
    .tech-cube {
        animation-duration: 15s;
    }
}

/* Reduce motion for accessibility */
@media (prefers-reduced-motion: reduce) {
    .tech-cube,
    .particle-dot,
    .refresh-circle,
    .gear-main,
    .gear-small,
    .crosshair,
    .gamepad,
    .eye-pupil,
    .scale-bar {
        animation: none;
    }
    
    .connection::after {
        animation: none;
    }
}

/* ========================================
   CONTACT US PAGE ANIMATIONS 
======================================== */

/* Network particles pulsing */
.network-node {
    animation: node-pulse 3s infinite;
}

.node1 { animation-delay: 0s; }
.node2 { animation-delay: 0.4s; }
.node3 { animation-delay: 0.8s; }
.node4 { animation-delay: 1.2s; }
.node5 { animation-delay: 1.6s; }
.node6 { animation-delay: 2s; }
.node7 { animation-delay: 2.4s; }
.node8 { animation-delay: 2.8s; }

@keyframes node-pulse {
    0%, 100% { 
        transform: scale(1);
        box-shadow: 0 0 10px rgba(0,170,255,0.6);
        opacity: 0.7;
    }
    50% { 
        transform: scale(1.5);
        box-shadow: 0 0 20px rgba(0,170,255,1);
        opacity: 1;
    }
}

/* Network lines energy flow */
.network-line {
    position: relative;
    overflow: hidden;
}

.network-line::after {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(0,170,255,0.8), transparent);
    animation: energy-flow 4s infinite;
}

.line1::after { animation-delay: 0s; }
.line2::after { animation-delay: 0.7s; }
.line3::after { animation-delay: 1.4s; }
.line4::after { animation-delay: 2.1s; }
.line5::after { animation-delay: 2.8s; }
.line6::after { animation-delay: 3.5s; }

@keyframes energy-flow {
    0% { left: -100%; }
    100% { left: 100%; }
}

/* Floating data elements movement */
.data-element {
    animation: data-float 6s ease-in-out infinite;
}

.elem1 { animation-delay: 0s; }
.elem2 { animation-delay: 1.5s; }
.elem3 { animation-delay: 3s; }
.elem4 { animation-delay: 4.5s; }

@keyframes data-float {
    0%, 100% { 
        transform: translateY(0) translateX(0);
        opacity: 0.5;
    }
    25% { 
        transform: translateY(-15px) translateX(10px);
        opacity: 0.8;
    }
    50% { 
        transform: translateY(-5px) translateX(20px);
        opacity: 1;
    }
    75% { 
        transform: translateY(-20px) translateX(5px);
        opacity: 0.7;
    }
}

/* Contact form container entrance */
.contact-form-container {
    animation: form-entrance 1.2s ease-out;
}

@keyframes form-entrance {
    0% { 
        opacity: 0;
        transform: translateY(50px) scale(0.95);
    }
    100% { 
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

/* Contact header entrance */
.contact-header {
    animation: header-fade-in 1s ease-out;
}

@keyframes header-fade-in {
    0% { 
        opacity: 0;
        transform: translateY(30px);
    }
    100% { 
        opacity: 1;
        transform: translateY(0);
    }
}

/* Form groups staggered entrance */
.form-group {
    animation: group-slide-in 0.8s ease-out;
}

.form-group:nth-child(1) { animation-delay: 0.2s; }
.form-group:nth-child(2) { animation-delay: 0.3s; }
.form-group:nth-child(3) { animation-delay: 0.4s; }
.form-group:nth-child(4) { animation-delay: 0.5s; }
.form-group:nth-child(5) { animation-delay: 0.6s; }
.form-group:nth-child(6) { animation-delay: 0.7s; }

@keyframes group-slide-in {
    0% { 
        opacity: 0;
        transform: translateX(-30px);
    }
    100% { 
        opacity: 1;
        transform: translateX(0);
    }
}

/* Submit button entrance */
.form-submit {
    animation: button-entrance 0.8s ease-out 0.8s both;
}

@keyframes button-entrance {
    0% { 
        opacity: 0;
        transform: translateY(20px) scale(0.9);
    }
    100% { 
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

/* Input line animation enhancement */
.input-line {
    position: relative;
    overflow: hidden;
}

.input-line::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.4), transparent);
    transform: translateX(-100%);
    transition: all 0.6s ease;
}

.form-group.focused .input-line::after {
    transform: translateX(100%);
}

/* Button pulse effect */
.submit-button {
    position: relative;
    overflow: hidden;
}

.submit-button::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 0;
    height: 0;
    background: rgba(255,255,255,0.2);
    border-radius: 50%;
    transform: translate(-50%, -50%);
    transition: all 0.6s ease;
}

.submit-button:active::before {
    width: 300px;
    height: 300px;
}

/* Select arrow rotation */
.select-arrow {
    transition: all 0.3s ease;
}

.form-group.focused .select-arrow {
    animation: arrow-spin 0.3s ease-out;
}

@keyframes arrow-spin {
    0% { transform: translateY(-50%) rotate(0deg); }
    100% { transform: translateY(-50%) rotate(180deg); }
}

/* Success message animations */
.success-message {
    animation: overlay-fade-in 0.5s ease-out;
}

@keyframes overlay-fade-in {
    0% { 
        opacity: 0;
        backdrop-filter: blur(0px);
    }
    100% { 
        opacity: 1;
        backdrop-filter: blur(5px);
    }
}

.success-content {
    animation: success-bounce 0.6s ease-out 0.2s both;
}

@keyframes success-bounce {
    0% { 
        opacity: 0;
        transform: scale(0.5) translateY(50px);
    }
    60% { 
        opacity: 1;
        transform: scale(1.05) translateY(-10px);
    }
    100% { 
        opacity: 1;
        transform: scale(1) translateY(0);
    }
}

/* Success icon animation */
.success-icon svg circle {
    stroke-dasharray: 188;
    stroke-dashoffset: 188;
    animation: circle-draw 1s ease-out 0.5s both;
}

.success-icon svg path {
    stroke-dasharray: 50;
    stroke-dashoffset: 50;
    animation: check-draw 0.8s ease-out 1.2s both;
}

@keyframes circle-draw {
    0% { stroke-dashoffset: 188; }
    100% { stroke-dashoffset: 0; }
}

@keyframes check-draw {
    0% { stroke-dashoffset: 50; }
    100% { stroke-dashoffset: 0; }
}

/* Input focus ripple effect */
.form-group input:focus,
.form-group textarea:focus,
.form-group select:focus {
    position: relative;
}

.form-group input:focus::before,
.form-group textarea:focus::before,
.form-group select:focus::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: radial-gradient(circle, rgba(0,170,255,0.1) 0%, transparent 70%);
    animation: focus-ripple 0.6s ease-out;
    pointer-events: none;
}

@keyframes focus-ripple {
    0% { 
        transform: scale(0);
        opacity: 1;
    }
    100% { 
        transform: scale(1);
        opacity: 0;
    }
}

/* Background container glow */
.contact-form-container {
    position: relative;
}

.contact-form-container::before {
    content: '';
    position: absolute;
    top: -2px;
    left: -2px;
    right: -2px;
    bottom: -2px;
    background: linear-gradient(45deg, 
        transparent, 
        rgba(0,170,255,0.1), 
        transparent, 
        rgba(0,170,255,0.1), 
        transparent
    );
    border-radius: 22px;
    animation: border-glow 4s linear infinite;
    z-index: -1;
}

@keyframes border-glow {
    0% { background-position: 0% 50%; }
    100% { background-position: 200% 50%; }
}

/* Form validation animations */
.form-group input:invalid:not(:placeholder-shown) ~ .input-line,
.form-group textarea:invalid:not(:placeholder-shown) ~ .input-line,
.form-group select:invalid:not(:placeholder-shown) ~ .input-line {
    background: linear-gradient(90deg, #ff4444, #ff6666);
    animation: error-shake 0.5s ease-out;
}

@keyframes error-shake {
    0%, 100% { transform: translateX(0); }
    25% { transform: translateX(-5px); }
    75% { transform: translateX(5px); }
}

.form-group input:valid:not(:placeholder-shown) ~ .input-line,
.form-group textarea:valid:not(:placeholder-shown) ~ .input-line,
.form-group select:valid:not(:placeholder-shown) ~ .input-line {
    background: linear-gradient(90deg, #00aaff, #00ccff);
    animation: success-glow 0.5s ease-out;
}

@keyframes success-glow {
    0% { 
        box-shadow: 0 0 0 rgba(0,170,255,0.5);
    }
    50% { 
        box-shadow: 0 0 10px rgba(0,170,255,0.8);
    }
    100% { 
        box-shadow: 0 0 0 rgba(0,170,255,0.5);
    }
}

/* Button loading animation */
.submit-button.loading {
    animation: button-loading 1.5s ease-in-out infinite;
}

@keyframes button-loading {
    0%, 100% { opacity: 0.7; }
    50% { opacity: 1; }
}

/* Textarea resize handle glow */
textarea:focus {
    resize: vertical;
}

textarea::-webkit-resizer {
    background: linear-gradient(135deg, rgba(0,170,255,0.3), rgba(0,170,255,0.6));
    border-radius: 3px;
}

/* Enhanced hover effects */
.form-group:hover .input-line {
    background: linear-gradient(90deg, rgba(0,170,255,0.3), rgba(0,170,255,0.6));
    width: 30%;
    transition: all 0.3s ease;
}

.submit-button:hover {
    animation: button-hover-pulse 2s ease-in-out infinite;
}

@keyframes button-hover-pulse {
    0%, 100% { 
        box-shadow: 0 15px 35px rgba(0,170,255,0.4);
    }
    50% { 
        box-shadow: 0 15px 35px rgba(0,170,255,0.6), 0 0 30px rgba(0,170,255,0.3);
    }
}

/* Responsive animation adjustments */
@media (max-width: 768px) {
    .node-pulse {
        animation-duration: 4s;
    }
    
    .data-float {
        animation-duration: 8s;
    }
    
    .energy-flow {
        animation-duration: 5s;
    }
    
    .form-entrance {
        animation-duration: 1s;
    }
}

/* Reduce motion for accessibility */
@media (prefers-reduced-motion: reduce) {
    .network-node,
    .data-element,
    .contact-form-container,
    .contact-header,
    .form-group,
    .form-submit {
        animation: none;
    }
    
    .network-line::after {
        animation: none;
    }
    
    .input-line::after {
        display: none;
    }
    
    .submit-button::before {
        display: none;
    }
}

/* Page entrance animation */
.contact-section {
    animation: page-fade-in 1s ease-out;
}

@keyframes page-fade-in {
    0% { 
        opacity: 0;
    }
    100% { 
        opacity: 1;
    }
}

/* ========================================
   SPECIALIZED KNOWLEDGE SECTION ANIMATIONS 
======================================== */

/* Section entrance animation */
.specialized-knowledge {
    animation: section-fade-in 1s ease-out;
}

@keyframes section-fade-in {
    0% { 
        opacity: 0;
        transform: translateY(30px);
    }
    100% { 
        opacity: 1;
        transform: translateY(0);
    }
}

/* Brain glow pulsing */
.brain-glow-effect {
    animation: brain-pulse 4s ease-in-out infinite;
}

@keyframes brain-pulse {
    0%, 100% { 
        opacity: 0.3; 
        transform: translate(-50%, -50%) scale(1); 
    }
    50% { 
        opacity: 0.6; 
        transform: translate(-50%, -50%) scale(1.1); 
    }
}

/* Neural brain floating */
.neural-brain-container {
    animation: brain-float 5s ease-in-out infinite;
}

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

/* Example section shimmer */
@keyframes example-shimmer {
    0% { left: -100%; }
    100% { left: 100%; }
}

/* Content animations */
.specialized-content h2 {
    animation: title-slide-in 1s ease-out 0.2s both;
}

.specialized-content > p {
    animation: text-fade-in 1s ease-out 0.4s both;
}

@keyframes title-slide-in {
    0% { 
        opacity: 0;
        transform: translateX(-30px);
    }
    100% { 
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes text-fade-in {
    0% { 
        opacity: 0;
        transform: translateY(20px);
    }
    100% { 
        opacity: 1;
        transform: translateY(0);
    }
}

/* Example section entrance */
.example-section {
    animation: example-entrance 1s ease-out 0.5s both;
}

@keyframes example-entrance {
    0% { 
        opacity: 0;
        transform: translateY(20px) scale(0.98);
    }
    100% { 
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

/* Content fade in */
@keyframes content-fade-in {
    0% { 
        opacity: 0;
        transform: translateY(10px);
    }
    100% { 
        opacity: 1;
        transform: translateY(0);
    }
}

/* Example label pulse */
.example-label {
    animation: label-pulse 3s infinite;
}

@keyframes label-pulse {
    0%, 100% { 
        transform: scale(1);
        box-shadow: 0 0 10px rgba(0,170,255,0.3);
    }
    50% { 
        transform: scale(1.05);
        box-shadow: 0 0 20px rgba(0,170,255,0.5);
    }
}

/* Process flow staggered entrance */
.process-item {
    animation: process-entrance 0.8s ease-out;
}

.process-item:nth-child(1) { animation-delay: 0.6s; }
.process-item:nth-child(2) { animation-delay: 0.8s; }
.process-item:nth-child(3) { animation-delay: 1s; }

@keyframes process-entrance {
    0% { 
        opacity: 0;
        transform: scale(0.8) translateY(20px);
    }
    100% { 
        opacity: 1;
        transform: scale(1) translateY(0);
    }
}

/* Process icons animations */
.briefcase-icon {
    animation: briefcase-hover 3s ease-in-out infinite;
}

@keyframes briefcase-hover {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-5px); }
}

.briefcase-body,
.briefcase-handle {
    animation: briefcase-glow 3s infinite;
}

@keyframes briefcase-glow {
    0%, 100% { 
        border-color: #00aaff;
        box-shadow: 0 0 5px rgba(0,170,255,0.3);
    }
    50% { 
        border-color: #00ccff;
        box-shadow: 0 0 15px rgba(0,170,255,0.6);
    }
}

.briefcase-lock {
    animation: lock-glow 2s infinite;
}

@keyframes lock-glow {
    0%, 100% { 
        background: #00aaff;
        box-shadow: 0 0 5px rgba(0,170,255,0.6);
    }
    50% { 
        background: #00ccff;
        box-shadow: 0 0 10px rgba(0,170,255,1);
    }
}

/* Plus icon rotation */
.plus-icon {
    animation: plus-rotate 4s linear infinite;
}

@keyframes plus-rotate {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

.plus-horizontal,
.plus-vertical {
    animation: plus-glow 2s infinite;
}

@keyframes plus-glow {
    0%, 100% { 
        background: #00aaff;
        box-shadow: 0 0 5px rgba(0,170,255,0.5);
    }
    50% { 
        background: #00ccff;
        box-shadow: 0 0 10px rgba(0,170,255,0.8);
    }
}

/* Arrow icon movement */
.arrow-icon {
    animation: arrow-move 2s ease-in-out infinite;
}

@keyframes arrow-move {
    0%, 100% { transform: translateX(0); }
    50% { transform: translateX(8px); }
}

.arrow-line,
.arrow-head {
    animation: arrow-glow 2s infinite;
}

@keyframes arrow-glow {
    0%, 100% { 
        background: #00aaff;
        border-left-color: #00aaff;
        box-shadow: 0 0 5px rgba(0,170,255,0.5);
    }
    50% { 
        background: #00ccff;
        border-left-color: #00ccff;
        box-shadow: 0 0 10px rgba(0,170,255,0.8);
    }
}

/* Enhanced hover effects */
.neural-brain-container:hover .brain-glow-effect {
    animation-duration: 2s;
}

/* Responsive animation adjustments */
@media (max-width: 768px) {
    .brain-pulse {
        animation-duration: 5s;
    }
    
    .brain-float {
        animation-duration: 6s;
    }
}

/* Reduce motion for accessibility */
@media (prefers-reduced-motion: reduce) {
    .brain-glow-effect,
    .neural-brain-container,
    .briefcase-icon,
    .plus-icon,
    .arrow-icon,
    .example-label {
        animation: none;
    }
    
    .example-section::before {
        animation: none;
    }
    
    .specialized-content h2,
    .specialized-content > p,
    .example-section,
    .process-item {
        animation-delay: 0s;
    }
}

/* ========================================
   HERO BACKGROUND LINES ANIMATIONS 
======================================== */

/* Animated lines flowing */
.animated-line {
    animation: line-flow 8s ease-in-out infinite;
    opacity: 0;
}

.line1 { animation-delay: 0s; }
.line2 { animation-delay: 1s; }
.line3 { animation-delay: 2s; }
.line4 { animation-delay: 3s; }
.line5 { animation-delay: 4s; }
.line6 { animation-delay: 1.5s; }
.line7 { animation-delay: 2.5s; }
.line8 { animation-delay: 3.5s; }

@keyframes line-flow {
    0%, 100% { 
        opacity: 0;
        transform: translateX(-50px) scale(0.8);
    }
    10% { 
        opacity: 0.6;
        transform: translateX(-20px) scale(1);
    }
    50% { 
        opacity: 1;
        transform: translateX(0) scale(1.1);
    }
    90% { 
        opacity: 0.4;
        transform: translateX(20px) scale(1);
    }
}

/* Network points pulsing */
.network-point {
    animation: point-pulse 3s infinite;
}

.point1 { animation-delay: 0s; }
.point2 { animation-delay: 0.5s; }
.point3 { animation-delay: 1s; }
.point4 { animation-delay: 1.5s; }
.point5 { animation-delay: 2s; }
.point6 { animation-delay: 2.5s; }

@keyframes point-pulse {
    0%, 100% { 
        transform: scale(1);
        box-shadow: 0 0 10px rgba(0,170,255,0.8);
        opacity: 0.7;
    }
    50% { 
        transform: scale(1.5);
        box-shadow: 0 0 20px rgba(0,170,255,1);
        opacity: 1;
    }
}

/* Enhanced line effects */
.animated-line::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(0,200,255,0.6), transparent);
    animation: energy-pulse 4s infinite;
    opacity: 0;
}

.line1::after { animation-delay: 0.5s; }
.line2::after { animation-delay: 1.5s; }
.line3::after { animation-delay: 2.5s; }
.line4::after { animation-delay: 3.5s; }
.line5::after { animation-delay: 4.5s; }
.line6::after { animation-delay: 2s; }
.line7::after { animation-delay: 3s; }
.line8::after { animation-delay: 4s; }

@keyframes energy-pulse {
    0%, 90%, 100% { 
        opacity: 0;
        transform: translateX(-100%);
    }
    10% { 
        opacity: 1;
        transform: translateX(-50%);
    }
    50% { 
        opacity: 1;
        transform: translateX(0);
    }
    80% { 
        opacity: 1;
        transform: translateX(50%);
    }
}

/* Background lines container subtle movement */
.hero-background-lines {
    animation: background-drift 12s ease-in-out infinite;
}

@keyframes background-drift {
    0%, 100% { 
        transform: translateX(0) translateY(0);
    }
    33% { 
        transform: translateX(10px) translateY(-5px);
    }
    66% { 
        transform: translateX(-8px) translateY(8px);
    }
}

/* Network points floating */
.hero-network-points {
    animation: points-float 8s ease-in-out infinite;
}

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

/* Individual point movements */
.point1 {
    animation: point-pulse 3s infinite, point-drift-1 10s ease-in-out infinite;
}

.point2 {
    animation: point-pulse 3s infinite 0.5s, point-drift-2 12s ease-in-out infinite;
}

.point3 {
    animation: point-pulse 3s infinite 1s, point-drift-3 11s ease-in-out infinite;
}

.point4 {
    animation: point-pulse 3s infinite 1.5s, point-drift-4 9s ease-in-out infinite;
}

.point5 {
    animation: point-pulse 3s infinite 2s, point-drift-5 13s ease-in-out infinite;
}

.point6 {
    animation: point-pulse 3s infinite 2.5s, point-drift-6 10s ease-in-out infinite;
}

@keyframes point-drift-1 {
    0%, 100% { transform: translate(0, 0); }
    50% { transform: translate(15px, -10px); }
}

@keyframes point-drift-2 {
    0%, 100% { transform: translate(0, 0); }
    50% { transform: translate(-12px, 8px); }
}

@keyframes point-drift-3 {
    0%, 100% { transform: translate(0, 0); }
    50% { transform: translate(10px, 12px); }
}

@keyframes point-drift-4 {
    0%, 100% { transform: translate(0, 0); }
    50% { transform: translate(-8px, -15px); }
}

@keyframes point-drift-5 {
    0%, 100% { transform: translate(0, 0); }
    50% { transform: translate(-20px, 5px); }
}

@keyframes point-drift-6 {
    0%, 100% { transform: translate(0, 0); }
    50% { transform: translate(18px, -8px); }
}

/* Responsive animation adjustments */
@media (max-width: 768px) {
    .line-flow {
        animation-duration: 10s;
    }
    
    .background-drift {
        animation-duration: 15s;
    }
    
    .energy-pulse {
        animation-duration: 5s;
    }
    
    .point-pulse {
        animation-duration: 4s;
    }
}

/* Reduce motion for accessibility */
@media (prefers-reduced-motion: reduce) {
    .animated-line,
    .network-point,
    .hero-background-lines,
    .hero-network-points {
        animation: none;
    }
    
    .animated-line::after {
        animation: none;
    }
    
    .animated-line {
        opacity: 0.3;
    }
    
    .network-point {
        opacity: 0.5;
    }
}