/* ============ SELF-HOSTED FONTS (latin subsets) ============ */
@font-face {
  font-family:'Geist';
  font-style:normal;
  font-weight:400;
  font-display:swap;
  src:url('../assets/fonts/geist-400.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:'Geist';
  font-style:normal;
  font-weight:500;
  font-display:swap;
  src:url('../assets/fonts/geist-500.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('../assets/fonts/jetbrains-mono-400.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:500;
  font-display:swap;
  src:url('../assets/fonts/jetbrains-mono-500.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:'Space Grotesk';
  font-style:normal;
  font-weight:400;
  font-display:swap;
  src:url('../assets/fonts/space-grotesk-400.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:'Space Grotesk';
  font-style:normal;
  font-weight:500;
  font-display:swap;
  src:url('../assets/fonts/space-grotesk-500.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:'Space Grotesk';
  font-style:normal;
  font-weight:700;
  font-display:swap;
  src:url('../assets/fonts/space-grotesk-700.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;
}

/* Eigenwave website v2 — shared stylesheet (tokens, resets, keyframes). Component styles are inline. */
/* ================= THEME =================
   Edit these variables to re-theme the whole site.
   Everything below (and all page CSS) references them. */
:root{
  /* Brand */
  --brand:#2B3BF2;            /* primary accent — buttons, links, highlights, canvas art */
  --brand-soft:#8B97FF;       /* lighter brand tint used on dark bands */
  --on-brand:#FFFFFF;         /* text/icons on top of --brand */

  /* Surfaces */
  --bg:#F5F6F8;               /* page background */
  --surface:#FFFFFF;          /* cards, panels */
  --bg3:#EEF0F4;              /* subtle alternate background (rails, wells) */
  --navy:#0E1120;             /* dark band (CTA section, console) */

  /* Text */
  --ink:#15171C;              /* primary text */
  --muted:#5B6270;            /* secondary text */
  --faint:#8A92A3;            /* tertiary text, placeholders */

  /* Lines */
  --line:#E2E5EB;             /* default borders */
  --line2:color-mix(in srgb,var(--ink) 20%,transparent); /* stronger borders */

  /* Status */
  --live:#2E9E6B;             /* positive / live indicators */
  --good:#2E9E6B;             /* success */
  --warn:#A26400;             /* warnings */

  /* Type */
  --sans:'Geist',system-ui,sans-serif;
  --disp:'Space Grotesk',var(--sans);   /* display / headings */
  --mono:'JetBrains Mono',ui-monospace,monospace;

  /* Motion: `running` or `paused` (pauses ambient animations) */
  --aps:running;

  /* Legacy alias — original token name for --brand, still used across css/js */
  --ultra:var(--brand);
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:96px;
}

/* Section rail visibility is handled responsively in home.css (collapse, then hide <1250px) */

*,*::before,*::after {
  box-sizing:border-box;
}

body {
  margin:0;
  padding:0;
  background:var(--bg);
  color:var(--ink);
  font-family:var(--sans);
  font-size:17px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

a {
  color:inherit;
}

p a:hover {
  color:var(--ultra);
}

::selection {
  background:color-mix(in srgb,var(--ultra) 16%,transparent);
}

[data-seq],[data-loop] {
  animation-play-state:var(--aps,running);
}

@keyframes ping {
  0% {
    transform:scale(.5);
    opacity:.7;
  }
  70%,100% {
    transform:scale(1.3);
    opacity:0;
  }
}

@keyframes rise {
  from {
    opacity:0;
    transform:translateY(18px);
  }
  to {
    opacity:1;
    transform:none;
  }
}

@keyframes blinkc {
  0%,49% {
    opacity:1;
  }
  50%,100% {
    opacity:0;
  }
}

@keyframes solRun {
  0% {
    transform:translateX(0);
    opacity:0;
  }
  6% {
    opacity:1;
  }
  62% {
    transform:translateX(608px);
    opacity:1;
  }
  70%,100% {
    transform:translateX(608px);
    opacity:0;
  }
}

@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after {
    animation:none!important;
    transition:none!important;
  }
  [data-seq] {
    opacity:1!important;
    transform:none!important;
  }
  [data-spark-line] {
    stroke-dashoffset:0!important;
    opacity:1!important;
  }
  [data-spark-dot] {
    opacity:1!important;
  }
}

/* page-specific (product pages) */
@keyframes msgIn {
  0% {
    opacity:0;
    transform:translateY(5px);
  }
  4%,94% {
    opacity:1;
    transform:none;
  }
  99%,100% {
    opacity:0;
  }
}

@keyframes tildeGo {
  0% {
    opacity:0;
  }
  3% {
    opacity:1;
  }
  14% {
    opacity:1;
  }
  17% {
    opacity:0;
  }
  100% {
    opacity:0;
  }
}

@keyframes checkGo {
  0%,14% {
    opacity:0;
  }
  17%,94% {
    opacity:1;
  }
  99%,100% {
    opacity:0;
  }
}

@keyframes digIn {
  0% {
    opacity:0;
    transform:translateY(5px);
  }
  9%,88% {
    opacity:1;
    transform:none;
  }
  97%,100% {
    opacity:0;
  }
}

@keyframes draw {
  0% {
    stroke-dashoffset:1;
  }
  55%,88% {
    stroke-dashoffset:0;
  }
  100% {
    stroke-dashoffset:0;
    opacity:0;
  }
}

@keyframes anomIn {
  0%,52% {
    opacity:0;
  }
  60%,88% {
    opacity:1;
  }
  100% {
    opacity:0;
  }
}

@keyframes alertIn {
  0%,58% {
    opacity:0;
    transform:translateY(8px);
  }
  66%,92% {
    opacity:1;
    transform:none;
  }
  99%,100% {
    opacity:0;
  }
}

#conTabs::-webkit-scrollbar {
  display:none;
}

/* interaction states (extracted from style-hover attrs) */
.hv-color-ink:hover {
  color:var(--ink) !important;
}

.hv-background-color-mix-in-srgb-ultra:hover {
  background:color-mix(in srgb,var(--ultra),#000 16%) !important;
  transform:translateY(-1px) !important;
  color:#fff !important;
}

.hv-border-color-ultra:hover {
  border-color:var(--ultra) !important;
}

.hv-text-decoration-color-ultra:hover {
  text-decoration-color:var(--ultra) !important;
  color:var(--ink) !important;
}

.hv-background-ultra:hover {
  background:var(--ultra) !important;
  color:#fff !important;
  transform:translateY(-1px) !important;
}
