<section class="pv-hero">
<div class="pv-grid"></div>
<div class="pv-particles" aria-hidden="true">
<span></span><span></span><span></span><span></span><span></span>
<span></span><span></span><span></span><span></span><span></span>
</div>
<div class="pv-hero-inner">
<div class="pv-hero-copy">
<div class="pv-kicker">
<span></span>
SISTEMAS QUE TRABAJAN
</div>
<h1>
Las fugas que no ves.<br>
<em>Yo las encuentro.</em>
</h1>
<p>
Tu web no debería limitarse a enseñar información.
Debería detectar oportunidades, conectar procesos y trabajar
cuando nadie está mirando.
</p>
<div class="pv-actions">
<a href="#contacto" class="pv-btn pv-btn-main">Ver dónde se escapa el negocio →</a>
<a href="#sistema" class="pv-btn pv-btn-ghost">Cómo funciona</a>
</div>
</div>
<div class="pv-hero-visual">
<div class="pv-orbit-card">
<div class="pv-node pv-node-main">
<small>NODO CENTRAL</small>
<strong>Sistema Productivia</strong>
<span>detecta · decide · actúa</span>
</div>
<div class="pv-node pv-node-web">WEB</div>
<div class="pv-node pv-node-crm">CRM</div>
<div class="pv-node pv-node-ai">AGENTE</div>
<div class="pv-node pv-node-data">DATOS</div>
<div class="pv-line pv-line-1"></div>
<div class="pv-line pv-line-2"></div>
<div class="pv-line pv-line-3"></div>
<div class="pv-line pv-line-4"></div>
<div class="pv-dot pv-dot-1"></div>
<div class="pv-dot pv-dot-2"></div>
<div class="pv-dot pv-dot-3"></div>
<div class="pv-dot pv-dot-4"></div>
</div>
</div>
</div>
</section>
<style>
.pv-hero {
position: relative;
min-height: 100vh;
background: #050505;
color: #fff;
overflow: hidden;
padding: 90px 7vw;
font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.pv-grid {
position: absolute;
inset: 0;
background-image:
linear-gradient(rgba(255,255,255,0.035) 1px, transparent 1px),
linear-gradient(90deg, rgba(255,255,255,0.035) 1px, transparent 1px);
background-size: 72px 72px;
mask-image: radial-gradient(circle at 45% 40%, black 0%, transparent 70%);
opacity: .8;
}
.pv-hero::before {
content: "";
position: absolute;
width: 680px;
height: 680px;
right: -220px;
top: -180px;
background: radial-gradient(circle, rgba(207,159,61,.22), transparent 62%);
filter: blur(40px);
}
.pv-hero::after {
content: "";
position: absolute;
width: 520px;
height: 520px;
left: -180px;
bottom: -200px;
background: radial-gradient(circle, rgba(0,194,142,.16), transparent 65%);
filter: blur(45px);
}
.pv-particles span {
position: absolute;
width: 5px;
height: 5px;
background: #d8a83f;
border-radius: 999px;
box-shadow: 0 0 16px rgba(216,168,63,.9);
opacity: .75;
animation: pvFloat 8s ease-in-out infinite;
}
.pv-particles span:nth-child(1) { top: 18%; left: 12%; animation-delay: 0s; }
.pv-particles span:nth-child(2) { top: 32%; left: 72%; animation-delay: 1s; }
.pv-particles span:nth-child(3) { top: 74%; left: 18%; animation-delay: 2s; }
.pv-particles span:nth-child(4) { top: 62%; left: 84%; animation-delay: 3s; }
.pv-particles span:nth-child(5) { top: 14%; left: 88%; animation-delay: 1.5s; }
.pv-particles span:nth-child(6),
.pv-particles span:nth-child(7),
.pv-particles span:nth-child(8),
.pv-particles span:nth-child(9),
.pv-particles span:nth-child(10) {
background: #00c28e;
box-shadow: 0 0 16px rgba(0,194,142,.8);
width: 4px;
height: 4px;
}
.pv-particles span:nth-child(6) { top: 24%; left: 54%; animation-delay: 2.5s; }
.pv-particles span:nth-child(7) { top: 68%; left: 62%; animation-delay: .5s; }
.pv-particles span:nth-child(8) { top: 42%; left: 8%; animation-delay: 3.2s; }
.pv-particles span:nth-child(9) { top: 82%; left: 76%; animation-delay: 1.8s; }
.pv-particles span:nth-child(10) { top: 12%; left: 36%; animation-delay: 4s; }
@keyframes pvFloat {
0%, 100% { transform: translateY(0) scale(1); opacity: .45; }
50% { transform: translateY(-18px) scale(1.35); opacity: 1; }
}
.pv-hero-inner {
position: relative;
z-index: 2;
display: grid;
grid-template-columns: 1fr 1fr;
gap: 70px;
align-items: center;
min-height: calc(100vh - 180px);
}
.pv-kicker {
display: inline-flex;
align-items: center;
gap: 12px;
color: #d8a83f;
border: 1px solid rgba(216,168,63,.35);
background: rgba(216,168,63,.08);
border-radius: 999px;
padding: 10px 18px;
font-size: 12px;
font-weight: 800;
letter-spacing: .22em;
margin-bottom: 46px;
}
.pv-kicker span {
width: 11px;
height: 11px;
background: #d8a83f;
border-radius: 50%;
box-shadow: 0 0 18px rgba(216,168,63,.9);
}
.pv-hero h1 {
font-size: clamp(54px, 7vw, 112px);
line-height: .92;
letter-spacing: -0.07em;
font-weight: 300;
margin: 0 0 34px;
}
.pv-hero h1 em {
font-style: italic;
color: rgba(255,255,255,.36);
font-weight: 200;
}
.pv-hero p {
max-width: 640px;
color: rgba(255,255,255,.76);
font-size: clamp(18px, 1.5vw, 24px);
line-height: 1.55;
margin-bottom: 42px;
}
.pv-actions {
display: flex;
gap: 16px;
flex-wrap: wrap;
}
.pv-btn {
display: inline-flex;
align-items: center;
justify-content: center;
min-height: 58px;
padding: 0 28px;
border-radius: 999px;
text-decoration: none;
font-weight: 800;
font-size: 15px;
transition: transform .25s ease, background .25s ease, border-color .25s ease;
}
.pv-btn:hover {
transform: translateY(-3px);
}
.pv-btn-main {
background: #fff;
color: #050505;
}
.pv-btn-ghost {
border: 1px solid rgba(255,255,255,.18);
color: #fff;
background: rgba(255,255,255,.04);
}
.pv-hero-visual {
display: flex;
justify-content: center;
}
.pv-orbit-card {
position: relative;
width: min(560px, 42vw);
aspect-ratio: 1;
border: 1px solid rgba(255,255,255,.12);
border-radius: 28px;
background:
radial-gradient(circle at 50% 50%, rgba(216,168,63,.18), transparent 30%),
rgba(255,255,255,.025);
box-shadow: inset 0 0 80px rgba(255,255,255,.035);
overflow: hidden;
}
.pv-orbit-card::before {
content: "";
position: absolute;
inset: 12%;
border-radius: 50%;
border: 1px dashed rgba(216,168,63,.28);
animation: pvRotate 30s linear infinite;
}
.pv-orbit-card::after {
content: "";
position: absolute;
inset: 26%;
border-radius: 50%;
border: 1px dashed rgba(0,194,142,.25);
animation: pvRotateReverse 24s linear infinite;
}
@keyframes pvRotate {
to { transform: rotate(360deg); }
}
@keyframes pvRotateReverse {
to { transform: rotate(-360deg); }
}
.pv-node {
position: absolute;
z-index: 2;
border: 1px solid rgba(255,255,255,.14);
background: rgba(5,5,5,.86);
backdrop-filter: blur(12px);
border-radius: 14px;
color: #fff;
padding: 14px 18px;
font-size: 12px;
letter-spacing: .16em;
font-weight: 800;
text-align: center;
}
.pv-node-main {
left: 50%;
top: 50%;
width: 240px;
transform: translate(-50%, -50%);
border-color: rgba(216,168,63,.45);
box-shadow: 0 0 32px rgba(216,168,63,.12);
}
.pv-node-main small {
display: block;
color: #d8a83f;
font-size: 10px;
margin-bottom: 8px;
}
.pv-node-main strong {
display: block;
font-size: 22px;
letter-spacing: -0.03em;
margin-bottom: 8px;
}
.pv-node-main span {
display: block;
color: rgba(255,255,255,.58);
font-size: 11px;
letter-spacing: .08em;
}
.pv-node-web { left: 8%; top: 16%; color: #d8a83f; }
.pv-node-crm { right: 8%; top: 18%; color: #00c28e; }
.pv-node-ai { right: 11%; bottom: 16%; color: #d8a83f; }
.pv-node-data { left: 10%; bottom: 18%; color: #00c28e; }
.pv-line {
position: absolute;
left: 50%;
top: 50%;
width: 36%;
height: 1px;
transform-origin: left center;
background: linear-gradient(90deg, rgba(216,168,63,.65), transparent);
opacity: .6;
}
.pv-line-1 { transform: rotate(220deg); }
.pv-line-2 { transform: rotate(320deg); }
.pv-line-3 { transform: rotate(42deg); }
.pv-line-4 { transform: rotate(138deg); }
.pv-dot {
position: absolute;
z-index: 3;
width: 9px;
height: 9px;
background: #d8a83f;
border-radius: 50%;
box-shadow: 0 0 18px rgba(216,168,63,.9);
animation: pvPulse 2.6s ease-in-out infinite;
}
.pv-dot-1 { left: 31%; top: 32%; animation-delay: 0s; }
.pv-dot-2 { right: 31%; top: 33%; animation-delay: .5s; }
.pv-dot-3 { right: 34%; bottom: 31%; animation-delay: 1s; }
.pv-dot-4 { left: 32%; bottom: 33%; animation-delay: 1.5s; }
@keyframes pvPulse {
0%, 100% { transform: scale(.8); opacity: .45; }
50% { transform: scale(1.4); opacity: 1; }
}
@media (max-width: 980px) {
.pv-hero {
padding: 70px 24px;
}
.pv-hero-inner {
grid-template-columns: 1fr;
gap: 50px;
}
.pv-orbit-card {
width: 100%;
max-width: 520px;
}
}
@media (max-width: 560px) {
.pv-hero {
min-height: auto;
padding: 64px 20px;
}
.pv-kicker {
font-size: 10px;
letter-spacing: .16em;
margin-bottom: 34px;
}
.pv-hero h1 {
font-size: 52px;
}
.pv-hero p {
font-size: 17px;
}
.pv-btn {
width: 100%;
}
.pv-node-main {
width: 190px;
}
.pv-node-main strong {
font-size: 18px;
}
.pv-node {
font-size: 9px;
padding: 10px 12px;
}
}
</style>