*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }

    :root {
      --bg:      #05050a;
      --surf:    #0b0b14;
      --surf2:   #10101c;
      --acc:     #0e81ca;
      --acc-d:   #19cd76;
      --acc-l:   #16bec1;
      --txt:     #e6e8f0;
      --mute:    #6e7f92;
      --bdr:     rgba(255,255,255,0.07);
      --bdr-a:   rgba(45, 100, 134, 0.25);
      --px:      clamp(18px,5vw,80px);
    }

    html { scroll-behavior:smooth; }

    body {
      background: var(--bg);
      color: var(--txt);
      font-family: 'DM Sans', sans-serif;
      overflow-x: hidden;
      cursor: none;
    }
    @media (pointer:coarse){ body{ cursor:auto; } }

    a { text-decoration:none; color:inherit; }
    img { display:block; max-width:100%; }

    /* grain */
    body::after {
      content:'';
      position:fixed; inset:0;
      background:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='f'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23f)'/%3E%3C/svg%3E");
      opacity:.022; pointer-events:none; z-index:9000;
    }


    /*simbolos google material*/
    #icone-tam1{
      font-size: 14px;
      color: var(--acc-l);
    }
    #icone-tam2{
      font-size: 16px;
      color: var(--acc-l);
    }
    /*#icone-tam3{
      font-size: 14px;
      color: var(--acc-l);
    }*/
    #icone-tam4{
      font-size: 18px;
      color: var(--acc-l);
    }


    /* ─── CURSOR ─── */
    .cur,.cur-ring{
      position:fixed; border-radius:50%; pointer-events:none;
      z-index:9999; transform:translate(-50%,-50%);
    }
    .cur{ width:10px;height:10px; background:var(--acc); transition:transform .12s; }
    .cur-ring{
      width:34px;height:34px;
      border:1.5px solid var(--acc);
      opacity:.45;
      transition:width .25s,height .25s,opacity .25s;
    }
    .cur.big{ transform:translate(-50%,-50%) scale(2.2); }
    .cur-ring.big{ width:50px;height:50px;opacity:.22; }
    @media(pointer:coarse){ .cur,.cur-ring{ display:none; } }

    /* ─── MOBILE DRAWER ─── */
    .drawer{
      position:fixed; inset:0;
      background:rgba(5,5,10,.97);
      backdrop-filter:blur(20px);
      z-index:800;
      display:flex; flex-direction:column;
      align-items:center; justify-content:center;
      gap:8px;
      opacity:0; pointer-events:none;
      transition:opacity .3s;
    }
    .drawer.open{ opacity:1; pointer-events:all; }
    .drawer a{
      font-family:'Syne',sans-serif;
      font-size:clamp(1.8rem,7vw,2.6rem);
      font-weight:800; letter-spacing:-.02em;
      color:var(--txt); padding:8px 0;
      transition:color .2s;
    }
    .drawer a:hover{ color:var(--acc); }
    .drawer-close{
      position:absolute; top:20px; right:22px;
      background:none; border:none;
      color:var(--mute); font-size:2rem; cursor:pointer; line-height:1;
    }
    .drawer-cta{
      margin-top:18px !important;
      background:var(--acc) !important; color:#fff !important;
      font-size:.88rem !important; font-weight:700 !important;
      padding:13px 36px; letter-spacing:.08em;
    }

    /* ─── NAV ─── */
    nav{
      position:fixed; top:0; left:0; right:0;
      z-index:700; height:68px;
      display:flex; align-items:center; justify-content:space-between;
      padding:0 var(--px);
      background:rgba(5,5,10,.55);
      backdrop-filter:blur(22px);
      border-bottom:1px solid var(--bdr);
      transition:background .4s;
    }
    nav.scrolled{ background:rgba(5,5,10,.96); }

    .logo{
      display:flex; align-items:center; gap:10px;
      font-family:'Syne',sans-serif; font-weight:800;
      font-size:1.35rem; letter-spacing:-.02em;
    }
    .logo-hex{
      width:26px; height:26px;
      background:var(--acc);
      clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%);
      animation:hexbeat 3s ease-in-out infinite;
    }
    @keyframes hexbeat{
      0%,100%{ transform:scale(1); filter:drop-shadow(0 0 6px rgba(14,129,202,.4)); }
      50%    { transform:scale(1.12); filter:drop-shadow(0 0 16px rgba(14,129,202,.8)); }
    }

    .nav-links{ display:flex; gap:32px; list-style:none; }
    .nav-links a{
      font-size:.82rem; font-weight:500;
      letter-spacing:.07em; text-transform:uppercase;
      color:var(--mute); transition:color .2s;
    }
    .nav-links a:hover{ color:var(--acc); }

    .nav-btn{
      display:inline-flex; align-items:center;
      background:var(--acc); color:#fff;
      font-family:'Syne',sans-serif; font-weight:700;
      font-size:.75rem; letter-spacing:.1em; text-transform:uppercase;
      padding:9px 20px;
      clip-path:polygon(8px 0%,100% 0%,calc(100% - 8px) 100%,0% 100%);
      transition:box-shadow .25s, transform .25s;
    }
    .nav-btn:hover{ transform:translateY(-2px); box-shadow:0 0 22px rgba(14,129,202,.35); }

    .hamburger{
      display:none; flex-direction:column; gap:5px;
      cursor:pointer; background:none; border:none; padding:4px;
    }
    .hamburger span{
      display:block; width:24px; height:2px;
      background:var(--txt); border-radius:2px; transition:all .3s;
    }

    /* ─── HERO ─── */
    #home{
      min-height:100svh;
      display:flex; align-items:center; justify-content:center;
      padding:calc(68px + 60px) var(--px) 80px;
      position:relative; overflow:hidden;
    }
    #home::before{
      content:'';
      position:absolute; inset:0;
      background-image:
        linear-gradient(rgba(14,129,202,.04) 1px,transparent 1px),
        linear-gradient(90deg,rgba(14,129,202,.04) 1px,transparent 1px);
      background-size:56px 56px;
      animation:gridscroll 24s linear infinite;
    }
    @keyframes gridscroll{ to{ transform:translateY(56px); } }

    .hglow1{
      position:absolute; width:700px; height:700px; border-radius:50%;
      background:radial-gradient(circle,rgba(14,129,202,.13) 0%,transparent 65%);
      top:-180px; right:-180px;
      animation:fg 9s ease-in-out infinite;
    }
    .hglow2{
      position:absolute; width:450px; height:450px; border-radius:50%;
      background:radial-gradient(circle,rgba(10,98,160,.09) 0%,transparent 65%);
      bottom:-80px; left:-80px;
      animation:fg 12s ease-in-out infinite reverse;
    }
    @keyframes fg{ 0%,100%{transform:translate(0,0)} 50%{transform:translate(28px,-28px)} }

    .hero-inner{
      position:relative; z-index:2;
      max-width:1200px; width:100%;
      display:grid; grid-template-columns:1fr 1fr;
      gap:80px; align-items:center;
    }

    .hero-badge{
      display:inline-flex; align-items:center; gap:8px;
      background:rgba(14,129,202,.1); border:1px solid rgba(14,129,202,.25);
      color:var(--acc); font-size:.72rem; font-weight:500;
      letter-spacing:.13em; text-transform:uppercase;
      padding:6px 14px; margin-bottom:26px;
    }
    .hero-badge::before{
      content:''; width:6px; height:6px;
      background:var(--acc); border-radius:50%;
      animation:blink 1.6s ease-in-out infinite;
    }
    @keyframes blink{ 0%,100%{opacity:1} 50%{opacity:.15} }

    h1{
      font-family:'Syne',sans-serif; font-weight:800;
      font-size:clamp(2.8rem,5.5vw,5.2rem);
      line-height:1.0; letter-spacing:-.03em; margin-bottom:26px;
    }
    h1 em{ font-style:normal; color:var(--acc); }

    .hero-desc{
      font-size:clamp(.9rem,1.5vw,1.05rem);
      color:var(--mute); line-height:1.75;
      max-width:440px; margin-bottom:42px; font-weight:300;
    }

    .hbtns{ display:flex; gap:14px; flex-wrap:wrap; }

    .btn-s{
      display:inline-flex; align-items:center;
      background:var(--acc); color:#fff;
      font-family:'Syne',sans-serif; font-weight:700;
      font-size:.82rem; letter-spacing:.08em; text-transform:uppercase;
      padding:14px 30px;
      clip-path:polygon(10px 0%,100% 0%,calc(100% - 10px) 100%,0% 100%);
      transition:transform .25s,box-shadow .25s;
      position:relative; overflow:hidden;
    }
    .btn-s::after{
      content:''; position:absolute; inset:0;
      background:rgba(255,255,255,.15);
      transform:scaleX(0); transform-origin:left;
      transition:transform .3s;
    }
    .btn-s:hover{ transform:translateY(-3px); box-shadow:0 10px 40px rgba(14,129,202,.35); }
    .btn-s:hover::after{ transform:scaleX(1); }

    .btn-o{
      display:inline-flex; align-items:center;
      border:1px solid var(--bdr-a); color:var(--txt);
      font-family:'Syne',sans-serif; font-weight:600;
      font-size:.82rem; letter-spacing:.08em; text-transform:uppercase;
      padding:14px 30px;
      clip-path:polygon(10px 0%,100% 0%,calc(100% - 10px) 100%,0% 100%);
      transition:border-color .25s,color .25s,transform .25s;
    }
    .btn-o:hover{ border-color:var(--acc); color:var(--acc); transform:translateY(-3px); }

    /* Hero orbital */
    .hero-vis{
      display:flex; align-items:center; justify-content:center;
      position:relative; height:480px;
    }
    .ring{
      position:absolute; border-radius:50%;
      border:1px solid rgba(14,129,202,.14);
    }
    .r1{ width:240px;height:240px; animation:spin 18s linear infinite; }
    .r2{ width:360px;height:360px; animation:spin 28s linear infinite reverse; border-style:dashed; }
    .r3{ width:460px;height:460px; animation:spin 40s linear infinite; opacity:.5; }
    @keyframes spin{ to{transform:rotate(360deg)} }

    .rdot{
      position:absolute; border-radius:50%;
      top:-5px; left:50%; transform:translateX(-50%);
    }
    .rd1{ width:10px;height:10px; background:var(--acc); box-shadow:0 0 16px var(--acc); }
    .rd2{ width:8px;height:8px; background:var(--acc-l); box-shadow:0 0 14px var(--acc-l); }
    .rd3{ width:7px;height:7px; background:#60d8ff; box-shadow:0 0 12px #60d8ff; top:-3.5px; }

    .hex-core{
      position:relative; z-index:2;
      width:108px; height:108px;
      background:linear-gradient(135deg,var(--acc),var(--acc-d));
      clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%);
      display:flex; align-items:center; justify-content:center;
      font-family:'Syne',sans-serif; font-weight:800; font-size:1.5rem; color:#fff;
      animation:corepulse 3s ease-in-out infinite;
    }
    @keyframes corepulse{
      0%,100%{ filter:drop-shadow(0 0 18px rgba(14,129,202,.5)); transform:scale(1); }
      50%    { filter:drop-shadow(0 0 40px rgba(14,129,202,.85)); transform:scale(1.05); }
    }

    .chip{
      position:absolute;
      background:rgba(11,11,20,.92); border:1px solid var(--bdr);
      padding:8px 14px; font-size:.72rem; font-weight:500;
      color:var(--mute); white-space:nowrap; letter-spacing:.04em;
    }
    .chip b{ color:var(--acc); font-weight:600; }
    .ca{ top:50px; left:-10px; animation:fc 4s ease-in-out infinite; }
    .cb{ bottom:90px; right:-20px; animation:fc 5.5s ease-in-out infinite reverse; }
    .cc{ bottom:20px; left:30px; animation:fc 6.5s ease-in-out infinite; }
    @keyframes fc{ 0%,100%{transform:translateY(0)} 50%{transform:translateY(-10px)} }

    /* ─── STATS ─── */
    .stats{
      background:var(--surf); border-top:1px solid var(--bdr); border-bottom:1px solid var(--bdr);
      display:flex; flex-wrap:wrap; justify-content:center;
    }
    .stat{
      flex:1; min-width:150px; max-width:260px;
      padding:36px 20px; text-align:center; position:relative;
    }
    .stat:not(:last-child)::after{
      content:''; position:absolute;
      right:0; top:15%; bottom:15%; width:1px; background:var(--bdr);
    }
    .stat-n{
      font-family:'Syne',sans-serif; font-weight:800;
      font-size:clamp(2rem,3.5vw,2.8rem);
      color:var(--acc); letter-spacing:-.03em; line-height:1;
    }
    .stat-l{ font-size:.75rem; color:var(--mute); letter-spacing:.08em; text-transform:uppercase; margin-top:6px; }

    /* ─── SECTION SHARED ─── */
    .section{ padding:clamp(70px,10vw,120px) var(--px); }
    .wrap{ max-width:1200px; margin:0 auto; }

    .stag{
      display:inline-flex; align-items:center; gap:10px;
      font-size:.7rem; letter-spacing:.15em; text-transform:uppercase;
      color:var(--acc); font-weight:600; margin-bottom:18px;
    }
    .stag::before,.stag::after{
      content:''; width:28px; height:1px; background:var(--acc); opacity:.5;
    }

    h2{
      font-family:'Syne',sans-serif; font-weight:800;
      font-size:clamp(1.8rem,4vw,3rem);
      letter-spacing:-.03em; line-height:1.1; margin-bottom:18px;
    }
    h2 em{ font-style:normal; color:var(--acc); }

    .lead{
      font-size:clamp(.9rem,1.4vw,1.05rem);
      color:var(--mute); line-height:1.8; font-weight:300; max-width:560px;
    }

    /* ─── FEATURES ─── */
    #features{ background:var(--bg); }

    .feat-head{
      display:flex; justify-content:space-between; align-items:flex-end;
      gap:40px; margin-bottom:60px; flex-wrap:wrap;
    }

    .feat-grid{
      display:grid; grid-template-columns:repeat(2,1fr);
      gap:1px; background:var(--bdr); border:1px solid var(--bdr);
    }

    .fcard{
      background:var(--bg);
      padding:clamp(28px,4vw,50px) clamp(22px,3.5vw,44px);
      position:relative; overflow:hidden; transition:background .35s;
    }
    .fcard::before{
      content:''; position:absolute; inset:0;
      background:linear-gradient(135deg,rgba(14,129,202,.05) 0%,transparent 55%);
      opacity:0; transition:opacity .4s;
    }
    .fcard:hover{ background:rgba(14,129,202,.025); }
    .fcard:hover::before{ opacity:1; }
    .fcard:hover .fline{ width:100%; }

    .ficon{
      width:48px; height:48px;
      display:flex; align-items:center; justify-content:center;
      background:rgba(14,129,202,.09); border:1px solid rgba(14,129,202,.18);
      font-size:1.3rem; margin-bottom:26px;
    }
    .fnum{
      position:absolute;
      top:clamp(20px,3vw,44px); right:clamp(16px,3vw,44px);
      font-family:'Syne',sans-serif;
      font-size:clamp(3rem,5vw,4.5rem); font-weight:800;
      color:rgba(255,255,255,.03); line-height:1;
    }
    .ftitle{
      font-family:'Syne',sans-serif;
      font-size:clamp(1rem,1.5vw,1.2rem); font-weight:700; margin-bottom:10px;
    }
    .fdesc{ color:var(--mute); font-size:.88rem; line-height:1.7; font-weight:300; }
    .fline{
      position:absolute; bottom:0; left:0; height:2px; width:0;
      background:linear-gradient(90deg,var(--acc),var(--acc-l));
      transition:width .5s ease;
    }

    /* ─── SERVICES ─── */
    #services{ background:var(--surf); position:relative; overflow:hidden; }
    #services::before{
      content:''; position:absolute; top:-200px; right:-200px;
      width:500px; height:500px;
      background:radial-gradient(circle,rgba(14,129,202,.07) 0%,transparent 70%);
    }

    .svc-layout{
      display:grid; grid-template-columns:1fr 1.55fr;
      gap:80px; align-items:start;
    }

    .svc-tabs{ display:flex; flex-direction:column; gap:2px; margin-top:44px; }
    .svc-tab{
      display:flex; align-items:center; justify-content:space-between;
      padding:18px 22px; background:var(--bg); border:1px solid var(--bdr);
      cursor:pointer; transition:border-color .3s,background .3s;
    }
    .svc-tab.active,.svc-tab:hover{
      border-color:var(--bdr-a); background:rgba(14,129,202,.04);
    }
    .svc-tab-name{
      font-family:'Syne',sans-serif; font-weight:700;
      font-size:clamp(.9rem,1.3vw,1rem); transition:color .3s;
    }
    .svc-tab.active .svc-tab-name,
    .svc-tab:hover .svc-tab-name{ color:var(--acc); }
    .svc-arr{
      color:var(--acc); opacity:0;
      transform:translateX(-8px); transition:opacity .3s,transform .3s;
    }
    .svc-tab.active .svc-arr,
    .svc-tab:hover .svc-arr{ opacity:1; transform:translateX(0); }

    .svc-panel{ display:none; animation:fadein .4s ease; position:sticky; top:90px; }
    .svc-panel.active{ display:block; }
    @keyframes fadein{ from{opacity:0;transform:translateY(14px)} to{opacity:1;transform:translateY(0)} }

    .svc-big{
      font-family:'Syne',sans-serif;
      font-size:clamp(4rem,8vw,7rem); font-weight:800;
      color:rgba(14,129,202,.06); letter-spacing:-.05em;
      line-height:.9; margin-bottom:-24px; user-select:none;
    }
    .svc-panel h3{
      font-family:'Syne',sans-serif;
      font-size:clamp(1.5rem,2.5vw,2rem); font-weight:800;
      letter-spacing:-.02em; margin-bottom:16px;
    }
    .svc-panel p{ color:var(--mute); line-height:1.8; font-weight:300; margin-bottom:28px; font-size:.95rem; }
    .tags{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:32px; }
    .tag{
      background:rgba(14,129,202,.08); border:1px solid rgba(14,129,202,.18);
      color:var(--acc); font-size:.68rem; letter-spacing:.1em;
      text-transform:uppercase; padding:5px 12px; font-weight:600;
    }
    .svc-img{
      width:100%; aspect-ratio:16/9;
      background:var(--bg); border:1px solid var(--bdr);
      display:flex; align-items:center; justify-content:center;
      font-size:clamp(3.5rem,6vw,5.5rem); overflow:hidden;
    }
    .svc-img span{ animation:fc 4s ease-in-out infinite; }

    /* ─── ABOUT ─── */
    #about{ background:var(--bg); }

    .about-layout{
      display:grid; grid-template-columns:1fr 1fr;
      gap:clamp(40px,7vw,100px); align-items:center;
    }

    .avis{
      position:relative;
      height:clamp(300px,45vw,480px);
    }
    .acard{
      position:absolute; background:var(--surf);
      border:1px solid var(--bdr);
      padding:clamp(20px,3vw,32px);
    }
    .acard-m{
      inset:0 50px 90px 0;
      display:flex; flex-direction:column; justify-content:flex-end;
      background:linear-gradient(135deg,rgba(14,129,202,.06) 0%,transparent 55%);
      overflow:hidden;
    }
    .acard-m::before{
      content:'VIRION';
      position:absolute; top:16px; right:16px;
      font-family:'Syne',sans-serif;
      font-size:clamp(3rem,6vw,5.5rem); font-weight:800;
      color:rgba(14,129,202,.05); letter-spacing:-.05em; line-height:1;
    }
    .acard-m .tline{
      font-family:'Syne',sans-serif;
      font-size:clamp(1rem,2vw,1.45rem); font-weight:700;
      line-height:1.3; letter-spacing:-.02em;
    }
    .acard-m .sub{ color:var(--mute); font-size:.8rem; margin-top:6px; }
    .acard-s{
      bottom:0; right:0; left:100px;
      background:var(--acc); color:#fff;
    }
    .acard-s .row{ display:flex; gap:28px; }
    .acard-s .n{
      font-family:'Syne',sans-serif;
      font-size:clamp(1.4rem,2.5vw,2.2rem); font-weight:800; line-height:1;
    }
    .acard-s .l{ font-size:.72rem; opacity:.75; letter-spacing:.04em; margin-top:2px; }

    .atxt h2{ margin-bottom:20px; }
    .atxt p{ color:var(--mute); line-height:1.85; font-weight:300; margin-bottom:18px; font-size:.95rem; }
    .atxt p strong{ color:var(--txt); font-weight:500; }

    .vals{ display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:32px; }
    .val{ border-left:2px solid var(--acc); padding:12px 16px; background:rgba(14,129,202,.03); }
    .val strong{ display:block; font-family:'Syne',sans-serif; font-size:.88rem; font-weight:700; margin-bottom:3px; }
    .val span{ font-size:.78rem; color:var(--mute); }

    /* ─── CTA BAND ─── */
    .ctaband{
      background:var(--surf); border-top:1px solid var(--bdr); border-bottom:1px solid var(--bdr);
      padding:clamp(70px,10vw,110px) var(--px);
      text-align:center; position:relative; overflow:hidden;
    }
    .ctaband::before{
      content:''; position:absolute; top:50%; left:50%;
      transform:translate(-50%,-50%);
      width:700px; height:700px;
      background:radial-gradient(circle,rgba(14,129,202,.08) 0%,transparent 60%);
    }
    .ctaband .stag{ justify-content:center; position:relative; }
    .ctaband h2{ font-size:clamp(2rem,5vw,4.2rem); margin-bottom:18px; position:relative; }
    .ctaband p{ color:var(--mute); margin-bottom:42px; font-weight:300; font-size:clamp(.9rem,1.4vw,1.05rem); position:relative; }
    .ctaband .btn-s{ position:relative; font-size:.88rem; padding:16px 38px; }

    /* ─── CONTACT ─── */
    #contact{ background:var(--bg); }

    .clayout{
      display:grid; grid-template-columns:1fr 1.3fr;
      gap:clamp(40px,7vw,80px);
    }
    .cinfo h2{ margin-bottom:14px; }
    .cinfo > p{ color:var(--mute); font-weight:300; line-height:1.8; margin-bottom:44px; font-size:.95rem; }

    .citem{ display:flex; gap:16px; align-items:flex-start; margin-bottom:24px; }
    .cico{
      width:42px; height:42px; min-width:42px;
      background:rgba(14,129,202,.09); border:1px solid rgba(14,129,202,.18);
      display:flex; align-items:center; justify-content:center; font-size:1rem;
    }
    .ctxt strong{ display:block; font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; color:var(--acc); margin-bottom:3px; }
    .ctxt span{ color:var(--mute); font-size:.88rem; }

    .cform{
      background:var(--surf); border:1px solid var(--bdr);
      padding:clamp(24px,4vw,48px);
    }
    .fg{ margin-bottom:20px; }
    .fg label{ display:block; font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:var(--mute); margin-bottom:7px; font-weight:500; }
    .fg input,.fg select,.fg textarea{
      width:100%; background:var(--bg); border:1px solid var(--bdr);
      color:var(--txt); padding:13px 16px;
      font-family:'DM Sans',sans-serif; font-size:.9rem;
      outline:none; transition:border-color .25s,box-shadow .25s;
      -webkit-appearance:none; appearance:none;
    }
    .fg input:focus,.fg select:focus,.fg textarea:focus{
      border-color:rgba(14,129,202,.45);
      box-shadow:0 0 0 3px rgba(14,129,202,.07);
    }
    .fg select option{ background:var(--surf); }
    .fg textarea{ height:118px; resize:vertical; }
    .fgrow{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
    .fsub{
      width:100%; background:var(--acc); color:#fff; border:none;
      padding:15px; font-family:'Syne',sans-serif; font-weight:700;
      font-size:.85rem; letter-spacing:.08em; text-transform:uppercase;
      cursor:pointer; transition:transform .2s,box-shadow .2s;
    }
    .fsub:hover{ transform:translateY(-2px); box-shadow:0 10px 40px rgba(14,129,202,.3); }

    /* ─── FOOTER ─── */
    footer{
      background:var(--surf); border-top:1px solid var(--bdr);
      padding:clamp(44px,6vw,70px) var(--px) clamp(24px,3vw,36px);
    }
    .ftop{
      display:grid; grid-template-columns:1.5fr 1fr 1fr;
      gap:clamp(30px,5vw,60px); margin-bottom:50px;
    }
    .fbrand p{ color:var(--mute); font-size:.85rem; line-height:1.75; font-weight:300; margin-top:14px; max-width:280px; }
    .fcol h4{ font-family:'Syne',sans-serif; font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; color:var(--acc); margin-bottom:18px; }
    .fcol a{ display:block; color:var(--mute); font-size:.85rem; margin-bottom:9px; transition:color .2s; }
    .fcol a:hover{ color:var(--txt); }
    .fbot{
      display:flex; justify-content:space-between; align-items:center;
      flex-wrap:wrap; gap:12px; padding-top:28px; border-top:1px solid var(--bdr);
    }
    .fbot p,.fbot a{ color:var(--mute); font-size:.78rem; }
    .fbot a:hover{ color:var(--acc); }

    /* ─── SCROLL REVEAL ─── */
    .rev{ opacity:0; transform:translateY(28px); transition:opacity .65s ease,transform .65s ease; }
    .rev.in{ opacity:1; transform:translateY(0); }

    /* ══════════════════════════════════
       RESPONSIVE — LAPTOP ≤1199px
    ══════════════════════════════════ */
    @media(max-width:1199px){
      .hero-inner{ gap:52px; }
      .r3{ width:380px;height:380px; }
      .hero-vis{ height:400px; }
      .svc-layout{ gap:50px; }
      .about-layout{ gap:50px; }
      .clayout{ gap:48px; }
    }

    /* ══════════════════════════════════
       RESPONSIVE — TABLET ≤899px
    ══════════════════════════════════ */
    @media(max-width:899px){
      body{ cursor:auto; }
      .nav-links,.nav-btn{ display:none; }
      .hamburger{ display:flex; }

      /* hero */
      .hero-inner{ grid-template-columns:1fr; gap:50px; text-align:center; }
      .hero-badge{ margin-left:auto; margin-right:auto; }
      .hero-desc{ max-width:100%; margin-left:auto; margin-right:auto; }
      .hbtns{ justify-content:center; }
      .hero-vis{ order:-1; height:320px; }
      .r3{ display:none; }
      .chip{ display:none; }

      /* stats */
      .stat{ min-width:140px; }

      /* features */
      .feat-grid{ grid-template-columns:1fr; }
      .feat-head{ flex-direction:column; align-items:flex-start; }
      .feat-head .lead{ max-width:100%; }

      /* services */
      .svc-layout{ grid-template-columns:1fr; gap:40px; }
      .svc-panel{ position:static; }

      /* about */
      .about-layout{ grid-template-columns:1fr; }
      .avis{ height:280px; }

      /* contact */
      .clayout{ grid-template-columns:1fr; }

      /* footer */
      .ftop{ grid-template-columns:1fr 1fr; }
      .fbrand{ grid-column:1/-1; }
      .fbot{ flex-direction:column; text-align:center; }

      /* vals */
      .vals{ grid-template-columns:1fr 1fr; }

      /* cta */
      .ctaband h2{ font-size:clamp(1.8rem,5vw,3rem); }
    }

    /* ══════════════════════════════════
       RESPONSIVE — MOBILE ≤599px
    ══════════════════════════════════ */
    @media(max-width:599px){
      :root{ --px:18px; }

      #home{ padding-bottom:60px; min-height:100svh; }
      .hero-vis{ height:260px; }
      .r1{ width:170px;height:170px; }
      .r2{ width:270px;height:270px; }
      .hex-core{ width:84px;height:84px;font-size:1.1rem; }

      .hbtns{ flex-direction:column; }
      .btn-s,.btn-o{
        width:100%; justify-content:center;
        clip-path:none; text-align:center;
      }

      /* stats 2×2 */
      .stats{ flex-wrap:wrap; }
      .stat{ min-width:50%; max-width:50%; flex:0 0 50%; }
      .stat:nth-child(odd)::after{ display:none; }
      .stat:nth-child(1),
      .stat:nth-child(2){ border-bottom:1px solid var(--bdr); }

      /* features */
      .fcard{ padding:28px 20px; }

      /* services */
      .svc-big{ font-size:4.5rem; }
      .svc-panel{ position:static; }

      /* about */
      .avis{ height:250px; }
      .acard-m{ right:38px; bottom:74px; }
      .acard-s{ left:74px; }
      .acard-m .tline{ font-size:1rem; }
      .acard-s .n{ font-size:1.4rem; }

      /* vals */
      .vals{ grid-template-columns:1fr; }

      /* form */
      .fgrow{ grid-template-columns:1fr; gap:0; }

      /* footer */
      .ftop{ grid-template-columns:1fr; }
      .fbot{ flex-direction:column; text-align:center; }

      /* cta */
      .ctaband .btn-s{ width:100%; justify-content:center; clip-path:none; }

      /* nav-btn hidden on small */
      .nav-btn{ display:none; }
    }

    /* ══════════════════════════════════
       RESPONSIVE — SMALL PHONES ≤380px
    ══════════════════════════════════ */
    @media(max-width:380px){
      .hero-vis{ height:210px; }
      .r1{ width:140px;height:140px; }
      .r2{ width:220px;height:220px; }
      .hex-core{ width:68px;height:68px;font-size:.9rem; }
      h1{ font-size:2.3rem; }
    }

    /* ══════════════════════════════════
       RESPONSIVE — TV ≥1800px
    ══════════════════════════════════ */
    @media(min-width:1800px){
      :root{ --px:100px; }
      .wrap,.hero-inner{ max-width:1600px; }
      nav{ height:80px; }
      .hero-vis{ height:580px; }
      .r3{ width:540px;height:540px; }
    }