/* cyrillic-ext */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("assets/fonts/asset_3.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("assets/fonts/asset_4.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("assets/fonts/asset_5.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("assets/fonts/asset_6.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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("assets/fonts/asset_7.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;
}
/* cyrillic-ext */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("assets/fonts/asset_8.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("assets/fonts/asset_9.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("assets/fonts/asset_10.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("assets/fonts/asset_11.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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("assets/fonts/asset_12.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;
}
/* cyrillic-ext */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("assets/fonts/asset_13.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("assets/fonts/asset_14.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("assets/fonts/asset_15.woff2") format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("assets/fonts/asset_16.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("assets/fonts/asset_17.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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("assets/fonts/asset_18.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;
}
/* cyrillic-ext */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url("assets/fonts/asset_13.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url("assets/fonts/asset_14.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url("assets/fonts/asset_15.woff2") format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url("assets/fonts/asset_16.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url("assets/fonts/asset_17.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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url("assets/fonts/asset_18.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;
}
/* cyrillic-ext */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url("assets/fonts/asset_13.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url("assets/fonts/asset_14.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url("assets/fonts/asset_15.woff2") format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url("assets/fonts/asset_16.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url("assets/fonts/asset_17.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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url("assets/fonts/asset_18.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;
}
/* vietnamese */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("assets/fonts/asset_19.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("assets/fonts/asset_20.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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("assets/fonts/asset_21.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;
}
/* vietnamese */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("assets/fonts/asset_19.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("assets/fonts/asset_20.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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("assets/fonts/asset_21.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;
}
/* vietnamese */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("assets/fonts/asset_19.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("assets/fonts/asset_20.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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("assets/fonts/asset_21.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;
}
/* vietnamese */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("assets/fonts/asset_19.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("assets/fonts/asset_20.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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("assets/fonts/asset_21.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;
}


  /* Dark, serious, governance / security-first palette. The whole site is
     token-driven, so the theme lives here. Warm off-white on near-black warm
     ink, a bright-teal trust accent, raspberry used sparingly, restrained
     rules and glows. */
  :root{
    --ground:#141110; --panel:#1E1917; --panel-2:#272120; --edge:#332C29; --edge-strong:#473E39;
    --body:#F2ECE4; --muted:#A79C90; --rasp:#E0607C; --teal:#54B7B3; --ok:#5BB683; --warn:#D3A24A;
    --err:#E86A61; --violet:#A48CE8;
    --shadow:0 18px 48px rgba(0,0,0,.55); --shadow-sm:0 6px 20px rgba(0,0,0,.4);
    --disp:"Space Grotesk",system-ui,sans-serif; --sans:"IBM Plex Sans",system-ui,sans-serif; --mono:"IBM Plex Mono",ui-monospace,monospace;
  }
  html{scroll-behavior:smooth;scrollbar-gutter:stable both-edges;}
  *{box-sizing:border-box;}
  body{margin:0;background:var(--ground);background-image:radial-gradient(1100px 620px at 50% -260px,rgba(224,96,124,.07),rgba(20,17,16,0) 60%);color:var(--body);font-family:var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden;}
  h1,h2,h3{text-wrap:balance;}
  a{color:var(--teal);text-decoration:none;transition:color .2s;}
  a:hover{color:var(--rasp);}
  ::selection{background:rgba(84,183,179,.28);color:#fff;}
  @keyframes ovBlink{0%,49%{opacity:1}50%,100%{opacity:0}}
  @keyframes ovFloat{0%{transform:translateY(0)}50%{transform:translateY(-10px)}100%{transform:translateY(0)}}
  @keyframes ovDot{from{offset-distance:0%}to{offset-distance:100%}}
  @keyframes ovPulse{0%,100%{opacity:.35}50%{opacity:.9}}

  /* Sober reveal-on-scroll for section content (respects reduced motion). */
  .ov-reveal{opacity:0;transform:translateY(16px);transition:opacity .7s ease,transform .7s ease;}
  .ov-reveal.in{opacity:1;transform:none;}
  @media (prefers-reduced-motion: reduce){ .ov-reveal{opacity:1;transform:none;transition:none;} }

/* ---- book-a-demo modal + buttons ---- */
.ov-modal{position:fixed;inset:0;z-index:1000;display:none;align-items:center;justify-content:center;padding:24px;}
.ov-modal.open{display:flex;}
.ov-modal__backdrop{position:absolute;inset:0;background:rgba(0,0,0,.62);backdrop-filter:blur(4px);}
.ov-modal__card{position:relative;z-index:1;width:min(480px,100%);background:var(--panel);border:1px solid var(--edge-strong);border-radius:16px;padding:32px;box-shadow:0 32px 80px rgba(0,0,0,.6);animation:ovModalIn .22s ease;}
@keyframes ovModalIn{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}
.ov-modal__x{position:absolute;top:12px;right:16px;background:none;border:none;color:var(--muted);font-size:26px;line-height:1;cursor:pointer;padding:4px;}
.ov-modal__x:hover{color:var(--body);}
.ov-btn-primary{background:var(--rasp);color:#fff;font-weight:600;font-size:14px;padding:11px 20px;border-radius:9px;border:none;cursor:pointer;font-family:var(--sans);text-decoration:none;display:inline-block;}
.ov-btn-primary:hover{color:#fff;filter:brightness(1.06);}
.ov-btn-ghost{background:transparent;color:var(--body);font-weight:600;font-size:14px;padding:11px 20px;border-radius:9px;border:1px solid var(--edge-strong);cursor:pointer;font-family:var(--sans);}
.ov-demo-hook{cursor:pointer;}

/* ---- hero prompt console (Auto mode, enterprise chrome) ---- */
.ov-console-wrap{position:relative;width:min(720px,94vw);}
.ov-console-wrap::before{content:"";position:absolute;inset:-60px -46px;z-index:0;pointer-events:none;border-radius:28px;
  background:radial-gradient(680px 340px at 30% 6%,rgba(165,50,79,.055),transparent 62%),
             radial-gradient(620px 340px at 82% 98%,rgba(30,95,99,.06),transparent 62%);}
.ov-console{position:relative;z-index:2;border-radius:16px;border:1px solid var(--edge-strong);overflow:hidden;background:var(--panel);cursor:pointer;pointer-events:auto;
  transition:box-shadow .25s ease,transform .25s ease;
  box-shadow:0 1px 0 rgba(255,255,255,.06) inset,0 1px 2px rgba(45,33,22,.06),
             0 10px 18px -12px rgba(45,33,22,.16),0 36px 62px -34px rgba(45,33,22,.32);}
.ov-console:hover{transform:translateY(-2px);
  box-shadow:0 1px 0 rgba(255,255,255,.06) inset,0 1px 2px rgba(45,33,22,.06),
             0 14px 24px -12px rgba(45,33,22,.18),0 44px 72px -34px rgba(45,33,22,.36);}
.ov-tab,.ov-seg span,.ov-console__go{cursor:pointer;}
.ov-console__go:hover{filter:brightness(1.06);}
.ov-console__bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 13px;border-bottom:1px solid var(--edge);background:var(--panel-2);}
.ov-tabs{display:flex;align-items:center;gap:3px;}
.ov-tabs__mark{display:flex;align-items:center;color:var(--body);margin-right:7px;}
.ov-tab{font-size:12.5px;font-weight:600;color:var(--muted);padding:5px 12px;border-radius:7px;letter-spacing:-.01em;}
.ov-tab.on{background:var(--panel);color:var(--body);box-shadow:inset 0 0 0 1px var(--edge),0 1px 2px rgba(45,33,22,.06);}
.ov-seg{display:inline-flex;background:var(--panel-2);border:1px solid var(--edge);border-radius:8px;padding:2px;}
.ov-seg span{font-family:var(--mono);font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);padding:4px 9px;border-radius:6px;line-height:1;}
.ov-seg span.on{background:var(--panel);color:var(--teal);font-weight:600;box-shadow:0 1px 2px rgba(45,33,22,.14);}
.ov-console__body{padding:24px 22px 20px;}
.ov-console__label{font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:12px;}
.ov-console__prompt{font-size:clamp(19px,2.5vw,27px);font-weight:500;line-height:1.35;color:var(--body);letter-spacing:-.01em;min-height:1.35em;text-align:left;}
.ov-caret{display:inline-block;width:2px;height:1.05em;margin-left:2px;transform:translateY(2px);background:var(--rasp);border-radius:1px;animation:ovBlink 1.05s step-end infinite;}
.ov-console__foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 16px 13px 18px;border-top:1px solid var(--edge);background:var(--panel-2);}
.ov-console__hint{display:flex;align-items:center;gap:9px;font-size:12.5px;color:var(--muted);}
.ov-console__hint .ov-dot{width:7px;height:7px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 3px rgba(46,107,74,.14);}
.ov-console__go{display:inline-flex;align-items:center;gap:9px;background:var(--rasp);color:#fff;font-weight:600;font-size:13.5px;font-family:var(--sans);padding:9px 15px;border:none;border-radius:9px;cursor:default;box-shadow:0 8px 16px -9px rgba(165,50,79,.7);}
.ov-console__go kbd{font-family:var(--mono);font-size:11px;background:rgba(255,255,255,.24);border-radius:4px;padding:1px 6px;line-height:1.5;}
@media (prefers-reduced-motion: reduce){ .ov-caret{animation:none;} }
@media (max-width:520px){
  .ov-seg{display:none;}
  .ov-console__foot{flex-direction:column;align-items:stretch;}
  .ov-console__go{justify-content:center;}
}

/* ================= hero: 3D timeline ================= */
.ov-stage{position:sticky;top:0;height:100vh;overflow:hidden;display:flex;align-items:center;justify-content:center;
  perspective:1600px;perspective-origin:50% 44%;}
.ov-world{position:absolute;inset:0;transform-style:preserve-3d;will-change:transform;}
.ov-act{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:22px;transform-style:preserve-3d;will-change:opacity,transform;pointer-events:none;}
.ov-act__cap{margin-top:30px;font-size:13.5px;color:var(--muted);}
.ov-act__title{margin-top:14px;font-family:var(--disp);font-weight:600;font-size:clamp(22px,3.4vw,34px);letter-spacing:-.02em;text-align:center;max-width:840px;}
.ov-act__eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-bottom:18px;}

/* depth field (real 3D parallax) */
.ov-depth{position:absolute;inset:0;transform-style:preserve-3d;pointer-events:none;}
.ov-depth__n{position:absolute;left:var(--x);top:var(--y);width:62px;height:38px;border-radius:8px;border:1px solid var(--c);
  background:linear-gradient(180deg,var(--panel-2),var(--panel));transform:translateZ(var(--z));opacity:.3;box-shadow:0 10px 22px -10px rgba(0,0,0,.5);}
.ov-depth__n::before{content:"";position:absolute;left:8px;top:9px;width:7px;height:7px;border-radius:2px;background:var(--c);}
.ov-depth__n::after{content:"";position:absolute;left:23px;right:8px;top:10px;height:4px;border-radius:2px;background:rgba(255,255,255,.16);box-shadow:0 8px 0 rgba(255,255,255,.09);}

/* act 1: console thinking dots */
.ov-console__think{display:flex;align-items:center;gap:5px;margin-top:16px;font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);opacity:0;transition:opacity .3s;}
.ov-console__think span{width:5px;height:5px;border-radius:50%;background:var(--teal);animation:ovThink 1.1s ease-in-out infinite;}
.ov-console__think span:nth-child(2){animation-delay:.16s;}
.ov-console__think span:nth-child(3){animation-delay:.32s;margin-right:6px;}
@keyframes ovThink{0%,100%{opacity:.25;transform:translateY(0)}50%{opacity:1;transform:translateY(-3px)}}

/* act 2: the Mirror demonstration */
.ov-mirror{width:min(880px,94vw);display:flex;flex-direction:column;align-items:center;}
.ov-mirror__tags{display:flex;align-items:center;justify-content:space-between;width:100%;margin-bottom:14px;gap:10px;}
.ov-mirror__eyebrow{font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);}
.ov-tag{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;display:inline-flex;align-items:center;gap:8px;}
.ov-tag i{width:7px;height:7px;border-radius:50%;display:inline-block;}
.ov-tag--real{color:var(--body);} .ov-tag--real i{background:var(--rasp);}
.ov-tag--fake{color:var(--teal);} .ov-tag--fake i{background:var(--teal);}
.ov-mirror__panel{position:relative;width:100%;border-radius:16px;border:1px solid var(--edge-strong);background:var(--panel);overflow:hidden;padding:30px 26px 22px;
  box-shadow:0 1px 0 rgba(255,255,255,.06) inset,0 30px 60px -34px rgba(45,33,22,.3),0 8px 18px -12px rgba(45,33,22,.14);}
.ov-mirror__panel::before{content:"";position:absolute;top:0;bottom:0;left:50%;width:1px;transform:translateX(-50%);
  background:linear-gradient(180deg,transparent,rgba(165,50,79,.4) 22%,rgba(30,95,99,.36) 78%,transparent);}
.ov-mirror__stream{display:none;}
.ov-glass{position:absolute;top:8px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:6px;
  font-family:var(--mono);font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);
  background:var(--panel);padding:3px 10px;border-radius:999px;border:1px solid var(--edge);z-index:3;}
.ov-xform{position:relative;width:100%;display:flex;flex-direction:column;gap:2px;padding-top:8px;}
.ov-xform__row{display:grid;grid-template-columns:1fr 44px 1fr;align-items:center;gap:10px;padding:11px 12px;border-radius:8px;font-family:var(--mono);font-size:14px;}
.ov-xform__row:nth-child(odd):not(.ov-xform__row--head){background:rgba(255,255,255,.035);}
.ov-xform__row--head{background:none;padding:0 12px 8px;}
.ov-xform__side{font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);}
.ov-xform__side--fake{color:var(--teal);}
.ov-xform__left{display:flex;align-items:baseline;gap:12px;min-width:0;}
.ov-xform__f{flex:none;width:58px;color:var(--muted);font-size:10px;letter-spacing:.1em;text-transform:uppercase;}
.ov-xform__real{color:var(--body);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ov-xform__arw{color:var(--edge-strong);text-align:center;}
.ov-xform__fake{color:var(--teal);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-height:1.1em;}
.ov-ledger{display:flex;flex-wrap:wrap;align-items:center;gap:7px 16px;margin-top:18px;font-family:var(--mono);font-size:11.5px;color:var(--muted);border:1px dashed var(--edge-strong);border-radius:10px;padding:10px 16px;width:100%;box-sizing:border-box;}
.ov-ledger__k{color:var(--body);font-weight:600;letter-spacing:.03em;}
.ov-ledger__n{color:var(--ok);font-weight:700;}
.ov-ledger__dl{color:var(--teal);margin-left:auto;}

/* act 3: json contract */
.ov-json{width:min(640px,94vw);background:var(--panel);border:1px solid var(--edge-strong);border-radius:14px;padding:22px 26px;
  box-shadow:0 1px 0 rgba(255,255,255,.06) inset,0 26px 54px -30px rgba(45,33,22,.3);font-family:var(--mono);font-size:13.5px;line-height:1.72;}
.ov-json [data-jline]{opacity:0;}
.jp{color:#9a8b84;} .jk{color:var(--muted);} .jv{color:var(--body);}
.ov-json__ok{margin-top:16px;font-size:13px;color:var(--muted);display:flex;align-items:center;gap:8px;opacity:0;}
.ov-json__tick{color:var(--ok);font-weight:700;font-size:15px;}

/* act 4: pipeline */
.ov-pipe{position:absolute;left:50%;top:55%;width:1000px;height:400px;transform-style:preserve-3d;}
/* Act 4 title lives inside the pipe: centred directly above the workflow. */
.ov-pipe__title{position:absolute;top:-72px;left:-40px;right:-40px;margin:0 auto;padding:0;max-width:620px;text-align:center;z-index:6;font-size:clamp(19px,2.2vw,28px);}
.ov-pipe__wires{position:absolute;inset:0;overflow:visible;}
.ov-pipe__dots{position:absolute;inset:0;opacity:0;}
.ov-pipe__dots span{position:absolute;width:8px;height:8px;border-radius:50%;background:var(--violet);box-shadow:0 0 10px rgba(91,75,147,.7);}
.ov-node{position:absolute;width:158px;height:76px;border-radius:12px;background:var(--panel);border:1px solid var(--nc);padding:11px 13px;
  box-shadow:0 0 0 1px rgba(45,33,22,.03),0 18px 40px -18px rgba(45,33,22,.24);}
.ov-node__h{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:600;color:var(--body);}
.ov-node__d{width:8px;height:8px;border-radius:2px;background:var(--nc);}
.ov-node__m{font-family:var(--mono);font-size:11px;color:var(--muted);margin-top:9px;}
.ov-resultcard{position:absolute;width:322px;border-radius:12px;background:var(--panel-2);border:1px solid var(--edge);overflow:hidden;font-family:var(--mono);font-size:11.5px;
  box-shadow:0 16px 48px -16px rgba(45,33,22,.24);opacity:0;}
.ov-resultcard__h{display:flex;justify-content:space-between;padding:7px 12px;background:var(--panel);border-bottom:1px solid var(--edge);color:var(--muted);}
.ov-resultcard__r{display:flex;justify-content:space-between;padding:6px 12px;color:var(--body);}
.ov-resultcard__r--alt{background:rgba(255,255,255,.04);}
.ov-num{font-variant-numeric:tabular-nums;}

.ov-hint{position:absolute;left:50%;bottom:24px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:5px;color:var(--muted);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;pointer-events:none;}
.ov-hint__c{font-size:15px;animation:ovFloat 1.6s ease-in-out infinite;}

@media (max-width:600px){
  .ov-xform__row{grid-template-columns:1fr 26px 1fr;gap:7px;font-size:11px;padding:9px 8px;}
  .ov-xform__left{gap:8px;} .ov-xform__f{width:42px;font-size:9px;}
  .ov-ledger{font-size:10.5px;gap:6px 12px;}
  .ov-ledger__dl{margin-left:0;}
  .ov-pipe__title{top:-58px;font-size:16px;}
}
@media (prefers-reduced-motion: reduce){ .ov-console__think span{animation:none;} .ov-hint__c{animation:none;} }

/* ---- CTAs (Try the product = outlined raspberry, Book a demo = filled raspberry) ---- */
.ov-cta-demo,.ov-cta-explore{font-weight:700;border-radius:9px;text-decoration:none;display:inline-block;padding:13px 24px;font-size:15px;font-family:var(--sans);letter-spacing:-.005em;border:1.5px solid transparent;transition:background .15s ease,color .15s ease,filter .15s ease,transform .15s ease;}
.ov-cta-demo{background:var(--rasp);color:#fff;}
.ov-cta-demo:hover{color:#fff;filter:brightness(1.07);transform:translateY(-1px);}
.ov-cta-explore{background:transparent;color:var(--rasp);border-color:var(--rasp);}
.ov-cta-explore:hover{background:var(--rasp);color:#fff;transform:translateY(-1px);}
.ov-cta--sm{padding:9px 15px;font-size:13.5px;}
.ov-cta--lg{padding:15px 30px;font-size:16px;}

/* ---- deterministic engine section ---- */
.ov-engine{display:grid;grid-template-columns:1.4fr 1fr;gap:22px;align-items:start;}
.ov-engine__run{background:var(--ground);border:1px solid var(--edge-strong);border-radius:16px;padding:20px;box-shadow:0 1px 0 rgba(255,255,255,.05) inset,0 22px 46px -28px rgba(0,0,0,.5);}
.ov-engine__bar{display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin-bottom:16px;}
.ov-engine__flow{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:18px;}
.ov-step{display:inline-flex;align-items:center;gap:8px;background:var(--panel);border:1px solid var(--edge);border-left:3px solid var(--sc);border-radius:8px;padding:7px 11px;font-size:12.5px;font-weight:600;color:var(--body);}
.ov-step b{font-family:var(--mono);font-weight:500;font-size:11px;color:var(--muted);}
.ov-step__a{color:var(--edge-strong);}
.ov-engine__grid{display:grid;grid-template-columns:1.25fr 1fr;gap:14px;}
.ov-engine__result,.ov-engine__profile{background:var(--panel);border:1px solid var(--edge);border-radius:10px;font-family:var(--mono);font-size:12px;}
.ov-engine__result{overflow:hidden;}
.ov-engine__rh,.ov-engine__rr{display:grid;grid-template-columns:1fr 1fr 1.1fr;padding:7px 12px;}
.ov-engine__rh{background:var(--panel-2);color:var(--muted);border-bottom:1px solid var(--edge);}
.ov-engine__rr{color:var(--body);}
.ov-engine__rh span+span,.ov-engine__rr span+span{text-align:right;font-variant-numeric:tabular-nums;}
.ov-engine__profile{padding:13px 15px;}
.ov-engine__pt{font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:10px;}
.ov-engine__pr{display:flex;justify-content:space-between;padding:3px 0;color:var(--body);}
.ov-engine__pr span:first-child{color:var(--muted);}
.ov-runnum{font-variant-numeric:tabular-nums;}
.ov-engine__side{display:flex;flex-direction:column;gap:14px;}
.ov-engine__err{background:var(--ground);border:1px solid var(--err);border-radius:12px;padding:14px 16px;}
.ov-engine__eh{display:flex;align-items:center;gap:8px;font-weight:600;color:var(--err);font-size:13.5px;}
.ov-engine__em{font-family:var(--mono);font-size:12px;color:var(--muted);margin-top:8px;line-height:1.5;}
.ov-engine__em b{color:var(--body);font-weight:600;}
.ov-engine__pts{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:9px;font-size:14px;color:var(--body);line-height:1.4;}
.ov-engine__pts li{display:flex;gap:9px;}
.ov-engine__pts span{color:var(--ok);flex:none;font-weight:700;}
.ov-engine__tier{background:var(--ground);border:1px solid var(--edge);border-radius:12px;padding:16px;}
.ov-engine__tierhead{font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:10px;}
.ov-seg2{display:flex;gap:6px;background:var(--panel-2);padding:4px;border-radius:9px;}
.ov-seg2 button{flex:1;border:none;background:transparent;color:var(--muted);font-weight:600;font-size:12.5px;padding:7px;border-radius:6px;cursor:pointer;font-family:var(--sans);}
.ov-seg2 button.on{background:var(--rasp);color:#fff;}
.ov-engine__ledger{display:flex;justify-content:space-between;flex-wrap:wrap;gap:4px 10px;font-family:var(--mono);font-size:11px;color:var(--muted);margin-top:12px;}
.ov-engine__ledger b{font-weight:600;}
.ov-engine__tierdesc{color:var(--muted);font-size:12.5px;line-height:1.55;margin:10px 0 0;}
@media (max-width:820px){ .ov-engine{grid-template-columns:1fr;} .ov-engine__grid{grid-template-columns:1fr;} }

/* ---- mobile: no animated hero; the intro section IS the hero ---- */
@media (max-width:768px){
  [data-hero-wrap]{display:none!important;}
  /* The intro section leads the page and reads as the hero. */
  [data-intro]{padding:132px 24px 64px!important;min-height:88vh;display:flex;flex-direction:column;justify-content:center;}
}
@media (max-width:520px){
  nav{padding:11px 14px!important;}
  .ov-cta--sm{padding:7px 10px;font-size:11.5px;letter-spacing:-.01em;}
  [data-intro]{padding:120px 20px 56px!important;}
}

/* ---- legal pages ---- */
.legal-nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:14px 24px;backdrop-filter:blur(14px);background:rgba(20,17,16,.82);border-bottom:1px solid var(--edge);}
.legal-brand{display:flex;align-items:center;gap:.02em;color:var(--body);font-family:var(--disp);font-weight:600;font-size:19px;letter-spacing:-.02em;}
.legal{max-width:740px;margin:0 auto;padding:116px 24px 40px;}
.legal h1{font-family:var(--disp);font-weight:700;font-size:clamp(30px,5vw,44px);letter-spacing:-.02em;margin:0 0 8px;}
.legal .updated{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 36px;}
.legal h2{font-family:var(--disp);font-weight:600;font-size:21px;letter-spacing:-.01em;margin:38px 0 10px;color:var(--body);}
.legal h3{font-weight:600;font-size:15.5px;margin:22px 0 6px;color:var(--body);}
.legal p,.legal li{color:var(--muted);font-size:15.5px;line-height:1.72;}
.legal p{margin:10px 0;}
.legal ul{padding-left:20px;margin:10px 0;}
.legal li{margin:5px 0;}
.legal a{color:var(--teal);}
.legal strong{color:var(--body);font-weight:600;}
.legal .note{background:var(--panel-2);border:1px solid var(--edge);border-radius:10px;padding:14px 16px;font-size:13.5px;line-height:1.6;margin:22px 0;}
.legal-foot{border-top:1px solid var(--edge);padding:30px 24px;text-align:center;color:var(--muted);font-size:13px;}
.legal-foot a{color:var(--teal);margin:0 8px;}

/* ---- cookie notice ---- */
.ov-cookie{position:fixed;left:16px;right:16px;bottom:16px;z-index:900;max-width:640px;margin:0 auto;display:none;
  gap:14px;align-items:center;justify-content:space-between;flex-wrap:wrap;
  background:var(--panel);border:1px solid var(--edge-strong);border-radius:12px;padding:14px 18px;box-shadow:var(--shadow);}
.ov-cookie.show{display:flex;}
.ov-cookie p{margin:0;font-size:13px;color:var(--muted);flex:1;min-width:220px;}
.ov-cookie button{background:var(--body);color:var(--ground);border:none;border-radius:8px;padding:8px 16px;font-weight:600;font-size:13px;cursor:pointer;font-family:var(--sans);}

/* ---- mobile ---- */
@media (max-width:860px){ [data-navlinks]{display:none!important;} }
@media (max-width:640px){
  nav{padding:12px 16px!important;}
  [data-hero-wrap]{height:440vh!important;}
  [data-mrow]{font-size:11px!important;}
  section{padding-top:64px!important;padding-bottom:64px!important;}
}
