:root{
  --deep:#06141f;
  --navy:#0a2032;
  --navy2:#0c283e;
  --panel:#0b2335;
  --red:#ff1a2e;
  --red2:#ff5a52;
  --green:#22c55e;
  --amber:#f5a623;
  --ink:#eef3f8;
  --steel:#9fb2c6;
  --steel2:#62788e;
  --line:rgba(159,178,198,.16);
  --line2:rgba(159,178,198,.10);
  --sans:'Inter Tight',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --mono:'JetBrains Mono',ui-monospace,'Courier New',monospace;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{font-family:var(--sans);background:var(--deep);color:var(--ink);-webkit-font-smoothing:antialiased;overflow-x:hidden;}
.mono{font-family:var(--mono);}
.lbl{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;}
a{color:inherit;text-decoration:none;}
.wrap{max-width:1520px;margin:0 auto;padding:0 48px;}
section{position:relative;}

/* dotted-grid background texture */
body::before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background-image:radial-gradient(circle at 1px 1px, rgba(159,178,198,.10) 1px, transparent 0);
  background-size:40px 40px;
  mask-image:radial-gradient(ellipse 130% 90% at 50% 0%, #000 25%, transparent 80%);
  -webkit-mask-image:radial-gradient(ellipse 130% 90% at 50% 0%, #000 25%, transparent 80%);}
.above{position:relative;z-index:1;}

/* ---------- animations ---------- */
@keyframes blink{0%,100%{opacity:1}50%{opacity:.3}}
@keyframes ping{0%{transform:scale(1);opacity:.6}70%,100%{transform:scale(2.6);opacity:0}}
@keyframes dash{to{stroke-dashoffset:-200;}}
@keyframes scrollx{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.pdot{position:relative;display:inline-block;width:10px;height:10px;border-radius:50%;flex-shrink:0;}
.pdot::after{content:"";position:absolute;inset:0;border-radius:50%;background:inherit;animation:ping 2.2s infinite;}
.live-dot{width:8px;height:8px;border-radius:50%;background:var(--green);display:inline-block;animation:blink 1.6s infinite;}

/* ---------- navbar ---------- */
#nav{position:fixed;top:0;left:0;right:0;z-index:50;transition:background .3s,border-color .3s,backdrop-filter .3s;border-bottom:1px solid transparent;}
#nav.scrolled{background:rgba(6,20,31,.85);backdrop-filter:blur(14px) saturate(140%);border-bottom:1px solid var(--line);}
#nav .bar{display:flex;align-items:center;justify-content:space-between;height:96px;}
#nav .brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:19px;letter-spacing:-.02em;}
#nav .brand img,#nav .brand svg{height:80px;width:auto;display:block;}
#nav .links{display:flex;gap:26px;}
#nav .links a{font-family:var(--mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--steel);transition:color .2s;}
#nav .links a:hover{color:var(--ink);}
#nav .links a.nav-live{display:inline-flex;align-items:center;gap:6px;color:var(--ink);font-weight:600;}
#nav .links a.nav-live::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--green);display:inline-block;animation:blink 1.6s infinite;flex-shrink:0;}
#nav .right{display:flex;align-items:center;gap:16px;}
#nav .lang{font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:var(--steel2);}
#nav .lang b{color:var(--ink);font-weight:600;}
.btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--sans);font-weight:600;font-size:14px;border-radius:4px;padding:11px 20px;transition:transform .2s,box-shadow .2s,background .2s;cursor:pointer;border:none;}
.btn-red{background:var(--red);color:#fff;box-shadow:0 6px 20px -8px rgba(255,26,46,.6);}
.btn-red:hover{transform:translateY(-1px);box-shadow:0 10px 26px -8px rgba(255,26,46,.75);}
.btn-ghost{background:transparent;color:var(--ink);border:1px solid var(--line);}
.btn-ghost:hover{border-color:var(--steel);transform:translateY(-1px);}
#nav .btn{padding:9px 16px;font-size:13px;}
.menu-toggle{display:none;background:none;border:none;color:var(--ink);cursor:pointer;}

/* ---------- section frame ---------- */
.sec{padding:96px 0;}
.sechead{display:flex;align-items:baseline;gap:14px;margin-bottom:14px;}
.sechead .idx{font-family:var(--mono);font-size:12px;color:var(--red);letter-spacing:.1em;}
.sechead .tag{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--steel2);}
.h2{font-size:clamp(30px,4vw,52px);line-height:1.05;letter-spacing:-.03em;font-weight:800;max-width:20ch;}
.h2 .red{color:var(--red);}
.lead{margin-top:18px;max-width:60ch;font-size:18px;line-height:1.6;color:var(--steel);}

/* ---------- hero ---------- */
#hero{min-height:100vh;display:flex;flex-direction:column;padding-top:96px;}
#hero .split{flex:1;display:grid;grid-template-columns:1fr 1.05fr;min-height:calc(100vh - 96px);}
#hero .left{display:flex;flex-direction:column;justify-content:center;padding:48px 56px 48px 0;}
#hero .status{display:inline-flex;align-items:center;gap:10px;margin-bottom:26px;}
#hero h1{font-size:clamp(40px,4.8vw,70px);line-height:1.0;letter-spacing:-.035em;font-weight:800;}
#hero h1 .red{color:var(--red);}
#hero .sub{margin-top:24px;max-width:44ch;font-size:18px;line-height:1.6;color:var(--steel);}
#hero .actions{margin-top:34px;display:flex;gap:13px;flex-wrap:wrap;}
#hero .meta{margin-top:40px;display:flex;gap:34px;}
#hero .meta .k{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--steel2);}
#hero .meta .v{margin-top:6px;font-size:14px;color:var(--ink);}
/* panel */
#hero .panel{border-left:1px solid var(--line);background:linear-gradient(180deg,var(--navy),var(--deep));display:flex;flex-direction:column;}
.phead{display:flex;justify-content:space-between;align-items:center;padding:14px 22px;border-bottom:1px solid var(--line);}
.phead .lbl{color:var(--steel);}
.phead .live{display:inline-flex;align-items:center;gap:7px;color:var(--green);font-family:var(--mono);font-size:11px;letter-spacing:.12em;}
.map{flex:1;position:relative;overflow:hidden;min-height:280px;}
.map svg{position:absolute;inset:0;width:100%;height:100%;}
.chip{position:absolute;background:rgba(6,20,31,.9);border:1px solid var(--line);border-radius:5px;padding:7px 11px;font-family:var(--mono);font-size:11px;color:var(--ink);backdrop-filter:blur(4px);line-height:1.5;}
.chip .s{color:var(--green);}
.chip .a{color:var(--amber);}
.log{border-top:1px solid var(--line);padding:14px 22px;font-family:var(--mono);font-size:11.5px;line-height:2;color:var(--steel);height:140px;overflow:hidden;}
.log .t{color:var(--steel2);}
.log .ok{color:var(--green);}
.log .id{color:var(--ink);}
.metrics3{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);}
.metrics3 .m{padding:16px 20px;border-right:1px solid var(--line);}
.metrics3 .m:last-child{border-right:none;}
.metrics3 .mv{font-family:var(--mono);font-size:23px;font-weight:700;color:var(--ink);}
.metrics3 .mv.red{color:var(--red2);}
.metrics3 .mv.green{color:var(--green);}
.metrics3 .ml{font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--steel2);margin-top:5px;}

/* ---------- retos ---------- */
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.rcard{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:24px 22px;transition:border-color .25s,transform .25s;}
.rcard:hover{border-color:rgba(255,26,46,.45);transform:translateY(-3px);}
.rcard .rk{font-size:10.5px;letter-spacing:.12em;color:var(--red);margin-bottom:14px;}
.rcard p{font-size:14px;line-height:1.55;color:var(--steel);}

/* ---------- solución ---------- */
.solgrid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;margin-top:8px;}
.sollist{margin-top:26px;list-style:none;display:flex;flex-direction:column;gap:14px;}
.sollist li{display:flex;gap:12px;align-items:flex-start;font-size:15.5px;line-height:1.5;color:var(--ink);}
.sollist .sd{width:7px;height:7px;border-radius:50%;background:var(--red);margin-top:8px;flex-shrink:0;}
.featpanel{background:linear-gradient(180deg,var(--navy),var(--deep));border:1px solid var(--line);border-radius:10px;overflow:hidden;}
.featrow{display:flex;gap:14px;align-items:center;padding:17px 22px;border-bottom:1px solid var(--line2);}
.featrow .fi{color:var(--green);font-size:13px;}
.featrow b{display:block;font-size:14.5px;color:var(--ink);font-weight:600;}
.featrow span{display:block;font-family:var(--mono);font-size:11px;color:var(--steel2);margin-top:3px;}

/* ---------- multimedia (full-bleed inmersivo con fundidos) ---------- */
.mediawrap{margin-top:48px;width:100vw;position:relative;left:50%;right:50%;margin-left:-50vw;margin-right:-50vw;}
.videoframe{position:relative;overflow:hidden;background:#04101a;}
.vstage{position:relative;}
.videoframe video{display:block;width:100%;height:clamp(420px,64vh,780px);background:#04101a;object-fit:cover;}
.vfade{position:absolute;left:0;right:0;height:130px;z-index:1;pointer-events:none;}
.vfade-top{top:0;background:linear-gradient(180deg,var(--deep),transparent);}
.vfade-bot{bottom:0;background:linear-gradient(0deg,var(--deep),transparent);}
.videoframe::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:1;
  box-shadow:inset 0 0 170px 40px rgba(4,16,26,.55);}
.soundbtn{position:absolute;bottom:22px;right:26px;z-index:2;display:inline-flex;align-items:center;gap:7px;
  background:rgba(6,20,31,.78);border:1px solid var(--line);border-radius:5px;padding:9px 14px;
  color:var(--ink);font-size:11px;letter-spacing:.12em;cursor:pointer;backdrop-filter:blur(6px);transition:border-color .2s,background .2s;}
.soundbtn:hover{border-color:var(--red);background:rgba(6,20,31,.92);}
.soundbtn.on{border-color:var(--green);color:var(--green);}

/* ---------- industrias ---------- */
.indgrid{margin-top:44px;display:grid;grid-template-columns:repeat(4,1fr);gap:14px;}
.indcard{display:flex;align-items:center;gap:14px;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:18px 18px;transition:border-color .25s,transform .25s;}
.indcard:hover{border-color:rgba(255,26,46,.45);transform:translateY(-3px);}
.indcard .ico{display:flex;align-items:center;justify-content:center;width:38px;height:38px;flex-shrink:0;
  border:1px solid var(--line);border-radius:7px;color:var(--red2);font-size:17px;background:rgba(255,26,46,.06);}
.indcard .it b{display:block;font-size:14px;font-weight:600;color:var(--ink);line-height:1.25;}
.indcard .it span{display:block;font-family:var(--mono);font-size:10.5px;color:var(--steel2);margin-top:4px;letter-spacing:.02em;}

/* ---------- lo que proveemos ---------- */
.provgrid{margin-top:44px;display:grid;grid-template-columns:repeat(5,1fr);gap:0;border:1px solid var(--line);border-radius:10px;overflow:hidden;}
.prov{padding:26px 22px;border-right:1px solid var(--line);background:var(--panel);}
.prov:last-child{border-right:none;}
.prov .pn{display:block;font-size:13px;color:var(--red);letter-spacing:.1em;margin-bottom:16px;}
.prov b{display:block;font-size:15px;font-weight:600;color:var(--ink);line-height:1.3;}
.prov span{display:block;font-size:12.5px;color:var(--steel);margin-top:8px;line-height:1.45;}

/* ---------- cómo funciona (mockup + pasos) ---------- */
.funcgrid{margin-top:48px;display:grid;grid-template-columns:340px 1fr;gap:56px;align-items:center;}
.phonewrap{display:flex;flex-direction:column;align-items:center;gap:16px;}
.phone{position:relative;width:288px;height:592px;background:#04101a;border:8px solid #16242f;border-radius:42px;
  box-shadow:0 40px 80px -30px rgba(0,0,0,.8),inset 0 0 0 1px rgba(159,178,198,.1);overflow:hidden;}
.phone-notch{position:absolute;top:0;left:50%;transform:translateX(-50%);width:120px;height:26px;background:#16242f;border-radius:0 0 16px 16px;z-index:3;}
.phone-screen{position:absolute;inset:0;padding:34px 18px 18px;display:flex;flex-direction:column;gap:14px;
  background:radial-gradient(ellipse 90% 50% at 50% 0%, rgba(16,52,82,.5), transparent 60%),var(--deep);}
.app-top{display:flex;justify-content:space-between;align-items:center;font-size:10px;letter-spacing:.1em;color:var(--steel);}
.app-top .live-dot{width:7px;height:7px;}
.app-status{font-size:10px;letter-spacing:.18em;color:var(--red2);text-align:center;padding:6px;border:1px solid rgba(255,26,46,.3);border-radius:5px;background:rgba(255,26,46,.06);}
.app-face{display:flex;flex-direction:column;align-items:center;gap:12px;padding:14px 0;}
.face-ring{width:130px;height:130px;border-radius:18px;background:linear-gradient(135deg,rgba(16,52,82,.5),rgba(6,20,31,.5));
  border:1px solid var(--line);display:flex;align-items:center;justify-content:center;position:relative;}
.face-ring svg{width:90px;height:90px;}
.face-lbl{font-size:10px;color:var(--ink);}
.face-lbl .ok{color:var(--green);}
.app-rows{display:flex;flex-direction:column;gap:0;border:1px solid var(--line);border-radius:8px;overflow:hidden;}
.ar{display:flex;align-items:center;gap:9px;padding:11px 12px;border-bottom:1px solid var(--line2);font-size:11px;}
.ar:last-child{border-bottom:none;}
.ar-i{width:16px;height:16px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;flex-shrink:0;}
.ar-i.ok{background:rgba(34,197,94,.15);color:var(--green);}
.ar-i.scan{background:rgba(245,166,35,.15);color:var(--amber);}
.ar-t{flex:1;color:var(--ink);}
.ar-s{font-size:9.5px;letter-spacing:.04em;}
.ar-s.ok{color:var(--green);}
.ar-s.amber{color:var(--amber);}
.app-cta{margin-top:auto;text-align:center;padding:13px;background:var(--red);color:#fff;border-radius:8px;font-size:11px;letter-spacing:.1em;}
.phone-cap{font-size:10.5px;letter-spacing:.1em;color:var(--steel2);}
.stepcol{display:flex;flex-direction:column;}
.stepb{display:grid;grid-template-columns:88px 1fr;gap:18px;padding:22px 0;border-bottom:1px solid var(--line);align-items:start;}
.stepb:first-child{padding-top:0;}
.stepb:last-child{border-bottom:none;padding-bottom:0;}
.stepb .snum{font-size:11px;letter-spacing:.14em;color:var(--red);padding-top:3px;}
.stepb h3{font-size:18px;font-weight:700;letter-spacing:-.01em;margin-bottom:8px;}
.stepb p{font-size:14px;line-height:1.55;color:var(--steel);}

/* ---------- solución: narrativa de apertura ---------- */
.solnarr{margin-top:8px;margin-bottom:30px;max-width:60ch;font-size:clamp(20px,2.2vw,27px);line-height:1.4;font-weight:600;letter-spacing:-.01em;color:var(--ink);}

/* ---------- contraste antes/después ---------- */
.cmpgrid{margin-top:44px;display:grid;grid-template-columns:1fr auto 1fr;gap:0;align-items:stretch;}
.cmpcol{border:1px solid var(--line);padding:26px 26px;}
.cmpcol.before{border-radius:10px 0 0 10px;background:rgba(6,20,31,.5);}
.cmpcol.after{border-radius:0 10px 10px 0;background:var(--panel);border-color:rgba(255,26,46,.3);}
.cmphd{display:flex;align-items:center;gap:9px;font-size:11px;letter-spacing:.14em;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--line);}
.cmpcol.before .cmphd{color:var(--steel2);}
.cmpcol.after .cmphd{color:var(--red2);}
.cmpdot{width:8px;height:8px;border-radius:50%;}
.cmpdot.off{background:var(--steel2);}
.cmpdot.on{background:var(--green);box-shadow:0 0 0 3px rgba(34,197,94,.18);}
.cmprow{display:flex;gap:12px;align-items:flex-start;padding:11px 0;font-size:14px;line-height:1.45;color:var(--steel);}
.cmpcol.after .cmprow{color:var(--ink);}
.cmprow .cx{color:var(--steel2);font-weight:700;flex-shrink:0;}
.cmprow .cc{color:var(--green);font-weight:700;flex-shrink:0;}
.cmparrow{display:flex;align-items:center;justify-content:center;padding:0 18px;color:var(--red);font-size:24px;}

/* ---------- alertas invisibles ---------- */
.alertgrid{margin-top:44px;display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
.alertcard{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:24px 22px;position:relative;overflow:hidden;transition:border-color .25s,transform .25s;}
.alertcard::before{content:"";position:absolute;top:0;left:0;width:3px;height:100%;background:var(--red);opacity:.6;}
.alertcard:hover{border-color:rgba(255,26,46,.45);transform:translateY(-3px);}
.alertcard .ah{display:flex;align-items:center;gap:8px;font-size:10px;letter-spacing:.14em;color:var(--red);margin-bottom:16px;}
.alertcard .adot{width:7px;height:7px;border-radius:50%;background:var(--red);animation:blink 1.6s infinite;}
.alertcard b{display:block;font-size:15.5px;font-weight:600;color:var(--ink);margin-bottom:8px;letter-spacing:-.01em;}
.alertcard span{display:block;font-size:13px;line-height:1.5;color:var(--steel);}

/* ---------- resultados ---------- */
.statgrid{margin-top:48px;display:grid;grid-template-columns:repeat(5,1fr);gap:0;border:1px solid var(--line);border-radius:10px;overflow:hidden;}
.stat{padding:32px 22px;border-right:1px solid var(--line);background:var(--panel);}
.stat:last-child{border-right:none;}
.stat .snv{font-size:clamp(30px,3.4vw,44px);font-weight:700;color:var(--red);letter-spacing:-.02em;}
.stat .snl{margin-top:12px;font-size:12.5px;line-height:1.45;color:var(--steel);}

/* ---------- alianza ---------- */
.pcard{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:30px 28px;transition:border-color .25s;}
.pcard:hover{border-color:rgba(255,26,46,.4);}
.logobox{position:relative;display:flex;align-items:center;justify-content:center;
  width:100%;height:96px;margin-bottom:24px;border:1px solid var(--line);border-radius:8px;
  background:
    linear-gradient(135deg, rgba(6,20,31,.7), rgba(10,32,50,.5)),
    repeating-linear-gradient(45deg, transparent, transparent 9px, rgba(159,178,198,.04) 9px, rgba(159,178,198,.04) 10px);
  object-fit:contain;padding:18px;}
.logobox .logotxt{font-weight:800;font-size:22px;letter-spacing:-.02em;color:var(--steel);}
.logobox .logohint{position:absolute;bottom:9px;right:10px;font-size:9px;letter-spacing:.16em;color:var(--steel2);
  border:1px solid var(--line);border-radius:3px;padding:3px 6px;background:rgba(6,20,31,.7);}
.logobox::before,.logobox::after{content:"";position:absolute;width:13px;height:13px;border-color:rgba(159,178,198,.25);border-style:solid;}
.logobox::before{top:9px;left:10px;border-width:1px 0 0 1px;}
.logobox::after{top:9px;right:10px;border-width:1px 1px 0 0;}
img.logobox{display:block;width:100%;height:96px;object-fit:contain;background:rgba(6,20,31,.4);padding:16px;}
.plink{display:inline-block;margin-top:18px;font-size:12px;letter-spacing:.06em;color:var(--red2);transition:color .2s;}
.plink:hover{color:var(--red);}
.pcap{font-size:10.5px;letter-spacing:.14em;color:var(--steel2);margin-bottom:16px;}
.pcard h3{font-size:24px;font-weight:800;letter-spacing:-.02em;display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.pcard h3 .tk{font-family:var(--mono);font-size:11px;font-weight:500;color:var(--red);border:1px solid rgba(255,26,46,.4);border-radius:4px;padding:3px 8px;letter-spacing:.06em;}
.pcard p{margin-top:16px;font-size:14.5px;line-height:1.6;color:var(--steel);}

/* ---------- equipo ---------- */
.tgroup{font-size:11px;letter-spacing:.16em;color:var(--red);margin-top:44px;margin-bottom:22px;padding-bottom:14px;border-bottom:1px solid var(--line);}
.teamgrid{display:grid;grid-template-columns:repeat(5,1fr);gap:18px;}
.tcard{background:var(--panel);border:1px solid var(--line);border-radius:10px;overflow:hidden;transition:border-color .25s,transform .25s;}
.tcard:hover{border-color:rgba(255,26,46,.45);transform:translateY(-3px);}
.tcard .ph{position:relative;width:100%;aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;
  background:
    linear-gradient(135deg, rgba(10,32,50,.9), rgba(6,20,31,.9)),
    repeating-linear-gradient(45deg, transparent, transparent 9px, rgba(159,178,198,.04) 9px, rgba(159,178,198,.04) 10px);
  border-bottom:1px solid var(--line);object-fit:cover;}
.tcard .ph .ini{font-family:var(--mono);font-size:30px;font-weight:700;color:var(--steel);letter-spacing:.04em;}
.tcard .ph .phlbl{position:absolute;bottom:10px;right:10px;font-size:9px;letter-spacing:.16em;color:var(--steel2);
  border:1px solid var(--line);border-radius:3px;padding:3px 6px;background:rgba(6,20,31,.7);}
.tcard .ph::before,.tcard .ph::after{content:"";position:absolute;width:14px;height:14px;border-color:rgba(159,178,198,.25);border-style:solid;}
.tcard .ph::before{top:10px;left:10px;border-width:1px 0 0 1px;}
.tcard .ph::after{top:10px;right:10px;border-width:1px 1px 0 0;}
img.ph{display:block;width:100%;aspect-ratio:1/1;object-fit:cover;object-position:center 15%;transform:scale(1.06);border-bottom:1px solid var(--line);}
.tcard figcaption{padding:16px 16px 18px;}
.tcard figcaption b{display:block;font-size:15px;font-weight:600;color:var(--ink);letter-spacing:-.01em;}
.tcard figcaption span{display:block;font-size:12px;color:var(--steel);margin-top:6px;line-height:1.45;}

/* ---------- contacto ---------- */
.contactgrid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start;}
.cinfo{margin-top:34px;display:flex;flex-direction:column;gap:18px;}
.ci{display:flex;flex-direction:column;gap:5px;}
.ci .cil{font-size:10.5px;letter-spacing:.14em;color:var(--steel2);}
.ci span,.ci a{font-size:15px;color:var(--ink);}
.cform{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:26px;}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px;}
.cform input,.cform textarea{width:100%;background:rgba(6,20,31,.6);border:1px solid var(--line);border-radius:5px;padding:12px 14px;color:var(--ink);font-family:var(--sans);font-size:14px;}
.cform textarea{margin-bottom:14px;resize:vertical;}
.cform input:focus,.cform textarea:focus{outline:none;border-color:var(--red);}
.cform input::placeholder,.cform textarea::placeholder{color:var(--steel2);}
.thanks{display:none;align-items:center;gap:10px;margin-top:14px;padding:12px 14px;background:rgba(34,197,94,.12);border:1px solid rgba(34,197,94,.4);border-radius:5px;color:var(--ink);font-size:14px;}

/* ---------- footer ---------- */
footer{border-top:1px solid var(--line);margin-top:40px;padding-bottom:32px;background:rgba(6,20,31,.6);}
.fwrap{padding:56px 36px 32px;}
.fgrid{display:grid;grid-template-columns:2fr 1fr 1fr 1.3fr;gap:40px;}
.fbrand p{margin-top:16px;font-size:13.5px;line-height:1.6;color:var(--steel);max-width:42ch;}
.fstatus{margin-top:18px;display:flex;align-items:center;gap:9px;font-size:11px;letter-spacing:.1em;color:var(--steel2);}
.fcol{display:flex;flex-direction:column;gap:11px;}
.fct{font-size:10.5px;letter-spacing:.16em;color:var(--steel2);margin-bottom:4px;}
.fcol a{font-size:14px;color:var(--steel);transition:color .2s;}
.fcol a:hover{color:var(--ink);}
.faddr{font-size:13px;color:var(--steel);line-height:1.5;}
.fbottom{margin-top:44px;padding-top:22px;border-top:1px solid var(--line);display:flex;justify-content:space-between;font-size:11px;letter-spacing:.08em;color:var(--steel2);}
.flegal a{color:var(--steel2);text-decoration:none;transition:color .2s;}.flegal a:hover{color:var(--ink);}

/* ---------- cookie banner ---------- */
#cookieBanner{position:fixed;bottom:0;left:0;right:0;z-index:100;background:rgba(6,20,31,.97);backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%);border-top:1px solid var(--line);padding:14px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;transform:translateY(100%);transition:transform .35s ease;}
#cookieBanner.cb-show{transform:translateY(0);}
#cookieBanner p{font-size:13px;color:var(--steel);margin:0;line-height:1.5;}
#cookieBanner p a{color:var(--red);text-decoration:underline;}
.cb-btns{display:flex;gap:10px;flex-shrink:0;}
.cb-btns button{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.08em;padding:8px 18px;border-radius:4px;cursor:pointer;border:1px solid transparent;transition:opacity .2s;}
#cbAccept{background:var(--red);color:#fff;border-color:var(--red);}
#cbDecline{background:transparent;color:var(--steel);border-color:var(--line);}
#cbDecline:hover{color:var(--ink);}

/* ---------- press / related media ---------- */
.press-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;}
.press-card{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.07);border-radius:10px;padding:22px 24px;display:flex;flex-direction:column;gap:10px;transition:border-color .2s;}
.press-card:hover{border-color:rgba(255,26,46,.3);}
.press-source{font-family:'JetBrains Mono',monospace;font-size:.68rem;color:var(--steel2);letter-spacing:.06em;}
.press-card h3{font-size:.9rem;font-weight:700;color:#fff;line-height:1.4;margin:0;}
.press-card p{font-size:.82rem;color:var(--steel);line-height:1.6;margin:0;flex:1;}
.press-link{font-family:'JetBrains Mono',monospace;font-size:.72rem;color:var(--red);text-decoration:none;letter-spacing:.06em;margin-top:6px;}
.press-link:hover{text-decoration:underline;}

/* ============================================================
   RESPONSIVE  |  1100 · 920 · 640 · 480
============================================================ */

/* -- 1100px: grids start shrinking ----------------------- */
@media (max-width:1100px){
  .teamgrid{grid-template-columns:repeat(4,1fr);}
  .statgrid{grid-template-columns:repeat(3,1fr);}
  .provgrid{grid-template-columns:repeat(3,1fr);}
  .indgrid{grid-template-columns:repeat(3,1fr);}
  .alertgrid{grid-template-columns:repeat(2,1fr);}
}

/* -- 920px: tablet / nav hamburger ----------------------- */
@media (max-width:920px){
  .wrap{padding:0 22px;}
  .sec{padding:80px 0;}
  /* nav */
  #nav .bar{height:72px;}
  #nav .brand img,#nav .brand svg{height:56px;}
  #nav .links{display:none;}
  .menu-toggle{display:flex;align-items:center;font-size:20px;padding:4px 8px;}
  #nav .right .btn{padding:8px 14px;font-size:12px;}
  /* hero */
  #hero{padding-top:72px;}
  #hero .split{grid-template-columns:1fr;min-height:calc(100vh - 72px);}
  #hero .left{padding:48px 0 36px;}
  #hero .panel{border-left:none;border-top:1px solid var(--line);min-height:460px;}
  /* content grids */
  .solgrid,.contactgrid{grid-template-columns:1fr;gap:32px;}
  .funcgrid{grid-template-columns:1fr;gap:36px;justify-items:center;}
  .cmpgrid{grid-template-columns:1fr;gap:16px;}
  .cmpcol.before,.cmpcol.after{border-radius:10px;}
  .cmparrow{transform:rotate(90deg);padding:4px 0;}
  .alertgrid{grid-template-columns:repeat(2,1fr);}
  .indgrid{grid-template-columns:repeat(2,1fr);}
  .provgrid{grid-template-columns:repeat(2,1fr);}
  .provgrid .prov{border-right:none;border-bottom:1px solid var(--line);}
  .statgrid{grid-template-columns:repeat(3,1fr);}
  .stat{border-bottom:1px solid var(--line);}
  .teamgrid{grid-template-columns:repeat(3,1fr);}
  .fgrid{grid-template-columns:1fr 1fr;gap:28px;}
  .frow{grid-template-columns:1fr;}
  .stepb{grid-template-columns:72px 1fr;}
  .press-grid{grid-template-columns:1fr;}
}

/* -- mobile nav drawer (applies at any width when open) -- */
#nav.nav-open .links{
  display:flex !important;
  flex-direction:column;
  position:absolute;
  top:64px;left:0;right:0;
  background:rgba(6,20,31,.97);
  backdrop-filter:blur(16px) saturate(140%);
  -webkit-backdrop-filter:blur(16px) saturate(140%);
  border-bottom:1px solid var(--line);
  padding:8px 22px 28px;
  gap:0;z-index:50;
}
#nav.nav-open .links a{
  padding:16px 0;
  border-bottom:1px solid var(--line2);
  font-size:13px;
  letter-spacing:.08em;
  color:var(--steel);
}
#nav.nav-open .links a:last-child{border-bottom:none;}
#nav.nav-open .links a.nav-live{color:var(--ink);}

/* -- 640px: mobile ---------------------------------------- */
@media (max-width:640px){
  .sec{padding:64px 0;}
  /* show panel on phones — map only, hide log + metrics */
  #hero .split{min-height:auto;}
  #hero .panel{min-height:220px;}
  #hero .log{display:none;}
  #hero .metrics3{display:none;}
  #hero .left{padding:36px 0 32px;}
  #hero .sub{font-size:16px;}
  #hero .meta{flex-wrap:wrap;gap:20px;}
  #hero .actions{flex-direction:column;}
  #hero .actions .btn{text-align:center;justify-content:center;}
  /* full-bleed video: cancel negative-margin trick on mobile to avoid overflow */
  .mediawrap{width:100%;left:0;margin-left:0;margin-right:0;}
  /* video height close to 16:9 ratio so object-fit:cover doesn't crop the sides */
  .videoframe video{height:clamp(180px,56vw,240px);}
  /* hide map chips that overflow on narrow screens */
  .chip{display:none;}
  /* inline-grid overrides */
  .grid4{grid-template-columns:1fr 1fr;}
  .grid2{grid-template-columns:1fr;}
  /* collapse all grids to 1 or 2 col */
  .statgrid{grid-template-columns:repeat(2,1fr);}
  .alertgrid{grid-template-columns:1fr;}
  .indgrid{grid-template-columns:1fr;}
  .provgrid{grid-template-columns:1fr;}
  .teamgrid{grid-template-columns:repeat(2,1fr);}
  .press-grid{grid-template-columns:1fr;}
  .fgrid{grid-template-columns:1fr;gap:24px;}
  .fbottom{flex-direction:column;gap:10px;text-align:center;}
  .funcgrid{grid-template-columns:1fr;}
  /* comparison vertical */
  .cmpgrid{grid-template-columns:1fr;}
  .cmpcol.before,.cmpcol.after{border-radius:10px;}
}

/* -- 480px: small phones ---------------------------------- */
@media (max-width:480px){
  .wrap{padding:0 16px;}
  .sec{padding:52px 0;}
  #nav .bar{height:60px;}
  #nav .brand img,#nav .brand svg{height:46px;}
  #hero{padding-top:60px;}
  #hero .panel{min-height:260px;}
  /* hide CTA button in nav — it's accessible in the page */
  #nav .right .btn{display:none;}
  /* single column stats */
  .statgrid{grid-template-columns:1fr;}
  /* 2-col team stays 2-col, feels right */
}

/* Screen-reader only — visually hidden but accessible */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
