Portfolio | Rojo y Azul Studio by Carlos Palmón { "@context": "https://schema.org", "@type": "CollectionPage", "name": "Portfolio de Rojo y Azul Studio", "description": "Casos de éxito en Estrategia Digital y SEO.", "author": { "@type": "Person", "name": "Carlos Palmón" } } :root { /* Colors */ --navy: #0A1F3D; --coral: #FF6B6B; --white: #FFFFFF; --white-80: rgba(255, 255, 255, 0.8); --white-60: rgba(255, 255, 255, 0.6); --white-40: rgba(255, 255, 255, 0.4); --white-20: rgba(255, 255, 255, 0.2); --navy-light: #1A2F4D; /* Typography */ --font-display: 'Cormorant Garamond', serif; --font-body: 'Work Sans', sans-serif; } * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: var(--font-body); background-color: var(--navy); color: var(--white); overflow-x: hidden; } /* Scrollbar */ ::-webkit-scrollbar { width: 8px; } ::-webkit-scrollbar-track { background: var(--navy); } ::-webkit-scrollbar-thumb { background: var(--coral); border-radius: 4px; } /* Animated Banner */ .banner { height: 100vh; display: flex; align-items: center; justify-content: center; position: relative; overflow: hidden; background: linear-gradient(135deg, var(--navy) 0%, #0D2847 100%); } .banner::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: radial-gradient(circle at 20% 50%, rgba(255, 107, 107, 0.1) 0%, transparent 50%), radial-gradient(circle at 80% 80%, rgba(255, 107, 107, 0.05) 0%, transparent 50%); animation: float 20s ease-in-out infinite; } @keyframes float { 0%, 100% { transform: translate(0, 0) scale(1); } 50% { transform: translate(30px, -30px) scale(1.1); } } .banner-text { font-family: var(--font-display); font-size: clamp(3rem, 8vw, 7rem); font-weight: 700; text-align: center; position: relative; z-index: 1; line-height: 1.1; } .banner-text .highlight { color: var(--coral); display: block; font-style: italic; animation: slideUp 1.2s cubic-bezier(0.16, 1, 0.3, 1) 0.3s backwards; } .banner-text .studio { font-size: 0.4em; display: block; margin-top: 1rem; letter-spacing: 0.3em; font-weight: 400; color: var(--white-80); animation: slideUp 1.2s cubic-bezier(0.16, 1, 0.3, 1) 0.6s backwards; } @keyframes slideUp { from { opacity: 0; transform: translateY(40px); } to { opacity: 1; transform: translateY(0); } } .scroll-indicator { position: absolute; bottom: 2rem; left: 50%; transform: translateX(-50%); color: var(--white-60); font-size: 0.875rem; letter-spacing: 0.2em; animation: bounce 2s infinite; cursor: pointer; white-space: nowrap; } @keyframes bounce { 0%, 100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(10px); } } /* Container */ .container { max-width: 1400px; margin: 0 auto; padding: 0 2rem; } /* Introduction Section */ .intro-section { padding: 8rem 0 6rem; position: relative; } .intro-content { max-width: 800px; } .intro-title { font-family: var(--font-display); font-size: clamp(2rem, 4vw, 3rem); font-weight: 600; margin-bottom: 1.5rem; color: var(--white); } /* EDITABLE CONTENT - Modify this text as needed */ .intro-description { font-size: 1.125rem; line-height: 1.8; color: var(--white-80); font-weight: 300; } /* END EDITABLE CONTENT */ .intro-line { width: 60px; height: 2px; background: var(--coral); margin: 3rem 0 0; } /* Category Buttons */ .categories { padding: 4rem 0 8rem; text-align: center; } .category-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 2rem; max-width: 900px; margin: 0 auto; } .category-btn { background: transparent; border: 1px solid var(--white-40); color: var(--white); padding: 2rem 2.5rem; font-family: var(--font-body); font-size: 1rem; font-weight: 500; letter-spacing: 0.1em; cursor: pointer; position: relative; overflow: hidden; transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1); } .category-btn::before { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: var(--coral); transition: left 0.5s cubic-bezier(0.16, 1, 0.3, 1); z-index: -1; } .category-btn:hover { border-color: var(--coral); transform: translateY(-4px); } .category-btn:hover::before { left: 0; } .category-btn.active { border-color: var(--coral); background: var(--coral); } /* Portfolio Grid */ .portfolio-section { padding: 4rem 0; } .portfolio-item { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; margin-bottom: 8rem; align-items: center; opacity: 0; animation: fadeInUp 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards; } .portfolio-item:nth-child(even) { direction: rtl; } .portfolio-item:nth-child(even) > * { direction: ltr; } @keyframes fadeInUp { from { opacity: 0; transform: translateY(40px); } to { opacity: 1; transform: translateY(0); } } .portfolio-item:nth-child(1) { animation-delay: 0.1s; } .portfolio-item:nth-child(2) { animation-delay: 0.2s; } .portfolio-item:nth-child(3) { animation-delay: 0.3s; } .portfolio-text { padding: 2rem 0; } .portfolio-category { font-size: 0.875rem; letter-spacing: 0.15em; color: var(--coral); margin-bottom: 1rem; text-transform: uppercase; font-weight: 500; } .portfolio-title { font-family: var(--font-display); font-size: clamp(1.75rem, 3vw, 2.5rem); font-weight: 600; margin-bottom: 1.5rem; color: var(--white); } .portfolio-description { font-size: 1rem; line-height: 1.8; color: var(--white-80); margin-bottom: 2rem; font-weight: 300; } .portfolio-stats { display: flex; gap: 3rem; margin-bottom: 2rem; flex-wrap: wrap; } .stat { display: flex; flex-direction: column; } .stat-number { font-family: var(--font-display); font-size: 2.5rem; font-weight: 700; color: var(--coral); line-height: 1; } .stat-label { font-size: 0.875rem; color: var(--white-60); margin-top: 0.5rem; } .portfolio-cta { display: inline-block; background: var(--coral); color: var(--white); padding: 1rem 2.5rem; text-decoration: none; font-weight: 500; letter-spacing: 0.05em; transition: all 0.3s ease; border: 1px solid var(--coral); cursor: pointer; } .portfolio-cta:hover { background: transparent; transform: translateX(4px); } .portfolio-media { position: relative; overflow: hidden; background: var(--navy-light); aspect-ratio: 16/10; border: 1px solid var(--white-20); } .portfolio-media img, .portfolio-media video { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1); } .portfolio-media:hover img, .portfolio-media:hover video { transform: scale(1.05); } /* PLACEHOLDER - Replace with your actual media */ .portfolio-media.placeholder::after { content: 'Media placeholder - Insert image or video here'; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); color: var(--white-40); font-size: 0.875rem; text-align: center; width: 80%; } /* END PLACEHOLDER */ /* About Section */ .about-section { padding: 8rem 0; background: linear-gradient(to bottom, var(--navy) 0%, var(--navy-light) 100%); } .about-content { display: grid; grid-template-columns: 1fr 1.5fr; gap: 5rem; align-items: center; } .about-image { aspect-ratio: 3/4; background: var(--navy); border: 1px solid var(--white-20); position: relative; overflow: hidden; } .about-image img { width: 100%; height: 100%; object-fit: cover; } /* PLACEHOLDER - Replace with your photo */ .about-image.placeholder::after { content: 'Your photo here'; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); color: var(--white-40); font-size: 1rem; } /* END PLACEHOLDER */ .about-text h2 { font-family: var(--font-display); font-size: clamp(2rem, 4vw, 3rem); font-weight: 600; margin-bottom: 2rem; color: var(--white); } .about-achievements { margin-bottom: 3rem; } .achievement { margin-bottom: 2rem; padding-left: 2rem; position: relative; } .achievement::before { content: ''; position: absolute; left: 0; top: 0.5rem; width: 3px; height: calc(100% - 0.5rem); background: var(--coral); } .achievement h3 { font-size: 1.25rem; margin-bottom: 0.5rem; color: var(--white); font-weight: 600; } .achievement p { color: var(--white-80); line-height: 1.6; font-weight: 300; } /* Sticky Contact Button */ .sticky-contact { position: fixed; bottom: 2rem; right: 2rem; z-index: 1000; opacity: 0; transform: translateY(20px); transition: opacity 0.4s ease, transform 0.4s ease; pointer-events: none; } .sticky-contact.visible { opacity: 1; transform: translateY(0); pointer-events: auto; } .contact-btn { background: var(--coral); color: var(--white); border: none; padding: 1.25rem 2.5rem; font-family: var(--font-body); font-size: 1rem; font-weight: 600; letter-spacing: 0.05em; cursor: pointer; box-shadow: 0 10px 30px rgba(255, 107, 107, 0.3); transition: all 0.3s ease; } .contact-btn:hover { transform: translateY(-2px); box-shadow: 0 15px 40px rgba(255, 107, 107, 0.4); } /* Modal */ .modal { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(10, 31, 61, 0.95); z-index: 2000; align-items: center; justify-content: center; backdrop-filter: blur(10px); } .modal.active { display: flex; } .modal-content { background: var(--navy-light); padding: 3rem; max-width: 600px; width: 90%; max-height: 90vh; overflow-y: auto; border: 1px solid var(--white-20); position: relative; animation: modalSlide 0.4s cubic-bezier(0.16, 1, 0.3, 1); } @keyframes modalSlide { from { opacity: 0; transform: translateY(40px); } to { opacity: 1; transform: translateY(0); } } .modal-close { position: absolute; top: 1.5rem; right: 1.5rem; background: transparent; border: none; color: var(--white-80); font-size: 2rem; cursor: pointer; line-height: 1; transition: color 0.3s ease; z-index: 10; } .modal-close:hover { color: var(--coral); } .modal h3 { font-family: var(--font-display); font-size: 2rem; margin-bottom: 1rem; color: var(--white); } .modal p { color: var(--white-80); margin-bottom: 2rem; } /* HubSpot Form Styling */ .hubspot-form { min-height: 200px; background: var(--white); padding: 2rem; border-radius: 4px; margin-top: 1rem; } /* Style HubSpot form elements to match design */ .hubspot-form .hs-form { color: var(--navy); } .hubspot-form .hs-form label { color: var(--navy); font-family: var(--font-body); font-size: 0.875rem; font-weight: 500; margin-bottom: 0.5rem; display: block; } .hubspot-form .hs-form input[type="text"], .hubspot-form .hs-form input[type="email"], .hubspot-form .hs-form input[type="tel"], .hubspot-form .hs-form textarea, .hubspot-form .hs-form select { background: #F5F5F5; border: 1px solid #D0D0D0; color: var(--navy); padding: 0.875rem; font-family: var(--font-body); width: 100%; margin-bottom: 1rem; border-radius: 2px; font-size: 0.9375rem; } .hubspot-form .hs-form input:focus, .hubspot-form .hs-form textarea:focus, .hubspot-form .hs-form select:focus { outline: none; border-color: var(--coral); } .hubspot-form .hs-form input::placeholder, .hubspot-form .hs-form textarea::placeholder { color: #999; } .hubspot-form .hs-form input[type="submit"] { background: var(--coral); color: var(--white); border: 1px solid var(--coral); padding: 1rem 2.5rem; font-family: var(--font-body); font-weight: 600; letter-spacing: 0.05em; cursor: pointer; transition: all 0.3s ease; border-radius: 2px; } .hubspot-form .hs-form input[type="submit"]:hover { background: #FF5555; border-color: #FF5555; } .hubspot-form .hs-error-msgs { color: #D32F2F; font-size: 0.75rem; margin-top: 0.25rem; } .hubspot-form .hs-form-field { margin-bottom: 1.25rem; } /* reCAPTCHA styling */ .hubspot-form .hs-form .grecaptcha-badge { margin-top: 1rem; } /* Checkbox and legal text styling */ .hubspot-form .hs-form .hs-form-booleancheckbox label { color: #666; font-size: 0.8125rem; font-weight: 400; line-height: 1.5; } .hubspot-form .hs-form .legal-consent-container p { color: #666; font-size: 0.8125rem; line-height: 1.6; } /* Responsive */ @media (max-width: 968px) { .banner-text { font-size: clamp(2.5rem, 10vw, 5rem); padding: 0 1rem; } .intro-section { padding: 6rem 0 4rem; } .intro-title { font-size: clamp(1.75rem, 7vw, 2.5rem); line-height: 1.3; max-width: 100%; } .intro-description { font-size: 1rem; } .portfolio-item, .about-content { grid-template-columns: 1fr; gap: 2rem; } .portfolio-item:nth-child(even) { direction: ltr; } .category-grid { grid-template-columns: 1fr; gap: 1.5rem; } .category-btn { padding: 1.5rem 2rem; } .sticky-contact { bottom: 1rem; right: 1rem; } .contact-btn { padding: 1rem 2rem; font-size: 0.875rem; } .modal-content { padding: 2rem; width: 95%; } .portfolio-stats { gap: 2rem; } .hubspot-form { padding: 1.5rem; } .about-section { padding: 6rem 0; } } @media (max-width: 480px) { .intro-title { font-size: 1.5rem; line-height: 1.4; } .scroll-indicator { font-size: 0.75rem; letter-spacing: 0.15em; } } /* Filter Animations */ .portfolio-item.hidden { display: none; }

Marketing Specialist

Soy Carlos, Marketing Specialist con sede en Barcelona. Este es el lugar donde encontrarás todos mis trabajos.

Data & SEO

Estrategia SEO Integral

Desarrollo completo de estrategia SEO para e-commerce del sector moda. Implementación de arquitectura web optimizada, investigación de palabras clave y optimización técnica.

+247% Tráfico orgánico
+180% Conversiones
Quiero este recurso
<!-- Replace placeholder class and add: Project or -->
Copywriting

Campaña Email Marketing

Serie de 12 emails automatizados para funnel de conversión. Copy persuasivo con enfoque en storytelling y generación de urgencia, adaptado a diferentes segmentos de audiencia.

42% Open rate
18% Click rate
Quiero este recurso
<!-- Replace placeholder class and add: Project or -->
AI

Automatización con IA

Sistema de generación automática de contenido para redes sociales utilizando IA. Incluye calendario editorial inteligente, análisis de tendencias y optimización de publicaciones.

-70% Tiempo producción
+95% Engagement
Quiero este recurso
<!-- Replace placeholder class and add: Project or -->
<!-- Replace placeholder class and add: Carlos Palmón -->

Convirtiendo Datos en Resultados

+500% ROI en Campañas Digitales

Especializado en estrategias data-driven que combinan análisis profundo con creatividad persuasiva para maximizar conversiones.

Certificaciones Google & HubSpot

Formación continua en las últimas tendencias de marketing digital, SEO, automatización y análisis de datos.

+50 Proyectos Exitosos

Desde startups hasta empresas consolidadas, ayudando a negocios a escalar su presencia digital y aumentar sus ventas.

Consigue tus Objetivos
// Sticky button visibility on scroll const stickyButton = document.querySelector('.sticky-contact'); const banner = document.querySelector('.banner'); window.addEventListener('scroll', () => { const bannerHeight = banner.offsetHeight; if (window.scrollY > bannerHeight - 100) { stickyButton.classList.add('visible'); } else { stickyButton.classList.remove('visible'); } }); // Modal functionality const modal = document.getElementById('contactModal'); const openModalButtons = document.querySelectorAll('.open-modal'); const closeModal = document.querySelector('.modal-close'); openModalButtons.forEach(button => { button.addEventListener('click', (e) => { e.preventDefault(); modal.classList.add('active'); document.body.style.overflow = 'hidden'; }); }); closeModal.addEventListener('click', () => { modal.classList.remove('active'); document.body.style.overflow = 'auto'; }); modal.addEventListener('click', (e) => { if (e.target === modal) { modal.classList.remove('active'); document.body.style.overflow = 'auto'; } }); // Category filter functionality const categoryButtons = document.querySelectorAll('.category-btn'); const portfolioItems = document.querySelectorAll('.portfolio-item'); categoryButtons.forEach(button => { button.addEventListener('click', () => { const category = button.dataset.category; // Update active button categoryButtons.forEach(btn => btn.classList.remove('active')); button.classList.add('active'); // Filter portfolio items portfolioItems.forEach(item => { if (category === 'all' || item.dataset.category === category) { item.classList.remove('hidden'); } else { item.classList.add('hidden'); } }); }); }); // Smooth scroll for scroll indicator document.querySelector('.scroll-indicator').addEventListener('click', () => { document.querySelector('.intro-section').scrollIntoView({ behavior: 'smooth' }); });