:root{
  --navy-950:#070B1A;
  --navy-900:#0B1229;
  --navy-800:#0F1630;
  --navy-700:#161F42;
  --violet-600:#6D28D9;
  --violet-500:#7C3AED;
  --violet-400:#A78BFA;
  --cyan-400:#4FD1F0;
  --paper-50:#F7F7FB;
  --paper-100:#EFEFF6;
  --ink-900:#12131A;
  --slate-500:#6B7280;
  --slate-300:#B9BDC9;
  --line:rgba(255,255,255,0.09);
  --line-dark:rgba(15,17,26,0.08);
  --radius:14px;
}
 
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important;}
}
 
body{
  font-family:'Inter',sans-serif;
  background:var(--paper-50);
  color:var(--ink-900);
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
 
h1,h2,h3,.display{font-family:'Space Grotesk',sans-serif; letter-spacing:-0.01em;}
.mono{font-family:'IBM Plex Mono',monospace; letter-spacing:0.02em;}
 
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
 
.wrap{max-width:1120px;margin:0 auto;padding:0 28px;}
section{position:relative;}
 
/* ---------- NAV ---------- */
header{
  position:sticky;top:0;z-index:50;
  background:rgba(7,11,26,0.85);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
nav{
  display:flex;align-items:center;justify-content:space-between;
  padding:8px 28px;max-width:1120px;margin:0 auto;
  min-height:64px;
}
.logo{display:flex;align-items:center;}
.logo img{height:48px;width:auto;max-width:none;}
 
@media (max-width:480px){
  .logo img{height:38px;}
}
.nav-links{display:flex;gap:32px;align-items:center;}
.nav-links a{
  color:var(--slate-300);font-size:14px;font-weight:500;
  transition:color .2s;
}
.nav-links a:hover{color:#fff;}
.nav-cta{
  background:var(--violet-600);color:#fff !important;
  padding:10px 20px;border-radius:999px;font-size:14px;font-weight:600;
  transition:background .2s, transform .2s;
}
.nav-cta:hover{background:var(--violet-500); transform:translateY(-1px);}
.nav-toggle{display:none;background:none;border:none;color:#fff;font-size:24px;cursor:pointer;}
 
@media (max-width:760px){
  .nav-links{
    position:absolute;top:100%;left:0;right:0;
    background:var(--navy-900);
    flex-direction:column;align-items:flex-start;
    padding:20px 28px;gap:18px;
    border-bottom:1px solid var(--line);
    display:none;
  }
  .nav-links.open{display:flex;}
  .nav-toggle{display:block;}
}
 
/* ---------- HERO ---------- */
.hero{
  background:radial-gradient(ellipse 80% 60% at 30% 0%, #131B3C 0%, var(--navy-950) 60%);
  color:#fff;
  padding:120px 0 100px;
  overflow:hidden;
}
.eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  font-size:12px;font-weight:500;color:var(--cyan-400);
  background:rgba(79,209,240,0.08);
  border:1px solid rgba(79,209,240,0.25);
  padding:6px 14px;border-radius:999px;
  margin-bottom:28px;
}
.eyebrow::before{
  content:'';width:6px;height:6px;border-radius:50%;
  background:var(--cyan-400);
  box-shadow:0 0 8px var(--cyan-400);
}
.hero h1{
  font-size:clamp(38px,6vw,68px);
  font-weight:700;
  line-height:1.05;
  max-width:820px;
  color:#fff;
}
.hero h1 .accent{
  background:linear-gradient(90deg, var(--violet-400), var(--cyan-400));
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.hero p.lede{
  margin-top:24px;font-size:18px;color:var(--slate-300);
  max-width:560px;font-weight:400;
}
.hero-actions{margin-top:40px;display:flex;gap:16px;flex-wrap:wrap;align-items:center;}
.btn-primary{
  background:var(--violet-600);color:#fff;
  padding:14px 28px;border-radius:999px;
  font-weight:600;font-size:15px;
  transition:background .2s, transform .2s;
  display:inline-block;
}
.btn-primary:hover{background:var(--violet-500);transform:translateY(-2px);}
.btn-ghost{
  color:var(--slate-300);font-weight:500;font-size:15px;
  padding:14px 8px;border-bottom:1px solid var(--line);
  transition:color .2s, border-color .2s;
}
.btn-ghost:hover{color:#fff;border-color:#fff;}
 
/* fiber beam signature */
.beam-wrap{
  margin-top:72px;position:relative;height:64px;max-width:640px;
}
.beam-line{
  position:absolute;top:50%;left:0;right:67px;height:1px;
  background:linear-gradient(90deg, rgba(255,255,255,0.05), rgba(167,139,250,0.55));
  transform:translateY(-50%);
}
.beam-pulse{
  position:absolute;top:50%;left:0;width:40%;height:1.5px;
  background:linear-gradient(90deg, transparent, var(--cyan-400));
  transform:translateY(-50%);
  animation:travel 3.2s ease-in-out infinite;
}
@keyframes travel{
  0%{left:-40%; opacity:0;}
  12%{opacity:1;}
  85%{opacity:1;}
  100%{left:calc(60% - 67px); opacity:0;}
}
.beam-tip{
  position:absolute;top:50%;right:60px;width:14px;height:14px;
  border-radius:50%;transform:translateY(-50%);
  background:radial-gradient(circle, #fff 0%, var(--cyan-400) 40%, transparent 75%);
  box-shadow:0 0 16px 4px rgba(79,209,240,0.35);
  animation:pulseGlow 3.2s ease-in-out infinite;
}
@keyframes pulseGlow{
  0%{box-shadow:0 0 16px 4px rgba(79,209,240,0.4);}
  90%{box-shadow:0 0 34px 14px rgba(79,209,240,0.9);}
  100%{box-shadow:0 0 34px 14px rgba(79,209,240,0.9);}
}
.beam-label{
  position:absolute;top:calc(50% + 16px);right:-6px;
  font-size:11px;color:var(--slate-500);white-space:nowrap;
}
 
/* ---------- SECTION HEADERS ---------- */
.section-head{max-width:640px;margin-bottom:56px;}
.section-head .eyebrow-dark{
  font-size:12px;font-weight:600;color:var(--violet-600);
  text-transform:uppercase;letter-spacing:0.08em;margin-bottom:14px;display:block;
}
.section-head h2{
  font-size:clamp(28px,3.6vw,40px);font-weight:600;
  color:var(--ink-900);line-height:1.15;
}
.section-head p{margin-top:16px;color:var(--slate-500);font-size:16px;}
 
/* ---------- PROBLEMA ---------- */
.problema{
  background:var(--navy-950);color:#fff;
  padding:110px 0;
}
.problema .section-head h2{color:#fff;}
.problema .section-head .eyebrow-dark{color:var(--cyan-400);}
.problema .section-head p{color:var(--slate-300);}
.stat-row{
  display:grid;grid-template-columns:1.1fr 1fr;gap:56px;align-items:center;
}
.stat-big{
  font-family:'Space Grotesk',sans-serif;font-weight:700;
  font-size:clamp(52px,7vw,88px);line-height:1;
  background:linear-gradient(90deg,#fff,var(--violet-400));
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.stat-sub{margin-top:14px;font-size:15px;color:var(--slate-300);
  font-weight:500;letter-spacing:0.02em;}
.breakdown{display:flex;flex-direction:column;gap:14px;}
.breakdown-row{
  display:flex;align-items:center;gap:14px;
}
.breakdown-row .label{width:100px;font-size:14px;color:var(--slate-300);}
.breakdown-row .bar-track{
  flex:1;height:8px;background:var(--navy-800);border-radius:99px;overflow:hidden;
}
.breakdown-row .bar-fill{
  display: block;
  height:100%;border-radius:99px;
  background:linear-gradient(90deg, var(--violet-600), var(--cyan-400));
}
.breakdown-row .pct{width:48px;text-align:right;font-size:13px;color:var(--slate-300);}
 
@media (max-width:760px){
  .stat-row{grid-template-columns:1fr;gap:36px;}
}


.comparison-intro{margin-top:64px;margin-bottom:20px;}
.comparison-intro p{color:var(--slate-500);font-size:14.5px;max-width:520px;margin-top:8px;}

.comparison-visual{
  background:#fff;border:1px solid var(--line-dark);border-radius:var(--radius);
  overflow:hidden;
}
.comparison-table{width:100%;border-collapse:collapse;}
.comparison-table th, .comparison-table td{
  padding:16px 18px;text-align:center;border-bottom:1px solid var(--line-dark);
}
.comparison-table th{
  font-family:'IBM Plex Mono',monospace;font-weight:500;font-size:11px;color:var(--slate-500);
  text-transform:uppercase;letter-spacing:0.04em;
}
.comparison-table th:first-child{text-align:left;}
.comparison-table td:first-child{
  text-align:left;font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:14.5px;color:var(--ink-900);
}
.comparison-table tr:last-child td{border-bottom:none;}
.comparison-table tr.row-lumicap{background:rgba(109,40,217,0.05);}
.comparison-table tr.row-lumicap td:first-child{color:var(--violet-600);}
.comparison-table .icon{display:inline-flex;width:22px;height:22px;}
.comparison-foot{
  padding:14px 18px;font-size:11.5px;color:var(--slate-500);line-height:1.5;background:var(--paper-50);
}

@media (max-width:480px){
  .comparison-visual{overflow-x:auto;}
  .comparison-table{min-width:560px;}
}   
 
/* ---------- SOLUZIONE ---------- */
.soluzione{padding:110px 0;background:var(--paper-50);}
.pillars{
  display:grid;grid-template-columns:repeat(4,1fr);gap:1px;
  background:var(--line-dark);border:1px solid var(--line-dark);border-radius:var(--radius);overflow:hidden;
}
.pillar{background:#fff;padding:36px 28px;}
.pillar .num{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--violet-600);margin-bottom:18px;display:block;}
.pillar h3{font-size:19px;font-weight:600;margin-bottom:10px;}
.pillar p{font-size:14px;color:var(--slate-500);}
 
@media (max-width:900px){
  .pillars{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:560px){
  .pillars{grid-template-columns:1fr;}
}
 
/* ---------- TECNOLOGIA ---------- */
.tecnologia{
  padding:110px 0;background:var(--navy-900);color:#fff;
  position:relative;
}
.tech-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;}
.tech-copy .eyebrow-dark{color:var(--cyan-400);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:0.08em;margin-bottom:14px;display:block;}
.tech-copy h2{font-size:clamp(26px,3.2vw,34px);font-weight:600;color:#fff;line-height:1.2;margin-bottom:18px;}
.tech-copy p{color:var(--slate-300);font-size:15.5px;margin-bottom:16px;}
.tech-visual{
  aspect-ratio:1/1;position:relative;
  display:flex;align-items:center;justify-content:center;
}
.fiber-ring{
  position:relative;width:100%;height:100%;
  border-radius:50%;
  background:radial-gradient(circle at 50% 50%, rgba(109,40,217,0.15), transparent 70%);
}
.fiber-ring svg{width:100%;height:100%;}
 
@media (max-width:860px){
  .tech-grid{grid-template-columns:1fr;}
  .tech-visual{max-width:320px;margin:0 auto;}
}
 
/* ---------- TEAM ---------- */
.team{padding:110px 0;background:var(--paper-50);}
.team-photo-wrap{
  border-radius:var(--radius);overflow:hidden;margin-bottom:28px;
  background:var(--navy-900);
}
.team-photo{width:100%;display:block;}
.team-captions{
  display:grid;grid-template-columns:repeat(4,1fr);gap:20px;text-align:center;
}
.team-captions h3{font-size:16px;font-weight:600;}
.team-captions .role{
  font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--violet-600);
  margin-top:4px;
}
.team-captions .profession{
  font-size:13px;color:var(--slate-500);margin-top:8px;line-height:1.4;
}
@media (max-width:760px){
  .team-captions{grid-template-columns:repeat(2,1fr);row-gap:28px;}
}
@media (max-width:480px){
  .team-captions{grid-template-columns:1fr;}
}
 
/* credibility strip */
.credibility{
  margin-top:80px;padding-top:48px;border-top:1px solid var(--line-dark);
}
.credibility p.label{
  font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--slate-500);
  text-transform:uppercase;letter-spacing:0.08em;margin-bottom:22px;
}
.cred-row{display:flex;gap:40px;flex-wrap:wrap;align-items:center;}
.cred-item{font-size:15px;color:var(--ink-900);font-weight:500;}
.cred-item span{color:var(--slate-500);font-weight:400;}
 
/* ---------- CTA ---------- */
.cta{
  background:linear-gradient(135deg, var(--violet-600), #4C1D95 60%, var(--navy-950));
  color:#fff;padding:100px 0;text-align:center;
}
.cta h2{font-size:clamp(28px,4vw,42px);font-weight:600;max-width:600px;margin:0 auto 18px;}
.cta p{color:rgba(255,255,255,0.8);font-size:16px;max-width:480px;margin:0 auto 36px;}
.cta .btn-primary{background:#fff;color:var(--violet-600);}
.cta .btn-primary:hover{background:var(--paper-100);}
 
/* ---------- FOOTER ---------- */
footer{background:var(--navy-950);color:var(--slate-500);padding:56px 0 36px;}
.footer-top{
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:24px;
  padding-bottom:32px;border-bottom:1px solid var(--line);
  align-items:center;
}
.footer-logo img{height:34px;width:auto;}
.footer-links{display:flex;gap:28px;font-size:14px;}
.footer-links a{color:var(--slate-300);transition:color .2s;}
.footer-links a:hover{color:#fff;}
.footer-bottom{
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px;
  padding-top:24px;font-size:13px;
}
.disclaimer{
  max-width:640px;font-size:12.5px;color:var(--slate-500);line-height:1.6;
}
 
/* generic reveal */
.reveal{opacity:0;transform:translateY(16px);transition:opacity .6s ease, transform .6s ease;}
.reveal.in{opacity:1;transform:translateY(0);}