
*{box-sizing:border-box;margin:0}html{scroll-behavior:smooth}
body{background:var(--color-navy);color:var(--color-snow);font-family:var(--font-body);font-size:var(--text-base);line-height:1.55;
background-image:radial-gradient(60% 40% at 50% 0%,rgba(173,216,230,.12),transparent 70%),radial-gradient(40% 30% at 85% 60%,rgba(0,0,90,.9),transparent)}
a{color:inherit;text-decoration:none}
.wrap{max-width:1200px;margin:0 auto;padding:0 24px}
h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.03em;line-height:1.05;font-weight:500}
.eyebrow,.idx{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--color-ice)}
/* NAV: floating glass pill */
.nav{position:fixed;top:16px;left:50%;transform:translateX(-50%);z-index:10;width:min(1080px,calc(100% - 24px));display:flex;align-items:center;justify-content:space-between;padding:10px 10px 10px 22px;border-radius:999px;border:1px solid transparent;transition:background .35s,border-color .35s,box-shadow .35s}
.nav.scrolled,.nav:hover{background:rgba(0,0,90,.55);backdrop-filter:blur(16px) saturate(140%);-webkit-backdrop-filter:blur(16px);border-color:rgba(173,216,230,.18);box-shadow:0 10px 40px rgba(0,0,40,.35)}
.nav img{height:22px;display:block}
.nav ul{display:flex;gap:6px;list-style:none;padding:0}
.nav ul a{display:block;padding:8px 14px;border-radius:999px;font-size:var(--text-sm);color:rgba(255,250,250,.78);transition:background .2s,color .2s}
.nav ul a:hover{background:rgba(173,216,230,.12);color:var(--color-snow)}
.btn{display:inline-block;padding:11px 20px;border-radius:999px;background:var(--color-snow);color:var(--color-navy);font-weight:600;font-size:var(--text-sm);transition:transform .2s,background .2s}
.btn:hover{background:var(--color-ice);transform:translateY(-1px)}
.ghost{background:transparent;color:var(--color-snow);border:1px solid rgba(173,216,230,.35)}.ghost:hover{background:rgba(173,216,230,.12)}
.burger{display:none;width:40px;height:40px;border-radius:50%;border:1px solid rgba(173,216,230,.3);background:none;position:relative}
.burger:before,.burger:after{content:"";position:absolute;left:12px;right:12px;height:1.5px;background:var(--color-snow);top:16px}.burger:after{top:23px}
/* HERO */
.hero{min-height:100vh;display:grid;place-items:center;text-align:center;padding:140px 0 80px}
.hero h1{font-size:var(--text-5xl);max-width:14ch;margin:18px auto 22px}
.hero h1 em{font-style:normal;color:var(--color-ice)}
.hero p{max-width:620px;margin:0 auto 32px;color:rgba(255,250,250,.78);font-size:var(--text-lg)}
.ctas{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.badge{display:inline-flex;gap:8px;align-items:center;padding:6px 14px;border:1px solid rgba(173,216,230,.25);border-radius:999px}
.badge i{width:6px;height:6px;border-radius:50%;background:var(--color-ice);box-shadow:0 0 10px var(--color-ice)}
.heroart{margin:64px auto 0;max-width:720px;border-radius:24px;border:1px solid rgba(173,216,230,.15);background:rgba(0,0,90,.5);padding:24px}

.hero{min-height:auto;padding:150px 0 24px}.hero .wrap{max-width:1360px}.hero p{font-size:var(--text-base)}.hero h1{max-width:13ch}
.sysw{position:relative;margin:24px auto 0;max-width:1320px;padding:0 8px}
.sysw:before{content:"";position:absolute;inset:-10% 10%;background:radial-gradient(closest-side,rgba(173,216,230,.10),transparent);z-index:-1}
.steps{display:flex;justify-content:center;gap:28px;margin-top:20px;font:500 11px var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--color-slate)}
.steps span:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;border:1px solid currentColor;margin-right:8px;vertical-align:1px}
section{padding:120px 0}.outl{display:none;list-style:none;padding:0;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px;text-align:left}.outl li{font-size:13px;padding:10px 12px;border:1px solid rgba(173,216,230,.2);border-radius:12px;color:var(--color-ice)}
.head{max-width:680px;margin-bottom:56px}.head h2{font-size:var(--text-4xl);margin:14px 0 16px}.head p{color:rgba(255,250,250,.74);font-size:var(--text-lg)}
.mission{padding:40px 0 100px}.mission p{font-family:var(--font-display);font-size:var(--text-2xl);line-height:1.3;letter-spacing:-.02em;max-width:30ch;color:var(--color-snow)}
.mission p em{font-style:normal;color:var(--color-ice)}
.mrow{display:grid;grid-template-columns:200px 1fr;gap:40px;border-top:1px solid rgba(109,129,150,.3);padding-top:32px}
.hsg{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.hs{padding:20px;border-radius:20px;background:linear-gradient(180deg,rgba(0,0,90,.7),rgba(0,0,90,0));border:1px solid rgba(173,216,230,.10)}
.hs .idx{display:block;margin:18px 0 8px}.hs p{color:rgba(255,250,250,.74);font-size:var(--text-sm)}
.branch{display:flex;gap:12px;margin-top:20px;flex-wrap:wrap}.branch span{font:500 11px var(--font-mono);letter-spacing:.08em;padding:6px 12px;border-radius:999px;border:1px solid rgba(173,216,230,.25);color:var(--color-ice)}
.innov{margin-top:56px;padding:32px 0;border-top:1px solid rgba(109,129,150,.3);display:grid;grid-template-columns:200px 1fr;gap:40px}.innov p{font-size:var(--text-xl);font-family:var(--font-display);letter-spacing:-.01em;max-width:40ch}
.fg{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid rgba(109,129,150,.3);border-left:1px solid rgba(109,129,150,.3)}
.f{padding:32px 28px;border-right:1px solid rgba(109,129,150,.3);border-bottom:1px solid rgba(109,129,150,.3);transition:background .25s}.f:hover{background:rgba(173,216,230,.05)}
.fn{font:500 11px var(--font-mono);color:var(--color-ice)}.f h4{font-size:var(--text-xl);margin:20px 0 8px}.f p{color:rgba(255,250,250,.7);font-size:var(--text-sm)}
.why{display:grid;grid-template-columns:200px 1fr;gap:40px;margin-top:56px;align-items:baseline}.why ul{list-style:none;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.why li{color:rgba(255,250,250,.7);font-size:var(--text-sm);padding-left:18px;position:relative}.why li b{color:var(--color-snow);font-weight:500}.why li:before{content:"";position:absolute;left:0;top:.55em;width:6px;height:6px;border-radius:50%;background:var(--color-alert)}
.tg{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:clamp(12px,2vw,24px)}.tm{padding:clamp(20px,3vw,32px) 12px;border-radius:24px;border:1px solid rgba(173,216,230,.12);background:linear-gradient(180deg,rgba(0,0,90,.6),transparent);display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px}.tm b{font-family:var(--font-display);font-weight:500;font-size:var(--text-lg)}.tm span{color:var(--color-slate);font-size:var(--text-sm)}.pic{width:128px;height:128px;border-radius:50%;overflow:hidden;margin-bottom:20px;box-shadow:0 0 0 1px rgba(173,216,230,.35),0 0 0 6px rgba(173,216,230,.06)}.pic img{width:100%;height:100%;object-fit:cover;transform:scale(1.12);transform-origin:50% 30%;filter:saturate(.85)}.tm .role{color:var(--color-ice);font-size:var(--text-sm);margin-bottom:6px}.tm span{line-height:1.45}.av{width:96px;height:96px;margin-bottom:16px}.av *{fill:none;stroke:var(--color-ice);stroke-width:1.2}.av circle:first-child{fill:rgba(173,216,230,.06);stroke:rgba(173,216,230,.3)}.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.tm{display:flex;flex-direction:column;gap:4px}
.tm .ph{aspect-ratio:4/5;border-radius:20px;border:1px dashed rgba(173,216,230,.3);display:grid;place-items:center;margin-bottom:14px;background:radial-gradient(circle at 50% 40%,rgba(173,216,230,.10),rgba(0,0,90,.4) 60%)}
.tm .ph span,.pnote{font:500 10px var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--color-slate)}.tm span{color:var(--color-slate);font-size:var(--text-sm)}
.pnote{color:var(--color-alert);display:block;margin-top:8px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.ac{display:block;border-radius:20px;transition:transform .25s}.ac:hover{transform:translateY(-4px)}.ac:hover h4{color:var(--color-ice)}
.thumb{position:relative;aspect-ratio:16/10;border-radius:16px;border:1px solid rgba(173,216,230,.14);background:linear-gradient(135deg,var(--color-navy-deep),rgba(173,216,230,.14));margin-bottom:16px}
.ex{position:absolute;top:12px;left:12px;font:500 10px var(--font-mono);letter-spacing:.08em;text-transform:uppercase;padding:4px 10px;border-radius:999px;border:1px solid var(--color-alert);color:var(--color-alert)}
.ac small{color:var(--color-slate)}.ac h4{font-size:var(--text-xl);margin:6px 0 12px;transition:color .2s}.more{color:var(--color-ice);font-size:var(--text-sm)}
.contact{text-align:center;border-radius:32px;border:1px solid rgba(173,216,230,.16);padding:96px 24px;background:radial-gradient(80% 100% at 50% 0%,rgba(173,216,230,.13),transparent)}.contact h2{font-size:var(--text-4xl);margin-bottom:16px}.contact p{color:rgba(255,250,250,.75);margin-bottom:28px}
footer{padding:40px 0;border-top:1px solid rgba(109,129,150,.25);font-size:var(--text-sm);color:var(--color-slate)}footer .wrap{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:center}footer img{height:18px}footer nav{display:flex;gap:20px;flex-wrap:wrap}
@media(max-width:980px){.tg{grid-template-columns:1fr 1fr}.fg{grid-template-columns:1fr 1fr}.hsg{grid-template-columns:1fr 1fr}}
@media(max-width:820px){.nav ul,.nav>.btn{display:none}.burger{display:block}section{padding:80px 0}.hero{padding-top:120px}
.mrow,.innov{grid-template-columns:1fr;gap:16px}.fg,.why ul,.grid3{grid-template-columns:1fr}.tg{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:clamp(12px,2vw,24px)}.tm{padding:clamp(20px,3vw,32px) 12px;border-radius:24px;border:1px solid rgba(173,216,230,.12);background:linear-gradient(180deg,rgba(0,0,90,.6),transparent);display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px}.tm b{font-family:var(--font-display);font-weight:500;font-size:var(--text-lg)}.tm span{color:var(--color-slate);font-size:var(--text-sm)}.pic{width:128px;height:128px;border-radius:50%;overflow:hidden;margin-bottom:20px;box-shadow:0 0 0 1px rgba(173,216,230,.35),0 0 0 6px rgba(173,216,230,.06)}.pic img{width:100%;height:100%;object-fit:cover;transform:scale(1.12);transform-origin:50% 30%;filter:saturate(.85)}.tm .role{color:var(--color-ice);font-size:var(--text-sm);margin-bottom:6px}.tm span{line-height:1.45}.av{width:96px;height:96px;margin-bottom:16px}.av *{fill:none;stroke:var(--color-ice);stroke-width:1.2}.av circle:first-child{fill:rgba(173,216,230,.06);stroke:rgba(173,216,230,.3)}.grid4{grid-template-columns:1fr 1fr}.steps{gap:12px;flex-wrap:wrap}.sysw{margin:16px -4% 0;padding:0}.fg{grid-template-columns:1fr}.why{grid-template-columns:1fr;gap:16px}.why ul{grid-template-columns:1fr;gap:12px}.sys .out .lbl{display:none}.outl{display:grid!important}.badge{font-size:10px}}
@media(max-width:560px){.hsg{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.sys *,.hw *{transition:none!important}}

.sys{width:100%;height:auto;display:block;overflow:visible}
.sys *{fill:none;stroke:var(--color-ice);stroke-width:1.3;transition:opacity .8s ease,transform .8s cubic-bezier(.215,.61,.355,1)}
.sys .lbl{fill:var(--color-snow);stroke:none;font:500 14px var(--font-body);text-anchor:middle;letter-spacing:.01em}.sys .dim{fill:var(--color-slate)}
.sys .body,.sys .sat rect{stroke:var(--color-snow)}
.sys .edge{stroke:rgba(173,216,230,.28);stroke-width:.8}.sys .node{fill:var(--color-navy);stroke:var(--color-ice)}
.sys .beam{fill:url(#none);fill:rgba(173,216,230,.08);stroke:none}.sys .dash,.sys .out .ln{stroke-dasharray:3 5;stroke:rgba(173,216,230,.55)}
.sys .halo{fill:rgba(173,216,230,.08);stroke:rgba(173,216,230,.35)}.sys .ico *{stroke:var(--color-snow);stroke-width:1.5}
.sys .s1,.sys .s2,.sys .s3,.sys .s4,.sys .out{opacity:0}
.sys .s2{transform:translateY(-8px)}.sys .s4 .out{transform:translateY(8px)}
[data-s="1"] .sys .s1,[data-s="2"] .sys .s1,[data-s="3"] .sys .s1,[data-s="4"] .sys .s1,
[data-s="2"] .sys .s2,[data-s="3"] .sys .s2,[data-s="4"] .sys .s2,
[data-s="3"] .sys .s3,[data-s="4"] .sys .s3,[data-s="4"] .sys .s4,[data-s="4"] .sys .out{opacity:1;transform:none}
.sys .scan{opacity:0}[data-s="2"] .sys .scan{opacity:1}
[data-s="3"] .sys .node,[data-s="4"] .sys .node{fill:rgba(173,216,230,.5)}
[data-s="4"] .sys .halo{fill:rgba(173,216,230,.16);stroke:var(--color-ice)}

.hw{width:100%;height:auto;display:block}.hw *{fill:none;stroke:var(--color-ice);stroke-width:1.3;transition:opacity .7s ease,transform .8s cubic-bezier(.215,.61,.355,1)}
.hw .w{stroke:var(--color-snow)}.hw .t{fill:var(--color-slate);stroke:none;font:500 11px var(--font-mono);text-anchor:middle;letter-spacing:.06em}.hw .tl{text-anchor:start}
.hw .fov{fill:rgba(173,216,230,.07);stroke:none}.hw .ring{stroke:rgba(109,129,150,.35);stroke-dasharray:2 6}
.hw .bb{stroke-dasharray:5 4}.hw .exp *{stroke:rgba(173,216,230,.45);stroke-dasharray:4 4}.hw .est *{stroke:var(--color-snow)}
.hw .bad{fill:var(--color-alert)!important;stroke:var(--color-alert)!important}.hw .flag *{stroke:var(--color-alert)}.hw .flag text{fill:var(--color-alert);stroke:none;font:700 12px var(--font-mono);text-anchor:middle}
.hw .sg{stroke:var(--color-ice)}.hw .ln2{stroke-dasharray:3 5}
.hw .fov,.hw .bb,.hw .axes,.hw .est,.hw .flag,.hw .ln2,.hw .db{opacity:0}
[data-s="1"] .hw .fov,[data-s="2"] .hw .fov,[data-s="1"] .hw .bb,[data-s="2"] .hw .bb,[data-s="2"] .hw .axes,
[data-s="1"] .hw .est,[data-s="2"] .hw .est,[data-s="2"] .hw .flag,[data-s="1"] .hw .a,[data-s="1"] .hw .b,[data-s="2"] .hw .ln2,[data-s="2"] .hw .db{opacity:1}
.hw .exp{opacity:.9}

.stage{position:relative;height:100vh;overflow:hidden}
#stg{position:absolute;inset:0;width:100%;height:100%}
#stg *{vector-effect:non-scaling-stroke}
.part *{fill:none;stroke-width:1.4;stroke-linejoin:round}.part .pf{fill:rgba(0,0,90,.85)}.part .top{fill:rgba(173,216,230,.10)}.part .side{fill:rgba(0,0,60,.9)}.part .thin{stroke-width:.8;opacity:.6}.part .dot{fill:currentColor;stroke:none}
.strut{stroke-dasharray:3 3}
.ghost *{fill:none;stroke:#ADD8E6;stroke-width:1;stroke-dasharray:5 5;opacity:.7}.ghost{opacity:0}
.bk path{fill:none;stroke:#FFFAFA;stroke-width:1.6}.bk{opacity:0}.lab{fill:#ADD8E6;font:600 11px var(--font-mono);letter-spacing:.14em}.tk{fill:#ADD8E6;opacity:.15}.bk .lead{stroke:rgba(173,216,230,.45);stroke-width:1;fill:none}.conf{fill:#6D8196;font:500 9px var(--font-mono);letter-spacing:.1em}
.thin{fill:none;stroke:#ADD8E6;stroke-width:.8;opacity:.5}
.hudt{fill:#6D8196;font:500 11px var(--font-mono);letter-spacing:.16em}.blink{fill:#ADD8E6}
#plane{opacity:0}
.trbg{stroke:rgba(109,129,150,.4);stroke-width:1}.trp{stroke:#ADD8E6;stroke-width:2}#track{opacity:0}
.nd{fill:#000080;stroke:#6D8196;stroke-width:1.2}.ck{fill:none;stroke:#000080;stroke-width:2;stroke-linecap:round;stroke-dasharray:14;stroke-dashoffset:14}
.sn{fill:#6D8196;font:500 10px var(--font-mono);letter-spacing:.14em}.sl{fill:#FFFAFA;font:500 12px var(--font-mono);letter-spacing:.1em}
#flag{opacity:0}#flag rect{fill:rgba(255,107,61,.12);stroke:#FF6B3D}#flag text{fill:#FF6B3D;font:600 10px var(--font-mono);letter-spacing:.1em;text-anchor:middle}
#doc{opacity:0}.dc{fill:rgba(0,0,70,.9);stroke:rgba(173,216,230,.5)}.dh{fill:#FFFAFA;font:600 12px var(--font-mono);letter-spacing:.18em}
.th{fill:rgba(173,216,230,.08);stroke:rgba(173,216,230,.4)}.bar{fill:rgba(255,250,250,.85)}.bar2{fill:rgba(109,129,150,.7)}.rc{fill:#ADD8E6}.rck{fill:none;stroke:#000080;stroke-width:1.8}
.row{opacity:0}.sig{fill:none;stroke:#FFFAFA;stroke-width:1.4;stroke-dasharray:200;stroke-dashoffset:200}
#stamp{opacity:0}#stamp rect{fill:rgba(173,216,230,.1);stroke:#ADD8E6;stroke-width:2}#stamp text{fill:#ADD8E6;font:700 13px var(--font-mono);letter-spacing:.2em;text-anchor:middle}
#tools{opacity:0}.tr{fill:rgba(0,0,90,.9);stroke:rgba(173,216,230,.45);stroke-width:1.2}.ti *{fill:none;stroke:#FFFAFA;stroke-width:1.2;stroke-linejoin:round;stroke-linecap:round;opacity:.85}.tlb{fill:#6D8196;font:500 10px var(--font-mono);letter-spacing:.16em}.ts{fill:none;stroke:rgba(173,216,230,.5);stroke-width:1.2;stroke-dasharray:5 5}.ln{stroke:rgba(109,129,150,.45);stroke-width:1}.lk{stroke:#ADD8E6;stroke-width:2;stroke-dasharray:24;stroke-dashoffset:24}#snapr{fill:none;stroke:#ADD8E6;stroke-width:1.5;opacity:0}#bglyph{opacity:0}.bck{fill:none;stroke:#ADD8E6;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}#bglyph .tlb{fill:#FFFAFA}
.pt{opacity:0}
.cap{position:absolute;left:max(40px,calc(50% - 600px));bottom:9vh;max-width:380px;opacity:0;transform:translateY(20px)}
.cap .idx{display:block;margin-bottom:12px}.cap h2{font-size:var(--text-4xl);margin-bottom:12px}.cap p{color:rgba(255,250,250,.75)}
.htxt{position:absolute;left:0;right:0;top:13vh;text-align:center;padding:0 24px}
.htxt h1{font-size:var(--text-5xl);margin:12px auto 0;max-width:14ch}.htxt h1 em{font-style:normal;color:var(--color-ice)}
.htxt p{max-width:520px;margin:18px auto 0;color:rgba(255,250,250,.75)}
.cue{position:absolute;left:50%;bottom:4vh;transform:translateX(-50%);font:500 10px var(--font-mono);letter-spacing:.2em;color:var(--color-slate)}
@media(max-width:820px){#stg{top:28vh;height:68vh}.htxt{top:11vh}.sl,.sn{font-size:15px}.lab{font-size:15px}.cap{left:24px;right:24px;bottom:auto;top:13vh;max-width:none}.cap h2{font-size:2.5rem}.cap p{font-size:15px}.hudt{display:none}.tlb{font-size:13px}}

:root{--u:40vh}
.vis{position:fixed;inset:0;z-index:1;pointer-events:none}.vis #stg{position:absolute;inset:0;width:100%;height:100%}
#flow{position:relative;z-index:2;height:calc(var(--T,13.8)*var(--u) + 100vh)}
.hero2{height:100vh;text-align:center;padding:13vh 24px 0}.hero2 h1{font-size:var(--text-5xl);margin:12px auto 0;max-width:14ch}.hero2 h1 em{font-style:normal;color:var(--color-ice)}.hero2 p{max-width:520px;margin:18px auto 0;color:rgba(255,250,250,.75)}
.blk{position:absolute;left:0;right:0;top:calc((var(--t) - 1.1)*var(--u));height:calc(2.2*var(--u) + 100vh)}.blk .bt{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;justify-content:center}
.blk .bt{width:min(1200px,100% - 48px);margin:0 auto}.blk .bt>*{max-width:400px}.blk.r .bt>*{margin-left:auto}
.blk h2{font-size:var(--text-5xl);margin:10px 0 14px}.blk p{color:rgba(255,250,250,.78);font-size:var(--text-lg)}
.mission,#features,#team,#contact,footer{position:relative;z-index:2}
@media(max-width:820px){:root{--u:34vh}.vis{height:62vh;bottom:auto;background:linear-gradient(180deg,#000080 82%,rgba(0,0,128,0))}.vis #stg{top:7vh;height:52vh}#flow{z-index:0}
.hero2{display:flex;flex-direction:column;justify-content:flex-end;padding:0 24px 12vh}.hero2 h1{font-size:2.9rem}.blk .bt{justify-content:flex-end;padding-bottom:7vh}.blk.r .bt>*{margin-left:0}.blk h2{font-size:3rem}}
#hud{opacity:0}
/* v12: full-screen sections + snap stepper */
html{scroll-behavior:auto!important;scrollbar-width:none;overscroll-behavior:none}html::-webkit-scrollbar{display:none}
body.snap{touch-action:none}
:root{--bar:0px}
.mission,#features,#roadmap,#team,#articles,#contact{min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding:110px 0 calc(64px + var(--bar))}
.mission>.wrap,#features>.wrap,#roadmap>.wrap,#team>.wrap,#articles>.wrap,#contact>.wrap{width:100%}
#contact{min-height:calc(100vh - 100px)}
.mbar{display:none}
#cut{position:fixed;inset:0;z-index:9;background:var(--color-navy);opacity:0;visibility:hidden;pointer-events:none}
@media(max-width:820px){
:root{--bar:84px}
.mbar{display:flex;position:fixed;z-index:11;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));align-items:center;justify-content:space-between;gap:12px;padding:8px 8px 8px 20px;border-radius:999px;background:rgba(0,0,90,.62);backdrop-filter:blur(16px) saturate(140%);-webkit-backdrop-filter:blur(16px) saturate(140%);border:1px solid rgba(173,216,230,.18);box-shadow:0 10px 40px rgba(0,0,40,.45)}
.mbar span{font:500 11px var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--color-ice);white-space:nowrap}
.mbar .btn{padding:11px 22px}
.vis{height:57vh}.vis #stg{top:6vh;height:48vh}
.hero2{padding-bottom:calc(4vh + var(--bar))}.hero2 h1{font-size:2.55rem}
.blk .bt{padding-bottom:calc(4vh + var(--bar))}
.mission,#features,#roadmap,#team,#articles,#contact{padding:92px 0 calc(32px + var(--bar))}
#contact{min-height:calc(100vh - 150px)}
footer{padding-bottom:calc(32px + var(--bar))}
.tg{grid-template-columns:1fr 1fr!important;gap:10px!important}
.tm{padding:16px 8px 14px!important;border-radius:18px!important}
.pic{width:76px!important;height:76px!important;margin-bottom:12px!important}
.tm b{font-size:15px!important;line-height:1.2}
.tm .role{font-size:12px!important;line-height:1.3;margin-bottom:4px!important}
.tm span{font-size:11.5px!important;line-height:1.4!important}
#team{padding-top:84px}#team .head{margin-bottom:20px}#team .head h2{font-size:2.3rem}
}

/* v21 team: group photo is the hero of the section */
.tgrid{display:grid;grid-template-columns:minmax(300px,380px) 1fr;gap:56px;align-items:center}
#team .head{margin-bottom:24px}#team .head h2{font-size:2.6rem}
.tnames{list-style:none;padding:0;margin:0;display:grid;gap:14px}
.tnames li{display:grid;grid-template-columns:34px 1fr;column-gap:10px;padding-top:12px;border-top:1px solid rgba(109,129,150,.3)}
.tnames .idx{grid-row:1/4;padding-top:3px}.tnames b{font-family:var(--font-display);font-weight:500;font-size:var(--text-lg);line-height:1.2}
.tnames .role{color:var(--color-ice);font-size:var(--text-sm)}.tnames .aff{color:var(--color-slate);font-size:12.5px;line-height:1.4}
.tphoto{margin:0;position:relative}
.tphoto .ph{position:relative;border-radius:22px;overflow:hidden;border:1px solid rgba(173,216,230,.14);aspect-ratio:1600/1067;background:var(--color-navy-deep)}
.tphoto img{display:block;width:100%;height:100%;object-fit:cover;filter:saturate(.94) contrast(1.02)}
.tphoto .ph:after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(120% 95% at 50% 38%,transparent 58%,rgba(0,0,90,.55) 100%),linear-gradient(180deg,rgba(0,0,90,.18),transparent 22%,transparent 72%,rgba(0,0,90,.5))}
.tmarks{position:relative;height:30px}
.tmarks i{position:absolute;left:var(--x);top:0;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;font-style:normal}
.tmarks i:before{content:"";width:1px;height:10px;background:rgba(173,216,230,.6)}
.tmarks b{font:500 10px var(--font-mono);letter-spacing:.16em;color:var(--color-ice);padding-top:4px}
/* v21 articles: intentional empty state */
.agrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.ac img{width:100%;height:100%;object-fit:cover;border-radius:16px}
.ac.sk{pointer-events:none}.ac.sk .thumb{background:linear-gradient(135deg,rgba(0,0,90,.55),rgba(173,216,230,.07));border:1px dashed rgba(173,216,230,.22)}
.ac.sk i{display:block;height:8px;border-radius:4px;background:rgba(173,216,230,.10);margin-top:10px}.ac.sk .b1{width:28%;height:6px;background:rgba(109,129,150,.28)}.ac.sk .b2{width:86%;height:12px}.ac.sk .b3{width:58%;height:12px}
#articles .head{margin-bottom:40px}#articles .head h2{font-size:var(--text-4xl)}
@media(max-width:820px){
.tgrid{display:flex;flex-direction:column;gap:0;align-items:stretch}.tside{display:contents}
#team .head{order:1;margin-bottom:16px}#team .head h2{font-size:2.2rem}.tphoto{order:2}.tnames{order:3}
.tphoto .ph{aspect-ratio:800/640;border-radius:18px}.tmarks i{left:var(--mx)}.tmarks{height:26px}
.tnames{grid-template-columns:1fr 1fr;gap:10px 14px;margin-top:4px}.tnames li{grid-template-columns:1fr;padding-top:8px}.tnames .idx{grid-row:auto;padding:0 0 2px}
.tnames b{font-size:15px}.tnames .role{font-size:12px;line-height:1.3}.tnames .aff{display:none}
.agrid{grid-template-columns:1fr;gap:12px}.agrid .ac.sk{display:grid;grid-template-columns:110px 1fr;column-gap:14px;align-items:center}.agrid .ac.sk .thumb{grid-row:1/4;margin:0;aspect-ratio:4/3}.agrid .ac.sk i{margin:4px 0}
#articles .head{margin-bottom:24px}#articles .head h2{font-size:2.4rem}
}

/* v16: dots, arrow, mobile menu */
.dots{position:fixed;z-index:8;right:22px;top:50%;transform:translateY(-50%);list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}
.dots button{position:relative;display:flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;border:0;background:none;cursor:pointer}
.dots i{display:block;width:6px;height:6px;border-radius:999px;background:rgba(173,216,230,.35);transition:height .35s cubic-bezier(.215,.61,.355,1),background .3s,box-shadow .3s}
.dots button:hover i{background:rgba(173,216,230,.8)}
.dots button.on i{height:20px;background:#ADD8E6;box-shadow:0 0 10px rgba(173,216,230,.55)}
.dots span{position:absolute;right:30px;top:50%;transform:translate(6px,-50%);white-space:nowrap;font:500 10px var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--color-ice);background:rgba(0,0,90,.6);border:1px solid rgba(173,216,230,.18);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding:5px 10px;border-radius:999px;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}
.dots button:hover span,.dots button:focus-visible span{opacity:1;transform:translate(0,-50%)}
.nextarrow{position:fixed;z-index:8;left:50%;bottom:22px;transform:translateX(-50%);width:44px;height:44px;border:0;background:none;padding:0;cursor:pointer;color:rgba(173,216,230,.75);transition:opacity .35s,color .2s}
.nextarrow:hover{color:var(--color-snow)}
.nextarrow svg{display:block;width:44px;height:44px;animation:bob 2.2s ease-in-out infinite}
.nextarrow.gone{opacity:0;pointer-events:none}
@keyframes bob{0%,100%{transform:translateY(-3px)}50%{transform:translateY(4px)}}
.mmenu{position:fixed;inset:0;z-index:20;display:flex;flex-direction:column;padding:16px 12px calc(24px + env(safe-area-inset-bottom));background:rgba(0,0,72,.86);backdrop-filter:blur(22px) saturate(140%);-webkit-backdrop-filter:blur(22px) saturate(140%);opacity:0;visibility:hidden;transition:opacity .28s,visibility 0s .28s}
.mmenu.open{opacity:1;visibility:visible;transition:opacity .28s}
.mmenu .mtop{display:flex;align-items:center;justify-content:space-between;padding:10px 10px 10px 22px;border-radius:999px;border:1px solid rgba(173,216,230,.18);background:rgba(0,0,90,.55)}
.mmenu .mtop img{height:22px;display:block}
.mclose{width:40px;height:40px;border-radius:50%;border:1px solid rgba(173,216,230,.3);background:none;position:relative;cursor:pointer}
.mclose:before,.mclose:after{content:"";position:absolute;left:12px;right:12px;top:19px;height:1.5px;background:var(--color-snow);transform:rotate(45deg)}.mclose:after{transform:rotate(-45deg)}
.mmenu ul{list-style:none;padding:0 12px;margin:auto 0;display:flex;flex-direction:column}
.mmenu li{border-bottom:1px solid rgba(109,129,150,.3);transform:translateY(12px);opacity:0;transition:transform .45s cubic-bezier(.215,.61,.355,1),opacity .35s}
.mmenu.open li{transform:none;opacity:1}.mmenu.open li:nth-child(2){transition-delay:.04s}.mmenu.open li:nth-child(3){transition-delay:.08s}.mmenu.open li:nth-child(4){transition-delay:.12s}.mmenu.open li:nth-child(5){transition-delay:.16s}
.mmenu li a{display:flex;justify-content:space-between;align-items:baseline;padding:20px 4px;font-family:var(--font-display);font-size:2rem;letter-spacing:-.03em;color:var(--color-snow)}
.mmenu li a small{font:500 11px var(--font-mono);letter-spacing:.14em;color:var(--color-ice)}
.mmenu .mfoot{padding:0 12px;display:flex;justify-content:space-between;align-items:center;font-size:var(--text-sm);color:var(--color-slate)}
@media(max-width:820px){
.dots{right:6px;gap:2px}.dots button{width:16px;height:18px}.dots i{width:4px;height:4px;background:rgba(173,216,230,.28)}.dots button.on i{height:13px;box-shadow:none}.dots span{display:none}
.nextarrow{bottom:calc(var(--bar) + 4px);width:36px;height:36px}.nextarrow svg{width:36px;height:36px}
}
@media(min-width:821px){.mmenu{display:none}}

/* ===== v23 ===== */
svg.li{width:1em;height:1em;fill:currentColor;flex:none}
/* features: on-premise is the featured card, three capability cards beneath */
#features .fg{grid-template-columns:repeat(3,1fr)}
#features .f.loc{grid-column:1/-1;display:grid;grid-template-columns:64px 1fr;gap:28px;align-items:center;padding:34px 32px;background:linear-gradient(90deg,rgba(173,216,230,.11),rgba(173,216,230,.02) 70%);box-shadow:inset 3px 0 0 #ADD8E6}
#features .f.loc svg{width:64px;height:64px;fill:none;stroke:#ADD8E6;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}#features .f.loc svg .dot{fill:#ADD8E6;stroke:none}
#features .f.loc h4{font-size:var(--text-2xl);margin:10px 0 8px}#features .f.loc p{max-width:58ch;color:rgba(255,250,250,.85)}
.tag{display:inline-flex;align-items:center;gap:8px;font:500 11px var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:#ADD8E6}.tag:before{content:"";width:6px;height:6px;border-radius:50%;background:#ADD8E6;box-shadow:0 0 8px rgba(173,216,230,.8)}
#features .f h4{font-size:var(--text-xl)}
@media(min-width:821px){#features{padding-top:96px;padding-bottom:40px}#features .f{padding:26px 28px}#features .f.loc{padding:26px 32px}#features .f h4{margin:14px 0 8px}#features .why{margin-top:36px}.devs svg{margin-bottom:6px}}
/* caught early: three deviation types, line-art icons; orange marks the deviation, as in the film */
.why .devs{gap:20px}
.why .devs li{padding:0;display:flex;flex-direction:column;gap:6px}.why .devs li:before{display:none}
.devs svg{width:56px;height:56px;padding:6px;margin-bottom:10px;border-radius:12px;border:1px solid rgba(173,216,230,.25);background:rgba(0,0,90,.6);fill:none;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;box-sizing:border-box}
.devs svg .ln,.devs svg .ok{stroke:rgba(173,216,230,.8);fill:none}.devs svg .ok{fill:rgba(173,216,230,.18)}.devs svg .dev{stroke:#FF6B3D;fill:rgba(255,107,61,.12)}.devs svg .dash{stroke:#FF6B3D;stroke-dasharray:3 3;fill:none}
.devs b{font-family:var(--font-display);font-size:var(--text-lg);font-weight:500;color:var(--color-snow)}.devs span{color:rgba(255,250,250,.68);font-size:var(--text-sm)}
/* roadmap */
section#roadmap .head{margin-bottom:84px;max-width:none}section#roadmap .head h2{font-size:2.6rem}
.rm{position:relative;--fx:7px}
.rline{position:absolute;left:0;right:0;top:7px;height:1px;background:linear-gradient(90deg,rgba(109,129,150,.5) 80%,rgba(109,129,150,0));transform-origin:left center}
.rfill{position:absolute;left:0;top:0;height:1px;width:var(--fx);background:#ADD8E6;box-shadow:0 0 10px rgba(173,216,230,.7)}
.rph{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(6,1fr)}
.rph li{position:relative;padding:36px 18px 0 0}
.rph .nd{position:absolute;left:0;top:0;width:15px;height:15px;border-radius:50%;box-sizing:border-box;border:1.5px solid rgba(109,129,150,.9);background:var(--color-navy)}
.rph li.done .nd{background:#ADD8E6;border-color:#ADD8E6}
.rph li.now .nd{border-color:#ADD8E6;background:var(--color-navy);box-shadow:0 0 0 5px rgba(173,216,230,.14),0 0 16px rgba(173,216,230,.7)}
.rph li.now .nd:after{content:"";position:absolute;inset:3px;border-radius:50%;background:#ADD8E6}
.rph li.now .nd:before{content:"";position:absolute;inset:-6px;border-radius:50%;border:1px solid rgba(173,216,230,.6);animation:rmp 2.4s cubic-bezier(.215,.61,.355,1) infinite}
@keyframes rmp{0%{transform:scale(.6);opacity:.9}100%{transform:scale(1.9);opacity:0}}
.rph .q{font:500 11px var(--font-mono);letter-spacing:.16em;color:var(--color-slate)}
.rph h4{font-family:var(--font-display);font-weight:500;font-size:var(--text-lg);letter-spacing:-.01em;margin:8px 0 10px;color:rgba(255,250,250,.82)}
.rph p{margin:0 0 14px;font-size:var(--text-sm);line-height:1.5;color:rgba(255,250,250,.6)}.rph p span{display:block}
.rph .trl{display:inline-block;font:500 10px var(--font-mono);letter-spacing:.16em;color:var(--color-slate);border:1px solid rgba(109,129,150,.5);border-radius:999px;padding:4px 9px}
.rph li.done .q,.rph li.now .q{color:#ADD8E6}.rph li.now h4{color:var(--color-snow)}.rph li.now p{color:rgba(255,250,250,.82)}
.rph li.now .trl{color:#ADD8E6;border-color:rgba(173,216,230,.7);background:rgba(173,216,230,.08)}
.nowtag{position:absolute;left:-4px;top:-34px;font:600 10px var(--font-mono);font-style:normal;letter-spacing:.18em;text-transform:uppercase;color:var(--color-navy);background:#ADD8E6;border-radius:999px;padding:3px 9px}
/* team: founders, role, LinkedIn */
.tnames b{display:flex;align-items:center;gap:10px}
.lin{display:inline-flex;color:var(--color-slate);transition:color .2s;padding:2px}.lin:hover,.lin:focus-visible{color:#ADD8E6}.lin svg{width:15px;height:15px}
.tnames .fd{font:500 10px var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--color-slate);margin:2px 0 1px}
.cbtns{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:8px}
.btn.lbtn{display:inline-flex;align-items:center;gap:8px;background:transparent;color:var(--color-snow);border:1px solid rgba(173,216,230,.35)}.btn.lbtn:hover{background:rgba(173,216,230,.12)}.btn.lbtn svg{width:15px;height:15px}
.flin{display:inline-flex;align-items:center;gap:6px}.flin svg{width:14px;height:14px}
@media(max-width:820px){
#features .fg{grid-template-columns:1fr}
#features .f.loc{grid-template-columns:44px 1fr;gap:16px;padding:22px 20px}#features .f.loc svg{width:44px;height:44px}#features .f.loc h4{font-size:var(--text-xl);margin:6px 0 4px}
.devs svg{width:44px;height:44px;margin-bottom:4px}.why .devs{gap:16px}.why .devs li{display:grid;grid-template-columns:44px 1fr;column-gap:14px;row-gap:2px}.devs svg{grid-row:1/3}
section#roadmap .head{margin-bottom:28px}section#roadmap .head h2{font-size:2.3rem}
.rline{left:7px;right:auto;top:8px;bottom:8px;width:1px;height:auto;transform-origin:center top;background:linear-gradient(180deg,rgba(109,129,150,.5) 85%,rgba(109,129,150,0))}
.rfill{width:1px;height:var(--fy,8px)}
.rph{grid-template-columns:1fr;gap:16px}
.rph li{padding:0 0 0 34px}
.rph h4{font-size:1.15rem;margin:2px 0 2px}
.rph p{margin:0;font-size:13px}.rph p span{display:inline}.rph p span+span:before{content:" · "}
.rph .trl{position:absolute;right:0;top:-2px;padding:2px 8px}
.nowtag{left:auto;right:56px;top:-2px;padding:2px 8px}
.mmenu .mfoot .flin{color:var(--color-ice)}
}

/* ===== v24 roadmap: the climb ===== */
#roadmap{overflow:hidden}
#roadmap .mwrap{position:relative;margin:0 auto;width:min(100%,calc((100vh - 190px)*1200/620))}
section#roadmap .head{position:absolute;left:0;top:0;z-index:3;margin:0;max-width:30%}
section#roadmap .head h2{font-size:clamp(2rem,3.2cqw,2.8rem)}
#roadmap .mwrap{container-type:inline-size}
.mtn{position:relative;width:100%}
.mtn.m{display:none}
.msvg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.msvg .sky circle{fill:#FFFAFA}.msvg .sky .tw{animation:tw 4s ease-in-out infinite;animation-delay:var(--d)}
@keyframes tw{0%,100%{opacity:.15}50%{opacity:.85}}
.msvg .cl{stroke:#ADD8E6;stroke-width:10;stroke-linecap:round;opacity:.07;fill:none}
.msvg .c1{animation:drift 38s linear infinite alternate}.msvg .c2{animation:drift 52s linear infinite alternate-reverse}
@keyframes drift{from{transform:translateX(-4%)}to{transform:translateX(6%)}}
.msvg polyline{fill:none}
.msvg .far{stroke:rgba(173,216,230,.18);stroke-width:1;stroke-linejoin:round}
.msvg .main{stroke:rgba(173,216,230,.55);stroke-width:1.3;stroke-linejoin:round}
.msvg .front{stroke:rgba(173,216,230,.22);stroke-width:1;stroke-linejoin:round}
.msvg .ct{fill:none;stroke:rgba(173,216,230,.07);stroke-width:1}
.msvg .fc{fill:none;stroke:rgba(173,216,230,.16);stroke-width:1;stroke-linejoin:round}
.msvg .cap{fill:rgba(173,216,230,.16);stroke:rgba(173,216,230,.75);stroke-width:1.2;stroke-linejoin:round}
.msvg .tdim{fill:none;stroke:rgba(173,216,230,.38);stroke-width:1.6;stroke-dasharray:3 7;stroke-linecap:round}
.msvg .tlit{fill:none;stroke:#ADD8E6;stroke-width:2.4;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:0;display:none}.msvg .tlit.on{display:inline}
.msvg .pole{stroke:#FFFAFA;stroke-width:1.6;stroke-linecap:round}.msvg .ptop{fill:#ADD8E6}
.msvg .cloth{stroke:rgba(173,216,230,.6);stroke-width:.8}
.msvg .wpn .nd{fill:#00006E;stroke:rgba(109,129,150,.95);stroke-width:1.5}.msvg .wpn .cb,.msvg .wpn .ring{opacity:0}
.msvg .wpn.done .nd{fill:#ADD8E6;stroke:#ADD8E6}
.msvg .wpn.now .nd{fill:#00006E;stroke:#ADD8E6;stroke-width:1.8}
.msvg .wpn.now .cb{opacity:1;fill:#ADD8E6;filter:drop-shadow(0 0 4px #ADD8E6) drop-shadow(0 0 10px rgba(173,216,230,.8))}
.msvg .wpn.now .ring{opacity:1;fill:none;stroke:#ADD8E6;stroke-width:1.2;transform-box:fill-box;transform-origin:center;animation:rmp 2.4s cubic-bezier(.215,.61,.355,1) infinite}
@keyframes rmp{0%{transform:scale(.55);opacity:.9}100%{transform:scale(2.1);opacity:0}}
.mtn .lead{position:absolute;left:var(--lx);width:var(--lw);top:var(--ly);height:1px;background:linear-gradient(90deg,rgba(173,216,230,.5),rgba(173,216,230,.15));pointer-events:none}
.mtn.d .wpc.l+.lead,.mtn .lead{z-index:1}
.wpc{position:absolute;z-index:2;box-sizing:border-box;padding:.9cqw 1.05cqw 1cqw;border-radius:1cqw;background:rgba(0,0,96,.62);border:1px solid rgba(173,216,230,.16);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 10px 30px rgba(0,0,40,.35)}
.wpc .r1{display:flex;align-items:center;justify-content:space-between;gap:8px}
.wpc .q{font:500 max(10px,.86cqw) var(--font-mono);letter-spacing:.16em;color:var(--color-slate)}
.wpc .trl{font:500 max(9px,.74cqw) var(--font-mono);letter-spacing:.14em;color:var(--color-slate);border:1px solid rgba(109,129,150,.55);border-radius:999px;padding:.18cqw .6cqw;white-space:nowrap}
.wpc h4{font-family:var(--font-display);font-weight:500;font-size:max(14px,1.48cqw);letter-spacing:-.01em;margin:.35cqw 0 .3cqw;color:rgba(255,250,250,.9);white-space:nowrap}
.wpc p{margin:0;font-size:max(11px,1.02cqw);line-height:1.42;color:rgba(255,250,250,.62)}.wpc p span{display:block}
.wpc.done .q{color:#ADD8E6}
.wpc.now{border-color:rgba(173,216,230,.6);background:rgba(10,20,130,.7);box-shadow:0 0 0 1px rgba(173,216,230,.15),0 10px 40px rgba(0,0,40,.4),0 0 30px rgba(173,216,230,.12)}
.wpc.now .q,.wpc.now .trl{color:#ADD8E6}.wpc.now .trl{border-color:rgba(173,216,230,.7);background:rgba(173,216,230,.08)}.wpc.now h4{color:#FFFAFA}.wpc.now p{color:rgba(255,250,250,.85)}
.wpc .nowtag{position:static;display:inline-block;margin-left:auto;margin-right:6px;font:600 max(9px,.72cqw) var(--font-mono);font-style:normal;letter-spacing:.18em;text-transform:uppercase;color:var(--color-navy);background:#ADD8E6;border-radius:999px;padding:.15cqw .6cqw}
@media(max-width:820px){
#roadmap .mtn.m{margin-bottom:-34px}
#roadmap .mwrap{width:100%}
section#roadmap .head{position:static;max-width:none;margin-bottom:12px}section#roadmap .head h2{font-size:2.3rem}
.mtn.d{display:none}.mtn.m{display:block}
.wpc{padding:2.63cqw 3.2cqw 2.9cqw;border-radius:3.5cqw}
.wpc .q{font-size:2.92cqw}.wpc .trl{font-size:2.78cqw;padding:.6cqw 2cqw}.wpc h4{font-size:4.68cqw;margin:1.17cqw 0 .88cqw}.wpc p{font-size:3.65cqw;line-height:1.38}
.wpc .nowtag{font-size:2.63cqw;padding:.6cqw 2cqw}
.msvg .main{stroke-width:1.2}
}

/* v24 LinkedIn: unmistakable pill with the 'in' square */
.insq{width:18px;height:18px;flex:none;display:block}.insq .sq{fill:#ADD8E6;transition:fill .2s}.insq .in{fill:#000080;transition:fill .2s}
.tnames .lin{display:inline-flex;align-items:center;gap:7px;justify-self:start;align-self:start;width:max-content;margin-top:8px;padding:4px 11px 4px 4px;border-radius:999px;border:1px solid rgba(173,216,230,.32);background:rgba(173,216,230,.06);color:var(--color-snow);font:500 12px var(--font-body);line-height:1;transition:background .2s,border-color .2s,color .2s}
.tnames .lin .insq{width:20px;height:20px}
.tnames .lin:hover,.tnames .lin:focus-visible{background:#ADD8E6;border-color:#ADD8E6;color:var(--color-navy)}.tnames .lin:hover .sq,.tnames .lin:focus-visible .sq{fill:#000080}.tnames .lin:hover .in,.tnames .lin:focus-visible .in{fill:#ADD8E6}
.tnames li{grid-template-rows:auto auto auto auto}.tnames .idx{grid-row:1/5}
.btn.lbtn{gap:9px;padding-left:12px}.btn.lbtn .insq{width:20px;height:20px}.btn.lbtn:hover{background:#ADD8E6;color:var(--color-navy);border-color:#ADD8E6}.btn.lbtn:hover .sq{fill:#000080}.btn.lbtn:hover .in{fill:#ADD8E6}
.flin{gap:7px}.flin .insq{width:16px;height:16px}.flin:hover{color:var(--color-snow)}
@media(max-width:820px){.tnames .lin{margin-top:6px;font-size:11.5px;padding:3px 10px 3px 3px}.tnames .lin .insq{width:18px;height:18px}.tnames .idx{grid-row:auto}}

@media(max-width:820px){
#team{padding-top:80px}#team .head{margin-bottom:12px}#team .head h2{font-size:2rem}
.tphoto .ph{aspect-ratio:16/10}.tphoto img{object-position:50% 40%}
.tnames li{grid-template-columns:auto 1fr;column-gap:8px;padding-top:7px}
.tnames .idx{grid-row:1;grid-column:1;padding:0}.tnames .fd{grid-row:1;grid-column:2;margin:0;align-self:center}
.tnames b,.tnames .role,.tnames .lin{grid-column:1/-1}.tnames b{margin-top:2px}
}

@media(max-width:820px){.tnames li{grid-template-rows:auto auto 1fr auto}.tnames .lin{align-self:end}}

/* ===== v26: magnifying dock for the section dots ===== */
.dock{position:fixed;z-index:8;right:0;top:50%;transform:translateY(-50%);padding:14px 22px 14px 14px;--pw:150px}
.dock.open{padding-left:calc(var(--pw) + 48px)}
.dock .dots{position:relative;right:auto;top:auto;transform:none;align-items:flex-end;z-index:1}
.dock .dbg{position:absolute;right:10px;top:4px;bottom:4px;width:var(--pw);border-radius:22px;background:linear-gradient(270deg,rgba(0,0,96,.62),rgba(0,0,90,.46));border:1px solid rgba(173,216,230,.16);box-shadow:0 18px 50px rgba(0,0,40,.45),inset 0 1px 0 rgba(255,255,255,.05);backdrop-filter:blur(16px) saturate(140%);-webkit-backdrop-filter:blur(16px) saturate(140%);opacity:0;transform:scaleX(.82);transform-origin:right center;pointer-events:none;transition:opacity .28s cubic-bezier(.215,.61,.355,1),transform .38s cubic-bezier(.215,.61,.355,1)}
.dock.open .dbg{opacity:1;transform:none}
.dock .dots button{flex:none}
.dock .dots i{will-change:transform}
.dock .dots span{right:30px;top:50%;background:none;border:0;padding:0;backdrop-filter:none;-webkit-backdrop-filter:none;transition:color .2s;color:rgba(173,216,230,.9);transform-origin:right center;transform:translateY(-50%)}
.dock .dots button.near span{color:var(--color-snow);font-weight:600}
.dock .dots button.on span{color:#ADD8E6}
.dock .dots button.near i{background:rgba(173,216,230,.9)}.dock .dots button.on.near i{background:#ADD8E6}
.dock.open .dots button.on i{box-shadow:0 0 14px rgba(173,216,230,.7)}
@media(prefers-reduced-motion:reduce){.dock .dbg{transition:none;transform:none}.dock .dots i{transition:none}}
@media(max-width:820px){
.dock{padding:10px 6px 10px 14px}.dock.open{padding-left:calc(var(--pw) + 24px)}
.dock .dbg{right:2px;border-radius:16px}
.dock.touch .dots span{display:block;right:24px;font-size:10px}
}

/* ===== v26 team: cut-out people on the navy page, linked highlight with the name list ===== */
.tcut{--sh:min(64vh,560px)}
.tcut .win{position:relative}
.tcut .tst{position:relative;height:var(--sh);aspect-ratio:910/940;margin:0 auto;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}
.tcut .floor{position:absolute;left:-14%;right:-14%;bottom:-7%;height:30%;pointer-events:none;background:radial-gradient(50% 42% at 50% 62%,rgba(173,216,230,.13),rgba(173,216,230,.04) 55%,transparent 72%)}
.tcut .tst:before{content:"";position:absolute;inset:6% -8% 18%;pointer-events:none;background:radial-gradient(48% 46% at 50% 40%,rgba(120,150,255,.10),transparent 70%)}
.tcut .cs{position:absolute;border-radius:50%;pointer-events:none;background:radial-gradient(closest-side,rgba(0,0,30,.75),rgba(0,0,40,.35) 55%,transparent);transition:background .4s,opacity .4s}
.tcut .cs.on{background:radial-gradient(closest-side,rgba(173,216,230,.42),rgba(173,216,230,.12) 55%,transparent)}
.tcut .pp,.tcut .pg{position:absolute;display:block;height:auto;max-width:none;pointer-events:none;transform-origin:50% 100%;transition:filter .4s cubic-bezier(.215,.61,.355,1),transform .5s cubic-bezier(.215,.61,.355,1);will-change:transform,filter}
.tcut .tst.hl .pp{filter:brightness(.45) saturate(.65)}
.tcut .tst.hl .pp.on{filter:brightness(1.14) saturate(1.05);transform:translateY(-2px)}
/* rim glow: a silhouette copy BEHIND all four people, so it only shows on the outer edge, never across a neighbour */
.tcut .pg{opacity:0;filter:brightness(0) drop-shadow(0 0 1px #ADD8E6) drop-shadow(0 0 1.5px #ADD8E6) drop-shadow(0 0 16px rgba(173,216,230,.5));transition:opacity .4s cubic-bezier(.215,.61,.355,1),transform .5s cubic-bezier(.215,.61,.355,1)}
.tcut .tst.hl .pg.on{opacity:1;transform:translateY(-2px)}
.tcut .tst.hl .cs:not(.on){opacity:.7}
.tcut .tmarks{width:calc(var(--sh) * 0.9681);margin:6px auto 0}
.tcut .tmarks i b,.tcut .tmarks i:before{transition:color .3s,background .3s}
.tcut .tmarks i.on b{color:var(--color-snow)}.tcut .tmarks i.on:before{background:#ADD8E6;box-shadow:0 0 8px rgba(173,216,230,.8)}
#team .tnames li{position:relative;transition:opacity .3s,background .3s,box-shadow .3s;cursor:default}
#team .tnames li:before{content:"";position:absolute;left:-14px;top:12px;bottom:0;width:2px;border-radius:2px;background:#ADD8E6;opacity:0;transform:scaleY(.4);transition:opacity .3s,transform .4s cubic-bezier(.215,.61,.355,1)}
#team .tnames.hl li:not(.on){opacity:.45}
#team .tnames li.on:before{opacity:1;transform:none;box-shadow:0 0 10px rgba(173,216,230,.7)}
#team .tnames li.on .idx{color:#ADD8E6}#team .tnames li.on b{color:var(--color-snow)}
#team .tnames li.on .lin{background:#ADD8E6;border-color:#ADD8E6;color:var(--color-navy)}#team .tnames li.on .lin .sq{fill:#000080}#team .tnames li.on .lin .in{fill:#ADD8E6}
@media(prefers-reduced-motion:reduce){.tcut .pp,.tcut .pg,.tcut .cs,#team .tnames li,#team .tnames li:before{transition:none}.tcut .tst.hl .pp.on,.tcut .tst.hl .pg.on{transform:none}}
@media(max-width:820px){
.tcut{--sh:auto}
.tcut .win{aspect-ratio:16/10.4;overflow:hidden;-webkit-mask-image:linear-gradient(180deg,#000 72%,transparent 99%);mask-image:linear-gradient(180deg,#000 72%,transparent 99%)}
.tcut .tst{width:86%;height:auto;margin-top:4%}
.tcut .tmarks{width:86%;margin:4px auto 0}
.tcut .floor,.tcut .cs{display:none}
#team .tnames li:before{left:-7px;top:8px}
#team .tnames li{cursor:pointer}
}

/* v27: hidden by default everywhere (no layout impact); each mode turns on its own piece */
.ttip,.tbr,.tread{display:none}
@media(min-width:821px){
.ttip{display:block;position:absolute;left:0;top:0;width:252px;z-index:4;opacity:0;visibility:hidden;pointer-events:none;--s:1}
.ttip .tcard{position:relative;display:flex;flex-direction:column;align-items:flex-start;padding:16px 18px 16px;border-radius:16px;background:linear-gradient(160deg,rgba(0,0,112,.74),rgba(0,0,78,.62));border:1px solid rgba(173,216,230,.24);box-shadow:0 22px 60px rgba(0,0,40,.55),inset 0 1px 0 rgba(255,255,255,.07);backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%)}
.ttip .tcard:before{content:"";position:absolute;left:18px;right:18px;top:-1px;height:1px;background:linear-gradient(90deg,transparent,#ADD8E6,transparent);opacity:.7}
.ttip .tkick{display:flex;align-items:center;gap:8px;font:500 10px var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:#ADD8E6}
.ttip .tkick b{font-weight:500;color:var(--color-snow)}.ttip .tkick i{width:14px;height:1px;background:rgba(173,216,230,.5)}
.ttip .tnm{margin-top:10px;font-family:var(--font-display);font-weight:500;font-size:1.3rem;line-height:1.15;letter-spacing:-.01em;color:var(--color-snow)}
.ttip .trole{margin-top:4px;font-size:var(--text-sm);line-height:1.4;color:rgba(255,250,250,.72)}
.ttip .tlin{display:inline-flex;align-items:center;gap:8px;margin-top:14px;padding-top:12px;border-top:1px solid rgba(109,129,150,.3);align-self:stretch;color:rgba(173,216,230,.9);font:500 10px var(--font-mono);letter-spacing:.14em;text-transform:uppercase;line-height:1}
.ttip .tlin .arr{width:11px;height:11px;fill:none;stroke:#ADD8E6;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;margin-left:auto}
.ttip .tlin .insq{width:18px;height:18px}
/* lead line: card -> person, same grammar as the film's detection leads */
.ttip .tlead{position:absolute;top:30px;width:30px;height:1px;background:linear-gradient(90deg,rgba(173,216,230,.15),#ADD8E6)}
.ttip .tlead:after{content:"";position:absolute;top:-3px;width:7px;height:7px;border-radius:50%;background:#ADD8E6;box-shadow:0 0 10px rgba(173,216,230,.9)}
.ttip.R .tlead{left:-30px;transform:scaleX(-1)}.ttip.R .tlead:after{left:-3px}
.ttip.L .tlead{right:-30px}.ttip.L .tlead:after{right:-3px}
.ttip.R .tlead,.ttip.L .tlead{transform-origin:center}
.ttip.R .tlead{background:linear-gradient(270deg,rgba(173,216,230,.15),#ADD8E6);transform:none}.ttip.R .tlead:after{left:-3px;right:auto}
}
@media(max-width:820px){
/* mobile-native: tap a founder (photo or tile) -> scan brackets lock onto them + HUD readout types their name */
.tcut .tmarks{display:none}
.tbr{display:block;position:absolute;left:0;top:0;width:0;height:0;pointer-events:none;opacity:0;z-index:3}
.tbr i{position:absolute;width:12px;height:12px;border:0 solid #FFFAFA;filter:drop-shadow(0 0 4px rgba(173,216,230,.8))}
.tbr .c1{left:0;top:0;border-left-width:1.5px;border-top-width:1.5px}.tbr .c2{right:0;top:0;border-right-width:1.5px;border-top-width:1.5px}
.tbr .c3{right:0;bottom:0;border-right-width:1.5px;border-bottom-width:1.5px}.tbr .c4{left:0;bottom:0;border-left-width:1.5px;border-bottom-width:1.5px}
.tread{display:flex;align-items:center;justify-content:center;gap:8px;height:24px;margin:2px 0 6px;font:500 10px var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--color-slate);white-space:nowrap;overflow:hidden}
.tread .dotl{width:6px;height:6px;flex:none;border-radius:50%;background:rgba(173,216,230,.35);transition:background .3s,box-shadow .3s}
.tread.on{color:#ADD8E6}.tread.on .dotl{background:#ADD8E6;box-shadow:0 0 8px rgba(173,216,230,.9)}
/* glass tiles */
#team .tnames{gap:8px;margin-top:0}
#team .tnames li{padding:11px 12px 12px;border:1px solid rgba(173,216,230,.14);border-radius:16px;background:linear-gradient(160deg,rgba(0,0,110,.5),rgba(0,0,80,.38));grid-template-rows:auto auto 1fr;transition:opacity .3s,border-color .3s,background .3s,box-shadow .3s,transform .4s cubic-bezier(.215,.61,.355,1)}
#team .tnames li:before{display:none}
#team .tnames li.on{border-color:rgba(173,216,230,.75);background:linear-gradient(160deg,rgba(173,216,230,.16),rgba(0,0,90,.45));box-shadow:0 0 0 1px rgba(173,216,230,.25),0 10px 30px rgba(0,0,40,.4),inset 0 0 18px rgba(173,216,230,.08)}
#team .tnames.hl li:not(.on){opacity:.55}
#team .tnames .fd{padding-right:28px;white-space:nowrap;letter-spacing:.12em}
#team .tnames b{font-size:15px;margin-top:4px}
#team .tnames .role{font-size:12px;line-height:1.35;color:rgba(173,216,230,.92)}
/* LinkedIn becomes a 34px icon button in the tile corner */
#team .tnames .lin{position:absolute;right:6px;top:5px;margin:0;padding:6px;border:0;background:none;width:auto}
#team .tnames .lin>span{display:none}
#team .tnames .lin .insq{width:22px;height:22px}
#team .tnames li.on .lin{background:none}#team .tnames li.on .lin .sq{fill:#ADD8E6}#team .tnames li.on .lin .in{fill:#000080}
}
@media(prefers-reduced-motion:reduce){#team .tnames li{transition:none}}
.mscrim{display:none}
@media(max-width:820px){
/* iOS/Android: 100vh is the toolbar-hidden height; use the small viewport so nothing sits behind the browser chrome */
.mission,#features,#roadmap,#team,#articles,#contact{min-height:100svh}
#contact{min-height:calc(100svh - 150px)}
#flow{height:calc(var(--T,13.8)*var(--u) + 100svh)}
.vis{height:57svh}.vis #stg{top:6svh;height:48svh}
/* hero: subtitle no longer collides with the scroll arrow */
.cp.hh{padding-bottom:calc(4svh + var(--bar) + 40px)}
/* soft scrim under the Contact bar: content slides under it instead of being chopped */
.mscrim{display:block;position:fixed;left:0;right:0;bottom:0;height:calc(var(--bar) + 56px + env(safe-area-inset-bottom));z-index:7;pointer-events:none;opacity:0;background:linear-gradient(180deg,rgba(0,0,128,0),rgba(0,0,128,.78) 45%,rgba(0,0,128,.94))}
.mscrim.t{top:0;bottom:auto;height:calc(env(safe-area-inset-top) + 104px);background:linear-gradient(180deg,rgba(0,0,128,.96),rgba(0,0,128,.82) 55%,rgba(0,0,128,0))}
.mscrim.on{opacity:1}
/* a card cut by the Contact bar waits, dimmed, until its own page (no half-cards under the bar) */
.wpc,.f,.devs li,.tnames li,.ac,.head,.mrow,.why>.eyebrow,.tphoto,.contact>*{transition:filter .45s cubic-bezier(.215,.61,.355,1)}
.mcut{filter:opacity(.12)}
.rm .lead.mcut{filter:opacity(0)}
/* Contact bar steps aside on the Contact section (its own buttons take over) */
.mbar{transition:opacity .35s cubic-bezier(.215,.61,.355,1),transform .45s cubic-bezier(.215,.61,.355,1)}
.mbar.away{opacity:0;transform:translateY(24px);pointer-events:none}
.mscrim{transition:opacity .35s}.mscrim.away{opacity:0!important}
/* film HUD labels: readable on a phone (viewBox units; ~10px on screen) */
.lab{font-size:18px!important}.sl,.sn{font-size:16.5px!important}.conf{font-size:13px!important}#tlab{font-size:15px!important}
/* taps: no grey flash, no double-tap zoom delay on controls */
a,button,.tnames li{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
}
@media(max-width:820px) and (max-height:760px){
.tcut .win{aspect-ratio:16/8.4}
#team .tnames li{padding:9px 11px 10px}
#team .head h2{font-size:1.85rem}
}
@media(min-width:600px) and (max-width:820px){
/* tablet portrait: keep the mobile grammar but give it a readable measure */
#team .wrap,#articles .wrap,#roadmap .wrap,#features .wrap,.mission .wrap,#contact .wrap{max-width:600px;margin-left:auto;margin-right:auto}
.tcut .win{aspect-ratio:16/9.6}
.cp .cw>*{max-width:520px}
}

/* v17 captions: fixed layer, timeline-driven, one reveal grammar */
.caps{position:fixed;inset:0;z-index:2;pointer-events:none}
.cp{position:absolute;inset:0}
.cp .cw{width:min(1200px,100% - 48px);height:100%;margin:0 auto;display:flex;flex-direction:column;justify-content:center}
.cp .cw>*{max-width:400px}.cp.rt .cw>*{margin-left:auto}
.cp h2{font-size:var(--text-5xl);margin:10px 0 14px}.cp p{color:rgba(255,250,250,.78);font-size:var(--text-lg)}
.cp .r{will-change:transform,opacity}
.cp.hh{text-align:center;padding:13vh 24px 0}.cp.hh h1{font-size:var(--text-5xl);margin:12px auto 0;max-width:14ch}.cp.hh h1 em{font-style:normal;color:var(--color-ice)}.cp.hh p{max-width:520px;margin:18px auto 0;color:rgba(255,250,250,.75)}
.cp.hh .r{display:block}
.mission{margin-top:-75vh;background:radial-gradient(70% 55% at 50% 42%,rgba(173,216,230,.10),transparent 70%)}
/* one HUD typography: mono 500, .16em; 11px labels, 10px meta */
.lab,.sl,.dh,.hudt,.conf,.sn,#flag text,#stamp text{font-family:var(--font-mono)!important;letter-spacing:.16em!important}
.lab{font-size:11px;font-weight:600}.sl{font-size:11px;font-weight:500}.dh{font-size:11px;font-weight:600}.hudt{font-size:10px}.conf,.sn{font-size:10px;font-weight:500}
#flag text{font-size:10px;font-weight:600}#stamp text{font-size:12px;font-weight:600}
.bk path{stroke-width:1.4}
/* new 5PACE logo (tight crop, arc above the letters): size by wordmark, nudge up so the letters sit on the pill's centre line */
.nav img,.mmenu .mtop img{height:30px;width:auto;transform:translateY(-4px)}
footer img{height:24px;width:auto}
/* features without a headline: same 200px label column as Mission and "Caught early" */
#features .wrap{display:grid;grid-template-columns:200px 1fr;column-gap:40px;align-items:start}
#features .head{margin:0;padding-top:34px;border-top:1px solid rgba(109,129,150,.3);align-self:stretch}
#features .fg{grid-template-columns:repeat(3,1fr)}
#features .f{padding:32px 28px}#features .f h4{font-size:var(--text-xl);margin:18px 0 10px}#features .f p{font-size:var(--text-base)}
#features .why{grid-column:1/-1}
@media(max-width:820px){
#features .wrap{display:block}#features .head{border-top:0;padding-top:0;margin-bottom:20px}#features .fg{grid-template-columns:1fr}#features .f{padding:24px 20px}#features .f h4{font-size:var(--text-xl);margin:14px 0 6px}#features .f p{font-size:var(--text-sm)}
.cp .cw{justify-content:flex-end;padding-bottom:calc(4vh + var(--bar) + 24px)}.cp.rt .cw>*{margin-left:0}.cp h2{font-size:3rem}
.cp.hh{display:flex;flex-direction:column;justify-content:flex-end;padding:0 24px calc(4vh + var(--bar))}.cp.hh h1{font-size:2.55rem}
.sl,.sn,.lab{font-size:15px}.hudt{display:none}.tlb{font-size:12px}#tlab{font-size:13px}}
