/* Portfolio Template CSS - Optimized for Lighthouse *//* CSS Variables - Customize here */:root {/* Colores principales - PERSONALIZAR */--primary-bg: #0a0a0a;           /* Color de fondo principal */--secondary-bg: #1a1a1a;        /* Color de fondo secundario */--card-bg: #2a2a2a;             /* Color de fondo de tarjetas */--accent-color: #6366f1;        /* Color de acento principal */--accent-secondary: #8b5cf6;    /* Color de acento secundario */--accent-hover: #5855f5;        /* Color de acento al hover *//* Colores de texto */--text-primary: #ffffff;        /* Texto principal */--text-secondary: #d4d4d8;      /* Texto secundario - Better contrast */--text-muted: #a1a1aa;          /* Texto menos importante - Improved *//* Colores de borde y elementos */--border-color: #374151;        /* Color de bordes */--success-color: #10b981;       /* Color de éxito */--error-color: #ef4444;         /* Color de error */--warning-color: #f59e0b;       /* Color de advertencia *//* Tipografía */--font-primary: 'Poppins', sans-serif;  /* Fuente principal */--font-size-xs: 0.75rem;        /* 12px */--font-size-sm: 0.875rem;       /* 14px */--font-size-base: 1rem;         /* 16px */--font-size-lg: 1.125rem;       /* 18px */--font-size-xl: 1.25rem;        /* 20px */--font-size-2xl: 1.5rem;        /* 24px */--font-size-3xl: 1.875rem;      /* 30px */--font-size-4xl: 2.25rem;       /* 36px */--font-size-5xl: 3rem;          /* 48px */--font-size-6xl: 3.75rem;       /* 60px *//* Espaciado */--spacing-xs: 0.5rem;           /* 8px */--spacing-sm: 1rem;             /* 16px */--spacing-md: 1.5rem;           /* 24px */--spacing-lg: 2rem;             /* 32px */--spacing-xl: 3rem;             /* 48px */--spacing-2xl: 4rem;            /* 64px */--spacing-3xl: 6rem;            /* 96px *//* Sombras */--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);--shadow-base: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);--shadow-glow: 0 0 20px rgba(99, 102, 241, 0.3);/* Border radius */--radius-sm: 0.375rem;          /* 6px */--radius-base: 0.5rem;          /* 8px */--radius-lg: 0.75rem;           /* 12px */--radius-xl: 1rem;              /* 16px */--radius-2xl: 1.5rem;           /* 24px */--radius-full: 9999px;          /* Completamente redondeado *//* Transiciones */--transition-fast: 0.15s ease;--transition-base: 0.3s ease;--transition-slow: 0.5s ease;/* Z-index layers */--z-dropdown: 1000;--z-sticky: 1020;--z-fixed: 1030;--z-modal: 1040;--z-tooltip: 1050;}/*RESET Y BASE*/* {margin: 0;padding: 0;box-sizing: border-box;}*::before,*::after {box-sizing: border-box;}html {scroll-behavior: smooth;font-size: 16px;}body {font-family: var(--font-primary);font-size: var(--font-size-base);line-height: 1.6;color: var(--text-primary);background-color: var(--primary-bg);overflow-x: hidden;/* cursor: none; - Descomenta si activas el cursor personalizado */}/* Cuando el cursor personalizado está activo */body.custom-cursor {cursor: none;}body.custom-cursor * {cursor: none !important;}/* Elementos de texto */h1, h2, h3, h4, h5, h6 {font-weight: 600;line-height: 1.2;color: var(--text-primary);}h1 { font-size: var(--font-size-5xl); }h2 { font-size: var(--font-size-4xl); }h3 { font-size: var(--font-size-3xl); }h4 { font-size: var(--font-size-2xl); }h5 { font-size: var(--font-size-xl); }h6 { font-size: var(--font-size-lg); }p {margin-bottom: var(--spacing-sm);color: var(--text-secondary);}a {color: var(--accent-color);text-decoration: none;transition: color var(--transition-base);}a:hover {color: var(--accent-hover);}img {max-width: 100%;height: auto;display: block;}/*CURSOR PERSONALIZADO MODERNO - OPCIONAL*//* ACTIVADO PARA PREVIEW - Comenta si no quieres cursor personalizado */.cursor {position: fixed;width: 8px;height: 8px;border-radius: var(--radius-full);background: var(--accent-color);pointer-events: none;z-index: var(--z-tooltip);transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);transform: translate(-50%, -50%);}.cursor-follower {position: fixed;width: 32px;height: 32px;border-radius: var(--radius-full);border: 1px solid var(--accent-color);pointer-events: none;z-index: calc(var(--z-tooltip) - 1);opacity: 0.6;transition: all 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);transform: translate(-50%, -50%);backdrop-filter: blur(2px);}.cursor.hover {width: 4px;height: 4px;background: transparent;border: 2px solid var(--accent-color);}.cursor-follower.hover {width: 48px;height: 48px;opacity: 0.3;background: rgba(99, 102, 241, 0.1);}.cursor.click {width: 12px;height: 12px;background: var(--accent-secondary);box-shadow: 0 0 20px var(--accent-color);}.cursor-follower.click {width: 24px;height: 24px;border-width: 2px;}@media (max-width: 768px) {.cursor,.cursor-follower {display: none !important;}}@media (prefers-reduced-motion: reduce) {.cursor,.cursor-follower {display: none !important;}}/*UTILIDADES Y COMPONENTES BASE*/.container {max-width: 1200px;margin: 0 auto;padding: 0 var(--spacing-lg);}@media (max-width: 768px) {.container {padding: 0 var(--spacing-sm);}}.section {padding: var(--spacing-3xl) 0;}.section-title {font-size: var(--font-size-4xl);font-weight: 800;text-align: center;margin-bottom: var(--spacing-2xl);background: linear-gradient(135deg, var(--text-primary) 0%, var(--accent-color) 100%);-webkit-background-clip: text;-webkit-text-fill-color: transparent;background-clip: text;}/*HEADER Y NAVEGACIÓN*/.header {position: fixed;top: 0;width: 100%;padding: var(--spacing-sm) 0;background: rgba(10, 10, 10, 0.9);backdrop-filter: blur(20px);-webkit-backdrop-filter: blur(20px);z-index: var(--z-fixed);transition: all var(--transition-base);border-bottom: 1px solid rgba(255, 255, 255, 0.1);}.nav {display: flex;justify-content: space-between;align-items: center;max-width: 1200px;margin: 0 auto;padding: 0 var(--spacing-lg);}.logo {font-size: var(--font-size-2xl);font-weight: 800;color: var(--accent-color);text-decoration: none;}.nav-links {display: flex;list-style: none;gap: var(--spacing-lg);}.nav-links a {color: var(--text-primary);font-weight: 500;position: relative;padding: var(--spacing-xs) 0;transition: color var(--transition-base);}.nav-links a::after {content: '';position: absolute;bottom: -2px;left: 0;width: 0;height: 2px;background: var(--accent-color);transition: width var(--transition-base);}.nav-links a:hover::after,.nav-links a.active::after {width: 100%;}/* Mobile menu button */.mobile-menu-btn {display: none;background: none;border: none;color: var(--text-primary);font-size: var(--font-size-xl);cursor: pointer;}/* Responsive navigation */@media (max-width: 768px) {.nav {padding: 0 var(--spacing-sm);position: relative;}.nav-links {position: fixed;top: 0;left: -100%;width: 100%;height: 100vh;background: var(--secondary-bg);flex-direction: column;justify-content: center;align-items: center;gap: var(--spacing-lg);transition: left 0.3s ease-in-out;z-index: 1001;}.nav-links.mobile-open {left: 0;}.nav-links a {font-size: var(--font-size-2xl);font-weight: 600;padding: var(--spacing-md);}.mobile-menu-btn {display: block;z-index: 1002;position: relative;transition: color 0.3s ease;}.mobile-menu-btn:hover {color: var(--accent-color);}}/*ACCESSIBILITY & FOCUS STYLES*//* Focus styles for better accessibility */a:focus,button:focus,input:focus,textarea:focus,select:focus,.nav-links a:focus,.mobile-menu-btn:focus,.cta-button:focus,.back-to-top:focus,.testimonial-btn:focus,.project-card:focus,.scroll-indicator:focus {outline: 2px solid var(--accent-color);outline-offset: 2px;}/* Focus visible (modern browsers) */a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible {outline: 2px solid var(--accent-color);outline-offset: 2px;}/* Skip to main content link for screen readers */.skip-link {position: absolute;top: -40px;left: 6px;background: var(--accent-color);color: white;padding: 8px 16px;text-decoration: none;border-radius: 4px;z-index: 9999;transition: top 0.3s;}.skip-link:focus {top: 6px;}/* High contrast mode support */@media (prefers-contrast: high) {:root {--text-primary: #ffffff;--text-secondary: #e5e5e5;--border-color: #ffffff;--accent-color: #00ffff;}}/* Reduced motion support */@media (prefers-reduced-motion: reduce) {*,*::before,*::after {animation-duration: 0.01ms !important;animation-iteration-count: 1 !important;transition-duration: 0.01ms !important;}.cursor,.cursor-follower {display: none !important;}}/*HERO SECTION*/.hero {height: 100vh;display: flex;align-items: center;justify-content: center;position: relative;overflow: hidden;background: linear-gradient(135deg, var(--primary-bg) 0%, var(--secondary-bg) 100%);}.hero-background {position: absolute;top: 0;left: 0;width: 100%;height: 100%;background: radial-gradient(circle at 20% 80%, rgba(99, 102, 241, 0.15) 0%, transparent 50%),radial-gradient(circle at 80% 20%, rgba(139, 92, 246, 0.15) 0%, transparent 50%),radial-gradient(circle at 40% 40%, rgba(59, 130, 246, 0.1) 0%, transparent 50%);animation: heroFloat 6s ease-in-out infinite;}@keyframes heroFloat {0%, 100% { transform: translateY(0px) rotate(0deg); }50% { transform: translateY(-20px) rotate(1deg); }}.hero-content {text-align: center;z-index: 1;max-width: 800px;padding: 0 var(--spacing-lg);}.hero h1 {font-size: clamp(var(--font-size-3xl), 6vw, var(--font-size-6xl));font-weight: 800;margin-bottom: var(--spacing-md);text-shadow: 0 0 30px rgba(99, 102, 241, 0.3);line-height: 1.1;}.hero h1 .highlight {background: linear-gradient(135deg, var(--accent-color) 0%, var(--accent-secondary) 100%);-webkit-background-clip: text;-webkit-text-fill-color: transparent;background-clip: text;}.typing-text {position: relative;}.typing-text::after {content: '|';color: var(--accent-color);animation: blink 1.2s infinite;font-weight: 400;}@keyframes blink {0%, 45% { opacity: 1; }46%, 100% { opacity: 0; }}.hero-subtitle {font-size: var(--font-size-2xl);color: var(--text-secondary);margin-bottom: var(--spacing-sm);font-weight: 300;}.hero-description {font-size: var(--font-size-lg);color: var(--text-secondary);margin-bottom: var(--spacing-xl);max-width: 600px;margin-left: auto;margin-right: auto;}.hero-buttons {display: flex;gap: var(--spacing-sm);justify-content: center;flex-wrap: wrap;}.scroll-indicator {position: absolute;bottom: var(--spacing-lg);left: 50%;transform: translateX(-50%);display: flex;flex-direction: column;align-items: center;color: var(--text-secondary);animation: bounce 2s infinite;}.scroll-indicator span {font-size: var(--font-size-sm);margin-bottom: var(--spacing-xs);text-transform: uppercase;letter-spacing: 1px;}@keyframes bounce {0%, 20%, 50%, 80%, 100% {transform: translateX(-50%) translateY(0);}40% {transform: translateX(-50%) translateY(-10px);}60% {transform: translateX(-50%) translateY(-5px);}}/*BOTONES*/.cta-button {display: inline-flex;align-items: center;gap: var(--spacing-xs);padding: var(--spacing-sm) var(--spacing-xl);font-weight: 600;font-size: var(--font-size-base);text-decoration: none;border-radius: var(--radius-full);transition: all var(--transition-base);position: relative;overflow: hidden;text-transform: uppercase;letter-spacing: 1px;border: 2px solid transparent;}.cta-button.primary {background: linear-gradient(135deg, var(--accent-color) 0%, var(--accent-secondary) 100%);color: white;box-shadow: var(--shadow-glow);}.cta-button.secondary {background: transparent;color: var(--accent-color);border-color: var(--accent-color);}.cta-button::before {content: '';position: absolute;top: 0;left: -100%;width: 100%;height: 100%;background: linear-gradient(90deg, transparent, rgba(255,255,255,0.4), transparent);transition: left 0.6s ease;}.cta-button:hover::before {left: 100%;}.cta-button:hover {transform: translateY(-3px);box-shadow: var(--shadow-xl);}.cta-button.secondary:hover {background: var(--accent-color);color: white;}/*ABOUT SECTION*/.about-content {max-width: 800px;margin: 0 auto;}.about-text {text-align: center;margin-bottom: var(--spacing-xl);}.about-text p {font-size: var(--font-size-lg);margin-bottom: var(--spacing-md);}.stats-grid {display: grid;grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));gap: var(--spacing-lg);margin-bottom: var(--spacing-xl);}.stat-item {text-align: center;padding: var(--spacing-lg);background: var(--card-bg);border-radius: var(--radius-xl);border: 1px solid var(--border-color);transition: all var(--transition-base);}.stat-item:hover {transform: translateY(-5px);border-color: var(--accent-color);box-shadow: var(--shadow-glow);}.stat-number {font-size: var(--font-size-4xl);font-weight: 800;color: var(--accent-color);margin-bottom: var(--spacing-xs);}.stat-label {color: var(--text-secondary);font-size: var(--font-size-sm);text-transform: uppercase;letter-spacing: 1px;}.specialties {display: grid;grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));gap: var(--spacing-lg);}.specialty-item {background: var(--card-bg);padding: var(--spacing-xl);border-radius: var(--radius-2xl);border: 1px solid var(--border-color);transition: all var(--transition-base);position: relative;overflow: hidden;backdrop-filter: blur(10px);}.specialty-item::before {content: '';position: absolute;top: 0;left: 0;right: 0;bottom: 0;background: linear-gradient(135deg, rgba(99, 102, 241, 0.1) 0%, rgba(139, 92, 246, 0.1) 100%);opacity: 0;transition: opacity var(--transition-base);}.specialty-item:hover::before {opacity: 1;}.specialty-item:hover {transform: translateY(-8px);border-color: var(--accent-color);box-shadow: var(--shadow-glow);}.specialty-icon {width: 60px;height: 60px;background: linear-gradient(135deg, var(--accent-color) 0%, var(--accent-secondary) 100%);border-radius: var(--radius-lg);display: flex;align-items: center;justify-content: center;font-size: var(--font-size-2xl);color: white;margin-bottom: var(--spacing-md);position: relative;z-index: 1;transition: all var(--transition-base);}.specialty-item:hover .specialty-icon {transform: scale(1.1) rotateY(15deg);box-shadow: var(--shadow-xl);}.specialty-content h4 {font-size: var(--font-size-xl);font-weight: 700;color: var(--text-primary);margin-bottom: var(--spacing-xs);position: relative;z-index: 1;}.specialty-content p {color: var(--text-secondary);line-height: 1.6;position: relative;z-index: 1;}/*PROJECTS SECTION*/.projects-grid {display: grid;grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));gap: var(--spacing-xl);margin-bottom: var(--spacing-xl);}.project-card {background: var(--card-bg);border-radius: var(--radius-2xl);overflow: hidden;border: 1px solid var(--border-color);transition: all var(--transition-base);position: relative;backdrop-filter: blur(10px);}.project-card::before {content: '';position: absolute;top: 0;left: 0;right: 0;bottom: 0;background: linear-gradient(135deg, rgba(99, 102, 241, 0.1) 0%, rgba(139, 92, 246, 0.1) 100%);opacity: 0;transition: opacity var(--transition-base);z-index: 1;}.project-card:hover::before {opacity: 1;}.project-card:hover {transform: translateY(-15px) rotateX(5deg);box-shadow: 0 25px 50px rgba(0,0,0,0.4),0 0 0 1px rgba(99, 102, 241, 0.3),inset 0 1px 0 rgba(255,255,255,0.1);border-color: var(--accent-color);}.project-image {width: 100%;height: 220px;position: relative;overflow: hidden;background: var(--secondary-bg);}.project-image img {width: 100%;height: 100%;object-fit: cover;transition: transform var(--transition-slow);}.project-overlay {position: absolute;top: 0;left: 0;right: 0;bottom: 0;background: rgba(99, 102, 241, 0.9);display: flex;align-items: center;justify-content: center;opacity: 0;transition: opacity var(--transition-base);}.project-overlay i {font-size: var(--font-size-3xl);color: white;}.project-card:hover .project-overlay {opacity: 1;}.project-card:hover .project-image img {transform: scale(1.1);}.project-info {padding: var(--spacing-xl);position: relative;z-index: 2;}.project-category {font-size: var(--font-size-sm);color: var(--accent-color);font-weight: 600;text-transform: uppercase;letter-spacing: 1px;margin-bottom: var(--spacing-xs);}.project-title {font-size: var(--font-size-xl);font-weight: 700;margin-bottom: var(--spacing-sm);color: var(--text-primary);}.specialties-title {font-size: var(--font-size-2xl);font-weight: 700;margin-bottom: var(--spacing-lg);color: var(--text-primary);text-align: center;}.project-description {color: var(--text-secondary);margin-bottom: var(--spacing-md);line-height: 1.6;}.project-tech {display: flex;flex-wrap: wrap;gap: var(--spacing-xs);margin-bottom: var(--spacing-md);}.tech-tag {padding: var(--spacing-xs) var(--spacing-sm);background: rgba(99, 102, 241, 0.1);color: var(--accent-color);border-radius: var(--radius-base);font-size: var(--font-size-xs);font-weight: 500;border: 1px solid rgba(99, 102, 241, 0.2);}.project-buttons {display: flex;gap: var(--spacing-sm);}.project-btn {display: inline-flex;align-items: center;gap: var(--spacing-xs);padding: var(--spacing-sm) var(--spacing-md);font-size: var(--font-size-sm);font-weight: 600;text-decoration: none;border-radius: var(--radius-full);transition: all var(--transition-base);position: relative;overflow: hidden;text-transform: uppercase;letter-spacing: 0.5px;}.project-btn.primary {background: var(--accent-color);color: white;border: 2px solid var(--accent-color);}.project-btn.secondary {background: transparent;color: var(--accent-color);border: 2px solid var(--accent-color);}.project-btn::before {content: '';position: absolute;top: 0;left: -100%;width: 100%;height: 100%;background: var(--accent-hover);transition: left var(--transition-base);z-index: -1;}.project-btn:hover::before {left: 0;}.project-btn:hover {color: white;transform: scale(1.05);}.more-projects {text-align: center;}/*SKILLS SECTION*/.skills-section {background: var(--secondary-bg);}.skills-grid {display: grid;grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));gap: var(--spacing-lg);margin-top: var(--spacing-xl);}.skill-item {text-align: center;padding: var(--spacing-xl) var(--spacing-md);background: var(--card-bg);border-radius: var(--radius-2xl);border: 1px solid var(--border-color);transition: all var(--transition-base);position: relative;overflow: hidden;backdrop-filter: blur(10px);}.skill-item::before {content: '';position: absolute;top: 0;left: 0;right: 0;bottom: 0;background: linear-gradient(135deg, rgba(99, 102, 241, 0.1) 0%, rgba(139, 92, 246, 0.1) 100%);opacity: 0;transition: opacity var(--transition-base);}.skill-item:hover::before {opacity: 1;}.skill-item:hover {transform: translateY(-8px) scale(1.02);border-color: var(--accent-color);box-shadow: 0 20px 40px rgba(99, 102, 241, 0.3),0 0 0 1px rgba(99, 102, 241, 0.2),inset 0 1px 0 rgba(255,255,255,0.1);}.skill-icon {font-size: 3.5rem;color: var(--accent-color);margin-bottom: var(--spacing-md);transition: all var(--transition-base);position: relative;z-index: 1;}.skill-item:hover .skill-icon {transform: scale(1.1) rotateY(15deg);text-shadow: 0 0 20px rgba(99, 102, 241, 0.5);filter: drop-shadow(0 0 10px rgba(99, 102, 241, 0.3));}.skill-name {font-weight: 700;color: var(--text-primary);font-size: var(--font-size-base);text-transform: uppercase;letter-spacing: 1px;position: relative;z-index: 1;}/*TESTIMONIALS SECTION*/.testimonials-section {background: var(--primary-bg);}.testimonials-slider {position: relative;max-width: 800px;margin: 0 auto var(--spacing-lg);overflow: hidden;border-radius: var(--radius-2xl);}.testimonial-item {display: none;padding: var(--spacing-xl);background: var(--card-bg);border-radius: var(--radius-2xl);border: 1px solid var(--border-color);text-align: center;position: relative;backdrop-filter: blur(10px);}.testimonial-item.active {display: block;}.testimonial-content {max-width: 600px;margin: 0 auto;}.testimonial-text {font-size: var(--font-size-lg);line-height: 1.8;color: var(--text-secondary);margin-bottom: var(--spacing-xl);font-style: italic;position: relative;}.testimonial-text::before {content: '"';font-size: var(--font-size-5xl);color: var(--accent-color);position: absolute;top: -20px;left: -30px;font-family: serif;}.testimonial-author {display: flex;align-items: center;justify-content: center;gap: var(--spacing-md);}.author-image {width: 60px;height: 60px;border-radius: var(--radius-full);overflow: hidden;border: 3px solid var(--accent-color);}.author-image img {width: 100%;height: 100%;object-fit: cover;}.author-info {text-align: left;}.author-name {font-size: var(--font-size-base);font-weight: 600;color: var(--text-primary);margin-bottom: var(--spacing-xs);}.author-position {font-size: var(--font-size-sm);color: var(--text-muted);}.testimonials-controls {display: flex;align-items: center;justify-content: center;gap: var(--spacing-md);}.testimonial-btn {background: var(--card-bg);border: 1px solid var(--border-color);color: var(--text-secondary);width: 40px;height: 40px;border-radius: var(--radius-full);display: flex;align-items: center;justify-content: center;cursor: pointer;transition: all var(--transition-base);}.testimonial-btn:hover {background: var(--accent-color);color: white;border-color: var(--accent-color);}.testimonials-dots {display: flex;gap: var(--spacing-xs);}.dot {width: 12px;height: 12px;border-radius: var(--radius-full);background: var(--border-color);cursor: pointer;transition: background var(--transition-base);}.dot.active {background: var(--accent-color);}/*CONTACT SECTION*/.contact-content {display: grid;grid-template-columns: 1fr 1fr;gap: var(--spacing-2xl);align-items: start;}@media (max-width: 968px) {.contact-content {grid-template-columns: 1fr;gap: var(--spacing-xl);}}.contact-info h3 {font-size: var(--font-size-2xl);color: var(--text-primary);margin-bottom: var(--spacing-md);}.contact-info > p {font-size: var(--font-size-lg);color: var(--text-secondary);margin-bottom: var(--spacing-xl);}.contact-details {margin-bottom: var(--spacing-xl);}.contact-item {display: flex;align-items: center;gap: var(--spacing-md);padding: var(--spacing-md);background: var(--card-bg);border-radius: var(--radius-lg);border: 1px solid var(--border-color);margin-bottom: var(--spacing-sm);transition: all var(--transition-base);}.contact-item:hover {border-color: var(--accent-color);transform: translateX(5px);}.contact-icon {width: 40px;height: 40px;background: linear-gradient(135deg, var(--accent-color), var(--accent-secondary));border-radius: var(--radius-lg);display: flex;align-items: center;justify-content: center;color: white;font-size: var(--font-size-base);}.contact-text {flex: 1;}.contact-text span {display: block;font-size: var(--font-size-sm);color: var(--text-secondary);margin-bottom: var(--spacing-xs);text-transform: uppercase;letter-spacing: 1px;}.contact-text a {color: var(--text-primary);font-weight: 500;}.social-links {display: flex;gap: var(--spacing-sm);}.social-link {width: 50px;height: 50px;background: var(--card-bg);border: 1px solid var(--border-color);border-radius: var(--radius-lg);display: flex;align-items: center;justify-content: center;font-size: var(--font-size-lg);color: var(--text-secondary);transition: all var(--transition-base);position: relative;overflow: hidden;}.social-link::before {content: '';position: absolute;top: 0;left: 0;right: 0;bottom: 0;background: linear-gradient(135deg, var(--accent-color), var(--accent-secondary));opacity: 0;transition: opacity var(--transition-base);}.social-link:hover::before {opacity: 1;}.social-link:hover {color: white;border-color: var(--accent-color);transform: translateY(-3px);}.social-link i {position: relative;z-index: 1;}/* Contact Form */.contact-form {background: var(--card-bg);padding: var(--spacing-xl);border-radius: var(--radius-2xl);border: 1px solid var(--border-color);backdrop-filter: blur(10px);}.form-group {margin-bottom: var(--spacing-md);}.form-group label {display: block;font-size: var(--font-size-sm);font-weight: 600;color: var(--text-primary);margin-bottom: var(--spacing-xs);text-transform: uppercase;letter-spacing: 1px;}.form-input,.form-textarea {width: 100%;padding: var(--spacing-md);background: var(--secondary-bg);border: 2px solid var(--border-color);border-radius: var(--radius-lg);color: var(--text-primary);font-family: inherit;font-size: var(--font-size-base);transition: all var(--transition-base);resize: vertical;}.form-input:focus,.form-textarea:focus {outline: none;border-color: var(--accent-color);box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.1),var(--shadow-lg);background: rgba(42, 42, 42, 0.8);}.form-input::placeholder,.form-textarea::placeholder {color: var(--text-muted);}.form-textarea {min-height: 120px;}.submit-btn {width: 100%;padding: var(--spacing-md) var(--spacing-xl);background: linear-gradient(135deg, var(--accent-color) 0%, var(--accent-secondary) 100%);color: white;border: none;border-radius: var(--radius-lg);font-family: inherit;font-weight: 600;font-size: var(--font-size-base);cursor: pointer;transition: all var(--transition-base);position: relative;overflow: hidden;text-transform: uppercase;letter-spacing: 1px;display: flex;align-items: center;justify-content: center;gap: var(--spacing-xs);}.submit-btn::before {content: '';position: absolute;top: 0;left: -100%;width: 100%;height: 100%;background: linear-gradient(90deg, transparent, rgba(255,255,255,0.3), transparent);transition: left 0.6s ease;}.submit-btn:hover::before {left: 100%;}.submit-btn:hover {transform: translateY(-3px);box-shadow: var(--shadow-xl);}.submit-btn:disabled {opacity: 0.6;cursor: not-allowed;}/*FOOTER*/.footer {background: var(--secondary-bg);border-top: 1px solid var(--border-color);padding: var(--spacing-xl) 0;}.footer-content {display: flex;justify-content: space-between;align-items: center;flex-wrap: wrap;gap: var(--spacing-md);}.footer-text {color: var(--text-secondary);}.footer-links {display: flex;gap: var(--spacing-lg);}.footer-links a {color: var(--text-secondary);font-size: var(--font-size-sm);transition: color var(--transition-base);}.footer-links a:hover {color: var(--accent-color);}@media (max-width: 768px) {.footer-content {justify-content: center;text-align: center;flex-direction: column;}}/*BACK TO TOP BUTTON*/.back-to-top {position: fixed;bottom: var(--spacing-lg);right: var(--spacing-lg);width: 50px;height: 50px;background: var(--accent-color);color: white;border: none;border-radius: var(--radius-full);cursor: pointer;font-size: var(--font-size-lg);transition: all var(--transition-base);opacity: 0;visibility: hidden;z-index: var(--z-fixed);box-shadow: var(--shadow-lg);}.back-to-top.visible {opacity: 1;visibility: visible;}.back-to-top:hover {background: var(--accent-hover);transform: translateY(-3px);box-shadow: var(--shadow-xl);}/*RESPONSIVE DESIGN*/@media (max-width: 1024px) {.projects-grid {grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));}.skills-grid {grid-template-columns: 1fr;}}@media (max-width: 768px) {.section {padding: var(--spacing-2xl) 0;}.section-title {font-size: var(--font-size-3xl);}.hero h1 {font-size: clamp(var(--font-size-2xl), 8vw, var(--font-size-4xl));line-height: 1.2;}.hero-subtitle {font-size: var(--font-size-lg);}.hero-buttons {justify-content: center;}.specialties {grid-template-columns: 1fr;}.projects-grid {grid-template-columns: 1fr;gap: var(--spacing-lg);}.stats-grid {grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));}.testimonial-author {flex-direction: column;text-align: center;}.author-info {text-align: center;}.social-links {justify-content: center;}}@media (max-width: 480px) {.hero h1 {font-size: var(--font-size-2xl);}.cta-button {padding: var(--spacing-sm) var(--spacing-md);font-size: var(--font-size-sm);}.specialty-item,.project-card,.contact-form {padding: var(--spacing-md);}.testimonials-controls {flex-direction: column;gap: var(--spacing-sm);}}/*ANIMACIONES PARA SCROLL*/.fade-in {opacity: 0;transform: translateY(30px);transition: all var(--transition-slow);}.fade-in.visible {opacity: 1;transform: translateY(0);}.slide-left {opacity: 0;transform: translateX(-30px);transition: all var(--transition-slow);}.slide-left.visible {opacity: 1;transform: translateX(0);}.slide-right {opacity: 0;transform: translateX(30px);transition: all var(--transition-slow);}.slide-right.visible {opacity: 1;transform: translateX(0);}.scale-in {opacity: 0;transform: scale(0.8);transition: all var(--transition-slow);}.scale-in.visible {opacity: 1;transform: scale(1);}/* Print styles removed for smaller bundle size */