:root{
  --ink:#0a0a0a;--acid:#d6f22e;--paper:#f4f4ee;--white:#fff;
  --text:#e8e8e2;--muted:#9c9c95;--line:rgba(255,255,255,.14);
  --display:'Montserrat',system-ui,sans-serif;--body:'Inter',system-ui,sans-serif;
  --gutter:clamp(20px,5vw,84px);--max:1480px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{background:var(--ink);color:var(--text);font-family:var(--body);font-size:17px;line-height:1.6;overflow-x:hidden}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
ul{list-style:none}
.wrap{padding-left:var(--gutter);padding-right:var(--gutter);max-width:var(--max);margin:0 auto}
h1,h2,h3,.display{font-family:var(--display);font-weight:900;text-transform:uppercase;line-height:.95;letter-spacing:-.02em;color:#fff}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;font-family:var(--display);font-weight:700;font-size:14px;line-height:1;text-decoration:none;padding:17px 26px;border:1px solid transparent;transition:background .2s,color .2s,border-color .2s,transform .2s;white-space:nowrap}
.btn:hover{transform:translateY(-1px)}
.btn-acid{background:var(--acid);color:#000}
.btn-acid:hover{background:#fff}
.btn-ghost{border-color:rgba(255,255,255,.35);color:#fff}
.btn-ghost:hover{border-color:#fff}
.btn-dark{background:#000;color:#fff}
.btn-dark:hover{background:#222}

/* nav */
.nav{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:20px var(--gutter);transition:background .3s,padding .3s,border-color .3s;border-bottom:1px solid transparent}
.nav.scrolled{background:rgba(10,10,10,.82);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-color:var(--line);padding:14px var(--gutter)}
.nav .logo img{height:20px;width:auto}
.nav .btn{padding:13px 20px;font-size:13px}

/* hero */
.hero{min-height:100svh;display:flex;flex-direction:column;justify-content:flex-end;padding-top:150px;position:relative}
.hero h1{font-size:clamp(46px,9.4vw,156px);max-width:16ch}
.hero h1 .outline{color:var(--ink);-webkit-text-stroke:4px var(--acid);paint-order:stroke fill}
.hero-row{display:grid;grid-template-columns:1.15fr .85fr;gap:48px;align-items:end;margin-top:44px;padding-bottom:64px}
.hero .lede{font-size:clamp(17px,1.35vw,21px);max-width:580px;color:var(--text)}
.hero-cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}
.stats{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line)}
.stat{padding:28px 0 0}
.stat+.stat{border-left:1px solid var(--line);padding-left:32px}
.stat .n{font-family:var(--display);font-weight:900;font-size:clamp(40px,4.8vw,76px);line-height:1;color:#fff;letter-spacing:-.03em}
.stat .l{color:var(--muted);font-size:14px;line-height:1.45;margin-top:12px;max-width:250px}

/* marquee */
.marquee{background:var(--acid);color:#000;overflow:hidden;white-space:nowrap;padding:16px 0}
.marquee .track{display:inline-flex;animation:scroll 46s linear infinite;will-change:transform}
.marquee span{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:clamp(16px,1.6vw,22px);padding:0 30px;letter-spacing:-.01em;line-height:1}
.marquee span::after{content:"";display:inline-block;width:8px;height:8px;background:#000;margin-left:60px;vertical-align:middle;position:relative;top:-2px}
@keyframes scroll{to{transform:translateX(-50%)}}

/* services */
.services{padding:130px 0 120px}
.services h2{font-size:clamp(36px,5.4vw,84px);max-width:14ch}
.services .intro{margin-top:26px;color:var(--muted);max-width:560px;font-size:18px}
.svc-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:72px;margin-top:72px;align-items:start}
.svc-media{position:sticky;top:110px;aspect-ratio:4/3;overflow:hidden;background:#141414}
.svc-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .6s ease,transform 1.2s ease;transform:scale(1.04)}
.svc-media img.on{opacity:1;transform:none}
.svc-list{border-top:1px solid var(--line)}
.svc-list li{border-bottom:1px solid var(--line)}
.svc-list .row{display:grid;grid-template-columns:56px 1fr;gap:20px;padding:34px 0;cursor:default}
.svc-list .num{font-family:var(--display);font-weight:700;color:var(--muted);font-size:14px;padding-top:9px;transition:color .2s}
.svc-list h3{font-size:clamp(22px,2.3vw,34px);text-transform:none;letter-spacing:-.015em;font-weight:800;line-height:1.08;transition:color .2s}
.svc-list p{color:var(--muted);margin-top:12px;max-width:520px;font-size:16px}
.svc-list li:hover .num,.svc-list li.on .num{color:var(--acid)}
.svc-list li:hover h3,.svc-list li.on h3{color:var(--acid)}

/* statement band */
.band{background:var(--acid);color:#000;padding:110px 0}
.band p{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:clamp(26px,3.8vw,60px);line-height:1.02;letter-spacing:-.02em;max-width:1240px}

/* virtual manager */
.vm{padding:130px 0 0}
.vm h2{font-size:clamp(36px,5.4vw,84px);max-width:15ch}
.vm .lede{margin-top:26px;color:var(--muted);max-width:640px;font-size:18px}
.vm-rows{margin-top:80px;border-top:1px solid var(--line)}
.vm-row{display:grid;grid-template-columns:1fr 1.3fr;gap:48px;padding:60px 0;border-bottom:1px solid var(--line)}
.vm-row h3{font-size:clamp(26px,3vw,46px);text-transform:none;letter-spacing:-.02em;line-height:1.02}
.vm-row .sum{margin-top:16px;color:var(--muted);max-width:420px}
.vm-row ul{display:grid;grid-template-columns:1fr 1fr;gap:22px 36px;align-self:center}
.vm-row li{padding-top:14px;border-top:1px solid var(--line);font-size:16px;line-height:1.5}

/* photo divider */
.photo{height:min(72vh,660px);position:relative;overflow:hidden;margin-top:0}
.photo img{width:100%;height:100%;object-fit:cover;filter:grayscale(.25) contrast(1.05)}
.photo::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(10,10,10,.96) 0%,rgba(10,10,10,.35) 55%,rgba(10,10,10,.1) 100%)}
.photo .cap{position:absolute;left:0;right:0;bottom:48px;z-index:2}
.photo .cap p{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:clamp(24px,3.6vw,56px);line-height:1;letter-spacing:-.02em;max-width:980px;color:#fff}

/* trust */
.trust{background:#fff;color:#000;padding:96px 0}
.trust h2{color:#000;font-size:clamp(28px,3.6vw,56px);max-width:17ch}
.logos{display:grid;grid-template-columns:repeat(6,1fr);gap:28px;margin-top:60px;align-items:center}
.logos img{width:100%;max-width:150px;margin:0 auto;filter:grayscale(1);opacity:.8;transition:filter .3s,opacity .3s}
.logos img:hover{filter:none;opacity:1}

/* quotes */
.quotes{padding:130px 0}
.quote-big{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:64px 0}
.quote-big blockquote{font-family:var(--display);font-weight:800;font-size:clamp(28px,4.4vw,68px);line-height:1.02;letter-spacing:-.02em;color:#fff;max-width:1240px}
.who{display:flex;align-items:center;gap:16px;margin-top:36px}
.who img{width:64px;height:64px;border-radius:50%;object-fit:cover;flex:none}
.who b{display:block;color:#fff;font-weight:600;font-size:16px}
.who span{color:var(--muted);font-size:14px;display:block}
.quote-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;padding-top:60px}
.quote-grid blockquote{font-family:var(--display);font-weight:700;font-size:clamp(20px,2.1vw,31px);line-height:1.15;letter-spacing:-.015em;color:#fff}
.quote-grid .who{margin-top:28px}
.quote-grid .who img{width:52px;height:52px}

/* talk */
.talk{background:var(--paper);color:#000;padding:120px 0}
.talk .grid{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:start}
.talk .grid>div:first-child{position:sticky;top:110px}
.talk h2{color:#000;font-size:clamp(44px,6.4vw,104px)}
.talk p{margin-top:26px;color:#3a3a36;max-width:480px;font-size:18px}
.talk .ig{display:inline-block;margin-top:28px;color:#000;font-weight:600;text-decoration:none;border-bottom:2px solid #000;padding-bottom:2px}
.talk .ig:hover{border-color:var(--acid)}
.form-card{background:#fff;border:1px solid rgba(0,0,0,.12);padding:16px}
.form-card iframe{width:100%;min-height:760px;border:0;display:block}

/* footer */
footer{padding:64px 0 40px;border-top:1px solid var(--line)}
.f-top{display:flex;justify-content:space-between;align-items:flex-start;gap:40px;flex-wrap:wrap}
.f-top img{height:22px;width:auto}
.f-links{display:flex;gap:28px;flex-wrap:wrap}
.f-links a{text-decoration:none;color:var(--text);font-size:15px}
.f-links a:hover{color:var(--acid)}
.f-bottom{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-top:52px;color:var(--muted);font-size:13px}

/* reveal */
.js .reveal{opacity:0;transform:translateY(22px);transition:opacity .8s ease,transform .8s ease}
.js .reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.js .reveal{opacity:1;transform:none;transition:none}.marquee .track{animation:none}html{scroll-behavior:auto}}

/* responsive */
@media (max-width:1100px){
  .logos{grid-template-columns:repeat(3,1fr);gap:32px 40px}
}
@media (max-width:880px){
  body{font-size:16px}
  .hero{padding-top:120px}
  .hero-row{grid-template-columns:1fr;gap:36px;padding-bottom:48px}
  .stats{grid-template-columns:1fr}
  .stat+.stat{border-left:0;border-top:1px solid var(--line);padding-left:0;margin-top:24px}
  .svc-grid{grid-template-columns:1fr;gap:36px;margin-top:48px}
  .svc-media{position:relative;top:auto;aspect-ratio:16/10}
  .svc-list .row{grid-template-columns:40px 1fr;gap:14px;padding:26px 0}
  .vm-row{grid-template-columns:1fr;gap:28px;padding:44px 0}
  .vm-row ul{grid-template-columns:1fr;gap:16px}
  .quote-grid{grid-template-columns:1fr;gap:48px}
  .talk .grid{grid-template-columns:1fr;gap:40px}
  .talk .grid>div:first-child{position:static}
  .services,.vm,.quotes{padding-top:96px}
  .services{padding-bottom:88px}
  .quotes{padding-bottom:96px}
  .band,.trust,.talk{padding:80px 0}
  .photo{height:60vh}
  .f-bottom{flex-direction:column}
}
@media (max-width:520px){
  .nav .btn{padding:11px 14px;font-size:12px}
  .hero h1{font-size:clamp(40px,13vw,64px)}
  .hero-cta .btn{width:100%}
  .logos{grid-template-columns:repeat(2,1fr)}
  .form-card{padding:8px}
}
