:root{
    --navy:#0B1220;
    --navy-2:#0E1728;
    --navy-3:#131f36;
    --blue:#2563EB;
    --cyan:#00D4FF;
    --green:#22C55E;
    --red:#FF4D4F;
    --ink:#E6EDF7;
    --ink-dim:#93A2BD;
    --line:rgba(148,168,204,0.14);
    --card:rgba(255,255,255,0.03);
    --radius:14px;
    --disp:'Space Grotesk',sans-serif;
    --body:'Inter',sans-serif;
    --mono:'JetBrains Mono',monospace;
  }
  *{box-sizing:border-box;margin:0;padding:0;}
  html{scroll-behavior:smooth;}
  body{
    background:var(--navy);
    color:var(--ink);
    font-family:var(--body);
    line-height:1.5;
    overflow-x:hidden;
  }
  a{color:inherit;text-decoration:none;}
  ul{list-style:none;}
  img,svg{display:block;}
  .container{max-width:1240px;margin:0 auto;padding:0 32px;}
  h1,h2,h3,h4{font-family:var(--disp);font-weight:600;letter-spacing:-0.02em;}
  .eyebrow{
    font-family:var(--mono);
    font-size:12px;
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:var(--cyan);
    display:flex;
    align-items:center;
    gap:10px;
    margin-bottom:16px;
  }
  .eyebrow::before{content:"";width:22px;height:1px;background:var(--cyan);}

  /* reveal */
  .reveal{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s ease;}
  .reveal.in{opacity:1;transform:translateY(0);}
  @media (prefers-reduced-motion: reduce){
    .reveal{opacity:1;transform:none;transition:none;}
    *{animation:none !important;}
  }

  /* ===== NAV ===== */
  header{
    position:fixed;top:0;left:0;right:0;z-index:100;
    background:rgba(11,18,32,0.72);
    backdrop-filter:blur(14px);
    border-bottom:1px solid var(--line);
  }
  nav{
    display:flex;align-items:center;justify-content:space-between;
    max-width:1240px;margin:0 auto;padding:18px 32px;
  }
  .logo{
    display:flex;align-items:center;gap:10px;
    font-family:var(--disp);font-weight:700;font-size:19px;letter-spacing:-0.01em;
  }
  .logo .mark{
    width:30px;height:30px;border-radius:7px;
    background:linear-gradient(135deg,var(--blue),var(--cyan));
    display:flex;align-items:center;justify-content:center;
    font-family:var(--mono);font-size:13px;font-weight:700;color:var(--navy);
  }
  .logo-img{
    width:32px;height:32px;object-fit:contain;display:block;
  }
  .navlinks{display:flex;gap:34px;align-items:center;}
  .navlinks a{font-size:14.5px;color:var(--ink-dim);transition:color .2s;}
  .navlinks a:hover{color:var(--ink);}
  .navcta{display:flex;gap:12px;align-items:center;}
  @media (max-width:900px){.navlinks{display:none;}}

  .btn{
    font-family:var(--body);font-weight:600;font-size:14.5px;
    padding:11px 22px;border-radius:9px;border:1px solid transparent;
    cursor:pointer;transition:transform .15s ease, box-shadow .15s ease, background .2s;
    display:inline-flex;align-items:center;gap:8px;
  }
  .btn-primary{background:linear-gradient(135deg,var(--blue),#3B82F6);color:#fff;}
  .btn-primary:hover{transform:translateY(-2px);box-shadow:0 10px 30px -8px rgba(37,99,235,0.6);}
  .btn-ghost{background:transparent;border-color:var(--line);color:var(--ink);}
  .btn-ghost:hover{border-color:var(--ink-dim);}
  .btn-danger{background:linear-gradient(135deg,#B91C1C,var(--red));color:#fff;}
  .btn-danger:hover{transform:translateY(-2px);box-shadow:0 10px 30px -8px rgba(255,77,79,0.55);}
  .btn-sky{background:linear-gradient(135deg,var(--blue),var(--cyan));color:#08131f;}
  .btn-sky:hover{transform:translateY(-2px);box-shadow:0 10px 30px -8px rgba(0,212,255,0.45);}

  /* ===== HERO ===== */
  .hero{
    position:relative;
    padding:190px 0 120px;
    overflow:hidden;
    background:radial-gradient(ellipse 80% 60% at 70% 0%, rgba(37,99,235,0.28), transparent 60%),
               radial-gradient(ellipse 60% 50% at 10% 100%, rgba(0,212,255,0.10), transparent 60%),
               var(--navy);
  }
  .hero-grid{position:absolute;inset:0;
    background-image:linear-gradient(var(--line) 1px, transparent 1px),linear-gradient(90deg,var(--line) 1px, transparent 1px);
    background-size:64px 64px;
    mask-image:radial-gradient(ellipse 70% 60% at 60% 20%, black, transparent 75%);
    opacity:0.5;
  }
  .particle{position:absolute;border-radius:50%;background:var(--cyan);opacity:0.5;filter:blur(0.5px);animation:float 14s ease-in-out infinite;}
  @keyframes float{0%,100%{transform:translateY(0px) translateX(0px);}50%{transform:translateY(-30px) translateX(14px);}}

  .hero-inner{position:relative;display:grid;grid-template-columns:1.1fr 0.9fr;gap:60px;align-items:center;}
  @media (max-width:960px){.hero-inner{grid-template-columns:1fr;}}
  .hero h1{font-size:clamp(38px,5vw,60px);line-height:1.06;margin-bottom:22px;}
  .hero h1 span{background:linear-gradient(135deg,var(--cyan),var(--blue));-webkit-background-clip:text;background-clip:text;color:transparent;}
  .hero p.sub{color:var(--ink-dim);font-size:17px;max-width:480px;margin-bottom:14px;}
  .stack-tags{display:flex;flex-wrap:wrap;gap:10px;margin:22px 0 32px;}
  .stack-tags span{
    font-family:var(--mono);font-size:12.5px;color:var(--ink-dim);
    border:1px solid var(--line);padding:6px 12px;border-radius:100px;
  }
  .hero-btns{display:flex;gap:14px;flex-wrap:wrap;}

  /* animated network diagram */
  .netviz{
    position:relative;background:var(--card);
    border:1px solid var(--line);border-radius:20px;
    padding:34px 30px;backdrop-filter:blur(6px);
  }
  .netviz .node{
    display:flex;align-items:center;gap:14px;
    padding:14px 16px;border-radius:11px;
    background:rgba(255,255,255,0.02);border:1px solid var(--line);
    font-family:var(--mono);font-size:13.5px;color:var(--ink);
    position:relative;
  }
  .netviz .node .dot{width:9px;height:9px;border-radius:50%;background:var(--cyan);box-shadow:0 0 12px var(--cyan);flex-shrink:0;animation:pulse 2s ease-in-out infinite;}
  @keyframes pulse{0%,100%{opacity:1;}50%{opacity:0.3;}}
  .netviz .connector{
    width:2px;height:22px;margin-left:24px;
    background:linear-gradient(var(--blue),transparent);
    position:relative;overflow:hidden;
  }
  .netviz .connector::after{
    content:"";position:absolute;top:-100%;left:0;width:100%;height:60%;
    background:linear-gradient(var(--cyan),transparent);
    animation:travel 2.2s linear infinite;
  }
  @keyframes travel{0%{top:-60%;}100%{top:120%;}}
  .netviz .node:nth-child(odd) .dot{animation-delay:0.3s;}

  /* ===== TRUSTED BY ===== */
  .trustbar{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:26px 0;overflow:hidden;}
  .marquee{display:flex;gap:64px;width:max-content;animation:scroll 26s linear infinite;}
  .marquee span{font-family:var(--disp);font-size:17px;color:var(--ink-dim);font-weight:500;letter-spacing:0.02em;white-space:nowrap;opacity:0.7;}
  @keyframes scroll{0%{transform:translateX(0);}100%{transform:translateX(-50%);}}

  /* ===== SECTION shared ===== */
  section{padding:120px 0;position:relative;}
  .sec-head{max-width:640px;margin-bottom:56px;}
  .sec-head h2{font-size:clamp(28px,3.4vw,40px);margin-bottom:14px;}
  .sec-head p{color:var(--ink-dim);font-size:16px;}

  /* ===== SOLUTIONS CARDS (Docker style) ===== */
  .grid-6{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
  @media (max-width:900px){.grid-6{grid-template-columns:repeat(2,1fr);}}
  @media (max-width:600px){.grid-6{grid-template-columns:1fr;}}
  .sol-card{
    background:var(--card);
    border:1px solid var(--line);
    border-radius:var(--radius);
    padding:28px 26px;
    transition:transform .25s ease, border-color .25s ease, background .25s ease;
  }
  .sol-card:hover{transform:translateY(-6px);border-color:rgba(0,212,255,0.35);background:rgba(255,255,255,0.05);}
  .sol-card .icon{
    width:42px;height:42px;border-radius:10px;
    background:linear-gradient(135deg,rgba(37,99,235,0.25),rgba(0,212,255,0.2));
    display:flex;align-items:center;justify-content:center;margin-bottom:18px;
    color:var(--cyan);
  }
  .sol-card h3{font-size:18px;margin-bottom:12px;}
  .sol-card ul{display:flex;flex-wrap:wrap;gap:7px;}
  .sol-card li{font-size:12.5px;color:var(--ink-dim);font-family:var(--mono);border:1px solid var(--line);padding:4px 9px;border-radius:100px;}

  /* ===== ATTACK / RESCUE ===== */
  .ar-wrap{display:grid;grid-template-columns:1fr 1fr;gap:24px;}
  @media (max-width:860px){.ar-wrap{grid-template-columns:1fr;}}
  .ar-card{
    border-radius:20px;padding:44px 38px;position:relative;overflow:hidden;
    border:1px solid var(--line);min-height:340px;display:flex;flex-direction:column;justify-content:space-between;
  }
  .ar-card.attack{background:radial-gradient(circle at 80% 0%, rgba(255,77,79,0.22), transparent 60%), #17090a;border-color:rgba(255,77,79,0.3);}
  .ar-card.rescue{background:radial-gradient(circle at 80% 0%, rgba(37,99,235,0.28), transparent 60%), #060d1c;border-color:rgba(37,99,235,0.3);}
  .ar-card .tag{font-family:var(--mono);font-size:12px;letter-spacing:0.1em;text-transform:uppercase;padding:5px 12px;border-radius:100px;width:fit-content;margin-bottom:22px;}
  .ar-card.attack .tag{background:rgba(255,77,79,0.15);color:#FF8A8B;border:1px solid rgba(255,77,79,0.35);}
  .ar-card.rescue .tag{background:rgba(37,99,235,0.15);color:#7DB4FF;border:1px solid rgba(37,99,235,0.35);}
  .ar-card h3{font-size:28px;margin-bottom:18px;}
  .ar-card ul{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:28px;}
  .ar-card li{font-size:13.5px;color:var(--ink-dim);border:1px solid var(--line);padding:6px 13px;border-radius:100px;}
  .glitch{animation:glitch 3.2s infinite;}
  @keyframes glitch{0%,94%,100%{filter:none;}95%{filter:hue-rotate(20deg) contrast(1.2);}96%{filter:none;}97%{filter:hue-rotate(-15deg);}98%{filter:none;}}

  /* ===== SERVICES ===== */
  .svc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
  @media (max-width:900px){.svc-grid{grid-template-columns:repeat(2,1fr);}}
  @media (max-width:560px){.svc-grid{grid-template-columns:1fr;}}
  .svc-item{
    border:1px solid var(--line);border-radius:12px;padding:20px;
    font-size:14.5px;font-weight:500;
    display:flex;align-items:center;gap:12px;
    transition:border-color .2s, background .2s;
  }
  .svc-item:hover{border-color:rgba(0,212,255,0.3);background:var(--card);}
  .svc-item .num{font-family:var(--mono);font-size:12px;color:var(--cyan);}

  /* ===== SUPPORT ===== */
  .support-panel{
    background:linear-gradient(135deg, var(--navy-2), var(--navy-3));
    border:1px solid var(--line);border-radius:22px;
    padding:56px;display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center;
  }
  @media (max-width:860px){.support-panel{grid-template-columns:1fr;padding:36px 26px;}}
  .support-links{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
  .support-links a{
    border:1px solid var(--line);border-radius:10px;padding:16px;font-size:14px;font-weight:500;
    display:flex;align-items:center;gap:10px;transition:border-color .2s, transform .2s;
  }
  .support-links a:hover{border-color:var(--cyan);transform:translateX(3px);}

  /* ===== STATS ===== */
  .stats-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:24px;text-align:center;}
  @media (max-width:900px){.stats-grid{grid-template-columns:repeat(2,1fr);}}
  .stat h3{font-family:var(--disp);font-size:clamp(30px,4vw,44px);background:linear-gradient(135deg,var(--cyan),var(--blue));-webkit-background-clip:text;background-clip:text;color:transparent;}
  .stat p{color:var(--ink-dim);font-size:13.5px;margin-top:8px;font-family:var(--mono);letter-spacing:0.04em;text-transform:uppercase;}

  /* ===== INDUSTRIES ===== */
  .ind-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
  @media (max-width:900px){.ind-grid{grid-template-columns:repeat(2,1fr);}}
  .ind-card{
    border:1px solid var(--line);border-radius:12px;padding:26px 20px;text-align:center;
    transition:transform .2s, border-color .2s;
  }
  .ind-card:hover{transform:translateY(-4px);border-color:rgba(0,212,255,0.35);}
  .ind-card .icon{color:var(--cyan);margin:0 auto 14px;}

  /* ===== CTA BAND ===== */
  .ctaband{
    background:radial-gradient(ellipse 60% 100% at 50% 0%, rgba(37,99,235,0.3), transparent 70%), var(--navy-2);
    border-top:1px solid var(--line);border-bottom:1px solid var(--line);
    text-align:center;padding:100px 0;
  }
  .ctaband h2{font-size:clamp(28px,4vw,42px);max-width:620px;margin:0 auto 18px;}
  .ctaband p{color:var(--ink-dim);margin-bottom:34px;}
  .ctaband .hero-btns{justify-content:center;}

  /* ===== FOOTER ===== */
  footer{padding:70px 0 34px;border-top:1px solid var(--line);}
  .foot-grid{display:grid;grid-template-columns:1.4fr repeat(4,1fr);gap:40px;margin-bottom:50px;}
  @media (max-width:800px){.foot-grid{grid-template-columns:repeat(2,1fr);}}
  .foot-grid h4{font-size:13px;text-transform:uppercase;letter-spacing:0.08em;color:var(--ink-dim);margin-bottom:16px;font-family:var(--mono);font-weight:500;}
  .foot-grid a{display:block;font-size:14.5px;color:var(--ink-dim);margin-bottom:11px;transition:color .2s;}
  .foot-grid a:hover{color:var(--ink);}
  .foot-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:26px;border-top:1px solid var(--line);flex-wrap:wrap;gap:14px;}
  .foot-bottom p{font-size:13px;color:var(--ink-dim);}
  .foot-social{display:flex;gap:16px;}
  .foot-social a{color:var(--ink-dim);}
  .foot-social a:hover{color:var(--cyan);}

  /* ===== MODALS ===== */
  .modal-overlay{
    position:fixed;inset:0;z-index:200;
    background:rgba(5,9,18,0.78);backdrop-filter:blur(6px);
    display:none;align-items:flex-start;justify-content:center;
    padding:70px 20px 60px;overflow-y:auto;
  }
  .modal-overlay.open{display:flex;}
  .modal{
    background:var(--navy-2);border:1px solid var(--line);border-radius:20px;
    max-width:720px;width:100%;padding:40px 40px 36px;position:relative;
    animation:modalIn .3s ease;
  }
  @keyframes modalIn{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:translateY(0);}}
  .modal-close{
    position:absolute;top:20px;right:20px;width:34px;height:34px;border-radius:9px;
    background:rgba(255,255,255,0.04);border:1px solid var(--line);
    display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--ink-dim);
    transition:color .2s,border-color .2s;
  }
  .modal-close:hover{color:var(--ink);border-color:var(--ink-dim);}
  .modal h3{font-size:24px;margin-bottom:8px;}
  .modal .modal-sub{color:var(--ink-dim);font-size:14.5px;margin-bottom:26px;}

  /* form fields */
  .field{margin-bottom:16px;}
  .field label{display:block;font-size:12.5px;font-family:var(--mono);color:var(--ink-dim);margin-bottom:7px;text-transform:uppercase;letter-spacing:0.05em;}
  .field input,.field select,.field textarea{
    width:100%;background:rgba(255,255,255,0.03);border:1px solid var(--line);
    border-radius:9px;padding:12px 14px;color:var(--ink);font-family:var(--body);font-size:14.5px;
    transition:border-color .2s;
  }
  .field input::placeholder,.field textarea::placeholder{color:#5c6b87;}
  .field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--cyan);}
  .field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
  @media (max-width:520px){.field-row{grid-template-columns:1fr;}}

  /* emergency quick-contact row */
  .em-contacts{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:28px;}
  @media (max-width:600px){.em-contacts{grid-template-columns:repeat(2,1fr);}}
  .em-contacts a{
    border:1px solid var(--line);border-radius:12px;padding:16px 12px;text-align:center;
    font-size:12.5px;font-weight:500;transition:border-color .2s,transform .2s;
  }
  .em-contacts a:hover{border-color:var(--red);transform:translateY(-3px);}
  .em-contacts a i{color:var(--red);margin:0 auto 8px;}

  .divider-label{
    display:flex;align-items:center;gap:12px;margin:26px 0 18px;
    font-family:var(--mono);font-size:11.5px;color:var(--ink-dim);text-transform:uppercase;letter-spacing:0.08em;
  }
  .divider-label::before,.divider-label::after{content:"";flex:1;height:1px;background:var(--line);}

  .checklist{display:flex;flex-direction:column;gap:9px;margin-bottom:6px;}
  .checklist div{display:flex;align-items:center;gap:10px;font-size:13.5px;color:var(--ink-dim);}
  .checklist i{color:var(--green);width:16px;flex-shrink:0;}

  .severity-table{width:100%;border-collapse:collapse;font-size:13px;margin-top:6px;}
  .severity-table th,.severity-table td{text-align:left;padding:9px 10px;border-bottom:1px solid var(--line);}
  .severity-table th{color:var(--ink-dim);font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:0.05em;}
  .sev-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:7px;}

  .modal-submit{width:100%;justify-content:center;margin-top:6px;}

  /* ===== FINDER WIZARD ===== */
  .finder-teaser{
    background:linear-gradient(135deg, rgba(37,99,235,0.14), rgba(0,212,255,0.06));
    border:1px solid rgba(0,212,255,0.25);border-radius:20px;
    padding:44px 40px;display:flex;align-items:center;justify-content:space-between;gap:30px;
    margin-top:22px;flex-wrap:wrap;
  }
  .finder-teaser .txt h3{font-size:22px;margin-bottom:8px;}
  .finder-teaser .txt p{color:var(--ink-dim);font-size:14.5px;max-width:440px;}

  .wizard-progress{display:flex;gap:6px;margin-bottom:28px;}
  .wizard-progress span{height:4px;flex:1;border-radius:100px;background:var(--line);transition:background .3s;}
  .wizard-progress span.active{background:var(--cyan);}
  .wiz-step{display:none;}
  .wiz-step.active{display:block;animation:modalIn .3s ease;}
  .wiz-options{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:6px;}
  @media (max-width:520px){.wiz-options{grid-template-columns:1fr;}}
  .wiz-opt{
    border:1px solid var(--line);border-radius:11px;padding:16px;cursor:pointer;
    font-size:14px;font-weight:500;transition:border-color .2s,background .2s;
    display:flex;align-items:center;gap:10px;
  }
  .wiz-opt:hover{border-color:rgba(0,212,255,0.4);}
  .wiz-opt.selected{border-color:var(--cyan);background:rgba(0,212,255,0.08);}
  .wiz-opt .chk{width:16px;height:16px;border-radius:5px;border:1.5px solid var(--ink-dim);flex-shrink:0;display:flex;align-items:center;justify-content:center;}
  .wiz-opt.selected .chk{border-color:var(--cyan);background:var(--cyan);}
  .wiz-opt.selected .chk i{width:11px;color:var(--navy);}
  .wiz-nav{display:flex;justify-content:space-between;margin-top:30px;gap:12px;}
  .wiz-result{background:rgba(255,255,255,0.03);border:1px solid var(--line);border-radius:14px;padding:22px;margin-top:6px;}
  .wiz-result h4{font-size:15px;margin-bottom:12px;color:var(--cyan);font-family:var(--mono);text-transform:uppercase;letter-spacing:0.04em;}
  .wiz-result ul{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px;}
  .wiz-result li{font-size:13px;border:1px solid var(--line);padding:6px 12px;border-radius:100px;color:var(--ink-dim);}
