/* fusion site styles */

/* Self-hosted fonts (SIL Open Font License 1.1, see fonts/LICENSE.txt) */
@font-face{font-family:"Inter";font-style:normal;font-weight:400 600;font-display:swap;src:url(../fonts/inter-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:"Inter";font-style:normal;font-weight:400 600;font-display:swap;src:url(../fonts/inter-latin.woff2) format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:"Inter Tight";font-style:normal;font-weight:400 600;font-display:swap;src:url(../fonts/inter-tight-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:"Inter Tight";font-style:normal;font-weight:400 600;font-display:swap;src:url(../fonts/inter-tight-latin.woff2) format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:"JetBrains Mono";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/jetbrains-mono-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:"JetBrains Mono";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/jetbrains-mono-latin.woff2) format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}

/* Metric-matched fallbacks: text keeps the same width while the web fonts load, so the swap causes no layout shift. */
@font-face{font-family:"Inter Tight Fallback";src:local("Arial"),local("Helvetica");size-adjust:99.17%;ascent-override:97.7%;descent-override:24.3%;line-gap-override:0%;}
@font-face{font-family:"Inter Fallback";src:local("Arial"),local("Helvetica");size-adjust:107.44%;ascent-override:90.2%;descent-override:22.4%;line-gap-override:0%;}
@font-face{font-family:"JetBrains Mono Fallback";src:local("Menlo"),local("Consolas"),local("Courier New");size-adjust:99.66%;ascent-override:102%;descent-override:30%;line-gap-override:0%;}
:root{
  color-scheme:dark;
  --ground:#0E1524;
  --ground-2:#121A2B;
  --ink:#F3F5F8;
  --ink-2:rgba(243,245,248,.64);
  --ink-3:rgba(243,245,248,.5);
  --line:rgba(243,245,248,.12);
  --line-2:rgba(243,245,248,.22);
  --orange:#F97316;
  --cyan:#22D3EE;
  --teal:#2DD4BF;
  --violet:#A78BFA;
  --head:"Inter Tight","Inter Tight Fallback","Inter","Helvetica Neue",Helvetica,Arial,sans-serif;
  --text:"Inter","Inter Fallback","Helvetica Neue",Helvetica,Arial,sans-serif;
  --mono:"JetBrains Mono","JetBrains Mono Fallback","SF Mono",Menlo,Consolas,monospace;
  --gutter:clamp(22px,6vw,96px);
  --max:1360px;
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
}
:root[data-theme="dark"],:root[data-theme="light"]{color-scheme:dark;}
*,*::before,*::after{box-sizing:inherit;}
html{scrollbar-gutter:stable;scroll-behavior:smooth;scroll-padding-top:calc(64px + env(safe-area-inset-top,0px));}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}
body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--text);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);background:var(--ground);z-index:30;}
main{padding-top:56px;}
main:focus{outline:none;}
h1,h2,h3{font-family:var(--head);font-weight:500;letter-spacing:-.025em;line-height:1.02;margin:0;}
h1{font-size:clamp(44px,8.2vw,124px);max-width:6.64em;letter-spacing:-.04em;}
h2{font-size:clamp(34px,5vw,76px);max-width:7.85em;letter-spacing:-.035em;}
h3{font-size:clamp(18px,1.4vw,21px);font-weight:500;letter-spacing:-.01em;line-height:1.3;}
p{margin:0;}
a{color:inherit;}
:focus-visible{outline:2px solid var(--orange);outline-offset:4px;}
.mono{font-family:var(--mono);font-size:12px;letter-spacing:.02em;color:var(--ink-3);}

/* progress + index */
.progress{position:fixed;left:0;top:env(safe-area-inset-top,0px);height:2px;width:100%;transform:scaleX(0);transform-origin:left;background:var(--orange);z-index:31;will-change:transform;}
.skip{position:fixed;left:12px;top:-60px;z-index:40;padding:10px 16px;background:var(--orange);color:#0E1524;font-family:var(--head);font-weight:500;text-decoration:none;}
.skip:focus{top:12px;}

/* header */
header{position:static;z-index:25;}
.hdr{display:flex;align-items:center;justify-content:space-between;padding:26px var(--gutter);max-width:var(--max);margin:0 auto;}
.hdr .links{visibility:hidden;}
.hdr{display:flex;align-items:center;justify-content:space-between;padding:26px var(--gutter);max-width:var(--max);margin:0 auto;}
.wordmark{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);font-family:var(--head);font-weight:500;font-size:22px;letter-spacing:-.02em;}
.wordmark .logo{height:26px;width:auto;display:block;}
footer .logo.small{height:18px;width:auto;display:block;opacity:.7;}
.hdr .mono a{text-decoration:none;color:var(--ink-2);}
.hdr .mono a:hover{color:var(--ink);}
.hdr .links{display:flex;gap:28px;align-items:center;}
.hdr .lablink{color:var(--violet);display:inline-flex;align-items:center;gap:8px;}
.hdr .lablink::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--violet);box-shadow:0 0 0 3px color-mix(in srgb,var(--violet) 25%,transparent);}
.hdr .lablink:hover{color:var(--ink);}
.demo .lab-sig{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 16px;border-top:1px solid color-mix(in srgb,var(--violet) 40%,transparent);background:color-mix(in srgb,var(--violet) 7%,transparent);color:var(--violet);font-size:11px;letter-spacing:.12em;text-decoration:none;}
.demo .lab-sig span:last-child{color:var(--violet);opacity:.7;}
.demo .lab-sig:hover span:last-child{opacity:1;}

/* layout */
.sec{position:relative;max-width:var(--max);margin:0 auto;padding:clamp(96px,16vh,200px) var(--gutter);}
.sec + .sec{border-top:1px solid var(--line);}
.num{font-family:var(--mono);font-size:12px;letter-spacing:.12em;color:var(--ink-3);margin-bottom:clamp(28px,4vh,48px);display:flex;gap:18px;align-items:center;}
.num::after{content:"";flex:1;max-width:120px;height:1px;background:var(--line-2);}
.lede{font-size:clamp(17px,1.5vw,21px);color:var(--ink-2);max-width:54ch;margin-top:clamp(28px,4vh,44px);line-height:1.5;}
.grid{display:grid;gap:clamp(28px,4vw,56px);}
.g2{grid-template-columns:1fr 1fr;}
.g3{grid-template-columns:repeat(3,1fr);}
.g4{grid-template-columns:repeat(4,1fr);}
.g12{grid-template-columns:repeat(12,1fr);}
@media (max-width:980px){.g3,.g4{grid-template-columns:1fr 1fr;}}
@media (max-width:640px){.g2,.g3,.g4{grid-template-columns:1fr;}}
.col{border-top:1px solid var(--line-2);padding-top:18px;}
.col h3{margin-bottom:14px;}
.col ul{list-style:none;margin:0;padding:0;}
.col li{padding:9px 0;border-top:1px solid var(--line);color:var(--ink-2);font-size:15px;line-height:1.45;}
.col li:first-child{border-top:0;}
.acc{--a:var(--ink);}
.acc .col{border-top-color:var(--a);}
.acc .num{color:var(--a);}

/* hero */
.hero{min-height:calc(100svh - 56px);display:flex;flex-direction:column;justify-content:center;padding-bottom:clamp(48px,8vh,96px);}
.hero .top{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(32px,5vw,80px);align-items:center;}
.hero h1 span{display:block;color:var(--ink-3);}
.hero .who{margin-top:clamp(24px,4vh,40px);color:var(--ink-2);max-width:25.2em;font-size:clamp(15px,1.2vw,18px);}
.hero .pos{margin-top:clamp(40px,7vh,80px);padding-top:24px;border-top:1px solid var(--line);color:var(--ink-2);max-width:72ch;font-size:15px;line-height:1.55;}
.trust{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:clamp(28px,4vh,44px);border-top:1px solid var(--line-2);}
.trust div{padding:16px 16px 0 0;}
.trust b{display:block;font-family:var(--head);font-weight:500;font-size:clamp(20px,1.8vw,26px);letter-spacing:-.02em;}
.trust span{display:block;color:var(--ink-3);font-size:12.5px;margin-top:4px;line-height:1.4;}
.trust a{text-decoration:none;}
.trust a:hover b{color:var(--teal);}
@media (max-width:900px){.hero .top{grid-template-columns:1fr;} .trust{grid-template-columns:1fr 1fr;row-gap:16px;}}
/* demo loop */
.demo{border:1px solid var(--line-2);background:var(--ground-2);font-family:var(--mono);font-size:12.5px;line-height:1.5;min-height:300px;display:flex;flex-direction:column;}
.demo .bar{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;border-bottom:1px solid var(--line);color:var(--ink-3);font-size:11px;letter-spacing:.1em;}
.demo .bar i{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--teal);margin-right:8px;vertical-align:middle;animation:blink 2s infinite;}
@keyframes blink{50%{opacity:.25}}
.demo .in{padding:18px 16px 14px;color:var(--ink);min-height:62px;}
.demo .in::before{content:"\203A ";color:var(--teal);}
.demo .cur{display:inline-block;width:7px;height:14px;background:var(--ink);vertical-align:-2px;margin-left:2px;animation:blink 1s steps(1) infinite;}
.demo .out{padding:16px;border-top:1px solid var(--line);flex:1;opacity:0;transform:translateY(6px);transition:opacity .45s ease,transform .45s ease;}
.demo .out.on{opacity:1;transform:none;}
.demo .out h4{margin:0 0 10px;font-family:var(--head);font-weight:500;font-size:15px;letter-spacing:-.01em;color:var(--ink);}
.demo .row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:6px 0;border-top:1px solid var(--line);color:var(--ink-2);}
.demo .row:first-of-type{border-top:0;}
.demo .row em{font-style:normal;color:var(--ink);}
.demo .meter{height:4px;background:var(--line);position:relative;margin-top:6px;}
.demo .meter b{position:absolute;left:0;top:0;bottom:0;background:var(--cyan);width:0;transition:width .9s cubic-bezier(.2,.7,.2,1) .15s;}
.demo .out.on .meter b{width:var(--w);}
.demo .act{margin-top:12px;padding:10px 12px;border-left:2px solid var(--orange);color:var(--ink);}
.demo .foot{padding:8px 16px 10px;color:var(--ink-3);font-size:11px;border-top:1px solid var(--line);}
@media (prefers-reduced-motion:reduce){.demo .cur,.demo .bar i{animation:none;} .demo .out,.demo .meter b{transition:none;}}

/* section head with vault box */
.head{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,80px);align-items:center;}
.head .lede{margin-top:clamp(20px,3vh,32px);}
@media (max-width:900px){.head{grid-template-columns:1fr;}}

/* duo: two vault boxes side by side */
.duo{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,3vw,40px);margin-top:clamp(40px,6vh,72px);align-items:start;}
.head.one,.hero .top.one{grid-template-columns:1fr;}
.head.one .lede{max-width:62ch;}
@media (max-width:900px){.duo{grid-template-columns:1fr;}}

/* in-section demo rows */
.demoRow{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(28px,4vw,64px);margin-top:clamp(64px,10vh,120px);align-items:center;}
.demoRow .lead h3{font-size:clamp(20px,1.8vw,26px);letter-spacing:-.02em;}
.demoRow .lead p{color:var(--ink-2);margin-top:12px;max-width:40ch;}
.demoRow .lead .mono{display:block;margin-bottom:14px;}
@media (max-width:900px){.demoRow{grid-template-columns:1fr;}}

/* telemetry */
.tele{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--line-2);border-bottom:1px solid var(--line-2);margin-top:clamp(48px,8vh,96px);}
.tele div{padding:clamp(28px,4vh,48px) 24px clamp(28px,4vh,48px) 0;border-left:1px solid var(--line);padding-left:24px;}
.tele div:first-child{border-left:0;padding-left:0;}
.tele b{display:block;font-family:var(--head);font-weight:500;font-size:clamp(44px,5.4vw,84px);letter-spacing:-.04em;line-height:1;font-variant-numeric:tabular-nums;}
.tele span{display:block;margin-top:14px;color:var(--ink-2);font-size:14px;line-height:1.45;max-width:24ch;}
@media (max-width:860px){.tele{grid-template-columns:1fr 1fr;} .tele div:nth-child(3){border-left:0;padding-left:0;} .tele div:nth-child(n+3){border-top:1px solid var(--line);}}

/* modules list, swiss rows */
.rows{list-style:none;margin:clamp(40px,6vh,72px) 0 0;padding:0;border-top:1px solid var(--line-2);}
.rows li{display:grid;grid-template-columns:5ch 14ch 1fr;gap:24px;padding:22px 0;border-bottom:1px solid var(--line);align-items:baseline;}
.rows .n{font-family:var(--mono);font-size:12px;color:var(--ink-3);}
.rows .k{font-family:var(--head);font-weight:500;font-size:clamp(18px,1.6vw,24px);letter-spacing:-.02em;}
.rows .k sup{font-size:.45em;font-weight:400;vertical-align:top;position:relative;top:.15em;margin-left:1px;color:var(--ink-2);}
.rows .v{color:var(--ink-2);max-width:60ch;}
@media (max-width:640px){.rows li{grid-template-columns:5ch 1fr;} .rows .v{grid-column:2;}}

/* timeline */
.tl{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:clamp(40px,6vh,72px);border-top:1px solid var(--line-2);}
.tl div{padding:22px 24px 0 0;position:relative;}
.tl div::before{content:"";position:absolute;top:-1px;left:0;width:34px;height:2px;background:var(--cyan);}
.tl b{display:block;font-family:var(--mono);font-size:12px;letter-spacing:.1em;color:var(--ink);margin-bottom:8px;}
.tl span{color:var(--ink-2);font-size:14px;line-height:1.45;display:block;max-width:26ch;}
@media (max-width:760px){.tl{grid-template-columns:1fr 1fr;row-gap:28px;}}

/* stages */
.stages{display:grid;grid-template-columns:repeat(7,1fr);gap:0;margin-top:clamp(40px,6vh,72px);border-top:1px solid var(--line-2);}
.stages div{padding:20px 16px 0 0;}
.stages b{display:block;font-family:var(--head);font-weight:500;font-size:clamp(16px,1.3vw,20px);letter-spacing:-.01em;}
.stages span{display:block;color:var(--ink-3);font-size:12.5px;margin-top:6px;line-height:1.4;}
.stages div:last-child{border-left:1px solid var(--orange);padding-left:16px;}
.stages div:last-child b{color:var(--orange);}
@media (max-width:980px){.stages{grid-template-columns:repeat(4,1fr);row-gap:24px;} .stages div:last-child{grid-column:1 / -1;border-left:0;padding-left:0;border-top:1px solid var(--orange);padding-top:16px;}}
@media (max-width:560px){.stages{grid-template-columns:repeat(2,1fr);}}

/* lab */
.lab{background:var(--ground-2);position:relative;overflow:hidden;min-height:100svh;display:flex;align-items:center;}
.lab::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 60% 70% at 85% 50%,color-mix(in srgb,var(--violet) 16%,transparent),transparent 70%);pointer-events:none;}
.lab .inner{position:relative;width:100%;max-width:var(--max);margin:0 auto;padding:clamp(96px,16vh,200px) var(--gutter);display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(32px,5vw,80px);align-items:end;}
.lab .num{color:var(--violet);}
.lab .num::after{background:var(--violet);opacity:.5;}
.lab h2{color:var(--ink);max-width:7.25em;font-size:clamp(40px,6.4vw,104px);letter-spacing:-.04em;}
.lab h2 span{display:block;color:var(--violet);}
.lab p{color:var(--ink-2);max-width:40ch;}
.lab .mark{font-family:var(--mono);font-size:12px;letter-spacing:.24em;color:var(--violet);margin-top:40px;display:block;}
.lab .right{padding-top:24px;border-top:1px solid var(--violet);}
.lab .btn{background:var(--violet);margin-top:32px;}
.lab .tele{margin-top:0;border-top:0;border-bottom:0;grid-template-columns:1fr 1fr;}
.lab .tele div{padding:0 0 22px 0;border-left:0;}
.lab .tele b{font-size:clamp(34px,3.6vw,56px);}
@media (max-width:760px){.lab .inner{grid-template-columns:1fr;} .lab{min-height:0;}}
@media (max-width:760px){.lab .inner{grid-template-columns:1fr;}}

/* contact */
.contact h2{max-width:9.66em;}
.btn{display:inline-block;margin-top:clamp(32px,5vh,56px);padding:16px 26px;background:var(--orange);color:#0E1524;font-family:var(--head);font-weight:500;font-size:17px;letter-spacing:-.01em;text-decoration:none;}
.btn:hover{filter:brightness(1.08);}
footer{max-width:var(--max);margin:0 auto;padding:32px var(--gutter) 56px;display:flex;flex-wrap:wrap;gap:12px 32px;border-top:1px solid var(--line);color:var(--ink-3);font-size:13px;}

/* vault diagram */
.vault{margin-top:clamp(48px,8vh,96px);border-top:1px solid var(--line-2);padding-top:28px;}
.vault svg{width:100%;max-width:980px;display:block;}
.cases{display:grid;grid-template-columns:repeat(5,1fr);gap:0;margin-top:clamp(40px,6vh,72px);border-top:1px solid var(--violet);}
.cases div{padding:20px 20px 0 0;}
.cases b{display:block;font-family:var(--head);font-weight:500;font-size:15px;letter-spacing:-.01em;margin-bottom:10px;}
.cases ul{list-style:none;margin:0;padding:0;}
.cases li{font-size:13px;color:var(--ink-2);padding:5px 0;border-top:1px solid var(--line);line-height:1.4;}
.cases li:first-child{border-top:0;}
@media (max-width:980px){.cases{grid-template-columns:repeat(3,1fr);row-gap:24px;}}
@media (max-width:620px){.cases{grid-template-columns:1fr 1fr;}}
.lab .tele{margin-top:clamp(40px,6vh,72px);border-color:var(--line);}
.lab .inner.wide{display:block;}

/* team */
.team{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(24px,3vw,48px);margin-top:clamp(48px,8vh,96px);}
.team div{border-top:1px solid var(--line-2);padding-top:18px;}
.team b{display:block;font-family:var(--head);font-weight:500;font-size:clamp(20px,1.8vw,26px);letter-spacing:-.02em;line-height:1.15;}
.team span{display:block;color:var(--ink-2);margin-top:8px;font-size:15px;}
.team p{color:var(--ink-2);font-size:14px;line-height:1.5;margin-top:14px;max-width:34ch;}
@media (max-width:900px){.team{grid-template-columns:1fr 1fr;}}
@media (max-width:540px){.team{grid-template-columns:1fr;}}

/* source map */
.srcmap{margin-top:clamp(56px,9vh,110px);border-top:1px solid var(--line-2);padding-top:28px;}
.srchead{display:grid;grid-template-columns:1fr auto;gap:24px;align-items:end;margin-bottom:24px;}
.srchead h3{font-size:clamp(20px,1.8vw,26px);letter-spacing:-.02em;}
.srchead p{color:var(--ink-2);margin-top:12px;max-width:62ch;}
.reg{font-family:var(--mono);font-size:12px;letter-spacing:.04em;color:var(--teal);text-decoration:none;white-space:nowrap;border:1px solid color-mix(in srgb,var(--teal) 40%,transparent);padding:10px 14px;}
.reg:hover{color:var(--ink);border-color:var(--teal);}
.srcmap svg{width:100%;max-width:980px;display:block;}
.srcmap .tier{transform-box:fill-box;transform-origin:center;transform:scale(0);opacity:0;}
.srcmap .tier .tl{fill:var(--ink-3);font-size:11px;}
.srcmap.go .tier{animation:pop .7s cubic-bezier(.2,.9,.2,1.1) var(--d) forwards;}
@keyframes pop{to{transform:scale(1);opacity:1}}
.srcmap .mono{display:block;margin-top:14px;}
.badge{display:inline-block;font-family:var(--mono);font-size:10px;letter-spacing:.08em;border:1px solid var(--line-2);padding:1px 6px;color:var(--ink-3);margin-left:6px;}
@media (max-width:760px){.srchead{grid-template-columns:1fr;} .reg{justify-self:start;white-space:normal;}}
@media (prefers-reduced-motion:reduce){.srcmap .tier{transform:none;opacity:1;animation:none;}}

/* modules stagger */
.rows li{opacity:0;transform:translateY(8px);transition:opacity .5s ease,transform .5s ease;}
.rows.go li{opacity:1;transform:none;}
.rows.go li:nth-child(1){transition-delay:0s}.rows.go li:nth-child(2){transition-delay:.08s}.rows.go li:nth-child(3){transition-delay:.16s}.rows.go li:nth-child(4){transition-delay:.24s}.rows.go li:nth-child(5){transition-delay:.32s}
@media (prefers-reduced-motion:reduce){.rows li{opacity:1;transform:none;transition:none;}}

/* vault animation */
.vault .v-wall{stroke-dasharray:1520;stroke-dashoffset:1520;}
.vault .v-inner,.vault .v-link,.vault .v-box,.vault .v-t,.vault .v-lbl,.vault .v-foot,.vault .v-in,.vault .v-in-head,.vault .v-out,.vault .v-out-head{opacity:0;}
.vault .v-in{stroke-dasharray:260;stroke-dashoffset:260;}
.vault .v-out{stroke-dasharray:180;stroke-dashoffset:180;}
.vault .v-dot{opacity:0;}
.vault.go .v-wall{animation:vdraw 1.1s cubic-bezier(.3,0,.2,1) forwards;}
.vault.go .v-inner{animation:vfade .5s ease .9s forwards;}
.vault.go .v-in{opacity:1;animation:vin .7s cubic-bezier(.3,0,.2,1) 1.1s forwards;}
.vault.go .v-in-head,.vault.go .v-lbl-in{animation:vfade .3s ease 1.7s forwards;}
.vault.go .v-box:nth-of-type(1){animation:vfade .4s ease 1.6s forwards;}
.vault.go .v-box:nth-of-type(2){animation:vfade .4s ease 1.85s forwards;}
.vault.go .v-box:nth-of-type(3){animation:vfade .4s ease 2.1s forwards;}
.vault.go .v-box:nth-of-type(4){animation:vfade .4s ease 2.35s forwards;}
.vault.go .v-t:nth-of-type(1){animation:vfade .4s ease 1.75s forwards;}
.vault.go .v-t:nth-of-type(2){animation:vfade .4s ease 2s forwards;}
.vault.go .v-t:nth-of-type(3){animation:vfade .4s ease 2.25s forwards;}
.vault.go .v-t:nth-of-type(4){animation:vfade .4s ease 2.5s forwards;}
.vault.go .v-link{animation:vfade .4s ease 2.3s forwards;}
.vault.go .v-out{opacity:1;animation:vout .6s cubic-bezier(.3,0,.2,1) 2.7s forwards;}
.vault.go .v-out-head,.vault.go .v-lbl-out{animation:vfade .3s ease 3.2s forwards;}
.vault.go .v-foot{animation:vfade .6s ease 3.3s forwards;}
.vault.go .v-dot{animation:vfade .3s ease 3.4s forwards;}
@keyframes vdraw{to{stroke-dashoffset:0}}
@keyframes vin{to{stroke-dashoffset:0}}
@keyframes vout{to{stroke-dashoffset:0}}
@keyframes vfade{to{opacity:1}}
@media (prefers-reduced-motion:reduce){
  .vault .v-wall{stroke-dashoffset:0;} .vault .v-in,.vault .v-out{stroke-dashoffset:0;}
  .vault .v-inner,.vault .v-link,.vault .v-box,.vault .v-t,.vault .v-lbl,.vault .v-foot,.vault .v-in,.vault .v-in-head,.vault .v-out,.vault .v-out-head{opacity:1;}
  .vault.go *{animation:none !important;} .vault .v-dot{display:none;}
}

/* governance block */
.govern{margin-top:clamp(72px,11vh,130px);border-top:1px solid var(--line-2);padding-top:clamp(32px,5vh,56px);}
.govtop{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,80px);align-items:start;margin-bottom:clamp(40px,6vh,72px);}
.govhead{max-width:60ch;}
.govhead h3{font-size:clamp(26px,3vw,40px);letter-spacing:-.03em;line-height:1.1;}
.govhead p{color:var(--ink-2);margin-top:16px;}
.sig{width:100%;max-width:320px;margin-top:28px;display:block;}
.sig .sigline{fill:none;stroke:var(--orange);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:900;stroke-dashoffset:900;}
.sig .sigrule{stroke:var(--line-2);}
.sig .sigtxt{font-family:var(--mono);font-size:9px;letter-spacing:.14em;fill:var(--ink-3);opacity:0;}
.govern.go .sigline{animation:sigdraw 2.2s cubic-bezier(.4,0,.2,1) .4s forwards;}
.govern.go .sigtxt{animation:vfade .5s ease 2.6s forwards;}
@keyframes sigdraw{to{stroke-dashoffset:0}}
.audit{border:1px solid var(--line-2);background:var(--ground-2);font-family:var(--mono);font-size:12px;display:flex;flex-direction:column;min-height:260px;}
.audit .bar{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;border-bottom:1px solid var(--line);color:var(--ink-3);font-size:11px;letter-spacing:.1em;}
.audit .bar i{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--teal);margin-right:8px;vertical-align:middle;animation:blink 2s infinite;}
.audit ol{list-style:none;margin:0;padding:10px 16px;flex:1;}
.audit li{display:grid;grid-template-columns:9ch 1fr auto;gap:14px;padding:6px 0;border-top:1px solid var(--line);color:var(--ink-2);opacity:0;transform:translateY(6px);animation:vlog .4s ease forwards;}
.audit li:first-child{border-top:0;}
.audit li .t{color:var(--ink-3);}
.audit li .w{color:var(--ink);}
.audit li.ok .s{color:var(--teal);}
.audit li.sign .s{color:var(--orange);}
.audit .foot{padding:8px 16px 10px;color:var(--ink-3);font-size:11px;border-top:1px solid var(--line);}
@keyframes vlog{to{opacity:1;transform:none}}
.govcols .col{opacity:0;transform:translateY(10px);transition:opacity .5s ease,transform .5s ease;}
.govern.go .govcols .col{opacity:1;transform:none;}
.govern.go .govcols .col:nth-child(1){transition-delay:.2s}.govern.go .govcols .col:nth-child(2){transition-delay:.35s}.govern.go .govcols .col:nth-child(3){transition-delay:.5s}.govern.go .govcols .col:nth-child(4){transition-delay:.65s}
.govern .col .btn{margin-top:22px;padding:12px 18px;font-size:15px;}
@media (max-width:900px){.govtop{grid-template-columns:1fr;}}
@media (prefers-reduced-motion:reduce){.sig .sigline{stroke-dashoffset:0;animation:none;} .sig .sigtxt{opacity:1;animation:none;} .audit li{opacity:1;transform:none;animation:none;} .govcols .col{opacity:1;transform:none;transition:none;} .audit .bar i{animation:none;}}

/* point of view + terms */
.pov .num{color:var(--orange);}
.pov .num::after{background:var(--orange);opacity:.6;}
.terms{list-style:none;margin:clamp(40px,6vh,72px) 0 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line-2);border-left:1px solid var(--line);}
.terms li{padding:22px 22px 24px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);}
.terms b{display:block;font-family:var(--head);font-weight:500;font-size:clamp(17px,1.4vw,21px);letter-spacing:-.015em;margin-bottom:8px;}
.terms span{color:var(--ink-2);font-size:14px;line-height:1.5;display:block;max-width:30ch;}
@media (max-width:900px){.terms{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.terms{grid-template-columns:1fr;}}
/* turnaround */
.turn{margin-top:clamp(56px,9vh,110px);}
.turnhead{max-width:60ch;}
.turnhead h3{font-size:clamp(20px,1.8vw,26px);letter-spacing:-.02em;}
.turnhead p{color:var(--ink-2);margin-top:12px;}
.turnrows{margin-top:clamp(24px,4vh,40px);}
/* positions */
.posgrid{display:grid;grid-template-columns:1fr 1fr;gap:0;margin-top:clamp(48px,8vh,96px);border-top:1px solid var(--line-2);border-left:1px solid var(--line);}
.pos{padding:28px 28px 32px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);}
.pos .mono{display:block;margin-bottom:14px;}
.pos h3{font-size:clamp(20px,1.9vw,27px);letter-spacing:-.02em;max-width:22ch;}
.pos p{color:var(--ink-2);margin-top:14px;max-width:52ch;}
@media (max-width:760px){.posgrid{grid-template-columns:1fr;}}

/* top nav: appears after the hero */
.topnav{position:fixed;top:env(safe-area-inset-top,0px);left:0;right:0;z-index:26;background:color-mix(in srgb,var(--ground) 78%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line);}
.topnav-in{max-width:var(--max);margin:0 auto;padding:0 var(--gutter);height:56px;display:flex;align-items:center;gap:28px;}
.tn-logo{display:flex;align-items:center;}
.tn-logo .logo.tn{height:22px;width:auto;display:block;}
.topnav ul{list-style:none;margin:0 0 0 auto;padding:0;display:flex;gap:4px;}
.topnav li a{display:flex;align-items:center;gap:8px;padding:8px 12px;text-decoration:none;color:var(--ink-2);font-family:var(--text);font-size:13px;letter-spacing:.01em;border-bottom:1px solid transparent;transition:color .2s,border-color .2s;}
.topnav li a span{font-family:var(--mono);font-size:10px;color:var(--ink-3);letter-spacing:.08em;}
.topnav li a:hover{color:var(--ink);}
.topnav li a.on{color:var(--ink);border-bottom-color:var(--orange);}
.topnav li a.tn-lab{color:var(--violet);}
.topnav li a.tn-lab::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--violet);box-shadow:0 0 0 3px color-mix(in srgb,var(--violet) 25%,transparent);}
.topnav li a.tn-lab.on{border-bottom-color:var(--violet);}
.tn-cta{font-family:var(--head);font-weight:500;font-size:13px;text-decoration:none;color:#0E1524;background:var(--orange);padding:8px 14px;white-space:nowrap;}
.tn-menu{display:none;margin-left:auto;background:none;border:1px solid var(--line-2);color:var(--ink);font:inherit;font-size:13px;padding:7px 12px;cursor:pointer;}
@media (max-width:1100px){
  .topnav ul{display:none;position:absolute;left:0;right:0;top:56px;flex-direction:column;gap:0;background:var(--ground);border-bottom:1px solid var(--line);padding:8px var(--gutter) 12px;}
  .topnav ul.open{display:flex;}
  .topnav li a{padding:12px 0;border-bottom:1px solid var(--line);font-size:15px;}
  .topnav li a.on{border-bottom-color:var(--orange);}
  .tn-menu{display:block;}
  .tn-cta{display:none;}
}
@media (prefers-reduced-motion:reduce){.topnav{transition:none;}}

/* reveal: one per section */
.r{opacity:0;transform:translateY(14px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.6,.2,1);}
.r.on{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){.r{opacity:1;transform:none;transition:none;}}

/* ===== elevation layer ===== */
::selection{background:var(--orange);color:#0E1524;}
html{scrollbar-color:var(--line-2) transparent;}
::-webkit-scrollbar{width:10px;height:10px;}
::-webkit-scrollbar-thumb{background:var(--line-2);border:3px solid var(--ground);border-radius:8px;}
::-webkit-scrollbar-track{background:transparent;}
a,button{transition:color .2s ease,border-color .2s ease,background-color .2s ease,opacity .2s ease;}
.btn,.tn-cta,.reg{position:relative;overflow:hidden;}
.btn::after,.tn-cta::after{content:"";position:absolute;inset:0;background:#fff;opacity:0;transition:opacity .2s;}
.btn:hover::after,.tn-cta:hover::after{opacity:.12;}

/* hero */
.hero{position:relative;overflow:hidden;}
.hero .glow{position:absolute;right:-10%;top:calc((100svh - 56px) * -.2);width:60vw;height:60vw;max-width:900px;max-height:900px;border-radius:50%;background:radial-gradient(circle at center,rgba(255,255,255,.10),rgba(255,255,255,.035) 35%,transparent 65%);pointer-events:none;filter:blur(2px);}
.hero h1 .l{display:block;}
.hero h1 em{font-style:normal;}
.hero h1 span.l{color:var(--ink-3);}
.hero .l{opacity:0;transform:translateY(22px);animation:rise .9s cubic-bezier(.2,.7,.1,1) calc(.08s + var(--i) * .11s) forwards;}
.hero .trust.l{animation-delay:.9s;}
.hero .cue.l{animation-delay:1.3s;}
@keyframes rise{to{opacity:1;transform:none}}
.cue{position:absolute;left:var(--gutter);bottom:28px;display:flex;align-items:center;gap:12px;font-family:var(--mono);font-size:11px;letter-spacing:.2em;color:var(--ink-3);}
.cue i{display:block;width:1px;height:40px;background:linear-gradient(var(--ink-3),transparent);position:relative;overflow:hidden;}
.cue i::after{content:"";position:absolute;left:0;top:-40px;width:1px;height:40px;background:var(--orange);animation:drip 2.2s ease-in-out infinite;}
@keyframes drip{to{top:40px}}
@media (max-width:760px){.cue{display:none;}}
@media (prefers-reduced-motion:reduce){.hero .l{opacity:1;transform:none;animation:none;} .cue i::after{animation:none;}}

/* ghost numerals */
.sec[data-n]{position:relative;}
.sec[data-n]::before{content:attr(data-n);position:absolute;right:var(--gutter);top:clamp(40px,6vh,80px);font-family:var(--head);font-weight:500;font-size:clamp(120px,22vw,360px);line-height:1;letter-spacing:-.06em;color:var(--ink);opacity:.035;pointer-events:none;user-select:none;}
.sec[data-n] > *{position:relative;}
@media (max-width:760px){.sec[data-n]::before{font-size:140px;top:20px;opacity:.03;}}

/* num rows */
.num{align-items:center;}
.num::after{height:1px;}

/* vault boxes */
.demo{position:relative;box-shadow:0 30px 80px -40px rgba(0,0,0,.6);}
.demo::before,.demo::after{content:"";position:absolute;width:10px;height:10px;border-color:var(--ink-3);border-style:solid;pointer-events:none;}
.demo::before{left:-1px;top:-1px;border-width:1px 0 0 1px;}
.demo::after{right:-1px;bottom:-1px;border-width:0 1px 1px 0;}
.demo .bar{position:relative;}
.demo .prog{position:absolute;left:0;bottom:-1px;height:1px;width:0;background:var(--teal);opacity:.9;}
.demo .out h4{letter-spacing:-.02em;}
.demo .act{background:color-mix(in srgb,var(--orange) 6%,transparent);}

/* columns + terms + rows hover */
.col{transition:border-color .3s ease;}
.acc .col:hover{border-top-color:var(--a);}
.terms li{transition:background-color .25s ease,border-color .25s ease;}
.terms li:hover{background:color-mix(in srgb,var(--orange) 5%,transparent);}
.rows li{transition:background-color .2s ease;}
.rows li:hover{background:color-mix(in srgb,var(--ink) 3%,transparent);}

/* telemetry */
.tele b{background:linear-gradient(180deg,var(--ink),color-mix(in srgb,var(--ink) 65%,transparent));-webkit-background-clip:text;background-clip:text;color:transparent;}

/* lab breathing glow */
.lab::before{animation:breathe 9s ease-in-out infinite;}
@keyframes breathe{0%,100%{opacity:.75;transform:scale(1)}50%{opacity:1;transform:scale(1.06)}}
@media (prefers-reduced-motion:reduce){.lab::before{animation:none;}}

/* team */
.team{gap:0;border-left:1px solid var(--line);}
.team div{border-top:1px solid var(--line-2);padding:22px 24px 30px;border-right:1px solid var(--line);}
.team b{font-size:clamp(22px,2vw,28px);}
.team span{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);margin-top:10px;}
.team p{max-width:36ch;}

/* contact */
.bigmail{display:inline-flex;align-items:center;gap:18px;margin-top:clamp(32px,5vh,56px);font-family:var(--head);font-weight:500;font-size:clamp(22px,3.6vw,54px);letter-spacing:-.03em;text-decoration:none;color:var(--ink);border-bottom:1px solid var(--line-2);padding-bottom:10px;}
.bigmail svg{width:.8em;height:.8em;color:var(--orange);transition:transform .3s cubic-bezier(.2,.7,.2,1);}
.bigmail:hover{border-bottom-color:var(--orange);}
.bigmail:hover svg{transform:translateX(8px);}
@media (max-width:560px){.bigmail{font-size:20px;gap:10px;word-break:break-all;}}

/* footer */
footer .fgrid{display:grid;grid-template-columns:auto 1fr auto;gap:18px 40px;align-items:center;width:100%;}
footer .fco{grid-column:1 / -1;color:var(--ink-3);}
@media (max-width:860px){footer .fgrid{grid-template-columns:1fr;}}

/* back to top */
.totop{position:fixed;right:clamp(16px,2.5vw,32px);bottom:clamp(16px,2.5vw,32px);width:44px;height:44px;border:1px solid var(--line-2);background:color-mix(in srgb,var(--ground) 80%,transparent);backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;color:var(--ink-2);opacity:0;transform:translateY(8px);pointer-events:none;z-index:24;}
.totop svg{width:18px;height:18px;}
.totop.show{opacity:1;transform:none;pointer-events:auto;}
.totop:hover{color:var(--ink);border-color:var(--orange);}

/* nav underline */
.topnav li a{position:relative;border-bottom:0;}
.topnav li a::after{content:"";position:absolute;left:12px;right:12px;bottom:4px;height:1px;background:var(--orange);transform:scaleX(0);transform-origin:left;transition:transform .3s cubic-bezier(.2,.7,.2,1);}
.topnav li a.on::after{transform:scaleX(1);}
.topnav li a.tn-lab::after{background:var(--violet);}

/* hero box */
.hero .top{grid-template-columns:1.05fr .95fr;}
.hero-demo{min-height:320px;}
/* Reserve the tallest scene from first paint (the script refines this), so the hero never jumps while loading. */
.hero-demo .in{min-height:70px;}
.hero-demo .out{min-height:262px;}
@media (max-width:599px){.hero-demo .out{min-height:310px;}}
@media (max-width:359px){.hero-demo .out{min-height:360px;}}
@media (max-width:900px){.hero .top{grid-template-columns:1fr;}}

/* compare */
.compare{margin-top:clamp(40px,6vh,72px);border-top:1px solid var(--line-2);}
.cmphead{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:18px 0;border-bottom:1px solid var(--line);}
.switch{display:inline-flex;border:1px solid var(--line-2);padding:3px;gap:3px;}
.sw{font:inherit;font-family:var(--head);font-weight:500;font-size:13px;letter-spacing:-.01em;background:transparent;border:0;color:var(--ink-2);padding:8px 16px;cursor:pointer;transition:background-color .25s,color .25s;}
.sw[aria-pressed="true"]{background:var(--ink);color:#0E1524;}
.compare.new .sw[data-side="new"][aria-pressed="true"]{background:var(--orange);}
.cmp{list-style:none;margin:0;padding:0;}
.cmp li{display:grid;grid-template-columns:12ch 1fr;gap:24px;padding:20px 0;border-bottom:1px solid var(--line);align-items:baseline;position:relative;min-height:72px;}
.cmp .k{font-family:var(--mono);font-size:11px;letter-spacing:.12em;color:var(--ink-3);text-transform:uppercase;padding-top:4px;}
.cmp .old,.cmp .new{grid-column:2;grid-row:1;max-width:62ch;transition:opacity .45s ease,transform .45s cubic-bezier(.2,.7,.2,1);}
.cmp .old{color:var(--ink-3);text-decoration:line-through;text-decoration-color:color-mix(in srgb,var(--orange) 70%,transparent);text-decoration-thickness:1px;}
.cmp .new{color:var(--ink-2);opacity:0;transform:translateY(10px);pointer-events:none;}
.cmp .new b{color:var(--ink);font-weight:500;display:block;margin-bottom:2px;}
.compare.new .cmp .old{opacity:0;transform:translateY(-10px);pointer-events:none;}
.compare.new .cmp .new{opacity:1;transform:none;pointer-events:auto;}
.compare.new .cmp li:nth-child(1) .new{transition-delay:.05s}.compare.new .cmp li:nth-child(2) .new{transition-delay:.12s}.compare.new .cmp li:nth-child(3) .new{transition-delay:.19s}.compare.new .cmp li:nth-child(4) .new{transition-delay:.26s}.compare.new .cmp li:nth-child(5) .new{transition-delay:.33s}
.cmpnote{display:block;margin-top:14px;}
@media (max-width:640px){.cmp li{grid-template-columns:1fr;gap:6px;} .cmp .old,.cmp .new{grid-column:1;grid-row:2;}}
@media (prefers-reduced-motion:reduce){.cmp .old,.cmp .new{transition:none;}}

/* Legal section: contained, readable and accessible accordions */
.legal{border-top:1px solid var(--line);background:var(--ground-2);}
.legal>.inner{max-width:var(--max);margin:0 auto;padding:clamp(48px,7vh,88px) var(--gutter);}
.legal .num{margin-bottom:22px;}
.legal details{border-top:1px solid var(--line-2);}
.legal details:last-child{border-bottom:1px solid var(--line-2);}
.legal summary{display:flex;align-items:center;justify-content:space-between;gap:20px;cursor:pointer;list-style:none;padding:20px 0;}
.legal summary::-webkit-details-marker{display:none;}
.legal summary::after{content:'+';font:400 24px/1 var(--head);color:var(--orange);}
.legal details[open] summary::after{content:'−';}
.legal summary h3{font-size:clamp(18px,2vw,24px);}
.legal .body{max-width:80ch;padding:0 0 32px;color:var(--ink-2);font-size:14px;line-height:1.7;overflow-wrap:anywhere;}
.legal .body p{margin:0 0 16px;}
.legal .body h4{font-family:var(--head);font-size:17px;font-weight:500;color:var(--ink);margin:28px 0 10px;line-height:1.35;}
.legal .body a{color:var(--teal);text-underline-offset:3px;}
.legal .body strong{color:var(--ink);font-weight:600;}
/* Keep the footer on the page grid, and let links wrap rather than overflow. */
footer .fgrid{grid-template-columns:auto minmax(0,1fr) auto;gap:18px 32px;}
footer .fgrid>span{min-width:0;}
footer .legal-links{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px 20px;}
footer .legal-links a{color:var(--ink-2);text-decoration:none;white-space:nowrap;}
footer .legal-links a:hover{text-decoration:underline;color:var(--ink);}
footer .fco{overflow-wrap:anywhere;line-height:1.5;}
@media(max-width:1000px){footer .fgrid{grid-template-columns:auto minmax(0,1fr);}footer .legal-links{grid-column:1 / -1;justify-content:flex-start;}}
@media(max-width:620px){footer .fgrid{grid-template-columns:minmax(0,1fr);gap:14px;}footer .legal-links{grid-column:auto;gap:10px 18px;}footer{padding-bottom:calc(48px + env(safe-area-inset-bottom,0px));}}
/* Avoid mobile SVG/text running beyond the viewport. */
.sec,.lab .inner,.legal>.inner{min-width:0;}
@media(max-width:640px){.demo .row{grid-template-columns:minmax(0,1fr) auto;}.demo .row>div{min-width:0;overflow-wrap:anywhere;}.demo .row span{max-width:112px;text-align:right;overflow-wrap:anywhere;}.trust{min-width:0;}}
