  :root{
    --black: #0a0a0a;
    --black-2: #141010;
    --accent: #2979ff;
    --accent-dim: #1a4fb0;
    --white: #f5f5f3;
    --grey: #8a8580;
    --line: rgba(245,245,243,0.12);
  }
  *{margin:0;padding:0;box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    background:var(--black);
    color:var(--white);
    font-family:'Barlow', sans-serif;
    overflow-x:hidden;
  }
  ::selection{background:var(--accent);color:var(--white);}

  h1,h2,h3, .display{
    font-family:'Archivo Black', sans-serif;
    text-transform:uppercase;
    letter-spacing:0.01em;
    line-height:1.2;
  }
  .eyebrow{
    font-family:'Barlow Condensed', sans-serif;
    text-transform:uppercase;
    letter-spacing:0.28em;
    font-size:12px;
    color:var(--grey);
    display:flex;
    align-items:center;
    gap:12px;
  }
  .eyebrow .slash{color:var(--accent); font-style:normal; font-family:'Barlow Condensed'; letter-spacing:0.1em;}

  a{color:inherit;text-decoration:none;}
  .wrap{max-width:1180px;margin:0 auto;padding:0 32px;}

  /* ---------- NAV ---------- */
  header{
    position:fixed;top:0;left:0;right:0;
    z-index:100;
    padding:22px 0;
    background:linear-gradient(180deg, rgba(10,10,10,0.9), rgba(10,10,10,0));
    transition:background .3s ease;
  }
  header .wrap{display:flex;align-items:center;justify-content:space-between;}
  .brand{display:flex;align-items:center;gap:12px;}
  .brand img{height:40px;width:auto;object-fit:contain;}
  .brand span{font-family:'Barlow Condensed';font-weight:700;letter-spacing:0.08em;font-size:18px;text-transform:uppercase;}
  .brand span b{color:var(--accent);}
  nav ul{list-style:none;display:flex;gap:36px;}
  nav a{
    font-family:'Barlow Condensed';
    font-size:14px;
    letter-spacing:0.12em;
    text-transform:uppercase;
    color:var(--white);
    opacity:0.8;
    position:relative;
    padding-bottom:4px;
  }
  nav a:hover{opacity:1;}
  nav a::after{
    content:"";position:absolute;left:0;bottom:0;height:2px;width:0;
    background:var(--accent);transition:width .25s ease;
  }
  nav a:hover::after{width:100%;}
  .nav-cta{
    display:flex;align-items:center;gap:8px;
    background:var(--accent);color:var(--white)!important;
    padding:10px 18px;
    font-family:'Barlow Condensed';font-weight:600;letter-spacing:0.08em;
    text-transform:uppercase;font-size:13px;
    clip-path:polygon(10px 0,100% 0,calc(100% - 10px) 100%,0 100%);
  }
  .nav-cta:hover{background:#4d94ff;}
  .nav-toggle{display:none;}

  /* ---------- HERO ---------- */
  .hero{
    position:relative;
    min-height:100vh;
    display:flex;align-items:center;
    padding-top:120px;
    background:
      radial-gradient(ellipse 90% 60% at 50% -10%, #0d1e3d 0%, #05070d 55%),
      #05070d;
    overflow:hidden;
  }
  .hero-grid-bg{
    position:absolute;inset:0;
    background-image:
      linear-gradient(rgba(77,148,255,0.06) 1px, transparent 1px),
      linear-gradient(90deg, rgba(77,148,255,0.06) 1px, transparent 1px);
    background-size:48px 48px;
    mask-image:radial-gradient(ellipse 80% 70% at 60% 30%, black 30%, transparent 75%);
    -webkit-mask-image:radial-gradient(ellipse 80% 70% at 60% 30%, black 30%, transparent 75%);
  }
  .hero-stars{position:absolute;inset:0;}
  .hero-star{position:absolute;background:#fff;border-radius:50%;}
  .hero-glow-1{position:absolute;top:-8%;right:8%;width:640px;height:640px;max-width:70vw;background:radial-gradient(circle, rgba(41,121,255,0.28), transparent 65%);}
  .hero-glow-2{position:absolute;top:30%;left:-10%;width:420px;height:420px;background:radial-gradient(circle, rgba(77,148,255,0.14), transparent 65%);filter:blur(4px);}
  .hero-scanline{position:absolute;left:0;right:0;height:140px;background:linear-gradient(to bottom, transparent, rgba(77,148,255,0.06), transparent);animation:hero-sweep 5s ease-in-out infinite;pointer-events:none;}
  @keyframes hero-sweep{ 0%{top:-140px;} 100%{top:100%;} }

  .hero-floor-wrap{position:absolute;bottom:0;left:0;right:0;height:340px;overflow:hidden;perspective:400px;perspective-origin:50% 0%;}
  .hero-floor{
    position:absolute;bottom:0;left:-50%;width:200%;height:600px;
    background-image:
      linear-gradient(rgba(77,148,255,0.5) 1.5px, transparent 1.5px),
      linear-gradient(90deg, rgba(77,148,255,0.5) 1.5px, transparent 1.5px);
    background-size:64px 64px;
    transform:rotateX(82deg);
    transform-origin:bottom;
    mask-image:linear-gradient(to top, black 0%, transparent 75%);
    -webkit-mask-image:linear-gradient(to top, black 0%, transparent 75%);
    animation:hero-floor-scroll 6s linear infinite;
    filter:blur(1.2px);
  }
  @keyframes hero-floor-scroll{ from{background-position:0 0;} to{background-position:0 64px;} }
  .hero-floor-glow{position:absolute;bottom:0;left:0;right:0;height:150px;background:linear-gradient(to top, rgba(41,121,255,0.35), transparent);}
  .hero-horizon{position:absolute;bottom:340px;left:0;right:0;height:2px;background:linear-gradient(90deg, transparent, rgba(120,180,255,0.9) 30%, rgba(180,220,255,1) 50%, rgba(120,180,255,0.9) 70%, transparent);box-shadow:0 0 24px 4px rgba(77,148,255,0.6);}
  .hero-vignette{position:absolute;inset:0;background:radial-gradient(ellipse 80% 70% at 50% 40%, transparent 45%, rgba(0,0,0,0.5) 100%);pointer-events:none;}
  .hero-grain{position:absolute;inset:0;opacity:0.05;pointer-events:none;
    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='120' height='120'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
  }
  .hero-particle{position:absolute;border-radius:50%;background:#7fb2ff;box-shadow:0 0 8px 2px rgba(127,178,255,0.8);animation:hero-drift linear infinite;}
  @keyframes hero-drift{ 0%{transform:translateY(0);opacity:0;} 10%{opacity:1;} 90%{opacity:1;} 100%{transform:translateY(-140px);opacity:0;} }

  .hero-chip{
    position:absolute;display:flex;align-items:center;gap:8px;
    padding:9px 16px;border-radius:30px;
    background:rgba(15,25,50,0.55);border:1px solid rgba(120,180,255,0.35);
    backdrop-filter:blur(10px);
    font-family:'Barlow Condensed';font-weight:600;font-size:12.5px;letter-spacing:0.05em;color:#cfe0ff;
    box-shadow:0 10px 30px rgba(0,0,0,0.4), 0 0 20px rgba(41,121,255,0.2);
    animation:hero-chip-bob 4s ease-in-out infinite;
    z-index:6;white-space:nowrap;
  }
  .hero-chip .led{width:7px;height:7px;border-radius:50%;background:#4ade80;box-shadow:0 0 10px #4ade80;flex:none;}
  @keyframes hero-chip-bob{ 0%,100%{transform:translateY(0);} 50%{transform:translateY(-10px);} }

  .hero-3d-scene{position:absolute;perspective:600px;z-index:3;pointer-events:none;}
  .hero-cube-scene{top:130px;right:9%;width:90px;height:90px;}
  .hero-cube{position:relative;width:90px;height:90px;transform-style:preserve-3d;animation:hero-spin3d 14s linear infinite;}
  .hero-cube-face{position:absolute;width:90px;height:90px;border:1px solid rgba(77,148,255,0.8);background:rgba(41,121,255,0.06);box-shadow:inset 0 0 20px rgba(77,148,255,0.25);}
  .hcf-front{transform:translateZ(45px);}
  .hcf-back{transform:translateZ(-45px) rotateY(180deg);}
  .hcf-right{transform:rotateY(90deg) translateZ(45px);}
  .hcf-left{transform:rotateY(-90deg) translateZ(45px);}
  .hcf-top{transform:rotateX(90deg) translateZ(45px);}
  .hcf-bottom{transform:rotateX(-90deg) translateZ(45px);}
  @keyframes hero-spin3d{ from{transform:rotateX(0) rotateY(0);} to{transform:rotateX(360deg) rotateY(360deg);} }

  .hero-diamond-scene{top:460px;left:6%;width:56px;height:56px;}
  .hero-diamond{position:relative;width:56px;height:56px;transform-style:preserve-3d;animation:hero-spin2 10s linear infinite;}
  .hero-df{position:absolute;width:56px;height:56px;border:1px solid rgba(41,121,255,0.7);background:rgba(41,121,255,0.05);}
  .hdf-a{transform:translateZ(28px);}
  .hdf-b{transform:translateZ(-28px) rotateY(180deg);}
  .hdf-c{transform:rotateY(90deg) translateZ(28px);}
  .hdf-d{transform:rotateY(-90deg) translateZ(28px);}
  @keyframes hero-spin2{ from{transform:rotateY(0) rotateZ(0);} to{transform:rotateY(360deg) rotateZ(360deg);} }

  .hero-gyro-scene{top:520px;right:19%;width:76px;height:76px;}
  .hero-gyro{position:relative;width:76px;height:76px;transform-style:preserve-3d;animation:hero-gyro-spin 9s linear infinite;}
  .hero-ring{position:absolute;inset:0;border:1.5px solid rgba(77,148,255,0.75);border-radius:50%;}
  .hero-ring-1{transform:rotateX(0deg);}
  .hero-ring-2{transform:rotateX(60deg);}
  .hero-ring-3{transform:rotateX(120deg);}
  @keyframes hero-gyro-spin{ from{transform:rotateY(0) rotateZ(0);} to{transform:rotateY(360deg) rotateZ(20deg);} }

  .hero-trace{position:absolute;pointer-events:none;z-index:2;}
  .hero-trace-line{stroke:rgba(41,121,255,0.5);stroke-width:1.5;fill:none;}
  .hero-trace-node{fill:#05070d;stroke:rgba(77,148,255,0.9);stroke-width:2;}
  .hero-trace-node.filled{fill:#4d94ff;stroke:none;}
  .hero-trace-dot{fill:rgba(41,121,255,0.7);}
  @keyframes hero-pulse-node{0%,100%{opacity:0.35;}50%{opacity:1;}}
  .hero-pulse{animation:hero-pulse-node 2.2s ease-in-out infinite;}

  .hpfar{transition:transform 0.6s cubic-bezier(0.16,1,0.3,1);will-change:transform;}
  .hpmid{transition:transform 0.4s cubic-bezier(0.16,1,0.3,1);will-change:transform;}
  .hpnear{transition:transform 0.25s cubic-bezier(0.16,1,0.3,1);will-change:transform;}
  .hero-grid{
    display:grid;grid-template-columns:1.05fr 0.95fr;gap:40px;align-items:center;width:100%;
    position:relative;z-index:2;
  }
  .hero-mock-scene{position:relative;perspective:1600px;animation:hero-mockbob 5s ease-in-out infinite;}
  @keyframes hero-mockbob{ 0%,100%{transform:translateY(0);} 50%{transform:translateY(-8px);} }
  .hero-mock{position:relative;display:block;text-decoration:none;cursor:pointer;}
  .hero-mock:hover .browser-mock{transform:rotate(0deg) scale(1.015);}
  .hero-mock:hover .browser-mock img{filter:brightness(1.06);}
  .hero-mock:hover .hero-mock-tag{color:var(--accent);}
  .hero-mock .browser-mock{
    border:1px solid rgba(77,148,255,0.4);
    box-shadow:
      0 0 0 1px rgba(77,148,255,0.15),
      0 30px 60px rgba(0,0,0,0.65),
      40px 50px 90px rgba(41,121,255,0.18),
      0 0 80px rgba(41,121,255,0.22);
  }
  .browser-mock{
    border-radius:10px;overflow:hidden;
    border:1px solid var(--line);
    box-shadow:0 40px 100px rgba(0,0,0,0.55);
    background:#141010;
    transform:rotate(1.2deg);
    transition:transform .25s ease;
  }
  .browser-mock-bar{
    display:flex;align-items:center;gap:6px;
    padding:10px 14px;background:#1c1816;
  }
  .browser-mock-bar>span{width:9px;height:9px;border-radius:50%;background:#4a4441;flex:none;}
  .browser-mock-bar>span:nth-child(1){background:#e3564a;}
  .browser-mock-bar>span:nth-child(2){background:#e3b23c;}
  .browser-mock-bar>span:nth-child(3){background:#5db06a;}
  .browser-mock-url{
    margin-left:10px;flex:1;
    background:#0f0d0c;color:var(--grey);
    font-family:'Barlow Condensed';font-size:11px;letter-spacing:0.03em;
    padding:5px 10px;border-radius:4px;
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  }
  .browser-mock img{
    display:block;width:100%;height:auto;
    -webkit-mask-image:linear-gradient(to bottom, black 82%, transparent 100%);
    mask-image:linear-gradient(to bottom, black 82%, transparent 100%);
    transition:filter .25s ease;
  }
  .hero-mock-tag{
    display:inline-block;margin-top:18px;
    font-family:'Barlow Condensed';text-transform:uppercase;letter-spacing:0.08em;font-size:12px;
    color:var(--grey);
    transition:color .2s ease;
  }
  .hero-mock-tag::before{content:"— ";color:var(--accent);}
  .hero .eyebrow{margin-bottom:22px;display:flex;align-items:center;gap:8px;}
  .hero .eyebrow .dot-accent{width:6px;height:6px;border-radius:50%;background:#4d94ff;box-shadow:0 0 12px #4d94ff;flex:none;}
  .hero h1{
    font-size:clamp(32px, 4.4vw, 62px);
    color:var(--white);
    text-shadow:0 2px 30px rgba(0,0,0,0.6);
    position:relative;z-index:5;
  }
  .hero h1 br{content:"";display:block;margin-top:36px;}
  .hero h1 em{
    font-style:normal;
    background:linear-gradient(90deg,#8fc1ff,#4d94ff 45%,#1a5fd6);
    -webkit-background-clip:text;background-clip:text;color:transparent;
    filter:drop-shadow(0 0 26px rgba(77,148,255,0.75));
  }
  .hero p.lede{
    margin-top:26px;
    max-width:480px;
    font-family:'Barlow Condensed', sans-serif;
    font-weight:600;
    text-transform:uppercase;
    letter-spacing:0.03em;
    font-size:16px;
    line-height:1.55;
    color:#c9c6c2;
  }
  .hero-ctas{margin-top:40px;display:flex;gap:16px;flex-wrap:wrap;align-items:center;}
  .btn-primary{
    background:var(--accent);color:var(--white);
    padding:16px 30px;
    font-family:'Barlow Condensed';font-weight:600;font-size:15px;letter-spacing:0.1em;text-transform:uppercase;
    clip-path:polygon(14px 0,100% 0,calc(100% - 14px) 100%,0 100%);
    display:inline-flex;align-items:center;gap:10px;
    transition:transform .2s ease, background .2s ease;
  }
  .btn-primary:hover{background:#4d94ff;transform:translateX(2px);}
  .btn-primary:active{transform:translateY(2px) scale(0.98);}
  .btn-secondary{
    padding:16px 26px;
    border:1px solid var(--line);
    font-family:'Barlow Condensed';font-weight:600;font-size:15px;letter-spacing:0.1em;text-transform:uppercase;
    display:inline-flex;align-items:center;gap:8px;
    transition:border-color .2s ease, color .2s ease;
  }
  .btn-secondary:hover{border-color:var(--accent);color:var(--accent);}
  .btn-secondary:active{transform:translateY(2px);}

  .stat-row{
    margin-top:64px;
    display:flex;gap:50px;
    padding-top:30px;
    border-top:1px solid var(--line);
    flex-wrap:wrap;
  }
  .stat-row div span{
    display:block;font-family:'Archivo Black';font-size:34px;color:var(--accent);
  }
  .stat-row div small{
    font-family:'Barlow Condensed';letter-spacing:0.1em;text-transform:uppercase;color:var(--grey);font-size:12px;
  }

  /* ---------- SECTION DIVIDER (signature) ---------- */
  .slash-divider{
    height:64px;position:relative;
    background:var(--black);
  }
  .slash-divider svg{width:100%;height:100%;display:block;}

  section{position:relative;}
  .section-pad{padding:120px 0;}
  .section-alt{background:var(--black-2);}

  .section-head{
    display:flex;justify-content:space-between;align-items:flex-end;
    gap:24px;flex-wrap:wrap;
    margin-bottom:60px;
  }
  .section-head h2{font-size:clamp(34px, 4vw, 56px);}
  .section-head h2 br{content:"";display:block;margin-top:8px;}
  .cta-band h2 br{content:"";display:block;margin-top:14px;}
  .section-head p{max-width:380px;color:var(--grey);font-size:15px;line-height:1.6;}

  /* ---------- SOBRE ---------- */
  .about-grid{
    display:grid;grid-template-columns:0.9fr 1.1fr;gap:70px;align-items:center;
  }
  .about-mark{
    opacity:0.3;
    display:flex;align-items:center;justify-content:center;
  }
  .about-mark img{width:100%;max-width:480px;height:auto;object-fit:contain;}
  .about-text p{
    color:#c9c6c2;font-size:16.5px;line-height:1.75;margin-bottom:18px;max-width:520px;
  }
  .about-text p:last-child{margin-bottom:0;}
  .about-text strong{color:var(--white);}
  .about-tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px;}
  .about-tags span{
    font-family:'Barlow Condensed';text-transform:uppercase;letter-spacing:0.08em;font-size:12.5px;
    border:1px solid var(--line);padding:8px 16px;color:var(--grey);
  }
  @media (max-width:880px){
    .about-grid{grid-template-columns:1fr;gap:20px;}
    .about-mark{display:none;}
  }

  /* ---------- SERVICES ---------- */
  .services-grid{
    display:grid;grid-template-columns:repeat(4,1fr);gap:1px;
    background:var(--line);
    border:1px solid var(--line);
  }
  .service-card{
    background:var(--black);
    padding:40px 34px;
    transition:background .25s ease;
  }
  .service-card:hover{background:var(--black-2);}
  .card-icon{margin-bottom:18px;color:var(--accent);}
  .card-icon svg{width:30px;height:30px;display:block;}
  .service-num{
    font-family:'Barlow Condensed';color:var(--accent);font-weight:700;letter-spacing:0.1em;font-size:13px;margin-bottom:22px;display:block;
  }
  .service-card h3{font-size:26px;margin-bottom:14px;}
  .service-card p{color:var(--grey);font-size:14.5px;line-height:1.65;}

  /* ---------- DIFERENCIAIS ---------- */
  .diff-grid{
    display:grid;grid-template-columns:repeat(3,1fr);gap:1px;
    background:var(--line);
    border:1px solid var(--line);
  }
  .diff-card{
    background:var(--black);
    padding:36px 32px;
    transition:background .25s ease;
  }
  .diff-card:hover{background:var(--black-2);}

  /* light section variant */
  .section-light{background:var(--white);color:var(--black);}
  .section-light .section-head h2{color:var(--black);}
  .section-light .section-head p{color:#5a564f;}
  .section-light .diff-grid{background:#e4e0d8;border-color:#e4e0d8;}
  .section-light .diff-card{background:var(--white);}
  .section-light .diff-card:hover{background:#f5f2ea;}
  .section-light .diff-card h3{color:var(--black);}
  .section-light .diff-card p{color:#5a564f;}
  .diff-num{
    font-family:'Barlow Condensed';color:var(--accent);font-weight:700;letter-spacing:0.1em;font-size:13px;margin-bottom:18px;display:block;
  }
  .diff-card h3{font-size:19px;margin-bottom:10px;}
  .diff-card p{color:var(--grey);font-size:14px;line-height:1.6;}
  @media (max-width:880px){
    .diff-grid{grid-template-columns:1fr 1fr;}
  }
  @media (max-width:520px){
    .diff-grid{grid-template-columns:1fr;}
  }

  /* ---------- PORTFOLIO ---------- */
  .filter-bar{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:36px;}
  .filter-btn{
    font-family:'Barlow Condensed';text-transform:uppercase;letter-spacing:0.08em;font-size:13px;
    padding:9px 18px;border:1px solid var(--line);color:var(--grey);
    background:transparent;cursor:pointer;
    clip-path:polygon(8px 0,100% 0,calc(100% - 8px) 100%,0 100%);
    transition:background .2s ease, border-color .2s ease, color .2s ease;
  }
  .filter-btn:hover{border-color:var(--accent);color:var(--white);}
  .filter-btn.is-active{background:var(--accent);border-color:var(--accent);color:var(--white);}
  .p-card.is-hidden{display:none;}
  .portfolio-grid{
    display:grid;grid-template-columns:repeat(3,1fr);gap:24px;
  }
  .p-card{
    position:relative;
    aspect-ratio:4/5;
    transform:perspective(900px) rotateX(0) rotateY(0);
    will-change:transform;
    overflow:hidden;
    clip-path:polygon(0 0, 100% 0, 100% calc(100% - 24px), calc(100% - 24px) 100%, 0 100%);
    display:flex;flex-direction:column;justify-content:flex-end;
    padding:26px;
    border:1px solid var(--line);
    background:#000;
    cursor:pointer;
  }
  .p-card .bg{
    position:absolute;inset:0;
    width:100%;height:100%;
    object-fit:cover;
    object-position:top center;
    filter:saturate(0.9) contrast(1.05);
    transition:transform .5s ease;
  }
  .p-card:hover .bg{transform:scale(1.08);}
  .p-card::after{
    content:"";position:absolute;inset:0;
    background:linear-gradient(180deg, rgba(10,10,10,0) 35%, rgba(10,10,10,0.94) 100%);
  }
  .p-card .content{position:relative;z-index:2;}
  .p-card .tag{
    font-family:'Barlow Condensed';color:var(--accent);text-transform:uppercase;letter-spacing:0.14em;font-size:12px;margin-bottom:8px;display:block;
  }
  .p-card h3{font-size:22px;}

  /* ---------- PROCESS ---------- */
  .process-list{border-top:1px solid var(--line);}
  .process-item{
    display:grid;grid-template-columns:100px 1fr 1fr;gap:24px;
    padding:34px 0;
    border-bottom:1px solid var(--line);
    align-items:start;
  }
  .process-item .pnum{font-family:'Archivo Black';font-size:36px;color:var(--accent);}
  .process-item h3{font-size:22px;margin-bottom:8px;}
  .process-item p{color:var(--grey);font-size:14.5px;line-height:1.6;}

  /* ---------- CONTACT / CTA ---------- */
  .cta-band{
    position:relative;
    padding:130px 0;
    background:var(--black-2);
    text-align:center;
    overflow:hidden;
  }
  .cta-band .slashes-bg{
    position:absolute;inset:0;
    background:repeating-linear-gradient(
      65deg, transparent 0 70px, rgba(41,121,255,0.06) 70px 76px, transparent 76px 146px
    );
  }
  .cta-band .inner{position:relative;z-index:2;}
  .cta-band .eyebrow{justify-content:center;margin-bottom:20px;}
  .cta-band h2{font-size:clamp(38px,6vw,74px);margin-bottom:24px;line-height:1.28;}
  .cta-band p{color:var(--grey);max-width:460px;margin:0 auto 40px;font-size:16px;line-height:1.6;}

  .chat-mock{
    max-width:340px;margin:0 auto 40px;
    background:var(--black);
    border:1px solid var(--line);
    border-radius:14px;
    padding:16px;
    text-align:left;
  }
  .chat-mock-head{
    display:flex;align-items:center;gap:8px;
    font-family:'Barlow Condensed';font-weight:600;letter-spacing:0.04em;
    font-size:13px;color:var(--white);
    padding-bottom:12px;margin-bottom:12px;
    border-bottom:1px solid var(--line);
  }
  .chat-dot{width:8px;height:8px;border-radius:50%;background:#34d399;display:inline-block;}
  .chat-status{margin-left:auto;color:var(--grey);font-size:11px;text-transform:uppercase;}
  .chat-bubble{
    max-width:82%;
    padding:10px 14px;
    border-radius:14px;
    font-family:'Barlow', sans-serif;
    font-size:13.5px;line-height:1.45;
    margin-bottom:10px;
  }
  .chat-bubble:last-child{margin-bottom:0;}
  .chat-bubble.chat-in{background:var(--black-2);color:#e8e6e2;border-bottom-left-radius:4px;}
  .chat-bubble.chat-out{background:var(--accent);color:var(--white);margin-left:auto;border-bottom-right-radius:4px;}

  /* ---------- FAQ ---------- */
  .faq-list{max-width:760px;border-top:1px solid var(--line);}
  .faq-item{border-bottom:1px solid var(--line);padding:22px 0;}
  .faq-item summary{
    cursor:pointer;
    list-style:none;
    display:flex;align-items:center;justify-content:space-between;gap:20px;
    font-family:'Barlow Condensed';font-weight:600;font-size:17px;
    color:var(--white);
  }
  .faq-item summary::-webkit-details-marker{display:none;}
  .faq-item summary::after{
    content:"+";
    flex-shrink:0;
    width:26px;height:26px;
    display:flex;align-items:center;justify-content:center;
    border:1px solid var(--line);
    color:var(--accent);
    font-size:18px;
    transition:transform .2s ease;
  }
  .faq-item[open] summary::after{content:"–";}
  .faq-item p{color:var(--grey);font-size:14.5px;line-height:1.65;margin-top:14px;max-width:640px;}
  .form-divider{margin:36px auto 0;color:var(--grey);font-family:'Barlow Condensed';text-transform:uppercase;letter-spacing:0.1em;font-size:13px;max-width:480px;}
  .contact-form{max-width:480px;margin:24px auto 0;text-align:left;}
  .contact-form .form-row{display:flex;gap:14px;flex-wrap:wrap;}
  .contact-form .form-row > *{flex:1;min-width:180px;}
  .contact-form input, .contact-form select, .contact-form textarea{
    width:100%;background:var(--black-2);border:1px solid var(--line);color:var(--white);
    padding:13px 16px;font-family:'Barlow', sans-serif;font-size:14px;margin-bottom:14px;
  }
  .contact-form input::placeholder, .contact-form textarea::placeholder{color:var(--grey);}
  .contact-form select{color:var(--grey);}
  .contact-form textarea{resize:vertical;min-height:100px;}
  .contact-form button{width:100%;justify-content:center;border:none;cursor:pointer;font-size:15px;}
  .hp-field{position:absolute;left:-9999px;}
  .form-success{max-width:480px;margin:24px auto 0;padding:18px 20px;border:1px solid var(--accent);color:var(--white);font-family:'Barlow Condensed';text-transform:uppercase;letter-spacing:0.05em;font-size:14px;}

  footer{
    padding:50px 0 40px;
    border-top:1px solid var(--line);
  }
  footer .wrap{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:20px;}
  footer .brand span{font-size:15px;}
  footer .fnote{font-family:'Barlow Condensed';color:var(--grey);font-size:13px;letter-spacing:0.05em;}
  footer .fsocial{display:flex;gap:22px;}
  footer .fsocial a{font-family:'Barlow Condensed';text-transform:uppercase;font-size:13px;letter-spacing:0.1em;color:var(--grey);display:inline-flex;align-items:center;gap:7px;}
  .fsocial svg{width:16px;height:16px;fill:currentColor;}
  footer .fsocial a:hover{color:var(--accent);}

  /* whatsapp float — aurora badge */
  .wa-float{
    position:fixed;bottom:28px;right:28px;z-index:200;
    width:60px;height:60px;
    display:flex;align-items:center;justify-content:center;
    transition:transform .2s ease;
    animation:wa-bounce 5s ease-in-out infinite;
  }
  .wa-aurora{
    position:absolute;inset:0;border-radius:50%;
    background:conic-gradient(from 0deg, #4d94ff, #4ade80, #4d94ff, #1a3a7a, #4d94ff);
    animation:wa-spin 4s linear infinite;
    box-shadow:0 8px 26px rgba(41,121,255,0.45);
  }
  .wa-float::before{
    content:"";
    position:absolute;inset:4px;border-radius:50%;
    animation:wa-breathe 2.6s ease-in-out infinite;
    pointer-events:none;
  }
  .wa-badge{
    position:absolute;inset:4px;border-radius:50%;
    background:linear-gradient(160deg, rgba(28,44,78,0.95), rgba(10,16,30,0.97));
    display:flex;align-items:center;justify-content:center;
    box-shadow:inset 0 1px 0 rgba(255,255,255,0.14);
  }
  .wa-led{
    position:absolute;top:-3px;right:-3px;
    width:15px;height:15px;
    background:#25D366;
    border:2px solid var(--black);
    border-radius:50%;
    box-shadow:0 0 10px rgba(37,211,102,0.7);
    z-index:2;
  }
  @keyframes wa-breathe{
    0%,100%{box-shadow:0 0 0 0 rgba(77,148,255,0.45);}
    50%{box-shadow:0 0 0 14px rgba(77,148,255,0);}
  }
  @keyframes wa-spin{ from{transform:rotate(0);} to{transform:rotate(360deg);} }
  @keyframes wa-bounce{
    0%, 78%, 100%{transform:translateY(0);}
    83%{transform:translateY(-12px);}
    88%{transform:translateY(0);}
    92%{transform:translateY(-6px);}
    96%{transform:translateY(0);}
  }
  .wa-float:hover{transform:scale(1.08);animation-play-state:paused;}
  .wa-float svg{width:26px;height:26px;fill:#4ade80;filter:drop-shadow(0 0 8px rgba(74,222,128,0.6));position:relative;z-index:1;}

  @media (max-width: 880px){
    nav{position:relative;}
    .nav-toggle{
      display:flex;flex-direction:column;justify-content:center;gap:5px;
      width:32px;height:32px;
      background:none;border:none;cursor:pointer;padding:0;
    }
    .nav-toggle span{display:block;width:100%;height:2px;background:var(--white);transition:transform .25s ease, opacity .25s ease;}
    .nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg);}
    .nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;}
    .nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
    nav ul{
      display:none;
      flex-direction:column;
      position:absolute;top:calc(100% + 16px);right:0;
      min-width:220px;
      background:var(--black-2);
      border:1px solid var(--line);
      padding:6px 0;
      gap:0;
      z-index:150;
    }
    nav.is-open ul{display:flex;}
    nav ul li{border-bottom:1px solid var(--line);}
    nav ul li:last-child{border-bottom:none;}
    nav ul a{display:block;padding:14px 24px;}
    nav ul a::after{display:none;}
    .hero-grid{grid-template-columns:1fr;}
    .hero-3d-scene{display:none;}
    .hero-floor-wrap{height:200px;}
    .hero-horizon{bottom:200px;}
    .hero-chip{font-size:11px;padding:7px 12px;left:auto!important;right:auto!important;}
    .hero-chip:first-of-type{top:-18px!important;left:6px!important;}
    .hero-chip:last-of-type{bottom:20px!important;right:6px!important;}
    .hero-mock-scene{max-width:440px;margin:40px auto 0;}
    .hero-mock{max-width:440px;margin:0 auto;}
    .browser-mock{transform:rotate(0.6deg);}
    .services-grid{grid-template-columns:repeat(2,1fr);}
    .portfolio-grid{grid-template-columns:1fr 1fr;}
    .process-item{grid-template-columns:60px 1fr;}
    .process-item p{grid-column:1/-1;}
    .stat-row{gap:30px;}
  }
  @media (max-width: 520px){
    .portfolio-grid{grid-template-columns:1fr;}
    .wrap{padding:0 20px;}
  }

  /* ---------- STARFIELD ---------- */
  .starfield{
    position:fixed;inset:0;
    z-index:0;
    pointer-events:none;
    overflow:hidden;
  }
  .star{
    position:absolute;
    border-radius:50%;
    background:#f5f5f3;
    box-shadow:0 0 6px 1px rgba(245,245,243,0.85), 0 0 2px rgba(255,255,255,0.9);
    animation:twinkle 5s ease-in-out infinite;
  }
  @keyframes twinkle{
    0%,100%{opacity:var(--star-op,0.5);}
    50%{opacity:0.05;}
  }

  /* ---------- SCROLL REVEAL ---------- */
  .reveal{
    opacity:0;
    transform:translateY(28px);
    transition:opacity .7s ease, transform .7s ease;
  }
  .reveal.is-visible{opacity:1;transform:translateY(0);}
  .reveal-fade{
    opacity:0;
    transition:opacity .6s ease;
  }
  .reveal-fade.is-visible{opacity:1;}

  @media (prefers-reduced-motion: reduce){
    *{transition:none!important;}
    .reveal, .reveal-fade{opacity:1;transform:none;}
    .star{animation:none;opacity:0.25;}
    .hero-star, .hero-particle, .hero-scanline, .hero-floor, .hero-cube, .hero-diamond, .hero-gyro, .hero-chip, .hero-pulse{animation:none;}
    .wa-float{animation:none;}
    .wa-float::before{animation:none;box-shadow:none;}
    .wa-aurora{animation:none;}
  }

  :focus-visible{outline:2px solid var(--accent);outline-offset:3px;}

  /* ---------- LIGHTBOX ---------- */
  .lightbox{
    position:fixed;inset:0;z-index:500;
    background:rgba(6,5,5,0.94);
    display:none;
    align-items:center;justify-content:center;
    padding:40px;
    opacity:0;
    transition:opacity .25s ease;
  }
  .lightbox.is-open{display:flex;opacity:1;}
  .lightbox-inner{
    position:relative;
    max-width:900px;width:100%;
    max-height:88vh;
    display:flex;flex-direction:column;align-items:center;
    transform:scale(0.96);
    transition:transform .25s ease;
  }
  .lightbox.is-open .lightbox-inner{transform:scale(1);}
  .lightbox-inner img{
    max-width:100%;max-height:78vh;
    object-fit:contain;
    clip-path:polygon(0 0, 100% 0, 100% calc(100% - 20px), calc(100% - 20px) 100%, 0 100%);
    border:1px solid var(--line);
  }
  .lightbox-caption{
    margin-top:18px;text-align:center;
  }
  .lightbox-caption .tag{
    font-family:'Barlow Condensed';color:var(--accent);text-transform:uppercase;letter-spacing:0.14em;font-size:12px;display:block;margin-bottom:6px;
  }
  .lightbox-caption h3{font-family:'Archivo Black';font-size:22px;text-transform:uppercase;}
  .lightbox-close{
    position:absolute;top:-18px;right:-18px;
    width:44px;height:44px;
    background:var(--accent);
    display:flex;align-items:center;justify-content:center;
    clip-path:polygon(10px 0,100% 0,calc(100% - 10px) 100%,0 100%);
    font-family:'Barlow Condensed';font-size:22px;font-weight:700;
    cursor:pointer;
    border:none;color:var(--white);
  }
  .lightbox-close:hover{background:#4d94ff;}
  @media (max-width:640px){
    .lightbox{padding:20px;}
    .lightbox-close{top:-14px;right:-6px;width:38px;height:38px;font-size:18px;}
  }

  /* ---------- PROJECT PAGE ---------- */
  .project-hero{padding:150px 0 60px;}
  .badge-demo{
    display:inline-block;background:var(--accent-dim);color:var(--white);
    font-family:'Barlow Condensed';text-transform:uppercase;letter-spacing:0.1em;font-size:12px;font-weight:700;
    padding:7px 14px;margin-bottom:20px;
    clip-path:polygon(8px 0,100% 0,calc(100% - 8px) 100%,0 100%);
  }
  .project-hero h1{font-size:clamp(36px,5vw,64px);margin-bottom:16px;}
  .project-meta{color:var(--grey);font-family:'Barlow Condensed';text-transform:uppercase;letter-spacing:0.08em;font-size:13px;margin-bottom:30px;}
  .project-meta span{color:var(--accent);}
  .project-live-cta{margin:28px 0 6px;}
  .project-mockup{max-width:700px;margin:0 auto 70px;}
  .project-mockup .browser-mock{transform:none;box-shadow:0 30px 80px rgba(0,0,0,0.55);}
  .project-mockup a{display:block;position:relative;cursor:zoom-in;}
  .project-mockup img{width:100%;height:auto;display:block;border:none;box-shadow:none;transition:filter .2s ease;-webkit-mask-image:none;mask-image:none;}
  .project-mockup a:hover img{filter:brightness(1.06);}
  .project-mockup a::after{
    content:"Clique para ampliar";
    position:absolute;right:14px;bottom:14px;
    background:rgba(10,10,10,0.75);
    color:var(--white);
    font-family:'Barlow Condensed';text-transform:uppercase;letter-spacing:0.08em;font-size:11px;
    padding:7px 12px;
    opacity:0;
    transition:opacity .2s ease;
    pointer-events:none;
  }
  .project-mockup a:hover::after{opacity:1;}
  body.lightbox-locked{overflow:hidden;}
  .lightbox-overlay{position:fixed;inset:0;background:rgba(5,5,5,0.94);display:none;align-items:center;justify-content:center;padding:60px 24px;z-index:999;cursor:zoom-out;}
  .lightbox-overlay.is-open{display:flex;}
  .lightbox-overlay img{max-width:100%;max-height:100%;display:block;border:1px solid var(--line);box-shadow:0 30px 90px rgba(0,0,0,0.7);cursor:default;}
  .lightbox-close{position:fixed;top:20px;right:24px;width:44px;height:44px;border:1px solid rgba(255,255,255,0.25);background:rgba(10,10,10,0.6);color:var(--white);font-size:24px;line-height:1;cursor:pointer;z-index:1000;transition:background .2s ease;}
  .lightbox-close:hover{background:rgba(41,121,255,0.85);border-color:var(--accent);}
  @media(max-width:640px){
    .lightbox-overlay{padding:32px 14px;}
    .lightbox-close{top:12px;right:12px;width:38px;height:38px;font-size:20px;}
  }
  .project-body{display:grid;grid-template-columns:1fr 1fr;gap:60px;margin-bottom:70px;}
  .project-body h2{font-size:22px;margin-bottom:14px;}
  .project-body p{color:var(--grey);font-size:15.5px;line-height:1.7;}
  .feature-list{list-style:none;margin-top:60px;}
  .feature-list li{
    display:flex;gap:14px;align-items:flex-start;
    padding:20px 0;border-top:1px solid var(--line);
    color:#c9c6c2;font-size:15px;line-height:1.6;
  }
  .feature-list li:last-child{border-bottom:1px solid var(--line);}
  .feature-list li::before{content:"///";color:var(--accent);font-family:'Barlow Condensed';font-weight:700;flex-shrink:0;}
  .back-link{display:inline-block;margin-bottom:20px;color:var(--grey);font-family:'Barlow Condensed';text-transform:uppercase;letter-spacing:0.08em;font-size:13px;}
  .back-link:hover{color:var(--accent);}
  @media (max-width:760px){
    .project-body{grid-template-columns:1fr;gap:30px;}
  }
