/* ===================== TOKENS ===================== */
:root{
  --bg:#110F15;
  --bg-2:#0B0910;
  --purple:#7C64EF;
  --purple-light:#8973F1;
  --purple-deep:#462F76;
  --white:#fff;
  --ink:#0E0B14;
  --muted:#9890b5;
  --font-display:'Syne',sans-serif;
  --font-logo:'Syne',sans-serif;
  --font-body:'Montserrat',sans-serif;
  --maxw:1320px;
  --pad:clamp(20px,5vw,72px);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:var(--font-body);
  background:var(--bg);
  color:var(--white);
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
section{position:relative}

/* ===================== NAV ===================== */
.nav{
  position:fixed;top:0;left:0;width:100%;z-index:100;
  transition:background .3s,backdrop-filter .3s,padding .3s;
}
.nav.scrolled{background:rgba(13,11,18,.82);backdrop-filter:blur(14px)}
.nav__inner{
  max-width:var(--maxw);margin:0 auto;
  padding:22px var(--pad);
  display:flex;align-items:center;gap:24px;
}
.nav__logo img{height:24px;width:auto;filter:brightness(0) invert(1)}
.nav__menu{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:6px}
.nav__menu span{width:24px;height:2px;background:#fff;border-radius:2px;transition:.3s}
.nav__links{display:flex;align-items:center;gap:2px;margin:0 auto;text-transform:uppercase;
  font-size:12.5px;letter-spacing:.16em;font-weight:600;font-family:var(--font-body);
  background:rgba(18,14,28,.45);border:1px solid rgba(255,255,255,.10);border-radius:40px;
  padding:6px;backdrop-filter:blur(12px)}
.nav__links a{position:relative;padding:11px clamp(14px,1.6vw,24px);border-radius:30px;
  opacity:.8;transition:.25s;color:#fff}
.nav__links a:hover{opacity:1;background:rgba(255,255,255,.06)}
.nav__links a.active{opacity:1;background:linear-gradient(180deg,rgba(255,255,255,.16),rgba(255,255,255,.05));
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)}
.nav__social{display:flex;gap:10px}
.nav__social a{width:34px;height:34px;border:1px solid rgba(255,255,255,.3);border-radius:50%;
  display:grid;place-items:center;color:#fff;transition:.25s}
.nav__social a:hover{background:var(--purple);border-color:var(--purple)}

.drawer{position:fixed;inset:0 0 0 auto;width:min(80vw,340px);background:var(--bg-2);z-index:99;
  transform:translateX(100%);transition:.4s cubic-bezier(.7,0,.2,1);padding:110px 40px;display:flex}
.drawer.open{transform:translateX(0)}
.drawer nav{display:flex;flex-direction:column;gap:8px;width:100%}
.drawer a{font-family:var(--font-display);font-weight:800;font-size:30px;text-transform:uppercase;
  padding:10px 0;border-bottom:1px solid rgba(255,255,255,.08)}
.drawer a:hover{color:var(--purple)}

/* ===================== HERO ===================== */
.hero{min-height:100vh;display:flex;flex-direction:column;justify-content:center;
  padding:140px var(--pad) 80px;overflow:hidden;
  background:radial-gradient(120% 90% at 80% 10%,#1a1326 0%,#0d0b12 55%,#0a0810 100%)}
.hero__bg{position:absolute;inset:0;z-index:0;overflow:hidden}
.hero__bg .shp{position:absolute;display:block}
.shp--1{width:62vw;height:135vh;top:-18%;left:-14%;
  background:linear-gradient(150deg,#3a2070 0%,#24143f 55%,#181027 100%);
  transform:skewX(-13deg) rotate(3deg);
  clip-path:polygon(0 4%,100% 0,66% 100%,0 92%);opacity:.96}
.shp--2{width:40vw;height:118vh;top:-8%;left:-6%;
  background:linear-gradient(155deg,#7a4ae8 0%,#5a31c4 38%,#341b78 75%,transparent 100%);
  transform:skewX(-13deg) rotate(3deg);
  clip-path:polygon(0 8%,100% 2%,58% 100%,0 86%);opacity:.92}
.shp--3{width:46vw;height:60vh;left:-8%;bottom:-6%;
  background:radial-gradient(60% 60% at 35% 70%,rgba(149,108,243,.6),transparent 70%);
  filter:blur(24px);opacity:.85}
.hero__grid{position:relative;z-index:2;max-width:var(--maxw);margin:0 auto;width:100%;
  display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center}
.hero__title{font-family:var(--font-logo);font-weight:800;color:#fff;line-height:.84;
  font-size:clamp(72px,13vw,184px);letter-spacing:-.02em}
.hero__title .dot{color:var(--purple)}
.hero__right{align-self:end;display:flex;flex-direction:column;gap:34px;padding-bottom:10px}
.hero__faz{font-family:var(--font-display);font-weight:800;line-height:1.02;text-transform:uppercase;
  font-size:clamp(38px,5.4vw,78px);letter-spacing:-.01em;text-align:right}
.hero__faz span{color:var(--purple)}
.hero__lead{display:flex;gap:22px;align-items:flex-start;max-width:520px;margin-left:auto}
.hero__lead p{font-size:15px;line-height:1.6;color:#cfc9e6}
.arrow-circle{flex:none;width:54px;height:54px;border:1px solid rgba(255,255,255,.4);border-radius:50%;
  display:grid;place-items:center;font-size:22px;transition:.3s}
.arrow-circle:hover{background:var(--purple);border-color:var(--purple);transform:rotate(45deg)}
.hero__scroll{position:absolute;left:50%;bottom:34px;transform:translateX(-50%);z-index:3}
.mouse{display:block;width:24px;height:40px;border:2px solid rgba(255,255,255,.5);border-radius:14px;position:relative}
.mouse::after{content:"";position:absolute;left:50%;top:8px;width:4px;height:8px;background:#fff;border-radius:3px;
  transform:translateX(-50%);animation:scroll 1.6s infinite}
@keyframes scroll{0%{opacity:0;top:8px}40%{opacity:1}80%{opacity:0;top:20px}100%{opacity:0}}

/* ===================== SOBRE ===================== */
.sobre{background:var(--bg);padding:0 var(--pad) 120px}
.sobre__photos{display:grid;grid-template-columns:1fr 1.4fr 1fr;gap:18px;max-width:var(--maxw);
  margin:0 auto;transform:translateY(-60px)}
.sobre__photos figure{overflow:hidden;border-radius:4px}
.sobre__photos figure.big{margin-top:60px}
.sobre__photos img{width:100%;height:100%;object-fit:cover;transition:transform .7s}
.sobre__photos figure:hover img{transform:scale(1.05)}
.sobre__body{width:100vw;margin-left:calc(50% - 50vw);background:#fff;color:var(--ink);
  display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start;
  padding:90px max(var(--pad),calc(50vw - var(--maxw)/2))}
.sobre__title .kicker{display:inline-block;font-family:var(--font-display);font-weight:700;color:var(--purple);
  font-size:clamp(18px,2.2vw,28px);letter-spacing:.02em;padding-bottom:4px;
  border-bottom:3px solid var(--purple);margin-bottom:6px}
.sobre__title h2{font-family:var(--font-display);font-weight:800;color:var(--ink);line-height:.9;
  font-size:clamp(52px,8.5vw,120px);letter-spacing:-.02em}
.sobre__title h2 .dot{color:var(--purple)}
.sobre__title h2 .sq{display:inline-block;width:.34em;height:.34em;background:var(--purple);
  margin-left:.12em;vertical-align:.1em;border-radius:2px}
.sobre__text p{color:#2a2533;font-size:16px;line-height:1.7;margin-bottom:16px}
.sobre__text p strong{color:var(--ink);font-weight:700}
.hl-box{background:var(--purple);color:#fff;font-weight:600;padding:4px 10px;border-radius:4px;
  box-decoration-break:clone;-webkit-box-decoration-break:clone;line-height:1.9}

/* ===================== BUTTONS ===================== */
.btn{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-body);font-weight:600;
  text-transform:uppercase;letter-spacing:.12em;font-size:12px;cursor:pointer;transition:.3s}
.btn--ghost{border:1.5px solid rgba(20,16,30,.35);color:var(--ink);padding:15px 30px;border-radius:40px}
.btn--ghost:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.btn--ghost.sm{padding:12px 26px;font-size:11px}
.btn--purple{border:1.5px solid var(--purple);color:var(--purple);padding:15px 30px;border-radius:40px}
.btn--purple:hover{background:var(--purple);color:#fff}
.btn--pill{background:#fff;color:var(--ink);padding:15px 28px;border-radius:40px}
.btn--pill:hover{background:var(--purple);color:#fff}

/* ===================== PONTO EXATO ===================== */
.ponto{padding:120px var(--pad);overflow:hidden;
  background:linear-gradient(115deg,#14101f 0%,#241544 38%,#3a2470 70%,#4a2e92 100%)}
.ponto__bg span{position:absolute}
.ponto__bg span:first-child{width:55vw;height:140%;top:-20%;left:-12%;
  background:linear-gradient(120deg,rgba(124,92,242,.55),transparent 70%);transform:skewX(-14deg);opacity:.6;
  clip-path:polygon(0 0,100% 18%,58% 100%,0 82%)}
.ponto__bg span:last-child{display:none}
.ponto__inner{position:relative;z-index:2;max-width:var(--maxw);margin:0 auto;
  min-height:clamp(340px,46vw,560px);display:flex;flex-direction:column;justify-content:space-between}
.ponto__a,.ponto__b{font-family:var(--font-display);font-weight:800;text-transform:uppercase;
  line-height:1.12;font-size:clamp(22px,3.9vw,54px);letter-spacing:-.01em;position:relative;z-index:2}
.ponto__a{align-self:flex-start;max-width:75%}
.ponto__b{align-self:flex-end;text-align:right;max-width:60%}
.ponto__square{position:absolute;top:50%;left:50%;
  width:clamp(120px,15vw,220px);aspect-ratio:1;background:#ECE9F7;z-index:1;
  transform:translate(-50%,-46%) rotate(9deg);box-shadow:0 30px 80px -30px rgba(0,0,0,.5)}
.boxed-dark{background:#0E0B14;color:#fff;padding:.02em .14em;border-radius:3px;
  box-decoration-break:clone;-webkit-box-decoration-break:clone}
.boxed-purple{background:#CFC2F5;color:#3a1f9e;padding:.02em .14em;border-radius:3px;
  box-decoration-break:clone;-webkit-box-decoration-break:clone}

/* ===================== CASES ===================== */
.cases{background:var(--bg);padding:90px var(--pad)}
.cases__track{max-width:var(--maxw);margin:0 auto;display:flex;gap:16px;height:min(78vh,720px)}
.case{position:relative;flex:1;border-radius:8px;overflow:hidden;cursor:pointer;
  transition:flex .6s cubic-bezier(.7,0,.2,1);min-width:0}
.case.is-active{flex:3.2}
.case>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s}
.case:hover>img{transform:scale(1.04)}
.case__shade{position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(10,7,18,.85) 0%,rgba(10,7,18,.15) 45%,transparent 70%),
             linear-gradient(0deg,rgba(10,7,18,.7),transparent 50%)}
.case__tag{position:absolute;top:26px;left:26px;font-family:var(--font-display);font-weight:800;
  text-transform:uppercase;font-size:clamp(20px,2.4vw,40px);letter-spacing:-.01em;z-index:3}
.case__info{position:absolute;left:26px;bottom:26px;right:26px;z-index:3;
  opacity:0;transform:translateY(14px);transition:.5s;pointer-events:none}
.case.is-active .case__info{opacity:1;transform:none;pointer-events:auto}
.case__desc{font-family:var(--font-display);font-weight:800;text-transform:uppercase;
  font-size:clamp(18px,2vw,30px);line-height:1.05;margin-bottom:22px}
.case:not(.is-active) .case__tag{writing-mode:vertical-rl;top:26px;left:auto;right:22px;transform:rotate(180deg)}

/* ===================== COORDENADAS ===================== */
.coord{background:#fff;color:var(--ink);padding:110px var(--pad)}
.coord__title{text-align:center;font-family:var(--font-display);font-weight:800;text-transform:uppercase;
  font-size:clamp(40px,8vw,108px);line-height:.92;letter-spacing:-.02em;margin-bottom:70px}
.coord__title .spk{color:var(--purple);font-size:.45em;vertical-align:middle;margin:0 .15em}
.coord__grid{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:50px}
.office__photo{border-radius:6px;overflow:hidden;aspect-ratio:16/11;margin-bottom:26px}
.office__photo img{width:100%;height:100%;object-fit:cover;transition:transform .7s}
.office:hover .office__photo img{transform:scale(1.05)}
.office h3{font-family:var(--font-display);font-weight:800;color:var(--purple);text-transform:uppercase;
  font-size:clamp(20px,2.4vw,30px);line-height:1;letter-spacing:-.01em;margin-bottom:14px}
.office p{color:#4a4458;font-size:15px;line-height:1.6;margin-bottom:22px}

/* ===================== CLIENTES ===================== */
.clientes{background:#fff;color:var(--ink);padding:30px var(--pad) 120px}
.clientes__intro{max-width:var(--maxw);margin:0 auto 40px;font-family:var(--font-logo);font-weight:700;
  font-size:clamp(22px,3.2vw,46px);display:flex;align-items:center;flex-wrap:wrap;gap:0 16px;line-height:1.1}
.clientes__intro .ml{height:.8em;width:auto;transform:translateY(.06em)}
.clientes__grid{max-width:var(--maxw);margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.client{background:var(--purple-light);border-radius:8px;aspect-ratio:5/3;display:grid;place-items:center;
  padding:8%;transition:.3s}
.client:hover{transform:translateY(-6px);box-shadow:0 18px 40px -18px var(--purple)}
.client img{max-height:118px;width:auto;max-width:74%;object-fit:contain}

/* ===================== TIME ===================== */
.time{background:var(--bg);padding:110px var(--pad) 120px}
.time__head{max-width:var(--maxw);margin:0 auto 50px}
.time__head h2{font-family:var(--font-display);font-weight:800;text-transform:uppercase;line-height:.92;
  font-size:clamp(44px,8vw,108px);letter-spacing:-.02em}
.time__head mark{background:none;color:var(--purple)}
.time__head .dot{color:var(--purple)}
.time__head p{color:var(--muted);font-size:16px;margin-top:14px;font-weight:500}
.time__track{max-width:var(--maxw);margin:0 auto;display:flex;gap:22px;justify-content:center;
  overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:10px;-webkit-overflow-scrolling:touch}
.time__track::-webkit-scrollbar{height:6px}
.time__track::-webkit-scrollbar-thumb{background:#2a2435;border-radius:6px}
.member{flex:0 0 clamp(320px,40%,480px);aspect-ratio:3/3.9;border-radius:18px;overflow:hidden;
  scroll-snap-align:center;transition:transform .5s,opacity .5s;opacity:.62;transform:scale(.95)}
.member.is-active{opacity:1;transform:scale(1.02)}
.member img{width:100%;height:100%;object-fit:cover}
.time__dots{display:flex;gap:8px;justify-content:center;margin-top:26px}
.time__dots button{width:8px;height:8px;border-radius:50%;border:0;background:#332c44;cursor:pointer;transition:.3s}
.time__dots button.on{background:var(--purple);width:24px;border-radius:5px}

/* ===================== FOOTER ===================== */
.footer{background:var(--bg-2);padding:80px var(--pad) 0;overflow:hidden}
.footer__brand{text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px;
  padding-bottom:60px}
.footer__logo{height:30px;width:auto;filter:brightness(0) invert(1)}
.footer__tag{font-family:var(--font-display);font-weight:800;letter-spacing:.45em;font-size:12px;text-transform:uppercase}
.footer__tag strong{color:var(--purple)}
.footer__panel{background:var(--purple);color:#fff;border-radius:24px 24px 0 0;
  margin:0 calc(var(--pad)*-1);padding:64px var(--pad) 40px;position:relative;
  clip-path:polygon(0 8%,100% 0,100% 100%,0 100%)}
.footer__cta h2{font-family:var(--font-display);font-weight:800;text-transform:uppercase;line-height:.95;
  font-size:clamp(30px,4.4vw,56px)}
.footer__cta p{margin-top:12px;font-size:17px;opacity:.92}
.footer__contact{text-align:right;margin:30px 0 50px}
.footer__contact a{display:block;font-family:var(--font-display);font-weight:800;
  font-size:clamp(26px,5vw,62px);line-height:1.1;transition:.25s}
.footer__contact a:hover{opacity:.7}
.footer__bottom{border-top:1px solid rgba(255,255,255,.25);padding:24px 0 30px;
  display:flex;justify-content:space-between;align-items:center;font-size:12px;letter-spacing:.12em;
  text-transform:uppercase;opacity:.9}
.footer__social{display:flex;gap:12px}
.footer__social a{width:32px;height:32px;border:1px solid rgba(255,255,255,.4);border-radius:50%;
  display:grid;place-items:center;color:#fff;transition:.25s}
.footer__social a:hover{background:#fff;color:var(--purple)}

/* ===================== REVEAL ===================== */
.reveal{opacity:0;transform:translateY(38px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}

/* ===================== RESPONSIVE ===================== */
@media(max-width:980px){
  .nav__links,.nav__social{display:none}
  .nav__menu{display:flex;order:3;margin-left:auto}
  .nav__logo{order:1}
  .nav__inner{justify-content:space-between}
  .nav.menu-open .nav__menu span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .nav.menu-open .nav__menu span:nth-child(2){opacity:0}
  .nav.menu-open .nav__menu span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .hero__grid{grid-template-columns:1fr;gap:20px}
  .hero__faz{text-align:left}
  .hero__lead{margin-left:0}
  .sobre__body{grid-template-columns:1fr;gap:34px;padding:50px var(--pad)}
  .sobre__photos{grid-template-columns:1fr 1fr;transform:translateY(-40px)}
  .sobre__photos figure:nth-child(3){grid-column:span 2}
  .sobre__photos figure.big{margin-top:0}
  .ponto__inner{min-height:auto;gap:60px}
  .ponto__a,.ponto__b{max-width:100%}
  .ponto__square{width:90px;transform:translate(-50%,-50%) rotate(9deg);opacity:.92}
  .cases__track{flex-direction:column;height:auto}
  .case{height:62vw;max-height:480px;flex:auto!important}
  .case .case__info{opacity:1;transform:none;pointer-events:auto}
  .case:not(.is-active) .case__tag{writing-mode:horizontal-tb;left:26px;right:auto;transform:none}
  .coord__grid{grid-template-columns:1fr;gap:40px}
  .clientes__grid{grid-template-columns:1fr 1fr}
  .footer__contact{text-align:left}
}
@media(max-width:560px){
  .clientes__grid{grid-template-columns:1fr 1fr;gap:12px}
  .footer__bottom{flex-direction:column;gap:16px}
  .member{flex-basis:78%}
}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;scroll-behavior:auto}
  .reveal{opacity:1;transform:none}
}
