:root {
  color-scheme: dark;
  --site-black: #1d1d1f;
  --site-surface: #232326;
  --site-surface-2: #29292c;
  --site-white: #d8d8da;
  --site-muted: #77777b;
  --site-line: rgba(216, 216, 218, 0.16);
  --site-accent: #b8b8ba;
  --site-ease: cubic-bezier(0.2, 0.72, 0.2, 1);
}

html {
  min-width: 320px;
  background: var(--site-black);
  scrollbar-gutter: stable;
}

body.site-page {
  position: relative;
  isolation: isolate;
  margin: 0;
  min-width: 320px;
  min-height: 100vh;
  overflow-x: hidden;
  background: var(--site-black) !important;
  color: var(--site-white);
  font-family: "Inter Tight", Arial, sans-serif !important;
  -webkit-font-smoothing: antialiased;
}

body.site-page::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -4;
  pointer-events: none;
  background:
    linear-gradient(132deg, transparent 0 38%, rgba(255, 255, 255, 0.018) 38.2% 48%, transparent 48.2%),
    linear-gradient(42deg, transparent 0 54%, rgba(0, 0, 0, 0.12) 54.2% 68%, transparent 68.2%),
    radial-gradient(circle at 72% 24%, rgba(255, 255, 255, 0.026), transparent 34%),
    var(--site-black);
}

body.site-page::after {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  opacity: 0.1;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.86' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.32'/%3E%3C/svg%3E");
  background-size: 180px 180px;
  mix-blend-mode: soft-light;
}

body.site-page a,
body.site-page button {
  color: inherit;
}

body.site-page a:focus-visible,
body.site-page button:focus-visible {
  outline: 1px solid var(--site-accent);
  outline-offset: 5px;
}

body.site-page ::selection {
  background: var(--site-accent);
  color: var(--site-black);
}

body.site-page .scene-video {
  position: fixed !important;
  inset: 0 !important;
  z-index: -3 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
  opacity: 0.14;
  filter: grayscale(0.28) saturate(0.46) contrast(1.06) brightness(0.36);
}

body.site-page .ambient-vignette {
  position: fixed;
  inset: 0;
  z-index: -2;
  pointer-events: none;
  background:
    linear-gradient(90deg, rgba(29, 29, 31, 0.92), rgba(29, 29, 31, 0.48) 62%, rgba(29, 29, 31, 0.34)),
    linear-gradient(180deg, rgba(29, 29, 31, 0.5), transparent 26%, rgba(29, 29, 31, 0.92));
}

body.site-page .left-blur-shape {
  display: none;
}

body.site-page:not(.site-machine) > header {
  position: fixed !important;
  inset: 0 0 auto !important;
  z-index: 80 !important;
  min-height: 92px;
  border: 0 !important;
  border-bottom: 1px solid rgba(216, 216, 218, 0.08) !important;
  background: rgba(29, 29, 31, 0.74) !important;
  box-shadow: none !important;
  backdrop-filter: blur(20px);
}

body.site-page:not(.site-machine) > header > nav {
  height: 92px !important;
  max-width: none !important;
  padding-right: clamp(24px, 3.6vw, 64px) !important;
  padding-left: clamp(24px, 3.6vw, 64px) !important;
}

body.site-page .nav-link {
  position: relative;
  padding: 13px 0;
  color: rgba(210, 209, 212, 0.58) !important;
  font-family: "IBM Plex Mono", monospace;
  font-size: 11px !important;
  font-weight: 500 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  transition: color 220ms ease;
}

body.site-page .nav-link::before {
  content: none !important;
}

body.site-page .nav-link::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 7px;
  left: 0;
  height: 1px;
  background: var(--site-accent);
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 280ms var(--site-ease);
}

body.site-page .nav-link:hover,
body.site-page .nav-link.is-active {
  color: var(--site-white) !important;
}

body.site-page .nav-link:hover::after,
body.site-page .nav-link.is-active::after {
  transform: scaleX(1);
  transform-origin: left;
}

body.site-page .glass {
  border-color: var(--site-line) !important;
  background: rgba(35, 35, 38, 0.72) !important;
  box-shadow: none !important;
  backdrop-filter: blur(16px);
}

body.site-page:not(.site-machine) > header a.glass,
body.site-page:not(.site-machine) > header button.glass {
  border-radius: 0 !important;
}

body.site-page:not(.site-machine) > header a[aria-label="Vision Lab LinkedIn"] {
  display: none !important;
}

@media (min-width: 768px) {
  body.site-page:not(.site-machine) > header > nav > div:first-of-type {
    margin-left: auto !important;
  }

  body.site-page:not(.site-machine) > header > nav > div:last-child {
    display: none !important;
  }
}

body.site-page #mobileMenu {
  padding: 0 20px 20px !important;
  background: rgba(29, 29, 31, 0.97);
}

body.site-page #mobileMenu > div {
  border-radius: 0 !important;
  padding: 0 18px !important;
  background: var(--site-black) !important;
}

body.site-page .mobile-nav-link {
  display: flex;
  min-height: 54px;
  align-items: center;
  border-bottom: 1px solid var(--site-line);
  color: var(--site-muted);
  font-size: 14px;
  text-decoration: none;
}

body.site-page .mobile-nav-link.is-active {
  color: var(--site-accent);
}

body.site-page:not(.site-machine) > main {
  position: relative;
  z-index: 10;
  min-height: calc(100vh - 84px);
  padding: 154px clamp(24px, 3.6vw, 64px) 100px !important;
}

body.site-page:not(.site-machine) > main > section {
  width: 100%;
  max-width: 1320px !important;
  margin: 0 auto;
}

body.site-page .page-hero {
  max-width: 940px !important;
}

body.site-page .page-eyebrow {
  display: flex !important;
  width: max-content;
  align-items: center;
  gap: 12px !important;
  margin-bottom: 30px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: rgba(210, 209, 212, 0.62) !important;
  font-family: "IBM Plex Mono", monospace;
  font-size: 9px !important;
  font-weight: 400 !important;
  letter-spacing: 0.12em !important;
  box-shadow: none !important;
  text-transform: uppercase;
}

body.site-page .page-eyebrow::before {
  content: "";
  width: 28px;
  height: 1px;
  background: var(--site-accent);
}

body.site-page .page-eyebrow > span {
  display: none !important;
}

body.site-page .page-title {
  max-width: 1080px !important;
  margin: 0;
  color: var(--site-white) !important;
  font-family: "Inter Tight", Arial, sans-serif;
  font-size: clamp(60px, 7vw, 118px) !important;
  font-weight: 300 !important;
  letter-spacing: -0.045em !important;
  line-height: 0.94 !important;
  text-shadow: none !important;
  text-transform: none;
}

body.site-about .page-title {
  font-size: clamp(48px, 5.6vw, 92px) !important;
}

body.site-page .page-lede,
body.site-page .page-copy-panel {
  max-width: 700px !important;
  margin-top: 34px !important;
  color: rgba(210, 209, 212, 0.66) !important;
  font-size: 16px !important;
  font-weight: 300 !important;
  line-height: 1.72 !important;
  text-shadow: none !important;
}

body.site-page .page-copy-panel {
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  backdrop-filter: none !important;
}

body.site-page .page-copy-panel b {
  color: var(--site-white);
  font-weight: 600;
}

body.site-page .team-section,
body.site-page .partners-section {
  margin-top: 90px !important;
}

body.site-page .team-section > div:first-child,
body.site-page .partners-section > div:first-child {
  margin-bottom: 30px !important;
}

body.site-page .team-section h2,
body.site-page .partners-section h2 {
  margin-top: 10px !important;
  color: var(--site-white) !important;
  font-size: clamp(30px, 3vw, 48px) !important;
  font-weight: 300 !important;
  letter-spacing: -0.04em !important;
}

body.site-page .team-section p,
body.site-page .partners-section p {
  color: var(--site-accent) !important;
  font-family: "IBM Plex Mono", monospace;
  font-size: 9px !important;
  font-weight: 400 !important;
  letter-spacing: 0.12em !important;
}

body.site-page .team-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: clamp(42px, 6vw, 84px) clamp(24px, 4vw, 56px) !important;
  border: 0;
  background: transparent;
}

body.site-page .team-card {
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.site-page .team-card:hover {
  z-index: 2;
  border-color: transparent !important;
  transform: none;
}

body.site-page .team-card > div:first-child {
  background: var(--site-surface) !important;
}

body.site-page .team-card > div:last-child {
  padding: 18px 0 0 !important;
}

body.site-page .team-card img {
  filter: saturate(0.65) contrast(1.06);
  transition: filter 500ms ease, transform 600ms var(--site-ease);
}

body.site-page .team-card:hover img {
  filter: saturate(0.9) contrast(1.02);
  transform: scale(1.04);
}

body.site-page .team-card h3 {
  color: var(--site-white) !important;
  font-size: 21px !important;
  font-weight: 400 !important;
}

body.site-page .team-card p {
  color: var(--site-muted) !important;
  font-family: "IBM Plex Mono", monospace;
  font-size: 9px !important;
  font-weight: 400 !important;
  letter-spacing: 0.06em !important;
}

body.site-about .team-grid {
  display: flex !important;
  flex-wrap: wrap;
  justify-content: center;
  gap: 36px 24px !important;
}

body.site-about .team-card {
  width: min(100%, 292px);
  max-width: 292px;
  flex: 0 1 292px;
}

body.site-about .team-card > div:last-child {
  padding-top: 18px !important;
}

body.site-about .team-card h3 {
  font-size: 21px !important;
}

body.site-about .team-card p {
  font-size: 9px !important;
}

body.site-page .partner-grid {
  gap: 1px !important;
  margin-top: 32px !important;
}

body.site-page .partner-grid a {
  height: 108px !important;
  border: 1px solid var(--site-line) !important;
  border-radius: 0 !important;
  background: rgba(35, 35, 38, 0.76) !important;
}

body.site-page .partner-grid a:hover {
  border-color: rgba(210, 209, 212, 0.58) !important;
  background: rgba(41, 41, 44, 0.92) !important;
  transform: translateY(-4px);
}

body.site-page .partner-grid img {
  max-height: 42px !important;
  filter: grayscale(1);
  opacity: 0.78;
  transition: filter 250ms ease, opacity 250ms ease;
}

body.site-page .partner-grid a:hover img {
  filter: grayscale(0);
  opacity: 1;
}

body.site-page .apps-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: clamp(52px, 7vw, 96px) clamp(24px, 4vw, 58px) !important;
  margin-top: 64px !important;
  border: 0;
  background: transparent;
}

body.site-page .app-card {
  display: flex;
  min-height: 100%;
  flex-direction: column;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.site-page .app-card:hover {
  z-index: 2;
  border-color: transparent !important;
  transform: none;
}

body.site-page .app-card > div:first-child {
  background: var(--site-surface) !important;
}

body.site-page .app-card > div:first-child > img {
  filter: saturate(0.68) contrast(1.02) brightness(0.76);
  transition: filter 500ms ease, transform 650ms var(--site-ease);
}

body.site-page .app-card:hover > div:first-child > img {
  filter: saturate(0.92) contrast(1.02) brightness(0.88);
  transform: scale(1.04);
}

body.site-page .app-card > div:first-child > div {
  border-radius: 0 !important;
  border-color: var(--site-line) !important;
  background: rgba(29, 29, 31, 0.82) !important;
  color: rgba(210, 209, 212, 0.72) !important;
  font-family: "IBM Plex Mono", monospace;
  font-size: 8px !important;
}

body.site-page .app-card > div:last-child {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: 20px 0 0 !important;
}

body.site-page .app-card h2 {
  color: var(--site-white) !important;
  font-size: 25px !important;
  font-weight: 400 !important;
  letter-spacing: -0.025em !important;
}

body.site-page .app-card p {
  color: rgba(210, 209, 212, 0.58) !important;
  font-size: 14px !important;
  font-weight: 300 !important;
  line-height: 1.65 !important;
}

body.site-page .app-card a.glass {
  min-height: 48px !important;
  margin-top: auto;
  border-radius: 0 !important;
  border: 0 !important;
  border-top: 1px solid rgba(216, 216, 218, 0.28) !important;
  background: transparent !important;
  color: var(--site-white) !important;
  font-family: "IBM Plex Mono", monospace;
  font-size: 9px !important;
  font-weight: 500 !important;
  letter-spacing: 0.08em !important;
}

body.site-page .app-card a.glass:hover {
  border-color: var(--site-accent) !important;
  background: var(--site-accent) !important;
  color: var(--site-black) !important;
}

body.site-privacy > main > section {
  max-width: 980px !important;
}

body.site-page .policy-panel {
  margin-top: 64px !important;
  overflow: visible !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.site-page .policy-section {
  padding: clamp(24px, 4vw, 54px) !important;
  border: 0 !important;
  border-top: 1px solid var(--site-line) !important;
  border-bottom: 0 !important;
  background: transparent !important;
}

body.site-page .policy-section:last-child {
  border-bottom: 1px solid var(--site-line) !important;
}

body.site-page .policy-section h2 {
  margin: 0 !important;
  color: var(--site-white) !important;
  font-size: clamp(22px, 2.4vw, 34px) !important;
  font-weight: 300 !important;
  letter-spacing: -0.035em !important;
  line-height: 1.12 !important;
}

body.site-page .policy-section p,
body.site-page .policy-section li {
  color: rgba(210, 209, 212, 0.62) !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  line-height: 1.78 !important;
}

body.site-page .policy-section ul {
  margin-top: 18px !important;
  padding-left: 22px !important;
}

body.site-page .policy-section li + li {
  margin-top: 8px;
}

body.site-page .policy-section strong {
  color: var(--site-white);
  font-weight: 600;
}

body.site-page .policy-section a {
  color: var(--site-accent) !important;
  text-decoration-color: rgba(210, 209, 212, 0.34) !important;
}

body.site-page > footer {
  position: relative;
  z-index: 20;
  padding: 24px clamp(24px, 3.6vw, 64px) 96px !important;
  border-top: 1px solid rgba(210, 209, 212, 0.08);
}

body.site-page > footer > div {
  max-width: 1320px !important;
  color: rgba(216, 216, 218, 0.68) !important;
  font-family: "IBM Plex Mono", monospace;
  font-size: 10px !important;
  font-weight: 400 !important;
  letter-spacing: 0.1em !important;
}

body.site-page .cookie-notice {
  right: 24px !important;
  bottom: 84px !important;
  left: auto !important;
  width: min(390px, calc(100vw - 48px)) !important;
  padding: 20px !important;
  border: 1px solid var(--site-line) !important;
  border-radius: 0 !important;
  background: rgba(35, 35, 38, 0.96) !important;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.42) !important;
}

body.site-page .cookie-notice h2 {
  color: var(--site-white);
  font-size: 14px !important;
  font-weight: 600 !important;
}

body.site-page .cookie-notice p {
  color: rgba(216, 216, 218, 0.72) !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  line-height: 1.55 !important;
}

body.site-page .cookie-notice button {
  min-height: 42px !important;
  border-radius: 0 !important;
  background: var(--site-white) !important;
  color: var(--site-black) !important;
  font-size: 10px !important;
}

body.site-page .mode-switch {
  bottom: max(20px, env(safe-area-inset-bottom));
  width: min(216px, calc(100vw - 32px));
  min-height: 52px;
  border-color: rgba(210, 209, 212, 0.2);
  background: rgba(29, 29, 31, 0.76);
  box-shadow: none;
  backdrop-filter: blur(16px);
}

body.site-page .mode-switch__option {
  min-height: 44px;
  color: rgba(216, 216, 218, 0.72);
  font-size: 9px;
}

body.site-page .mode-switch__option::before,
body.site-page .mode-switch__option::after {
  content: none;
}

body.site-page .mode-switch__option[aria-current="page"] {
  background: var(--site-white);
  color: var(--site-black);
  box-shadow: none;
}

body.site-page .mode-switch__option:not([aria-current="page"]):hover {
  background: rgba(210, 209, 212, 0.08);
  color: var(--site-white);
}

body.site-machine {
  padding: 132px clamp(24px, 4vw, 72px) 130px !important;
  background: var(--site-black) !important;
  color: var(--site-white) !important;
}

body.site-machine::before {
  z-index: -3;
  background:
    linear-gradient(132deg, transparent 0 38%, rgba(255, 255, 255, 0.018) 38.2% 48%, transparent 48.2%),
    radial-gradient(circle at 76% 18%, rgba(216, 216, 218, 0.05), transparent 30%),
    var(--site-black) !important;
  opacity: 1 !important;
}

body.site-machine::after {
  display: block;
}

body.site-machine .machine-site-header {
  position: fixed;
  inset: 0 0 auto;
  z-index: 80;
  min-height: 92px;
  padding: 24px clamp(24px, 3.6vw, 64px);
  border-bottom: 1px solid rgba(216, 216, 218, 0.08);
  background: rgba(29, 29, 31, 0.78);
  backdrop-filter: blur(20px);
}

body.site-machine .machine-site-nav {
  gap: clamp(24px, 3vw, 48px);
}

body.site-machine .machine-site-nav a {
  color: rgba(210, 209, 212, 0.62);
  font-family: "IBM Plex Mono", monospace;
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

body.site-machine .machine-site-nav a::before,
body.site-machine .machine-site-nav a::after {
  content: none;
}

body.site-machine .machine-site-nav a:hover {
  color: var(--site-white);
  transform: none;
}

body.site-machine .machine-shell {
  width: min(1180px, 100%);
  margin: 0 auto;
}

body.site-machine .machine-shell::before {
  content: "MACHINE";
  position: fixed;
  top: 16%;
  left: 50%;
  z-index: -1;
  color: rgba(210, 209, 212, 0.025);
  font-family: "IBM Plex Mono", monospace;
  font-size: clamp(120px, 20vw, 360px);
  font-weight: 600;
  letter-spacing: -0.08em;
  transform: translateX(-50%);
}

body.site-machine .machine-toolbar {
  margin-bottom: 0;
  padding: 14px 18px;
  border: 1px solid var(--site-line);
  background: rgba(35, 35, 38, 0.82);
  color: var(--site-muted);
  font-size: 10px;
}

body.site-machine .machine-toolbar a {
  color: var(--site-accent);
}

body.site-machine .machine-text {
  padding: clamp(24px, 4vw, 54px);
  border: 1px solid var(--site-line);
  border-top: 0;
  background: rgba(35, 35, 38, 0.84);
  color: rgba(210, 209, 212, 0.72);
  box-shadow: none;
  font-family: "IBM Plex Mono", monospace;
  font-size: clamp(10px, 0.9vw, 13px);
  line-height: 1.66;
  white-space: pre-wrap;
}

body.site-machine .machine-text .accent {
  color: var(--site-accent);
}

body.site-machine .machine-text .muted {
  color: var(--site-muted);
}

body.site-machine .machine-text a {
  color: var(--site-white);
  text-decoration-color: rgba(210, 209, 212, 0.45);
}

@media (max-width: 900px) {
  body.site-page .scene-video {
    inset: 0 !important;
    width: 100% !important;
    opacity: 0.16;
  }

  body.site-page .ambient-vignette {
    background:
      linear-gradient(180deg, rgba(29, 29, 31, 0.62), rgba(29, 29, 31, 0.9)),
      linear-gradient(90deg, rgba(29, 29, 31, 0.82), rgba(29, 29, 31, 0.28));
  }

  body.site-page:not(.site-machine) > main {
    padding-top: 126px !important;
  }

  body.site-page .page-title {
    font-size: clamp(48px, 12vw, 76px) !important;
  }

  body.site-about .page-title {
    font-size: clamp(42px, 9vw, 64px) !important;
  }
}

@media (max-width: 767px) {
  body.site-page:not(.site-machine) > header,
  body.site-machine .machine-site-header {
    min-height: 76px;
  }

  body.site-page:not(.site-machine) > header > nav {
    height: 76px !important;
    padding-right: 20px !important;
    padding-left: 20px !important;
  }

  body.site-page:not(.site-machine) > main {
    padding: 116px 20px 76px !important;
  }

  body.site-page .page-eyebrow {
    margin-bottom: 20px !important;
    font-size: 8px !important;
  }

  body.site-page .page-title {
    font-size: clamp(44px, 14vw, 66px) !important;
  }

  body.site-about .page-title {
    font-size: clamp(38px, 11vw, 54px) !important;
  }

  body.site-page .page-lede,
  body.site-page .page-copy-panel {
    margin-top: 24px !important;
    font-size: 14px !important;
  }

  body.site-page .apps-grid,
  body.site-page .policy-panel {
    margin-top: 44px !important;
  }

  body.site-page .team-section,
  body.site-page .partners-section {
    margin-top: 64px !important;
  }

  body.site-page .team-grid {
    grid-template-columns: 1fr !important;
    gap: 48px !important;
  }

  body.site-about .team-grid {
    gap: 32px 18px !important;
  }

  body.site-about .team-card {
    width: min(100%, 273px);
    max-width: 273px;
    flex-basis: 273px;
  }

  body.site-page .apps-grid {
    grid-template-columns: 1fr !important;
  }

  body.site-page .partner-grid {
    display: grid !important;
    grid-template-columns: 1fr;
  }

  body.site-page .partner-grid a {
    width: 100% !important;
    max-width: none !important;
  }

  body.site-page > footer {
    padding: 22px 20px 86px !important;
  }

  body.site-page .cookie-notice {
    right: 20px !important;
    bottom: calc(max(12px, env(safe-area-inset-bottom)) + 64px) !important;
    left: 20px !important;
    width: auto !important;
  }

  body.site-page .mode-switch,
  body.site-machine .mode-switch {
    bottom: max(12px, env(safe-area-inset-bottom));
    width: min(202px, calc(100vw - 32px));
  }

  body.site-machine {
    padding: 108px 18px 110px !important;
  }

  body.site-machine .machine-site-header {
    padding: 15px 20px;
  }

  body.site-machine .machine-site-nav {
    gap: 16px;
  }

  body.site-machine .machine-site-nav a {
    font-size: 9px;
  }

  body.site-machine .machine-toolbar {
    align-items: flex-start;
    flex-direction: column;
  }

  body.site-machine .machine-text {
    padding: 20px 16px;
    font-size: 10px;
    line-height: 1.6;
  }

  body.site-machine .machine-text .accent {
    display: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }

  body.site-page .scene-video {
    display: none;
  }
}
