
:root{--ink:#0B0B0D;--ink2:#17171A;--paper:#F7F7F5;--mut:#A1A1AA;--g:#10D98A;--pad:clamp(20px,5vw,72px);--ease:cubic-bezier(.2,.7,.2,1)}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font:400 17px/1.6 Manrope,system-ui,sans-serif;background:var(--ink);color:var(--paper);overflow-x:hidden}
a{color:inherit}
:focus-visible{outline:2px solid var(--g);outline-offset:3px}
.skip{position:absolute;left:-999px;top:8px;background:var(--g);color:var(--ink);padding:8px 14px;z-index:99}.skip:focus{left:8px}
.wrap{padding:0 var(--pad);max-width:1480px;margin:0 auto}
.sec{padding:clamp(72px,12vw,160px) 0}
.dark{background:var(--ink);color:var(--paper)}.light{background:var(--paper);color:var(--ink)}
.light .mut{color:#55555c}.mut{color:var(--mut)}
h1,h2,h3{font-weight:800;letter-spacing:-.035em;line-height:.98}
h1{font-size:clamp(2.9rem,9.2vw,8.6rem)}
h2{font-size:clamp(2.2rem,6vw,5.2rem)}
h3{font-size:clamp(1.4rem,2.4vw,2rem);letter-spacing:-.02em;line-height:1.1}
.dim{color:#8a8a93}.light .dim{color:#9a9aa2}
.sub{font-size:clamp(1.05rem,1.6vw,1.3rem);max-width:34em;margin-top:28px}
/* nav */
header{position:fixed;inset:0 0 auto;z-index:50;transition:background .3s,backdrop-filter .3s}
header.s{background:rgba(11,11,13,.86);backdrop-filter:blur(14px);border-bottom:1px solid #ffffff14}
.nav{display:flex;align-items:center;justify-content:space-between;height:76px;gap:24px}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:800;font-size:1.25rem;letter-spacing:-.03em}
.logo svg{width:30px;height:30px}
nav ul{display:flex;gap:36px;list-style:none;padding:0}
nav a.l{text-decoration:none;font-weight:500;font-size:.95rem;color:#d4d4d8;position:relative;padding:6px 0}
nav a.l::after{content:"";position:absolute;left:0;bottom:0;height:2px;width:100%;background:var(--g);transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease)}
nav a.l:hover,nav a.l[aria-current]{color:#fff}nav a.l:hover::after,nav a.l[aria-current]::after{transform:scaleX(1)}
.btn{display:inline-flex;align-items:center;gap:10px;min-height:48px;padding:0 26px;border-radius:99px;font:700 .95rem Manrope,sans-serif;text-decoration:none;cursor:pointer;border:1.5px solid transparent;transition:transform .25s var(--ease),background .25s,color .25s}
.btn.p{background:var(--g);color:var(--ink)}.btn.p:hover{background:#fff}
.btn.o{border-color:#ffffff40;color:var(--paper);background:none}.btn.o:hover{border-color:var(--g);color:var(--g)}
.light .btn.o{border-color:#0b0b0d40;color:var(--ink)}.light .btn.o:hover{border-color:var(--ink);color:var(--ink)}
.btn.sm{min-height:42px;padding:0 20px}
.burger{display:none;background:none;border:0;width:48px;height:48px;color:#fff;cursor:pointer}
.burger i{display:block;width:24px;height:2px;background:currentColor;margin:6px auto;transition:transform .3s}
@media(max-width:860px){
 .burger{display:block}.nav>.btn{display:none}
 nav{position:fixed;inset:76px 0 0;background:var(--ink);padding:32px var(--pad);transform:translateY(-8px);opacity:0;visibility:hidden;transition:.35s var(--ease)}
 header.open nav{opacity:1;visibility:visible;transform:none}header.open{background:var(--ink)}
 nav ul{flex-direction:column;gap:6px}nav a.l{font-size:2.2rem;font-weight:800;letter-spacing:-.03em;display:block;padding:10px 0}
 nav .m{display:inline-flex;margin-top:28px}
 header.open .burger i:first-child{transform:translateY(4px) rotate(45deg)}header.open .burger i:last-child{transform:translateY(-4px) rotate(-45deg)}
}
@media(min-width:861px){nav .m{display:none}}
/* pages */
.js .rv{opacity:0;transform:translateY(28px);transition:opacity .9s var(--ease),transform .9s var(--ease);transition-delay:var(--d,0s)}.js .rv.in{opacity:1;transform:none}
/* hero */
.hero{min-height:100svh;display:grid;align-items:center;padding:130px 0 70px;position:relative;overflow:hidden;background:var(--ink)}
.hero::before{content:"";position:absolute;inset:0;background-image:linear-gradient(#ffffff0a 1px,transparent 1px),linear-gradient(90deg,#ffffff0a 1px,transparent 1px);background-size:80px 80px;mask-image:radial-gradient(ellipse at 70% 50%,#000,transparent 70%);-webkit-mask-image:radial-gradient(ellipse at 70% 50%,#000,transparent 70%)}
.hero .wrap{position:relative;width:100%}
.hero h1 .dim{display:block}
.hero .sub{color:#c4c4cb}
.cta-row{display:flex;flex-wrap:wrap;gap:14px;margin-top:40px}
.viz{position:absolute;right:calc(var(--pad) * -.4);top:50%;width:min(52vw,640px);transform:translateY(-46%);opacity:.95;pointer-events:none}
@media(max-width:860px){.viz{position:relative;right:auto;top:auto;transform:none;width:78%;margin:48px auto 0;display:block}.hero{align-items:start}}
.viz path.a{stroke-dasharray:400;stroke-dashoffset:400;animation:dr 1.6s var(--ease) forwards}
.viz path.b{animation-delay:.9s}.viz path.c{animation-delay:1.6s}
.viz path.ck{stroke-dasharray:400;stroke-dashoffset:400;animation:dr 1.1s 2.4s var(--ease) forwards}
.viz .nd{opacity:0;animation:fi .6s forwards}.viz .n1{animation-delay:.7s}.viz .n2{animation-delay:1.5s}.viz .n3{animation-delay:3.2s}
.viz .ring{transform-origin:200px 250px;animation:spin 60s linear infinite}
.viz text{font:700 11px Manrope;letter-spacing:.14em;fill:#a1a1aa;opacity:0;animation:fi .6s forwards}
@keyframes dr{to{stroke-dashoffset:0}}@keyframes fi{to{opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}
/* statement */
.stmt h2{font-size:clamp(2.6rem,9vw,8.4rem)}
.stmt p{margin-top:40px}
.stmt h2 span{display:block}
.ul{background:linear-gradient(var(--g),var(--g)) 0 92%/100% .09em no-repeat}
/* services acc */
.head{display:flex;justify-content:space-between;align-items:end;gap:32px;flex-wrap:wrap;margin-bottom:clamp(40px,6vw,80px)}
.acc{border-top:1px solid #ffffff22}
.row{border-bottom:1px solid #ffffff22}
.row h3>button{all:unset;box-sizing:border-box;width:100%;display:grid;grid-template-columns:70px 1fr 40px;align-items:center;gap:12px;padding:clamp(22px,3vw,38px) 0;cursor:pointer}
.row h3>button:focus-visible{outline:2px solid var(--g)}
.row .n{color:#8a8a93;font-weight:500;font-size:.95rem}
.row .t{font-size:clamp(1.7rem,4.6vw,3.8rem);font-weight:800;letter-spacing:-.035em;line-height:1;transition:transform .5s var(--ease),color .3s}
.row:hover .t,.row.o .t{transform:translateX(14px);color:var(--g)}
.row .x{width:36px;height:36px;position:relative;justify-self:end}
.row .x::before,.row .x::after{content:"";position:absolute;left:8px;right:8px;top:17px;height:2px;background:currentColor;transition:transform .4s var(--ease)}
.row .x::after{transform:rotate(90deg)}.row.o .x::after{transform:rotate(0)}
.pan{display:grid;grid-template-rows:0fr;transition:grid-template-rows .5s var(--ease)}.row.o .pan{grid-template-rows:1fr}
.pan>div{overflow:hidden}
.chips{display:flex;flex-wrap:wrap;gap:10px;max-width:640px}
.chips li{list-style:none;border:1px solid #ffffff2e;padding:7px 16px;border-radius:99px;font-size:.92rem;color:#d4d4d8}
.light .chips li{border-color:#0b0b0d2e;color:#2a2a30}
@media(max-width:640px){.row h3>button{grid-template-columns:34px 1fr 36px}.pn{padding-left:46px}}
/* why */
.mq{overflow:hidden;white-space:nowrap;border-block:1px solid #0b0b0d1f;padding:22px 0;margin-bottom:clamp(48px,7vw,96px)}
.mq div{display:inline-flex;gap:48px;padding-right:48px;animation:mq 28s linear infinite;font-size:clamp(2.4rem,7vw,6rem);font-weight:800;letter-spacing:-.04em;line-height:1}
.mq b{color:transparent;-webkit-text-stroke:1.5px var(--ink);font-weight:800}
.mq i{color:var(--g);font-style:normal;-webkit-text-stroke:0;text-shadow:0 0 0 var(--ink)}
@keyframes mq{to{transform:translateX(-100%)}}
.pr{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid #0b0b0d1f}
.pr>div{padding:28px 28px 28px 0;border-right:1px solid #0b0b0d1f;padding-left:28px}.pr>div:first-child{padding-left:0}.pr>div:last-child{border:0}
.pr .n{font-weight:700;font-size:.9rem;color:#55555c;margin-bottom:60px;display:block}
.pr p{margin-top:14px;color:#55555c}
@media(max-width:860px){.pr{grid-template-columns:1fr 1fr}.pr>div{padding:24px 16px 28px 0;border-right:0;border-bottom:1px solid #0b0b0d1f;padding-left:0!important}.pr .n{margin-bottom:28px}}
@media(max-width:520px){.pr{grid-template-columns:1fr}}
/* process */
.proc{display:flex;gap:0;overflow-x:auto;scroll-snap-type:x mandatory;padding:12px var(--pad) 28px;scrollbar-width:thin;scrollbar-color:var(--g) #222}
.st{flex:0 0 min(360px,78vw);scroll-snap-align:start;padding:0 40px 0 0;position:relative}
.st::before{content:"";display:block;height:2px;background:#ffffff26;margin-bottom:30px;position:relative}
.st::after{content:"";position:absolute;top:-5px;left:0;width:12px;height:12px;border-radius:50%;background:var(--g);transform:translateY(12px)}
.st .n{font-size:clamp(3.6rem,6vw,5.5rem);font-weight:800;letter-spacing:-.05em;color:transparent;-webkit-text-stroke:1.5px #ffffff55;line-height:1;display:block;margin-bottom:22px}
.st p{color:var(--mut);margin-top:10px}
.hint{color:#8a8a93;font-size:.9rem;margin-top:8px}
@media(max-width:700px){
 .proc{flex-direction:column;overflow:visible;padding:0 var(--pad) 0 calc(var(--pad) + 22px);border-left:0;position:relative}
 .proc::before{content:"";position:absolute;left:calc(var(--pad) + 5px);top:8px;bottom:0;width:2px;background:#ffffff26}
 .st{flex:none;padding:0 0 44px}.st::before{display:none}.st::after{left:-22px;top:6px;transform:none}
 .st .n{font-size:2.6rem;margin-bottom:6px}.hint{display:none}
}
/* work */
.wk{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.wk>div{aspect-ratio:4/5;border:1px dashed #0b0b0d40;padding:26px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden;transition:background .4s,color .4s}
.wk>div:hover{background:var(--ink);color:var(--paper)}
.wk svg{width:48%;opacity:.14;position:absolute;right:-6%;bottom:-4%;transition:opacity .4s}.wk>div:hover svg{opacity:.5}
.wk small{font-weight:700;letter-spacing:.12em;font-size:.78rem}
@media(max-width:760px){.wk{grid-template-columns:1fr}.wk>div{aspect-ratio:16/10}}
/* final cta */
.fin{text-align:center;padding:clamp(100px,16vw,220px) 0;position:relative;overflow:hidden}
.fin h2{font-size:clamp(3rem,10vw,9rem)}
.fin p{margin:26px 0 40px;color:var(--mut)}
/* about */
.pagehero{padding:clamp(150px,20vw,260px) 0 clamp(60px,9vw,120px)}
.pagehero h1{font-size:clamp(2.8rem,8vw,7.4rem);max-width:12em}
.two{display:grid;grid-template-columns:1fr 1.4fr;gap:clamp(28px,6vw,100px);align-items:start}
@media(max-width:860px){.two{grid-template-columns:1fr}}
.big{font-size:clamp(1.5rem,3.2vw,2.7rem);font-weight:700;letter-spacing:-.025em;line-height:1.15}
.big.f{display:block;margin-bottom:.3em}
.vals{list-style:none;padding:0;border-top:1px solid #ffffff22}
.vals li{font-size:clamp(1.8rem,5vw,4rem);font-weight:800;letter-spacing:-.035em;padding:18px 0;border-bottom:1px solid #ffffff22;display:flex;justify-content:space-between;align-items:center;transition:padding .4s var(--ease),color .3s}
.vals li:hover{padding-left:18px;color:var(--g)}
.vals li::after{content:"✓";font-size:.5em;opacity:0;transition:opacity .3s}.vals li:hover::after{opacity:1}
/* services page */
.svc{padding:clamp(48px,7vw,90px) 0;border-top:1px solid #0b0b0d26}
.svc .num{font-size:clamp(4rem,10vw,9rem);font-weight:800;letter-spacing:-.06em;line-height:.8;color:transparent;-webkit-text-stroke:1.5px var(--ink)}
.svc h2{font-size:clamp(2.2rem,5vw,4.4rem);margin:18px 0 14px}
.svc .q{font-size:1.2rem;font-weight:500}
.svc h3{font-size:.95rem;letter-spacing:0;color:#55555c;font-weight:700;margin:0 0 14px}
.svc .chips li{background:#fff}
.svc .btn.o{margin-top:6px}
/* contact */
.cg{display:grid;grid-template-columns:1fr 1.25fr;gap:clamp(36px,7vw,120px)}
@media(max-width:900px){.cg{grid-template-columns:1fr}}
form{display:grid;gap:22px}
.fld{display:grid;gap:8px}
.fld label{font-size:.85rem;font-weight:700;color:var(--mut)}
.fld input,.fld select,.fld textarea{font:inherit;color:var(--paper);background:none;border:0;border-bottom:1.5px solid #ffffff3a;padding:10px 0;border-radius:0;width:100%;min-height:46px;transition:border-color .3s}
.fld select option{color:#000}
.fld textarea{resize:vertical;min-height:120px}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:0;border-color:var(--g)}
.g2{display:grid;grid-template-columns:1fr 1fr;gap:22px}@media(max-width:560px){.g2{grid-template-columns:1fr}}
.ok{display:none;align-items:center;gap:14px;padding:18px 0;font-weight:700}.ok.on{display:flex}
.ok svg{width:30px;flex:none}
.lk{display:flex;flex-direction:column;gap:6px;margin-top:36px}
.lk a{font-size:1.15rem;font-weight:700;text-decoration:none;width:max-content;border-bottom:2px solid var(--g)}
.lk a:hover{color:var(--g)}
/* footer */
footer{background:var(--ink);padding:clamp(60px,8vw,110px) 0 36px;border-top:1px solid #ffffff1a}
footer .huge{font-size:clamp(3rem,11vw,10rem);font-weight:800;letter-spacing:-.05em;line-height:.9}
footer .huge span{color:transparent;-webkit-text-stroke:1.5px #ffffff66;display:block}
.fg{display:flex;flex-wrap:wrap;justify-content:space-between;gap:40px;margin:clamp(48px,7vw,90px) 0 48px}
.fg ul{list-style:none;padding:0;display:grid;gap:8px}.fg h4{font-size:.85rem;color:var(--mut);margin-bottom:14px}
.fg a{text-decoration:none}.fg a:hover{color:var(--g)}
.fb{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;color:var(--mut);font-size:.88rem;border-top:1px solid #ffffff1a;padding-top:24px}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}*{animation-delay:0s!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
 .js .rv{opacity:1;transform:none}.viz path.a,.viz path.ck{stroke-dashoffset:0}.viz .nd,.viz text{opacity:1}.mq div{animation:none}
}

[hidden]{display:none!important}
html{scroll-padding-top:90px}
body.lock{overflow:hidden}
#bar{position:absolute;left:0;bottom:-1px;height:2px;width:100%;background:var(--g);transform:scaleX(0);transform-origin:left}
.hero h1{font-size:clamp(2.7rem,7.6vw,7rem);max-width:10.5em}
.hero h1,.hero .sub,.hero .cta-row,.rail{position:relative;z-index:1}
.viz{z-index:0}
@media(min-width:861px){.viz{opacity:.55;width:min(44vw,560px)}nav a.l{text-transform:uppercase;letter-spacing:.09em;font-size:.76rem}}
.btn{text-transform:uppercase;letter-spacing:.08em;font-size:.78rem}
.chips{padding:0;list-style:none}
.lab{font-size:.74rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--mut)}
.ul{display:inline-block}.fin{border-top:1px solid #ffffff1a}
.sec.tight{padding-bottom:clamp(60px,9vw,120px)}.proc{margin-top:56px}
.two+.two{margin-top:clamp(56px,8vw,110px)}
.ab .two>h2{font-size:clamp(1.6rem,3.2vw,2.6rem)}
.cg h1{font-size:clamp(2.6rem,6.5vw,6rem)}
/* proprietary rail: idea -> result */
.rail{display:flex;list-style:none;padding:0;margin:clamp(40px,6vw,72px) 0 0;max-width:720px}
.rail li{flex:1;position:relative;padding-top:28px;font-size:.66rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#8a8a93;animation:tx .3s forwards;animation-delay:calc(var(--i)*.7s + .8s)}
.rail li::before,.rail li::after{content:"";position:absolute;top:5px;left:0;right:0;height:2px;background:#ffffff26}
.rail li::after{background:var(--g);transform:scaleX(0);transform-origin:left;animation:ln .6s var(--ease) forwards;animation-delay:calc(var(--i)*.7s + .9s)}
.rail li:last-child::before,.rail li:last-child::after{display:none}
.rail i{position:absolute;top:0;left:0;width:12px;height:12px;border-radius:50%;background:var(--ink);border:2px solid #ffffff55;z-index:1;animation:nd .3s forwards;animation-delay:calc(var(--i)*.7s + .8s)}
.rail li:last-child i{width:20px;height:20px;top:-4px;display:grid;place-items:center;font:800 11px/1 Manrope;color:var(--ink)}
.rail li:last-child i::after{content:"\2713"}
@keyframes ln{to{transform:none}}@keyframes nd{to{background:var(--g);border-color:var(--g)}}@keyframes tx{to{color:var(--paper)}}
@media(max-width:480px){.rail li{font-size:.58rem;letter-spacing:.06em}}
/* accordion panel */
.pan>div{visibility:hidden;transition:visibility .5s}.row.o .pan>div{visibility:visible}
.pn{padding:0 0 40px 82px;display:grid;grid-template-columns:1fr 1.2fr 1fr;gap:28px 40px}
.pn p{color:#d4d4d8;margin-top:10px}.pn .chips{margin-top:12px}.pn .lnk{grid-column:1/-1;justify-self:start}
@media(max-width:900px){.pn{grid-template-columns:1fr}}
/* why: progress lines */
.pr>div{position:relative}
.pr>div::before{content:"";position:absolute;left:0;right:0;top:-1px;height:2px;background:var(--g);transform:scaleX(0);transform-origin:left;transition:transform 1.1s var(--ease) var(--d,0s)}
.js .pr>div.in::before{transform:none}
.big-line{margin-bottom:clamp(40px,6vw,80px);max-width:16em}
/* services page */
.svc .two p{margin-bottom:30px}.svc .chips{margin-bottom:30px}.svc h3.lab{font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;margin-bottom:10px}
@media(min-width:861px){.svc .two>div:first-child{position:sticky;top:110px}}
.ov{margin-top:40px}.ov li{padding:0}.ov a{display:block;padding:9px 18px;text-decoration:none}.ov li:hover{border-color:var(--g)}.ov a:hover{color:var(--g)}
/* contact form states */
.hp{position:absolute;left:-9999px}
.er{margin:0;font-size:.85rem;font-weight:700;color:var(--paper)}.er::before{content:"\00d7  "}
.fld [aria-invalid=true]{border-color:var(--paper)}
#st:empty{display:none}#st.bad{border-left:3px solid var(--paper);padding:4px 0 4px 16px;font-weight:700}#st a,.lk a{color:inherit}#st a{color:var(--g)}
.lk ul{list-style:none;padding:0;display:flex;gap:24px}
.not{padding-top:clamp(160px,22vw,280px)}
