*{margin:0;padding:0;box-sizing:border-box}
:root{--bg:#F5F4F1;--bg2:#FFFFFF;--card:#FFFFFF;--line:rgba(17,17,17,.08);--line-strong:rgba(17,17,17,.22);--text:#141417;--gray:#6E6E72;--acc1:#F2A03D;--acc2:#E4507C;--kicker:#E4507C;--nav-bg:rgba(255,255,255,.92);--grad:linear-gradient(100deg,var(--acc1),var(--acc2))}
body.dark{--bg:#0D0D0F;--bg2:#121214;--card:#17171A;--line:rgba(255,255,255,.09);--line-strong:rgba(255,255,255,.26);--text:#F6F4EF;--gray:#A3A19B;--kicker:#F2A03D;--nav-bg:rgba(13,13,15,.92)}
html{scroll-behavior:smooth}
body{font-family:'Inter',sans-serif;background:var(--bg);color:var(--text);overflow-x:clip;transition:background .4s,color .4s}
@media(pointer:fine){body,a,button{cursor:none}}
::selection{background:var(--acc2);color:#fff}
img{max-width:100%;display:block}
a{text-decoration:none;color:inherit}
h1,h2,h3{font-family:'Space Grotesk',sans-serif}
.serif{font-family:'Fraunces',serif;font-style:italic;font-weight:500}
.wrap{width:min(1240px,100% - 4rem);margin-inline:auto}
section{padding:7rem 0;scroll-margin-top:80px}
a:focus-visible,button:focus-visible{outline:2px solid var(--acc2);outline-offset:3px;border-radius:4px}
.cursor{width:20px;height:20px;border:1.5px solid var(--acc2);border-radius:50%;position:fixed;top:0;left:0;pointer-events:none;z-index:9999;transform:translate(-50%,-50%);transition:width .3s,height .3s,background .3s}
.cursor-dot{width:4px;height:4px;background:var(--acc2);border-radius:50%;position:fixed;top:0;left:0;pointer-events:none;z-index:9999;transform:translate(-50%,-50%)}
.cursor-label{position:fixed;top:0;left:0;pointer-events:none;z-index:9999;transform:translate(-50%,-50%);font:700 10px 'Space Grotesk';letter-spacing:2px;text-transform:uppercase;color:#fff;opacity:0;transition:opacity .2s}
.cursor.grow{width:48px;height:48px;background:rgba(228,80,124,.12)}
body.viewing .cursor{width:82px;height:82px;background:var(--acc2);border-color:var(--acc2)}
body.viewing .cursor-label{opacity:1}body.viewing .cursor-dot{opacity:0}
@media(pointer:coarse){.cursor,.cursor-dot,.cursor-label{display:none}}
nav{position:fixed;top:0;left:0;right:0;z-index:100;color:#fff;transition:.4s}
nav .wrap{display:flex;justify-content:space-between;align-items:center;padding:1.4rem 0}
nav.scrolled{color:var(--text);background:var(--nav-bg);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
nav.scrolled .wrap{padding:1rem 0}
.logo{display:flex;flex-direction:column;align-items:flex-start;gap:.25rem}
.logo-word{font-family:'Space Grotesk';font-size:1.2rem;line-height:1;letter-spacing:-.3px;font-weight:700;color:currentColor;white-space:nowrap}
.logo-word .thin{font-weight:400}
.logo small{font-size:.56rem;letter-spacing:2.5px;color:var(--acc1);text-transform:uppercase}
.nav-right{display:flex;align-items:center;gap:1rem}
.nav-links{display:flex;gap:1.8rem}
.nav-links a{font:600 .72rem 'Space Grotesk';letter-spacing:2px;text-transform:uppercase;color:var(--gray);position:relative}
.nav-links a::after{content:'';position:absolute;left:0;bottom:-6px;width:0;height:2px;background:var(--grad);transition:.3s}
.nav-links a:hover,.nav-links a.active{color:var(--text)}
.nav-links a.active::after,.nav-links a:hover::after{width:100%}
body.dark .nav-links a.active,body.dark .nav-links a:hover{color:#FFFDFB}
.theme-toggle{width:40px;height:40px;border:1px solid currentColor;border-radius:50%;background:transparent;color:inherit;display:grid;place-items:center;transition:.3s}
.theme-toggle:hover{color:var(--acc2)}
.theme-toggle svg{width:15px;height:15px}
.icon-moon{display:none}body.dark .icon-moon{display:block}body.dark .icon-sun{display:none}
.btn-pill{display:inline-flex;align-items:center;gap:.6rem;padding:.8rem 1.7rem;border-radius:50px;background:var(--grad);color:#fff;font:700 .7rem 'Space Grotesk';letter-spacing:2px;text-transform:uppercase;transition:box-shadow .3s,filter .3s;border:0;will-change:transform}
.btn-pill:hover{box-shadow:0 12px 28px rgba(228,80,124,.35);filter:brightness(1.06)}
.btn-wa{background:#25D366;color:#0B2418}
.btn-wa:hover{filter:brightness(1.1);box-shadow:0 12px 28px rgba(37,211,102,.4)}
.burger{display:none;background:none;border:0;width:30px;height:22px;position:relative;color:inherit;z-index:200}
.burger span{position:absolute;left:0;right:0;height:2px;background:currentColor;transition:.35s}
.burger span:nth-child(1){top:3px}.burger span:nth-child(2){top:11px}
.burger.open span:nth-child(1){top:7px;transform:rotate(45deg);background:var(--acc2)}
.burger.open span:nth-child(2){top:7px;transform:rotate(-45deg);background:var(--acc2)}
.m-menu{position:fixed;inset:0;background:#0C0C0E;z-index:150;display:flex;flex-direction:column;justify-content:center;padding:0 2.5rem;gap:1rem;transform:translateY(-100%);transition:.55s cubic-bezier(.7,0,.3,1)}
.m-menu.open{transform:none}
.m-menu a{font:700 clamp(1.8rem,6vw,2.6rem) 'Space Grotesk';text-transform:uppercase;color:#F6F4EF;display:flex;align-items:baseline;gap:1rem}
.m-menu a i{font-style:normal;font-size:.9rem;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.m-menu-foot{margin-top:2.5rem;color:#8b8b90;font-size:.8rem;display:flex;gap:1.6rem;flex-wrap:wrap}
.kicker{font:600 .7rem 'Space Grotesk';letter-spacing:3px;text-transform:uppercase;color:var(--kicker);margin-bottom:1.3rem;display:flex;align-items:center;gap:.8rem}
.kicker::before{content:'';width:40px;height:2px;background:var(--grad)}
.sec-title{font-size:clamp(2rem,4.4vw,3.8rem);font-weight:700;text-transform:uppercase;line-height:1.03;letter-spacing:-1.5px}
.outline{color:transparent;-webkit-text-stroke:.5px var(--text)}
.grad-text{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.chip{display:inline-flex;align-items:center;gap:.55rem;padding:.5rem 1.1rem;border:1px solid var(--line-strong);border-radius:50px;font:600 .62rem 'Space Grotesk';letter-spacing:2px;text-transform:uppercase;color:var(--gray)}
.live-dot{width:7px;height:7px;border-radius:50%;background:#4ADE80;animation:pulse 2s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(74,222,128,.5)}70%{box-shadow:0 0 0 8px transparent}100%{box-shadow:0 0 0 0 transparent}}
.hero{height:100vh;height:100svh;min-height:640px;position:relative;overflow:hidden;background:#0B0B0C;color:#fff}
.slide{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity .9s,visibility .9s}
.slide.active{opacity:1;visibility:visible}
.slide-media{position:absolute;inset:0;overflow:hidden}
.slide.active .slide-media{animation:kb 8s ease forwards}
@keyframes kb{from{transform:scale(1.03)}to{transform:scale(1)}}
.slide-media video,.slide-media img.slide-poster{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.s2{background:radial-gradient(110% 110% at 85% 20%,rgba(242,160,61,.5) 0%,rgba(122,58,10,.35) 40%,#0B0B0C 100%)}
.s3{background:radial-gradient(110% 110% at 15% 80%,rgba(228,80,124,.5) 0%,rgba(110,25,60,.35) 40%,#0B0B0C 100%)}
.slide-word{position:absolute;right:2%;bottom:12%;font:700 16vw 'Space Grotesk';line-height:1;color:transparent;-webkit-text-stroke:.5px rgba(255,255,255,.12);text-transform:uppercase;pointer-events:none}
.scrim{position:absolute;inset:0;background:linear-gradient(to top,rgba(5,5,6,.9),transparent 55%),linear-gradient(100deg,rgba(5,5,6,.82),rgba(5,5,6,.25) 65%)}
.slide .wrap{position:relative;z-index:2;height:100%;display:flex;flex-direction:column;justify-content:center}
.slide-kick{font:600 .7rem 'Space Grotesk';letter-spacing:3px;text-transform:uppercase;color:var(--acc1);margin-bottom:1.4rem}
.slide .chip{border-color:rgba(255,255,255,.3);color:rgba(255,255,255,.75);margin-bottom:1.4rem}
.slide h1{font-size:clamp(2.8rem,7.4vw,7rem);text-transform:uppercase;line-height:.95;letter-spacing:-2.5px;font-weight:700;max-width:960px}
.slide h1 .outline-w,.outline-w{color:transparent;-webkit-text-stroke:.5px #fff}
.slide-sub{color:rgba(255,255,255,.75);max-width:480px;margin-top:1.8rem;line-height:1.8;font-size:.95rem}
.slide-cta{display:flex;gap:1rem;flex-wrap:wrap;margin-top:2.4rem}
.btn-ghost{padding:.8rem 1.7rem;border-radius:50px;border:1px solid rgba(255,255,255,.4);color:#fff;font:600 .7rem 'Space Grotesk';letter-spacing:2px;text-transform:uppercase;transition:.3s}
.btn-ghost:hover{border-color:var(--acc1);color:var(--acc1);transform:translateY(-3px)}
.divider-mark{position:absolute;left:52%;top:50%;transform:translate(-50%,-50%);z-index:3;font:700 3.4rem 'Space Grotesk';color:var(--acc2);text-shadow:0 0 40px rgba(228,80,124,.5);animation:spin 22s linear infinite;pointer-events:none}
.slide .a{opacity:0;transform:translateY(36px);transition:.8s cubic-bezier(.2,.7,.2,1)}
.slide.active .a{opacity:1;transform:none}
.slide.active .d1{transition-delay:.15s}.slide.active .d2{transition-delay:.3s}.slide.active .d3{transition-delay:.5s}
.orbit{position:absolute;z-index:6;left:4rem;bottom:2.6rem;width:130px;height:130px;animation:spin 14s linear infinite}
.orbit text{font:600 14px 'Space Grotesk';letter-spacing:3.5px;fill:#fff;text-transform:uppercase}
.orbit-core{position:absolute;inset:0;display:grid;place-items:center;font-size:1.2rem;color:var(--acc1)}
@keyframes spin{to{transform:rotate(360deg)}}
.loc{position:absolute;right:4rem;bottom:6.8rem;z-index:6;color:#fff;font:500 .95rem 'Inter';display:flex;flex-direction:column;gap:.2rem}
.loc i{font-style:normal;color:var(--acc1)}
.slider-ui{position:absolute;right:4rem;bottom:2.4rem;z-index:6;display:flex;align-items:center;gap:1.4rem}
.slide-counter{font:700 .95rem 'Space Grotesk';letter-spacing:2px}
.slide-counter b{color:var(--acc1);font-size:1.2rem}.slide-counter span{opacity:.55}
.slide-arrows{display:flex;gap:.7rem}
.slide-arrows button{width:50px;height:50px;border-radius:50%;border:1px solid rgba(255,255,255,.35);background:transparent;color:#fff;font-size:1rem;transition:.3s;will-change:transform}
.slide-arrows button:hover{background:var(--grad);border-color:transparent}
.progress{position:absolute;left:0;bottom:0;height:3px;width:100%;background:rgba(255,255,255,.12);z-index:6}
.progress span{display:block;height:100%;width:0;background:var(--grad)}
@keyframes prog{from{width:0}to{width:100%}}
.marquee{overflow:hidden;white-space:nowrap;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:1.2rem 0;background:var(--bg2)}
.marquee-track{display:inline-flex;gap:2.6rem;animation:mq 24s linear infinite;align-items:center}
@keyframes mq{to{transform:translateX(-50%)}}
.marquee span{font:600 .85rem 'Space Grotesk';letter-spacing:3px;text-transform:uppercase;color:var(--gray)}
.marquee b{font:700 .85rem 'Space Grotesk';letter-spacing:3px;text-transform:uppercase;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.marquee i{font-style:normal;color:var(--acc2)}
.manifesto h2{font-size:clamp(1.8rem,3.6vw,3.2rem);line-height:1.2;letter-spacing:-1px;max-width:960px;font-weight:600;text-transform:none}
.manifesto .serif{font-size:1.08em;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.manifesto p{color:var(--gray);max-width:640px;margin-top:1.8rem;line-height:1.9}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:2rem;padding:4rem 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.stat .num{font:700 clamp(2.2rem,3.8vw,3.6rem) 'Space Grotesk';background:var(--grad);-webkit-background-clip:text;color:transparent;letter-spacing:-2px}
.stat .lbl{color:var(--gray);font:600 .68rem 'Space Grotesk';letter-spacing:2.5px;text-transform:uppercase;margin-top:.4rem}
.srv-list{border-top:1px solid var(--line)}
.srv{display:grid;grid-template-columns:90px 1fr auto;gap:2rem;align-items:center;padding:2.4rem .8rem;border-bottom:1px solid var(--line);transition:.35s}
.srv:hover{padding-left:1.6rem;background:var(--bg2)}
.srv-num{font:700 1.6rem 'Space Grotesk';background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.srv h3{font-size:clamp(1.3rem,2.4vw,2rem);text-transform:uppercase;letter-spacing:-.5px;margin-bottom:.6rem}
.srv h3 a{color:inherit;display:inline-block;transition:.3s}
.srv h3 a:hover{color:var(--acc2)}
.srv-tags{display:flex;gap:.5rem;flex-wrap:wrap}
.srv-tags span{padding:.32rem .85rem;border:1px solid var(--line);border-radius:50px;font:600 .6rem 'Space Grotesk';letter-spacing:1.5px;text-transform:uppercase;color:var(--gray)}
.srv p{color:var(--gray);max-width:400px;font-size:.88rem;line-height:1.7}
.srv-arrow{width:52px;height:52px;border:1px solid var(--line-strong);border-radius:50%;display:grid;place-items:center;font-size:1.1rem;transition:.35s}
.srv:hover .srv-arrow{background:var(--grad);border-color:transparent;color:#fff;transform:rotate(45deg)}
.proc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem}
.proc{border:1px solid var(--line);border-radius:18px;padding:2rem 1.6rem;background:var(--bg2);transition:.35s}
.proc:hover{transform:translateY(-6px);border-color:var(--acc2)}
.proc .n{font:700 3.4rem 'Space Grotesk';background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;line-height:1}
.proc h3{font-size:1.05rem;text-transform:uppercase;margin:1.2rem 0 .7rem;letter-spacing:1px}
.proc p{color:var(--gray);font-size:.83rem;line-height:1.7}
.cases-head{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:start;margin-bottom:3.5rem}
.cases-head h2{font-size:clamp(1.6rem,2.8vw,2.4rem);font-weight:600;line-height:1.25;letter-spacing:-.5px;text-transform:none;max-width:440px}
.cases-head p{color:var(--gray);font-size:.82rem;line-height:1.8;max-width:440px}
.cases-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 10px 10px}
.case{position:relative;overflow:hidden;aspect-ratio:1/1;background:var(--card);display:block}
.case-bg{position:absolute;inset:0;transition:transform .9s cubic-bezier(.2,.7,.2,1),filter .5s ease}
.g1{background:radial-gradient(120% 120% at 10% 10%,#3452e8 0%,#1b2a80 55%,#0c1233 100%)}
.g2{background:radial-gradient(120% 120% at 90% 10%,#F2A03D 0%,#8a4a10 55%,#241404 100%)}
.case-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:filter .5s ease}
.case .case-bg,.case .case-img{filter:grayscale(1)}
.case:hover .case-bg,.case:hover .case-img{filter:grayscale(0);transform:scale(1.05)}
.case-pill{position:absolute;top:1rem;right:1rem;z-index:2;display:flex;align-items:center;gap:.45rem;padding:.45rem 1rem;border-radius:50px;background:#fff;color:#141417;font:600 .62rem 'Space Grotesk';letter-spacing:1.5px;text-transform:uppercase;box-shadow:0 4px 14px rgba(0,0,0,.15)}
.case-pill::before{content:'';width:7px;height:7px;border-radius:50%;background:var(--grad)}
.case-overlay{position:absolute;inset:0;z-index:1;background:linear-gradient(to top,rgba(8,8,10,.88),transparent 55%);display:flex;flex-direction:column;justify-content:flex-end;padding:1.8rem;opacity:0;transition:.4s}
.case:hover .case-overlay{opacity:1}
.case-title{font:700 1.5rem 'Space Grotesk';color:#fff;transform:translateY(12px);transition:.4s}
.case-year{color:var(--acc1);font:600 .68rem 'Space Grotesk';letter-spacing:2px;margin-top:.3rem;transform:translateY(12px);transition:.4s .05s}
.case:hover .case-title,.case:hover .case-year{transform:none}
.filters{display:flex;gap:.6rem;flex-wrap:wrap}
.filter-btn{padding:.7rem 1.4rem;border:1px solid var(--line-strong);background:transparent;border-radius:50px;font:600 .68rem 'Space Grotesk';letter-spacing:1.5px;text-transform:uppercase;color:var(--gray);transition:.3s}
.filter-btn:hover{border-color:var(--acc2);color:var(--acc2)}
.filter-btn.active{background:var(--grad);border-color:transparent;color:#fff}
.page-hero{background:#0B0B0C;color:#fff;padding:10rem 0 4.5rem;position:relative;overflow:hidden}
.page-hero h1{font-size:clamp(2.6rem,6vw,5.4rem);text-transform:uppercase;letter-spacing:-2px;line-height:.98}
.page-hero .kicker{color:var(--acc1)}
.page-sub{color:rgba(255,255,255,.65);margin-top:1.2rem;font-size:.95rem}
.back{display:inline-flex;gap:.5rem;font:600 .7rem 'Space Grotesk';letter-spacing:2px;text-transform:uppercase;color:rgba(255,255,255,.6);margin-bottom:2rem}
.back:hover{color:var(--acc1)}
.slide-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.slide-media video,.proj-media video{opacity:0;transition:opacity .8s}
.slide-media video.on,.proj-media video.on{opacity:1}
.proj-media{position:absolute;inset:0;overflow:hidden;background:#0B0B0C}
.page-hero.proj-hero{padding:0;min-height:82vh;display:flex;align-items:center}
.page-hero.proj-hero .wrap{position:relative;z-index:2;padding:9rem 0 4.5rem}
.proj-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;padding:2.5rem 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.proj-meta h5{font:600 .65rem 'Space Grotesk';letter-spacing:2px;text-transform:uppercase;color:var(--gray);margin-bottom:.5rem}
.proj-meta p{font-weight:600}
.proj-tags{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:1.5rem}
.proj-tags.proj-tags-left{justify-content:flex-start;}
.proj-tags span{padding:.35rem .9rem;border:1px solid rgba(255,255,255,.35);border-radius:50px;font:600 .62rem 'Space Grotesk';letter-spacing:1.5px;text-transform:uppercase;color:rgba(255,255,255,.8)}
.proj-nav{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:4rem}
.proj-nav a{border:1px solid var(--line);border-radius:18px;padding:1.8rem;transition:.3s;display:block;background:var(--bg2)}
.proj-nav a:hover{border-color:var(--acc2)}
.proj-nav small{color:var(--gray);font:600 .62rem 'Space Grotesk';letter-spacing:2px;text-transform:uppercase}
.proj-nav b{font:700 1.2rem 'Space Grotesk';display:block;margin-top:.3rem;text-transform:uppercase}
.proj-nav .next{text-align:right}
.blocks{display:grid;grid-template-columns:repeat(12,1fr);gap:14px;margin-top:4rem}
.b{grid-column:var(--o,auto)/span var(--s,12);min-width:0}
.b.t{padding:1rem 0}
.b.t h2{font-size:clamp(1.5rem,2.6vw,2.3rem);text-transform:uppercase;letter-spacing:-1px;margin-bottom:1rem}
.b.t p{color:var(--gray);line-height:1.9;font-size:.98rem}
.b.t.c2 p{columns:2;column-gap:3rem}
.b.t.c3 p{columns:3;column-gap:2.5rem}
.b.t .quote{font-family:'Fraunces',serif;font-style:italic;font-size:clamp(1.4rem,2.8vw,2.4rem);line-height:1.35;color:var(--text)}
.b.t .quote b{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;font-weight:500}
figure.b{margin:0}
.b img,.b video{width:100%;border-radius:18px;display:block}
.b img{aspect-ratio:var(--ar,4/3);object-fit:cover}
.b video{aspect-ratio:16/9;object-fit:cover;background:#000}
.b video.on{opacity:1}
.b figcaption{color:var(--gray);font:500 .75rem 'Space Grotesk';letter-spacing:1.5px;text-transform:uppercase;margin-top:.7rem}
.depo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
.depo{background:var(--bg2);border:1px solid var(--line);border-radius:18px;padding:2rem;transition:.35s;display:flex;flex-direction:column;gap:1.3rem}
.depo:hover{transform:translateY(-6px);border-color:var(--acc1)}
.depo .stars{color:var(--acc1);letter-spacing:3px;font-size:.85rem}
.depo q{color:var(--text);opacity:.85;line-height:1.8;font-size:.92rem;quotes:'“' '”'}
.depo-foot{display:flex;align-items:center;gap:.9rem;margin-top:auto}
.depo-ava{width:44px;height:44px;border-radius:50%;background:var(--grad);display:grid;place-items:center;font:700 .85rem 'Space Grotesk';color:#fff}
.depo-foot b{display:block;font:600 .88rem 'Space Grotesk'}.depo-foot small{color:var(--gray);font-size:.72rem}
.cta{text-align:center;padding:8rem 0}
.cta h2{font-size:clamp(2.4rem,5.6vw,5rem);text-transform:uppercase;letter-spacing:-2px;line-height:1}
.cta p{color:var(--gray);margin:1.5rem 0 2.4rem}
.cta .btn-pill{padding:1.15rem 2.6rem;font-size:.78rem}
.cta .kicker{justify-content:center}
.about{display:grid;grid-template-columns:1fr 1.2fr;gap:4rem;align-items:start}
.about-photo{aspect-ratio:4/5;border-radius:24px;background-image:var(--photo,radial-gradient(110% 110% at 50% 30%,rgba(242,160,61,.6),rgba(228,80,124,.4) 55%,#0D0D0F));background-size:cover;background-position:center;position:relative;overflow:hidden}
.about-photo .chip{position:absolute;top:1.5rem;left:1.5rem}
.about-photo .year{position:absolute;right:1.5rem;bottom:1.5rem;font:700 5rem 'Space Grotesk';color:transparent;-webkit-text-stroke:.5px rgba(255,255,255,.4)}
.about h2{font-size:clamp(1.8rem,3.2vw,2.8rem);line-height:1.15;letter-spacing:-1px;margin-bottom:1.5rem;text-transform:none}
.about h2 .serif{font-size:1.05em;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.about p{color:var(--gray);line-height:1.9;margin-bottom:1.2rem}
.about-timeline{margin-top:2rem;padding-top:2rem;border-top:1px solid var(--line)}
.tl-item{display:flex;gap:1.2rem;padding:1rem 0;align-items:baseline}
.tl-year{font:700 .95rem 'Space Grotesk';color:var(--acc1);min-width:90px;letter-spacing:-.5px}
.tl-year .thin{color:var(--gray);font-weight:400;margin-left:.3rem}
.tl-item p{color:var(--text);margin:0;font-weight:500}
.about-values{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:2rem}
.value{padding:1.3rem;border:1px solid var(--line);border-radius:14px;background:var(--bg2)}
.value b{font:700 .8rem 'Space Grotesk';letter-spacing:1px;text-transform:uppercase;display:block;margin-bottom:.4rem}
.value span{color:var(--gray);font-size:.82rem;line-height:1.6}
.contact-box{display:grid;grid-template-columns:1fr 1.2fr;border-radius:24px;overflow:hidden;border:1px solid var(--line)}
.contact-left{background:var(--grad);padding:4.5rem 3.5rem;display:flex;flex-direction:column;justify-content:center;color:#fff;position:relative;overflow:hidden}
.contact-left .kicker{color:#fff}.contact-left .kicker::before{background:#fff}
.contact-left h2{font-size:clamp(1.8rem,2.8vw,2.6rem);line-height:1.1;letter-spacing:-1px;margin-bottom:1rem;text-transform:none}
.contact-left p{margin-bottom:2.2rem;opacity:.9}
.contact-left .chip{border-color:rgba(255,255,255,.5);color:#fff;margin-bottom:1.6rem}
.burst{position:absolute;right:2rem;top:2rem;font-size:2.2rem;color:#fff;animation:spin 10s linear infinite;opacity:.9}
.contact-social{display:flex;gap:.9rem}
.contact-social a{width:44px;height:44px;border:1.5px solid #fff;border-radius:50%;display:grid;place-items:center;transition:.3s}
.contact-social a:hover{background:#fff;color:var(--acc2);transform:translateY(-4px)}
.contact-social svg{width:16px;height:16px}
.contact-form{background:var(--bg2);padding:4rem 3.5rem;display:flex;flex-direction:column;gap:1.8rem}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1.8rem}
.contact-form input,.contact-form textarea{width:100%;background:transparent;border:none;border-bottom:1px solid var(--line-strong);padding:.75rem 0;color:var(--text);font-family:'Inter';font-size:.9rem;outline:none;transition:.3s;resize:none}
.contact-form input:focus,.contact-form textarea:focus{border-color:var(--acc2)}
.contact-form ::placeholder{color:var(--gray)}
.contact-form button{align-self:flex-end}
footer{background:#0C0C0E;color:#F6F4EF;padding:5rem 0 2rem;margin-top:7rem}
.foot-word{font:700 clamp(2.2rem,6.5vw,6.5rem) 'Space Grotesk';text-transform:uppercase;letter-spacing:-3px;color:transparent;-webkit-text-stroke:.5px rgba(246,244,239,.25);line-height:1;margin-bottom:3.5rem;transition:.5s}
.foot-word:hover{-webkit-text-stroke:.5px var(--acc2)}
.foot-word .thin{-webkit-text-stroke:.5px rgba(246,244,239,.14)}
.foot-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr;gap:2.5rem;padding-bottom:3rem;border-bottom:1px solid rgba(255,255,255,.1)}
.foot-grid .logo{display:flex;flex-direction:column;align-items:flex-start;gap:.25rem}
.foot-grid h4{font:600 .68rem 'Space Grotesk';letter-spacing:2.5px;text-transform:uppercase;color:var(--acc1);margin-bottom:1rem}
.foot-grid p,.foot-grid a{color:#a5a39d;font-size:.84rem;line-height:2;display:block}
.foot-grid a:hover{color:var(--acc2)}
.foot-copy{padding-top:1.6rem;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;color:#6d6b66;font-size:.7rem}
.top-btn{position:fixed;right:1.6rem;bottom:1.6rem;width:48px;height:48px;border-radius:50%;background:var(--grad);color:#fff;z-index:90;display:grid;place-items:center;border:0;opacity:0;pointer-events:none;transition:.3s;box-shadow:0 10px 24px rgba(228,80,124,.35)}
.top-btn.show{opacity:1;pointer-events:auto}
.reveal{opacity:0;transform:translateY(40px);transition:opacity .9s ease,transform .9s ease}
.reveal.visible{opacity:1;transform:none}
@media(max-width:1100px){
.wrap{width:min(1240px,100% - 2.5rem)}
section{padding:5rem 0}
.nav-links,.nav-right .btn-pill{display:none}
.burger{display:block}
.logo-word{font-size:1.05rem}
.divider-mark{left:auto;right:14%}
.orbit{left:2rem;bottom:2rem;width:104px;height:104px}
.loc{right:2rem;bottom:7.4rem}
.slider-ui{right:2rem;bottom:2rem}
.stats{grid-template-columns:repeat(2,1fr)}
.srv{grid-template-columns:60px 1fr}.srv p,.srv-arrow{display:none}
.proc-grid{grid-template-columns:1fr 1fr}
.cases-head{grid-template-columns:1fr;gap:1.2rem}
.cases-grid{grid-template-columns:1fr}
.depo-grid{grid-template-columns:1fr}
.contact-box{grid-template-columns:1fr}
.contact-left,.contact-form{padding:3.2rem 2rem}
.form-row{grid-template-columns:1fr}
.foot-grid{grid-template-columns:1fr 1fr}
.proj-meta{grid-template-columns:1fr;gap:1.2rem}
.proj-nav{grid-template-columns:1fr}
.about{grid-template-columns:1fr;gap:2.5rem}
.about-values{grid-template-columns:1fr}
.b{grid-column:1/-1!important}
.b.t.c2 p,.b.t.c3 p{columns:1}
.nav-links a.active{color:#fff}
nav.scrolled .nav-links a.active{color:var(--text)}
body.dark nav.scrolled .nav-links a.active{color:#FFFDFB}
}
@media(max-width:560px){.proc-grid{grid-template-columns:1fr}.foot-grid{grid-template-columns:1fr}.divider-mark{display:none}.logo-word{font-size:.95rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.001s!important;animation-iteration-count:1!important;transition-duration:.001s!important}}
/* ===== VÉU PRETO (multiply) SOBRE OS CASES ===== */
.case-bg::after{
content:'';
position:absolute;
inset:0;
background:rgba(5,5,8,.55);
mix-blend-mode:multiply;
pointer-events:none;
transition:opacity .45s ease;
}
.case:hover .case-bg::after{opacity:0}
/* ===== SLIDES: conforto visual ===== */
.slide .chip{align-self:flex-start}
.slide h1{font-size:clamp(2.6rem,6.2vw,5.8rem);max-width:820px}
/* ===== LINK "VER PORTFÓLIO COMPLETO" CENTRALIZADO ===== */
.cases-head{position:relative;padding-bottom:3.4rem;margin-bottom:2.2rem}
.cases-head a[href="portfolio.html"]{position:absolute;left:50%;bottom:0;transform:translateX(-50%);white-space:nowrap}
/* ===== FILTROS/TAGS: centro + entrelinha menor ===== */
.filters,#portTags,.proj-tags{justify-content:center;row-gap:.45rem}
/* ===== EMPTY STATE + chip "em breve" ===== */
.port-empty{grid-column:1/-1;text-align:center;padding:5rem 1.5rem;border:1px dashed var(--line-strong);border-radius:24px;background:var(--bg2)}
.port-empty .pe-mark{font-size:2rem;color:var(--acc2);margin-bottom:1rem}
.port-empty h3{font-size:clamp(1.4rem,2.4vw,2rem);text-transform:uppercase;letter-spacing:-.5px;margin-bottom:.8rem}
.port-empty p{color:var(--gray);max-width:420px;margin:0 auto 1.8rem;line-height:1.8;font-size:.9rem}
.srv-tags .soon{padding:.32rem .85rem;border:1px dashed var(--line-strong);border-radius:50px;font:600 .6rem 'Space Grotesk';letter-spacing:1.5px;text-transform:uppercase;color:var(--gray)}
/* ===== MAPA (contato) ===== */
.map-box{width:min(960px,100%);margin:-2rem auto 0;position:relative;z-index:2;box-shadow:0 30px 70px rgba(0,0,0,.3);border:1px solid var(--line);border-radius:24px;overflow:hidden;background:var(--bg2)}
.map-box iframe{display:block;width:100%;height:380px;border:0;filter:grayscale(1) contrast(1.05);transition:filter .5s}
.map-box:hover iframe{filter:grayscale(0)}
body.dark .map-box iframe{filter:grayscale(1) invert(.9) contrast(.92) brightness(.9)}
body.dark .map-box:hover iframe{filter:grayscale(.3) invert(.9) contrast(.92)}
.map-foot{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.2rem 1.6rem;flex-wrap:wrap}
.map-foot p{color:var(--gray);font-size:.85rem}
/* ===== COOKIES (modal) ===== */
.cc-wrap{position:fixed;inset:0;z-index:300;background:rgba(5,5,8,.62);backdrop-filter:blur(3px);display:flex;align-items:flex-end;justify-content:center;padding:1rem;overflow:auto}
.cc-card{width:min(720px,100%);background:var(--card);border:1px solid var(--line);border-radius:20px;box-shadow:0 20px 60px rgba(0,0,0,.35);padding:1.4rem 1.6rem;display:flex;flex-direction:column;gap:1rem}
.cc-txt b{font:700 .8rem 'Space Grotesk';letter-spacing:1.5px;text-transform:uppercase;display:block;margin-bottom:.4rem}
.cc-txt p{color:var(--gray);font-size:.82rem;line-height:1.6}
.cc-txt a{text-decoration:underline}
.cc-actions{display:flex;gap:.6rem;flex-wrap:wrap}
.cc-btn{padding:.7rem 1.3rem;border-radius:50px;font:700 .64rem 'Space Grotesk';letter-spacing:1.5px;text-transform:uppercase;border:1px solid var(--line-strong);background:transparent;color:var(--text);transition:.3s;cursor:pointer}
.cc-btn:hover{border-color:var(--acc2);color:var(--acc2)}
.cc-btn.solid{background:var(--grad);border-color:transparent;color:#fff}
.cc-btn.solid:hover{color:#fff;filter:brightness(1.06)}
.cc-prefs{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:1rem}
.cc-prefs[hidden]{display:none}
.cc-row{display:flex;align-items:center;gap:.5rem;font-size:.78rem;color:var(--text)}
.cc-row small{display:block;color:var(--gray);font-size:.66rem}
.cc-row input{width:14px;height:14px;accent-color:var(--acc2)}
@media(min-width:820px){.cc-wrap{align-items:center}.cc-actions{flex-wrap:nowrap}}
/* ===== SERVIÇOS EM 2 COLUNAS (desktop) — apague este bloco se não quiser ===== */
@media(min-width:1100px){
.srv-list{display:grid;grid-template-columns:1fr 1fr;gap:14px;border-top:0}
.srv{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:1.1rem;border:1px solid var(--line);border-radius:18px;padding:2.2rem 1.8rem;background:var(--bg2)}
.srv:hover{padding-left:2.2rem;transform:translateY(-4px);border-color:var(--acc2)}
.srv p{max-width:90%;text-align:left}
.srv-arrow{position:absolute;top:2rem;right:1.8rem;transform:rotate(180deg) scale(1);transition:transform .45s cubic-bezier(.2,.7,.2,1),background .35s,border-color .35s,color .35s}
.srv:hover .srv-arrow{transform:rotate(0deg) scale(1.08)}
}
/* ===== SEÇÃO 02 CENTRALIZADA (kicker, título, texto e link) ===== */
section:has(.cases-head) .kicker{justify-content:center}
.cases-head{display:grid;grid-template-columns:1fr;justify-items:center;text-align:center;gap:1.1rem;margin-bottom:3.5rem;padding-bottom:0}
.cases-head h2,.cases-head p{max-width:640px}
section .cases-head a[href*="portfolio"]{position:static;left:auto;bottom:auto;transform:none;margin-top:.4rem}

/* ===== MANIFESTO CENTRALIZADO (opcional — apague se não gostar) ===== */
.manifesto{text-align:center}
.manifesto .kicker{justify-content:center}
.manifesto h2{max-width:860px}
.manifesto p{max-width:560px;margin-inline:auto}

.manifesto h2{margin-inline:auto}
section:has(.cases-head) .kicker{justify-content:center}
.cases-head .kicker{justify-content:center}
.cases-head{grid-template-columns:1fr;justify-items:center;text-align:center;gap:1.1rem}
.cases-head h2,.cases-head p{max-width:640px}
.cases-head a[href*="portfolio"],.cases-head + a[href*="portfolio"]{position:static;left:auto;bottom:auto;transform:none;display:block;text-align:center;margin-top:1rem}

/* ===== AJUSTES DE CENTRALIZAÇÃO — HOME ===== */
/* 02 — o que fazemos / Soluções que criam impacto */
section:has(#srvListDyn) > .wrap{
  text-align:center;
}
section:has(#srvListDyn) > .wrap > .kicker{
  justify-content:center;
}
section:has(#srvListDyn) > .wrap > .sec-title{
  margin-inline:auto;
}

/* Estatísticas */
.stats{
  text-align:center;
}
.stat{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
}

/* Botão “Ver portfólio completo” */
section:has(#homeCases) > .wrap[style*="padding-top"]{
  display:flex;
  justify-content:center;
}

/* =========================================================
   AJUSTES GERAIS — 09/2026
   ========================================================= */

/* HERO DAS PÁGINAS INTERNAS: separação mais clara no dark */
body.dark .page-hero:not(.proj-hero){
  background:#151517;
  border-bottom:1px solid rgba(255,255,255,.08);
}
body:not(.dark) .page-hero:not(.proj-hero){
  border-bottom:1px solid rgba(255,255,255,.08);
}

/* MENU MOBILE: trava de rolagem; o próprio sanduíche vira o botão de fechar */
body.menu-open{overflow:hidden}
body.menu-open nav{z-index:200;background:transparent!important;border-bottom:0!important;backdrop-filter:none!important;color:#fff!important}
body.menu-open .burger{z-index:220;color:#fff}
body.menu-open .burger.open span{background:var(--acc2)}

/* PORTFÓLIO: seção dos filtros controlada por classe, sem depender de inline */
.portfolio-list-section{padding-top:3.5rem}
.portfolio-filters{margin-bottom:1.8rem}

@media(max-width:560px){
  /* Somente mobile: formulário primeiro, box laranja depois */
  .contact-box .contact-form{order:1}
  .contact-box .contact-left{order:2}

  /* Hero das páginas internas mais compacto no celular */
  .page-hero:not(.proj-hero){padding:6.8rem 0 2.65rem}
  .page-hero:not(.proj-hero) h1{font-size:clamp(2.15rem,12vw,3.15rem);letter-spacing:-1.4px}
  .page-hero:not(.proj-hero) .kicker{margin-bottom:.9rem}
  .page-hero:not(.proj-hero) .page-sub{margin-top:.8rem;font-size:.86rem;line-height:1.55}

  /* Portfólio: menos vazio antes das tags e thumbs */
  .portfolio-list-section{padding-top:1.45rem!important;padding-bottom:4rem}
  .portfolio-filters{margin-bottom:1rem}
  .filters{gap:.38rem;row-gap:.42rem}
  .filter-btn{padding:.48rem .78rem;font-size:.55rem;letter-spacing:1px}
  body #portTags.filters{margin:.5rem 0 1.15rem!important}
  body #portTags.filters .filter-btn{padding:.43rem .72rem;font-size:.53rem}

  /* Serviços: alteração de alinhamento SOMENTE no mobile */
  .srv{
    display:grid;
    grid-template-columns:34px minmax(0,1fr) minmax(96px,42%);
    gap:.65rem;
    align-items:start;
    padding:1.55rem .25rem;
  }
  .srv:hover{padding-left:.25rem}
  .srv > div{display:contents}
  .srv-num{grid-column:1;font-size:1.15rem;align-self:start}
  .srv h3{grid-column:2;margin:0;font-size:clamp(1rem,4.7vw,1.25rem);line-height:1.12;text-align:left}
  .srv-tags{grid-column:3;max-width:none;gap:.3rem;justify-content:flex-end;text-align:right;align-self:start}
  .srv-tags a,.srv-tags .soon{padding:.27rem .52rem!important;font-size:.49rem!important;letter-spacing:.8px!important}

  /* Menu mobile */
  .m-menu{padding:5rem 1.5rem 2rem;justify-content:center;gap:.72rem}
  .m-menu a{font-size:clamp(1.65rem,8vw,2.2rem)}
  .m-menu-foot{margin-top:1.6rem;gap:.65rem;flex-direction:column;font-size:.72rem}

  /* Rodapé mobile mais compacto */
  footer{margin-top:4rem;padding:3rem 0 1.35rem}
  .foot-word{font-size:clamp(1.7rem,9vw,2.5rem);letter-spacing:-1.2px;margin-bottom:2rem}
  .foot-grid{grid-template-columns:1fr 1fr;gap:1.35rem 1rem;padding-bottom:2rem}
  .foot-grid>div:first-child{grid-column:1/-1}
  .foot-grid>div:nth-child(4){grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;column-gap:1rem}
  .foot-grid>div:nth-child(4) h4{grid-column:1/-1}
  .foot-grid h4{margin-bottom:.55rem}
  .foot-grid p,.foot-grid a{font-size:.76rem;line-height:1.65}
  .foot-grid .logo + p{margin-top:.7rem!important;max-width:440px}
  .foot-copy{padding-top:1.15rem;font-size:.64rem;gap:.65rem;line-height:1.5}
}

/* Mantém o menu fechado fora da navegação por teclado/clique. */
.m-menu{visibility:hidden;pointer-events:none;transition:transform .55s cubic-bezier(.7,0,.3,1),visibility 0s linear .55s}
.m-menu.open{visibility:visible;pointer-events:auto;transition-delay:0s}


/* ===== HERO MOBILE: viewport real + áreas seguras ===== */
@media(max-width:1100px){
  .hero{height:100svh;height:100dvh;min-height:0}
  .slide .wrap{
    padding-top:calc(5.4rem + env(safe-area-inset-top));
    padding-bottom:calc(6.6rem + env(safe-area-inset-bottom));
  }
  .slider-ui{
    right:max(1.25rem,env(safe-area-inset-right));
    bottom:calc(1rem + env(safe-area-inset-bottom));
    gap:1rem;
  }
  .slide-arrows button{width:44px;height:44px}
  .orbit{
    left:max(1.25rem,env(safe-area-inset-left));
    bottom:calc(1rem + env(safe-area-inset-bottom));
    width:88px;height:88px;
  }
}

@media(max-width:560px){
  .slide h1{font-size:clamp(2.15rem,10.5vw,3rem);letter-spacing:-1.6px}
  .slide .chip{margin-bottom:1rem}
  .slide-kick{margin-bottom:1rem;font-size:.64rem;letter-spacing:2px}
  .slide-sub{margin-top:1.15rem;font-size:.86rem;line-height:1.55;max-width:92%}
  .slide-cta{margin-top:1.45rem;gap:.65rem}
  .slide-cta .btn-pill,.slide-cta .btn-ghost{padding:.72rem 1.15rem;font-size:.62rem}
  .slider-ui{right:max(1rem,env(safe-area-inset-right));gap:.72rem}
  .slide-arrows{gap:.45rem}
  .slide-arrows button{width:40px;height:40px}
  .orbit{left:max(1rem,env(safe-area-inset-left));width:74px;height:74px}
}

/* Celulares baixos e modo paisagem: evita que conteúdo e controles disputem espaço. */
@media(max-width:1100px) and (max-height:700px){
  .slide .wrap{padding-top:4.5rem;padding-bottom:5.2rem}
  .slide .chip{margin-bottom:.65rem;padding:.4rem .8rem;font-size:.55rem}
  .slide-kick{margin-bottom:.6rem}
  .slide h1{font-size:clamp(1.95rem,8.6vw,2.65rem)}
  .slide-sub{margin-top:.7rem;line-height:1.4}
  .slide-cta{margin-top:.85rem}
  .orbit{display:none}
  .slider-ui{bottom:calc(.65rem + env(safe-area-inset-bottom))}
}

@media(max-width:900px) and (max-height:500px) and (orientation:landscape){
  .slide .wrap{padding-top:3.8rem;padding-bottom:3.6rem}
  .slide .chip{display:none}
  .slide-kick{margin-bottom:.45rem}
  .slide h1{font-size:clamp(1.65rem,6.2vw,2.35rem);line-height:.92}
  .slide-sub{margin-top:.5rem;font-size:.78rem;line-height:1.3;max-width:62%}
  .slide-cta{margin-top:.65rem}
  .slide-arrows button{width:36px;height:36px}
}

/* =========================================================
   TESTE — FADE DE ENTRADA + FADE DE MÍDIA + PROTEÇÃO LEVE
   ========================================================= */

/* Entrada suave da página sem criar uma tela de loading artificial. */
body{
  animation:site-page-fade-in .45s ease both;
}
@keyframes site-page-fade-in{
  from{opacity:0}
  to{opacity:1}
}

/* Imagens e vídeos dos cases aparecem suavemente quando ficam disponíveis. */
.media-fade{
  opacity:0;
  transition:opacity .6s ease;
}
.media-fade.media-loaded{
  opacity:1;
}

/* Dificulta arrastar/copiar as mídias do portfólio, sem bloquear texto e links. */
.case-bg img,
.proj-media img,
.blocks img{
  -webkit-user-drag:none;
  user-select:none;
  -webkit-user-select:none;
}

/* Respeita a preferência do visitante por menos movimento. */
@media(prefers-reduced-motion:reduce){
  body{animation:none!important;opacity:1!important}
  .media-fade{opacity:1!important;transition:none!important}
}

/* Menu mobile: mantém o cabeçalho e o X acima do overlay. */
@media(max-width:1100px){
  nav .wrap{padding-top:calc(1.1rem + env(safe-area-inset-top))}
  body.menu-open .logo,body.menu-open .theme-toggle{position:relative;z-index:210}
}

/* =========================================================
   PROJETOS — PADRONIZAÇÃO MOBILE DE MÍDIA E LEGENDAS
   ========================================================= */
@media(max-width:560px){

  /* Mantém todas as imagens internas dos projetos com a mesma proporção no mobile.
     No desktop continuam valendo os valores individuais de --ar. */
  .blocks figure.b > img,
  .blocks .b > img{
    width:100%;
    aspect-ratio:4 / 3 !important;
    height:auto;
    object-fit:cover;
    object-position:center;
  }

  /* Padroniza o espaçamento vertical entre os blocos no mobile. */
  .blocks{
    row-gap:14px !important;
  }

  /* Alguns projetos ainda possuem <br> soltos entre os blocos.
     No grid mobile eles podem criar um espaço extra. */
  .blocks > br{
    display:none !important;
  }

  /* Figcaptions vazios também podem acrescentar espaço entre duas imagens. */
  .blocks figure.b > figcaption:empty{
    display:none !important;
    margin:0 !important;
  }

  /* Mais respiro nas legendas/descritivos abaixo das imagens.
     Sobrescreve inclusive margens negativas definidas inline. */
  .blocks figure.b > figcaption:not(:empty){
    margin:.9rem .85rem 1.5rem !important;
    padding:0 !important;
    line-height:1.6;
  }
}
