/* ---- self-hosted type: a privacy product makes no third-party font requests ---- */
@font-face{font-family:'Inter';font-style:normal;font-weight:100 900;font-display:swap;
  src:url('../fonts/inter-latin.woff2') format('woff2')}
@font-face{font-family:'Inter';font-style:italic;font-weight:100 900;font-display:swap;
  src:url('../fonts/inter-latin-italic.woff2') format('woff2')}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:100 800;font-display:swap;
  src:url('../fonts/jetbrains-mono-latin.woff2') format('woff2')}

:root{
  --bg:#000;/* matches the artwork frames' own black so they have no edge to blend against */
  --panel:#0A0F0C;
  --panel2:#0C1210;
  --line:#16211C;
  --line2:#213028;
  --text:#EAF3EE;
  --text-dim:#C2CFC8;
  --muted:#8CA096;
  --green:#46E88C;
  --green-deep:#18C8A8;
  --cyan:#43D9F0;
  --blue:#5B8CFF;
  --purple:#A97DFF;
  --pink:#F26DD0;
  --gold:#F2B94B;
  --orange:#F59E4B;
  --mono:'JetBrains Mono',ui-monospace,monospace;
  --sans:'Inter',-apple-system,sans-serif;
}
#wv *{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:96px}
#wv{background:var(--bg);color:var(--text);font-family:var(--sans);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;position:relative;width:100vw;left:50%;margin-left:-50vw;margin-right:-50vw;overflow-x:clip;isolation:isolate}
#wv ::selection{background:rgba(70,232,140,.28);color:#fff}
#wv a{color:inherit;text-decoration:none}
#wv img, #wv svg{display:block;max-width:100%}
#wv .wrap{max-width:1200px;margin:0 auto;padding:0 28px}
#wv section{position:relative;padding:92px 0;overflow:hidden}
#wv .sprite{position:absolute;width:0;height:0;overflow:hidden}
#wv .eyebrow{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.32em;text-transform:uppercase;color:var(--green);margin-bottom:22px}
#wv h1{font-size:clamp(2.05rem,4.3vw,3.3rem);line-height:1.07;letter-spacing:-.03em;font-weight:800;margin-bottom:24px}
#wv h2{font-size:clamp(2.05rem,4.3vw,3.3rem);line-height:1.07;letter-spacing:-.03em;font-weight:800;margin-bottom:24px}
#wv .ac{color:var(--green)}
#wv .ai{color:var(--green);font-style:italic}
#wv h1 em, #wv h2 em{font-style:italic}
#wv .lead{font-size:1.04rem;color:var(--text-dim);max-width:56ch;margin-bottom:32px}
#wv .sub-h{font-size:1.3rem;font-weight:700;letter-spacing:-.01em;margin:-8px 0 18px}
#wv .fine{margin-top:14px;font-size:.8rem;color:var(--muted)}
#wv .btn{display:inline-flex;align-items:center;gap:10px;font-family:var(--sans);font-weight:700;font-size:.94rem;padding:15px 24px;border-radius:12px;border:1px solid transparent;cursor:pointer;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease,background .25s ease}
#wv .btn svg{width:17px;height:17px}
#wv .btn-primary{background:linear-gradient(120deg,#41E987,#17CFA4);color:#03130B;box-shadow:0 12px 36px -10px rgba(52,224,150,.5)}
#wv .btn-primary:hover{transform:translateY(-2px);box-shadow:0 18px 44px -10px rgba(52,224,150,.6)}
#wv .btn-ghost{background:rgba(255,255,255,.02);border-color:var(--line2);color:var(--text)}
#wv .btn-ghost:hover{border-color:rgba(70,232,140,.45);transform:translateY(-2px)}
#wv .btn-row{display:flex;gap:14px;flex-wrap:wrap}
#wv .nav{position:fixed;top:0;left:0;right:0;z-index:60;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);background:rgba(0,0,0,.74);border-bottom:1px solid rgba(22,33,28,.8)}
#wv .nav-in{max-width:1240px;margin:0 auto;padding:0 28px;height:72px;display:flex;align-items:center;gap:36px}
#wv .logo{display:flex;align-items:center;gap:10px;font-weight:800;font-size:1.14rem;letter-spacing:-.02em}
#wv .logo svg{width:30px;height:auto;flex:none}
#wv .nav-links{display:flex;gap:28px;margin-left:auto;font-size:.89rem;font-weight:500;color:var(--text-dim)}
#wv .nav-links a{transition:color .2s}
#wv .nav-links a:hover{color:#fff}
#wv .nav .btn-primary{padding:11px 18px;font-size:.85rem;border-radius:10px}
#wv .pt-ic, #wv .fc-ic, #wv .hp-ic, #wv .chip-ic{--fc:70,232,140;display:grid;place-items:center;flex:none;background:rgba(var(--fc),.08);border:1px solid rgba(var(--fc),.24);color:rgb(var(--fc))}
#wv .pt-ic{width:42px;height:42px;border-radius:12px}
#wv .pt-ic svg{width:20px;height:20px}
#wv .chip-ic{width:42px;height:42px;border-radius:12px}
#wv .chip-ic svg{width:20px;height:20px}
#wv .fc-ic{width:32px;height:32px;border-radius:9px}
#wv .fc-ic svg{width:16px;height:16px}
#wv .hp-ic{width:28px;height:28px;border-radius:8px}
#wv .hp-ic svg{width:14px;height:14px}
#wv .c-green{--fc:70,232,140}
#wv .c-cyan{--fc:67,217,240}
#wv .c-blue{--fc:91,140,255}
#wv .c-purple{--fc:169,125,255}
#wv .c-pink{--fc:242,109,208}
#wv .c-gold{--fc:242,185,75}
#wv .c-orange{--fc:245,158,75}
#wv #hero{padding:172px 0 0}
#wv #hero::before{content:'';position:absolute;top:-240px;left:50%;transform:translateX(-50%);width:1000px;height:640px;background:radial-gradient(closest-side,rgba(70,232,140,.12),transparent 72%);pointer-events:none}
#wv #hero .wrap{max-width:1460px}
#wv .hero-grid{display:grid;grid-template-columns:minmax(450px,1fr) minmax(0,1.95fr);gap:40px;align-items:center;position:relative}
#wv .hero-vis{min-width:0}
#wv .hero-svg{width:100%;height:auto;display:block;overflow:visible}
#wv .hero-svg-m{display:none}
@media(max-width:820px){#wv .hero-svg{display:none}#wv .hero-svg-m{display:block;width:100%;height:auto;overflow:visible;margin:0 auto}#wv .hero-vis{max-width:none}}
@media(min-width:1151px){#wv #hero h1{white-space:nowrap}}
#wv .hero-copy .lead{margin-bottom:14px}
#wv .keys{font-weight:700;font-size:1rem;margin-bottom:32px}
#wv .trust{display:flex;align-items:center;flex-wrap:wrap;gap:14px 26px;margin-top:34px}
#wv .trust span{font-family:var(--mono);font-size:.72rem;font-weight:500;letter-spacing:.13em;color:var(--muted)}
#wv .trust-lock{display:inline-flex;align-items:center;gap:8px}
#wv .trust-lock svg{width:15px;height:15px;color:var(--muted)}
#wv .chips{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line2);border-radius:20px;margin:52px auto 0;max-width:1080px;background:linear-gradient(180deg,#0A0F0C,#070B09);overflow:hidden}
#wv .chip{display:flex;gap:14px;align-items:center;justify-content:center;padding:24px 28px;border-left:1px solid var(--line)}
#wv .chip:first-child{border-left:none}
#wv .chip b{display:block;font-size:.96rem;line-height:1.3}
#wv .chip small{color:var(--muted);font-size:.78rem}
#wv #hero .wrap:last-child{padding-bottom:88px}
#wv .split{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center}
#wv .split-wide{max-width:1480px;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:64px}
#wv .split-wide.split-gfx{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr)}
#wv .mos-stage{position:relative;perspective:1700px;perspective-origin:50% 46%;padding:26px 0;overflow:hidden}
#wv .mos-tilt{transform:rotateX(15deg) rotateY(-21deg) rotateZ(2.5deg) scale(1.05);transform-style:preserve-3d;transform-origin:50% 50%}
#wv .mos-svg{width:100%;height:auto;display:block;overflow:visible;
-webkit-mask-image:radial-gradient(ellipse 64% 68% at 50% 50%,#000 0%,#000 40%,rgba(0,0,0,.86) 60%,rgba(0,0,0,.5) 79%,rgba(0,0,0,.16) 92%,transparent 100%);
mask-image:radial-gradient(ellipse 64% 68% at 50% 50%,#000 0%,#000 40%,rgba(0,0,0,.86) 60%,rgba(0,0,0,.5) 79%,rgba(0,0,0,.16) 92%,transparent 100%)}
#wv .mos-bg{filter:brightness(.78)}
#wv .pxl,#wv .pxs{animation-play-state:paused}
#wv .mos-stage.live .pxl,#wv .mos-stage.live .pxs{animation-play-state:running}
#wv .pxl{opacity:var(--i);transform:translate(calc(var(--a)*1px),calc(var(--b)*1px));
animation:pxflow 30s cubic-bezier(.55,0,.35,1) infinite;animation-delay:var(--m,0s)}
@keyframes pxflow{
0%,7%{transform:translate(calc(var(--a)*1px),calc(var(--b)*1px));opacity:var(--i)}
23%,32%{transform:translate(calc(var(--c)*1px),calc(var(--d)*1px));opacity:var(--j)}
48%,57%{transform:translate(calc(var(--e)*1px),calc(var(--f)*1px));opacity:var(--k)}
73%,82%{transform:translate(calc(var(--g)*1px),calc(var(--h)*1px));opacity:var(--l)}
100%{transform:translate(calc(var(--a)*1px),calc(var(--b)*1px));opacity:var(--i)}}
#wv .pxs{animation:pxsTw var(--t,9s) ease-in-out infinite;animation-delay:var(--u,0s);opacity:var(--p,.14)}
@keyframes pxsTw{0%,100%{opacity:calc(var(--p,.14)*.62)}50%{opacity:calc(var(--p,.14)*1.5)}}
#wv .pxf{opacity:var(--p,.14)}
#wv .p1{--p:.09}#wv .p2{--p:.13}#wv .p3{--p:.18}#wv .p4{--p:.24}#wv .p5{--p:.31}
#wv .t1{--t:7s;--u:0s}#wv .t2{--t:8s;--u:.9s}#wv .t3{--t:9s;--u:1.8s}#wv .t4{--t:10s;--u:2.7s}#wv .t5{--t:11s;--u:3.6s}
#wv .t6{--t:7.5s;--u:4.5s}#wv .t7{--t:8.5s;--u:5.4s}#wv .t8{--t:9.5s;--u:6.3s}#wv .t9{--t:10.5s;--u:7.2s}#wv .t10{--t:12s;--u:8.1s}
#wv .bok{animation:bokDrift var(--bd,34s) ease-in-out infinite alternate}
@keyframes bokDrift{from{transform:translate(0,0)}to{transform:translate(14px,-10px)}}
#wv .b1{--bd:30s}#wv .b2{--bd:36s}#wv .b3{--bd:42s}#wv .b4{--bd:33s}#wv .b5{--bd:39s}#wv .b6{--bd:45s}
#wv .sync-wrap{position:relative;display:block;width:100%;
-webkit-mask-image:linear-gradient(to bottom,#000 0,#000 58%,rgba(0,0,0,.72) 76%,rgba(0,0,0,.28) 90%,transparent 100%),linear-gradient(to right,transparent 0,rgba(0,0,0,.55) 4%,#000 8%,#000 92%,rgba(0,0,0,.55) 96%,transparent 100%),linear-gradient(to bottom,transparent 0,rgba(0,0,0,.5) 5%,#000 12%,#000 100%);
mask-image:linear-gradient(to bottom,#000 0,#000 58%,rgba(0,0,0,.72) 76%,rgba(0,0,0,.28) 90%,transparent 100%),linear-gradient(to right,transparent 0,rgba(0,0,0,.55) 4%,#000 8%,#000 92%,rgba(0,0,0,.55) 96%,transparent 100%),linear-gradient(to bottom,transparent 0,rgba(0,0,0,.5) 5%,#000 12%,#000 100%);
-webkit-mask-composite:source-in;mask-composite:intersect}
#wv .sync-img{width:100%;height:auto;display:block}
#wv .sync-fx{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}
#wv .fdI,#wv .fdO{animation-duration:4.2s;animation-timing-function:linear;animation-iteration-count:infinite;animation-delay:calc(var(--fd,0)*-4.2s);opacity:0}
#wv .fdI{animation-name:fdIn}
#wv .fdO{animation-name:fdOut}
@keyframes fdIn{
0%{transform:translate(0,0) scaleX(.45);opacity:0}
18%{opacity:var(--op,.5)}
100%{transform:translate(var(--tx),var(--ty)) scaleX(1.3);opacity:0}}
@keyframes fdOut{
0%{transform:translate(0,0) scaleX(1.3);opacity:0}
14%{opacity:var(--op,.5)}
100%{transform:translate(var(--tx),var(--ty)) scaleX(.45);opacity:0}}
#wv .cbit{animation:cbit var(--cb,2.4s) steps(1,end) infinite;animation-delay:var(--cd,0s)}
@keyframes cbit{0%,100%{opacity:.18}22%{opacity:.85}44%{opacity:.3}66%{opacity:.7}88%{opacity:.22}}
#wv .k1{--cb:1.9s;--cd:0s}#wv .k2{--cb:2.2s;--cd:.2s}#wv .k3{--cb:2.5s;--cd:.4s}#wv .k4{--cb:2.8s;--cd:.6s}#wv .k5{--cb:2.1s;--cd:.8s}
#wv .k6{--cb:2.4s;--cd:1s}#wv .k7{--cb:2.7s;--cd:1.2s}#wv .k8{--cb:3s;--cd:1.4s}#wv .k9{--cb:2s;--cd:1.6s}#wv .k10{--cb:2.6s;--cd:1.8s}
#wv .prism-svg{width:100%;height:auto;display:block;overflow:visible}
#wv .points{display:flex;flex-direction:column;gap:22px}
#wv .point{display:flex;gap:16px}
#wv .point b{display:block;font-size:1rem;margin-bottom:3px;letter-spacing:-.01em}
#wv .point p{color:var(--muted);font-size:.9rem;line-height:1.55;max-width:46ch}
#wv .callout{display:flex;gap:14px;align-items:center;margin-top:34px;padding:18px 20px;border:1px solid rgba(70,232,140,.35);background:rgba(70,232,140,.05);border-radius:14px}
#wv .callout b{display:block;font-size:.97rem}
#wv .callout span{display:block;font-size:.9rem}
#wv .quoteline{margin-top:34px;padding:4px 0 4px 20px;border-left:3px solid var(--green);font-size:1.02rem;font-weight:600;line-height:1.55}
#wv .gfx{position:relative;min-width:0}
#wv .g-glow::before{content:'';position:absolute;inset:-8%;background:radial-gradient(closest-side,rgba(70,232,140,.07),transparent 75%);pointer-events:none}
#wv .cons-svg{width:100%;height:auto;display:block;overflow:visible}
#wv .cons-bg{filter:brightness(.66)}
#wv .twk{animation:twinkle var(--tw,3s) ease-in-out infinite;animation-delay:var(--td,0s)}
@keyframes twinkle{0%,100%{opacity:.32}50%{opacity:1}}
#wv .condash{animation:dashslow 4.5s linear infinite}
#wv .cons{transform-box:fill-box;animation:consFloat var(--cf,9s) ease-in-out infinite;animation-delay:var(--cd,0s)}
@keyframes consFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
#wv .gpulse{transform-box:fill-box;transform-origin:center;animation:gpulse var(--gp,3.4s) ease-in-out infinite;animation-delay:var(--gd,0s)}
@keyframes gpulse{0%,100%{transform:scale(.6);opacity:.22}50%{transform:scale(1.75);opacity:1}}
#wv .ripple{transform-box:fill-box;transform-origin:center;opacity:0;animation:ripple 5.1s cubic-bezier(.2,.6,.3,1) infinite;animation-delay:var(--rd,0s)}
@keyframes ripple{0%{transform:scale(1);opacity:.7}70%{opacity:.12}100%{transform:scale(1.85);opacity:0}}
#wv .star-ripple{transform-box:fill-box;transform-origin:center;opacity:0;animation:starRipple var(--sp,3.6s) ease-out infinite;animation-delay:var(--sd,0s)}
@keyframes starRipple{0%{transform:scale(.5);opacity:.85}100%{transform:scale(3.2);opacity:0}}
#wv .beam{animation:beamPulse 3.2s ease-in-out infinite}
@keyframes beamPulse{0%,100%{opacity:.45}50%{opacity:1}}
#wv .g1{--gp:2.6s;--gd:0s}#wv .g2{--gp:3s;--gd:.4s}#wv .g3{--gp:3.4s;--gd:.9s}#wv .g4{--gp:3.8s;--gd:1.3s}#wv .g5{--gp:2.8s;--gd:1.8s}#wv .g6{--gp:3.2s;--gd:2.2s}#wv .g7{--gp:3.6s;--gd:2.6s}#wv .g8{--gp:4s;--gd:.7s}#wv .g9{--gp:2.9s;--gd:1.5s}#wv .g10{--gp:3.5s;--gd:2.9s}
#wv .k1{--tw:2.6s;--td:0s}#wv .k2{--tw:3s;--td:.5s}#wv .k3{--tw:3.4s;--td:1s}#wv .k4{--tw:3.8s;--td:1.5s}#wv .k5{--tw:4.2s;--td:2s}#wv .k6{--tw:2.8s;--td:2.5s}#wv .k7{--tw:3.2s;--td:3s}#wv .k8{--tw:3.6s;--td:.8s}#wv .k9{--tw:4s;--td:1.8s}#wv .k10{--tw:2.7s;--td:2.3s}
#wv .tree-svg{width:100%;height:auto;display:block;overflow:visible;border-radius:18px}
#wv .limb-pulse{stroke-dasharray:26 var(--pl,1000px);stroke-dashoffset:0;opacity:.95;filter:drop-shadow(0 0 5px currentColor);animation:limbFlow var(--pdur,4s) linear infinite;animation-delay:var(--pdl,0s)}
@keyframes limbFlow{to{stroke-dashoffset:calc((var(--pl,1000px) + 26px) * -1)}}
#wv .xlink{animation:dashslow 12s linear infinite}
#wv .chip-node{transform-box:fill-box;transform-origin:center;animation:chipPulse var(--gp,3.6s) ease-in-out infinite;animation-delay:var(--gd,0s)}
@keyframes chipPulse{0%,100%{opacity:.62}50%{opacity:1}}
#wv .points-linked .point{position:relative}
#wv .points-linked .point:not(:last-child)::before{content:'';position:absolute;left:20.5px;top:50px;bottom:-24px;border-left:1.5px dashed rgba(70,232,140,.32)}
#wv .flow-dot{offset-rotate:0deg;animation:flowOut var(--fo,3s) linear infinite;animation-delay:var(--fd,0s)}
@keyframes flowOut{0%{offset-distance:0%;opacity:0}14%{opacity:1}82%{opacity:1}100%{offset-distance:100%;opacity:0}}
#wv .ring-rot{transform-box:fill-box;transform-origin:center;animation:ringspin 72s linear infinite}
@keyframes ringspin{to{transform:rotate(360deg)}}
#wv .cf{animation:faintTw var(--tw,7s) ease-in-out infinite;animation-delay:var(--td,0s);opacity:var(--o1,.1)}
@keyframes faintTw{0%,100%{opacity:calc(var(--o1,.1) * .72)}50%{opacity:calc(var(--o1,.1) * 1.32)}}
#wv .o1{--o1:.12}#wv .o2{--o1:.2}#wv .o3{--o1:.3}#wv .o4{--o1:.42}#wv .o5{--o1:.58}
#wv .s1{--tw:5.5s;--td:0s}#wv .s2{--tw:6.5s;--td:.8s}#wv .s3{--tw:7.5s;--td:1.7s}#wv .s4{--tw:8.5s;--td:2.6s}#wv .s5{--tw:9.5s;--td:3.4s}#wv .s6{--tw:10.5s;--td:4.2s}#wv .s7{--tw:6s;--td:5s}#wv .s8{--tw:7s;--td:5.9s}#wv .s9{--tw:8s;--td:6.7s}#wv .s10{--tw:9s;--td:7.5s}#wv .s11{--tw:11s;--td:8.3s}#wv .s12{--tw:12s;--td:9.1s}
#wv .ring-outer{transform-box:fill-box;transform-origin:center;animation:ringspinrev 96s linear infinite}
@keyframes ringspinrev{to{transform:rotate(-360deg)}}
#wv .ring-crawl{animation:ringcrawl 24s linear infinite}
@keyframes ringcrawl{to{stroke-dashoffset:-220}}
#wv .ring-breathe{transform-box:fill-box;transform-origin:center;animation:ringbreathe 6.5s ease-in-out infinite}
@keyframes ringbreathe{0%,100%{opacity:.55;transform:scale(1)}50%{opacity:1;transform:scale(1.05)}}
#wv .pt-ring{background:transparent;border-radius:50%;border:1.6px solid rgba(var(--fc),.55)}
#wv .pt-ring svg{width:22px;height:22px}
@keyframes tw{from{opacity:var(--o1,.9)}to{opacity:var(--o2,.2)}}
#wv .browser{position:relative;padding:1.6px;border-radius:18px;
background:linear-gradient(135deg,#2FE0D0 0%,#3B82F6 46%,#A855F7 100%);
box-shadow:0 40px 110px -50px rgba(90,200,255,.5),0 0 70px -30px rgba(168,85,247,.4)}
#wv .br-in{position:relative;border-radius:16.4px;background:#060C0A;overflow:hidden}
#wv .b-tabs{display:flex;align-items:flex-end;gap:9px;padding:0 14px;height:50px;background:#0A100D}
#wv .tl{width:12px;height:12px;border-radius:50%;flex:none;margin-bottom:14px}
#wv .tl-r{background:#FF5F57}#wv .tl-y{background:#FEBC2E}#wv .tl-g{background:#28C840}
#wv .b-strip{display:flex;align-items:flex-end;gap:4px;flex:1;min-width:0;height:39px}
#wv .b-plus{width:19px;height:19px;color:#7C8F85;flex:none;margin-bottom:11px}
#wv .btab{flex:none;height:39px;display:flex;align-items:center;gap:4px;padding:0 5px;box-sizing:border-box;
border-radius:10px 10px 0 0;background:#141B17;overflow:hidden;white-space:nowrap;min-width:0}
#wv .bt-doc{width:15px;height:15px;flex:none;color:#93A79E}
#wv .bt-wv{display:none;width:16px;height:16px;flex:none;border-radius:5px;
background:linear-gradient(140deg,#3B82F6,#8B5CF6);text-align:center}
#wv .bt-wv svg{width:11px;height:11px;margin-top:3px}
#wv .bt-lbl{display:none;font-size:.84rem;color:#E6EFEA;overflow:hidden}
#wv .bt-x{width:10px;height:10px;flex:none;margin-left:auto;color:#7D8F86}
#wv .browser.go .bt-last{background:#1B2430;padding:0 10px;gap:7px}
#wv .b-sheen{position:absolute;inset:0;pointer-events:none;opacity:0;will-change:transform;background:linear-gradient(102deg,transparent 34%,rgba(150,255,210,.10) 45%,rgba(255,255,255,.20) 50%,rgba(150,255,210,.10) 55%,transparent 66%)}
#wv .browser.go .bt-last .bt-doc{display:none}
#wv .browser.go .bt-last .bt-wv,#wv .browser.go .bt-last .bt-lbl{display:block}
#wv .b-bar{display:flex;align-items:center;gap:12px;padding:9px 16px;background:#0D1411;border-bottom:1px solid #141C18}
#wv .b-nav{width:19px;height:19px;color:#8A9C93;flex:none}
#wv .b-nav svg{width:19px;height:19px;display:block}
#wv .b-url{flex:1;min-width:0;display:flex;align-items:center;gap:9px;background:#111A16;border-radius:999px;
padding:8px 16px;font-size:.9rem;color:#C8D6CE;font-family:var(--mono)}
#wv .b-url svg{width:14px;height:14px;color:var(--green);flex:none}
#wv .b-body{padding:46px 26px 52px;text-align:center;position:relative;
background:radial-gradient(120% 90% at 50% 105%,rgba(120,80,220,.16),transparent 62%),#070D0B}
#wv .b-logo{width:min(300px,42%);height:auto;display:block;margin:0 auto 22px;filter:drop-shadow(0 0 34px rgba(70,232,140,.3))}
#wv .b-head{font-size:1.6rem;font-weight:600;letter-spacing:-.015em;line-height:1.25}
#wv .ac2{color:#4EA1FF}
#wv .b-sub{font-size:1.04rem;color:var(--muted);margin-top:9px}
#wv .b-stats{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid #1B2620;border-radius:16px;margin:26px auto 0;max-width:680px;background:rgba(10,16,13,.6)}
#wv .bs{padding:20px 8px}
#wv .bs-t{display:flex;align-items:center;justify-content:center;gap:10px}
#wv .bs-t svg{width:26px;height:26px;flex:none}
#wv .bs b{font-size:1.55rem;font-weight:700;letter-spacing:-.02em}
#wv .bs b i{font-style:normal;font-size:.92rem;font-weight:600;color:var(--muted)}
#wv .bs small{display:block;font-size:.72rem;letter-spacing:.05em;color:var(--muted);margin-top:9px}
#wv .b-foot{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:20px;color:var(--muted);font-size:.92rem}
#wv .b-foot svg{width:19px;height:19px;color:var(--green);flex:none}
#wv .c-green{color:var(--green)}#wv .c-cyan{color:var(--cyan)}#wv .c-purple{color:var(--purple)}

#wv .browsers{display:flex;margin-top:28px;font-family:var(--mono);font-size:.68rem;letter-spacing:.14em;color:var(--muted)}
#wv .browsers span{padding:0 20px;border-left:1px solid var(--line)}
#wv .browsers span:first-child{padding-left:0;border-left:none}
#wv .flow{stroke-dasharray:3 8;animation:dashf 7s linear infinite}
#wv .dotline{stroke-dasharray:2 8;animation:dashslow 10s linear infinite}
#wv .const-node{animation:floaty 7s ease-in-out infinite;animation-delay:var(--fd,0s)}
#wv .pulse{stroke-dasharray:16 640;stroke-linecap:round;animation:pulseTravel 4.6s cubic-bezier(.45,0,.55,1) infinite;animation-delay:var(--pd,0s);opacity:.95}
#wv .stream{stroke-dasharray:7 24;animation:streamMove 3.4s linear infinite;animation-delay:var(--sd,0s)}
#wv .pt{animation:ptw var(--ptd,3s) ease-in-out infinite;animation-delay:var(--pdl,0s)}
@keyframes dashf{to{stroke-dashoffset:-220}}
@keyframes dashslow{to{stroke-dashoffset:-140}}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
@keyframes pulseTravel{to{stroke-dashoffset:-656}}
@keyframes streamMove{to{stroke-dashoffset:-310}}
@keyframes ptw{0%,100%{opacity:.12}50%{opacity:.95}}
#wv.wv-js .reveal{opacity:0;transform:translateY(28px);transition:opacity .9s cubic-bezier(.22,.61,.36,1),transform .9s cubic-bezier(.22,.61,.36,1);transition-delay:var(--rd,0s)}
#wv.wv-js .reveal.in{opacity:1;transform:none}
@media(max-width:1150px){#wv .mos-tilt{transform:rotateX(11deg) rotateY(-15deg) rotateZ(2deg) scale(1.02)}#wv #hero .wrap{max-width:1240px}#wv .hero-grid{grid-template-columns:1fr;gap:34px}#wv .hero-vis{max-width:920px;margin:0 auto;width:100%}}
@media(max-width:1080px){#wv .split,#wv .split-wide,#wv .split-wide.split-gfx{grid-template-columns:1fr;gap:36px}#wv .split>.copy{order:-1}#wv .split>.gfx{order:1;max-width:660px;margin:0 auto;width:100%}#wv .mos-stage{padding:6px 0}}
#wv .logo img{height:70px;width:auto;display:block}
#wv .ftr-logo img{height:84px;width:auto;display:block}
#wv .ftr{border-top:1px solid var(--line);background:linear-gradient(180deg,rgba(10,15,12,.55),var(--bg) 60%);padding:74px 0 40px;margin-top:20px;box-shadow:0 100vh 0 100vh var(--bg)}
#wv .ftr-top{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1.5fr);gap:64px}
#wv .ftr-brand p{color:var(--muted);font-size:.92rem;line-height:1.7;max-width:390px;margin:20px 0 22px}
#wv .ftr-trust{display:flex;flex-wrap:wrap;gap:12px 26px}
#wv .ftr-trust span{font-family:var(--mono);font-size:.68rem;font-weight:500;letter-spacing:.13em;color:var(--muted)}
#wv .ftr-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
#wv .ftr-h{font-family:var(--mono);font-size:.66rem;font-weight:700;letter-spacing:.24em;color:var(--green);margin-bottom:18px}
#wv .ftr-col a{display:block;color:var(--muted);font-size:.9rem;padding:7px 0;transition:color .2s}
#wv .ftr-col a:hover{color:#fff}
#wv .ftr-bar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;margin-top:56px;padding-top:26px;border-top:1px solid var(--line)}
#wv .ftr-bar span{font-size:.82rem;color:var(--muted)}
#wv .ftr-browsers{display:flex;gap:24px}
#wv .ftr-browsers span{font-family:var(--mono);font-size:.66rem;font-weight:600;letter-spacing:.2em;color:var(--muted)}
@media(max-width:880px){#wv .ftr-top{grid-template-columns:1fr;gap:36px}#wv .ftr-cols{grid-template-columns:1fr 1fr;gap:24px}#wv .ftr{padding:48px 0 24px;margin-top:0}#wv .ftr-bar{margin-top:34px;padding-top:22px}#wv .ftr-brand p{margin:16px 0 18px}}
@media(max-width:520px){#wv .ftr-cols{grid-template-columns:1fr}#wv .ftr-bar{flex-direction:column;align-items:flex-start}}
#wv .nav-in{max-width:1460px}
#wv .ftr .wrap{max-width:1460px}
#wv .nav-in{height:104px}
@media(max-width:880px){#wv .logo img{height:46px}#wv .ftr-logo img{height:56px}#wv .nav-in{height:80px}#wv #hero{padding-top:150px}}
#wv #hero{padding:176px 0 0}
@media(max-width:880px){#wv .mos-tilt{transform:rotateX(9deg) rotateY(-10deg) scale(1)}#wv .mos-stage{padding:12px 0}#wv .nav-links{display:none}#wv section{padding:58px 0}#wv #hero{padding-top:116px}#wv .chips{grid-template-columns:1fr;margin-top:32px;border-radius:18px;max-width:520px}#wv .chip{justify-content:flex-start;gap:16px;padding:17px 22px;border-left:none;border-top:1px solid var(--line)}#wv .chip:first-child{border-top:none}#wv .trust-in span{padding:13px 18px;font-size:.6rem}}
@media(max-width:620px){#wv .wrap{padding:0 20px}#wv .btn{padding:14px 20px;font-size:.88rem}#wv .b-body{padding:38px 16px 42px}#wv section{padding:48px 0}#wv .split,#wv .split-wide,#wv .split-wide.split-gfx{gap:28px}#wv .hero-grid{gap:26px}#wv #hero .wrap:last-child{padding-bottom:46px}#wv .chips{margin-top:26px}#wv .chip{padding:15px 18px}}
@media(prefers-reduced-motion:reduce){#wv *, #wv *::before, #wv *::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important}#wv .reveal{opacity:1;transform:none}#wv .fdI,#wv .fdO{opacity:.45 !important;transform:translate(calc(var(--tx) * var(--fd)),calc(var(--ty) * var(--fd))) !important}#wv .cbit{opacity:.75 !important}#wv .pxl{opacity:var(--l) !important;transform:translate(calc(var(--g)*1px),calc(var(--h)*1px)) !important}}
@media(max-width:880px){
#wv #hero .wrap:last-child{padding-bottom:52px}
#wv .eyebrow{margin-bottom:16px}
#wv h1{margin-bottom:18px}
#wv h2{margin-bottom:18px}
#wv .lead{margin-bottom:24px}
#wv .hero-copy .lead{margin-bottom:12px}
#wv .keys{margin-bottom:24px}
#wv .trust{margin-top:24px;gap:12px 20px}
#wv .points{gap:18px}
#wv .callout{margin-top:26px;padding:16px 18px}
#wv .quoteline{margin-top:26px}
#wv .browsers{margin-top:22px}
#wv .sub-h{margin:-4px 0 14px}
#wv .mos-stage{padding:0}
#wv .cons-svg{margin-block:2%;transform:translateX(1.5%) scale(1.15)}
#wv .tree-svg{margin-block:5%;transform:translateX(-3%) scale(1.18)}
#wv .pcol{transform-box:view-box}
#wv .pcol-l{transform-origin:0 472px;transform:scale(1.35)}
#wv .pcol-r{transform-origin:1200px 472px;transform:scale(1.35)}
#wv .mos-svg{margin-block:-4%}
#wv .hero-svg-m{margin-block:-3% -5%}
#wv .b-stats{margin-top:20px}
#wv .b-logo{margin-bottom:18px}
}

/* ================= additions for the standalone site ================= */
/* vector logo lockups (replaces the three logo rasters).
   Sized to the raster lockup they stand in for: the mark was 599/739 of its height. */
#wv .logo{gap:13px}
#wv .logo svg.wv-mark{width:auto;height:56px;flex:none}
#wv .ftr-logo svg.wv-mark{width:auto;height:68px;flex:none}
#wv .wv-word{font-weight:800;letter-spacing:-.035em;color:#fff;line-height:1;white-space:nowrap;font-size:1.78rem}
#wv .wv-word i{font-style:normal;background:linear-gradient(120deg,#41E987,#17CFA4);
  -webkit-background-clip:text;background-clip:text;color:transparent}
#wv .ftr-logo{display:flex;align-items:center;gap:15px}
#wv .ftr-logo .wv-word{font-size:2.15rem}
#wv .b-logo{width:min(300px,42%);margin:0 auto 22px;display:flex;flex-direction:column;
  align-items:center;gap:16px;filter:drop-shadow(0 0 34px rgba(70,232,140,.3))}
#wv .b-logo svg{width:64%;height:auto}
#wv .b-logo .wv-word{font-size:clamp(1.9rem,4.6vw,2.8rem)}
@media(max-width:880px){
  #wv .logo svg.wv-mark{height:38px}
  #wv .ftr-logo svg.wv-mark{height:46px}
  #wv .wv-word{font-size:1.24rem}
  #wv .ftr-logo .wv-word{font-size:1.5rem}
}

/* Company and Legal are removed until those pages exist. The authored rule is a
   3-column grid, which strands the surviving column mid-row; flex-end balances it
   against the brand block instead. Restoring the columns needs no change here. */
#wv .ftr-cols{display:flex;justify-content:flex-end;gap:72px}
@media(max-width:880px){#wv .ftr-cols{justify-content:flex-start;gap:32px}}

/* legal pages (/privacy/ etc.) — generated from docs/legal/*.md */
#wv .legal{padding:calc(104px + 72px) 0 96px}
#wv .legal .wrap{max-width:760px}
#wv .legal h1{font-size:clamp(2rem,4vw,2.9rem);margin-bottom:14px}
#wv .legal h2{font-size:1.32rem;line-height:1.3;letter-spacing:-.01em;margin:52px 0 14px;
  padding-top:26px;border-top:1px solid var(--line)}
#wv .legal h3{font-size:1.05rem;margin:30px 0 10px}
#wv .legal p{color:var(--text-dim);margin-bottom:16px;font-size:1.02rem}
#wv .legal p.meta{font-family:var(--mono);font-size:.82rem;line-height:2;color:var(--muted);
  border:1px solid var(--line);border-radius:12px;padding:18px 22px;margin-bottom:30px}
#wv .legal p.meta strong{color:var(--green);font-weight:700}
#wv .legal ul{margin:0 0 20px 0;padding-left:22px}
#wv .legal li{color:var(--text-dim);margin-bottom:10px;font-size:1.02rem}
#wv .legal li::marker{color:var(--green)}
#wv .legal strong{color:var(--text);font-weight:700}
#wv .legal code{font-family:var(--mono);font-size:.86em;color:var(--green);
  background:rgba(70,232,140,.08);border:1px solid var(--line2);border-radius:5px;padding:1px 6px}
#wv .legal a{color:var(--green);text-decoration:underline;text-underline-offset:3px}
#wv .legal blockquote{border-left:2px solid var(--green);padding:14px 0 14px 20px;margin:0 0 26px;
  color:var(--muted);font-size:.95rem;background:linear-gradient(90deg,rgba(70,232,140,.05),transparent)}
#wv .legal .tbl{overflow-x:auto;margin:0 0 26px;border:1px solid var(--line);border-radius:12px}
#wv .legal table{border-collapse:collapse;width:100%;font-size:.94rem;min-width:520px}
#wv .legal th{text-align:left;font-family:var(--mono);font-size:.68rem;font-weight:700;
  letter-spacing:.16em;text-transform:uppercase;color:var(--green);
  padding:14px 18px;border-bottom:1px solid var(--line)}
#wv .legal td{padding:14px 18px;color:var(--text-dim);border-bottom:1px solid var(--line)}
#wv .legal tr:last-child td{border-bottom:none}
@media(max-width:880px){#wv .legal{padding:calc(80px + 48px) 0 64px}}

/* keyboard focus — the funnel build had none */
#wv :is(a,button):focus-visible{outline:2px solid var(--green);outline-offset:3px;border-radius:6px}

/* motion is decorative here; let the OS opt out */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  #wv *,#wv *::before,#wv *::after{animation-duration:.001ms!important;animation-iteration-count:1!important;
    transition-duration:.001ms!important}
}
