: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}
.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);animation:dotBlink 2.8s ease-in-out infinite}
@keyframes dotBlink{0%,100%{opacity:1}50%{opacity:.18}}
.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:90px var(--pad) 120px;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(400px,52vw,640px);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:49%;width:clamp(94px,10.5vw,160px);aspect-ratio:1;background:#ECE9F7;z-index:1;transform:translate(-50%,-6%) rotate(calc(9deg + var(--sq-r,0deg)));box-shadow:0 30px 80px -30px rgba(0,0,0,.5);will-change:transform}
.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(auto-fit,minmax(196px,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}
/* logo quadrada: a altura util do card e ~52% da largura interna, entao limitamos por largura */
.client img.is-crest{max-width:50%}
.client img.is-white{filter:brightness(0) invert(1)}

/* 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{--cardw:clamp(320px,40%,480px);max-width:var(--maxw);margin:0 auto;display:flex;gap:22px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:10px;-webkit-overflow-scrolling:touch}
.time__track::before,.time__track::after{content:"";flex:0 0 calc((100% - var(--cardw))/2 - 22px)}
.time__track::-webkit-scrollbar{height:6px}
.time__track::-webkit-scrollbar-thumb{background:#2a2435;border-radius:6px}
.member{flex:0 0 var(--cardw);aspect-ratio:3/3.9;border-radius:18px;overflow:hidden;scroll-snap-align:center;transition:transform .5s,filter .5s;filter:brightness(.62) saturate(.92);transform:scale(.93)}
.member.is-active{filter:brightness(1) saturate(1);transform:scale(1.03)}
.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:56px var(--pad) 0;overflow:hidden}
.footer__brand{text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px;padding-bottom:40px}
.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:44px var(--pad) 28px;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(24px,3.2vw,40px)}
.footer__cta p{margin-top:10px;font-size:15px;opacity:.92}
.footer__contact{text-align:right;margin:22px 0 32px}
.footer__contact a{display:block;font-family:var(--font-display);font-weight:800;font-size:clamp(20px,3.4vw,42px);line-height:1.15;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(calc(9deg + var(--sq-r,0deg)));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}
  .time__track{--cardw:78%}
}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;scroll-behavior:auto}
  .reveal{opacity:1;transform:none}
}
