:root{
--bg:#0B0B0F;--bg2:#121218;--panel:#131319;--panel2:#16161E;--line:#23232C;--line2:#2E2E38;
--text:#F3F3F5;--muted:#9A9AAB;--faint:#6B6B7A;
--violet:#8B5CF6;--violet-hi:#A488FF;--violet-dim:#6D28D9;--lav:#C4B5FD;
--disp:'Space Grotesk',sans-serif;--body:'Inter',sans-serif;
--maxw:1120px;--rad:16px;--rad-lg:22px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:auto}
body{background:var(--bg);color:var(--text);font-family:var(--body);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{font-family:var(--disp);font-weight:600;line-height:1.08;letter-spacing:-.015em}
img{max-width:100%;display:block}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px}
.eye{font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--violet-hi);font-weight:500}
.muted{color:var(--muted)}

/* film grain + scroll progress */
.grain{position:fixed;inset:0;z-index:9000;pointer-events:none;opacity:.05;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:180px 180px}
#prog{position:fixed;top:0;left:0;height:2px;width:0;background:var(--violet);z-index:9100}

/* gradient canvas */
.grad-wrap{position:absolute;inset:0;overflow:hidden;z-index:0}
.grad{position:absolute;top:-10%;left:-10%;width:120%;height:120%;filter:blur(72px) saturate(1.25);opacity:.85}
.grad-wrap::after{content:"";position:absolute;inset:0;background:radial-gradient(120% 90% at 50% 0%,transparent 40%,var(--bg) 100%)}

/* nav */
nav{position:fixed;top:0;left:0;right:0;z-index:200;display:flex;align-items:center;justify-content:space-between;padding:20px 28px;transition:background .4s,border-color .4s,padding .4s;border-bottom:1px solid transparent}
nav.solid{background:rgba(11,11,15,.78);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);padding:14px 28px}
.brand{font-family:var(--disp);font-size:21px;font-weight:700;letter-spacing:.03em}
.brand b{color:var(--violet)}
.nlinks{display:flex;gap:26px;align-items:center}
.nlinks a{font-size:14.5px;color:var(--muted);transition:color .25s}
.nlinks a:hover{color:var(--text)}
@media(max-width:780px){.nlinks{display:none}}

/* mobile nav (hamburger + overlay) */
.navtoggle{display:none;background:none;border:0;color:var(--text);cursor:pointer;padding:6px;font-size:26px;line-height:1;align-items:center;justify-content:center;z-index:220}
.navtoggle i{display:block}
@media(max-width:780px){.navtoggle{display:inline-flex}}
.mnav{position:fixed;inset:0;z-index:210;background:rgba(11,11,15,.9);backdrop-filter:blur(16px);opacity:0;visibility:hidden;transition:opacity .3s ease;display:flex}
.mnav.open{opacity:1;visibility:visible}
.mnav-inner{margin:auto;width:100%;max-width:440px;padding:96px 34px 44px;display:flex;flex-direction:column;gap:2px}
.mnav-inner a{font-family:var(--disp);font-size:25px;font-weight:500;color:var(--text);padding:14px 0;border-bottom:1px solid var(--line);opacity:0;transform:translateY(12px);transition:opacity .45s ease,transform .45s ease,color .2s}
.mnav.open .mnav-inner a{opacity:1;transform:none}
.mnav-inner a:hover{color:var(--violet-hi)}
.mnav.open .mnav-inner a:nth-child(1){transition-delay:.04s}
.mnav.open .mnav-inner a:nth-child(2){transition-delay:.08s}
.mnav.open .mnav-inner a:nth-child(3){transition-delay:.12s}
.mnav.open .mnav-inner a:nth-child(4){transition-delay:.16s}
.mnav.open .mnav-inner a:nth-child(5){transition-delay:.20s}
.mnav.open .mnav-inner a:nth-child(6){transition-delay:.24s}
.mnav.open .mnav-inner a:nth-child(7){transition-delay:.28s}
.mnav.open .mnav-inner a:nth-child(8){transition-delay:.32s}
.mnav-inner a.mnav-cta{margin-top:24px;background:var(--violet);color:#0B0B0F;border:0;border-radius:12px;text-align:center;font-weight:600;font-size:17px;padding:16px;font-family:var(--body)}
.mnav-inner a.mnav-cta:hover{background:var(--violet-hi);color:#0B0B0F}
html.menu-open{overflow:hidden}
@media(prefers-reduced-motion:reduce){.mnav{transition:none}.mnav-inner a{transition:none;transform:none;opacity:1}}

/* nav dropdown (Industries) */
.ndrop{position:relative;display:flex;align-items:center}
.ndrop-t{background:none;border:0;padding:0;color:var(--muted);font-family:var(--body);font-size:14.5px;cursor:pointer;display:flex;align-items:center;gap:5px;transition:color .25s}
.ndrop-t:hover,.ndrop:focus-within .ndrop-t{color:var(--text)}
.ndrop-t i{font-size:15px;transition:transform .25s}
.ndrop:hover .ndrop-t i,.ndrop:focus-within .ndrop-t i{transform:rotate(180deg)}
.ndrop-menu{position:absolute;top:100%;left:50%;transform:translateX(-50%) translateY(10px);min-width:184px;background:var(--panel2);border:1px solid var(--line);border-radius:12px;padding:8px;opacity:0;visibility:hidden;transition:opacity .2s ease,transform .2s ease;box-shadow:0 14px 34px rgba(0,0,0,.45);z-index:210}
.ndrop-menu::before{content:"";position:absolute;top:-12px;left:0;right:0;height:12px}
.ndrop:hover .ndrop-menu,.ndrop:focus-within .ndrop-menu{opacity:1;visibility:visible;transform:translateX(-50%) translateY(6px)}
.ndrop-menu a{display:block;padding:10px 12px;border-radius:8px;color:var(--muted);font-size:14.5px;transition:background .2s,color .2s}
.ndrop-menu a:hover{background:rgba(139,92,246,.1);color:var(--text)}
@media(max-width:780px){.ndrop{display:none}}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:8px;background:var(--violet);color:#0B0B0F;font-weight:600;font-size:15px;padding:13px 22px;border-radius:11px;font-family:var(--body);transition:transform .25s,background .25s}
.btn:hover{background:var(--violet-hi);transform:translateY(-2px)}
.btn.lg{padding:16px 30px;font-size:16px}
.ghost{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line2);color:var(--text);font-weight:500;font-size:15px;padding:14px 24px;border-radius:11px;transition:border-color .25s,background .25s}
.ghost:hover{border-color:var(--violet);background:rgba(139,92,246,.06)}

/* hero */
.hero{position:relative;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:140px 28px 80px}
.hero-inner{position:relative;z-index:2;max-width:860px}
#field{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:0}
.hero h1{font-size:clamp(46px,9vw,96px);font-weight:700;margin-top:22px}
.hero .sub{font-size:clamp(16px,2.2vw,20px);color:var(--muted);max-width:540px;margin:24px auto 0}
.hero .ctas{display:flex;gap:14px;justify-content:center;margin-top:36px;flex-wrap:wrap}
.cue{position:absolute;bottom:28px;left:50%;transform:translateX(-50%);color:var(--faint);font-size:11px;letter-spacing:.2em;text-transform:uppercase;display:flex;flex-direction:column;align-items:center;gap:8px;z-index:2}
.cue i{font-size:20px;animation:bob 1.8s ease-in-out infinite}
@keyframes bob{0%,100%{transform:translateY(0);opacity:.5}50%{transform:translateY(7px);opacity:1}}

/* sections */
section.block{padding:clamp(72px,11vw,140px) 0;position:relative}
.block h2{font-size:clamp(30px,5vw,48px);margin-top:14px}
.lead{font-size:clamp(16px,2vw,18px);color:var(--muted);max-width:580px;margin-top:16px}
.statement{font-size:clamp(26px,4.4vw,46px);font-family:var(--disp);font-weight:500;line-height:1.18;letter-spacing:-.02em;max-width:880px}
.statement b{color:var(--violet-hi);font-weight:500}

/* service cards (clickable) */
.cards{display:grid;gap:18px;margin-top:50px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--rad-lg);padding:30px;display:flex;gap:22px;align-items:flex-start;transition:transform .35s,border-color .35s,background .35s}
.card:hover{transform:translateY(-4px);border-color:var(--violet);background:var(--panel2)}
.ico{width:56px;height:56px;border-radius:15px;background:#1A1626;color:var(--violet-hi);display:flex;align-items:center;justify-content:center;font-size:28px;flex:0 0 auto}
.card h3{font-size:22px;font-weight:600}
.card p{color:var(--muted);margin-top:10px;font-size:15.5px}
.card .go{margin-top:16px;display:inline-flex;align-items:center;gap:7px;color:var(--violet-hi);font-weight:500;font-size:14.5px}
.card:hover .go i{transform:translateX(4px)}
.card .go i{transition:transform .25s}

/* steps */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:56px}
.step{position:relative}
.sdot{width:42px;height:42px;border-radius:50%;border:1px solid var(--line2);color:var(--violet-hi);display:flex;align-items:center;justify-content:center;font-weight:600;font-family:var(--disp);background:var(--bg2)}
.step h4{font-size:16px;font-weight:600;margin-top:18px;font-family:var(--body)}
.step p{font-size:13.5px;color:var(--faint);margin-top:7px}
@media(max-width:640px){.steps{grid-template-columns:repeat(2,1fr);gap:30px 16px}}

/* why / grid cards */
.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;margin-top:50px}
.wc{background:var(--panel);border:1px solid var(--line);border-radius:var(--rad-lg);padding:30px;transition:border-color .35s}
.wc:hover{border-color:var(--line2)}
.wc i{font-size:30px;color:var(--violet-hi)}
.wc h4{font-size:19px;font-weight:600;margin-top:18px}
.wc p{color:var(--muted);margin-top:10px;font-size:15px}

/* faq */
.faq{margin-top:46px;border-top:1px solid var(--line)}
.fi{border-bottom:1px solid var(--line)}
.q{width:100%;background:none;border:0;color:var(--text);text-align:left;font-family:var(--disp);font-size:19px;font-weight:500;padding:24px 0;display:flex;justify-content:space-between;align-items:center;gap:20px;cursor:pointer}
.q i{color:var(--violet);transition:transform .3s;font-size:22px;flex:0 0 auto}
.q.open i{transform:rotate(45deg)}
.a{max-height:0;overflow:hidden;transition:max-height .4s ease}
.a p{color:var(--muted);padding-bottom:24px;font-size:15.5px;max-width:760px}

/* final cta */
.final{position:relative;overflow:hidden;margin:0 28px;border:1px solid #2A2440;border-radius:28px;padding:clamp(64px,9vw,110px) 28px;text-align:center}
.final .grad-wrap{opacity:.5}
.final-inner{position:relative;z-index:2}
.final h2{font-size:clamp(34px,6vw,62px)}
.final .sub{color:var(--muted);max-width:520px;margin:18px auto 0;font-size:17px}
.micro{margin-top:16px;font-size:13.5px;color:var(--faint)}

/* footer */
footer{padding:72px 0 32px;margin-top:90px;border-top:1px solid var(--line)}
.fgrid{display:grid;grid-template-columns:1.7fr 1fr 1fr 1fr;gap:30px}
footer .tag{color:var(--faint);margin-top:14px;font-size:14px;max-width:240px}
.fcol h5{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-bottom:16px}
.fcol a{display:block;color:var(--muted);font-size:14.5px;margin-bottom:11px;transition:color .2s}
.fcol a:hover{color:var(--text)}
.copy{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;color:#55555f;font-size:13px;margin-top:54px;padding-top:24px;border-top:1px solid var(--line)}
@media(max-width:760px){.fgrid{grid-template-columns:1fr 1fr}}

/* sub-page hero + prose */
.page-hero{position:relative;padding:160px 28px 60px;overflow:hidden}
.page-hero .grad-wrap{opacity:.55}
.page-hero-inner{position:relative;z-index:2;max-width:var(--maxw);margin:0 auto}
.crumb{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-size:14px;margin-bottom:22px}
.crumb:hover{color:var(--text)}
.page-hero h1{font-size:clamp(40px,7vw,76px);font-weight:700;margin-top:6px}
.page-hero .sub{font-size:clamp(16px,2.2vw,20px);color:var(--muted);max-width:600px;margin-top:20px}
.prose{max-width:720px}
.prose h2{font-size:clamp(26px,4vw,38px);margin:0 0 14px}
.prose h3{font-size:21px;font-weight:600;margin:38px 0 10px}
.prose p{color:var(--muted);font-size:16.5px;margin-bottom:16px}
.prose ul{list-style:none;margin:14px 0 8px}
.prose li{position:relative;padding-left:28px;color:var(--muted);font-size:16px;margin-bottom:12px}
.prose li::before{content:"";position:absolute;left:0;top:11px;width:8px;height:8px;border-radius:50%;background:var(--violet)}
.split{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:start}
@media(max-width:820px){.split{grid-template-columns:1fr;gap:30px}}

/* reveal */
.js .reveal{opacity:0;transform:translateY(34px);transition:opacity .9s cubic-bezier(.22,1,.36,1),transform .9s cubic-bezier(.22,1,.36,1)}
.js .reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.js .reveal{opacity:1!important;transform:none!important}.grad{display:none}.cue i{animation:none}}

/* ===== homepage: "How it works" sticky animated split (ported from strivo-site.html, namespaced .how-*) ===== */
.how-grid{margin-top:50px;display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,5rem);align-items:start}
.how-steps{position:relative;padding-left:1.4rem;display:grid;gap:0}
.how-line{position:absolute;left:0;top:0;width:2px;height:100%;background:linear-gradient(var(--violet),var(--lav));transform:scaleY(0);transform-origin:top;border-radius:2px}
.how-step{display:grid;grid-template-columns:auto 1fr;gap:1.5rem;padding:1.75rem 0;border-top:1px solid var(--line);align-items:center;min-height:34vh}
.how-step:last-child{border-bottom:1px solid var(--line)}
.how-step .n{font-family:var(--disp);font-weight:600;font-size:1rem;color:var(--violet);transition:color .35s cubic-bezier(.16,1,.3,1),transform .35s cubic-bezier(.16,1,.3,1)}
.how-step h4{font-family:var(--disp);font-size:1.35rem;font-weight:600;margin-bottom:.4rem;color:#CFD0D8;transition:color .35s cubic-bezier(.16,1,.3,1)}
.how-step p{color:var(--muted);max-width:54ch;font-size:15.5px}
.how-step.active .n{color:var(--lav);transform:scale(1.12)}
.how-step.active h4{color:var(--text)}
.how-viz{position:sticky;top:110px}
.viz-frame{position:relative;width:100%;aspect-ratio:4/3.4;background:linear-gradient(180deg,#16171F,#0F1016);border:1px solid var(--line2);border-radius:20px;overflow:hidden;box-shadow:0 40px 90px -50px rgba(0,0,0,.85),0 0 0 1px rgba(139,92,246,.05),0 30px 80px -55px rgba(139,92,246,.4)}
.viz{position:absolute;inset:0;padding:1.5rem;display:flex;flex-direction:column;opacity:0;transform:translateY(14px);transition:opacity .5s cubic-bezier(.16,1,.3,1),transform .5s cubic-bezier(.16,1,.3,1);pointer-events:none}
.viz.active{opacity:1;transform:none}
.viz-label{display:inline-flex;align-items:center;gap:.5rem;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:1rem}
.viz-label::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--violet);box-shadow:0 0 10px rgba(139,92,246,.75)}
.viz-cap{text-align:center;font-size:.86rem;color:var(--muted);margin-top:.8rem}
.viz-cap b{color:var(--text);font-weight:600}
.viz-target{flex:1;width:100%;color:var(--lav)}
.viz-target circle{fill:none;stroke:currentColor;opacity:.4}
.viz-target line{stroke:currentColor;opacity:.3;stroke-width:1.5}
.viz-target .bull{fill:var(--violet);stroke:none;opacity:1}
.viz-target .ring-pulse{transform-box:fill-box;transform-origin:center;animation:ringpulse 2.8s cubic-bezier(.16,1,.3,1) infinite}
@keyframes ringpulse{0%{transform:scale(.7);opacity:.55}70%{opacity:0}100%{transform:scale(1.6);opacity:0}}
.wf{flex:1;display:flex;flex-direction:column;background:#0E0F15;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.wf-bar{display:flex;align-items:center;gap:6px;padding:9px 11px;border-bottom:1px solid var(--line)}
.wf-bar i{width:8px;height:8px;border-radius:50%;background:#2a2b34}
.wf-bar span{margin-left:8px;font-size:.68rem;color:var(--faint);background:#15161d;padding:2px 9px;border-radius:6px}
.wf-body{padding:14px;display:flex;flex-direction:column;gap:10px;flex:1}
.wf-block,.wf-line,.wf-card{background:linear-gradient(90deg,#1b1c26,#262732,#1b1c26);background-size:200% 100%;animation:wfshim 2.4s linear infinite;border-radius:6px}
.wf-hero{height:34%}
.wf-line{height:9px}.w70{width:70%}.w50{width:48%}
.wf-btn{height:24px;width:42%;background:rgba(139,92,246,.55);border-radius:999px}
.wf-row{display:flex;gap:8px;flex:1;margin-top:2px}
.wf-card{flex:1}
@keyframes wfshim{to{background-position:-200% 0}}
.chips{display:flex;gap:8px;justify-content:space-between;margin-bottom:6px}
.chips span{font-size:.72rem;color:#cfd0d8;background:rgba(255,255,255,.04);border:1px solid var(--line);border-radius:8px;padding:5px 11px}
.flow{flex:1;width:100%}
.flow-line{fill:none;stroke:var(--violet);stroke-width:1.6;stroke-dasharray:4 7;animation:flowmove 1.3s linear infinite;opacity:.75}
@keyframes flowmove{to{stroke-dashoffset:-22}}
.flow-node{fill:var(--lav)}
.gc-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.3rem}
.gc-lbl{font-size:.74rem;color:var(--muted)}
.gc-num{font-family:var(--disp);font-weight:600;font-size:2rem;letter-spacing:-.02em;line-height:1.1}
.gc-badge{font-size:.72rem;font-weight:600;color:#C9F8E4;background:rgba(35,210,150,.12);border:1px solid rgba(35,210,150,.28);border-radius:999px;padding:.28rem .6rem;white-space:nowrap}
.gc-chart{flex:1;position:relative;margin-top:.4rem}
.gc-chart svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.gc-line{filter:drop-shadow(0 0 6px rgba(139,92,246,.5))}
@media(max-width:900px){
  .how-grid{grid-template-columns:1fr;gap:1.5rem}
  .how-viz{order:-1;top:70px;margin-bottom:.5rem}
  .viz-frame{aspect-ratio:16/10}
  .how-step{min-height:44vh}
}
@media(max-width:560px){.how-step{min-height:58vh}}

/* homepage: final CTA "noise to signal" particle engine */
.cta-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:0;opacity:.85;border-radius:inherit}
