:root {
  color-scheme: dark;
  --bg: #020908;
  --surface-0: #020908;
  --surface-1: #061210;
  --surface-2: #091b18;
  --text: #f0f4f2;
  --text-strong: #fbfdfc;
  --muted: #a5b4af;
  --soft: #71817c;
  --teal: #00c9a7;
  --teal-hover: #00b99b;
  --teal-2: #00b2a0;
  --teal-ink: #001b17;
  --danger: #e63946;
  --line: rgba(240, 244, 242, .11);
  --line-strong: rgba(240, 244, 242, .21);
  --line-teal: rgba(0, 201, 167, .29);
  --line-hot: rgba(0, 201, 167, .72);
  --shadow-float: 0 28px 90px rgba(0, 0, 0, .28);
  --radius-xs: 2px;
  --radius-control: 4px;
  --radius-panel: 8px;
  --radius-pill: 999px;
  --shell: min(1280px, calc(100vw - 96px));
  --font-display: "Cormorant Garamond", Georgia, serif;
  --font-ui: "Jost", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --ease-out: cubic-bezier(.22, 1, .36, 1);
  --type-readable-floor: .7rem;
  --nav-height: 66px;
}

[data-theme="light"] {
  color-scheme: light;
  --bg: #f2f4f0;
  --surface-0: #f2f4f0;
  --surface-1: #fbfcf9;
  --surface-2: #e7ece7;
  --text: #173c34;
  --text-strong: #092f28;
  --muted: #48665e;
  --soft: #617a72;
  --teal: #007665;
  --teal-hover: #006b5b;
  --teal-2: #008d78;
  --teal-ink: #f4fffc;
  --danger: #b72532;
  --line: rgba(9, 47, 40, .13);
  --line-strong: rgba(9, 47, 40, .24);
  --line-teal: rgba(0, 118, 101, .28);
  --line-hot: rgba(0, 118, 101, .68);
  --shadow-float: 0 24px 70px rgba(10, 31, 25, .12);
}

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

html {
  min-width: 320px;
  scroll-behavior: smooth;
  scrollbar-gutter: auto;
  scrollbar-width: none;
  background: var(--bg);
}

body {
  margin: 0;
  min-width: 320px;
  overflow-x: clip;
  background:
    linear-gradient(90deg, transparent calc(50% - .5px), color-mix(in srgb, var(--line) 44%, transparent) 50%, transparent calc(50% + .5px)),
    var(--bg);
  color: var(--text);
  font-family: var(--font-ui);
  font-size: 16px;
  line-height: 1.55;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  transition: background-color 180ms var(--ease-out), color 180ms var(--ease-out);
}


.entry-veil {
  position: fixed;
  z-index: 9998;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  background:
    radial-gradient(82% 24% at 50% -4%, rgba(0, 201, 167, .13), transparent 72%),
    linear-gradient(180deg, #061613 0%, #020908 58%, #000504 100%);
  animation: entry-veil-out 620ms var(--ease-out) 50ms both;
}

[data-theme="light"] .entry-veil {
  background:
    radial-gradient(82% 24% at 50% -4%, rgba(0, 118, 101, .12), transparent 72%),
    linear-gradient(180deg, #dcebe6 0%, #edf3ef 52%, #f2f4f0 100%);
}

.entry-veil::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: .22;
  background:
    repeating-linear-gradient(
      180deg,
      transparent 0 72px,
      rgba(120, 225, 205, .055) 73px,
      transparent 74px 146px
    ),
    radial-gradient(72% 10% at 50% 3%, rgba(172, 255, 238, .11), transparent 78%);
  animation: entry-depth-drift 620ms var(--ease-out) 50ms both;
}

.entry-veil::after {
  content: "";
  position: absolute;
  left: 8vw;
  right: 8vw;
  top: 22%;
  height: 1px;
  opacity: .64;
  background: linear-gradient(
    90deg,
    transparent,
    rgba(83, 232, 207, .4) 28%,
    rgba(196, 255, 245, .72) 50%,
    rgba(83, 232, 207, .4) 72%,
    transparent
  );
  box-shadow: 0 0 22px rgba(0, 201, 167, .17);
  animation: entry-depth-line 620ms var(--ease-out) 50ms both;
}

@keyframes entry-veil-out {
  0% {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    visibility: visible;
  }
  68% { opacity: .94; }
  100% {
    opacity: 0;
    transform: translate3d(0, -3.5%, 0);
    visibility: hidden;
  }
}

@keyframes entry-depth-drift {
  0% {
    transform: translate3d(0, -2%, 0) scale(1.01);
    opacity: .2;
  }
  100% {
    transform: translate3d(0, 5%, 0) scale(1.02);
    opacity: 0;
  }
}

@keyframes entry-depth-line {
  0% {
    transform: translate3d(0, -10vh, 0) scaleX(.58);
    opacity: 0;
  }
  26% { opacity: .62; }
  100% {
    transform: translate3d(0, 54vh, 0) scaleX(1);
    opacity: 0;
  }
}

main,
.site-header,
.site-footer { position: relative; z-index: 2; }

main { overflow: clip; }

button,
input,
select,
textarea { font: inherit; }

button,
a { -webkit-tap-highlight-color: transparent; }

a { color: inherit; text-decoration: none; }
button { color: inherit; }
img, svg { display: block; max-width: 100%; }

h1,
h2,
h3,
p { margin: 0; }

h1,
h2 {
  color: var(--text-strong);
  font-family: var(--font-display);
  font-weight: 400;
  letter-spacing: -.045em;
  text-wrap: balance;
}

h1 { font-size: clamp(5rem, 9.2vw, 9rem); line-height: .82; }
h2 { font-size: clamp(3.4rem, 6vw, 6rem); line-height: .9; }
h3 { font-size: 1rem; line-height: 1.25; }

::selection {
  background: color-mix(in srgb, var(--teal) 36%, transparent);
  color: var(--text-strong);
}

html::-webkit-scrollbar,
body::-webkit-scrollbar {
  display: none;
  width: 0;
  height: 0;
}

:focus-visible {
  outline: 2px solid var(--teal);
  outline-offset: 4px;
}

.skip-link {
  position: fixed;
  z-index: 10000;
  left: 18px;
  top: 14px;
  transform: translateY(-180%);
  padding: 9px 13px;
  border: 1px solid var(--line-hot);
  border-radius: var(--radius-control);
  background: var(--text-strong);
  color: var(--bg);
  font-size: .75rem;
  font-weight: 600;
  transition: transform 140ms var(--ease-out);
}
.skip-link:focus { transform: translateY(0); }

.section-shell {
  width: var(--shell);
  margin-inline: auto;
}

.content-section {
  position: relative;
  padding-block: clamp(100px, 10vw, 160px);
  scroll-margin-top: calc(var(--nav-height) + 24px);
}

.eyebrow {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--muted);
  font-size: .68rem;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: .18em;
  text-transform: uppercase;
}

.eyebrow .index {
  min-width: 24px;
  color: var(--teal);
  font-variant-numeric: tabular-nums;
}

.signal-dot {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--teal);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--teal) 11%, transparent), 0 0 14px color-mix(in srgb, var(--teal) 54%, transparent);
}

.section-heading h2 { margin-top: 22px; }
.section-heading > p { margin-top: 30px; }

.btn {
  position: relative;
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  gap: 22px;
  padding: 0 18px;
  border: 1px solid transparent;
  border-radius: var(--radius-control);
  font-size: .74rem;
  font-weight: 700;
  letter-spacing: .045em;
  line-height: 1;
  transition: color 160ms var(--ease-out), background-color 160ms var(--ease-out), border-color 160ms var(--ease-out), transform 160ms var(--ease-out), box-shadow 160ms var(--ease-out);
}

.btn::before {
  content: "";
  position: absolute;
  inset: 3px;
  border: 1px solid color-mix(in srgb, currentColor 10%, transparent);
  border-radius: 2px;
  pointer-events: none;
}

.btn:active { transform: translateY(0) scale(.985); }
.btn-primary {
  background: var(--teal);
  color: var(--teal-ink);
  box-shadow: 0 10px 28px color-mix(in srgb, var(--teal) 13%, transparent);
}
.btn-primary:hover { background: var(--teal-hover); box-shadow: 0 14px 36px color-mix(in srgb, var(--teal) 19%, transparent); }
.btn-secondary { border-color: var(--line-strong); background: transparent; color: var(--text); }
.btn-secondary:hover { border-color: var(--line-hot); background: color-mix(in srgb, var(--teal) 5%, transparent); }
.btn-large { min-height: 52px; padding-inline: 22px; }

.text-link {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  padding-block: 10px;
  border-bottom: 1px solid var(--line-strong);
  color: var(--muted);
  font-size: .76rem;
  font-weight: 600;
  transition: color 140ms var(--ease-out), border-color 140ms var(--ease-out);
}
.text-link:hover { border-color: var(--teal); color: var(--text); }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .entry-veil { display: none; }
  *, *::before, *::after {
    scroll-behavior: auto !important;
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
  }
}
.ambient {
  position: fixed;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
  isolation: isolate;
}

.ambient-depth {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 62% 48% at 78% 23%, color-mix(in srgb, var(--teal) 8%, transparent), transparent 72%),
    radial-gradient(ellipse 42% 34% at 15% 66%, color-mix(in srgb, var(--teal-2) 4%, transparent), transparent 75%),
    linear-gradient(180deg, color-mix(in srgb, var(--surface-2) 24%, transparent), transparent 42%, color-mix(in srgb, var(--surface-1) 55%, transparent));
}

.contours,
.ambient-waves {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: .42;
}

.contours { transform: translateY(-2%); }
.contours path,
.ambient-waves path {
  fill: none;
  stroke: var(--line-teal);
  vector-effect: non-scaling-stroke;
}
.contours path { stroke-width: .65; stroke-dasharray: 2 8; }
.ambient-waves { top: 10%; height: 65%; opacity: .17; }
.ambient-waves path { stroke-width: .8; }

.ambient-bubbles {
  position: absolute;
  inset: 0;
  opacity: .34;
  background-image:
    radial-gradient(circle at 82% 11%, var(--line-hot) 0 1px, transparent 1.5px),
    radial-gradient(circle at 71% 38%, var(--line-hot) 0 1px, transparent 1.5px),
    radial-gradient(circle at 91% 62%, var(--line-hot) 0 1px, transparent 1.5px),
    radial-gradient(circle at 22% 73%, var(--line-hot) 0 1px, transparent 1.5px);
}

[data-theme="light"] .contours { opacity: .3; }
[data-theme="light"] .ambient-waves { opacity: .11; }

.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  height: var(--nav-height);
  border-bottom: 1px solid var(--line);
  background: var(--surface-0);
}

.nav-shell {
  width: var(--shell);
  height: 100%;
  margin-inline: auto;
  display: grid;
  grid-template-columns: minmax(160px, .65fr) auto minmax(260px, .65fr);
  align-items: center;
  gap: 30px;
}

.brand {
  display: inline-flex;
  width: max-content;
  align-items: center;
  gap: 11px;
  color: var(--text-strong);
  font-size: .86rem;
  font-weight: 600;
  letter-spacing: .02em;
}

.brand > span { white-space: nowrap; }
.brand-mark { width: 23px; height: 23px; flex: none; color: var(--text-strong); }
.brand-mark path { fill: currentColor; }
.brand-mark circle { fill: none; stroke: currentColor; stroke-width: 3.6; }
[data-theme="light"] .brand,
[data-theme="light"] .brand-mark { color: #092f28; }

.nav-links {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(20px, 2.4vw, 38px);
}

.nav-links a {
  position: relative;
  padding-block: 8px;
  color: var(--muted);
  font-size: var(--type-readable-floor);
  font-weight: 600;
  letter-spacing: .07em;
  white-space: nowrap;
  transition: color 140ms var(--ease-out);
}

.nav-links a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 100%;
  bottom: 2px;
  height: 1px;
  background: var(--teal);
  transition: right 180ms var(--ease-out);
}
.nav-links a:hover { color: var(--text); }
.nav-links a:hover::after { right: 0; }

.nav-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 7px;
}

.micro-control,
.icon-control {
  min-height: 38px;
  border: 1px solid transparent;
  border-radius: var(--radius-control);
  background: transparent;
  color: var(--soft);
  cursor: pointer;
  transition: border-color 140ms var(--ease-out), color 140ms var(--ease-out), background-color 140ms var(--ease-out), transform 140ms var(--ease-out);
}
.micro-control:hover,
.icon-control:hover { border-color: var(--line-strong); background: color-mix(in srgb, var(--surface-2) 68%, transparent); color: var(--text); }
.micro-control:active,
.icon-control:active { transform: scale(.94); }

.micro-control {
  padding-inline: 10px;
  font-size: var(--type-readable-floor);
  font-weight: 600;
  letter-spacing: .08em;
}
.lang-active { color: var(--text); }
.lang-divider { margin-inline: 2px; color: var(--line-strong); }

.icon-control {
  display: grid;
  width: 38px;
  border-radius: 50%;
  place-items: center;
  padding: 0;
}
.theme-icon { grid-area: 1 / 1; width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.5; transition: transform 200ms var(--ease-out), opacity 160ms var(--ease-out); }
.theme-icon-sun { opacity: 0; transform: rotate(-35deg) scale(.6); }
[data-theme="light"] .theme-icon-moon { opacity: 0; transform: rotate(35deg) scale(.6); }
[data-theme="light"] .theme-icon-sun { opacity: 1; transform: rotate(0) scale(1); }
.nav-join { min-height: 40px; margin-left: 3px; padding-inline: 16px; }

.hero {
  min-height: max(760px, calc(100svh - var(--nav-height)));
  padding-top: 30px;
  padding-bottom: clamp(64px, 7vw, 100px);
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  grid-template-rows: auto minmax(0, 1fr);
  column-gap: 20px;
  align-items: center;
  scroll-margin-top: var(--nav-height);
}

.hero-datum {
  grid-column: 1 / -1;
  align-self: start;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 20px;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--line);
  color: var(--soft);
  font-size: .55rem;
  font-weight: 600;
  letter-spacing: .18em;
  line-height: 1;
}
.hero-datum span:nth-child(2) { justify-self: center; }
.hero-datum span:last-child { justify-self: end; }

.hero-copy {
  position: relative;
  z-index: 3;
  grid-column: 1 / 8;
  grid-row: 2;
  align-self: center;
  padding: clamp(66px, 8vh, 104px) 0 36px;
}

.hero-copy .eyebrow { margin-bottom: 28px; }
.hero-copy h1 {
  max-width: 850px;
  margin-left: -.055em;
  text-shadow: 0 18px 70px color-mix(in srgb, var(--bg) 65%, transparent);
}
.hero-copy .lead {
  max-width: 610px;
  margin-top: 38px;
  color: var(--muted);
  font-size: clamp(1rem, 1.3vw, 1.18rem);
  line-height: 1.72;
  text-wrap: pretty;
}
.hero-actions { display: flex; align-items: center; gap: 28px; margin-top: 36px; }
.hero-note {
  max-width: 520px;
  margin-top: 24px;
  color: var(--soft);
  font-size: var(--type-readable-floor);
  line-height: 1.6;
  letter-spacing: .035em;
}

.hero-observatory {
  position: relative;
  z-index: 2;
  grid-column: 7 / -1;
  grid-row: 2;
  align-self: center;
  margin-top: 70px;
  margin-left: -28px;
  display: grid;
  grid-template-columns: minmax(310px, 1.3fr) minmax(190px, .7fr);
  grid-template-rows: auto 1fr auto;
  border-top: 1px solid var(--line-strong);
  border-bottom: 1px solid var(--line-strong);
  background: linear-gradient(100deg, color-mix(in srgb, var(--surface-1) 20%, transparent), color-mix(in srgb, var(--surface-2) 7%, transparent));
}

.hero-observatory::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: 50%;
  left: 34%;
  width: 66%;
  aspect-ratio: 1;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background: radial-gradient(circle, color-mix(in srgb, var(--teal) 9%, transparent), transparent 67%);
}

.observatory-calibration {
  grid-column: 1 / -1;
  display: flex;
  justify-content: space-between;
  gap: 18px;
  padding: 12px 0 11px;
  border-bottom: 1px solid var(--line);
  color: var(--soft);
  font-size: .5rem;
  font-weight: 600;
  letter-spacing: .17em;
}

.sonar-wrap {
  position: relative;
  width: min(100%, 430px);
  aspect-ratio: 1;
  align-self: center;
  justify-self: center;
  margin: 30px 20px 30px 0;
  contain: layout paint;
}

.sonar-disc {
  position: absolute;
  inset: 5%;
  overflow: hidden;
  border: 1px solid var(--line-teal);
  border-radius: 50%;
  background:
    radial-gradient(circle at center, color-mix(in srgb, var(--teal) 6%, transparent) 0 1%, transparent 1.5%),
    radial-gradient(circle at center, color-mix(in srgb, var(--teal) 5%, transparent), transparent 61%);
  box-shadow: inset 0 0 70px color-mix(in srgb, var(--teal) 3.5%, transparent), 0 0 64px color-mix(in srgb, var(--teal) 4%, transparent);
}

.sonar-disc::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: repeating-conic-gradient(from 0deg, color-mix(in srgb, var(--teal) 46%, transparent) 0 .4deg, transparent .4deg 5deg);
  mask: radial-gradient(circle, transparent 0 82%, #000 82.5% 85%, transparent 85.5%);
  opacity: .6;
}

.sonar-disc::after {
  content: "";
  position: absolute;
  inset: 2.5%;
  border: 1px solid color-mix(in srgb, var(--teal) 10%, transparent);
  border-radius: 50%;
}

.sonar-ring { position: absolute; border: 1px solid var(--line-teal); border-radius: 50%; }
.sonar-r1 { inset: 13%; opacity: .74; }
.sonar-r2 { inset: 25.5%; opacity: .63; }
.sonar-r3 { inset: 38%; opacity: .52; }
.sonar-r4 { inset: 47%; opacity: .72; }

.sonar-axis { position: absolute; background: var(--line-teal); }
.sonar-axis-x { left: 2%; right: 2%; top: 50%; height: 1px; opacity: .56; }
.sonar-axis-y { top: 2%; bottom: 2%; left: 50%; width: 1px; opacity: .56; }
.sonar-axis-d1,
.sonar-axis-d2 { left: 50%; top: 7%; width: 1px; height: 86%; transform-origin: center; opacity: .14; }
.sonar-axis-d1 { transform: rotate(45deg); }
.sonar-axis-d2 { transform: rotate(-45deg); }

.sonar-sweep {
  position: absolute;
  inset: 5%;
  z-index: 2;
  overflow: visible;
  border-radius: 50%;
  animation: none;
  transform: rotate(-22deg);
  transform-origin: 50% 50%;
  will-change: transform;
}
.sonar-sweep::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 46%;
  height: 1px;
  background: linear-gradient(90deg, color-mix(in srgb, var(--teal) 88%, transparent), color-mix(in srgb, var(--teal) 7%, transparent));
  box-shadow: 0 0 10px color-mix(in srgb, var(--teal) 26%, transparent);
}
.sonar-sweep::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 35%;
  height: 35%;
  clip-path: polygon(0 0, 100% 0, 0 100%);
  background: linear-gradient(135deg, color-mix(in srgb, var(--teal) 7%, transparent), transparent 72%);
  opacity: .68;
}

.sonar-vector {
  position: absolute;
  z-index: 3;
  left: 50%;
  top: 50%;
  width: var(--vector-length);
  height: 1px;
  transform: rotate(var(--vector-angle));
  transform-origin: left center;
  background: linear-gradient(90deg, color-mix(in srgb, var(--teal) 62%, transparent), transparent);
  opacity: .4;
  will-change: opacity;
}
.vector-a { --vector-length: 26%; --vector-angle: -39deg; }
.vector-b { --vector-length: 26%; --vector-angle: 139deg; }
.vector-c { --vector-length: 35%; --vector-angle: 24deg; }
.vector-d { --vector-length: 23%; --vector-angle: -137deg; }

.sonar-node {
  position: absolute;
  z-index: 4;
  width: 7px;
  height: 7px;
  margin: -3.5px 0 0 -3.5px;
  border: 1px solid color-mix(in srgb, var(--teal) 84%, var(--text));
  border-radius: 50%;
  background: var(--surface-1);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--teal) 7%, transparent), 0 0 12px color-mix(in srgb, var(--teal) 15%, transparent);
  will-change: transform, opacity;
}
.sonar-node::after { content: ""; position: absolute; inset: 2px; border-radius: 50%; background: var(--teal); }
.node-a { left: 69%; top: 34%; }
.node-b { left: 31%; top: 66%; }
.node-c { left: 81%; top: 64%; }
.node-d { left: 34%; top: 34%; }

.sonar-center {
  position: absolute;
  z-index: 5;
  left: 50%;
  top: 50%;
  width: 11px;
  height: 11px;
  transform: translate(-50%, -50%);
  border: 1px solid var(--line-hot);
  border-radius: 50%;
  background: var(--surface-0);
}
.sonar-center::before,
.sonar-center::after { content: ""; position: absolute; background: var(--teal); }
.sonar-center::before { width: 19px; height: 1px; left: -5px; top: 4px; }
.sonar-center::after { width: 1px; height: 19px; left: 4px; top: -5px; }

.sonar-bearing,
.sonar-register {
  position: absolute;
  color: var(--soft);
  font-size: .48rem;
  font-weight: 600;
  letter-spacing: .16em;
  line-height: 1;
}
.bearing-n { top: 0; left: 50%; transform: translateX(-50%); }
.bearing-e { right: 0; top: 50%; transform: translateY(-50%); }
.bearing-s { bottom: 0; left: 50%; transform: translateX(-50%); }
.bearing-w { left: 0; top: 50%; transform: translateY(-50%); }
.register-a { left: 8%; top: 10%; }
.register-b { right: 8%; bottom: 10%; }

.sonar-ping-wave {
  position: absolute;
  z-index: 1;
  left: 50%;
  top: 50%;
  width: 92%;
  aspect-ratio: 1;
  border: 1px solid color-mix(in srgb, var(--teal) 54%, transparent);
  border-radius: 50%;
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, -50%) scale(.04);
  transform-origin: center;
  will-change: transform, opacity;
}
.sonar-contact-echo {
  position: absolute;
  z-index: 5;
  width: 16px;
  height: 16px;
  margin: -8px 0 0 -8px;
  border: 1px solid color-mix(in srgb, var(--teal) 64%, transparent);
  border-radius: 50%;
  opacity: 0;
  pointer-events: none;
}

.instrument-readouts {
  position: relative;
  align-self: stretch;
  display: grid;
  grid-template-rows: repeat(4, 1fr);
  border-left: 1px solid var(--line);
}
.readout {
  position: relative;
  display: flex;
  min-width: 0;
  flex-direction: column;
  justify-content: center;
  padding: 18px 8px 18px 22px;
  border-bottom: 1px solid var(--line);
  transition: background-color 160ms var(--ease-out), padding-left 160ms var(--ease-out);
}
.readout:last-child { border-bottom: 0; }
.readout::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 8px;
  height: 1px;
  background: var(--teal);
  opacity: .72;
}
.readout:hover,
.readout.is-active { padding-left: 26px; background: color-mix(in srgb, var(--teal) 4%, transparent); }
.readout span { color: var(--teal); font-size: .46rem; font-weight: 600; letter-spacing: .16em; }
.readout b { margin-top: 5px; color: var(--text); font-size: .76rem; font-weight: 600; line-height: 1.28; }
.readout small { margin-top: 4px; color: var(--muted); font-size: var(--type-readable-floor); line-height: 1.4; }

.instrument-disclaimer {
  grid-column: 1 / -1;
  display: flex;
  justify-content: space-between;
  gap: 20px;
  padding: 11px 0 10px;
  border-top: 1px solid var(--line);
  align-items: center;
  color: var(--muted);
  font-size: var(--type-readable-floor);
  line-height: 1.4;
  letter-spacing: .06em;
}

.sonar-replay {
  min-height: 32px;
  padding: 0 10px;
  border: 1px solid var(--line-strong);
  border-radius: var(--radius-control);
  background: transparent;
  color: var(--text);
  font-size: var(--type-readable-floor);
  font-weight: 600;
  letter-spacing: .04em;
  cursor: pointer;
  transition: border-color 140ms var(--ease-out), background-color 140ms var(--ease-out), color 140ms var(--ease-out);
}
.sonar-replay:hover { border-color: var(--teal); background: color-mix(in srgb, var(--teal) 5%, transparent); color: var(--text-strong); }
.sonar-replay:active { background: color-mix(in srgb, var(--teal) 9%, transparent); }

.depth-rail {
  position: fixed;
  z-index: 80;
  top: 50%;
  right: 17px;
  width: 24px;
  transform: translateY(-50%);
  display: grid;
  justify-items: center;
  gap: 9px;
  color: var(--soft);
  pointer-events: none;
}
.depth-rail-label,
.depth-rail-value,
.depth-rail-zone { font-size: .42rem; font-weight: 600; letter-spacing: .16em; writing-mode: vertical-rl; }
.depth-rail-zone { min-height: 46px; color: var(--teal); }
.depth-rail-track { position: relative; width: 1px; height: 152px; background: var(--line-strong); }
.depth-rail-track::before,
.depth-rail-track::after { content: ""; position: absolute; left: -3px; width: 7px; height: 1px; background: var(--line-strong); }
.depth-rail-track::before { top: 0; }
.depth-rail-track::after { bottom: 0; }
.depth-rail-fill { position: absolute; inset: 0; transform: scaleY(0); transform-origin: top; background: var(--teal); will-change: transform; }
.depth-rail-marker { position: absolute; top: 0; left: 50%; width: 7px; height: 7px; border: 1px solid var(--teal); border-radius: 50%; background: var(--bg); will-change: transform; }

/* Exact Daily Command pointer states; the follower remains runtime-driven at .24. */
.precision-cursor-dot,
.precision-cursor-ring {
  position: fixed;
  z-index: 9999;
  left: 0;
  top: 0;
  opacity: 0;
  pointer-events: none;
  will-change: transform, width, height, opacity, border-radius;
}
.precision-cursor-dot {
  width: 4px;
  height: 4px;
  margin: -2px 0 0 -2px;
  border-radius: 50%;
  background: var(--teal);
  box-shadow: 0 0 9px color-mix(in srgb, var(--teal) 72%, transparent);
  transition: width .14s var(--ease-out), height .14s var(--ease-out), margin .14s var(--ease-out), opacity .16s ease, background .16s ease, box-shadow .16s ease;
}
.precision-cursor-ring {
  width: 22px;
  height: 22px;
  margin: -11px 0 0 -11px;
  border: 1px solid color-mix(in srgb, var(--teal) 52%, transparent);
  border-radius: 50%;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .025), 0 0 14px color-mix(in srgb, var(--teal) 7%, transparent);
  transition: width .18s var(--ease-out), height .18s var(--ease-out), margin .18s var(--ease-out), border-radius .18s var(--ease-out), border-color .18s ease, opacity .16s ease, box-shadow .18s ease, background .18s ease;
}
.precision-cursor-ring::before,
.precision-cursor-ring::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  opacity: 0;
  background: var(--teal);
  box-shadow: 0 0 8px color-mix(in srgb, var(--teal) 32%, transparent);
  transition: opacity .14s ease, width .16s var(--ease-out), height .16s var(--ease-out);
}
.precision-cursor-ring::before { width: 8px; height: 1px; transform: translate(-50%, -50%); }
.precision-cursor-ring::after { width: 1px; height: 8px; transform: translate(-50%, -50%); }
.cursor-visible .precision-cursor-dot,
.cursor-visible .precision-cursor-ring { opacity: 1; }
.cursor-interactive .precision-cursor-dot {
  width: 2px;
  height: 2px;
  margin: -1px 0 0 -1px;
  background: var(--text);
  box-shadow: 0 0 8px rgba(240, 244, 242, .45);
}
.cursor-interactive .precision-cursor-ring {
  width: 30px;
  height: 30px;
  margin: -15px 0 0 -15px;
  border-radius: 8px;
  border-color: rgba(0, 201, 167, .84);
  background: rgba(0, 201, 167, .035);
  box-shadow: inset 0 0 0 1px rgba(0, 201, 167, .06), 0 0 18px rgba(0, 201, 167, .12);
}
.cursor-interactive .precision-cursor-ring::before,
.cursor-interactive .precision-cursor-ring::after { opacity: .86; }
.cursor-text .precision-cursor-dot { opacity: 0; }
.cursor-text .precision-cursor-ring {
  width: 2px;
  height: 22px;
  margin: -11px 0 0 -1px;
  border: 0;
  border-radius: 999px;
  background: var(--teal);
  box-shadow: 0 0 10px color-mix(in srgb, var(--teal) 28%, transparent);
}
.cursor-text .precision-cursor-ring::before,
.cursor-text .precision-cursor-ring::after { left: 50%; width: 8px; height: 1px; opacity: 1; transform: translateX(-50%); }
.cursor-text .precision-cursor-ring::before { top: 0; }
.cursor-text .precision-cursor-ring::after { top: auto; bottom: 0; }
.cursor-pressed .precision-cursor-ring { width: 18px; height: 18px; margin: -9px 0 0 -9px; }
.cursor-pressed .precision-cursor-dot { width: 6px; height: 6px; margin: -3px 0 0 -3px; }

@media (hover: hover) and (pointer: fine) {
  html.dyvv-custom-cursor,
  html.dyvv-custom-cursor body,
  html.dyvv-custom-cursor body * { cursor: none !important; }
}
.capability-index {
  position: relative;
  z-index: 3;
  border-top: 1px solid var(--line-strong);
  border-bottom: 1px solid var(--line-strong);
  background: color-mix(in srgb, var(--surface-1) 76%, transparent);
}

.capability-index-inner {
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr);
  align-items: stretch;
}

.capability-index-label {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 20px 20px 20px 0;
  border-right: 1px solid var(--line);
  color: var(--teal);
  font-size: .55rem;
  font-weight: 600;
  letter-spacing: .17em;
}
.capability-index-label small { color: var(--soft); font-size: .47rem; font-weight: 500; }

.capability-register {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  margin: 0;
  padding: 0;
  list-style: none;
}
.capability-register li {
  min-width: 0;
  padding: 18px 12px 18px 17px;
  border-right: 1px solid var(--line);
}
.capability-register li:last-child { border-right: 0; }
.capability-register li > span { display: block; color: var(--teal); font-size: .48rem; font-weight: 600; letter-spacing: .16em; }
.capability-register b { display: block; overflow: hidden; margin-top: 11px; color: var(--text); font-size: var(--type-readable-floor); font-weight: 600; line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; }
.capability-register small { display: block; overflow: hidden; margin-top: 4px; color: var(--muted); font-size: var(--type-readable-floor); line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }

.section-coordinate {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: auto minmax(40px, 1fr) auto;
  align-items: center;
  gap: 18px;
  margin-bottom: clamp(60px, 7vw, 96px);
  color: var(--soft);
  font-size: .5rem;
  font-weight: 600;
  letter-spacing: .17em;
}
.section-coordinate i { height: 1px; background: var(--line); }

.thesis-section { padding-top: clamp(110px, 12vw, 190px); }
.thesis-spread {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  column-gap: 20px;
}
.thesis-heading { grid-column: 1 / 8; }
.thesis-heading h2 { max-width: 790px; }
.thesis-copy {
  grid-column: 9 / -1;
  align-self: end;
  padding-top: 16px;
  border-top: 1px solid var(--line-strong);
  color: var(--muted);
}
.thesis-copy > p { font-size: .88rem; line-height: 1.82; }
.thesis-copy > p + p { margin-top: 24px; }
.thesis-copy .thesis-lead { color: var(--text); font-size: 1.04rem; line-height: 1.72; }
.thesis-principle { margin-top: 42px; padding: 18px 0 0 18px; border-top: 1px solid var(--line); border-left: 2px solid var(--teal); }
.thesis-principle > span { color: var(--teal); font-size: .49rem; font-weight: 600; letter-spacing: .17em; }
.thesis-principle blockquote { margin: 13px 0 0; color: var(--text); font-family: var(--font-display); font-size: 1.55rem; line-height: 1.12; }

.core-section { border-top: 1px solid var(--line); }
.ledger-heading {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(260px, .75fr);
  align-items: end;
  gap: clamp(50px, 8vw, 120px);
}
.ledger-heading h2 { max-width: 920px; }
.ledger-heading > p { padding-top: 18px; border-top: 1px solid var(--line-strong); color: var(--muted); font-size: .86rem; line-height: 1.75; }

.operating-ledger {
  margin-top: clamp(64px, 7vw, 96px);
  border-top: 1px solid var(--line-strong);
}
.operating-row {
  position: relative;
  display: grid;
  grid-template-columns: minmax(130px, .8fr) minmax(210px, 1.35fr) minmax(330px, 2.6fr) minmax(110px, .75fr);
  align-items: center;
  min-height: 116px;
  gap: 28px;
  padding: 22px 0;
  border-bottom: 1px solid var(--line);
  transition: background-color 170ms var(--ease-out), padding 170ms var(--ease-out);
}
.operating-row::before {
  content: "";
  position: absolute;
  inset: -1px -18px 0;
  z-index: -1;
  border-left: 2px solid transparent;
  background: transparent;
  transition: border-color 170ms var(--ease-out), background-color 170ms var(--ease-out);
}
.operating-row:hover::before { border-left-color: var(--teal); background: color-mix(in srgb, var(--teal) 3.5%, transparent); }
.operating-code { display: flex; align-items: center; justify-content: space-between; gap: 12px; color: var(--soft); font-size: .52rem; font-weight: 600; letter-spacing: .14em; }
.operating-code i { color: var(--teal); font-size: 1rem; font-style: normal; }
.operating-row h3 { color: var(--text); font-family: var(--font-display); font-size: clamp(1.45rem, 2vw, 1.9rem); font-weight: 400; line-height: 1; }
.operating-row p { color: var(--muted); font-size: .82rem; line-height: 1.72; }
.operating-row > small { justify-self: end; color: var(--soft); font-size: .48rem; font-weight: 600; letter-spacing: .13em; }

.method-section {
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background:
    repeating-linear-gradient(90deg, transparent 0, transparent 63px, color-mix(in srgb, var(--line) 25%, transparent) 64px),
    color-mix(in srgb, var(--surface-1) 54%, transparent);
}
.method-layout {
  display: grid;
  grid-template-columns: minmax(300px, .8fr) minmax(500px, 1.2fr);
  gap: clamp(70px, 10vw, 150px);
  align-items: start;
}
.method-heading { position: sticky; top: calc(var(--nav-height) + 50px); }
.method-heading h2 { max-width: 620px; }
.method-heading > p { max-width: 520px; margin-top: 32px; color: var(--muted); font-size: .88rem; line-height: 1.8; }

.decision-sequence {
  position: relative;
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--line-strong);
  list-style: none;
}
.decision-sequence::before { content: ""; position: absolute; top: 0; bottom: 0; left: 18px; width: 1px; background: var(--line-teal); }
.decision-sequence li {
  position: relative;
  display: grid;
  grid-template-columns: 38px minmax(140px, .7fr) minmax(190px, 1fr);
  align-items: center;
  gap: 24px;
  min-height: 108px;
  padding: 20px 0;
  border-bottom: 1px solid var(--line);
}
.sequence-index {
  z-index: 1;
  display: grid;
  width: 37px;
  height: 37px;
  place-items: center;
  border: 1px solid var(--line-teal);
  border-radius: 50%;
  background: var(--surface-1);
  color: var(--teal);
  font-size: .5rem;
  font-weight: 600;
}
.decision-sequence b { display: block; color: var(--text); font-family: var(--font-display); font-size: 1.6rem; font-weight: 400; line-height: 1; }
.decision-sequence small { display: block; margin-top: 7px; color: var(--muted); font-size: var(--type-readable-floor); line-height: 1.4; }
.decision-sequence p { color: var(--muted); font-size: .78rem; line-height: 1.65; }

.proof-section {
  border-bottom: 1px solid var(--line);
  background:
    radial-gradient(circle at 20% 20%, color-mix(in srgb, var(--teal) 7%, transparent), transparent 34%),
    color-mix(in srgb, var(--surface-2) 64%, transparent);
}
.proof-dossier {
  display: grid;
  grid-template-columns: minmax(300px, .82fr) minmax(560px, 1.18fr);
  gap: clamp(70px, 10vw, 150px);
}
.proof-dossier-heading { align-self: start; }
.proof-dossier-heading h2 { max-width: 630px; margin-top: 22px; }
.proof-dossier-heading > p { max-width: 510px; margin-top: 32px; color: var(--muted); font-size: .86rem; line-height: 1.8; }
.evidence-register { border-top: 1px solid var(--line-strong); }
.evidence-register-head,
.evidence-row { display: grid; grid-template-columns: 90px minmax(180px, .8fr) minmax(260px, 1.2fr); gap: 22px; }
.evidence-register-head { padding: 11px 0; border-bottom: 1px solid var(--line); color: var(--muted); font-size: var(--type-readable-floor); font-weight: 600; letter-spacing: .12em; }
.evidence-row { align-items: start; min-height: 116px; padding: 25px 0; border-bottom: 1px solid var(--line); }
.evidence-row > span { color: var(--teal); font-size: .52rem; font-weight: 600; letter-spacing: .13em; }
.evidence-row b { color: var(--text); font-size: .79rem; font-weight: 600; line-height: 1.45; }
.evidence-row p { color: var(--muted); font-size: .77rem; line-height: 1.7; }
.proof-qualification { grid-column: 2; margin-top: -32px; padding-left: 112px; color: var(--muted); font-size: var(--type-readable-floor); line-height: 1.6; }

.curriculum-layout {
  display: grid;
  grid-template-columns: minmax(340px, .9fr) minmax(520px, 1.1fr);
  gap: clamp(70px, 10vw, 150px);
  align-items: end;
}
.curriculum-heading h2 { max-width: 700px; }
.curriculum-heading > p { max-width: 540px; margin-top: 32px; color: var(--muted); font-size: .86rem; line-height: 1.8; }
.curriculum-index {
  counter-reset: curriculum;
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--line-strong);
  list-style: none;
}
.curriculum-row {
  display: grid;
  grid-template-columns: 48px 1fr auto;
  align-items: center;
  gap: 18px;
  min-height: 84px;
  padding: 14px 0;
  border-bottom: 1px solid var(--line);
}
.curriculum-row > span { color: var(--teal); font-size: .5rem; font-weight: 600; letter-spacing: .14em; }
.curriculum-row b { display: block; color: var(--text); font-family: var(--font-display); font-size: 1.45rem; font-weight: 400; line-height: 1; }
.curriculum-row small { display: block; margin-top: 6px; color: var(--muted); font-size: var(--type-readable-floor); }
.curriculum-row em { color: var(--soft); font-size: .46rem; font-style: normal; font-weight: 600; letter-spacing: .14em; }

.membership-section {
  border-top: 1px solid var(--line-strong);
  border-bottom: 1px solid var(--line-strong);
  background:
    linear-gradient(135deg, color-mix(in srgb, var(--teal) 5%, transparent), transparent 34%),
    repeating-linear-gradient(0deg, transparent 0, transparent 31px, color-mix(in srgb, var(--line) 21%, transparent) 32px),
    color-mix(in srgb, var(--surface-1) 68%, transparent);
}
.membership-intro {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  column-gap: 20px;
}
.membership-intro .section-coordinate { grid-column: 1 / -1; }
.membership-heading { grid-column: 1 / 9; }
.membership-heading > p { max-width: 610px; margin-top: 32px; color: var(--muted); font-size: .88rem; line-height: 1.8; }

.membership-surface {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
  margin-top: clamp(64px, 7vw, 92px);
  border: 1px solid var(--line-strong);
  border-radius: var(--radius-panel);
  background: var(--surface-0);
  box-shadow: var(--shadow-float);
}
.membership-surface::before,
.membership-surface::after {
  content: "";
  position: absolute;
  width: 12px;
  height: 12px;
  border-color: var(--teal);
  pointer-events: none;
}
.membership-surface::before { left: -1px; top: -1px; border-left: 2px solid; border-top: 2px solid; }
.membership-surface::after { right: -1px; bottom: -1px; border-right: 2px solid; border-bottom: 2px solid; }
.membership-command { padding: clamp(30px, 4vw, 56px); }
.membership-manifest,
.membership-includes { border-left: 1px solid var(--line-strong); }

.membership-topline {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding-bottom: 18px;
  border-bottom: 1px solid var(--line);
  color: var(--soft);
  font-size: .52rem;
  font-weight: 600;
  letter-spacing: .15em;
}
.core-state { display: inline-flex; align-items: center; gap: 7px; color: var(--teal); }
.core-state i { width: 4px; height: 4px; border-radius: 50%; background: var(--teal); box-shadow: 0 0 9px var(--teal); }

.billing-toggle { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin-top: 34px; }
.billing-option {
  position: relative;
  min-height: 64px;
  padding: 11px 15px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  border: 1px solid var(--line);
  border-radius: var(--radius-control);
  background: color-mix(in srgb, var(--surface-2) 40%, transparent);
  text-align: left;
  cursor: pointer;
  transition: border-color 150ms var(--ease-out), background-color 150ms var(--ease-out), transform 150ms var(--ease-out);
}
.billing-option:hover { border-color: var(--line-strong); background: color-mix(in srgb, var(--surface-2) 72%, transparent); }
.billing-option.is-active { border-color: var(--teal); background: color-mix(in srgb, var(--teal) 6%, transparent); }
.billing-option:active { transform: scale(.985); }
.billing-option span { color: var(--text); font-size: .7rem; font-weight: 600; }
.billing-option small { margin-top: 5px; color: var(--muted); font-size: var(--type-readable-floor); }
.billing-option em { position: absolute; top: 8px; right: 8px; color: var(--teal); font-size: .42rem; font-style: normal; font-weight: 600; letter-spacing: .13em; }

.price-display { display: flex; align-items: baseline; gap: 10px; margin-top: 38px; }
.price { color: var(--text-strong); font-family: var(--font-display); font-size: clamp(3.7rem, 6vw, 5.9rem); font-weight: 400; letter-spacing: -.055em; line-height: .8; font-variant-numeric: lining-nums tabular-nums; }
.period { color: var(--muted); font-size: var(--type-readable-floor); }
.membership-sub { margin-top: 18px; color: var(--muted); font-size: .75rem; line-height: 1.6; }
.annual-advantage { margin-top: 22px; padding: 12px 14px; border-left: 2px solid var(--teal); background: color-mix(in srgb, var(--teal) 4%, transparent); color: var(--muted); font-size: var(--type-readable-floor); line-height: 1.55; }
.annual-advantage[hidden] { display: none; }
.checkout-cta { width: 100%; margin-top: 28px; }
.checkout-note { display: grid; grid-template-columns: 20px 1fr; gap: 10px; margin-top: 17px; color: var(--muted); font-size: var(--type-readable-floor); line-height: 1.55; }
.lock-mark { color: var(--teal); }

.membership-manifest { display: flex; flex-direction: column; min-width: 0; }
.manifest-heading { display: flex; justify-content: space-between; gap: 18px; padding: 22px 28px; border-bottom: 1px solid var(--line-strong); color: var(--teal); font-size: .52rem; font-weight: 600; letter-spacing: .14em; }
.manifest-heading small { color: var(--soft); font-size: .45rem; }
.membership-manifest .membership-includes {
  flex: 1;
  margin: 0;
  padding: 0;
  border-left: 0;
  list-style: none;
}
.membership-manifest .membership-includes li {
  display: grid;
  grid-template-columns: 34px 1fr;
  grid-template-rows: auto auto;
  column-gap: 14px;
  padding: 19px 28px;
  border-bottom: 1px solid var(--line);
}
.membership-includes li > span { grid-row: 1 / 3; color: var(--teal); font-size: .49rem; font-weight: 600; letter-spacing: .13em; }
.membership-includes li b { color: var(--text); font-size: .71rem; font-weight: 600; line-height: 1.35; }
.membership-includes li small { margin-top: 4px; color: var(--muted); font-size: var(--type-readable-floor); }
.access-register { display: grid; grid-template-columns: 1fr 1fr; margin: 0; }
.access-register > div { padding: 14px 28px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.access-register > div:nth-child(2n) { border-right: 0; }
.access-register dt { color: var(--muted); font-size: var(--type-readable-floor); font-weight: 600; letter-spacing: .1em; }
.access-register dd { margin: 5px 0 0; color: var(--muted); font-size: var(--type-readable-floor); }

.risk-callout {
  display: grid;
  grid-template-columns: minmax(180px, .3fr) minmax(0, 1fr);
  gap: 32px;
  margin-top: 22px;
  padding: 18px 20px;
  border: 1px solid color-mix(in srgb, var(--danger) 36%, var(--line));
  border-radius: var(--radius-xs);
  background: color-mix(in srgb, var(--danger) 3.5%, transparent);
}
.risk-kicker { color: color-mix(in srgb, var(--danger) 72%, var(--text)); font-size: var(--type-readable-floor); font-weight: 600; letter-spacing: .11em; }
.risk-callout p { color: var(--muted); font-size: var(--type-readable-floor); line-height: 1.65; }

.fit-section { background: color-mix(in srgb, var(--surface-0) 60%, transparent); }
.fit-layout { display: grid; grid-template-columns: minmax(300px, .7fr) minmax(600px, 1.3fr); gap: clamp(70px, 10vw, 150px); align-items: start; }
.fit-heading h2 { max-width: 600px; }
.fit-heading > p { max-width: 500px; margin-top: 30px; color: var(--muted); font-size: .84rem; line-height: 1.78; }
.fit-matrix { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid var(--line-strong); border-radius: var(--radius-xs); }
.fit-column { min-width: 0; }
.fit-column + .fit-column { border-left: 1px solid var(--line-strong); }
.fit-column-head { display: flex; align-items: center; gap: 15px; min-height: 58px; padding: 12px 20px; border-bottom: 1px solid var(--line-strong); color: var(--text); }
.fit-column-head span { color: var(--teal); font-size: .49rem; }
.fit-column-head b { font-size: var(--type-readable-floor); letter-spacing: .1em; }
.fit-column ul { margin: 0; padding: 0; list-style: none; }
.fit-column li { display: grid; grid-template-columns: 18px 1fr; gap: 8px; min-height: 86px; align-items: start; padding: 20px; border-bottom: 1px solid var(--line); }
.fit-column li:last-child { border-bottom: 0; }
.fit-column li > span { color: var(--teal); font-size: .8rem; }
.fit-no li > span { color: var(--danger); }
.fit-column li p { color: var(--muted); font-size: .72rem; line-height: 1.65; }

.faq-section { border-top: 1px solid var(--line); }
.faq-layout { display: grid; grid-template-columns: minmax(300px, .65fr) minmax(560px, 1.35fr); gap: clamp(70px, 10vw, 160px); align-items: start; }
.faq-heading { position: sticky; top: calc(var(--nav-height) + 50px); }
.faq-heading h2 { max-width: 600px; }
.faq-heading > p { margin-top: 28px; color: var(--muted); font-size: .82rem; line-height: 1.7; }
.faq-register,
.faq-list { border-top: 1px solid var(--line-strong); }
.faq-register details,
.faq-list details { border-bottom: 1px solid var(--line); }
.faq-register summary,
.faq-list summary {
  display: grid;
  grid-template-columns: 44px 1fr 24px;
  align-items: center;
  gap: 12px;
  min-height: 82px;
  padding: 16px 0;
  color: var(--text);
  list-style: none;
  cursor: pointer;
}
.faq-register summary::-webkit-details-marker,
.faq-list summary::-webkit-details-marker { display: none; }
.faq-index { color: var(--teal); font-size: .5rem; font-weight: 600; letter-spacing: .12em; }
.faq-register summary > span:nth-child(2),
.faq-list summary > span:not(.faq-index) { font-family: var(--font-display); font-size: 1.42rem; line-height: 1.18; }
.faq-register summary i,
.faq-list summary i { justify-self: end; color: var(--teal); font-size: 1.1rem; font-style: normal; font-weight: 400; }
.faq-register details > p,
.faq-list details > p { max-width: 680px; padding: 0 36px 26px 56px; color: var(--muted); font-size: .78rem; line-height: 1.75; }
.faq-register details[open] summary,
.faq-list details[open] summary { color: var(--teal); }

.final-descent {
  position: relative;
  overflow: hidden;
  border-top: 1px solid var(--line-strong);
  border-bottom: 1px solid var(--line-strong);
  background:
    radial-gradient(circle at 78% 50%, color-mix(in srgb, var(--teal) 10%, transparent), transparent 30%),
    var(--surface-1);
}
.final-descent::before {
  content: "";
  position: absolute;
  right: -10vw;
  top: 50%;
  width: min(52vw, 760px);
  aspect-ratio: 1;
  transform: translateY(-50%);
  border: 1px solid var(--line-teal);
  border-radius: 50%;
  box-shadow: inset 0 0 0 10vw color-mix(in srgb, var(--teal) 1.5%, transparent), inset 0 0 0 20vw color-mix(in srgb, var(--teal) 1.5%, transparent);
  opacity: .62;
}
.final-descent-inner {
  position: relative;
  min-height: 500px;
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  grid-template-rows: auto 1fr;
  column-gap: 20px;
  align-items: center;
  padding-block: 34px 74px;
}
.final-depth-mark {
  grid-column: 1 / -1;
  align-self: start;
  display: grid;
  grid-template-columns: auto minmax(40px, 1fr) auto;
  align-items: center;
  gap: 18px;
  color: var(--soft);
  font-size: .5rem;
  font-weight: 600;
  letter-spacing: .17em;
}
.final-depth-mark i { height: 1px; background: var(--line); }
.final-descent-copy { grid-column: 1 / 9; align-self: center; }
.final-descent-copy h2 { max-width: 900px; margin-top: 22px; }
.final-descent-copy > p { max-width: 600px; margin-top: 28px; color: var(--muted); font-size: .84rem; line-height: 1.75; }
.final-descent-action { grid-column: 10 / -1; align-self: center; justify-self: stretch; }
.final-descent-action .btn { width: 100%; }
.final-descent-action small { display: block; margin-top: 14px; color: var(--muted); font-size: var(--type-readable-floor); line-height: 1.5; text-align: center; }

.site-footer { background: var(--bg); }
.footer-grid {
  min-height: 260px;
  padding-block: 54px;
  display: grid;
  grid-template-columns: 1.1fr 1fr auto 1.25fr;
  gap: clamp(34px, 5vw, 70px);
  align-items: start;
}
.footer-brand p { max-width: 310px; margin-top: 22px; color: var(--muted); font-size: var(--type-readable-floor); line-height: 1.6; }
.footer-register { display: grid; gap: 15px; }
.footer-register > div { display: grid; gap: 3px; }
.footer-register span { color: var(--teal); font-size: .44rem; font-weight: 600; letter-spacing: .14em; }
.footer-register b { color: var(--muted); font-size: var(--type-readable-floor); font-weight: 500; line-height: 1.4; }
.footer-links { display: grid; gap: 13px; }
.footer-links a { color: var(--muted); font-size: var(--type-readable-floor); transition: color 130ms var(--ease-out); }
.footer-links a:hover { color: var(--teal); }
.footer-risk { justify-self: end; max-width: 400px; text-align: right; }
.footer-risk p { color: var(--muted); font-size: var(--type-readable-floor); line-height: 1.65; }
.footer-risk small { display: block; margin-top: 28px; color: var(--soft); font-size: .55rem; letter-spacing: .08em; }

.noscript-checkouts { margin-top: 18px; padding: 16px; border: 1px solid var(--line-teal); border-radius: var(--radius-control); background: var(--surface-1); }
.noscript-checkouts p { margin-bottom: 12px; color: var(--muted); font-size: .72rem; }
.noscript-checkouts .btn + .btn { margin-left: 7px; }
/* Live V1 polish: stronger ocean depth and restrained instrument activation.
   Intentionally excludes sonar changes. */

.ambient-depth {
  background:
    radial-gradient(ellipse 70% 42% at 76% 12%, color-mix(in srgb, var(--teal) 11%, transparent), transparent 70%),
    radial-gradient(ellipse 48% 34% at 15% 56%, color-mix(in srgb, var(--teal-2) 6%, transparent), transparent 76%),
    linear-gradient(
      180deg,
      color-mix(in srgb, var(--surface-2) 34%, transparent) 0%,
      color-mix(in srgb, var(--surface-1) 20%, transparent) 30%,
      color-mix(in srgb, var(--surface-1) 58%, transparent) 72%,
      color-mix(in srgb, #000 28%, var(--surface-0)) 100%
    );
}

.ambient-depth::before,
.ambient-depth::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.ambient-depth::before {
  opacity: .34;
  background:
    radial-gradient(72% 13% at 50% 1%, color-mix(in srgb, var(--teal) 10%, transparent), transparent 78%),
    repeating-linear-gradient(
      176deg,
      transparent 0 78px,
      color-mix(in srgb, var(--teal) 3.5%, transparent) 79px,
      transparent 81px 154px
    );
  animation: dyvv-water-column-drift 18s ease-in-out infinite alternate;
}

.ambient-depth::after {
  opacity: .42;
  background:
    linear-gradient(180deg, transparent 0 12%, color-mix(in srgb, var(--surface-0) 18%, transparent) 50%, color-mix(in srgb, #000 24%, transparent) 100%),
    radial-gradient(ellipse 90% 32% at 50% 92%, color-mix(in srgb, var(--teal-2) 4%, transparent), transparent 76%);
}

.contours {
  opacity: .54;
  animation: dyvv-bathymetry-drift 30s ease-in-out infinite alternate;
}

.contours path {
  stroke: color-mix(in srgb, var(--teal) 35%, var(--line));
  stroke-width: .72;
}

.ambient-waves {
  top: 2%;
  height: 72%;
  opacity: .31;
  filter: drop-shadow(0 0 8px color-mix(in srgb, var(--teal) 8%, transparent));
  animation: dyvv-surface-wave-drift 17s ease-in-out infinite alternate;
}

.ambient-waves path {
  stroke: color-mix(in srgb, var(--teal) 42%, var(--line));
  stroke-width: .9;
}

.ambient-waves path:last-child { opacity: .58; }

.ambient-bubbles {
  inset: -10% 0 -16%;
  opacity: .54;
  background-image:
    radial-gradient(circle at 11% 84%, color-mix(in srgb, var(--teal) 52%, transparent) 0 1px, transparent 1.6px),
    radial-gradient(circle at 24% 37%, color-mix(in srgb, var(--teal) 34%, transparent) 0 1px, transparent 1.6px),
    radial-gradient(circle at 46% 72%, color-mix(in srgb, var(--teal) 40%, transparent) 0 1px, transparent 1.6px),
    radial-gradient(circle at 63% 28%, color-mix(in srgb, var(--teal) 30%, transparent) 0 1px, transparent 1.6px),
    radial-gradient(circle at 78% 61%, color-mix(in srgb, var(--teal) 44%, transparent) 0 1px, transparent 1.6px),
    radial-gradient(circle at 91% 18%, color-mix(in srgb, var(--teal) 36%, transparent) 0 1px, transparent 1.6px);
  background-repeat: no-repeat;
  animation: dyvv-particle-drift 22s linear infinite;
}

.ambient-bubbles::before,
.ambient-bubbles::after {
  content: "";
  position: absolute;
  inset: -12% 0 -12%;
  pointer-events: none;
  background-repeat: no-repeat;
  will-change: transform;
}

.ambient-bubbles::before {
  opacity: .72;
  background-image:
    radial-gradient(circle at 7% 89%, transparent 0 2px, color-mix(in srgb, var(--teal) 38%, transparent) 2.4px 3px, transparent 3.4px),
    radial-gradient(circle at 18% 62%, transparent 0 1.5px, color-mix(in srgb, var(--teal) 31%, transparent) 1.9px 2.5px, transparent 2.9px),
    radial-gradient(circle at 36% 94%, transparent 0 2.8px, color-mix(in srgb, var(--teal) 27%, transparent) 3.2px 3.8px, transparent 4.2px),
    radial-gradient(circle at 57% 71%, transparent 0 1.8px, color-mix(in srgb, var(--teal) 36%, transparent) 2.2px 2.8px, transparent 3.2px),
    radial-gradient(circle at 73% 88%, transparent 0 2.2px, color-mix(in srgb, var(--teal) 34%, transparent) 2.6px 3.2px, transparent 3.6px),
    radial-gradient(circle at 88% 54%, transparent 0 1.6px, color-mix(in srgb, var(--teal) 28%, transparent) 2px 2.6px, transparent 3px);
  animation: dyvv-bubble-rise-a 19s linear infinite;
}

.ambient-bubbles::after {
  opacity: .48;
  background-image:
    radial-gradient(circle at 14% 72%, transparent 0 1.3px, color-mix(in srgb, var(--teal-2) 34%, transparent) 1.7px 2.2px, transparent 2.6px),
    radial-gradient(circle at 31% 56%, transparent 0 2.3px, color-mix(in srgb, var(--teal-2) 24%, transparent) 2.7px 3.2px, transparent 3.6px),
    radial-gradient(circle at 52% 84%, transparent 0 1.4px, color-mix(in srgb, var(--teal-2) 32%, transparent) 1.8px 2.3px, transparent 2.7px),
    radial-gradient(circle at 69% 47%, transparent 0 2px, color-mix(in srgb, var(--teal-2) 27%, transparent) 2.4px 3px, transparent 3.4px),
    radial-gradient(circle at 84% 78%, transparent 0 1.6px, color-mix(in srgb, var(--teal-2) 30%, transparent) 2px 2.5px, transparent 2.9px),
    radial-gradient(circle at 95% 66%, transparent 0 2.6px, color-mix(in srgb, var(--teal-2) 22%, transparent) 3px 3.5px, transparent 3.9px);
  animation: dyvv-bubble-rise-b 27s linear infinite;
}

@keyframes dyvv-water-column-drift {
  from { transform: translate3d(0, -1.2%, 0) scale(1.01); }
  to { transform: translate3d(0, 2.2%, 0) scale(1.025); }
}

@keyframes dyvv-bathymetry-drift {
  from { transform: translate3d(-.8%, -2%, 0) scale(1.005); }
  to { transform: translate3d(1.2%, 1.4%, 0) scale(1.015); }
}

@keyframes dyvv-surface-wave-drift {
  from { transform: translate3d(-1.1%, -.8%, 0) scaleX(1.01); }
  to { transform: translate3d(1.3%, 1.1%, 0) scaleX(1.025); }
}

@keyframes dyvv-particle-drift {
  from { transform: translate3d(0, 2vh, 0); }
  to { transform: translate3d(.5vw, -7vh, 0); }
}

@keyframes dyvv-bubble-rise-a {
  from { transform: translate3d(0, 15vh, 0); }
  to { transform: translate3d(.7vw, -18vh, 0); }
}

@keyframes dyvv-bubble-rise-b {
  from { transform: translate3d(0, 22vh, 0); }
  to { transform: translate3d(-.8vw, -20vh, 0); }
}

/* Instrument activation: illuminate existing hairlines instead of lifting cards. */
.operating-row,
.decision-sequence li,
.evidence-row,
.curriculum-row,
.membership-manifest .membership-includes li,
.fit-column li,
.faq-register details,
.faq-list details,
.capability-register li {
  position: relative;
  transition:
    background-color 180ms var(--ease-out),
    border-color 180ms var(--ease-out),
    color 180ms var(--ease-out);
}

.operating-row::after,
.decision-sequence li::after,
.evidence-row::after,
.curriculum-row::after,
.membership-manifest .membership-includes li::after,
.fit-column li::after,
.faq-register details::after,
.faq-list details::after,
.capability-register li::after {
  content: "";
  position: absolute;
  z-index: 2;
  left: 0;
  right: 100%;
  bottom: -1px;
  height: 1px;
  pointer-events: none;
  background: linear-gradient(90deg, var(--teal), color-mix(in srgb, var(--teal) 42%, transparent) 64%, transparent);
  box-shadow: 0 0 10px color-mix(in srgb, var(--teal) 11%, transparent);
  transition: right 230ms var(--ease-out), opacity 180ms var(--ease-out);
  opacity: .76;
}

.operating-row:hover::after,
.operating-row:focus-within::after,
.decision-sequence li:hover::after,
.decision-sequence li:focus-within::after,
.evidence-row:hover::after,
.evidence-row:focus-within::after,
.curriculum-row:hover::after,
.curriculum-row:focus-within::after,
.membership-manifest .membership-includes li:hover::after,
.membership-manifest .membership-includes li:focus-within::after,
.fit-column li:hover::after,
.fit-column li:focus-within::after,
.faq-register details:hover::after,
.faq-register details:focus-within::after,
.faq-list details:hover::after,
.faq-list details:focus-within::after,
.capability-register li:hover::after,
.capability-register li:focus-within::after {
  right: 0;
}

.decision-sequence li:hover,
.evidence-row:hover,
.curriculum-row:hover,
.membership-manifest .membership-includes li:hover,
.fit-column li:hover,
.faq-register details:hover,
.faq-list details:hover,
.capability-register li:hover {
  background: color-mix(in srgb, var(--teal) 3.2%, transparent);
}

.decision-sequence li:hover .sequence-index,
.decision-sequence li:focus-within .sequence-index {
  border-color: var(--teal);
  background: color-mix(in srgb, var(--teal) 5%, var(--surface-1));
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--teal) 5%, transparent), 0 0 18px color-mix(in srgb, var(--teal) 11%, transparent);
}

.curriculum-row:hover > span,
.membership-includes li:hover > span,
.evidence-row:hover > span,
.capability-register li:hover > span,
.faq-register details:hover .faq-index,
.faq-list details:hover .faq-index {
  color: color-mix(in srgb, var(--teal) 86%, var(--text));
  text-shadow: 0 0 12px color-mix(in srgb, var(--teal) 18%, transparent);
}

.billing-option:hover {
  border-color: color-mix(in srgb, var(--teal) 58%, var(--line-strong));
  background: color-mix(in srgb, var(--teal) 4.5%, var(--surface-2));
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--teal) 4%, transparent), 0 0 18px color-mix(in srgb, var(--teal) 5%, transparent);
}

.faq-register summary i,
.faq-list summary i {
  transition: color 160ms var(--ease-out), text-shadow 160ms var(--ease-out), transform 180ms var(--ease-out);
}

.faq-register details:hover summary i,
.faq-register details:focus-within summary i,
.faq-list details:hover summary i,
.faq-list details:focus-within summary i {
  color: color-mix(in srgb, var(--teal) 84%, var(--text));
  text-shadow: 0 0 12px color-mix(in srgb, var(--teal) 22%, transparent);
}

[data-theme="light"] .ambient-depth {
  background:
    radial-gradient(ellipse 70% 42% at 76% 12%, color-mix(in srgb, var(--teal) 8%, transparent), transparent 70%),
    radial-gradient(ellipse 48% 34% at 15% 56%, color-mix(in srgb, var(--teal-2) 5%, transparent), transparent 76%),
    linear-gradient(180deg, color-mix(in srgb, #fff 72%, var(--surface-2)) 0%, var(--surface-0) 58%, color-mix(in srgb, var(--surface-2) 76%, var(--surface-0)) 100%);
}

[data-theme="light"] .contours { opacity: .36; }
[data-theme="light"] .ambient-waves { opacity: .2; }
[data-theme="light"] .ambient-bubbles { opacity: .4; }

@media (prefers-reduced-motion: reduce) {
  .ambient-depth::before,
  .contours,
  .ambient-waves,
  .ambient-bubbles,
  .ambient-bubbles::before,
  .ambient-bubbles::after {
    animation: none !important;
  }

  .operating-row::after,
  .decision-sequence li::after,
  .evidence-row::after,
  .curriculum-row::after,
  .membership-manifest .membership-includes li::after,
  .fit-column li::after,
  .faq-register details::after,
  .faq-list details::after,
  .capability-register li::after {
    transition: none !important;
  }
}
@media (max-width: 1320px) {
  :root { --shell: min(1240px, calc(100vw - 64px)); }
  .hero-copy { grid-column: 1 / 8; }
  .hero-observatory { grid-column: 7 / -1; margin-left: -12px; }
  .readout { padding-left: 18px; }
  .fit-layout,
  .faq-layout { gap: 72px; }
}

@media (max-width: 1180px) {
  .depth-rail { display: none; }
  .nav-shell { grid-template-columns: 150px auto minmax(250px, .7fr); gap: 18px; }
  .nav-links { gap: 18px; }
  .nav-links a { font-size: var(--type-readable-floor); }

  .hero { column-gap: 16px; }
  .hero-copy h1 { font-size: clamp(5rem, 10vw, 7.4rem); }
  .hero-observatory { grid-template-columns: minmax(280px, 1.15fr) minmax(175px, .85fr); }
  .sonar-wrap { margin-right: 10px; }

  .capability-index-inner { grid-template-columns: 132px minmax(0, 1fr); }
  .capability-register { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .capability-register li:nth-child(-n+3) { border-bottom: 1px solid var(--line); }
  .capability-register li:nth-child(3n) { border-right: 0; }

  .operating-row { grid-template-columns: 105px minmax(180px, 1fr) minmax(280px, 2fr) 96px; gap: 20px; }
  .method-layout,
  .proof-dossier,
  .curriculum-layout { gap: 68px; }
  .evidence-register-head,
  .evidence-row { grid-template-columns: 72px minmax(150px, .8fr) minmax(220px, 1.2fr); gap: 16px; }
  .fit-layout { grid-template-columns: 1fr; }
  .fit-heading { display: grid; grid-template-columns: 1fr minmax(260px, .55fr); align-items: end; gap: 50px; }
  .fit-heading > .eyebrow { grid-column: 1 / -1; }
  .fit-heading > h2 { margin-top: 0; }
  .fit-heading > p { margin-top: 0; }
  .fit-matrix { margin-top: 68px; }
}

@media (max-width: 1050px) {
  :root { --nav-height: 104px; }
  .site-header { height: var(--nav-height); }
  .nav-shell {
    grid-template-columns: 1fr auto;
    grid-template-rows: 56px 47px;
    column-gap: 18px;
  }
  .brand { grid-column: 1; grid-row: 1; }
  .nav-actions { grid-column: 2; grid-row: 1; }
  .nav-links {
    grid-column: 1 / -1;
    grid-row: 2;
    justify-content: flex-start;
    gap: 8px;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scrollbar-width: none;
  }
  .nav-links::-webkit-scrollbar { display: none; }
  .nav-links a {
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
    padding: 0 14px;
    border-left: 1px solid var(--line);
    font-size: var(--type-readable-floor);
  }
  .nav-links a:first-child { padding-left: 0; border-left: 0; }
  .nav-links a::after { bottom: 0; }

  .hero { min-height: 780px; }
  .hero-copy { grid-column: 1 / 8; }
  .hero-observatory {
    grid-column: 6 / -1;
    grid-template-columns: minmax(260px, 1.1fr) minmax(168px, .9fr);
    margin-left: -30px;
  }
  .sonar-wrap { width: min(100%, 330px); }
  .readout { padding: 13px 6px 13px 16px; }
  .readout b { font-size: var(--type-readable-floor); }
  .readout small { font-size: var(--type-readable-floor); }

  .thesis-heading { grid-column: 1 / 8; }
  .thesis-copy { grid-column: 8 / -1; }
  .ledger-heading { gap: 52px; }
  .operating-row { grid-template-columns: 94px minmax(170px, 1fr) minmax(0, 2fr); }
  .operating-row > small { display: none; }
  .method-layout { grid-template-columns: minmax(280px, .78fr) minmax(430px, 1.22fr); gap: 50px; }
  .decision-sequence li { grid-template-columns: 38px minmax(126px, .7fr) minmax(150px, 1fr); gap: 16px; }
  .proof-dossier { grid-template-columns: minmax(280px, .75fr) minmax(460px, 1.25fr); gap: 48px; }
  .proof-qualification { padding-left: 88px; }
  .curriculum-layout { grid-template-columns: minmax(300px, .85fr) minmax(430px, 1.15fr); gap: 52px; }
  .membership-heading { grid-column: 1 / 10; }
  .membership-command { padding: 34px; }
  .price { font-size: clamp(3.6rem, 7vw, 5rem); }
  .membership-manifest .membership-includes li { padding-inline: 22px; }
  .manifest-heading,
  .access-register > div { padding-inline: 22px; }
  .faq-layout { grid-template-columns: minmax(260px, .62fr) minmax(440px, 1.38fr); gap: 50px; }
}

@media (max-width: 840px) {
  :root {
    --shell: calc(100vw - 48px);
  }
  body { background: var(--bg); }
  h2 { font-size: clamp(3.35rem, 10.5vw, 5.2rem); }
  .content-section { padding-block: 112px; }

  .hero {
    min-height: 0;
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: auto auto auto;
    padding-top: 26px;
  }
  .hero-datum,
  .hero-copy,
  .hero-observatory { grid-column: 1; }
  .hero-datum { grid-row: 1; }
  .hero-copy { grid-row: 2; }
  .hero-observatory { grid-row: 3; }
  .hero-copy { padding: 74px 0 0; }
  .hero-copy h1 { max-width: 690px; font-size: clamp(5.2rem, 15vw, 7.2rem); }
  .hero-copy .lead { max-width: 630px; }
  .hero-observatory {
    width: 100%;
    margin: 76px 0 0;
    grid-template-columns: minmax(310px, 1.15fr) minmax(210px, .85fr);
  }
  .sonar-wrap { width: min(100%, 390px); }

  .thesis-spread { display: grid; grid-template-columns: 1fr; }
  .thesis-heading,
  .thesis-copy { grid-column: 1; }
  .thesis-copy { max-width: 630px; margin-top: 62px; }

  .ledger-heading { grid-template-columns: 1fr; gap: 42px; }
  .ledger-heading > p { max-width: 650px; }
  .operating-row {
    grid-template-columns: 96px minmax(180px, .75fr) minmax(0, 1.25fr);
    min-height: 126px;
  }

  .method-layout,
  .proof-dossier,
  .curriculum-layout,
  .faq-layout { grid-template-columns: 1fr; gap: 72px; }
  .method-heading,
  .faq-heading { position: static; }
  .method-heading h2,
  .proof-dossier-heading h2,
  .curriculum-heading h2,
  .faq-heading h2 { max-width: 700px; }
  .method-heading > p,
  .proof-dossier-heading > p,
  .curriculum-heading > p { max-width: 650px; }
  .decision-sequence li { grid-template-columns: 38px minmax(170px, .72fr) minmax(220px, 1.28fr); gap: 22px; }
  .proof-qualification { grid-column: 1; margin-top: -42px; padding-left: 0; }

  .membership-heading { grid-column: 1 / -1; }
  .membership-surface { grid-template-columns: 1fr; }
  .membership-manifest,
  .membership-includes { border-top: 1px solid var(--line-strong); border-left: 0; }
  .price { font-size: clamp(4rem, 11vw, 5.7rem); }

  .fit-heading { grid-template-columns: 1fr; gap: 28px; }
  .fit-heading > .eyebrow { grid-column: 1; }
  .fit-heading > p { max-width: 620px; }
  .fit-column li { min-height: 100px; }

  .faq-register summary,
  .faq-list summary { min-height: 78px; }
  .final-descent-inner { min-height: 460px; }
  .final-descent-copy { grid-column: 1 / 9; }
  .final-descent-action { grid-column: 9 / -1; }
  .footer-grid { grid-template-columns: 1fr 1fr 1fr; }
  .footer-risk { grid-column: 1 / -1; justify-self: start; max-width: 620px; text-align: left; }
}

@media (max-width: 640px) {
  :root {
    --shell: calc(100vw - 36px);
    --nav-height: 104px;
  }
  h2 { font-size: clamp(3.15rem, 14vw, 4.4rem); }
  .content-section { padding-block: 92px; }
  .site-header { height: var(--nav-height); }
  .nav-shell { grid-template-rows: 56px 47px; column-gap: 10px; }
  .brand { gap: 8px; font-size: .77rem; }
  .brand-mark { width: 21px; height: 21px; }
  .nav-actions { gap: 3px; }
  .micro-control { min-height: 44px; padding-inline: 7px; }
  .icon-control { width: 44px; height: 44px; }
  .nav-join { min-height: 44px; margin-left: 0; padding-inline: 12px; font-size: var(--type-readable-floor); }
  .nav-links { gap: 0; }
  .nav-links a { min-height: 44px; padding-inline: 13px; }

  .hero { padding-top: 20px; padding-bottom: 70px; }
  .hero-datum { grid-template-columns: 1fr 1fr; font-size: .47rem; }
  .hero-datum span:nth-child(2) { display: none; }
  .hero-copy { padding-top: 64px; }
  .hero-copy .eyebrow { margin-bottom: 22px; }
  .hero-copy h1 { font-size: clamp(4rem, 19.2vw, 5.6rem); line-height: .84; }
  .hero-copy .lead { margin-top: 30px; font-size: .96rem; line-height: 1.68; }
  .hero-actions { align-items: stretch; flex-direction: column; gap: 10px; margin-top: 30px; }
  .hero-actions .btn { width: 100%; }
  .hero-actions .text-link { justify-content: center; align-self: stretch; min-height: 44px; }
  .hero-note { margin-top: 19px; }
  .hero-observatory { grid-template-columns: 1fr; margin-top: 64px; }
  .observatory-calibration { font-size: .44rem; }
  .sonar-wrap { width: min(100%, 330px); margin: 28px auto; }
  .instrument-readouts { grid-template-columns: 1fr 1fr; grid-template-rows: auto auto; border-top: 1px solid var(--line); border-left: 0; }
  .readout { min-height: 92px; padding: 14px 12px 14px 18px; border-right: 1px solid var(--line); }
  .readout:nth-child(2n) { border-right: 0; }
  .readout:nth-last-child(-n+2) { border-bottom: 0; }
  .instrument-disclaimer { align-items: flex-start; flex-direction: column; gap: 8px; }
  .sonar-replay { min-height: 44px; }

  .capability-index-inner { grid-template-columns: 1fr; }
  .capability-index-label { min-height: 62px; padding: 15px 0; flex-direction: row; align-items: center; border-right: 0; border-bottom: 1px solid var(--line); }
  .capability-register { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .capability-register li { border-bottom: 1px solid var(--line); }
  .capability-register li:nth-child(3n) { border-right: 1px solid var(--line); }
  .capability-register li:nth-child(2n) { border-right: 0; }
  .capability-register li:nth-last-child(-n+2) { border-bottom: 0; }
  .capability-register b { font-size: var(--type-readable-floor); }

  .section-coordinate { margin-bottom: 58px; }
  .thesis-copy { margin-top: 48px; }
  .thesis-principle blockquote { font-size: 1.35rem; }

  .operating-ledger { margin-top: 56px; }
  .operating-row {
    grid-template-columns: 76px minmax(0, 1fr);
    gap: 14px 18px;
    min-height: 0;
    padding: 24px 0 26px;
  }
  .operating-code { grid-column: 1; align-self: start; }
  .operating-row h3 { grid-column: 2; font-size: 1.55rem; }
  .operating-row p { grid-column: 2; font-size: .76rem; }

  .method-section { background: color-mix(in srgb, var(--surface-1) 54%, transparent); }
  .decision-sequence li { grid-template-columns: 38px 1fr; gap: 16px; min-height: 0; padding: 22px 0; }
  .decision-sequence li > p { grid-column: 2; }
  .decision-sequence b { font-size: 1.45rem; }

  .evidence-register-head {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    margin: -1px;
    padding: 0;
    border: 0;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
  }
  .evidence-row { grid-template-columns: 56px 1fr; gap: 12px; min-height: 0; padding: 24px 0; }
  .evidence-row p { grid-column: 2; }
  .proof-qualification { margin-top: -36px; }

  .curriculum-row { grid-template-columns: 38px 1fr; min-height: 82px; }
  .curriculum-row em { display: none; }

  .membership-intro { grid-template-columns: 1fr; }
  .membership-intro .section-coordinate,
  .membership-heading { grid-column: 1; }
  .membership-command { padding: 25px 20px; }
  .membership-topline { align-items: flex-start; }
  .billing-toggle { margin-top: 26px; }
  .billing-option { min-height: 70px; padding-inline: 11px; }
  .price-display { gap: 7px; margin-top: 32px; }
  .price { font-size: clamp(3.2rem, 15.5vw, 4.6rem); }
  .period { font-size: var(--type-readable-floor); }
  .manifest-heading { align-items: flex-start; flex-direction: column; }
  .membership-manifest .membership-includes li { padding: 17px 20px; }
  .access-register > div { padding: 14px 20px; }
  .risk-callout { grid-template-columns: 1fr; gap: 12px; padding: 17px; }

  .fit-matrix { grid-template-columns: 1fr; margin-top: 52px; }
  .fit-column + .fit-column { border-top: 1px solid var(--line-strong); border-left: 0; }
  .fit-column li { min-height: 0; padding: 18px; }

  .faq-register summary,
  .faq-list summary { grid-template-columns: 32px 1fr 20px; min-height: 76px; gap: 10px; }
  .faq-register summary > span:nth-child(2),
  .faq-list summary > span:not(.faq-index) { font-size: 1.25rem; }
  .faq-register details > p,
  .faq-list details > p { padding: 0 20px 24px 42px; font-size: .74rem; }

  .final-descent-inner { min-height: 500px; grid-template-columns: 1fr; grid-template-rows: auto 1fr auto; row-gap: 42px; padding-block: 28px 64px; }
  .final-depth-mark,
  .final-descent-copy,
  .final-descent-action { grid-column: 1; }
  .final-descent-copy { align-self: end; }
  .final-descent-action { align-self: start; }
  .final-descent-action small { text-align: left; }
  .footer-grid { grid-template-columns: 1fr; gap: 42px; }
  .footer-risk { grid-column: 1; }
  .noscript-checkouts .btn { width: 100%; }
  .noscript-checkouts .btn + .btn { margin: 7px 0 0; }
}

@media (max-width: 390px) {
  :root { --shell: calc(100vw - 32px); }
  .brand span { white-space: nowrap; }
  .micro-control { padding-inline: 5px; }
  .nav-join { padding-inline: 9px; }
  .nav-links a { padding-inline: 11px; }
  .hero-copy h1 { font-size: 4.25rem; }
  .observatory-calibration span:last-child { display: none; }
  .sonar-wrap { width: 286px; }
  .capability-register small { white-space: normal; }
  .billing-option em { display: none; }
  .price { font-size: 3.3rem; }
  .access-register { grid-template-columns: 1fr; }
  .access-register > div,
  .access-register > div:nth-child(2n) { border-right: 0; }
}

@media (max-width: 360px) {
  .price-display { flex-wrap: wrap; row-gap: 8px; }
  .price { flex-basis: 100%; font-size: 2.85rem; }
  .period { flex-basis: 100%; }
}

@media (hover: none), (pointer: coarse) {
  .precision-cursor-ring,
  .precision-cursor-dot { display: none !important; }
  .operating-row::before { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .sonar-sweep,
  .sonar-ping-wave { animation: none !important; }
  .sonar-contact-echo { display: none !important; }
}
/* V1 interaction refinement.
   Keeps the existing layout and sonar intact. */

/* The static page should feel immediate. The old decorative entry veil remains in source
   for rollback compatibility but is intentionally not rendered as a perceived loader. */
.entry-veil { display: none !important; }

/* Internal membership anchors land on the section introduction, not the pricing panel. */
.membership-intro { scroll-margin-top: calc(var(--nav-height) + 20px); }

/* Primary action: stronger state change without lifting or bouncing. */
.btn-primary {
  border-color: color-mix(in srgb, var(--teal) 72%, transparent);
}
.btn-primary::before {
  transition: border-color 160ms var(--ease-out), opacity 160ms var(--ease-out);
}

@media (hover: hover) and (pointer: fine) {
  .btn-primary:hover {
    background: color-mix(in srgb, var(--teal) 88%, #e9fff9);
    border-color: color-mix(in srgb, var(--teal) 72%, #d8fff6);
    box-shadow:
      0 0 0 1px color-mix(in srgb, var(--teal) 28%, transparent),
      0 14px 36px color-mix(in srgb, var(--teal) 24%, transparent),
      inset 0 0 22px color-mix(in srgb, #fff 8%, transparent);
  }
  .btn-primary:hover::before {
    border-color: color-mix(in srgb, #fff 32%, transparent);
  }
  [data-theme="light"] .btn-primary:hover {
    background: color-mix(in srgb, var(--teal) 91%, #001d18);
    border-color: color-mix(in srgb, var(--teal) 82%, #001d18);
  }
}

/* Desk briefing uses the same instrument hairline language as navigation, not a permanent grey underline. */
.hero-actions .text-link {
  position: relative;
  border-bottom: 0;
  color: var(--muted);
}
.hero-actions .text-link::after {
  content: "";
  position: absolute;
  left: 0;
  right: 100%;
  bottom: 5px;
  height: 1px;
  background: linear-gradient(90deg, var(--teal), color-mix(in srgb, var(--teal) 45%, transparent), transparent);
  box-shadow: 0 0 9px color-mix(in srgb, var(--teal) 12%, transparent);
  transition: right 190ms var(--ease-out);
}
.hero-actions .text-link:hover,
.hero-actions .text-link:focus-visible { color: var(--text); }
.hero-actions .text-link:hover::after,
.hero-actions .text-link:focus-visible::after { right: 0; }

/* Boxed/grid surfaces already have structural borders. Do not draw another travelling underline through them. */
.fit-column li::after,
.membership-manifest .membership-includes li::after,
.capability-register li::after {
  display: none !important;
}

.membership-manifest .membership-includes li:hover,
.capability-register li:hover {
  background: color-mix(in srgb, var(--teal) 2.4%, transparent);
}

/* Fit Check has semantic polarity: positive is teal, negative is red. */
.fit-column li {
  transition: background-color 170ms var(--ease-out), box-shadow 170ms var(--ease-out), color 170ms var(--ease-out);
}
.fit-yes li:hover,
.fit-yes li:focus-within {
  background: color-mix(in srgb, var(--teal) 3.8%, transparent);
  box-shadow: inset 2px 0 0 color-mix(in srgb, var(--teal) 78%, transparent);
}
.fit-no .fit-column-head > span,
.fit-no li > span { color: var(--danger); }
.fit-no li:hover,
.fit-no li:focus-within {
  background: color-mix(in srgb, var(--danger) 4.2%, transparent);
  box-shadow: inset 2px 0 0 color-mix(in srgb, var(--danger) 82%, transparent);
}
.fit-no li:hover > span,
.fit-no li:focus-within > span {
  color: color-mix(in srgb, var(--danger) 88%, var(--text));
  text-shadow: 0 0 11px color-mix(in srgb, var(--danger) 18%, transparent);
}
.fit-no .fit-column-head {
  border-bottom-color: color-mix(in srgb, var(--danger) 24%, var(--line));
}

/* The two water lines move independently. This avoids the uniform waveform-sheet look. */
.ambient-waves {
  animation: none;
  transform: none;
}
.ambient-waves path {
  transform-box: fill-box;
  will-change: transform;
}
.ambient-waves path:first-child {
  opacity: .92;
  transform-origin: 36% 52%;
  animation: dyvv-wave-independent-a 12.5s ease-in-out infinite alternate;
}
.ambient-waves path:last-child {
  opacity: .5;
  transform-origin: 67% 48%;
  animation: dyvv-wave-independent-b 18s ease-in-out infinite alternate-reverse;
}

@keyframes dyvv-wave-independent-a {
  0% { transform: translate(-1.8%, -.7%) scaleX(1.025) scaleY(.985) rotate(-.12deg); }
  48% { transform: translate(.45%, 1.1%) scaleX(.992) scaleY(1.018) rotate(.16deg); }
  100% { transform: translate(1.5%, -.15%) scaleX(1.018) scaleY(.994) rotate(-.06deg); }
}

@keyframes dyvv-wave-independent-b {
  0% { transform: translate(1.4%, 1.2%) scaleX(.985) scaleY(1.02) rotate(.14deg); }
  52% { transform: translate(-.65%, -.9%) scaleX(1.028) scaleY(.982) rotate(-.18deg); }
  100% { transform: translate(-1.6%, .35%) scaleX(1.006) scaleY(1.012) rotate(.08deg); }
}

/* Direct-response custom pointer. The delayed follower ring is hidden; its visual role is
   rebuilt as a pseudo-element on the directly positioned dot, so there is no spatial lag. */
@media (hover: hover) and (pointer: fine) {
  .precision-cursor-ring { display: none !important; }

  .precision-cursor-dot {
    overflow: visible;
    transition:
      width .11s var(--ease-out),
      height .11s var(--ease-out),
      margin .11s var(--ease-out),
      opacity .1s ease,
      background .1s ease,
      box-shadow .1s ease;
  }
  .precision-cursor-dot::before,
  .precision-cursor-dot::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    pointer-events: none;
    transform: translate(-50%, -50%);
    transition:
      width .12s var(--ease-out),
      height .12s var(--ease-out),
      border-radius .12s var(--ease-out),
      border-color .12s ease,
      background .12s ease,
      opacity .1s ease;
  }
  .precision-cursor-dot::before {
    width: 18px;
    height: 18px;
    border: 1px solid color-mix(in srgb, var(--teal) 48%, transparent);
    border-radius: 50%;
    background: transparent;
    box-shadow: 0 0 12px color-mix(in srgb, var(--teal) 6%, transparent);
  }
  .precision-cursor-dot::after { opacity: 0; }

  .cursor-interactive .precision-cursor-dot {
    width: 3px;
    height: 3px;
    margin: -1.5px 0 0 -1.5px;
    background: var(--text);
  }
  .cursor-interactive .precision-cursor-dot::before {
    width: 27px;
    height: 27px;
    border-radius: 6px;
    border-color: color-mix(in srgb, var(--teal) 82%, transparent);
    background: color-mix(in srgb, var(--teal) 3.5%, transparent);
  }

  .cursor-text .precision-cursor-dot {
    width: 2px;
    height: 22px;
    margin: -11px 0 0 -1px;
    border-radius: 1px;
    background: var(--teal);
    opacity: 1;
    box-shadow: 0 0 9px color-mix(in srgb, var(--teal) 24%, transparent);
  }
  .cursor-text .precision-cursor-dot::before,
  .cursor-text .precision-cursor-dot::after {
    width: 8px;
    height: 1px;
    border: 0;
    border-radius: 0;
    background: var(--teal);
    opacity: 1;
    box-shadow: none;
  }
  .cursor-text .precision-cursor-dot::before { top: 0; }
  .cursor-text .precision-cursor-dot::after { top: auto; bottom: 0; transform: translateX(-50%); }
}

/* Mobile navigation: one flat rail, no boxed vertical dividers. */
@media (max-width: 640px) {
  :root { --nav-height: 104px; }
  .site-header { height: var(--nav-height); }
  .nav-shell { grid-template-rows: 58px 45px; }
  .nav-links {
    display: grid;
    width: 100%;
    grid-template-columns: 1.14fr .74fr 1.06fr .86fr;
    gap: 0;
    overflow: visible;
    border-top: 1px solid var(--line);
  }
  .nav-links a,
  .nav-links a:first-child {
    display: flex;
    min-width: 0;
    min-height: 45px;
    align-items: center;
    justify-content: center;
    padding: 0 4px;
    border-left: 0;
    color: var(--muted);
    font-size: var(--type-readable-floor);
    letter-spacing: .045em;
    text-align: center;
  }
  .nav-links a::after {
    left: 20%;
    right: 80%;
    bottom: 0;
  }
  .nav-links a:hover::after,
  .nav-links a:focus-visible::after {
    left: 20%;
    right: 20%;
  }
  .nav-join {
    min-height: 40px;
    padding-inline: 10px;
    font-size: var(--type-readable-floor);
  }
  .micro-control { min-height: 40px; }
  .icon-control { width: 40px; height: 40px; }
}

@media (max-width: 390px) {
  .nav-links a,
  .nav-links a:first-child {
    padding-inline: 2px;
    font-size: var(--type-readable-floor);
    letter-spacing: .025em;
  }
  .nav-join { padding-inline: 8px; font-size: var(--type-readable-floor); }
}

@media (prefers-reduced-motion: reduce) {
  .ambient-waves path { animation: none !important; }
  .hero-actions .text-link::after { transition: none !important; }
}
/* V1 interaction refinement pass 2.
   Clarifies CTA state, fixes mobile ocean motion, restores the two-part Daily Command cursor,
   and simplifies row activation to one coherent directional cue. */

/* Primary actions should have one crisp outer boundary, not a nested inner frame. */
.btn-primary::before { display: none !important; }

@media (hover: hover) and (pointer: fine) {
  .btn-primary:hover {
    background: color-mix(in srgb, var(--teal) 72%, #003129);
    color: var(--text-strong);
    border-color: color-mix(in srgb, var(--teal) 62%, #c8fff3);
    box-shadow:
      0 0 0 1px color-mix(in srgb, var(--teal) 34%, transparent),
      0 0 26px color-mix(in srgb, var(--teal) 22%, transparent),
      inset 0 0 18px color-mix(in srgb, #fff 5%, transparent);
  }

  [data-theme="light"] .btn-primary:hover {
    background: #001f1b;
    color: #f8fffd;
    border-color: var(--teal);
    box-shadow:
      0 0 0 2px color-mix(in srgb, var(--teal) 22%, transparent),
      0 12px 30px color-mix(in srgb, #001f1b 24%, transparent),
      0 0 24px color-mix(in srgb, var(--teal) 16%, transparent);
  }
}

/* Desk briefing now uses the exact same travelling hairline language as the top navigation. */
.hero-actions .text-link {
  border-bottom: 0 !important;
}
.hero-actions .text-link::after {
  left: 0;
  right: 100%;
  bottom: 2px;
  height: 1px;
  background: var(--teal);
  box-shadow: none;
  transition: right 180ms var(--ease-out);
}
.hero-actions .text-link:hover::after,
.hero-actions .text-link:focus-visible::after {
  right: 0;
}

/* Remove the duplicate travelling underline where a stronger structural cue already exists. */
.operating-row::after,
.decision-sequence li::after {
  display: none !important;
}

/* Inside Core keeps its existing left-side activation only. */
.operating-row:hover,
.operating-row:focus-within {
  background: transparent;
}

/* Method interaction belongs only to the numbered instrument.
   Keep the static spine, but do not light the row or animate a second line. */
.decision-sequence li::before {
  display: none !important;
}
.decision-sequence li:hover,
.decision-sequence li:focus-within {
  background: transparent !important;
}
.decision-sequence li:hover .sequence-index,
.decision-sequence li:focus-within .sequence-index {
  border-color: var(--line-teal);
  background: var(--surface-1);
  box-shadow: none;
}

@media (hover: hover) and (pointer: fine) {
  .decision-sequence li .sequence-index:hover {
    border-color: var(--teal);
    background: color-mix(in srgb, var(--teal) 7%, var(--surface-1));
    box-shadow:
      0 0 0 4px color-mix(in srgb, var(--teal) 5%, transparent),
      0 0 18px color-mix(in srgb, var(--teal) 13%, transparent);
  }
}

/* Bathymetry should read as continuous depth contours, never as an accidental dotted wave. */
.contours path {
  stroke-dasharray: none !important;
}

/* Animate the whole wave field as a Safari-safe fallback while the two paths retain independent motion. */
.ambient-waves {
  transform-origin: 50% 50%;
  will-change: transform;
  animation: dyvv-wave-field-drift 15.5s ease-in-out infinite alternate !important;
}

@keyframes dyvv-wave-field-drift {
  0% { transform: translate3d(-1.35%, -.45%, 0) scaleX(1.012) scaleY(.997); }
  46% { transform: translate3d(.55%, .85%, 0) scaleX(.996) scaleY(1.008); }
  100% { transform: translate3d(1.15%, -.2%, 0) scaleX(1.018) scaleY(1.002); }
}

@media (max-width: 640px) {
  .ambient-waves {
    opacity: .29;
    animation-duration: 11.5s !important;
  }
  .ambient-waves path:first-child {
    animation-duration: 9.8s;
  }
  .ambient-waves path:last-child {
    animation-duration: 14.7s;
  }
  .contours {
    opacity: .34;
  }
}

/* Restore the original two-part Daily Command cursor geometry.
   The dot remains direct-response while the outer ring follows separately. */
@media (hover: hover) and (pointer: fine) {
  .precision-cursor-ring {
    display: block !important;
  }

  .precision-cursor-dot::before,
  .precision-cursor-dot::after {
    content: none !important;
    display: none !important;
  }

  .precision-cursor-dot {
    width: 4px;
    height: 4px;
    margin: -2px 0 0 -2px;
    border-radius: 50%;
    background: var(--teal);
    box-shadow: 0 0 9px color-mix(in srgb, var(--teal) 72%, transparent);
  }

  .cursor-interactive .precision-cursor-dot {
    width: 2px;
    height: 2px;
    margin: -1px 0 0 -1px;
    background: var(--text);
    box-shadow: 0 0 8px rgba(240, 244, 242, .45);
  }

  .cursor-text .precision-cursor-dot {
    width: 4px;
    height: 4px;
    margin: -2px 0 0 -2px;
    opacity: 0;
    background: var(--teal);
    box-shadow: 0 0 9px color-mix(in srgb, var(--teal) 72%, transparent);
  }

  .cursor-pressed .precision-cursor-ring {
    width: 18px;
    height: 18px;
    margin: -9px 0 0 -9px;
  }
  .cursor-pressed .precision-cursor-dot {
    width: 6px;
    height: 6px;
    margin: -3px 0 0 -3px;
  }
}

/* Mobile top navigation is one continuous rail, with no competing top rule. */
@media (max-width: 640px) {
  :root { --nav-height: 108px; }

  .site-header { height: var(--nav-height); }
  .nav-shell { grid-template-rows: 60px 47px; }

  .nav-links {
    display: flex;
    width: 100%;
    align-items: stretch;
    justify-content: space-between;
    gap: 0;
    overflow: visible;
    border-top: 0 !important;
    border-bottom: 1px solid var(--line);
  }

  .nav-links a,
  .nav-links a:first-child {
    flex: 1 1 0;
    min-width: 0;
    min-height: 47px;
    display: inline-flex;
    align-items: flex-end;
    justify-content: center;
    padding: 0 5px 11px;
    border-left: 0;
    color: var(--muted);
    font-size: var(--type-readable-floor);
    line-height: 1;
    letter-spacing: .018em;
    text-align: center;
    white-space: nowrap;
  }

  .nav-links a::after {
    left: 31%;
    right: 69%;
    bottom: -1px;
  }

  .nav-links a:hover::after,
  .nav-links a:focus-visible::after {
    left: 14%;
    right: 14%;
  }
}

@media (max-width: 390px) {
  .nav-links a,
  .nav-links a:first-child {
    padding-inline: 2px;
    letter-spacing: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ambient-waves,
  .ambient-waves path,
  .decision-sequence li::before,
  .hero-actions .text-link::after,
  .decision-sequence .sequence-index,
  .nav-links a::after {
    animation: none !important;
    transition: none !important;
  }
}
/* Final V1 visual polish requested after live review. */

/* Method: the number circle itself owns the hover effect. */
.decision-sequence li:hover,
.decision-sequence li:focus-within {
  background: transparent !important;
}
.decision-sequence li:hover .sequence-index,
.decision-sequence li:focus-within .sequence-index {
  border-color: var(--line-teal) !important;
  background: var(--surface-1) !important;
  color: var(--teal) !important;
  box-shadow: none !important;
}

@media (hover: hover) and (pointer: fine) {
  .decision-sequence li .sequence-index:hover {
    border-color: var(--teal) !important;
    background: color-mix(in srgb, var(--teal) 7%, var(--surface-1)) !important;
    color: var(--text-strong) !important;
    box-shadow:
      0 0 0 4px color-mix(in srgb, var(--teal) 5%, transparent),
      0 0 18px color-mix(in srgb, var(--teal) 13%, transparent) !important;
  }
}

/* Desktop observatory rules share one exact left edge. Content stays fixed. */
@media (min-width: 841px) {
  .hero-observatory {
    border-top: 0;
    border-bottom: 0;
  }

  .hero-observatory::after {
    content: "";
    position: absolute;
    z-index: 4;
    top: 0;
    bottom: 0;
    left: -12px;
    right: 0;
    border-top: 1px solid var(--line-strong);
    border-bottom: 1px solid var(--line-strong);
    pointer-events: none;
  }

  .observatory-calibration,
  .instrument-disclaimer {
    position: relative;
  }

  .observatory-calibration {
    border-bottom: 0;
  }

  .observatory-calibration::after {
    content: "";
    position: absolute;
    left: -12px;
    right: 0;
    bottom: 0;
    height: 1px;
    background: var(--line);
    pointer-events: none;
  }

  .instrument-disclaimer {
    border-top: 0;
  }

  .instrument-disclaimer::before {
    content: "";
    position: absolute;
    left: -12px;
    right: 0;
    top: 0;
    height: 1px;
    background: var(--line);
    pointer-events: none;
  }
}

/* Mobile top sections: anchor the subtab rail directly beneath the primary controls. */
@media (max-width: 640px) {
  :root { --nav-height: 86px; }
  .site-header { height: var(--nav-height); }

  .nav-shell {
    position: relative;
    grid-template-columns: 1fr auto;
    grid-template-rows: 50px 36px;
    column-gap: 10px;
    align-content: start;
  }

  .brand,
  .nav-actions {
    align-self: center;
  }

  .nav-links {
    position: absolute;
    z-index: 5;
    grid-column: auto !important;
    grid-row: auto !important;
    top: 50px;
    left: 0;
    right: 0;
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    width: 100%;
    height: 36px;
    gap: 0 !important;
    padding: 0 4px;
    overflow: visible;
    border: 0 !important;
    border-bottom: 1px solid var(--line) !important;
    background: var(--surface-0) !important;
    box-shadow: none !important;
    transform: none !important;
  }

  .nav-links::before,
  .nav-links::after {
    content: none !important;
    display: none !important;
  }

  .nav-links a,
  .nav-links a:first-child,
  .nav-links a + a {
    position: relative;
    min-width: 0;
    min-height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 1px 2px 0;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: var(--muted);
    font-size: var(--type-readable-floor);
    line-height: 1.08;
    letter-spacing: .008em;
    text-align: center;
    white-space: nowrap;
    touch-action: manipulation;
  }

  .nav-links a::before {
    content: none !important;
    display: none !important;
  }

  .nav-links a::after {
    left: 50%;
    right: auto;
    bottom: -1px;
    width: 0;
    height: 1px;
    transform: translateX(-50%);
    background: var(--teal);
    transition: width 180ms var(--ease-out);
  }

  .nav-links a:hover::after,
  .nav-links a:focus-visible::after,
  .nav-links a:active::after {
    left: 50%;
    right: auto;
    width: min(70%, 72px);
  }
}

@media (max-width: 390px) {
  .nav-links { padding-inline: 2px; }
  .nav-links a,
  .nav-links a:first-child,
  .nav-links a + a {
    padding-inline: 1px;
    letter-spacing: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .decision-sequence .sequence-index,
  .nav-links a::after {
    transition: none !important;
  }
}/* V7 depth sonar. Restores the V2 spatial instrument while keeping later UX polish. */
.sonar-volume-canvas {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: block;
  width: 100%;
  height: 100%;
  opacity: 0;
  pointer-events: none;
  touch-action: pan-y;
  transition: opacity 220ms var(--ease-out), filter 180ms var(--ease-out);
  filter: saturate(.9) contrast(1.02);
}

.sonar-volume-mounted .sonar-volume-canvas {
  opacity: 1;
  pointer-events: auto;
}

.sonar-volume-mounted .sonar-disc,
.sonar-volume-mounted .sonar-bearing,
.sonar-volume-mounted .sonar-register {
  opacity: 0 !important;
  visibility: hidden !important;
}

.sonar-volume-canvas.has-contact-hover {
  filter: saturate(.96) contrast(1.035);
}

.sonar-volume-labels {
  position: absolute;
  inset: 7% 5%;
  z-index: 3;
  pointer-events: none;
  color: var(--soft);
  font-size: .44rem;
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.sonar-volume-labels span {
  position: absolute;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  opacity: .64;
  white-space: nowrap;
}

.sonar-volume-labels span::before {
  content: "";
  width: 17px;
  height: 1px;
  background: var(--line-teal);
}

.sonar-volume-labels .surface { top: 0; left: 0; }

.sonar-volume-labels .water-column {
  top: 43%;
  right: -5%;
  transform: rotate(90deg) translateX(50%);
  transform-origin: right center;
}

.sonar-volume-labels .bathymetry { left: 1%; bottom: 1%; }

.sonar-volume-mounted::before,
.sonar-volume-mounted::after {
  content: "";
  position: absolute;
  z-index: 1;
  pointer-events: none;
  left: 7%;
  right: 7%;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--line-teal) 18%, var(--line-teal) 82%, transparent);
}

.sonar-volume-mounted::before { top: 11%; opacity: .44; }
.sonar-volume-mounted::after { bottom: 8%; opacity: .28; }

.sonar-volume-running .sonar-volume-labels .water-column {
  color: color-mix(in srgb, var(--teal) 58%, var(--soft));
}

/* Keep replay as a quiet instrument command rather than a second CTA. */
#sonarReplay.sonar-replay {
  position: relative;
  min-height: 0;
  padding: 4px 0 5px;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--muted);
  font-size: var(--type-readable-floor);
  font-weight: 600;
  letter-spacing: .045em;
  line-height: 1.2;
  box-shadow: none;
}

#sonarReplay.sonar-replay::after {
  content: "";
  position: absolute;
  left: 0;
  right: 100%;
  bottom: 0;
  height: 1px;
  background: color-mix(in srgb, var(--teal) 72%, transparent);
  transition: right 180ms var(--ease-out);
}

#sonarReplay.sonar-replay:hover,
#sonarReplay.sonar-replay:focus-visible {
  border: 0;
  background: transparent;
  color: var(--text);
  outline: 0;
}

#sonarReplay.sonar-replay:hover::after,
#sonarReplay.sonar-replay:focus-visible::after { right: 0; }

#sonarReplay.sonar-replay:active {
  background: transparent;
  color: var(--teal);
}

[data-theme="light"] .sonar-volume-canvas {
  filter: saturate(.72) contrast(.98);
}

[data-theme="light"] .sonar-volume-labels {
  color: color-mix(in srgb, var(--text) 62%, transparent);
}

@media (max-width: 760px) {
  .sonar-volume-labels {
    inset: 6% 4%;
    font-size: .4rem;
    letter-spacing: .12em;
  }

  .sonar-volume-labels .water-column { right: -9%; }
}

@media (prefers-reduced-motion: reduce) {
  .sonar-volume-canvas { transition: none; }
  .sonar-volume-running .sonar-volume-labels .water-column { color: inherit; }
}.legal-page {
  min-height: 100vh;
  background:
    radial-gradient(circle at 84% 7%, color-mix(in srgb, var(--teal) 7%, transparent), transparent 32%),
    linear-gradient(90deg, transparent calc(50% - .5px), color-mix(in srgb, var(--line) 46%, transparent) 50%, transparent calc(50% + .5px)),
    var(--bg);
}

.legal-shell {
  position: relative;
  z-index: 2;
  width: min(980px, calc(100vw - 80px));
  margin: 0 auto;
  padding: 62px 0 130px;
}
.legal-shell::before {
  content: "LEGAL DOSSIER";
  position: absolute;
  top: 68px;
  right: 0;
  color: var(--soft);
  font-size: .48rem;
  font-weight: 600;
  letter-spacing: .18em;
}
.legal-back {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  margin-bottom: clamp(70px, 10vw, 130px);
  border-bottom: 1px solid var(--line-strong);
  color: var(--muted);
  font-size: var(--type-readable-floor);
  font-weight: 600;
  transition: color 140ms var(--ease-out), border-color 140ms var(--ease-out);
}
.legal-back:hover { border-color: var(--teal); color: var(--teal); }
.legal-shell > .eyebrow { margin-bottom: 22px; }
.legal-shell h1 { max-width: 900px; font-size: clamp(4rem, 8vw, 7.2rem); line-height: .85; }
.legal-shell h1 span { color: var(--muted); }
.legal-date { margin: 34px 0 72px; color: var(--soft); font-size: .54rem; font-weight: 600; letter-spacing: .12em; }
.legal-shell section {
  display: grid;
  grid-template-columns: minmax(190px, .35fr) minmax(0, 1fr);
  column-gap: 58px;
  padding: 34px 0;
  border-top: 1px solid var(--line);
}
.legal-shell section:last-of-type { border-bottom: 1px solid var(--line); }
.legal-shell section h2 {
  grid-column: 1;
  grid-row: 1 / span 8;
  margin: 0;
  color: var(--text);
  font-family: var(--font-ui);
  font-size: .74rem;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.45;
}
.legal-shell section p { grid-column: 2; color: var(--muted); font-size: .75rem; line-height: 1.82; }
.legal-shell section p + p { margin-top: 17px; padding-top: 17px; border-top: 1px dashed var(--line); }
.legal-note { margin-top: 38px; padding: 18px 20px; border: 1px solid var(--line-teal); border-left: 2px solid var(--teal); border-radius: var(--radius-xs); background: color-mix(in srgb, var(--teal) 4%, transparent); color: var(--muted); font-size: var(--type-readable-floor); line-height: 1.65; }

.error-page {
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: 32px;
  background:
    radial-gradient(circle at 50% 42%, color-mix(in srgb, var(--teal) 9%, transparent), transparent 32%),
    repeating-radial-gradient(circle at 50% 42%, transparent 0 82px, color-mix(in srgb, var(--line-teal) 45%, transparent) 83px, transparent 84px 122px),
    var(--bg);
}
.error-shell { width: min(720px, 100%); text-align: center; }
.error-shell .brand { justify-content: center; margin-bottom: 76px; }
.error-code { margin-bottom: 19px; color: var(--teal); font-size: .58rem; font-weight: 600; letter-spacing: .18em; }
.error-shell h1 { margin: 0 0 24px; font-size: clamp(3.8rem, 9vw, 6.4rem); line-height: .86; }
.error-shell h1 span { display: block; margin-top: .34em; color: var(--muted); font-family: var(--font-ui); font-size: .23em; font-weight: 500; letter-spacing: .08em; line-height: 1.2; text-transform: uppercase; }
.error-shell p { max-width: 530px; margin: 0 auto 32px; color: var(--muted); font-size: .84rem; line-height: 1.75; }
.error-shell p span { display: block; margin-top: 10px; color: var(--soft); }

@media (max-width: 720px) {
  .legal-shell { width: calc(100vw - 36px); padding-top: 34px; }
  .legal-shell::before { top: 41px; }
  .legal-back { margin-bottom: 78px; }
  .legal-shell h1 { font-size: clamp(3.7rem, 17vw, 5.4rem); }
  .legal-date { margin-bottom: 54px; }
  .legal-shell section { grid-template-columns: 1fr; gap: 18px; padding: 28px 0; }
  .legal-shell section h2,
  .legal-shell section p { grid-column: 1; grid-row: auto; }
  .legal-shell section h2 { color: var(--teal); }
  .error-page { padding: 24px 18px; }
  .error-shell .brand { margin-bottom: 58px; }
}
/* V3 interaction refinements from visual QA. */

/* Method: hovering anywhere in the row lights the numbered instrument. */
@media (hover: hover) and (pointer: fine) {
  .decision-sequence li:hover .sequence-index,
  .decision-sequence li:focus-within .sequence-index {
    border-color: var(--teal) !important;
    background: color-mix(in srgb, var(--teal) 7%, var(--surface-1)) !important;
    color: var(--text-strong) !important;
    box-shadow:
      0 0 0 4px color-mix(in srgb, var(--teal) 5%, transparent),
      0 0 18px color-mix(in srgb, var(--teal) 13%, transparent) !important;
  }
}

/* Continuous sonar needs no replay control. Keep only the compact depth readout. */
.instrument-disclaimer {
  justify-content: flex-end;
}

/* Depth rail becomes a real drag surface while retaining the compact instrument look. */
.depth-rail {
  pointer-events: auto;
  cursor: ns-resize;
  user-select: none;
  touch-action: none;
  padding: 10px 8px;
  margin-right: -8px;
  border-radius: 999px;
  outline: none;
}
.depth-rail-track {
  transition: background-color 150ms var(--ease-out), box-shadow 150ms var(--ease-out);
}
.depth-rail-marker {
  transition: width 150ms var(--ease-out), height 150ms var(--ease-out), margin 150ms var(--ease-out), box-shadow 150ms var(--ease-out), background-color 150ms var(--ease-out);
}
.depth-rail:hover .depth-rail-track,
.depth-rail:focus-visible .depth-rail-track,
.depth-rail.is-dragging .depth-rail-track {
  background: color-mix(in srgb, var(--teal) 48%, var(--line-strong));
  box-shadow: 0 0 16px color-mix(in srgb, var(--teal) 10%, transparent);
}
.depth-rail:hover .depth-rail-marker,
.depth-rail:focus-visible .depth-rail-marker,
.depth-rail.is-dragging .depth-rail-marker {
  width: 9px;
  height: 9px;
  margin: -1px 0 0 0;
  background: color-mix(in srgb, var(--teal) 12%, var(--bg));
  box-shadow:
    0 0 0 4px color-mix(in srgb, var(--teal) 6%, transparent),
    0 0 15px color-mix(in srgb, var(--teal) 20%, transparent);
}
.depth-rail.is-dragging .depth-rail-zone {
  color: var(--text-strong);
}

@media (max-width: 760px) {
  .depth-rail {
    padding-inline: 10px;
    margin-right: -10px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .depth-rail-track,
  .depth-rail-marker {
    transition: none !important;
  }
}
/* Dyvv HQ Oceanbed Instrument V28
 * Fills the instrument panel, keeps the wide seabed centered, and exposes
 * bounded orbit, tilt, zoom, and hover parallax on fine pointers.
 */

@media (min-width: 841px) {
  .hero-observatory {
    grid-template-columns: minmax(400px, 1.58fr) minmax(178px, .42fr);
    background:
      radial-gradient(
        ellipse 62% 64% at 47% 52%,
        color-mix(in srgb, var(--teal) 4.5%, transparent),
        transparent 72%
      ),
      linear-gradient(
        100deg,
        color-mix(in srgb, var(--surface-1) 10%, transparent),
        color-mix(in srgb, var(--surface-2) 2%, transparent)
      );
  }

  .hero-observatory::before {
    left: 23%;
    width: 86%;
    opacity: .72;
  }

  .sonar-wrap {
    width: 100%;
    height: 100%;
    min-height: 0;
    aspect-ratio: auto;
    margin: 0;
    contain: layout paint;
    overflow: hidden;
    align-self: stretch;
    justify-self: stretch;
    background:
      linear-gradient(
        180deg,
        color-mix(in srgb, var(--teal) 2.2%, transparent),
        color-mix(in srgb, var(--surface-2) 4.5%, transparent)
      );
  }

  .sonar-volume-canvas {
    inset: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    filter:
      saturate(1.03)
      contrast(1.11)
      drop-shadow(0 0 5px rgba(0, 201, 167, .10));
    -webkit-mask-image: none;
    mask-image: none;
  }

  .sonar-volume-labels {
    inset: 2.5% 1.8% 3% 1.8%;
  }

  .sonar-volume-labels .surface {
    left: 0;
    top: 10.5%;
    color: color-mix(in srgb, var(--teal) 72%, var(--soft));
  }

  .sonar-volume-labels .water-column {
    right: -1.5%;
    color: color-mix(in srgb, var(--teal) 76%, var(--soft));
  }

  .sonar-volume-labels .bathymetry {
    left: 2%;
    bottom: 1.5%;
  }

  .sonar-volume-labels .rotation-hint {
    right: 2%;
    bottom: 1.5%;
    color: color-mix(in srgb, var(--teal) 62%, var(--soft));
  }

  .sonar-volume-mounted::before,
  .sonar-volume-mounted::after {
    left: 0;
    right: 0;
  }

  .sonar-volume-mounted::before {
    top: 5%;
    opacity: .28;
  }

  .sonar-volume-mounted::after {
    bottom: 1%;
    opacity: .20;
  }

  .instrument-readouts {
    background:
      linear-gradient(
        90deg,
        color-mix(in srgb, var(--bg) 2%, transparent),
        color-mix(in srgb, var(--bg) 15%, transparent)
      );
    backdrop-filter: blur(1px);
  }
}

.sonar-volume-mounted .sonar-disc,
.sonar-volume-mounted .sonar-bearing,
.sonar-volume-mounted .sonar-register {
  opacity: 0 !important;
  visibility: hidden !important;
}

.sonar-volume-canvas {
  transition: opacity 180ms var(--ease-out), filter 160ms var(--ease-out);
}

.sonar-volume-mounted .sonar-volume-canvas {
  opacity: 1;
}

[data-theme="light"] .sonar-volume-canvas {
  filter:
    saturate(.74)
    contrast(1.02)
    drop-shadow(0 0 4px rgba(0, 112, 95, .07));
}

@media (max-width: 1180px) and (min-width: 841px) {
  .hero-observatory {
    grid-template-columns: minmax(340px, 1.44fr) minmax(180px, .56fr);
  }

  .sonar-wrap {
    width: 100%;
    margin-left: 0;
  }
}

@media (max-width: 960px) and (min-width: 841px) {
  .sonar-wrap {
    width: 100%;
    margin-left: 0;
  }
}

@media (max-width: 840px) {
  .sonar-wrap {
    contain: layout;
    overflow: visible;
  }

  .sonar-volume-canvas {
    inset: -6% -4% -8%;
    width: 108%;
    height: 114%;
    pointer-events: none !important;
    filter:
      saturate(1.00)
      contrast(1.06)
      drop-shadow(0 0 4px rgba(0, 201, 167, .09));
    -webkit-mask-image: radial-gradient(ellipse 99% 96% at 53% 52%, #000 66%, rgba(0,0,0,.90) 82%, transparent 100%);
    mask-image: radial-gradient(ellipse 99% 96% at 53% 52%, #000 66%, rgba(0,0,0,.90) 82%, transparent 100%);
  }

  .sonar-volume-labels .water-column {
    right: -7%;
  }
}

@media (max-width: 560px) {
  .sonar-volume-canvas {
    inset: -3% -7% -5%;
    width: 114%;
    height: 108%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .sonar-volume-canvas {
    transition: none;
  }
}


@media (pointer: fine) and (min-width: 841px) {
  .sonar-volume-rotatable .sonar-volume-canvas {
    pointer-events: auto;
    cursor: grab;
    touch-action: none;
  }

  .sonar-volume-rotating .sonar-volume-canvas {
    cursor: grabbing;
  }

  .sonar-volume-rotatable .rotation-hint {
    opacity: .78;
  }

  .sonar-volume-rotatable:not(.sonar-volume-rotating) .sonar-volume-canvas {
    transition:
      opacity 180ms var(--ease-out),
      filter 160ms var(--ease-out);
  }
}

@media (pointer: coarse), (max-width: 840px) {
  .rotation-hint { display: none !important; }
}
