Andro Spineda — Copywriter & Estratega de Contenidos :root { –black: #0a0a0a; –white: #f2f0eb; –accent: #ff3b1f; –accent2: #1a1aff; –gray: #8a8880; –light-gray: #e0ddd6; –tag-bg: #e8e5de; } *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } html { scroll-behavior: smooth; } body { background: var(–white); color: var(–black); font-family: ‘DM Sans’, sans-serif; font-size: 15px; line-height: 1.6; overflow-x: hidden; } /* ───── SCROLLBAR ───── */ ::-webkit-scrollbar { width: 6px; } ::-webkit-scrollbar-track { background: var(–white); } ::-webkit-scrollbar-thumb { background: var(–black); } /* ───── NAV ───── */ nav { position: fixed; top: 0; left: 0; right: 0; z-index: 100; display: flex; align-items: center; justify-content: space-between; padding: 18px 40px; background: var(–white); border-bottom: 1.5px solid var(–black); mix-blend-mode: normal; } .nav-logo { font-family: ‘Space Mono’, monospace; font-size: 13px; font-weight: 700; letter-spacing: 0.04em; text-decoration: none; color: var(–black); display: flex; align-items: center; gap: 8px; } .nav-logo .dot { width: 8px; height: 8px; border-radius: 50%; background: var(–accent); display: inline-block; animation: pulse 2s ease-in-out infinite; } @keyframes pulse { 0%,100% { transform: scale(1); opacity:1; } 50% { transform: scale(1.5); opacity:.7; } } .nav-links { display: flex; gap: 32px; } .nav-links a { font-family: ‘Space Mono’, monospace; font-size: 11px; text-transform: uppercase; letter-spacing: 0.1em; text-decoration: none; color: var(–black); position: relative; transition: color .2s; } .nav-links a::after { content: »; position: absolute; bottom: -3px; left: 0; right: 0; height: 1.5px; background: var(–accent); transform: scaleX(0); transform-origin: left; transition: transform .3s ease; } .nav-links a:hover::after { transform: scaleX(1); } .nav-cta { font-family: ‘Space Mono’, monospace; font-size: 11px; text-transform: uppercase; letter-spacing: 0.1em; background: var(–black); color: var(–white); border: none; padding: 10px 20px; cursor: pointer; text-decoration: none; transition: background .2s, color .2s; } .nav-cta:hover { background: var(–accent); } /* ───── HERO ───── */ .hero { min-height: 100vh; padding: 120px 40px 80px; display: grid; grid-template-columns: 1fr 1fr; gap: 0; border-bottom: 1.5px solid var(–black); position: relative; overflow: hidden; } .hero-left { display: flex; flex-direction: column; justify-content: space-between; border-right: 1.5px solid var(–black); padding-right: 60px; } .hero-tags { display: flex; flex-direction: column; gap: 6px; margin-bottom: 40px; } .hero-tags span { font-family: ‘Space Mono’, monospace; font-size: 11px; color: var(–gray); letter-spacing: 0.06em; } .hero-tagline { font-family: ‘Bebas Neue’, sans-serif; font-size: clamp(72px, 9vw, 130px); line-height: 0.92; letter-spacing: -0.01em; color: var(–black); } .hero-tagline .accent-word { color: var(–accent); display: block; } .hero-tagline .outline-word { -webkit-text-stroke: 2px var(–black); color: transparent; display: block; } .hero-sub { font-size: 14px; color: var(–gray); max-width: 380px; margin-top: 32px; line-height: 1.7; font-weight: 300; } .hero-bottom { display: flex; align-items: flex-end; justify-content: space-between; margin-top: 60px; } .hero-cta-group { display: flex; gap: 12px; align-items: center; } .btn-primary { background: var(–black); color: var(–white); font-family: ‘Space Mono’, monospace; font-size: 11px; text-transform: uppercase; letter-spacing: 0.1em; padding: 14px 28px; border: 1.5px solid var(–black); text-decoration: none; transition: all .25s; display: inline-block; } .btn-primary:hover { background: var(–accent); border-color: var(–accent); } .btn-secondary { background: transparent; color: var(–black); font-family: ‘Space Mono’, monospace; font-size: 11px; text-transform: uppercase; letter-spacing: 0.1em; padding: 14px 28px; border: 1.5px solid var(–black); text-decoration: none; transition: all .25s; display: inline-block; } .btn-secondary:hover { background: var(–black); color: var(–white); } .hero-scroll { font-family: ‘Space Mono’, monospace; font-size: 10px; color: var(–gray); text-transform: uppercase; letter-spacing: 0.12em; display: flex; align-items: center; gap: 8px; } .scroll-arrow { width: 32px; height: 32px; border: 1.5px solid var(–gray); border-radius: 50%; display: flex; align-items: center; justify-content: center; animation: bounce 2s ease-in-out infinite; } @keyframes bounce { 0%,100%{transform:translateY(0)} 50%{transform:translateY(5px)} } /* ───── HERO RIGHT ───── */ .hero-right { padding-left: 60px; display: flex; flex-direction: column; justify-content: space-between; } .hero-visual { background: var(–black); height: 380px; position: relative; overflow: hidden; display: flex; align-items: center; justify-content: center; } .hero-visual-text { font-family: ‘Bebas Neue’, sans-serif; font-size: 110px; line-height: 1; color: var(–white); text-align: center; opacity: 0.12; letter-spacing: -0.02em; user-select: none; } .hero-visual-badge { position: absolute; background: var(–accent); color: var(–white); font-family: ‘Space Mono’, monospace; font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; padding: 8px 16px; } .badge-tl { top: 20px; left: 20px; } .badge-br { bottom: 20px; right: 20px; background: var(–white); color: var(–black); } .hero-name-big { font-family: ‘Bebas Neue’, sans-serif; font-size: 80px; line-height: 0.9; color: var(–white); position: absolute; bottom: 20px; left: 24px; letter-spacing: 0.02em; } .hero-stats { display: grid; grid-template-columns: 1fr 1fr; margin-top: 24px; border: 1.5px solid var(–black); } .stat { padding: 24px; border-right: 1.5px solid var(–black); border-bottom: 1.5px solid var(–black); } .stat:nth-child(2n) { border-right: none; } .stat:nth-child(3), .stat:nth-child(4) { border-bottom: none; } .stat-number { font-family: ‘Bebas Neue’, sans-serif; font-size: 48px; line-height: 1; color: var(–black); } .stat-number span { color: var(–accent); } .stat-label { font-family: ‘Space Mono’, monospace; font-size: 10px; color: var(–gray); text-transform: uppercase; letter-spacing: 0.08em; margin-top: 4px; } /* ───── SECTION WRAPPER ───── */ section { border-bottom: 1.5px solid var(–black); } .section-header { display: flex; align-items: center; justify-content: space-between; padding: 32px 40px; border-bottom: 1.5px solid var(–black); } .section-title { font-family: ‘Bebas Neue’, sans-serif; font-size: 40px; letter-spacing: 0.02em; display: flex; align-items: center; gap: 16px; } .section-num { font-family: ‘Space Mono’, monospace; font-size: 11px; color: var(–gray); font-weight: 400; letter-spacing: 0.06em; align-self: flex-end; margin-bottom: 6px; } .section-link { font-family: ‘Space Mono’, monospace; font-size: 11px; text-transform: uppercase; letter-spacing: 0.1em; color: var(–black); text-decoration: none; display: flex; align-items: center; gap: 6px; transition: color .2s; } .section-link:hover { color: var(–accent); } .arrow-icon { font-size: 16px; transition: transform .2s; } .section-link:hover .arrow-icon { transform: translateX(4px); } /* ───── ABOUT ───── */ #about .about-grid { display: grid; grid-template-columns: 1fr 1fr; } .about-intro { padding: 48px 40px; border-right: 1.5px solid var(–black); } .about-photo-area { position: relative; background: #d9d6cf; min-height: 400px; overflow: hidden; display: flex; align-items: flex-end; } .about-photo-placeholder { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 8px; color: var(–gray); font-family: ‘Space Mono’, monospace; font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; position: absolute; top: 0; left: 0; } .about-photo-placeholder .icon { font-size: 40px; opacity: .3; } .about-name-overlay { font-family: ‘Bebas Neue’, sans-serif; font-size: 64px; line-height: 1; padding: 20px 24px; background: var(–black); color: var(–white); width: 100%; position: relative; z-index: 1; } .about-name-overlay span { color: var(–accent); } .hello-label { font-family: ‘Space Mono’, monospace; font-size: 11px; color: var(–gray); text-transform: uppercase; letter-spacing: 0.1em; margin-bottom: 12px; } .about-headline { font-family: ‘Bebas Neue’, sans-serif; font-size: 52px; line-height: 0.95; margin-bottom: 28px; } .about-headline .line2 { color: var(–accent); } .about-body { font-size: 14px; color: #444; line-height: 1.75; max-width: 480px; font-weight: 300; } .about-body p + p { margin-top: 16px; } /* ───── GET IN TOUCH (inside about) ───── */ .contact-strip { padding: 32px 40px; display: flex; align-items: center; gap: 16px; flex-wrap: wrap; border-top: 1.5px solid var(–black); } .contact-label { font-family: ‘Space Mono’, monospace; font-size: 11px; text-transform: uppercase; letter-spacing: 0.1em; color: var(–gray); margin-right: 8px; } .contact-btn { display: flex; align-items: center; gap: 8px; padding: 12px 20px; border: 1.5px solid var(–black); text-decoration: none; color: var(–black); font-family: ‘Space Mono’, monospace; font-size: 11px; letter-spacing: 0.06em; text-transform: uppercase; transition: all .2s; } .contact-btn:hover { background: var(–black); color: var(–white); } .contact-btn.filled { background: var(–black); color: var(–white); } .contact-btn.filled:hover { background: var(–accent); border-color: var(–accent); } .contact-btn svg { width: 14px; height: 14px; } /* ───── RESUME ───── */ #resume .resume-grid { display: grid; grid-template-columns: 1fr 1fr 1fr; } .resume-col { padding: 40px; border-right: 1.5px solid var(–black); } .resume-col:last-child { border-right: none; } .resume-col-title { font-family: ‘Bebas Neue’, sans-serif; font-size: 26px; margin-bottom: 28px; display: flex; align-items: center; gap: 12px; } .resume-col-title::after { content: »; flex: 1; height: 1.5px; background: var(–black); } .exp-item { margin-bottom: 28px; position: relative; } .exp-date { font-family: ‘Space Mono’, monospace; font-size: 10px; letter-spacing: 0.1em; background: var(–accent2); color: var(–white); display: inline-block; padding: 3px 8px; margin-bottom: 8px; } .exp-date.current { background: var(–accent); } .exp-company { font-family: ‘Space Mono’, monospace; font-size: 10px; color: var(–gray); letter-spacing: 0.06em; text-transform: uppercase; margin-bottom: 4px; } .exp-title { font-size: 14px; font-weight: 500; line-height: 1.4; margin-bottom: 6px; } .exp-desc { font-size: 12px; color: var(–gray); line-height: 1.6; font-weight: 300; } .exp-bar { width: 2px; position: absolute; left: -16px; top: 0; bottom: 0; background: var(–light-gray); display: none; } /* skill tags */ .skill-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 20px; } .skill-tag { font-family: ‘Space Mono’, monospace; font-size: 10px; letter-spacing: 0.06em; text-transform: uppercase; padding: 6px 12px; border: 1.5px solid var(–black); background: var(–tag-bg); color: var(–black); } .skill-tag.accent { background: var(–accent); color: var(–white); border-color: var(–accent); } .skill-tag.accent2 { background: var(–accent2); color: var(–white); border-color: var(–accent2); } .softskill-tags { display: flex; flex-wrap: wrap; gap: 8px; } .softskill-tag { font-family: ‘Space Mono’, monospace; font-size: 10px; letter-spacing: 0.06em; text-transform: uppercase; padding: 6px 12px; border: 1.5px dashed var(–black); color: var(–black); background: transparent; transition: all .2s; cursor: default; } .softskill-tag:hover { background: var(–black); color: var(–white); } .tools-grid { display: flex; flex-wrap: wrap; gap: 8px; } .tool-chip { font-family: ‘Space Mono’, monospace; font-size: 10px; padding: 8px 14px; background: var(–black); color: var(–white); letter-spacing: 0.06em; } /* ───── WORK / PORTFOLIO ───── */ #work .work-grid { display: grid; grid-template-columns: 1fr 1fr; } .work-item { border-right: 1.5px solid var(–black); border-bottom: 1.5px solid var(–black); overflow: hidden; position: relative; } .work-item:nth-child(2n) { border-right: none; } .work-item:nth-last-child(-n+2) { border-bottom: none; } .work-thumb { height: 220px; background: var(–black); position: relative; overflow: hidden; display: flex; align-items: center; justify-content: center; } .work-thumb.c1 { background: #1a1aff; } .work-thumb.c2 { background: #0a0a0a; } .work-thumb.c3 { background: #ff3b1f; } .work-thumb.c4 { background: #2a2a2a; } .work-thumb-text { font-family: ‘Bebas Neue’, sans-serif; font-size: 80px; color: rgba(255,255,255,0.08); letter-spacing: -0.02em; user-select: none; } .work-type-badge { position: absolute; top: 16px; left: 16px; font-family: ‘Space Mono’, monospace; font-size: 9px; text-transform: uppercase; letter-spacing: 0.1em; padding: 5px 10px; background: rgba(255,255,255,0.9); color: var(–black); } .work-info { padding: 24px; } .work-title { font-size: 17px; font-weight: 500; margin-bottom: 8px; } .work-desc { font-size: 13px; color: var(–gray); line-height: 1.6; font-weight: 300; } .work-link { display: inline-flex; align-items: center; gap: 6px; margin-top: 14px; font-family: ‘Space Mono’, monospace; font-size: 10px; text-transform: uppercase; letter-spacing: 0.08em; color: var(–black); text-decoration: none; transition: color .2s; } .work-link:hover { color: var(–accent); } /* ───── SERVICES ───── */ #services .services-list { display: grid; grid-template-columns: 1fr 1fr; } .service-item { padding: 40px; border-right: 1.5px solid var(–black); border-bottom: 1.5px solid var(–black); transition: background .2s; } .service-item:nth-child(2n) { border-right: none; } .service-item:hover { background: var(–black); } .service-item:hover .service-title, .service-item:hover .service-desc, .service-item:hover .service-num { color: var(–white); } .service-num { font-family: ‘Space Mono’, monospace; font-size: 10px; color: var(–gray); letter-spacing: 0.1em; margin-bottom: 16px; transition: color .2s; } .service-title { font-family: ‘Bebas Neue’, sans-serif; font-size: 30px; margin-bottom: 12px; transition: color .2s; } .service-desc { font-size: 13px; color: var(–gray); line-height: 1.7; font-weight: 300; transition: color .2s; } /* ───── CONTACT ───── */ #contact { min-height: 60vh; display: flex; flex-direction: column; } .contact-inner { flex: 1; display: grid; grid-template-columns: 1fr 1fr; } .contact-left { padding: 60px 40px; border-right: 1.5px solid var(–black); background: var(–black); color: var(–white); } .contact-big { font-family: ‘Bebas Neue’, sans-serif; font-size: clamp(60px, 8vw, 100px); line-height: 0.9; margin-bottom: 24px; } .contact-big .line-accent { color: var(–accent); } .contact-email { font-family: ‘Space Mono’, monospace; font-size: 13px; color: var(–light-gray); word-break: break-all; letter-spacing: 0.04em; margin-bottom: 32px; } .contact-social { display: flex; flex-direction: column; gap: 10px; } .social-link { display: flex; align-items: center; gap: 12px; color: var(–white); text-decoration: none; font-family: ‘Space Mono’, monospace; font-size: 11px; text-transform: uppercase; letter-spacing: 0.1em; padding: 12px 16px; border: 1px solid rgba(255,255,255,0.15); transition: all .2s; } .social-link:hover { background: var(–accent); border-color: var(–accent); } .social-icon { width: 32px; height: 32px; background: rgba(255,255,255,0.1); display: flex; align-items: center; justify-content: center; font-size: 14px; } .contact-right { padding: 60px 40px; display: flex; flex-direction: column; gap: 20px; } .contact-right h3 { font-family: ‘Bebas Neue’, sans-serif; font-size: 28px; margin-bottom: 8px; } .form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; } .field { display: flex; flex-direction: column; gap: 6px; } .field label { font-family: ‘Space Mono’, monospace; font-size: 10px; text-transform: uppercase; letter-spacing: 0.08em; color: var(–gray); } .field input, .field textarea, .field select { border: 1.5px solid var(–black); background: var(–white); color: var(–black); padding: 12px 14px; font-family: ‘DM Sans’, sans-serif; font-size: 14px; outline: none; width: 100%; transition: border-color .2s; appearance: none; } .field input:focus, .field textarea:focus, .field select:focus { border-color: var(–accent); } .field textarea { resize: vertical; min-height: 100px; } .submit-btn { background: var(–black); color: var(–white); border: none; padding: 16px 32px; cursor: pointer; font-family: ‘Space Mono’, monospace; font-size: 12px; text-transform: uppercase; letter-spacing: 0.1em; align-self: flex-start; transition: background .2s; } .submit-btn:hover { background: var(–accent); } /* ───── FOOTER ───── */ footer { border-top: 1.5px solid var(–black); padding: 24px 40px; display: flex; align-items: center; justify-content: space-between; } .footer-logo { font-family: ‘Bebas Neue’, sans-serif; font-size: 24px; letter-spacing: 0.04em; } .footer-copy { font-family: ‘Space Mono’, monospace; font-size: 10px; color: var(–gray); letter-spacing: 0.06em; } .footer-copy span { color: var(–accent); } /* ───── MARQUEE ───── */ .marquee-strip { background: var(–black); color: var(–white); padding: 14px 0; overflow: hidden; border-bottom: 1.5px solid var(–black); } .marquee-inner { display: flex; gap: 0; white-space: nowrap; animation: marquee 20s linear infinite; } .marquee-item { font-family: ‘Bebas Neue’, sans-serif; font-size: 18px; letter-spacing: 0.06em; padding: 0 32px; display: flex; align-items: center; gap: 32px; } .marquee-sep { color: var(–accent); } @keyframes marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } } /* ───── ANIMATIONS ───── */ .fade-up { opacity: 0; transform: translateY(30px); transition: opacity .6s ease, transform .6s ease; } .fade-up.visible { opacity: 1; transform: translateY(0); } /* ───── RESPONSIVE ───── */ @media (max-width: 900px) { nav { padding: 14px 20px; } .nav-links { display: none; } .hero { grid-template-columns: 1fr; padding: 90px 20px 40px; } .hero-left { border-right: none; padding-right: 0; border-bottom: 1.5px solid var(–black); padding-bottom: 40px; } .hero-right { padding-left: 0; padding-top: 40px; } .hero-visual { height: 260px; } .hero-stats { grid-template-columns: 1fr 1fr; } #about .about-grid { grid-template-columns: 1fr; } .about-intro { border-right: none; padding: 32px 20px; } .about-photo-area { min-height: 280px; } #resume .resume-grid { grid-template-columns: 1fr; } .resume-col { border-right: none; border-bottom: 1.5px solid var(–black); padding: 28px 20px; } .resume-col:last-child { border-bottom: none; } #work .work-grid { grid-template-columns: 1fr; } .work-item { border-right: none; } .work-item:last-child { border-bottom: none; } #services .services-list { grid-template-columns: 1fr; } .service-item { border-right: none; } .contact-inner { grid-template-columns: 1fr; } .contact-left { border-right: none; border-bottom: 1.5px solid var(–black); padding: 40px 20px; } .contact-right { padding: 40px 20px; } .form-row { grid-template-columns: 1fr; } .section-header { padding: 24px 20px; } footer { padding: 20px; flex-direction: column; gap: 8px; text-align: center; } .contact-strip { padding: 24px 20px; } } Trabajemos →
#Copywriting #Estrategia_de_Contenidos #Marketing_Digital #SEO_&_SEM #Brand_Voice
Palabras que venden.

Redacto contenidos estratégicos que conectan marcas con personas. Desde textos publicitarios hasta estrategias editoriales completas — todo con foco en resultados.

Scroll
COPY
Disponible para proyectos
androspineda.com
ANDRO
SPINEDA
5+
Años de experiencia
50+
Clientes atendidos
200+
Proyectos entregados
3x
ROI promedio
Copywriting Estrategia de Contenidos Marketing Digital SEO Email Marketing Brand Voice Storytelling Social Media
Copywriting Estrategia de Contenidos Marketing Digital SEO Email Marketing Brand Voice Storytelling Social Media
01 — Sobre mí
Trabajemos juntos
Hello,
Mi nombre
es Andro.

Soy un redactor y estratega de contenidos con base en [tu ciudad], especializado en ayudar a marcas a comunicar su propuesta de valor de forma clara, auténtica y efectiva.

Mi enfoque combina la escritura persuasiva con el pensamiento estratégico: no solo escribo textos bonitos, construyo mensajes que mueven a la acción y generan resultados medibles.

Trabajo con startups, agencias y empresas establecidas en proyectos de copywriting, estrategia editorial, marketing de contenidos y posicionamiento de marca.

Introducción
Copywriter & Estratega de Contenidos

Con formación en comunicación y más de cinco años en el mercado digital, combino técnica creativa y visión estratégica para producir contenidos que conectan con audiencias reales y generan conversiones.

Tu foto aquí Reemplaza con tu imagen
ANDRO
SPINEDA
02 — Experiencia
Descargar CV
Experiencia
2022 – Presente
Freelance
Copywriter & Estratega de Contenidos
Gestión de proyectos de copywriting, estrategia de contenidos y marketing digital para clientes de diversas industrias.
2020 – 2022
Agencia de Marketing Digital
Content Strategist Sr.
Liderazgo editorial de cuentas clave. Desarrollo de estrategias de contenido para redes sociales, blog y email marketing.
2018 – 2020
Startup de e-commerce
Redactor Publicitario
Creación de copies para campañas de paid media, fichas de producto y comunicaciones de marca.
Habilidades
Hard Skills
Copywriting SEO On-page Email Marketing UX Writing Storytelling Social Media Estrategia Editorial Brand Messaging Contenidos B2B Paid Ads Copy
Soft Skills
#Creatividad #Estrategia #Comunicación #Adaptabilidad #Gestión_del_tiempo #Empatía
Herramientas
WordPress HubSpot Mailchimp Notion Semrush Ahrefs GA4 Figma
Educación
2023
Certificación
Estrategia de Contenidos & Inbound Marketing
HubSpot Academy
2021
Curso intensivo
Copywriting Persuasivo Avanzado
Instituto de Marketing Digital
2015 – 2019
Universidad [Tu universidad]
Licenciatura en Comunicación Social
Énfasis en Publicidad y Periodismo Digital
2013 – 2015
[Tu bachillerato]
Bachiller en Ciencias
03 — Trabajos
Ver todos
SEO
Estrategia de Contenidos
Estrategia SEO para marca de e-commerce
Arquitectura de contenido y optimización de +40 páginas de producto que incrementaron el tráfico orgánico en un 180% en 6 meses.
Ver caso de estudio
ADS
Copywriting Publicitario
Campaña de lanzamiento de producto
Copy completo para campaña 360°: anuncios en Meta, Google Ads, landing page y secuencia de emails. ROAS de 4.2x.
Ver caso de estudio
BRAND
Brand Voice
Manual de tono y voz para fintech
Desarrollo del brand voice desde cero: personalidad de marca, guía de estilo editorial y ejemplos aplicados para todos los canales.
Ver caso de estudio
EMAIL
Email Marketing
Secuencia de nurturing B2B
Flujo de 8 correos para calificación y conversión de leads. Open rate promedio de 42% y tasa de conversión de 12%.
Ver caso de estudio
04 — Servicios
Cotizar
01
Copywriting
Textos que persuaden y convierten: landing pages, anuncios, fichas de producto, home pages y más. Cada palabra al servicio de un objetivo claro.
02
Estrategia de Contenidos
Planificación editorial integral: auditoría de contenidos, arquitectura de información, calendario y métricas de desempeño.
03
SEO & Redacción Web
Contenido optimizado para buscadores sin sacrificar la experiencia lectora. Investigación de keywords, estructura y on-page SEO.
04
Email Marketing
Secuencias de emails automatizadas, newsletters y campañas que nutren leads y generan fidelidad de marca.
05
Brand Voice
Definición y documentación del tono y voz de marca. Guías de estilo editorial para equipos internos y agencias.
06
Consultoría de Marketing
Diagnóstico y auditoría de estrategia de contenidos. Asesoría para equipos de marketing que quieren potenciar sus resultados.
05 — Contacto

Cuéntame sobre tu proyecto

Nombre
Email
Servicio de interés — Selecciona un servicio — Copywriting Estrategia de Contenidos SEO & Redacción Web Email Marketing Brand Voice Consultoría de Marketing Otro
Mensaje
// Fade-up on scroll const observer = new IntersectionObserver((entries) => { entries.forEach(e => { if (e.isIntersecting) { e.target.classList.add(‘visible’); observer.unobserve(e.target); } }); }, { threshold: 0.12 }); document.querySelectorAll(‘.fade-up’).forEach(el => observer.observe(el)); // Nav active state const sections = document.querySelectorAll(‘section[id]’); const navLinks = document.querySelectorAll(‘.nav-links a’); const navObserver = new IntersectionObserver((entries) => { entries.forEach(e => { if (e.isIntersecting) { navLinks.forEach(a => a.style.opacity = ‘0.5’); const active = document.querySelector(`.nav-links a[href=»#${e.target.id}»]`); if (active) active.style.opacity = ‘1’; } }); }, { threshold: 0.4 }); sections.forEach(s => navObserver.observe(s)); // Form submit (demo) document.querySelector(‘.submit-btn’).addEventListener(‘click’, function() { this.textContent = ‘✓ Mensaje enviado’; this.style.background = ‘#1a1aff’; setTimeout(() => { this.textContent = ‘Enviar mensaje →’; this.style.background = »; }, 3000); });