:root{--m:40px;--fg:#0a0a0a;--mute:#6e6e6e;--line:#e6e6e6;--card:#f6f6f6;--sans:"Geist",system-ui,sans-serif;--mono:"Geist Mono",ui-monospace,monospace}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:#fff;color:var(--fg);font-family:var(--sans);-webkit-font-smoothing:antialiased;letter-spacing:-.01em}
a{color:inherit}.u{text-decoration:underline;text-underline-offset:.14em;text-decoration-thickness:1px}
img{display:block;max-width:100%}
.wrap{max-width:1440px;margin:0 auto;padding:0 var(--m)}
.mono{font-family:var(--mono);font-size:12px;text-transform:uppercase;letter-spacing:.02em;color:var(--mute)}
/* nav */
.nav{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.9);backdrop-filter:blur(10px)}
.nav .wrap{height:64px;display:flex;align-items:center;justify-content:space-between}
.logo{display:flex;align-items:center;gap:8px;text-decoration:none;font-size:18.67px}
.logo i{width:20px;height:20px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#d8f3ff,#7fc4ff 55%,#f6e9a8)}
.nav ul{display:flex;gap:32px;list-style:none;margin:0;padding:0;font-size:16px}.nav ul a,.nav .cta{text-decoration:none}.nav ul a:hover,.nav .cta:hover{text-decoration:underline}
/* hero */
.hero{padding-top:157px;padding-bottom:90px}
.trusted{display:flex;align-items:center;gap:12px;font-size:16px;color:var(--mute);text-decoration:none}
.trusted .av{display:flex}.trusted .av img{width:22px;height:22px;border-radius:50%;border:2px solid #fff;margin-left:-6px}.trusted .av img:first-child{margin-left:0}
.hero h1{font-weight:400;font-size:40px;line-height:1.3;letter-spacing:-.025em;margin:34px 0 0;max-width:900px}
.hero p{font-size:24px;margin:96px 0 0;letter-spacing:-.02em}
/* sections */
section.s{padding-top:120px}
.sh{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:56px}
.sh h2{font-weight:400;font-size:40px;letter-spacing:-.03em;margin:0;line-height:1}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.quote{border-top:1px solid var(--line);padding-top:24px}
.quote blockquote{margin:22px 0 32px;font-size:24px;line-height:1.3;letter-spacing:-.02em}
.who{display:flex;gap:12px;align-items:center;font-size:16px}.who i{width:40px;height:40px;border-radius:50%;background:#eee}.who small{display:block;font-size:16px;color:var(--mute)}
.work{display:grid;grid-template-columns:1fr 1fr;gap:20px 20px}
.card{text-decoration:none;display:block}
.card .img{aspect-ratio:3/2;background:#222;overflow:hidden}.card:nth-child(even) .img{background:#eee}
.card .img img,.card .img video{display:block;width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.2,1)}.card:hover .img img,.card:hover .img video{transform:scale(1.03)}
.card .t{display:flex;justify-content:space-between;align-items:flex-start;margin-top:24px}
.card h3{margin:0;font-weight:400;font-size:32px;line-height:1.3;letter-spacing:-.03em}.card h3 span{display:block;color:var(--mute)}
.card .view{font-size:16px;text-decoration:underline}
.card .meta{display:flex;gap:28px;border-top:1px solid var(--line);margin-top:24px;padding:16px 0 60px}
.svc{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.svc article{background:var(--card);border-radius:12px;padding:24px;min-height:260px;display:flex;flex-direction:column}
.svc h3{font-weight:400;font-size:24px;margin:14px 0 14px;letter-spacing:-.02em}.svc p{margin:0;font-size:16px;color:var(--mute);line-height:1.35}
.svc .foot{margin-top:auto;padding-top:28px;display:flex;justify-content:space-between}.svc .foot b{font-weight:500;color:var(--fg)}
/* bubbles */
.bmap{position:relative;width:100%;aspect-ratio:1360/500;container-type:inline-size;margin-top:40px}
.b{position:absolute;display:flex;flex-direction:column;align-items:center;text-decoration:none;transform:translate(-50%,-50%);animation:float var(--d) ease-in-out var(--dl) infinite alternate}
.b .c{width:var(--s);height:var(--s);border-radius:50%;overflow:hidden;background:#eee;box-shadow:0 0 0 1px rgba(0,0,0,.06);transition:border-radius .35s cubic-bezier(.3,1.6,.5,1),transform .35s cubic-bezier(.3,1.6,.5,1)}
.b .c img{width:100%;height:100%;object-fit:cover}
.b .l{margin-top:.35cqw;display:flex;align-items:center;gap:.2cqw;font-family:var(--mono);font-size:max(7px,.62cqw);color:#444;white-space:nowrap}
.b .l svg{width:max(8px,.7cqw);height:max(8px,.7cqw)}
.b:hover .c{transform:scale(1.06)}
.b.press .c{animation:squish .45s cubic-bezier(.3,1.4,.5,1)}
@keyframes float{0%{translate:0 0}50%{translate:var(--fx) calc(var(--fy)*-1)}100%{translate:calc(var(--fx)*-1) var(--fy)}}
@keyframes squish{0%{border-radius:50%;transform:scale(1)}30%{border-radius:42% 58% 55% 45%/55% 42% 58% 45%;transform:scale(.88,1.08) translate(var(--nx),var(--ny))}65%{border-radius:55% 45% 48% 52%/45% 55% 45% 55%;transform:scale(1.07,.94)}100%{border-radius:50%;transform:scale(1)}}
/* process */
.proc{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.proc article{border-top:1px solid var(--line);padding-top:24px}.proc article:first-child{border-color:var(--fg)}
.proc h3{font-weight:400;font-size:24px;margin:16px 0;letter-spacing:-.02em}.proc p{font-size:16px;color:var(--mute);margin:0 0 16px;line-height:1.35}
/* about */
.about{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.about p{font-size:16px;line-height:1.4;margin:12px 0 0}
/* faq */
.faq details{border-top:1px solid var(--line);padding:24px 0}.faq details:last-child{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;font-size:24px;letter-spacing:-.02em}.faq summary::-webkit-details-marker{display:none}
.faq summary:after{content:"+";font-size:24px}.faq details[open] summary:after{content:"−"}
.faq p{font-size:16px;color:var(--mute);max-width:880px;margin:14px 0 0;line-height:1.4}
/* cta */
.cta-s{padding-top:200px}.cta-s h2{font-weight:400;font-size:clamp(56px,8.4vw,120px);letter-spacing:-.045em;margin:0;line-height:1}
.cta-s .mail{display:inline-block;font-size:40px;margin-top:60px;letter-spacing:-.03em}
footer{margin-top:150px;border-top:1px solid var(--line)}footer .wrap{display:flex;justify-content:space-between;align-items:center;padding-top:20px;padding-bottom:28px}
footer nav{display:flex;gap:20px}footer nav a{color:var(--fg)}
/* case pages */
.case-h{padding-top:120px;padding-bottom:60px}.case-h h1{font-weight:400;font-size:56px;letter-spacing:-.04em;margin:16px 0 0;line-height:1.05}.case-h h1 span{display:block;color:var(--mute)}
.case-meta{display:flex;gap:28px;margin-top:40px;border-top:1px solid var(--line);padding-top:16px;flex-wrap:wrap}
.frames{display:flex;flex-direction:column;gap:20px}.frames img{width:100%;height:auto;background:#f2f2f2}

@media (max-width:900px){
 :root{--m:20px}.nav ul{display:none}
 .hero{padding-top:80px;padding-bottom:40px}.hero h1{font-size:28px}.hero p{font-size:18px;margin-top:48px}
 section.s{padding-top:80px}.sh h2{font-size:30px}.sh{margin-bottom:32px}
 .grid3,.work,.svc,.proc,.about{grid-template-columns:1fr}
 .card h3{font-size:24px}.card .meta{flex-wrap:wrap;gap:8px 20px;padding-bottom:40px}
 .bmap{width:190%;margin-left:-45%}
 .cta-s{padding-top:120px}.cta-s .mail{font-size:24px;margin-top:32px}
 footer .wrap{flex-direction:column;gap:14px;align-items:flex-start}footer{margin-top:80px}
 .case-h h1{font-size:34px}.faq summary{font-size:18px;gap:16px}
}
@media (prefers-reduced-motion:reduce){.b{animation:none}}
/* project template (from gabriel-freitez.netlify.app) */
.ph{padding-top:100px}.ph h1{font-weight:400;font-size:clamp(44px,6vw,88px);letter-spacing:-.045em;line-height:1;margin:28px 0 0}
.ph-sub{font-size:24px;color:var(--mute);margin:12px 0 48px;letter-spacing:-.02em}
.ph-media{aspect-ratio:16/9;background:#111;overflow:hidden}.ph-media img,.ph-media video{width:100%;height:100%;object-fit:cover;display:block}
.pd{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding-top:56px;padding-bottom:80px}
.pd-col{display:flex;flex-direction:column;gap:22px}.pm p{margin:6px 0 0;font-size:16px;line-height:1.4;max-width:560px}.pl{font-size:16px}
.pg{display:flex;flex-direction:column;gap:20px}.g2{display:grid;grid-template-columns:1fr 1fr;gap:20px}.g1.narrow{max-width:900px;margin:0 auto;width:100%}
.pg figure{margin:0;background:#f2f2f2}.pg img{width:100%;height:auto}
@media (max-width:900px){.ph{padding-top:56px}.ph-sub{font-size:18px}.pd{grid-template-columns:1fr;padding-bottom:48px}.g2{grid-template-columns:1fr}}
/* case study (ported from case-site) */
.cs-title{text-transform:uppercase}.h-line{display:block;overflow:hidden}.h-line>span{display:inline-block;transform:translateY(105%);animation:up 1s cubic-bezier(.22,.61,.36,1) forwards}.h-line:nth-child(2)>span{animation-delay:.12s}
.cs-sub{opacity:0;animation:fade .9s ease .5s forwards}.hero-img{clip-path:inset(100% 0 0 0);animation:wipe 1.4s cubic-bezier(.65,0,.35,1) .25s forwards}
@keyframes up{to{transform:none}}@keyframes fade{to{opacity:1}}@keyframes wipe{to{clip-path:inset(0 0 0 0)}}
.phx{color:#a3a3a3}
.case{display:flex;flex-direction:column;gap:20px}
.block{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding:140px 0 60px}
.block__label{margin:0;color:var(--fg)}.block__label span{display:block;color:var(--mute);margin-bottom:6px}
.block__body{display:flex;flex-direction:column;gap:16px;max-width:560px}.block__body h3{margin:0;font-weight:400;font-size:32px;letter-spacing:-.03em;line-height:1.1}
.block__body p,.block__body li{margin:0;font-size:16px;line-height:1.45}.block__body ul{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:8px}
.case .img{position:relative;width:100%;background:#F6F6F6;overflow:hidden}.case .img img{width:100%;height:auto;display:block;transform:scale(var(--s,1));transition:transform .2s linear}
.pair{display:grid;grid-template-columns:1fr 1fr;gap:20px}.split{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:center}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;padding-top:24px}.stat b{display:block;font-weight:400;font-size:32px;letter-spacing:-.03em}
.rv{opacity:0;transform:translateY(24px);transition:opacity 1s cubic-bezier(.25,1,.5,1),transform 1s cubic-bezier(.22,.61,.36,1)}.rv.in{opacity:1;transform:none}
.stack{aspect-ratio:16/9}.stack img{position:absolute!important;inset:0;width:100%;height:100%!important;object-fit:cover;opacity:0;transition:opacity .8s ease!important}.stack img.on{opacity:1}
.cur{position:absolute;width:18px;height:18px;border-radius:50%;background:#fff;border:1.5px solid #0a0a0a;transition:left 1s cubic-bezier(.65,0,.35,1),top 1s cubic-bezier(.65,0,.35,1);z-index:3;pointer-events:none}
.cur.click{animation:ring .5s ease-out}@keyframes ring{0%{box-shadow:0 0 0 0 rgba(255,255,255,.7)}100%{box-shadow:0 0 0 18px rgba(255,255,255,0)}}
.scan:after{content:"";position:absolute;left:16%;right:16%;height:2px;top:20%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);animation:scan 4.5s ease-in-out infinite;pointer-events:none}
@keyframes scan{0%,100%{top:22%;opacity:0}15%,85%{opacity:1}50%{top:78%}}
html,body{overflow-x:clip}
@media (max-width:900px){.block{grid-template-columns:1fr;gap:12px;padding:80px 0 32px}.pair,.split,.stats{grid-template-columns:1fr}.block__body h3{font-size:24px}}
@media (prefers-reduced-motion:reduce){.h-line>span,.cs-sub,.hero-img,.rv{opacity:1!important;transform:none!important;clip-path:none!important;animation:none!important}.case .img img{transform:none!important}.scan:after,.cur{display:none}}
/* ===== Restored sizes (deploy 50b3afd6) + FTZBENTO trackAuto/lhAuto, all weight 400 ===== */
:root{--fs-nota:10.2px;--tr-nota:0.0089em;--lh-nota:1.498;--fw-nota:400;--fs-pie:12.8px;--tr-pie:-0.0025em;--lh-pie:1.477;--fw-pie:400;--fs-cuerpo:16.0px;--tr-cuerpo:-0.0110em;--lh-cuerpo:1.450;--fw-cuerpo:400;--fs-entrada:20.0px;--tr-entrada:-0.0167em;--lh-entrada:1.375;--fw-entrada:400;--fs-subtitulo:25.0px;--tr-subtitulo:-0.0199em;--lh-subtitulo:1.290;--fw-subtitulo:600;--fs-titulo:31.2px;--tr-titulo:-0.0215em;--lh-titulo:1.228;--fw-titulo:600;--fs-display:39.1px;--tr-display:-0.0221em;--lh-display:1.164;--fw-display:600;--fs-cartel:48.8px;--tr-cartel:-0.0223em;--lh-cartel:1.116;--fw-cartel:600;--fg:#1d1d1f;--mute:#6e6e73;--card:#f5f5f7;--line:#e5e5ea;--r:18px}
html{text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-kerning:normal;font-feature-settings:"kern","liga","calt";font-optical-sizing:auto}
body{color:var(--fg)}
h1,h2,h3,summary{text-wrap:balance}p,li,blockquote{text-wrap:pretty}
.mono{font-size:var(--fs-pie);line-height:var(--lh-pie);letter-spacing:.08em;font-weight:400}
.b .l{font-size:max(var(--fs-nota),.62cqw);letter-spacing:.08em}
.sh{margin-bottom:48px}section.s{padding-top:140px}.block{padding:120px 0 48px}.svc article{background:var(--card);border-radius:var(--r)}.card .img,.ph-media,.case .img{border-radius:var(--r)}.card .t{padding-bottom:56px}.block__body{max-width:980px}.ph-sub{color:var(--mute);margin:16px 0 56px}
.cta-s h2{font-size:120px;letter-spacing:-0.0223em;line-height:1.000;font-weight:400}
.ph h1{font-size:88px;letter-spacing:-0.0223em;line-height:1.016;font-weight:400}
.hero h1,.sh h2,.cta-s .mail{font-size:40px;letter-spacing:-0.0221em;line-height:1.160;font-weight:400}
.card h3,.block__body h3,.stat b{font-size:32px;letter-spacing:-0.0216em;line-height:1.220;font-weight:400}
.quote blockquote,.hero p,.ph-sub,.svc h3,.proc h3,.faq summary{font-size:24px;letter-spacing:-0.0195em;line-height:1.300;font-weight:400}
body,.svc p,.proc p,.faq p,.about p,.pm p,.block__body p,.block__body li,.who,.who small,.card .view,.nav ul,.trusted,.pl,.logo,.nav .cta{font-size:16px;letter-spacing:-0.0110em;line-height:1.450;font-weight:400}
.card h3 span{font-weight:400;letter-spacing:inherit}
@media (max-width:900px){.cta-s h2{font-size:56px;letter-spacing:-0.0223em;line-height:1.080;font-weight:400}.ph h1{font-size:34px;letter-spacing:-0.0218em;line-height:1.200;font-weight:400}.sh h2{font-size:30px;letter-spacing:-0.0213em;line-height:1.240;font-weight:400}.hero h1{font-size:28px;letter-spacing:-0.0209em;line-height:1.260;font-weight:400}.card h3,.block__body h3,.cta-s .mail{font-size:24px;letter-spacing:-0.0195em;line-height:1.300;font-weight:400}.hero p,.ph-sub,.faq summary{font-size:18px;letter-spacing:-0.0143em;line-height:1.413;font-weight:400}section.s{padding-top:96px}.block{padding:80px 0 32px}}
.card .t{padding-bottom:0}.cta-s h2{font-size:clamp(56px,8.4vw,120px)}.ph h1{font-size:clamp(44px,6vw,88px)}@media (max-width:900px){.cta-s h2{font-size:56px}.ph h1{font-size:34px}}
.two{position:relative;width:100%;aspect-ratio:16/9;background:#F6F6F6;border-radius:var(--r);overflow:hidden}
.two img{position:absolute;top:10.926%;width:20.3125%;height:78.148%;border-radius:11.28%/5.21%;display:block;opacity:0;transition:opacity 700ms ease-out,transform 700ms ease-out}
.two .ph-l{left:23.4375%;transform:translateY(-14.22%)}.two .ph-r{left:56.25%;transform:translateY(14.22%);transition-delay:80ms}
.two.in img{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.two img{opacity:1!important;transform:none!important;transition:none!important}}
