@font-face{font-family:'Geist';src:url(../fonts/Geist-Regular.woff2) format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Geist';src:url(../fonts/Geist-Medium.woff2) format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:'Geist Mono';src:url(../fonts/GeistMono-Regular.woff2) format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Geist Mono';src:url(../fonts/GeistMono-Medium.woff2) format('woff2');font-weight:500;font-display:swap}

/* Escuro por escolha da marca. Camadas: grid tecnico > conteudo > HUD > cursor > grao */
:root{--bg:#0A0A0A;--bg2:#111110;--fg:#F2F0EB;--mute:#8A8883;--soft:#B4B2AC;--line:rgba(242,240,235,.07);--line2:rgba(242,240,235,.14);--accent:#FF4F1F;
  --pad:clamp(20px,5vw,72px);--max:1600px;--mono:'Geist Mono',ui-monospace,monospace;--sans:'Geist',system-ui,sans-serif;--hh:76px;--ease:cubic-bezier(.7,0,.2,1);color-scheme:dark}
*{box-sizing:border-box}
html{background:var(--bg);color:var(--fg);-webkit-text-size-adjust:100%;scroll-padding-top:var(--hh)}
body{margin:0;font-family:var(--sans);font-size:18px;line-height:1.5;background:var(--bg);color:var(--fg);overflow-x:hidden}
html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-stopped{overflow:hidden}
img,video,svg,canvas{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
h1,h2,h3,p{margin:0;font-weight:500}
::selection{background:var(--accent);color:#0A0A0A}
:focus-visible{outline:1px solid var(--accent);outline-offset:4px}
.skip{position:absolute;left:-9999px;top:0}.skip:focus{left:var(--pad);top:12px;z-index:200;background:var(--accent);color:#0A0A0A;padding:8px 14px}

.mono{font-family:var(--mono);font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.acc{color:var(--accent)}
.wrap{width:100%;max-width:var(--max);margin:0 auto;padding:0 var(--pad);position:relative}
.ttl{font-size:clamp(44px,7.4vw,132px);line-height:.92;letter-spacing:-.055em}
.ttl-m{font-size:clamp(40px,5.6vw,96px);line-height:.94;letter-spacing:-.05em}
.lead{font-size:clamp(18px,1.6vw,24px);line-height:1.45;color:var(--soft);max-width:34em}
.ln{display:block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}.ln>span{display:inline-block;white-space:nowrap}

/* camadas globais */
.grid-bg{position:fixed;inset:0;pointer-events:none;z-index:0}
.grid-bg .in{position:relative;height:100%;max-width:var(--max);margin:0 auto}
.grid-bg i{position:absolute;top:0;bottom:0;width:1px;background:var(--line);opacity:.6}
main,footer{position:relative;z-index:1}
.grain{position:fixed;inset:-50%;z-index:90;pointer-events:none;background:url(../img/noise.png);opacity:.05;animation:grain .9s steps(4) infinite}
@keyframes grain{0%{transform:translate(0,0)}25%{transform:translate(-3%,2%)}50%{transform:translate(2%,-3%)}75%{transform:translate(-2%,-1%)}100%{transform:translate(1%,3%)}}
.plus{position:absolute;width:22px;height:22px;pointer-events:none}
.plus::before,.plus::after{content:"";position:absolute;background:var(--fg);opacity:.45}
.plus::before{left:10px;top:0;width:1px;height:22px}.plus::after{top:10px;left:0;height:1px;width:22px}

/* loader (so na primeira visita da sessao) e cortina entre paginas */
.loader{display:none}
.ld .loader{display:flex;position:fixed;inset:0;z-index:150;background:var(--bg);flex-direction:column;justify-content:center;gap:18px;padding:0 var(--pad);animation:ldout .8s var(--ease) 2s forwards}
.ld-row{display:flex;justify-content:space-between;gap:20px}
.ld-num{color:var(--fg)}
.ld-bar{height:2px;background:var(--line2);position:relative;overflow:hidden}
.ld-bar i{position:absolute;inset:0;background:var(--accent);transform-origin:0 50%;transform:scaleX(0);animation:ldbar 1.8s cubic-bezier(.6,.05,.3,1) .1s forwards}
@keyframes ldbar{to{transform:scaleX(1)}}
@keyframes ldout{to{clip-path:inset(0 0 100% 0);visibility:hidden}}
.wipe{position:fixed;inset:0;z-index:140;background:var(--accent);pointer-events:none;transform:scaleY(0);transform-origin:50% 100%}
.js .wipe{transform:scaleY(1);transform-origin:50% 0;animation:wipeout .75s var(--ease) .05s forwards}
.ld .wipe{animation:none;transform:scaleY(0)}
@keyframes wipeout{to{transform:scaleY(0)}}
.wipe.in{animation:none!important;transform-origin:50% 100%;transform:scaleY(1);transition:transform .55s var(--ease)}

/* cursor proprio (so mouse) */
.cursor{display:none}
.cur-on .cursor{display:block;position:fixed;left:0;top:0;z-index:120;pointer-events:none}
.c-dot{position:fixed;left:-3px;top:-3px;width:6px;height:6px;border-radius:50%;background:var(--accent)}
.c-ring{position:fixed;left:-20px;top:-20px;width:40px;height:40px;border-radius:50%;border:1px solid rgba(242,240,235,.35);display:grid;place-items:center;transition:width .35s var(--ease),height .35s var(--ease),left .35s var(--ease),top .35s var(--ease),background .35s,border-color .35s}
.c-txt{font:500 11px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:#0A0A0A;opacity:0;transition:opacity .2s;white-space:nowrap}
.cursor.link .c-ring{width:56px;height:56px;left:-28px;top:-28px;border-color:var(--accent)}
.cursor.label .c-ring{width:104px;height:104px;left:-52px;top:-52px;background:var(--accent);border-color:var(--accent)}
.cursor.label .c-txt{opacity:1}.cursor.label .c-dot{opacity:0}
.cursor.hide{opacity:0}

/* header */
.hd{position:fixed;left:0;right:0;top:0;z-index:50;height:var(--hh);transition:background .4s,border-color .4s,transform .5s var(--ease);border-bottom:1px solid transparent}
.hd.solid{background:rgba(10,10,10,.8);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-color:var(--line)}
.hd.away{transform:translateY(-100%)}
.hd .wrap{height:100%;display:flex;align-items:center;gap:28px}
.hd .logo svg{width:150px;height:22px;color:var(--fg)}
.nav{display:flex;gap:26px;margin-left:auto}
.nav a{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--soft);position:relative;padding:6px 0;transition:color .3s}
.nav a::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;background:var(--accent);transition:right .35s}
.nav a:hover,.nav a.on{color:var(--fg)}.nav a:hover::after,.nav a.on::after{right:0}
.btn{display:inline-flex;align-items:center;gap:10px;font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;padding:14px 20px;border:1px solid var(--line2);color:var(--fg);transition:background .3s,border-color .3s,color .3s;white-space:nowrap;position:relative}
.btn:hover{border-color:var(--accent);background:var(--accent);color:#0A0A0A}
.btn.fill{background:var(--accent);border-color:var(--accent);color:#0A0A0A}.btn.fill:hover{background:var(--fg);border-color:var(--fg)}
.btn svg{width:16px;height:16px}
.burger{display:none;margin-left:auto;width:44px;height:44px;border:1px solid var(--line2);background:none;color:var(--fg);cursor:pointer;position:relative}
.burger i{position:absolute;left:12px;right:12px;height:1px;background:currentColor;transition:transform .35s,opacity .35s}
.burger i:nth-child(1){top:16px}.burger i:nth-child(2){top:22px}.burger i:nth-child(3){top:28px}
.menu-open .burger i:nth-child(1){transform:translateY(6px) rotate(45deg)}.menu-open .burger i:nth-child(2){opacity:0}.menu-open .burger i:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
.mmenu{position:fixed;inset:0;z-index:45;background:var(--bg);padding:calc(var(--hh) + 30px) var(--pad) 40px;display:flex;flex-direction:column;gap:6px;clip-path:inset(0 0 100% 0);transition:clip-path .6s var(--ease);visibility:hidden}
.menu-open .mmenu{clip-path:inset(0 0 0 0);visibility:visible}
.mmenu a{font-size:44px;letter-spacing:-.04em;border-bottom:1px solid var(--line);padding:10px 0;display:flex;justify-content:space-between;align-items:baseline}
.mmenu a span{font-family:var(--mono);font-size:12px;color:var(--mute);letter-spacing:.14em}
.mmenu .btn{margin-top:24px;align-self:flex-start;font-size:12px;border-bottom:1px solid var(--accent);padding:14px 20px}
@media (max-width:1080px){.nav,.hd .cta{display:none}.burger{display:block}}

/* secoes */
.sec{padding:clamp(90px,12vw,170px) 0;border-top:1px solid var(--line);position:relative}
.sec-hd{display:flex;justify-content:space-between;align-items:baseline;gap:20px;margin-bottom:clamp(40px,6vw,80px)}
.sec-idx{display:flex;gap:16px;align-items:center}
.sec-idx b{font-weight:400;color:var(--accent)}

/* hero: palco 3D + HUD */
.hero{position:relative;overflow:hidden;min-height:100svh;display:flex;align-items:flex-end;padding:calc(var(--hh) + 40px) 0 clamp(70px,9vh,110px)}
.hero .stage3d{position:absolute;top:50%;right:-4vw;width:min(1080px,64vw);aspect-ratio:1/1;transform:translateY(-56%);z-index:1}
.hero canvas{position:absolute;inset:0;width:100%;height:100%;touch-action:pan-y;cursor:grab}
.hero canvas:active{cursor:grabbing}
.cur-on .hero canvas{cursor:none}
.hero .fallback{position:absolute;inset:16%;transition:opacity .8s}
.hero .stage3d.ready .fallback{opacity:0}
.hero .tx{position:relative;z-index:3;display:flex;flex-direction:column;gap:30px;pointer-events:none}
.hero .tx a,.hero .tx .btn{pointer-events:auto}
.hero .ttl{font-size:clamp(46px,8.4vw,160px);line-height:.88;letter-spacing:-.06em}
.hero-ft{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;flex-wrap:wrap}
.hero-ft .lead{max-width:30em}
.ctas{display:flex;gap:12px;flex-wrap:wrap}
.hud{position:absolute;inset:0;z-index:2;pointer-events:none}
.hud .mono{position:absolute;font-size:11px;color:var(--mute)}
.hud .mono b{font-weight:400;color:var(--fg);font-variant-numeric:tabular-nums}
.hr1{left:calc(var(--pad) + 34px);top:calc(var(--hh) + 22px)}
.hr2{right:calc(var(--pad) + 34px);top:calc(var(--hh) + 22px)}
.hr3{right:calc(var(--pad) + 34px);bottom:26px}
.hr4{left:50%;bottom:26px;transform:translateX(-50%)}
.hud .hx,.hud .hy{position:absolute;background:rgba(242,240,235,.09);opacity:0;transition:opacity .5s}
.hud .hx{left:0;right:0;height:1px;top:0}.hud .hy{top:0;bottom:0;width:1px;left:0}
.fine .hero:hover .hud .hx,.fine .hero:hover .hud .hy{opacity:1}
.hero .scroll{position:absolute;left:calc(var(--pad) + 34px);bottom:26px;display:flex;align-items:center;gap:12px;z-index:3;font-size:11px}
.hero .scroll i{width:38px;height:1px;background:var(--line2);position:relative;overflow:hidden}
.hero .scroll i::after{content:"";position:absolute;top:0;left:-40%;height:1px;width:40%;background:var(--accent);animation:slide 1.8s cubic-bezier(.6,0,.3,1) infinite}
@keyframes slide{to{left:100%}}
@media (max-width:900px){
  .hero{flex-direction:column;align-items:stretch;justify-content:flex-end;padding-top:var(--hh)}
  .hero .stage3d{position:relative;top:auto;right:auto;transform:none;width:112vw;max-width:none;margin:-4vw 0 -10vw -6vw}
  .hero .ttl{font-size:clamp(32px,9.8vw,92px)}
  .hud .hr3,.hud .hr4,.hero .scroll{display:none}
  .hero-ft{flex-direction:column;align-items:flex-start}
}

/* faixa corrida */
.marq{border-top:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden;padding:clamp(16px,1.8vw,26px) 0;position:relative;z-index:1;background:var(--bg);margin-top:clamp(40px,6vw,96px)}
.marq + .sec{border-top:0;padding-top:clamp(56px,7vw,110px)}
.mq-track{display:flex;width:max-content;will-change:transform;margin-left:calc(max(var(--pad),calc((100vw - var(--max))/2 + var(--pad))) - clamp(16px,1.8vw,30px))}
.mq-set{display:flex;align-items:center;flex:none}
.mq-set span{font-size:clamp(26px,3.2vw,54px);letter-spacing:-.04em;line-height:1;padding:0 clamp(16px,1.8vw,30px);white-space:nowrap}
.mq-set span:nth-child(4n+3){color:transparent;-webkit-text-stroke:1px rgba(242,240,235,.55)}
.mq-set .og{width:clamp(15px,1.7vw,28px);height:auto;flex:none}

/* servicos: linhas grandes que abrem */
.svc-list{border-bottom:1px solid var(--line2)}
.svc{display:grid;grid-template-columns:64px 1fr 56px;grid-template-areas:"n t i" ". d .";column-gap:24px;align-items:center;padding:clamp(18px,2vw,28px) 0;border-top:1px solid var(--line2);position:relative;isolation:isolate;outline-offset:-1px}
.svc::before{content:"";position:absolute;inset:-1px calc(-1 * var(--pad)) 0;background:var(--accent);transform:scaleY(0);transform-origin:50% 100%;transition:transform .55s var(--ease);z-index:-1}
.svc .n{grid-area:n;transition:color .4s}
.svc h3{grid-area:t;font-size:clamp(30px,4.4vw,76px);letter-spacing:-.045em;line-height:1;overflow:hidden}
.svc h3 span{display:inline-block;transition:transform .55s var(--ease),color .4s}
.svc .d{grid-area:d;display:grid;grid-template-rows:0fr;transition:grid-template-rows .55s var(--ease)}
.svc .d>div{overflow:hidden}
.svc .d p{color:var(--soft);font-size:clamp(17px,1.3vw,20px);max-width:40em;padding-top:12px;transition:color .4s}
.svc svg{grid-area:i;justify-self:end;width:42px;height:42px;stroke:var(--accent);fill:none;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round;transition:stroke .4s,transform .55s var(--ease)}
.fine .svc:hover::before,.svc:focus-visible::before{transform:scaleY(1);transform-origin:50% 0}
.fine .svc:hover h3 span,.svc:focus-visible h3 span{transform:translateX(clamp(12px,2vw,36px));color:#0A0A0A}
.fine .svc:hover .n,.svc:focus-visible .n,.fine .svc:hover .d p,.svc:focus-visible .d p{color:#0A0A0A}
.fine .svc:hover .d,.svc:focus-visible .d{grid-template-rows:1fr}
.fine .svc:hover svg,.svc:focus-visible svg{stroke:#0A0A0A;transform:rotate(-12deg) scale(1.1)}
@media (hover:none),(pointer:coarse){.svc .d{grid-template-rows:1fr}}
@media (max-width:800px){.svc{grid-template-columns:40px 1fr 34px}.svc svg{width:30px;height:30px}.svc h3{font-size:clamp(26px,7.4vw,40px)}}

/* motion */
.motion .wrap{display:grid;grid-template-columns:1fr minmax(280px,460px);gap:clamp(30px,6vw,110px);align-items:center}
.mo-tabs{display:flex;flex-direction:column;margin-top:40px;border-bottom:1px solid var(--line2)}
.mo-tab{all:unset;cursor:pointer;display:grid;grid-template-columns:44px 1fr auto;gap:16px;align-items:center;padding:22px 0;border-top:1px solid var(--line2);position:relative;color:var(--mute);transition:color .35s,padding .45s var(--ease)}
.cur-on .mo-tab{cursor:none}
.mo-tab .k{font-family:var(--mono);font-size:13px}
.mo-tab b{font-weight:500;font-size:clamp(22px,2.2vw,34px);letter-spacing:-.03em}
.mo-tab .bar{position:absolute;left:0;bottom:-1px;height:1px;width:0;background:var(--accent)}
.mo-tab{isolation:isolate}
.mo-tab::before{content:"";position:absolute;inset:0 -16px;background:var(--accent);transform:scaleY(0);transform-origin:50% 100%;transition:transform .5s var(--ease);z-index:-1}
.fine .mo-tab:hover::before,.mo-tab:focus-visible::before{transform:scaleY(1);transform-origin:50% 0}
.fine .mo-tab:hover,.fine .mo-tab:hover .k,.fine .mo-tab:hover .mono{color:#0A0A0A}
.fine .mo-tab:hover{padding-left:14px}
.mo-tab[aria-selected=true]{color:var(--fg);padding-left:14px}.mo-tab[aria-selected=true] .k{color:var(--accent)}
.mo-player{position:relative;aspect-ratio:9/16;background:#111;overflow:visible;width:100%}
.mo-player video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .5s}
.mo-player video.on{opacity:1}
.crop{position:absolute;width:18px;height:18px;border-color:var(--accent);border-style:solid;border-width:0;z-index:2}
.crop.tl{left:-12px;top:-12px;border-left-width:1px;border-top-width:1px}.crop.tr{right:-12px;top:-12px;border-right-width:1px;border-top-width:1px}
.crop.bl{left:-12px;bottom:-12px;border-left-width:1px;border-bottom-width:1px}.crop.br{right:-12px;bottom:-12px;border-right-width:1px;border-bottom-width:1px}
.mo-ui{position:absolute;left:0;right:0;bottom:0;padding:16px;display:flex;justify-content:space-between;align-items:flex-end;background:linear-gradient(0deg,rgba(10,10,10,.75),rgba(10,10,10,0));z-index:1}
.mo-ui .mono{color:var(--fg)}
.snd{all:unset;cursor:pointer;font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;border:1px solid var(--line2);padding:9px 12px;background:rgba(10,10,10,.5)}
.snd:hover{border-color:var(--accent)}
.views{font-family:var(--mono);color:var(--accent);font-size:clamp(28px,3vw,44px);line-height:1}
@media (max-width:900px){.motion .wrap{grid-template-columns:1fr}.mo-player{max-width:420px;margin:0 auto;width:calc(100% - 24px)}}

/* trabalhos: trilho horizontal (desktop preso na tela; celular arrasta) */
.works-sec{padding-bottom:0;overflow:hidden}
.wk-head .ttl{margin-bottom:clamp(30px,5vw,60px)}
.wk-intro{display:none}
.wk-bar{display:none}
.wk-ctl{display:flex;align-items:center;gap:28px}
.hz-nav{display:flex;align-items:center;gap:14px}
.hz-nav button{all:unset;width:54px;height:54px;border:1px solid var(--line2);display:grid;place-items:center;color:var(--fg);transition:background .3s,border-color .3s,color .3s;cursor:pointer}
.hz-nav button:hover{background:var(--accent);border-color:var(--accent);color:#0A0A0A}
.hz-nav button:focus-visible{outline:1px solid var(--accent);outline-offset:3px}
.hz-nav button[disabled]{opacity:.3;pointer-events:none}
.hz-nav svg{width:18px;height:18px}
.hz-count{min-width:84px;text-align:center;font-variant-numeric:tabular-nums}.hz-count b{font-weight:400;color:var(--fg)}
.hz-nav-m{display:none}
.hz-prog{display:flex;align-items:center;gap:14px;font-size:11px}
.hz-prog i{width:160px;height:1px;background:var(--line2);position:relative}
.hz-prog b{position:absolute;left:0;top:0;height:1px;width:100%;background:var(--accent);transform-origin:0 50%;transform:scaleX(0)}
.hz{padding-bottom:clamp(90px,12vw,170px)}
.hz-track{display:flex;gap:clamp(16px,2vw,32px);padding:0 var(--pad);width:max-content;will-change:transform;align-items:flex-end}
.wk{display:flex;flex-direction:column;gap:16px;flex:none}
.wk-img{position:relative;overflow:hidden;aspect-ratio:4/5;background:#141414;width:78vw}
.wk-img img{position:absolute;top:0;left:-9%;width:118%;max-width:none;height:100%;object-fit:cover;transition:transform 1.1s cubic-bezier(.2,.7,.2,1)}
.wk:hover .wk-img img{transform:scale(1.05)}
.wk-cap{display:flex;flex-direction:column;gap:10px;border-top:1px solid var(--line2);padding-top:14px}
.wk-cap .mono b{font-weight:400;color:var(--accent)}
.wk h3{font-size:clamp(26px,2.6vw,44px);letter-spacing:-.04em;line-height:1;transition:color .35s}
.wk:hover h3{color:var(--accent)}
.wk-cta{align-self:flex-start}.wk-cta .wk-img{background:var(--accent);color:#0A0A0A}
.wk-cta .in{position:absolute;inset:0;padding:clamp(22px,2.4vw,40px);display:flex;flex-direction:column;justify-content:space-between}
.wk-cta .mono{color:rgba(10,10,10,.6)}
.wk-cta h3{font-size:clamp(34px,3.6vw,64px);color:#0A0A0A}.wk-cta:hover h3{color:#0A0A0A}.wk-cta .acc{color:var(--fg)}
.wk-cta .btn.fill{align-self:flex-start;background:#0A0A0A;border-color:#0A0A0A;color:var(--fg)}
@media (min-width:901px){
  .works-sec{height:100svh;padding:calc(var(--hh) + 2.5vh) 0 4vh;display:flex;flex-direction:column;justify-content:space-between;gap:3vh}
  .wk-head{display:none}
  .wk-bar{display:flex;justify-content:space-between;align-items:center;gap:20px}
  .hz{padding:0;width:100%}
  .wk-intro{display:flex;flex-direction:column;justify-content:flex-end;align-self:stretch;width:clamp(340px,34vw,620px);flex:none;padding-right:2vw;padding-bottom:84px}
  .wk-intro .ttl{font-size:clamp(48px,5.6vw,104px)}
  .wk-img{width:auto;height:calc(100svh - var(--hh) - 9.5vh - 170px)}
}
@media (max-width:900px){
  .hz{padding-bottom:28px}
  .hz-nav-m{display:block;padding-bottom:clamp(70px,12vw,120px)}
  .hz{overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none}.hz::-webkit-scrollbar{display:none}
  .wk{scroll-snap-align:center}
}

/* processo */
.proc .steps{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(20px,3vw,48px);position:relative;padding-top:78px;margin-top:40px}
.proc .track{position:absolute;left:0;right:0;top:0;height:1px;background:var(--line2)}
.proc .track i{position:absolute;left:0;top:0;height:1px;width:100%;background:var(--accent);transform-origin:0 50%;transform:scaleX(0)}
.proc .track{height:2px}
.proc .track i{height:2px}
.proc .tip{position:absolute;left:0;top:50%;width:clamp(52px,4.4vw,72px);aspect-ratio:1;transform:translate(-50%,-50%);will-change:left;cursor:grab;touch-action:none;z-index:2}
.proc .tip::after{content:"";position:absolute;inset:-14px}
.proc .tip img{pointer-events:none;user-select:none;-webkit-user-drag:none}
.proc .tip.drag{cursor:grabbing}.proc .tip.drag img{transform-origin:50% 50%}
.cur-on .proc .tip{cursor:none}
.proc .tip img{width:100%;height:auto;filter:drop-shadow(0 6px 14px rgba(0,0,0,.6))}
.proc .tip .pct{position:absolute;left:50%;top:calc(100% + 6px);transform:translateX(-50%);font-size:11px;color:var(--fg);font-variant-numeric:tabular-nums}
.big-n{display:block;font-size:clamp(64px,7vw,128px);line-height:.9;letter-spacing:-.06em;color:transparent;-webkit-text-stroke:1px rgba(242,240,235,.3);transition:color .5s,-webkit-text-stroke-color .5s}
.step.on .big-n{color:var(--accent);-webkit-text-stroke-color:var(--accent)}
.step h3{font-size:clamp(28px,2.8vw,46px);letter-spacing:-.035em;margin:18px 0 10px}
.step p{color:var(--soft);font-size:17px}
@media (max-width:900px){.proc .steps{grid-template-columns:1fr 1fr;row-gap:50px}}
@media (max-width:560px){.proc .steps{grid-template-columns:1fr}}

/* quem */
.who .wrap{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(30px,6vw,100px);align-items:end}
.who .ppl{display:grid;grid-template-columns:1fr 1fr;gap:clamp(12px,1.6vw,24px);align-items:end}
.who figure{margin:0}
.who figure .img{overflow:hidden;background:#141414;aspect-ratio:.72;position:relative}
.who figure img{position:absolute;inset:-8% 0;width:100%;height:116%;max-width:none;object-fit:cover;object-position:50% 25%}
.who figcaption{border-top:1px solid var(--accent);padding-top:12px;margin-top:14px;display:flex;flex-direction:column;gap:4px}
.who figcaption b{font-weight:500;font-size:clamp(20px,1.8vw,28px);letter-spacing:-.02em}
@media (max-width:900px){.who .wrap{grid-template-columns:1fr}}

/* clientes: logos correndo */
.clients{padding-bottom:clamp(70px,9vw,130px)}
.lg-row{overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:clamp(26px,3.4vw,48px) 0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.lg-track{display:flex;width:max-content;will-change:transform}
.lg-set{display:flex;align-items:center;gap:clamp(56px,7vw,120px);padding-right:clamp(56px,7vw,120px);flex:none}
.lg-set img{height:calc(var(--h,.7) * clamp(70px,7.4vw,112px));width:auto;max-width:none;opacity:.82;transition:opacity .3s}
.lg-set img:hover{opacity:1}

/* contato */
.contact{overflow:hidden;min-height:88svh;display:flex;align-items:center}
.contact .wrap{display:grid;grid-template-columns:1.1fr .9fr;align-items:center}
.contact .tx{display:flex;flex-direction:column;gap:34px;position:relative;z-index:2}
.contact .phones{display:flex;flex-direction:column;gap:6px;font-family:var(--mono);font-size:clamp(18px,1.6vw,24px)}
.contact .phones a{align-self:flex-start;transition:color .3s}.contact .phones a:hover{color:var(--accent)}
.contact .o3d{position:relative;justify-self:end;width:min(780px,62vw);margin-right:calc(-1 * clamp(80px,14vw,260px))}
.contact .o3d{aspect-ratio:1/1}
.contact .o3d .fallback{position:absolute;inset:0;width:100%;height:auto;transition:opacity .8s}
.contact .o3d.ready .fallback{opacity:0}
.contact .o3d canvas{position:absolute;inset:0;width:100%;height:100%;touch-action:pan-y;cursor:grab}
.cur-on .contact .o3d canvas{cursor:none}
@media (max-width:900px){.contact .wrap{grid-template-columns:1fr}.contact .o3d{order:-1;width:92vw;margin:0 -30vw 10px auto}}

/* footer */
.ft{border-top:1px solid var(--line);padding:60px 0 30px;overflow:hidden}
.ft .big svg{width:100%;height:auto;color:var(--fg);overflow:visible}
.ft .row{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-top:40px;align-items:center}
.ft .links{display:flex;gap:22px;flex-wrap:wrap}
.ft .links a:hover{color:var(--fg)}

/* paginas de case */
.case-hero{padding:calc(var(--hh) + clamp(60px,9vw,130px)) 0 clamp(40px,6vw,80px)}
.case-hero .wrap{display:grid;grid-template-columns:1.2fr .8fr;gap:40px;align-items:end}
.case-hero .tx{display:flex;flex-direction:column;gap:30px}
.case-hero .ttl{font-size:clamp(48px,9vw,160px)}
.case-hero dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:12px 24px;border-top:1px solid var(--line2);padding-top:20px}
.case-hero dt{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.case-hero dd{margin:0;font-size:16px}
.back-fix{position:fixed;left:max(16px,var(--pad));bottom:calc(22px + env(safe-area-inset-bottom,0px));z-index:44;display:inline-flex;align-items:center;gap:10px;padding:13px 18px;background:rgba(10,10,10,.82);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--line2);color:var(--fg);font-size:12px;transition:background .3s,border-color .3s,color .3s,transform .5s var(--ease)}
.back-fix svg{width:16px;height:16px}
.back-fix:hover{background:var(--accent);border-color:var(--accent);color:#0A0A0A}
.back{display:inline-flex;gap:10px;align-items:center;align-self:flex-start;transition:color .3s}.back:hover{color:var(--fg)}
@media (max-width:900px){.case-hero .wrap{grid-template-columns:1fr}}
.gal{display:flex;flex-direction:column;gap:clamp(14px,2vw,32px);padding-bottom:clamp(60px,8vw,120px)}
.gal .row{display:flex;gap:clamp(14px,2vw,32px)}
.gal figure{margin:0;overflow:hidden;background:#141414;min-width:0;position:relative}
.gal figure img{position:absolute;left:0;top:-6%;width:100%;height:112%;max-width:none;object-fit:cover}
@media (max-width:700px){.gal .row{flex-direction:column}.gal figure{flex:none!important;width:100%}}
.shelf{display:flex;align-items:flex-end;justify-content:center;gap:clamp(10px,2.4vw,40px);padding:clamp(40px,6vw,90px) var(--pad);border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:clamp(10px,1.4vw,18px);flex-wrap:wrap}
.shelf img{height:clamp(110px,16vw,260px);width:auto;filter:drop-shadow(0 18px 18px rgba(0,0,0,.55));transition:transform .5s var(--ease)}
.shelf img:hover{transform:translateY(-10px)}
.shelf img.lg{height:clamp(90px,12vw,190px)}
.nextcase{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:clamp(50px,7vw,100px) 0;border-top:1px solid var(--line)}
.nextcase a.n{display:flex;flex-direction:column;gap:12px}
.nextcase .ttl-m{transition:color .35s}
.nextcase a.n:hover .ttl-m{color:var(--accent)}
@media (max-width:700px){.nextcase{flex-direction:column;align-items:flex-start;gap:28px}.nextcase .ttl-m{white-space:nowrap}}

/* revelacoes (so com JS) */
.js [data-r]{opacity:0;transform:translateY(26px)}
.js .rv{clip-path:inset(100% 0 0 0)}
.cur-on a,.cur-on button,.cur-on .svc,.cur-on .mo-player{cursor:none}
@media (prefers-reduced-motion:reduce){.grain{animation:none}}
.caret{display:inline-block;width:.5em;height:.9em;background:var(--accent);vertical-align:-.1em;margin-left:.05em}
.err{min-height:100svh;display:flex;align-items:center}
