
:root{
  --bg:#ffffff; --bg-2:#f4f3ef; --bg-3:#eceae3; --ink-card:#0b0b0e;
  --fg:#0a0a0c; --fg-soft:#54555c; --fg-mute:#8d8e95; --fg-faint:#c7c8cd;
  --line:rgba(10,10,14,.13); --line-2:rgba(10,10,14,.07); --line-3:rgba(10,10,14,.26);
  --v:#5b46ff; --v-2:#7a68ff; --c:#06b6d4; --amber:#ff8a00; --pink:#ff3d8b;
  --grad:linear-gradient(110deg,var(--v) 0%,var(--c) 100%);
  --grad-3:linear-gradient(110deg,var(--v) 0%,var(--pink) 48%,var(--amber) 100%);
  --maxw:1320px; --pad:clamp(20px,4.5vw,56px);
  --e1:cubic-bezier(.16,1,.3,1); --e2:cubic-bezier(.22,.61,.36,1);
  --d:"Bricolage Grotesque",-apple-system,system-ui,sans-serif;
  --b:"Plus Jakarta Sans",-apple-system,system-ui,sans-serif;
  --m:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:90px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{font-family:var(--b);background:var(--bg);color:var(--fg);line-height:1.55;font-size:1.02rem;font-weight:400;
  overflow-x:hidden;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;letter-spacing:-.011em}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}
::selection{background:var(--v);color:#fff}
::-webkit-scrollbar{width:11px;height:11px}::-webkit-scrollbar-track{background:#f0efeb}
::-webkit-scrollbar-thumb{background:#cfcec8;border-radius:20px;border:3px solid #f0efeb}
.skip{position:absolute;left:-9999px;top:0;z-index:10000;background:var(--fg);color:#fff;padding:12px 20px;border-radius:0 0 10px 0;font-weight:600}
.skip:focus{left:0}
:focus-visible{outline:2px solid var(--v);outline-offset:3px}
.wrap{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--pad);position:relative}
.sec{padding-block:clamp(80px,11vw,170px)}
.sec-sm{padding-block:clamp(56px,7vw,104px)}


/* atmosphere */
.grain{position:fixed;inset:0;z-index:9000;pointer-events:none;opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.blobs{position:fixed;inset:0;z-index:-2;pointer-events:none;overflow:hidden}
.blob{position:absolute;border-radius:50%;filter:blur(90px);opacity:.5;will-change:transform;contain:strict}
.blob.b1{width:48vw;height:48vw;left:-14vw;top:-10vw;background:radial-gradient(circle,rgba(91,70,255,.5),transparent 64%);animation:drift1 26s var(--e2) infinite alternate}
.blob.b2{width:42vw;height:42vw;right:-12vw;top:32vh;background:radial-gradient(circle,rgba(6,182,212,.42),transparent 64%);animation:drift2 32s var(--e2) infinite alternate}
.blob.b3{width:38vw;height:38vw;left:26vw;bottom:-16vw;background:radial-gradient(circle,rgba(255,61,139,.3),transparent 64%);animation:drift1 38s var(--e2) infinite alternate-reverse}
@keyframes drift1{to{transform:translate3d(8vw,6vh,0) scale(1.18)}}
@keyframes drift2{to{transform:translate3d(-7vw,-5vh,0) scale(1.12)}}
.prog{position:fixed;top:0;left:0;height:2px;width:100%;transform:scaleX(0);transform-origin:0 50%;background:var(--grad);z-index:8000;pointer-events:none}

/* cursor */
.has-cur,.has-cur a,.has-cur button,.has-cur [data-cursor]{cursor:none}
.cdot,.cring{position:fixed;top:0;left:0;z-index:9500;pointer-events:none;border-radius:50%;transform:translate(-50%,-50%);will-change:transform}
.cdot{width:7px;height:7px;background:var(--v);mix-blend-mode:difference}
.cring{width:40px;height:40px;border:1.5px solid var(--line-3);transition:width .3s var(--e1),height .3s var(--e1),background .3s,border-color .3s}
.cring.hot{width:78px;height:78px;background:rgba(91,70,255,.1);border-color:transparent}
.cring .clbl{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--m);font-size:.5rem;font-weight:500;letter-spacing:.1em;color:var(--v);text-transform:uppercase;opacity:0;transition:opacity .25s}
.cring.lbl .clbl{opacity:1}

/* type */
.d1{font-family:var(--d);font-weight:800;line-height:.95;letter-spacing:-.038em}
.d2{font-family:var(--d);font-weight:700;line-height:1;letter-spacing:-.03em}
.huge{font-size:clamp(2.9rem,9vw,8.6rem)}
.big{font-size:clamp(2.3rem,5.5vw,4.8rem)}
.mid{font-size:clamp(1.7rem,3vw,2.7rem)}
.grad-t{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.grad-t3{background:var(--grad-3);-webkit-background-clip:text;background-clip:text;color:transparent}
.mono{font-family:var(--m);font-weight:500;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--fg-soft)}
.eyebrow{display:inline-flex;align-items:center;gap:.7em;font-family:var(--m);font-size:.72rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--fg-soft)}
.eyebrow::before{content:"";width:7px;height:7px;border-radius:1px;background:var(--v);box-shadow:0 0 12px rgba(91,70,255,.6);transform:rotate(45deg)}
.lead{font-size:clamp(1.08rem,1.5vw,1.32rem);color:var(--fg-soft);line-height:1.5;font-weight:400;max-width:46ch}

/* reveals — hidden start states apply only when JS is running, so content
   is never invisible if a script is blocked, slow, or fails */
.lines .ln{display:block;overflow:hidden;padding-bottom:.04em;margin-bottom:-.04em}
.lines .ln-i{display:block;transition:transform .8s var(--e1),opacity .6s var(--e1)}
.js .lines .ln-i{transform:translateY(118%) rotate(3deg);opacity:.001}
.js .lines.in .ln-i{transform:none;opacity:1}
.w-o{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.02em}
.w-i{display:inline-block;transition:transform .6s var(--e1)}
.js .w-i{transform:translateY(112%)}
.js [data-split].in .w-i{transform:none}
.l-o{display:inline-block;overflow:hidden;vertical-align:top}
.l-i{display:inline-block;transition:transform .55s var(--e1)}
.js .l-i{transform:translateY(108%)}
.js [data-letters].in .l-i{transform:none}
[data-reveal]{transition:opacity .6s var(--e1),transform .7s var(--e1);transition-delay:calc(var(--i,0)*.05s)}
.js [data-reveal]{opacity:0;transform:translateY(30px)}
.js [data-reveal].in{opacity:1;transform:none}
[data-clip]{transition:clip-path .8s var(--e1)}
.js [data-clip]{clip-path:inset(0 0 100% 0)}
.js [data-clip].in{clip-path:inset(0 0 0 0)}

/* buttons */
.btn{position:relative;display:inline-flex;align-items:center;gap:.6em;font-weight:600;font-size:.98rem;padding:1.05em 1.7em;border-radius:100px;line-height:1;transition:transform .3s var(--e1),background .3s,color .3s,border-color .3s,box-shadow .3s;will-change:transform}
.btn svg{width:1.05em;height:1.05em;transition:transform .3s var(--e1)}
.btn-fill{background:var(--fg);color:#fff;font-weight:700}.btn-fill:hover{background:#000}.btn-fill:hover svg{transform:translate(3px,-3px)}
.btn-grad{background:var(--grad);color:#fff;box-shadow:0 14px 40px -12px rgba(91,70,255,.55)}.btn-grad:hover svg{transform:translate(3px,-3px)}.btn-grad:hover{box-shadow:0 18px 50px -12px rgba(91,70,255,.7)}
.btn-line{border:1.5px solid var(--line-3);color:var(--fg)}.btn-line:hover{border-color:var(--fg);background:rgba(10,10,14,.03)}
.tlink{display:inline-flex;align-items:center;gap:.5em;font-family:var(--m);font-size:.74rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--fg);border-bottom:1.5px solid var(--line-3);padding-bottom:.45em;transition:color .3s,border-color .3s}
.tlink svg{width:1em;height:1em;transition:transform .3s var(--e1)}
.tlink:hover{color:var(--v)}.tlink:hover svg{transform:translate(3px,-3px)}

/* header */
.hdr{position:fixed;top:0;left:0;right:0;z-index:1000;transition:transform .55s var(--e1),background .4s,border-color .4s,backdrop-filter .4s;border-bottom:1px solid transparent}
.hdr.scd{background:rgba(255,255,255,.78);backdrop-filter:saturate(150%) blur(16px);border-color:var(--line-2)}
.hdr.hide{transform:translateY(-105%)}
.hdr-in{display:flex;align-items:center;gap:24px;padding-block:18px}
.brand{font-family:var(--d);font-size:1.32rem;font-weight:800;letter-spacing:-.04em;display:inline-flex;align-items:center}
.brand .bx{width:10px;height:10px;border-radius:2px;background:var(--grad);transform:rotate(45deg);margin-left:.22em}
.nav{display:flex;gap:6px;margin-inline:auto}
.nav a{font-family:var(--m);font-size:.74rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--fg-soft);padding:.6em .85em;border-radius:8px;transition:color .25s,background .25s;position:relative}
.nav a:hover{color:var(--fg)}.nav a.act{color:var(--fg)}.nav a.act::after{content:"";position:absolute;left:.85em;right:.85em;bottom:.2em;height:1.5px;background:var(--v)}
.cta-row{display:flex;align-items:center;gap:14px}
.hdr .ph{font-family:var(--m);font-size:.74rem;letter-spacing:.08em;color:var(--fg-soft)}.hdr .ph:hover{color:var(--v)}
.hdr .btn{padding:.78em 1.25em;font-size:.86rem}
.burger{display:none;width:46px;height:40px;border:1.5px solid var(--line-3);border-radius:10px;position:relative}
.burger span{position:absolute;left:11px;right:11px;height:1.5px;background:var(--fg);transition:.3s var(--e1)}
.burger span:nth-child(1){top:15px}.burger span:nth-child(2){bottom:15px}
body.menu .burger span:nth-child(1){top:19px;transform:rotate(45deg)}body.menu .burger span:nth-child(2){bottom:19px;transform:rotate(-45deg)}
.mnav{position:fixed;inset:0;z-index:990;background:var(--bg);clip-path:inset(0 0 100% 0);transition:clip-path .6s var(--e1);pointer-events:none;display:flex;flex-direction:column;justify-content:center;padding:0 var(--pad)}
body.menu .mnav{clip-path:inset(0 0 0 0);pointer-events:auto}
.mnav a.ml{font-family:var(--d);font-weight:800;font-size:clamp(2.2rem,11vw,4rem);letter-spacing:-.03em;padding:.14em 0;display:flex;align-items:baseline;gap:.5em}
.mnav a.ml .mn{font-family:var(--m);font-size:.7rem;color:var(--v);letter-spacing:.1em}
.mnav .mf{margin-top:40px;display:flex;flex-direction:column;gap:8px;font-family:var(--m);font-size:.8rem;color:var(--fg-soft)}.mnav .mf a:hover{color:var(--v)}

/* hero */
.hero{min-height:100svh;display:flex;flex-direction:column;justify-content:center;padding-top:120px;padding-bottom:48px;overflow:hidden;position:relative}
#field{position:absolute;inset:0;z-index:0}
.hero .wrap{z-index:2}
.hero-top{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;flex-wrap:wrap;margin-bottom:clamp(28px,5vw,60px)}
.hero h1,.hero .hero-rot{font-size:clamp(3rem,9.6vw,9.2rem);max-width:15ch}
.hero-sub{display:grid;grid-template-columns:1.3fr 1fr;gap:30px;align-items:end;margin-top:clamp(30px,4vw,52px)}
.hero-acts{display:flex;gap:14px;flex-wrap:wrap}
.hero-meta{font-family:var(--m);font-size:.72rem;letter-spacing:.06em;color:var(--fg-mute);line-height:1.9;text-align:right}.hero-meta b{color:var(--fg);font-weight:600}
.hero-foot{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:clamp(40px,6vw,72px);padding-top:22px;border-top:1px solid var(--line-2);flex-wrap:wrap}
.statusline{font-family:var(--m);font-size:.72rem;letter-spacing:.05em;color:var(--fg-mute);display:inline-flex;align-items:center;gap:.7em}
.statusline .dotlive{width:7px;height:7px;border-radius:50%;background:#16c784;box-shadow:0 0 10px #16c784;animation:pulse 1.6s infinite}
@keyframes pulse{50%{opacity:.35}}
.scrolltip{font-family:var(--m);font-size:.68rem;letter-spacing:.12em;color:var(--fg-mute);display:inline-flex;align-items:center;gap:.6em}
.scrolltip .bar{width:30px;height:1.5px;background:var(--line);position:relative;overflow:hidden}
.scrolltip .bar::after{content:"";position:absolute;inset:0;width:40%;background:var(--v);animation:slide 1.8s var(--e2) infinite}
@keyframes slide{0%{transform:translateX(-100%)}60%,100%{transform:translateX(330%)}}

/* marquee */
.marq{overflow:hidden;padding-block:clamp(22px,3vw,40px);border-block:1px solid var(--line-2)}
.marq.flip{border-top:none}
.marq-row{display:inline-flex;white-space:nowrap;will-change:transform;animation:marq 42s linear infinite}
.marq-row[data-dir="1"]{animation-direction:reverse}
@keyframes marq{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}
@media (prefers-reduced-motion:reduce){.marq-row{animation:none}}
.marq .it{font-family:var(--d);font-weight:700;font-size:clamp(1.4rem,3.4vw,2.7rem);letter-spacing:-.02em;padding:0 .5em;display:inline-flex;align-items:center;gap:1em}
.marq .it::after{content:"";width:9px;height:9px;border-radius:50%;background:var(--grad)}
.marq .it.gh{color:transparent;-webkit-text-stroke:1.3px var(--fg-faint)}

/* section head */
.shead{display:grid;grid-template-columns:auto 1fr;gap:clamp(20px,4vw,80px);align-items:start;margin-bottom:clamp(40px,5vw,72px)}
.shead .idx{font-family:var(--m);font-size:.72rem;letter-spacing:.14em;color:var(--v);padding-top:.5em;white-space:nowrap}
.shead h2{max-width:18ch}.shead .sh-r{display:flex;flex-direction:column;gap:18px}.shead .lead{max-width:54ch}

/* manifesto */
.altbg{background:var(--bg-2)}
.mani .big{max-width:20ch}
.mani-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,64px);margin-top:clamp(40px,5vw,72px);align-items:start}
.mani-card{border-top:1.5px solid var(--fg);padding-top:24px}
.mani-card .n{font-family:var(--m);font-size:.72rem;color:var(--v);letter-spacing:.12em}
.mani-card h3{font-family:var(--d);font-weight:700;font-size:1.5rem;letter-spacing:-.02em;margin:.5em 0 .4em}
.mani-card p{color:var(--fg-soft);font-size:1rem}

/* horizontal capabilities */
.hcap-head{margin-bottom:clamp(28px,4vw,48px)}
.hcap-head h2{max-width:16ch}
.capgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
@media (max-width:1180px){.capgrid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.capgrid{grid-template-columns:1fr}}
.cap{background:var(--bg);border:1.5px solid var(--line);border-radius:22px;padding:clamp(26px,2.4vw,38px);display:flex;flex-direction:column;min-height:clamp(420px,56vh,560px);position:relative;overflow:hidden;transition:border-color .4s,transform .4s var(--e1),box-shadow .4s}
.cap:hover{border-color:transparent;box-shadow:0 30px 70px -30px rgba(91,70,255,.4);transform:translateY(-4px)}
.cap .cap-tag{font-family:var(--m);font-size:.68rem;letter-spacing:.14em;color:var(--v);text-transform:uppercase}
.cap h3{font-family:var(--d);font-weight:700;font-size:clamp(1.5rem,2.2vw,2.1rem);letter-spacing:-.02em;margin:.5em 0;line-height:1.04}
.cap p{color:var(--fg-soft);font-size:.98rem;line-height:1.5}
.cap ul{list-style:none;margin-top:auto;padding-top:24px;display:flex;flex-direction:column;gap:11px}
.cap li{font-size:.9rem;color:var(--fg-soft);display:flex;gap:.6em;align-items:center;font-family:var(--m);letter-spacing:.02em}
.cap li::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--v);flex-shrink:0}
.cap .glow{position:absolute;inset:auto auto 0 0;width:100%;height:2px;background:var(--grad);opacity:0;transition:opacity .4s}.cap:hover .glow{opacity:1}

/* work / project tile */
.work-row{display:grid;grid-template-columns:1fr;gap:clamp(18px,2vw,28px)}
.proj{position:relative;border-radius:24px;overflow:hidden;min-height:clamp(400px,50vw,640px);display:flex;flex-direction:column;justify-content:flex-end;padding:clamp(28px,3vw,52px);transition:transform .5s var(--e1),box-shadow .5s}
.proj.grad{background:var(--grad-3);color:#fff;box-shadow:0 40px 90px -40px rgba(91,70,255,.6)}
.proj:hover{transform:translateY(-6px);box-shadow:0 50px 110px -40px rgba(91,70,255,.7)}
.proj .wviz{position:absolute;inset:0;z-index:0;overflow:hidden;opacity:.9}
.proj .wviz .ring{position:absolute;border:1.5px solid rgba(255,255,255,.3);border-radius:50%;top:46%;left:74%;transform:translate(-50%,-50%)}
.proj .wviz .r1{width:240px;height:240px}.proj .wviz .r2{width:400px;height:400px}.proj .wviz .r3{width:580px;height:580px}
.proj .wviz .chip{position:absolute;top:24%;left:62%;font-family:var(--m);font-size:.62rem;letter-spacing:.1em;color:#fff;border:1px solid rgba(255,255,255,.4);border-radius:100px;padding:.5em .9em;background:rgba(255,255,255,.12)}
.proj>*{position:relative;z-index:2}
.proj .ptag{font-family:var(--m);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;margin-bottom:14px;display:flex;gap:1em;align-items:center;opacity:.9}
.proj h3{font-family:var(--d);font-weight:800;font-size:clamp(2.2rem,4.6vw,4.6rem);letter-spacing:-.035em;line-height:.95}
.proj p{margin-top:16px;max-width:52ch;font-size:1.05rem;opacity:.92}
.proj .pmeta{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}
.proj .pmeta span{font-family:var(--m);font-size:.66rem;letter-spacing:.06em;border:1px solid rgba(255,255,255,.4);border-radius:100px;padding:.5em .9em}
.proj .parrow{position:absolute;top:clamp(28px,3vw,52px);right:clamp(28px,3vw,52px);width:54px;height:54px;border:1.5px solid rgba(255,255,255,.5);border-radius:50%;display:grid;place-items:center;transition:.4s var(--e1);z-index:3}
.proj:hover .parrow{background:#fff;color:var(--v);transform:rotate(45deg)}.proj .parrow svg{width:20px;height:20px}

/* industries (tilt) */
.ind-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.indc{border:1.5px solid var(--line);border-radius:18px;padding:26px;background:var(--bg);transition:border-color .4s,box-shadow .4s;position:relative;overflow:hidden;min-height:188px;display:flex;flex-direction:column;transform-style:preserve-3d;will-change:transform}
.indc:hover{border-color:transparent;box-shadow:0 28px 60px -30px rgba(91,70,255,.4)}
.indc .glare{position:absolute;inset:0;pointer-events:none;background:radial-gradient(220px circle at var(--gx,50%) var(--gy,50%),rgba(91,70,255,.16),transparent 60%);opacity:0;transition:opacity .3s}
.indc:hover .glare{opacity:1}
.indc .ie{font-size:1.7rem;margin-bottom:auto}
.indc h3{font-family:var(--d);font-weight:700;font-size:1.18rem;letter-spacing:-.01em;margin-top:18px}
.indc .il{font-family:var(--m);font-size:.66rem;letter-spacing:.04em;color:var(--fg-mute);margin-top:8px;line-height:1.7}
.indc .ar{position:absolute;top:22px;right:22px;color:var(--v);opacity:0;transform:translate(-4px,4px);transition:.4s var(--e1)}
.indc:hover .ar{opacity:1;transform:none}.indc .ar svg{width:18px;height:18px}


/* spec stats (light alt panel) */
.spec{background:var(--ink-card);color:#fff;border-radius:clamp(20px,3vw,36px);overflow:hidden;position:relative}
.spec .eyebrow{color:rgba(255,255,255,.6)}.spec .eyebrow::before{background:var(--c);box-shadow:0 0 12px var(--c)}
.statgrid{display:grid;grid-template-columns:repeat(4,1fr)}
.stat{padding:clamp(28px,3vw,46px) clamp(18px,2vw,30px);border-right:1px solid rgba(255,255,255,.12)}.stat:last-child{border-right:none}
.stat .sv{font-family:var(--d);font-weight:800;font-size:clamp(2.8rem,5.4vw,4.8rem);letter-spacing:-.04em;line-height:.9;display:flex;align-items:baseline}
.stat .sv .su{font-size:.38em;color:var(--c);margin-left:.08em}
.stat .sl{font-family:var(--m);font-size:.72rem;letter-spacing:.06em;color:rgba(255,255,255,.55);margin-top:16px;text-transform:uppercase}

/* spotlight cta */
.cta{text-align:center;padding-block:clamp(90px,13vw,200px);position:relative;overflow:hidden;background:var(--ink-card);color:#fff}
.cta::before{content:"";position:absolute;inset:0;background:radial-gradient(500px circle at var(--mx,50%) var(--my,40%),rgba(91,70,255,.35),transparent 60%);pointer-events:none;transition:opacity .4s}
.cta .wrap{position:relative;z-index:2}
.cta .eyebrow{justify-content:center;display:inline-flex;margin-bottom:26px;color:rgba(255,255,255,.6)}.cta .eyebrow::before{background:var(--c)}
.cta h2{font-size:clamp(2.8rem,9.5vw,8.4rem);line-height:.92}
.cta .em{font-family:var(--d);font-weight:700;font-size:clamp(1.4rem,3vw,2.4rem);letter-spacing:-.02em;margin-top:30px;display:inline-block}
.cta .em a{transition:color .3s}.cta .em a:hover{color:var(--c)}
.cta .acts{margin-top:40px;display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.cta .btn-line{border-color:rgba(255,255,255,.4);color:#fff}.cta .btn-line:hover{border-color:#fff;background:rgba(255,255,255,.08)}

/* contact */
.cgrid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(34px,5vw,80px);align-items:start}
.chans{display:flex;flex-direction:column;margin-top:30px}
.chan{display:flex;align-items:center;gap:18px;padding-block:22px;border-top:1.5px solid var(--line);transition:padding-left .35s var(--e1)}
.chan:last-child{border-bottom:1.5px solid var(--line)}.chan:hover{padding-left:8px}
.chan .ci{width:46px;height:46px;border:1.5px solid var(--line-3);border-radius:12px;display:grid;place-items:center;color:var(--v);flex-shrink:0}.chan .ci svg{width:20px;height:20px}
.chan .cl{font-family:var(--m);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--fg-mute)}
.chan .cv{font-family:var(--d);font-weight:700;font-size:1.3rem;letter-spacing:-.02em}
.form{border:1.5px solid var(--line);border-radius:24px;padding:clamp(26px,3vw,42px);background:var(--bg);box-shadow:0 40px 90px -60px rgba(10,10,14,.5)}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:16px}.fg{margin-bottom:16px}
.fg label{font-family:var(--m);font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-mute);display:block;margin-bottom:9px}
.fg input,.fg textarea{width:100%;background:var(--bg-2);border:1.5px solid var(--line);border-radius:12px;padding:.95em 1.05em;font-family:var(--b);font-size:1rem;color:var(--fg);transition:border-color .25s,box-shadow .25s}
.fg input::placeholder,.fg textarea::placeholder{color:var(--fg-mute)}
.fg input:focus,.fg textarea:focus{outline:none;border-color:var(--v);box-shadow:0 0 0 3px rgba(91,70,255,.15);background:var(--bg)}
.fg textarea{min-height:120px;resize:vertical}
.form .sub{width:100%;background:var(--grad);color:#fff;font-weight:700;border-radius:12px;padding:1.1em;font-size:1rem;display:flex;align-items:center;justify-content:center;gap:.6em;transition:transform .3s var(--e1),box-shadow .3s}
.form .sub:hover{transform:translateY(-2px);box-shadow:0 16px 40px -14px rgba(91,70,255,.6)}.form .sub svg{width:1.1em;height:1.1em}
.form .fm{font-family:var(--m);font-size:.66rem;letter-spacing:.05em;color:var(--fg-mute);text-align:center;margin-top:14px}
.okmsg{display:none;text-align:center;padding:30px 6px}.okmsg.show{display:block}
.okmsg .tk{width:62px;height:62px;border-radius:50%;border:1.5px solid var(--v);color:var(--v);display:grid;place-items:center;margin:0 auto 18px}.okmsg .tk svg{width:30px;height:30px}
.okmsg h3{font-family:var(--d);font-weight:700;font-size:1.5rem;margin-bottom:.3em}.okmsg p{color:var(--fg-soft)}

/* page hero */
.phero{padding-top:clamp(140px,16vw,220px);padding-bottom:clamp(40px,6vw,80px);overflow:hidden;position:relative}
.phero .crumb{font-family:var(--m);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--fg-mute);margin-bottom:26px}.phero .crumb a:hover{color:var(--v)}
.phero h1{font-size:clamp(3rem,10vw,8rem);max-width:16ch}.phero .lead{margin-top:24px;max-width:56ch}

/* filters + tools */
.filters{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:clamp(30px,4vw,50px)}
.fb{font-family:var(--m);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;padding:.7em 1.1em;border:1.5px solid var(--line-3);border-radius:100px;color:var(--fg-soft);transition:.25s var(--e1)}
.fb:hover{border-color:var(--fg);color:var(--fg)}.fb.on{background:var(--fg);color:#fff;border-color:var(--fg)}
.tgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.tcard{border:1.5px solid var(--line);border-radius:18px;padding:28px;background:var(--bg);display:flex;flex-direction:column;min-height:230px;transition:border-color .4s,box-shadow .4s;position:relative;overflow:hidden;transform-style:preserve-3d;will-change:transform}
.tcard:hover{border-color:transparent;box-shadow:0 28px 60px -30px rgba(91,70,255,.4)}
.tcard .glare{position:absolute;inset:0;pointer-events:none;background:radial-gradient(220px circle at var(--gx,50%) var(--gy,50%),rgba(91,70,255,.14),transparent 60%);opacity:0;transition:opacity .3s}.tcard:hover .glare{opacity:1}
.tcard.hide{display:none}
.tcard .th{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}
.tcard .ti{width:44px;height:44px;border-radius:11px;border:1.5px solid var(--line);display:grid;place-items:center;color:var(--v)}.tcard .ti svg{width:21px;height:21px}
.tcard .tc{font-family:var(--m);font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-mute)}
.tcard h3{font-family:var(--d);font-weight:700;font-size:1.22rem;letter-spacing:-.01em;margin-bottom:.45em}
.tcard p{color:var(--fg-soft);font-size:.92rem;line-height:1.5;flex:1}

/* about split */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,5vw,80px);align-items:center}
.panelviz{aspect-ratio:1/1;border-radius:24px;position:relative;overflow:hidden;background:var(--grad-3);display:grid;place-items:center;box-shadow:0 40px 90px -40px rgba(91,70,255,.6)}
.panelviz .pv-t{font-family:var(--d);font-weight:800;font-size:clamp(1.6rem,3vw,2.6rem);letter-spacing:-.03em;text-align:center;padding:30px;line-height:1.05;color:#fff}
.vals{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.val{border:1.5px solid var(--line);border-radius:16px;padding:26px;background:var(--bg)}
.val .vn{font-family:var(--m);font-size:.7rem;color:var(--v);letter-spacing:.1em}
.val h3{font-family:var(--d);font-weight:700;font-size:1.25rem;margin:.6em 0 .35em}.val p{color:var(--fg-soft);font-size:.94rem}

/* faq */
.faq{max-width:880px;margin-inline:auto}
.faq details{border-top:1.5px solid var(--line)}.faq details:last-child{border-bottom:1.5px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;padding:26px 4px;font-family:var(--d);font-weight:700;font-size:1.2rem;letter-spacing:-.015em;display:flex;justify-content:space-between;gap:18px;align-items:center}
.faq summary::-webkit-details-marker{display:none}
.faq summary .pm{width:20px;height:20px;flex-shrink:0;position:relative}
.faq summary .pm::before,.faq summary .pm::after{content:"";position:absolute;background:var(--v);border-radius:2px;transition:.3s var(--e1)}
.faq summary .pm::before{top:9px;left:1px;right:1px;height:2px}.faq summary .pm::after{left:9px;top:1px;bottom:1px;width:2px}
.faq details[open] summary .pm::after{transform:scaleY(0)}
.faq .a{color:var(--fg-soft);padding:0 4px 26px;max-width:70ch;line-height:1.65}

/* footer */
.foot{border-top:1px solid var(--line-2);padding-top:clamp(50px,6vw,80px);padding-bottom:34px}
.foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.2fr;gap:36px}
.foot .brand{font-size:1.7rem}
.foot p.fd{color:var(--fg-soft);max-width:32ch;margin-top:16px;font-size:.96rem}
.fsoc{display:flex;gap:10px;margin-top:22px}
.fsoc a{width:42px;height:42px;border:1.5px solid var(--line-3);border-radius:50%;display:grid;place-items:center;color:var(--fg-soft);transition:.3s var(--e1)}
.fsoc a:hover{border-color:var(--v);color:var(--v);transform:translateY(-3px)}.fsoc a svg{width:17px;height:17px}
.fcol h4{font-family:var(--m);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--fg-mute);margin-bottom:16px}
.fcol a,.fcol span{display:block;color:var(--fg-soft);padding:6px 0;font-size:.94rem;transition:color .2s}.fcol a:hover{color:var(--v)}
.fbot{border-top:1px solid var(--line-2);margin-top:48px;padding-top:26px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-family:var(--m);font-size:.68rem;letter-spacing:.06em;color:var(--fg-mute)}


/* hero animated heading */
.hhead{font-size:clamp(2.8rem,9vw,8.6rem);line-height:.95;max-width:16ch;letter-spacing:-.04em}
.hhead .hl{display:block}
.js .l-i{transform:translateY(112%) rotate(5deg)}
.grad-anim{background:linear-gradient(110deg,var(--v),var(--c),var(--pink),var(--v));background-size:300% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:gradmove 6s linear infinite;display:inline-block}
@keyframes gradmove{to{background-position:300% 0}}
/* comparison */
.vs{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.vscol{border-radius:22px;padding:clamp(26px,3vw,44px)}
.vscol.bad{border:1.5px solid var(--line);background:var(--bg-2)}
.vscol.good{background:var(--grad-3);color:#fff;box-shadow:0 40px 90px -50px rgba(91,70,255,.6)}
.vscol .vsh{font-family:var(--m);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;margin-bottom:8px;opacity:.7}
.vscol h3{font-family:var(--d);font-weight:700;font-size:clamp(1.5rem,2.6vw,2.2rem);margin-bottom:24px;letter-spacing:-.02em}
.vscol ul{list-style:none;display:flex;flex-direction:column;gap:15px}
.vscol li{display:flex;gap:.7em;font-size:1.02rem;line-height:1.4}
.vscol li .m{flex-shrink:0;font-weight:800}
.vscol.bad li .m{color:#d24b4b}.vscol.good li .m{color:#fff}
/* money engines */
.eng-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.eng{border:1.5px solid var(--line);border-radius:20px;padding:clamp(26px,3vw,40px);background:var(--bg);position:relative;overflow:hidden;transform-style:preserve-3d;will-change:transform;transition:border-color .4s,box-shadow .4s}
.eng:hover{border-color:transparent;box-shadow:0 30px 70px -34px rgba(91,70,255,.45)}
.eng .glare{position:absolute;inset:0;pointer-events:none;background:radial-gradient(240px circle at var(--gx,50%) var(--gy,50%),rgba(91,70,255,.15),transparent 60%);opacity:0;transition:opacity .3s}.eng:hover .glare{opacity:1}
.eng .ei{width:52px;height:52px;border-radius:13px;border:1.5px solid var(--line);display:grid;place-items:center;color:var(--v)}.eng .ei svg{width:24px;height:24px}
.eng .eo{font-family:var(--m);font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;color:var(--v);margin:20px 0 8px}
.eng h3{font-family:var(--d);font-weight:700;font-size:1.45rem;letter-spacing:-.02em;margin-bottom:.4em}
.eng p{color:var(--fg-soft);font-size:.98rem;line-height:1.5}
/* roi calculator */
.roi{display:grid;grid-template-columns:1fr 1fr;gap:clamp(22px,3vw,52px);border:1.5px solid var(--line);border-radius:24px;padding:clamp(28px,3.4vw,48px);background:var(--bg);box-shadow:0 50px 110px -60px rgba(10,10,14,.45)}
.roi-inputs{display:flex;flex-direction:column;gap:30px;justify-content:center}
.ri label{display:flex;justify-content:space-between;align-items:baseline;font-family:var(--m);font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:var(--fg-mute);margin-bottom:14px}
.ri label b{color:var(--fg);font-size:1rem;font-family:var(--d);font-weight:700}
.ri input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:5px;border-radius:5px;background:var(--bg-3);accent-color:var(--v);outline:none}
.ri input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:22px;height:22px;border-radius:50%;background:var(--v);cursor:pointer;box-shadow:0 4px 14px -2px rgba(91,70,255,.6);border:3px solid #fff}
.ri input[type=range]::-moz-range-thumb{width:18px;height:18px;border:3px solid #fff;border-radius:50%;background:var(--v);cursor:pointer}
.roi-out{display:flex;flex-direction:column;gap:15px;border-left:1.5px solid var(--line);padding-left:clamp(20px,3vw,42px)}
.ro{display:flex;justify-content:space-between;align-items:baseline;gap:14px}
.rol{font-family:var(--m);font-size:.7rem;letter-spacing:.05em;text-transform:uppercase;color:var(--fg-mute)}
.rov{font-family:var(--d);font-weight:800;font-size:clamp(1.4rem,2.6vw,2.1rem);letter-spacing:-.03em;white-space:nowrap}
.ro.tot{border-top:1.5px solid var(--line);padding-top:16px;margin-top:6px}.ro.tot .rov{font-size:clamp(2.1rem,4.2vw,3.3rem)}
.ro.life .rov{color:var(--v)}
.rod{font-family:var(--m);font-size:.62rem;line-height:1.65;color:var(--fg-mute);margin-top:8px}
/* proof band */
.proofband{border-radius:24px;padding:clamp(32px,4.4vw,64px);display:flex;justify-content:space-between;align-items:center;gap:30px;flex-wrap:wrap;background:var(--ink-card);color:#fff;position:relative;overflow:hidden}
.proofband::before{content:"";position:absolute;inset:0;background:radial-gradient(420px circle at var(--mx,80%) var(--my,30%),rgba(91,70,255,.3),transparent 60%);pointer-events:none}
.proofband>*{position:relative;z-index:2}
.proofband h2{font-family:var(--d);font-weight:800;font-size:clamp(1.9rem,3.8vw,3.2rem);letter-spacing:-.03em;max-width:20ch;line-height:1}
@media (max-width:780px){.vs,.eng-grid,.roi{grid-template-columns:1fr}.roi-out{border-left:none;border-top:1.5px solid var(--line);padding-left:0;padding-top:26px}}


/* hero cursor glow */
.hero[data-spotlight]::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(440px circle at var(--mx,50%) var(--my,42%),rgba(91,70,255,.18),transparent 60%)}
/* cursor comet trail */
/* rotating badge */
.spin-badge{position:absolute;right:clamp(14px,3vw,48px);bottom:clamp(110px,16vh,180px);width:120px;height:120px;z-index:3;pointer-events:none}
.spin-badge .ring{width:100%;height:100%;animation:spin 16s linear infinite;transform-origin:50% 50%}
.spin-badge text{font-family:var(--m);font-size:10.5px;letter-spacing:2.4px;fill:var(--fg);text-transform:uppercase}
.spin-badge .mid{position:absolute;inset:0;display:grid;place-items:center;color:var(--v)}.spin-badge .mid svg{width:22px;height:22px}
@keyframes spin{to{transform:rotate(360deg)}}
/* wearlie proof block */
.proof2{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(24px,4vw,56px);align-items:stretch}
.proof2-l{display:flex;flex-direction:column;justify-content:center}
.proof2-l .p2tag{font-family:var(--m);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--v);margin-bottom:14px;display:inline-flex;align-items:center;gap:.6em}
.proof2-l .p2tag::before{content:"";width:7px;height:7px;border-radius:50%;background:#16c784;box-shadow:0 0 10px #16c784}
.proof2-l h3{font-family:var(--d);font-weight:800;font-size:clamp(2.4rem,5vw,4.4rem);letter-spacing:-.04em;line-height:.95}
.proof2-l p{color:var(--fg-soft);margin-top:16px;font-size:1.05rem;max-width:50ch}
.proof2-l .p2acts{display:flex;gap:22px;align-items:center;flex-wrap:wrap;margin-top:30px}
.proof2-r{position:relative;border-radius:24px;overflow:hidden;background:var(--grad-3);min-height:clamp(320px,40vw,460px);box-shadow:0 40px 90px -45px rgba(91,70,255,.6)}
.proof2-r .ring{position:absolute;border:1.5px solid rgba(255,255,255,.3);border-radius:50%;top:46%;left:60%;transform:translate(-50%,-50%)}
.proof2-r .r1{width:200px;height:200px}.proof2-r .r2{width:330px;height:330px}.proof2-r .r3{width:470px;height:470px}
.proof2-r .chip{position:absolute;top:22%;left:46%;font-family:var(--m);font-size:.62rem;letter-spacing:.1em;color:#fff;border:1px solid rgba(255,255,255,.4);border-radius:100px;padding:.5em .9em;background:rgba(255,255,255,.12)}
.proof2-r .p2label{position:absolute;left:24px;bottom:22px;font-family:var(--m);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:#fff}
@media (max-width:980px){.spin-badge{display:none}}
@media (max-width:780px){.proof2{grid-template-columns:1fr}}


/* rotating headline */
.hhead.rot{display:flex;flex-direction:column;line-height:.96}
.rot-list{display:grid}
.rot-i{grid-area:1/1;opacity:0;transform:translateY(.32em);transition:opacity .6s var(--e1),transform .6s var(--e1);will-change:transform,opacity}
.rot-i.on{opacity:1;transform:none}
.rot-fixed{color:var(--fg)}
/* hero stat badges */
.hstats{display:flex;flex-wrap:wrap;gap:12px;margin-top:clamp(26px,3.5vw,40px)}
.hstat{display:flex;flex-direction:column;gap:4px;padding:16px 22px;border:1.5px solid var(--line);border-radius:16px;background:rgba(255,255,255,.55);backdrop-filter:blur(6px);min-width:128px;transition:border-color .3s,transform .3s var(--e1),box-shadow .3s}
.hstat:hover{border-color:transparent;transform:translateY(-3px);box-shadow:0 22px 50px -28px rgba(91,70,255,.5)}
.hstat .hsv{font-family:var(--d);font-weight:800;font-size:clamp(1.7rem,2.6vw,2.3rem);letter-spacing:-.04em;line-height:1;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.hstat .hsl{font-family:var(--m);font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-mute)}
/* dynamic background */
.bg-grid{position:fixed;inset:-12%;z-index:-3;pointer-events:none;opacity:.55;
  background-image:radial-gradient(rgba(91,70,255,.18) 1.1px,transparent 1.1px);background-size:36px 36px;
  animation:gridDrift 32s linear infinite;mask-image:radial-gradient(circle at 50% 30%,#000,transparent 75%);-webkit-mask-image:radial-gradient(circle at 50% 30%,#000,transparent 75%)}
@keyframes gridDrift{to{background-position:360px 360px}}
.blob.b4{width:34vw;height:34vw;right:18vw;top:-6vw;background:radial-gradient(circle,rgba(255,138,0,.26),transparent 64%);opacity:.4;animation:drift2 29s var(--e2) infinite alternate}
@media (max-width:560px){.hstat{flex:1 1 40%;min-width:0}}


/* responsive hardening */
html{overflow-x:hidden}
svg,canvas,video{max-width:100%}
@media (max-width:820px){
  .hero{padding-top:104px;min-height:96svh}
  .hero-meta{display:none}
  .spin-badge{display:none}
}
@media (max-width:680px){
  .sec{padding-block:64px}.sec-sm{padding-block:48px}
  .hstats{gap:9px}.hstat{padding:12px 14px;min-width:0;flex:1 1 42%}
  .proof2-r{min-height:280px}
  .proof2-l .p2acts{gap:14px}
  .shead{margin-bottom:32px}
  .vscol{padding:24px}
  .eng{padding:24px}
  .cta{padding-block:84px}
  .phero{padding-top:120px}
  .marq{padding-block:16px}
  .form{padding:22px}
  .cap{min-height:400px}
}
@media (max-width:400px){
  .hhead{font-size:2.3rem}
  .huge{font-size:2.5rem}
  .btn{padding:.95em 1.3em;font-size:.92rem}
  .hstat .hsv{font-size:1.5rem}
}
@media (hover:none){
  [data-tilt]{transform:none!important}
  .indc:hover,.tcard:hover,.eng:hover{box-shadow:none}
}

@media (max-width:1000px){
  .hero-sub{grid-template-columns:1fr}.hero-meta{text-align:left}
  .mani-grid,.split,.cgrid,.statgrid{grid-template-columns:1fr}
  .statgrid .stat{border-right:none;border-bottom:1px solid rgba(255,255,255,.12)}.statgrid .stat:last-child{border-bottom:none}
  .ind-grid,.tgrid{grid-template-columns:1fr 1fr}
  .shead{grid-template-columns:1fr}.shead .idx{display:none}
  .foot-grid{grid-template-columns:1fr 1fr}.foot-brand{grid-column:1/-1}
}
@media (max-width:680px){
  .nav,.hdr .ph,.cta-row>.btn{display:none}.burger{display:block}
  .ind-grid,.tgrid,.vals{grid-template-columns:1fr}.frow{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){
  *{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  [data-reveal],.lines .ln-i,.w-i,.l-i,[data-clip],.js [data-reveal],.js .lines .ln-i,.js .w-i,.js .l-i,.js [data-clip]{opacity:1!important;transform:none!important;filter:none!important;clip-path:none!important}
  .cdot,.cring{display:none!important}.has-cur,.has-cur *{cursor:auto!important}
  .blob{animation:none!important}
}
.hero h1.hero-seo,.phero h1.hero-seo,h1.hero-seo{font-size:.8rem!important;line-height:1.5!important;font-weight:600;letter-spacing:.13em;text-transform:uppercase;opacity:.72;margin:0 0 14px;max-width:60ch}

/* --- page-specific rules merged from contact.html / work.html --- */
.hpot{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.formerr{color:#c62828;font-size:.9rem;margin-top:12px;min-height:1px}
.formerr a{color:#c62828;text-decoration:underline}
.form .sub[disabled]{opacity:.55;cursor:not-allowed}
.proj h2{font-family:var(--d);font-weight:800;font-size:clamp(2.2rem,4.6vw,4.6rem);letter-spacing:-.035em;line-height:.95}

/* --- 6-card capability grid (service, industry and market pages) --- */
.capgrid.c3{grid-template-columns:repeat(3,1fr)}
@media (max-width:1180px){.capgrid.c3{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.capgrid.c3{grid-template-columns:1fr}}
